{"_id":"@amirseifi/react-voice-recorder","_rev":"22-ce152cdb920e97e50abac350e6f63351","time":{"created":"2022-10-09T07:24:26.317Z","0.0.1":"2022-10-06T08:03:41.669Z","modified":"2022-10-10T08:55:36.253Z","0.0.2":"2022-10-06T08:16:12.707Z","0.0.3":"2022-10-06T08:19:23.012Z","0.0.4":"2022-10-08T07:50:30.557Z","0.0.5":"2022-10-08T11:44:26.612Z","0.0.6":"2022-10-08T13:45:52.050Z","0.0.7":"2022-10-08T13:58:55.197Z","0.1.0":"2022-10-09T07:24:26.602Z","0.1.1":"2022-10-09T10:43:29.702Z","0.1.2":"2022-10-09T10:45:06.271Z","0.1.3":"2022-10-09T11:03:39.211Z","1.0.0":"2022-10-10T08:13:51.340Z","1.0.1":"2022-10-10T08:55:36.172Z"},"name":"@amirseifi/react-voice-recorder","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@amirseifi/react-voice-recorder","description":"A react package for recording voice","license":"MIT","version":"1.0.0","type":"module","author":{"name":"Amiram-sf"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview"},"dependencies":{"media-core":"^1.1.5","react":"^18.2.0","react-dom":"^18.2.0"},"devDependencies":{"@types/react":"^18.0.17","@types/react-dom":"^18.0.6","@vitejs/plugin-react":"^2.0.1","typescript":"^4.6.4","vite":"^3.0.7","vite-plugin-dts":"^1.4.1"},"peerDependencies":{"react":"^18.2.0 || 18.x","react-dom":"^18.2.0 || 18.x"},"repository":{"type":"git","url":"git+https://github.com/Amiram-sf/react-voice-recorder.git"},"homepage":"https://github.com/Amiram-sf/react-voice-recorder.git#readme","keywords":["typescript","recorder","voice recording","media recording","audio recorder","react voice recorder"],"main":"./dist/main.umd.js","module":"./dist/main.es.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/main.es.js","require":"./dist/main.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"gitHead":"7ab96700fdb85e00354b103f7b1a22d0d55d5249","bugs":{"url":"https://github.com/Amiram-sf/react-voice-recorder/issues"},"_id":"@amirseifi/react-voice-recorder@1.0.0","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-dWgPblOP0Dkn08cM+eCxGEcebVrg0U1JeYrx0j8LvPPm0ww9EWffej16DxdbldJeKAXgBHDFEpBMCY/67nYz4g==","shasum":"dd2f4294c8de198ddeb161b16f0596682db0a099","tarball":"https://registry.npmjs.org/@amirseifi/react-voice-recorder/-/react-voice-recorder-1.0.0.tgz","fileCount":32,"unpackedSize":87640,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbUlSLsXaPa2FgE/XdHeyYLQ1u5Wjl6ZLR+ffFYtOIowIgeKKwyuxm5rFr8Mk8rAl93qijHg/TSdsRQrvVYGSfKCo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ9Q/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp44A/9FlmBEielgoCkpMXuz3/RV7OMDNXduVmT9V3H1L2yoAJcgwl6\r\nnbOdF20EFuux7ZW1KQZoDZb0hOS7xqQ7v9w21UWoXROE9CSXDXzcxZr4hlOZ\r\n6CCw83Pfxx/n7MYOnciUaTJcy9uzS0ePaesp84r/S7/P3X0JT6hgV/FSblN1\r\njqv3thPuI0IoW5PeFzn/03cJ1Fu9zc9QG5NmOvlZqe/aweWQ2AqPcLO835d1\r\nJUBXObpAGWQnRtvbFaFov34sTBKr6FSlUrxYNELCnHnqotiUuUGkGd9Rq1ND\r\n0ueYz78L5SPzXbk36w/R6+Xts3s1HBZne3/DPIPpxxCgL0lYl7CPSQX7ilbJ\r\nlHgSIw2n954bZL46tm10z7cBxgqdYv3+RApwiN9vFjZujK+iTxqiIdJ0km0f\r\nkuwm4ZI37PmxUYMnMGbQWLiE0n7F/uHzSoXG7NYZ4YCgZr0nPoxb02WHciHy\r\nIoEkhtIqsVMVE1TtWVExqC6/7fkJj4jLzHCMqmbx9o9CgFKiI4WVDk1oNOp3\r\nwwA72nQQpY2j6Z5mO6DMV6DOYWmjZZNdu2oyG9LsXKNza1E4RB8lfQxxDulD\r\nrJqrEVaMSHIYwY6dzCHSDTPo1td7vehVl8BkNxzxMF27Shy7wYYN7t/sjgBv\r\nIRHNL6kSa7i/RmxsAlfZ6cP1QadF49uwTRs=\r\n=4FWx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amirseifi","email":"amir1376.seify@gmail.com"},"directories":{},"maintainers":[{"name":"amirseifi","email":"amir1376.seify@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-voice-recorder_1.0.0_1665389631171_0.5463876542558033"},"_hasShrinkwrap":false},"1.0.1":{"name":"@amirseifi/react-voice-recorder","description":"A react package for recording voice","license":"MIT","version":"1.0.1","type":"module","author":{"name":"Amiram-sf"},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview"},"dependencies":{"media-core":"^1.1.5","react":"^18.2.0","react-dom":"^18.2.0"},"devDependencies":{"@types/react":"^18.0.17","@types/react-dom":"^18.0.6","@vitejs/plugin-react":"^2.0.1","typescript":"^4.6.4","vite":"^3.0.7","vite-plugin-dts":"^1.4.1"},"peerDependencies":{"react":"^18.2.0 || 18.x","react-dom":"^18.2.0 || 18.x"},"repository":{"type":"git","url":"git+https://github.com/Amiram-sf/react-voice-recorder.git"},"homepage":"https://github.com/Amiram-sf/react-voice-recorder.git#readme","keywords":["typescript","recorder","voice recording","media recording","audio recorder","react voice recorder"],"main":"./dist/main.umd.js","module":"./dist/main.es.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/main.es.js","require":"./dist/main.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"gitHead":"d03bbcf75a655c72ec116dc908e2a1ee37a163e3","bugs":{"url":"https://github.com/Amiram-sf/react-voice-recorder/issues"},"_id":"@amirseifi/react-voice-recorder@1.0.1","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-9Hd38ySOio/uoY9LtCEJqBc6M+xedLWck6nEnCU08gzbnfHzbWJqbcCRgUSeEoAGm1PIsSQ7J5LLr+nKormTBQ==","shasum":"46f8c4ce575bdcfb5c1f22f5ee5456971fbf34f3","tarball":"https://registry.npmjs.org/@amirseifi/react-voice-recorder/-/react-voice-recorder-1.0.1.tgz","fileCount":32,"unpackedSize":87766,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfj2Rl+wXIQUHAk6t6cD4F6fzukOyElbvva53ygHap1AiEAwWydDII/T7tYK8c5igV9zVQoc95oFz1/UVk579Rgyck="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjQ94IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmof+g//YNwFmIGIZaKP2GhrSaLJUcrkKzR3UeHrV0EDh9PL00zw4mFx\r\nLocb+UwgKSnpUiY4jRPwvuyT3E+pTCDlcWrzqCwP7ULiVs8dQEslNsfgiazY\r\nzcDCkAiRdov+aoZosrPkl9p2ilz4RD2N7ZY23ElmiWl9lcUhjYrZQY9Bt8A5\r\nxTmfggahkgdgX+xAUqES04MvS8rMgfczV8i1TjJhnsxnCLxNLDa3lzjmT9jx\r\nTof4+t5wWArTOgqGzhWjw53pdHr7nuPXngsbXyI7G561JkJaOzlkK3YP1SmY\r\nW5JElZ7m34y+TdblYjal8nnh19gmN5ltzGbCDjIEVjjfGztxD1MO2N7woYPY\r\ntXBIEmp15KD0FjBHDKZgka0bZ2gbznIzavPeJiGIGO2OY/G0a4IDU6wBCutJ\r\n8jGesCz4UcXS3/SgOp7GtmM4Gut3FjKJCHohyCdALkEn2J7Wdnwlolemr8Fc\r\nVXdsmyeCWnGKlrlR+sTrg5XUINb5LVnLUKHvjLBWyoi8b6B2oT+3FneOzeb8\r\nvudtDtm6w4wY7jzRsyvbv54q1hRuczc0fNMBtU1UiPWmRIooDQC+6bxlrueo\r\n7idOwR7g23e6ttjQlhp7aD3Y6rS9iKSacjz473rafPB4wdZpwmSLVffaq7tw\r\nFMMSWyCrOkST0t3V2RAagcbLnmmvaP2rjL4=\r\n=3Vm4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"amirseifi","email":"amir1376.seify@gmail.com"},"directories":{},"maintainers":[{"name":"amirseifi","email":"amir1376.seify@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-voice-recorder_1.0.1_1665392135986_0.40960935806053467"},"_hasShrinkwrap":false}},"maintainers":[{"name":"amirseifi","email":"amir1376.seify@gmail.com"}],"description":"A react package for recording voice","homepage":"https://github.com/Amiram-sf/react-voice-recorder.git#readme","keywords":["typescript","recorder","voice recording","media recording","audio recorder","react voice recorder"],"repository":{"type":"git","url":"git+https://github.com/Amiram-sf/react-voice-recorder.git"},"author":{"name":"Amiram-sf"},"bugs":{"url":"https://github.com/Amiram-sf/react-voice-recorder/issues"},"license":"MIT","readme":"# React Voice Recorder.\r\n\r\nA package for recording voice in react.\r\n\r\nYou can use this package [( Media Core )](https://www.npmjs.com/package/media-core) if you just want to get MediaRecorder.\r\n\r\n**Demo Link:** [react voice recorder](https://react-voice-recorder-website.vercel.app/)\r\n\r\n:warning: **Warning** :warning: This package work in localhost AND secure domain (HTTPS).\r\n\r\n:warning: **Warning** :warning: You must mount the component when you want to start the record and unMount the component when the record is complete.\r\n\r\n\r\n### Future Feature.\r\n\r\n* control seek icon in playback voice  ( with mouse or finger ).\r\n* show progress play in playback voice.\r\n* callback function for the requested timer.\r\n* possibility for changing icons.\r\n\r\n### How to use and props.\r\n\r\n------------\r\n\r\n|  Name | Required | Type |Description |\r\n| ------------ | ------------ | ------------ |  ------------ |\r\n| isLogging  | false | boolean | Log error while using the recorder in develop mode , default : false  |\r\n| audioBitsPerSecond  | false  | number | Set audioBitsPerSecond for the recording of voice  |\r\n| onPermissionDenied  | true  | function  |Function  |\r\n| onCancel  | true  | function  |Function  |\r\n| onDataAvailable  | true  | function  |Function  |\r\n\r\n\r\n**Sample :**\r\n\r\n\r\n\r\n    import { useState } from 'react'\r\n    import './App.css'\r\n    \r\n    import { AudioRecorder, IDataAvailable } from \"@amirseifi/react-voice-recorder\"\r\n    import \"@amirseifi/react-voice-recorder/dist/style.css\"\r\n    \r\n    function App() {\r\n    \r\n      const [isRecordMode, setIsRecordMode] = useState(false)\r\n      const [audioSrc, setAudioSrc] = useState(\"\")\r\n    \r\n      const onDataReady = (value: IDataAvailable) => {\r\n        const reader = new FileReader()\r\n    \r\n        reader.onload = (event) => {\r\n          if (event.target !== null)\r\n            setAudioSrc(event.target.result as string)\r\n        }\r\n        reader.readAsDataURL(value.value)\r\n    \r\n        setIsRecordMode(false)\r\n      }\r\n      const onCancel = () => {\r\n        setIsRecordMode(false)\r\n        setAudioSrc(\"\")\r\n      }\r\n    \r\n      const onPermissionDenied = () => {\r\n        setIsRecordMode(false)\r\n        setAudioSrc(\"\")\r\n        alert(\"Permission Denied\")\r\n      }\r\n    \r\n      return (\r\n        <div className=\"App\">\r\n    \r\n          {\r\n            audioSrc && (\r\n              <audio src={audioSrc} controls />\r\n            )\r\n          }\r\n    \r\n          <div className='chat-control'>\r\n            <div className='chat-control-container'>\r\n    \r\n    \r\n              {\r\n                !isRecordMode && (\r\n                  <button onClick={() => { setIsRecordMode(!isRecordMode) }}>click to record</button>\r\n                )\r\n              }\r\n              <div className='voice-recorder'>\r\n                {\r\n                  isRecordMode && (\r\n                    <AudioRecorder\r\n                      onCancel={onCancel}\r\n                      onDataAvailable={onDataReady}\r\n                      onPermissionDenied={onPermissionDenied}\r\n                      isLogging\r\n                    />\r\n                  )\r\n                }\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      )\r\n    }\r\n    \r\n    export default App\r\n    \r\n\r\n### Contributing\r\n\r\n------------\r\n\r\n\r\nFeel free to submit a PR if you found a bug (I might've missed many! 😀) or if you want to enhance it further.\r\n\r\nThanks!. Happy Recording!\r\n","readmeFilename":"README.md"}