{"_id":"simple-audio-recorder","_rev":"14-57b936bc60deacba53642b0cbabf62b3","name":"simple-audio-recorder","dist-tags":{"latest":"1.3.0"},"versions":{"0.0.1":{"name":"simple-audio-recorder","version":"0.0.1","license":"MIT","_id":"simple-audio-recorder@0.0.1","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"dist":{"shasum":"4e4915b1a89a7ca7104ffc49bcbbed8b549c66be","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.1.tgz","fileCount":17,"integrity":"sha512-R880ZYZDfsLHZIa+DPQiga+dyLJKPsWyQoEq6rQUPr/ceJrOvPHpig/sNeZ3wf35yype3bH0rB77jFrf7ovbvQ==","signatures":[{"sig":"MEUCIQCVLAXOXS/nJjxdtVbd1SDZa5AaatjJw1SUBWte21PVJQIge7nAW8jFRATMUcRbsH1nxT0pCBQLlh5u3KjkqbgrJ/M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":383155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjza2xACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpTdw/9EZnoTPqqzVcj8eUaF+Xzcd66euUcNfojxpjeuvoHDOPOGmFv\r\n6458PMqjM0zKmQsBlE+b7MtlcB29efLAX8hmn5T1HsMleFXgDczOq4lI5IQA\r\n1ryb2UkFeVX6QmxWmeimlhKrbwM87ICWfhMmwxsIv7i0llDmmuqrZqOFYthi\r\nZka2BUvoEtgxOINWeIx5mEKVXWivUsdWEMiCK8CVTDZYwFlebofSNXVzlM2d\r\njeyq+3/N6BZM13bfPpHx4QFYynoOg/0EJU3GR3pKZXnAu3NoDhXA5/bBi4Ni\r\n8D8tPWCobIyJLszNhZ37L/IrWnu+grOV/QcJEk2cmDfQgMLHbK6/U6Pn3+AS\r\n9kmCf1ZmaItk/b3lGTGQK09oUSwDnpTBanVxiMv1gZuH/AxiZ9FoQYNxvRaO\r\nnjUuJpoL7EL1BKdZAlPmCS4HMZugwR8eSQ42YvuoRfGM58TspJ0J/snDRvr5\r\nU/Li13QyXV0pyMY7QlGbMmeB8Q9xyg8zoNbAy/neQZrcGpmKMU2Zjxh3l/bk\r\nMeneedSmFbjoHhioZOQZ6DtwUzygmgpTM7t/8Q/b3kNFz9nkNMgW9PwfTWD6\r\nXCk/MXXf0i7xZTHbsLQxEuN7vs5Spz4POvxfjVU009hO82UgOKIFVVStMn7f\r\nhvuxR/Ouuhedoj5FMj3G03G/Xn/20AxDLSU=\r\n=wPze\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/AudioRecorder.js","gitHead":"b6221e8a3c0af50aa75ab29f163c88bb8f79eef6","scripts":{"build":"webpack && webpack --config webpack.worklet-config.js && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worklet-config.js\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --no-browser\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.1_1674423729652_0.2929955235678383","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"simple-audio-recorder","version":"0.0.2","license":"MIT","_id":"simple-audio-recorder@0.0.2","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"dist":{"shasum":"7c49f4594163115c8ec17aefaa4796315ffe70fc","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.2.tgz","fileCount":19,"integrity":"sha512-fjAr7D4YOHPvLowHB+HkyIqUOHsgJYxHNtdwBbfUftSEU6/kvFQ5KkXgxkkSD0gt9LQSYc7xO8oIwTLOzDuV3Q==","signatures":[{"sig":"MEUCIQDMq2gZDVlhap3XJFkPzA3XXAq7/6dqjbCe1lGPPHEJvAIgSvw/jHRS0oxKCt6m69X2xjUPGtJCGgMGD24sxiGqnh8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":394324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj188YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5IA/7BcKu6x9qECTP9VKWrO4tfL66F/esEIIMkfxEpGtcVf0W5/XR\r\n4tWfSSxp5BE0iltKZ0AX7gU1ZBa2kXKcY65kWhhHX0c0qGh23IZAqMhKEXAJ\r\nP3rZvpW/v5N3IH/mdFgJN5Fvji6P1HpO5YomRRTJAoZkmbTcH8zM5YGV38za\r\nPC9uTlfmPMeffi0oovA7sLes9J20huZwwvtY3//7VUNOLYrz3StDLGEE2Iz9\r\nA/gy45lCiKVQr4H/h2Ud5PdZ6zyPaiANau6VD+hbAY6pSQZkBaYW3lcw916X\r\nrFF5wr8quhPFC8HVA8CxwLYRPiJmkV0qLo5bRU6a01S6Q7WBlUlnJXcQi7M4\r\nlifqk60ECeXKFVjNW/2Y6STzo78VXtLo/R+sGlCLzpnaedK+LxpqDJpX0YG5\r\nxMFXm7rISX+8Q+Vf9qLaJ0eSDHviTyXBK7kZFF3v1ztKl3cU0syafEjG6b0X\r\nZcux3vQ8Kb38IaombLyKzyIxGBXL5/i5mzQCHyt3tcDo7kcoA+r+Hp2NI6ZX\r\n2CZtJS41vBzEDQGlZKB4GkIejJ4SLjzYmQ90wugSJCJrR0O4pJCRF1Wc+kqY\r\nNpIpkGtEV4X0j51BtLOf90mZqeQmsUjU8hF4lG0hX0Szh6mKQ+jBIoAh8ip2\r\nhhU5/84oTNITC6B5bqpEjylWhLPTL7+lLxE=\r\n=dS1y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/AudioRecorder.js","gitHead":"4a40644e3761e219e7f1d97409925a679a00350c","scripts":{"build":"webpack && webpack --config webpack.worklet-config.js && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worklet-config.js\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.2_1675087639975_0.9557331578595498","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"simple-audio-recorder","version":"0.0.3","license":"MIT","_id":"simple-audio-recorder@0.0.3","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/bobbles911/simple-audio-recorder","bugs":{"url":"https://github.com/bobbles911/simple-audio-recorder/issues"},"dist":{"shasum":"8d4b0327bf19dab757f3f7eda65158e6c3de8224","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.3.tgz","fileCount":15,"integrity":"sha512-JjvGb4SmftJnQbukF4uoHxFWH7AVhewigTgIXoZdqW0e5ODjv5QVR+SZ+AWiq0hHO3mM3n5vRb3ia78kxbYOcA==","signatures":[{"sig":"MEYCIQDDMp33viVX4wpIPFxWLaeLOEoRZkHAk7MA9lr4E56gnQIhANRzgdtrARI+AuSPCqS+fO6v54kwkJmh3vPAuQAWvQpb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":312640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3oOPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp8EA//WGzm4stL3QemvtJLq2ZSnwuKcf0gL2TjVjkpDoLh+L/MpERu\r\nffk4Y+W5CH7LH8G+NLf3Oeauj+RmnHieg8D5uuE17mFrPoe4CLJcbpjaxFPa\r\n+FTVmzPyZpHTDoixumLSzCkcm8/BWrjLaIHC8LFcKLagds7z+fSXGCb4gLJe\r\nkNGz6DSDviIt3j0Qkdlsaa0MmzGHebhPYH6pjTnzABx8HKytbRBHqf+KU/4U\r\nLl0EZnBBez/6QM+GM0Y9C5O4VTQtvhfS14FxmAhlZjGHrdzKqUsUEXpadUSS\r\nv5qlqhdvuXHo0wsR2vtNoH2OB6oZgaCVp3sjT6BgbSVtt1lkM5s0lNUQV/hu\r\nM9FHwZPM5YAs0txf7x7icR7gTf+EuSWJZ26bC4Vh23MjL8DkpfscMmrTz5/E\r\nLabiRshS1Cd3fbN4sUcCbPwPhp61HYRUm1PRFLXrPbeodgcI0jQp6D7ifz43\r\nNrySRoPFQYPO3JUd232MA4U8zXT+JDrfOOcUrXIA7fXQROaCVcxTM6KhDAi+\r\nFHV23ehkUccMr65ETa6xGc6JNfYm8EcLEVQuJo3X/vYsDcXd33L7LItHhLWU\r\n3dK1NEsQDVqbD1fqaZiNgYXI9e0e8/i6cD5gEjDg0PeIvID7dx0TXvHNbPQR\r\nBx8pwJeB4z7auStu+q28kPaN086MRoJdhXI=\r\n=h1op\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/AudioRecorder.js","gitHead":"14b8d6d26eaacb0a1afd4ff21342a09ae26f9c0d","keyword":["audio","sound","recorder","mp3","encoder","microphone"],"scripts":{"build":"webpack && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/bobbles911/simple-audio-recorder.git","type":"git"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.3_1675527055781_0.265371073731526","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"simple-audio-recorder","version":"0.0.4","keywords":["audio","sound","recorder","mp3","encoder","microphone"],"license":"MIT","_id":"simple-audio-recorder@0.0.4","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/bobbles911/simple-audio-recorder","bugs":{"url":"https://github.com/bobbles911/simple-audio-recorder/issues"},"dist":{"shasum":"b9d504fd128528b555848aab3db0ff2983da8857","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.4.tgz","fileCount":15,"integrity":"sha512-d1AUeIt4xnmG6j4AURgwYuaVU/t4xdRkSiqyuX40sZzPUCN9Ag9E4KmsSpUjaHIJaTGmMOL+ketSv2+sN4qShg==","signatures":[{"sig":"MEYCIQDqRnvZB842Wog0w15Ba3EfdJnDpWabbMknjF0Yy3qV4wIhAO58NJpX3+eLtATo2oS+N1mEl2ECzsKeuTTlZPZCaDZJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":312937,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj3sQDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaFA/8D4eqPqJjvp+0pO6HLVfsOnUEt/gim1l1BtZiiDhruUKQV23z\r\nDsFhVeeQgfNQZnEQL8iYDaAajJ0VpLWokEdHxxGwX2wYPf61cYHvNzX3EIq+\r\nD6ULVYvxMNJtTYLAaAfdMjdEtwZRo2dj5A/PQdvNFHZgl3zUAhI2fePgXdlC\r\ng3yuOl+i6Cn8vMV/EPQgx27gnNmOhQxIB3x9Fgg6jnf3R6SDzSMRAJIhVqaI\r\nq2b6SLckuyJNRmGuqX7bGZakcUO0SPtcePT4q5hWNT+24uefqc8lsUa8xrlm\r\n2n/h7T5i86aH2Uu4EKirGGRWFk6i1OQZbbT84X3rBdNN6QBZVffnCv1SCIcv\r\nBV64GwhoUo4wo7Wicxe+Erz48IKr6vZzQiKYLufsfTzEiaaLf7SROyb1UdZf\r\nRZy30x+rQkBq/jjssZPKIamP68buGenqWiCIozVsb/eHNV1NBOIFY76zVc8s\r\nagHGdkjt3s9n14kbWCFvrKFGH06jHQWLLJ1yb1eff+qPZlZK1+DegRWCIpvW\r\npO5tOhP2NtvdkWbEsA0Klk62VCjTSB9P0DlzBJXUfbVHmjlvGjvQSS6Ik2y1\r\nC5wy7cps6lv9x3g1W7W5PqO1L07q2gGxBLRUfSUzRptHg5dpbtjy3E1Tvirc\r\nVVoQxaei8cjuwzh8mZVmyj+Jd4SIdBp578Q=\r\n=/QNT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/AudioRecorder.js","gitHead":"962b7af6d28599441857a7ce794559963d35a0ef","scripts":{"build":"webpack && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/bobbles911/simple-audio-recorder.git","type":"git"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.4_1675543555271_0.14327878369215408","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"simple-audio-recorder","version":"0.0.5","keywords":["audio","sound","recorder","mp3","encoder","microphone"],"license":"MIT","_id":"simple-audio-recorder@0.0.5","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/bobbles911/simple-audio-recorder","bugs":{"url":"https://github.com/bobbles911/simple-audio-recorder/issues"},"dist":{"shasum":"711766eaded5b045e841a4f6c9fb27525c9dcc4c","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.5.tgz","fileCount":15,"integrity":"sha512-b3rqfSoHrZ3In3M7AXR20eFCyW9YAOOU0StPdMofHLa3pt8UICcNufSOfZiCHAbd30F6eBfpsSxXnbOzyb6vfA==","signatures":[{"sig":"MEUCIQDmu2RuM05sPfVflTlXRmh9oxkq1BfCuq8AiFU0OAWzFAIgTeAkG9M8qsPVmlrQWwPYmtKQ52UR7GH3w8FYyk9BDcA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":312938,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj4Bw4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEVA//T1G6z9qA64uaUcSjPvRTFAcwkfRflaoO/EAvniJiYFrJ5FQA\r\nmQLWA/z9E0RnbOZEevBfuLsG9wke30QDnXfYbFTN1lDo8IedWWalcXsz1RRZ\r\nNMewenuOhT3s4wXfcAXfPp7iWyLIF9905sYH8GZwT63qZwJVaqVNXugFMhA/\r\nnQAHgqHvnP3icr7CJx4h3MRwrkYI8dfjIUphe5iuBUzcughgd5QSasoL2QbZ\r\nUma4Vjyg4D+f4kCYYL90jNw7TKpjgPRNcwFtV9ZEOiHO9qiifwYFnUoPaec4\r\nFj7nZil/TqvaAiPq1D8oW8MNRyNNDjSsZkOOR6MjC3M+ZPQchMcNOLBeeJoF\r\nnHLGFYSvfuvrRtqjwq7n4mSZf3OSESVT+cxWI25SUY6FOVvB11Qwn5j/WjUa\r\nuO8AuKimE/gPXUlfKz4OsFlKYM8LxHPN+t8l1OTCw8ZoxpZnr3Iy1f4ivyNH\r\nLSWqUNlaE5o6kSVTweJXc2TXv7mKFqlFI09GRw3xLQKVCYannRcYn/myqNG6\r\nuTuCM/HY/0BzH7Cmfock+trPpO6N52fLAfc4yLhQJsNQBl8cFFhw6Bp0HoM1\r\nyhCE2jK0tclzlEEd5BauJ7OrZUMkZna+QGoFMq2BIB/RFbAeFmcbEpuuJQMp\r\nsXcdhzJhLIHnjqykITDYVh20tvCdppv1eOw=\r\n=LMjE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/audiorecorder.js","gitHead":"962b7af6d28599441857a7ce794559963d35a0ef","scripts":{"build":"webpack && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/bobbles911/simple-audio-recorder.git","type":"git"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.5_1675631671735_0.34719027921787693","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"simple-audio-recorder","version":"0.0.6","keywords":["audio","sound","recorder","mp3","encoder","microphone"],"license":"MIT","_id":"simple-audio-recorder@0.0.6","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"2ebbd1feeb051f3e874514c5ec4da6f78218f911","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-0.0.6.tgz","fileCount":15,"integrity":"sha512-K1qbzNfVpIeTzMI/xHQjRsJ/qzIeqmtw89hd0TBFlLpYtFhDNu3QK+rsKmMbw/e6TpLfyPNhRTApJ+ENFjIAQw==","signatures":[{"sig":"MEUCIQChsIzc7685G2VcMUJ9MBKHxon+2x+4lKS8+mFOvpEC/gIgTGW+OgJXg2xdPS1j1fnE17T/ir1iJQYOZE+B+uIn1VE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":312932,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj5VZ8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriFA/7BI+AUwWLUqxqdD0E5nplc+0GBwebvdIrNgxGJMQi3niadFDh\r\nmRd196+ViOdm/RrQdpEH+XTskKRWqi9e/O2+sQ3T5P9zdUkOdkwZGcsjvB3D\r\nmz4TPp0UZkR2ExdYFxveE63cQSi4Tn2OiQfKxk1jJmZYcmz8I88BoOsGdYMR\r\n9wJ5WZ7LZksK2LvSbfHhptsMVjJ+fdjCyd3Z/5mmAGFfaXzkQsmv3x/6grNb\r\nosJQL/jOh3N+P/HWFZKfeUDb1jQez4t5b/Tua+dIYtacTb0t2Fr6DZTOidea\r\nOAO//9bs9HWAFXJ2mPtk7cZGfAmSBworIF4L/P3hBOdBEnaZdwNqgS4WjeCK\r\nL+Ps1rBibBFGNvmfFpZpU/iWU/CU+YYaE5nyfG2JN2+znT+bw+uFNe7+MEpg\r\nunEOTXqDd1SpI85afzVUiC0j6M5zvsC6LtubfmDGm2mlceHXA6QVKJKdLMrQ\r\npQDjK53RhtnjKYrPoRV6Gwyo7ixwqNlFEvuGBpHeVypZuU2QdsSbPov0yBqy\r\nhDlO+lV0PiG/2WsX4LFq0KoROdlP0gPsTVctph5OIbI/Vb81l3cXrExSVN5n\r\nWaHip/FrzHpTpw3WZjB2IAfVfPI6Zv5YlaU4MsmyCRR63AYG3UF8SUFW6REX\r\nLW3DmE4PQidIbSOztg+nGt/PP5pgC/zq1L0=\r\n=Wtoc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/audiorecorder.js","gitHead":"a015bab54a3d4bf5fda675ebe924bb46cd461bbf","scripts":{"build":"webpack && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"8.19.2","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"16.18.1","dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_0.0.6_1675974267843_0.5382034790752126","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"simple-audio-recorder","version":"1.0.1","keywords":["audio","sound","recorder","mp3","encoder","microphone"],"license":"MIT","_id":"simple-audio-recorder@1.0.1","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","dist":{"shasum":"1db0fed16e0a5ba3706e99dd0ec7da418c3c74f2","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.0.1.tgz","fileCount":26,"integrity":"sha512-kt/3RODU0pZIUgTN9LBjExSYMKJh3u8RQgkQ2Eavm0xCXeogegFaTYdw+dDDLLFu20vlQB/qKLrLllviyy8aXw==","signatures":[{"sig":"MEUCIE6pUHaAwbGvaI3PVTDrlYPfxvd7VAUgfZ2ua2Ll8VSuAiEAyqhbUOfw1tjfKbeLkfiiKlpbmJl7U9c7W6u8AE1ocL4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":315847},"main":"dist/audiorecorder.js","scripts":{"build":"webpack && webpack --config webpack.worker-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"live-server --open=/examples/main-example/\""},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"dependencies":{"lamejstmp":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.0.1_1696683448805_0.22574749455218157","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"simple-audio-recorder","version":"1.1.0","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.1.0","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","dist":{"shasum":"28d937d08bd81c02b0e62c3ded5e0c2d0598c521","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.1.0.tgz","fileCount":38,"integrity":"sha512-WIhE/S8j3LJ0vytbZnE5vDHEXGNt1ymmXR25xyTSX5piEpFxVuWrF1jkM9RDui+fOC627pBz5YO13CIGz+MfWw==","signatures":[{"sig":"MEQCIHaRCUOxdhbYF7vG3527iSNdsFJ7bzZsXn/TxKfDtlf3AiAm5OKsytL6BxF5suC/yEvRLCNspapR5ONhlMZR0sPj1Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":522328},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.1.0_1697019692038_0.9194117506338282","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"simple-audio-recorder","version":"1.2.0","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.2.0","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"2f62e951a144c24a5bfe8f4841112a2bc175edc3","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.2.0.tgz","fileCount":6015,"integrity":"sha512-Fpn8UruNQFKpkZbYgKhl1zUvRVjOlFcf42CM1ys7Iq44Fmrglb30ai4Vmnuc4W22R31x/PMaauhqPTTxiF2M8Q==","signatures":[{"sig":"MEYCIQCLnJWkYxtDdk7DshnzQx2s/ur+w/DO/sD74yiJaR1JmgIhAIvExDA6CqPbbSfVcPnDpGppD+RtNvB2tQgg3rR5Ifxq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":109910374},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"gitHead":"126d4be833418f1d7667ae57ef6b963e5eb19f55","scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"10.2.3","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.2.0_1708774980100_0.4561159641796755","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"simple-audio-recorder","version":"1.2.1","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.2.1","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"6b067d4186da9972d052ad1a129af21187e4bc01","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.2.1.tgz","fileCount":31,"integrity":"sha512-qAEvFZ0WKcaTrlJ3CA2PWTFIAXs9FvZ23A+4vBnP0hEw8QvOdx7gLbv0JyYmH4pNnciutaWokndREOOlpY4W6w==","signatures":[{"sig":"MEYCIQDD0WVlr+WNbDGGGwpCc4JGFOS/kIIYIVyRSG9VuuHDWQIhAMHyUX57/Qwb6uuQk0Ntf/neoCI6ofkJKEOQDVVCnMDe","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":441895},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"gitHead":"15a265566b0bbb2c3bee1a99b54087194ebf5edc","scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"10.2.3","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.2.1_1708775944040_0.7304630522407352","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"simple-audio-recorder","version":"1.2.2","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.2.2","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"dab1d9511035c37ff599a30596b4bec0972f3b48","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.2.2.tgz","fileCount":31,"integrity":"sha512-cGTY6US/3mbMKVO73OArPZL88iwVDYSSWd9PcUYftZSQxW4/uxuDrjoMtiNFiuUOz/q8ckJ8D3ujK7UyKykLRg==","signatures":[{"sig":"MEUCIQDwMAJZwWB4exWTfivq2GkMLrUbGQ/aTKM+m6ND/DOU+gIgPYudQyD/LDIsQ27bkGWvbi8JH2hg5/Mu1R1SimYK2TY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":441905},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"gitHead":"0e35f7445d50ff86ba784d5ef4764f8421693700","scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"10.2.3","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.2.2_1709378643330_0.5312769147121634","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"simple-audio-recorder","version":"1.2.3","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.2.3","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"fd970e7f8d11c002d879b16392eebcebeed2e97a","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.2.3.tgz","fileCount":31,"integrity":"sha512-x8S7eMzdDlJtV/uRhbFjDcixmYtwEfYIXQ+xyh0CvF3ztkc5+MQ0kdfWhAh8jt8s8m8zWLQgGcLP0BLeCuNh3Q==","signatures":[{"sig":"MEQCIByUEwJ19Q1gGHPS6yYTtK7OO3qeeXTG4pDK687uxCl8AiBey1bFVHE644z2mJOwPzHlGMZDQ618cnQGg/uofO3fmg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":441910},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"gitHead":"8292b715f11fecb467d8fc1a0a3c9d3d146a5e58","scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"10.2.3","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.2.3_1709379062437_0.3326338010260499","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"simple-audio-recorder","version":"1.2.4","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"license":"MIT","_id":"simple-audio-recorder@1.2.4","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"homepage":"https://github.com/vocaroo/simple-audio-recorder","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"dist":{"shasum":"e283188aae7f4f5dce19e09277f5c06c96b43fe3","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.2.4.tgz","fileCount":31,"integrity":"sha512-LdLsPu4nbmVwKwQOfLoQmO6kPGcIs8EtxvxtMbdEPyG/ROSnBMnkU3TOVjk9mMl9FjWRUP3tvQEMxz27rMvcwg==","signatures":[{"sig":"MEQCIA8o3dC+Yeg8VVj863UPKbO0y9idtSC0vOcWjk8vPRQOAiBBLS/P7hw3Y1cRoZVS7pvfH7tRnf+RVmSBjAZ+cUz+mQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":442026},"main":"dist/audiorecorder.js","exports":{".":"dist/audiorecorder.js","./react":"dist/react.js"},"gitHead":"2ad17f7d47bd9fceeb12755d74cb0156efcb3c1f","scripts":{"build":"webpack && webpack --config webpack.worker-config.js && webpack --config webpack.react-config.js","start":"concurrently \"webpack --watch\" \"webpack --watch --config webpack.worker-config.js\" \"webpack --watch --config webpack.react-config.js\" \"live-server --open=/examples/main-example/\"","postbuild":"rm dist/*.LICENSE.txt"},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"repository":{"url":"git+https://github.com/vocaroo/simple-audio-recorder.git","type":"git"},"_npmVersion":"10.2.3","description":"Web audio recording library with encoding to mp3 and chunked output","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"devDependencies":{"webpack":"^5.75.0","lamejstmp":"1.0.1","@babel/core":"^7.20.5","live-server":"1.2.1","webpack-cli":"^5.0.1","babel-loader":"^9.1.0","concurrently":"^7.6.0","@babel/preset-env":"^7.20.2"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/simple-audio-recorder_1.2.4_1724363802774_0.01609345978657184","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"simple-audio-recorder","version":"1.3.0","description":"Web audio recording library with encoding to mp3 and chunked output","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"homepage":"https://github.com/vocaroo/simple-audio-recorder","repository":{"type":"git","url":"git+https://github.com/vocaroo/simple-audio-recorder.git"},"type":"module","main":"dist/index.cjs","module":"dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","default":"./dist/index.mjs"},"./react":{"import":"./dist/react.mjs","require":"./dist/react.cjs"},"./umd":"./dist/audiorecorder.min.js"},"sideEffects":false,"scripts":{"build":"NODE_ENV=production rollup -c","dev":"concurrently \"rollup -c -w\" \"live-server --open=/examples/main-example/\""},"license":"MIT","devDependencies":{"@babel/core":"^7","@babel/preset-env":"^7","@rollup/plugin-babel":"^6","@rollup/plugin-commonjs":"^25","@rollup/plugin-node-resolve":"^15","@rollup/plugin-replace":"^5","@rollup/plugin-terser":"^0.4.4","concurrently":"^7.6.0","lamejstmp":"1.0.1","live-server":"1.2.1","rollup":"^4"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_id":"simple-audio-recorder@1.3.0","gitHead":"ccacd38188e4cdaf14a82566be537a369b6a6cbb","bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-vuuUj6odZrbsErNE+lrCamCQLF+/4n1Owajj2Vu3Eoc0HELxu3WYVdMs+LwtSlE/qwGxGW2+a3+BL9FT98Z3/g==","shasum":"f66c9a35dd8df4ca1ea6601c52cd722a49c4ced6","tarball":"https://registry.npmjs.org/simple-audio-recorder/-/simple-audio-recorder-1.3.0.tgz","fileCount":16,"unpackedSize":1358802,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDW/ahOdxlXzvND6qJ8cjIpY9dCi2lyj81BTM9UlctHPAIhAI1cUjL7Gu2pLUUaiKXHiMKTVkHPgu43dCDm4kL3IT/R"}]},"_npmUser":{"name":"bobbles911","email":"dan@xzist.org"},"directories":{},"maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/simple-audio-recorder_1.3.0_1756847929116_0.8098694296291402"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-22T21:42:09.651Z","modified":"2025-09-02T21:18:49.609Z","0.0.1":"2023-01-22T21:42:09.805Z","0.0.2":"2023-01-30T14:07:20.191Z","0.0.3":"2023-02-04T16:10:55.953Z","0.0.4":"2023-02-04T20:45:55.498Z","0.0.5":"2023-02-05T21:14:32.068Z","0.0.6":"2023-02-09T20:24:28.065Z","1.0.1":"2023-10-07T12:57:29.100Z","1.1.0":"2023-10-11T10:21:32.442Z","1.2.0":"2024-02-24T11:43:00.678Z","1.2.1":"2024-02-24T11:59:04.255Z","1.2.2":"2024-03-02T11:24:03.516Z","1.2.3":"2024-03-02T11:31:02.732Z","1.2.4":"2024-08-22T21:56:43.039Z","1.3.0":"2025-09-02T21:18:49.391Z"},"bugs":{"url":"https://github.com/vocaroo/simple-audio-recorder/issues"},"license":"MIT","homepage":"https://github.com/vocaroo/simple-audio-recorder","keywords":["audio","sound","recorder","mp3","encoder","microphone","react","hook"],"repository":{"type":"git","url":"git+https://github.com/vocaroo/simple-audio-recorder.git"},"description":"Web audio recording library with encoding to mp3 and chunked output","maintainers":[{"name":"bobbles911","email":"dan@xzist.org"}],"readme":"# Simple Audio Recorder\n\n![](https://raw.githubusercontent.com/bobbles911/simple-audio-recorder/master/.github/GitHubAudioRecorderHeader.png)\n\nA simple web audio recording library with encoding to MP3 (using [lamejs](https://github.com/zhuker/lamejs)) and optional streaming/chunked output. Made by [Vocaroo, the quick and easy online voice recorder](https://vocaroo.com)!\n\n**NOTE**: *This library is considered basically feature complete. However, it's definitely not abandoned and is used by thousands of Vocaroo users every day. If anything needs fixing, it will be done, but most issues such as occasional audio glitches are the fault of the web browsers rather than this library.*\n\nNow including both a vanilla-js version and an easy to use react hook and component!\n\n### Vanilla-js\n\n```javascript\nimport AudioRecorder from \"simple-audio-recorder\";\n\nAudioRecorder.preload(\"mp3worker.js\");\n\nlet recorder = new AudioRecorder();\n\nrecorder.start().then(() => {\n\tconsole.log(\"Recording started...\");\n}).catch(error => {\n\tconsole.log(error);\n});\n\nrecorder.stop().then(mp3Blob => {\n\tconsole.log(\"Recording stopped...\");\n\n\tconst newAudio = document.createElement(\"audio\");\n\tnewAudio.src = URL.createObjectURL(mp3Blob);\n\tnewAudio.controls = true;\n\tdocument.body.append(newAudio);\n}).catch(error => {\n\tconsole.log(error);\n});\n```\n\n### React hook and component\n\n```JSX\nimport {SimpleAudioRecorder, useSimpleAudioRecorder} from \"simple-audio-recorder/react\";\n\nexport default function App() {\n\tconst recorder = useSimpleAudioRecorder({workerUrl : \"mp3worker.js\"});\n\t\n\tconst viewInitial = <button onClick={recorder.start}>start recording</button>;\n\tconst viewRecording = <button onClick={recorder.stop}>stop recording</button>;\n\tconst viewError = (<>{viewInitial} <div>Error occurred! {recorder.errorStr}</div></>);\n\t\n\treturn (\n\t\t<div>\n\t\t\t<SimpleAudioRecorder\n\t\t\t\t{...recorder.getProps()}\n\t\t\t\tviewInitial={viewInitial}\n\t\t\t\tviewRecording={viewRecording}\n\t\t\t\tviewError={viewError}/>\n\t\t\t\n\t\t\t{recorder.mp3Urls.map(url => \n\t\t\t\t<audio key={url} src={url} controls/>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n```\n\n## Examples\n\n### On codepen\n\n- [Minimal promise example](https://codepen.io/bobbles911/pen/JjBzPvm)\n- [Main example of all features](https://codepen.io/bobbles911/pen/rNrRBZd)\n- [React hook and component example](https://stackblitz.com/edit/react-61mepu?file=src%2FApp.js)\n\n### Included in the project\n\n- [Minimal promise example](examples/minimal-example-promises)\n- [Main example of all features](examples/main-example)\n- [React hook and component example](examples/react-hook-example)\n\nTo run the built in examples in the ./examples/ directory, start a dev server from the project root and then navigate to them.\n\nOr start developing with:\n\n```bash\nnpm install\nnpm run dev\n```\n\n## Usage\n\n### Including\n\n```javascript\nnpm install simple-audio-recorder\n```\n\n```javascript\nimport AudioRecorder from \"simple-audio-recorder\";\n```\n\nAlternatively, just use a script tag:\n```javascript\n<script type=\"text/javascript\" src=\"audiorecorder.js\"></script>\n```\nAlso, you must make sure that you distribute the web worker file \"mp3worker.js\" along with your application.\n\n### Preload the MP3 encoder worker:\n\n```javascript\n// This is a static method.\n// You should preload the worker immediately on page load to enable recording to start quickly\nAudioRecorder.preload(\"./mp3worker.js\");\n```\n\n### Create an audio recorder\n\n```javascript\nlet recorder = new AudioRecorder({\n\trecordingGain : 1, // Initial recording volume\n\tencoderBitRate : 96, // MP3 encoding bit rate\n\tstreaming : false, // Data will be returned in chunks (ondataavailable callback) as it is encoded,\n\t\t\t\t\t\t// rather than at the end as one large blob\n\tstreamBufferSize : 50000, // Size of encoded mp3 data chunks returned by ondataavailable, if streaming is enabled\n\tconstraints : { // Optional audio constraints, see https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n\t\tchannelCount : 1, // Set to 2 to hint for stereo if it's available, or leave as 1 to force mono at all times\n\t\tautoGainControl : true,\n\t\techoCancellation : true,\n\t\tnoiseSuppression : true\n\t},\n\n\t// Used for debugging only. Force using the older script processor instead of AudioWorklet.\n\t// forceScriptProcessor : true\n});\n```\n\n### Use promises to start and stop recording\n\n```javascript\nrecorder.start().then(() => {\n\tconsole.log(\"Recording started...\");\n}).catch(error => {\n\tconsole.log(error);\n});\n\nrecorder.stop().then(mp3Blob => {\n\t// Do something with the mp3 Blob!\n}).catch(error => {\n\tconsole.log(error);\n});\n```\n\n### Or use events\n\n```javascript\nrecorder.onstart = () => {\n\tconsole.log(\"Recording started...\");\n};\n\nrecorder.onstop = (mp3Blob) => {\n\t// Do something with the mp3 Blob!\n\t// When using onstop, mp3Blob could in rare cases be null if nothing was recorded\n\t// (with the Promise API, that would be a stop() promise rejection)\n};\n\nrecorder.onerror = (error) => {\n\tconsole.log(error);\n};\n\n// if onerror is set, start and stop won't return a promise\nrecorder.start();\n\n// later...\nrecorder.stop();\n```\n\n### Handle encoded data chunks\n\nWant to receive encoded data chunks as they are produced? Useful for streaming uploads to a remote server.\n\n```javascript\nlet recorder = new AudioRecorder({\n\tstreaming : true,\n\tstreamBufferSize : 50000\n});\n\nlet audioChunks = [];\n\nrecorder.ondataavailable = (data) => {\n\t// 50 KB of MP3 data received!\n\taudioChunks.push(data);\n};\n\nrecorder.start();\n\n// No mp3Blob will be received either with the promise API or via recorder.onstop if streaming is enabled.\nrecorder.stop().then(() => {\n\t// ...do something with all the chunks that were received by ondataavailable\n\tlet mp3Blob = new Blob(audioChunks, {type : \"audio/mpeg\"});\n});\n```\n\n### Other functions/attributes\n\n```javascript\nrecorder.start(paused = false); // Supports starting in paused mode\nrecorder.pause();\nrecorder.resume();\n\nrecorder.setRecordingGain(gain); // Change the volume while recording is in progress (0.0 to 1.0)\n\nrecorder.time; // Access the current recorded duration in milliseconds. Time pauses when recording is paused.\n\n// Get the amount of data remaining to be encoded\n// Will only be much above zero on very slow systems as mp3 encoding is quite fast.\n// A large value indicates there might be a delay between calling stop() and getting the mp3Blob\nrecorder.getEncodingQueueSize();\n\nAudioRecorder.isRecordingSupported(); // Static method. Does this browser support getUserMedia?\n```\n\n### Error handling\n\nError handling can be done either via promises and catching errors, or via the onerror event handler if it is set.\n\n#### Errors\n\nThese are named via the error.name property\n\n- **CancelStartError** - if stop() is called while start() has not completed (perhaps due to slow loading of the worker), then both the start and stop promises will reject with this error. However, if using the onerror event handler this error will **not** be given (as it's not _really_ an error, but a deliberate action of the user). In that case, the onstop event handler will receive null instead of an mp3 Blob.\n- **WorkerError** - there was some problem loading the worker, maybe the URL was incorrect or the internet broke\n- _getUserMedia errors_ - any error that [getUserMedia](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia) can fail with, such as NotAllowedError or NotFoundError\n- _Miscellaneous unnamed errors_ - if you do something like calling start() while recording has already started, or forgetting to call preload() before creating an AudioRecorder, then you'll probably see some other errors.\n\n### React hook and component\n\nPlease see the [react hook and component example](examples/react-hook-example) for a working example of usage.\n\n#### Importing\n\n```javascript\nimport {\n\tuseSimpleAudioRecorder,\n\tSimpleAudioRecorder,\n\tpreloadWorker,\n\tRecorderStates\n} from \"simple-audio-recorder/react\"\n```\n\n#### useSimpleAudioRecorder hook\n\n```javascript\nconst {\n\terror, // Any current error object, or null\n\terrorStr, // Error object as string, or null\n\ttime, // Current recorded time in milliseconds\n\tcountdownTimeLeft, // Time left of the countdown before recording will start, if one was set\n\tmp3Blobs, // List of all recordings as a blob\n\tmp3Urls, // List of all recordings as URLs (created with URL.createObjectURL)\n\tmp3Blob, // Single most recent recording blob\n\tmp3Url, // Single most recent recording URL\n\tstart, stop, pause, resume, // Recording functions\n\trecorderState, // Current state of recorder (see RecorderStates)\n\tgetProps // Function to get the props that can be passed to the SimpleAudioRecorder react component\n} = useSimpleAudioRecorder({\n\tworkerUrl, onDataAvailable, onComplete, onError, options, cleanup = false, timeUpdateStep = 111, countdown = 0\n})\n```\n\n- **workerUrl** - URL of the mp3 encoder. Can alternatively be specified using preloadWorker()\n- **onDataAvailable** - optional callback to receive encoded data as it is created.\n- **onComplete** - optional callback, receives `{mp3Blob, mp3Url}` when recording and encoding is finished.\n- **onError** - optional callback, receives any error object.\n- **options** - see the documentation for AudioRecorder.\n- **cleanup** - if true, any mp3Urls created via URL.createObjectURL will be freed when unmounting. By default, this is false, and you may need to free them yourself if there is an excessive amount of recordings.\n- **timeUpdateStep** - how often in milliseconds the returned time will be updated.\n- **countdown** - a countdown time in milliseconds until recording will actually start, running from after start() was called and microphone access has been granted. Defaults to zero.\n\n#### SimpleAudioRecorder component\n\nThis is a very simple state machine component that shows a different view component depending on the current recorder state.\n\n```javascript\nSimpleAudioRecorder({\n\t// As returned by useSimpleAudioRecorder\n\trecorderState,\n\t// The components to display in each of the states.\n\t// Only viewInitial and viewRecording are absolutely required.\n\tviewInitial, viewStarting, viewCountdown, viewRecording, viewPaused, viewEncoding, viewComplete, viewError\n})\n```\n\n- **viewInitial** - initial state of the recorder, you should show a \"start recording\" button that calls the `start` function from useSimpleAudioRecorder.\n- **viewStarting** - optional state, will show when recording is starting but has not yet started, for example while the user is responding to the microphone access prompt.\n- **viewCountdown** - optional, will show when in the countdown state if a greater than zero countdown time has been set.\n- **viewRecording** - required state, recording is in progress! You may want to show stop and pause buttons here that call the `stop` and `pause` functions.\n- **viewPaused** - required if the pause function is used. Show resume or stop buttons.\n- **viewEncoding** - optional. This may show in very rare cases when the user has a very slow device and mp3 encoding is still ongoing after recording has been stopped.\n- **viewComplete** - optional, shown after recording has completed successfully. Defaults to viewInitial.\n- **viewError** - optional, but highly recommended. Shown when there is a recording error. You can display the contents of the error object or errorStr from useSimpleAudioRecorder.\n\n#### preloadWorker(workerUrl)\n\nInstead of passing a workerUrl to `useSimpleAudioRecorder`, it's better to call this function somewhere at the start of your app to preload the worker as soon as possible.\n\n#### RecorderStates\n\nAn enumeration of possible recorder states. Used by the SimpleAudioRecorder component.\n\n```javascript\nRecorderStates = {\n\tINITIAL,\n\tSTARTING,\n\tRECORDING,\n\tPAUSED,\n\tENCODING,\n\tCOMPLETE,\n\tERROR,\n\tCOUNTDOWN\n}\n```\n\n### Known issues\n\n#### iOS/Safari\n\nSimple Audio Recorder uses an AudioWorkletNode to extract the audio data, where supported, and falls back to using the deprecated ScriptProcessorNode on older browsers. However, there seem to be some occasional issues using AudioWorkletNode on iOS/Safari. After about 45 seconds, audio packets from the microphone start to get dropped, creating a recording that is shorter than expected with stuttering and glitches. So currently, the deprecated ScriptProcessorNode will always be used on iOS/Safari.\n\nAFAIK this is an unsolved issue, perhaps related to Safari's implementation of AudioWorklets and them not being given enough CPU priority. These issues only appear on some devices. Curiously, similar glitches have also been experienced when using the old ScriptProcessorNode on Chrome on other platforms.\n\nChrome isn't any better on iOS either as they are forced to use Safari under the hood (somehow, [this feels rather familiar](https://en.wikipedia.org/wiki/United_States_v._Microsoft_Corp.)).\n\n## Licenses\nSimpleAudioRecorder is mostly MIT licenced, but the worker is probably LGPL as it uses [lamejs](https://github.com/zhuker/lamejs).","readmeFilename":"README.md"}