{"_id":"@dargmuesli/vue-qrcode-reader","_rev":"11-c8468778e4b801f2993ec55d73204fad","name":"@dargmuesli/vue-qrcode-reader","dist-tags":{"vue3-compatibility":"3.1.0-vue3-compatibility.2","latest":"3.1.0-vue3-compatibility.12"},"versions":{"1.0.0-vue3-compatibility.1":{"name":"@dargmuesli/vue-qrcode-reader","version":"1.0.0-vue3-compatibility.1","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"scripts":{"build":"vue-cli-service build --target lib --name VueQrcodeReader src/index.js","lint":"vue-cli-service lint","build:docs":"vuepress build docs","dev":"vuepress dev docs"},"main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","dependencies":{"barcode-detector":"^1.0.0","callforth":"^0.3.1","core-js":"^3.6.5","vue":"^3.1.0","@vue/compat":"^3.1.0","webrtc-adapter":"7.7.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.5.13","@vue/cli-plugin-eslint":"^4.5.13","@vue/cli-service":"^4.5.13","@vue/compiler-sfc":"^3.1.0","@vue/eslint-config-prettier":"^6.0.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-prettier":"^3.1.3","eslint-plugin-vue":"^6.2.2","husky":"^4.2.5","lint-staged":"^9.5.0","prettier":"^1.19.1","semantic-release":"^17.1.1","vuepress":"^1.5.2"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"gitHooks":{"pre-commit":"lint-staged"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","lint-staged":{"*.{js,jsx,vue}":["vue-cli-service lint","git add"]},"repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"gitHead":"94e72181ae11bd116cff28b1b383c36480ad6fd9","_id":"@dargmuesli/vue-qrcode-reader@1.0.0-vue3-compatibility.1","_nodeVersion":"16.17.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-xk1wFkZXxR1ecG69TyxncUXRQIybRdwZhUTJG6mQ9I000/jXZYSL/PSyGcbRAHtQy3rodf2X1APpmY1zK90J9Q==","shasum":"45dfb1cfb7ba41e94cc41a8ca81fc73010e3426d","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-1.0.0-vue3-compatibility.1.tgz","fileCount":78,"unpackedSize":4016308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFJFJp5mX5gxYjpojLjU1CIrgNLsmY1c8MmH7O0g2jJ9AiA0bDxxsPXwikv1P1F/pCRsjYUjCyTbDS70HB/mzuZIkg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH+7OACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+4g//S7wnZUJ84OxiVuRoVivadOtHNcj2/8sygFa1Gkrdx9iSFZtd\r\nLy5Yh950YSoEdmrbs5h9srxAVpKyfr1QnVlLuDH0ENpHwYwa5SWdhHneDV+x\r\nl6HIT4Sgqhp71bNfLRi7TM8SiWFku2/ruqgKKvJ+XwD7f4qxBoiboOvmALqh\r\nWcdrYguw6JvIQYU8pwFAhD5sQtloG1wAku4SHzJsCRU9yZeFl1iol3qhsHLO\r\njcNRwMEOKddN2cOS5856lavU2+/69SVGy+3wG1aDFxGDP3pbGmkbsngpdLAz\r\nzm9OdyFp/Pa6AB9QuDECTOAq2CUVYtplWb4Kcev6g3+Hh0qqqjp0++cFiPMZ\r\nv/fFJnFtpb7SbQMggQfBIHK2c8Ra3Pdp2Si2BCmYpfgXcG8C8+In8XTYaWfr\r\nTiEv9/2Z2mkyKsOZs8xUY4G5xJx7zZVBeJnPNHJIJ7aYaFz5QkNZdmPyirfq\r\nfJbI1AoKKAtocN5fbs01qeWeN6Gz2JLuqJPIuveLUSWWxc9h/QJ32jMs8CN3\r\nVbP410aT8+JGjazAcdUxWNQ9d7Qk+4RnGwlf89CIaBv8u6WOFPogVfT+zWV8\r\ncR2NWKBiwtdPptMb8cjnlHLrAGV4faKL71n4YLfzD5AGjfN0yKZuDhR92gMa\r\nmJcnwZiSzwkUMtQWlP7+x/7Y+dazFe0xBm0=\r\n=zyXi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_1.0.0-vue3-compatibility.1_1663037134458_0.09699349767595544"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.1":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.1","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"scripts":{"build":"vue-cli-service build --target lib --name VueQrcodeReader src/index.js","lint":"vue-cli-service lint","build:docs":"vuepress build docs","dev":"vuepress dev docs"},"main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","dependencies":{"barcode-detector":"^1.0.0","callforth":"^0.3.1","core-js":"^3.6.5","vue":"^3.1.0","@vue/compat":"^3.1.0","webrtc-adapter":"7.7.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.5.13","@vue/cli-plugin-eslint":"^4.5.13","@vue/cli-service":"^4.5.13","@vue/compiler-sfc":"^3.1.0","@vue/eslint-config-prettier":"^6.0.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-prettier":"^3.1.3","eslint-plugin-vue":"^6.2.2","husky":"^4.2.5","lint-staged":"^9.5.0","prettier":"^1.19.1","semantic-release":"^17.1.1","vuepress":"^1.5.2"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"gitHooks":{"pre-commit":"lint-staged"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","lint-staged":{"*.{js,jsx,vue}":["vue-cli-service lint","git add"]},"repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"readme":"<p align=\"center\">\n  <img src=\"https://gruhn.github.io/vue-qrcode-reader/logo.png\" alt=\"Logo\" width=\"240\" height=\"240\" style=\"max-width: 100%;\">\n\n  <br>\n  <br>\n\n  <a href=\"https://vuejs.org/\">\n    <img src=\"https://img.shields.io/badge/vue-2%20&%203-brightgreen.svg\" alt=\"for Vue 2 and 3\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/dm/vue-qrcode-reader.svg\" alt=\"npm monthly downloads\">\n  </a>\n\n  <br>\n\n  <img src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" alt=\"is maintained? yes\">\n\n  <a href=\"http://opensource.org/licenses/MIT\">\n    <img src=\"https://img.shields.io/github/license/Naereen/StrapDown.js.svg\" alt=\"licence: MIT\">\n  </a>\n\n  <a href=\"https://github.com/Naereen/badges\">\n    <img src=\"https://img.shields.io/badge/badges-awesome-green.svg\" alt=\"badges = awesome\">\n  </a>\n\n  <br>\n\n  <a href=\"https://github.com/semantic-release/semantic-release\">\n    <img src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\" alt=\"uses semantic release\">\n  </a>\n\n  <a href=\"https://github.com/prettier/prettier\">\n    <img src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square\" alt=\"code style: prettier\">\n  </a>\n\n  <br>\n\n  <a href=\"https://bundlephobia.com/result?p=vue-qrcode-reader\">\n    <img src=\"https://badgen.net/bundlephobia/minzip/vue-qrcode-reader\" alt=\"size minified + gzipped\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/v/vue-qrcode-reader.svg\" alt=\"npm current version\">\n  </a>\n\n\n  <br>\n\n  <a href=\"https://github.com/vuejs/awesome-vue\">\n    <img src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Vue\">\n  </a>\n\n  <br>\n  <br>\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html\">live demos</a> |\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/api/QrcodeStream.html\">api reference</a>\n</p>\n\nA set of Vue.js components, allowing you to detect and decode QR codes, without leaving the browser.\n\n- :movie_camera: `QrcodeStream` accesses the device camera and continuously scans incoming frames.\n- :put_litter_in_its_place: `QrcodeDropZone` renders to an empty region where you can drag-and-drop images to be decoded.\n- :open_file_folder: `QrcodeCapture` is a classic file upload field, instantly scanning all files you select.\n\nAll components are responsive. Beyond that, close to zero styling. Make them fit your layout. Usage is simple and straight forward:\n\n```html\n<qrcode-stream @decode=\"onDecode\"></qrcode-stream>\n```\n\n```js\nmethods: {\n  onDecode (decodedString) {\n    // ...\n  }\n}\n```\n\n### Screenshots\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot1.png\" height=\"500\" alt=\"Screenshot 1\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot2.png\" height=\"500\" alt=\"Screenshot 2\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot3.png\" height=\"500\" alt=\"Screenshot 3\">\n</p>\n\n# Installation :package:\n\n## With NPM\n\nRun\n\n```bash\nnpm install vue-qrcode-reader\n```\n\nYou can import the components independantly\n\n```javascript\nimport { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader'\n\nconst MyComponent = {\n\n  components: {\n    QrcodeStream,\n    QrcodeDropZone,\n    QrcodeCapture\n  },\n\n  // ...\n))\n```\n\nor register all of them globally right away\n\n```javascript\nimport Vue from \"vue\";\nimport VueQrcodeReader from \"vue-qrcode-reader\";\n\nVue.use(VueQrcodeReader);\n```\n\n## Without NPM\n\nInclude the following JS file:\n\nhttps://unpkg.com/vue-qrcode-reader/dist/VueQrcodeReader.umd.min.js\n\nMake sure to include it after Vue:\n\n```html\n<script src=\"./vue.js\"></script>\n<script src=\"./VueQrcodeReader.umd.min.js\"></script>\n```\n\nAll components are automatically registered globally.\nUse kebab-case to reference them in your templates:\n\n```html\n<qrcode-stream></qrcode-stream>\n<qrcode-drop-zone></qrcode-drop-zone>\n<qrcode-capture></qrcode-capture>\n```\n\n# Troubleshooting :zap:\n\n#### I don't see the camera when using `QrcodeStream`.\n\n- Check if it works on the demo page. Especially the [Decode All](https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html) demo, since it renders error messages. If you see errors, consult the docs to understand their meaning.\n  - The demo works but it doesn't work in my project: Listen for the `init` event to investigate errors.\n  - The demo doesn't work: Carefully review the Browser Support section above. Maybe your device is just not supported.\n\n#### I'm running a dev server on localhost. How to test on my mobile device without HTTPS?\n\n- If your setup is Desktop Chrome + Android Chrome, use [Remote Debugging](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/) which allows your Android device to [access your local server as localhost](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server).\n- Otherwise use a reverse proxy like [ngrok](https://ngrok.com/) or [serveo](https://serveo.net/) to temporarily make your local server publicly available with HTTPS.\n- There are also loads of serverless/static hosting services that have HTTPS enabled by default and where you can deploy your web app for free (e.g. *GitHub Pages*, *GitLab Pages*, *Google Firebase*, *Netlify*, *Heroku*, *ZEIT Now*, ...)\n\n#### Some of my QR codes are not being detected.\n\n- Make sure, there is some white border around the QR code.\n- Color inverted QR codes are not supported (dark background, light foreground).\n- [Model 1 QR codes](https://en.wikipedia.org/wiki/QR_code#Model_1) are also not supported.\n\n# Thanks :pray:\n\n<a href=\"https://browserstack.com\">\n  <img height=\"38\" src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/browserstack-logo.png\" alt=\"BrowserStack Logo\">\n</a>\n<span>&emsp;&emsp;</span>\n<a href=\"https://travis-ci.org\">\n  <img height=\"38\" src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/travis-logo.png\" alt=\"Travis-CI Logo\">\n</a>\n","readmeFilename":"README.md","gitHead":"94e72181ae11bd116cff28b1b383c36480ad6fd9","_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.1","_nodeVersion":"16.17.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Ql5SCf7OyjqKSPrniWVpGPHH6e7IWHAcHIcGPa/BWmOxyd2jDC0X5ysSmEdN6M4cfwIvc4uWwiWBfdaerpM/Ng==","shasum":"cda470899f1031e5bb7b6105ba9e21ba488d50bc","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.1.tgz","fileCount":78,"unpackedSize":4016308,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkEct3Axf4NLVX0i8218C9tzny+zqx9beB01zHRKQzHAiBtQOE3QZzSg+VHp45GHfBFpbjvnqIeXiebwTfUJKx5hQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH/J/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQ8Q/+NgIA0IU02LHqJsnMMGV5tqT3Tlk+WwvW3yjftpuC0KrNM2WX\r\nJbhmzJY4SDs/cs5GTrfAgsTX7w6cPOA9P1h38l1DPYsoe0IqcasVfXkFYNtw\r\n3EZ4uKQlU4/w2Biv+ps4oRsy+S/uFR0OfOH2AElMVdsJC/jgxS07Tz4JYd9X\r\n8esCDtRO7aKkiESbFRFkiM6fN8Q5idbqE4Nc+xDNE3sKMtjZqa5U2zyguad2\r\nnGLmFDEkmZGZZE0KmNUrNh9yk8vo5sS0hrXjuOkGvtHnJYcmLIYAG78l/6nO\r\n6P4G4faz9Vlruwi1ZztijZOgYBNocmJK0+dJMZyn9F9/nyqMZAfo2Ye7nW0A\r\n7oKCokwJxnJOQ8nOBZWk2AQOA6b/IDcEg7VtjwMn8p6SexzGeVyLMd3qVVqx\r\naK7MdGrHu5NTlL9ge9zViEHqCKFhvYXG2zAPTFup1DAJGedPhAPjA0Pej0/w\r\ndvELdjrmQ5A18zCPTu6c3D+PNoLS54lb/DGqZaomRdZwYS2jpSXT5utcnYM4\r\nkqjiQZPy6y+7ZehMW3fWdZQ/5s5/RPcbFAd9k7fmBgj95eQBujkfk3op7VeT\r\n+u74wVRaHTd2jrl86Pr5QO7ciskVeB/5lgNo3AuWM2khfqtlx1QcsDhKvVSK\r\n9PBr9TOlfiD1GElSOdc3b4mhSbj+M1fYkZg=\r\n=/sO3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.1_1663038079504_0.9780849152820683"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.2":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.2","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","types":"./src/types/vue-qrcode-reader.d.ts","scripts":{"build":"vue-cli-service build --target lib --name VueQrcodeReader src/index.js","lint":"vue-cli-service lint","build:docs":"vuepress build docs","dev":"vuepress dev docs"},"dependencies":{"barcode-detector":"^1.0.0","callforth":"^0.3.1","core-js":"^3.6.5","vue":"^3.1.0","@vue/compat":"^3.1.0","webrtc-adapter":"7.7.0"},"devDependencies":{"@vue/cli-plugin-babel":"^4.5.13","@vue/cli-plugin-eslint":"^4.5.13","@vue/cli-service":"^4.5.13","@vue/compiler-sfc":"^3.1.0","@vue/eslint-config-prettier":"^6.0.0","babel-eslint":"^10.1.0","eslint":"^6.7.2","eslint-plugin-prettier":"^3.1.3","eslint-plugin-vue":"^6.2.2","husky":"^4.2.5","lint-staged":"^9.5.0","prettier":"^1.19.1","semantic-release":"^17.1.1","vuepress":"^1.5.2"},"gitHooks":{"pre-commit":"lint-staged"},"lint-staged":{"*.{js,jsx,vue}":["vue-cli-service lint","git add"]},"readme":"<p align=\"center\">\n  <img src=\"https://gruhn.github.io/vue-qrcode-reader/logo.png\" alt=\"Logo\" width=\"240\" height=\"240\" style=\"max-width: 100%;\">\n\n  <br>\n  <br>\n\n  <a href=\"https://vuejs.org/\">\n    <img src=\"https://img.shields.io/badge/vue-2%20&%203-brightgreen.svg\" alt=\"for Vue 2 and 3\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/dm/vue-qrcode-reader.svg\" alt=\"npm monthly downloads\">\n  </a>\n\n  <br>\n\n  <img src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" alt=\"is maintained? yes\">\n\n  <a href=\"http://opensource.org/licenses/MIT\">\n    <img src=\"https://img.shields.io/github/license/Naereen/StrapDown.js.svg\" alt=\"licence: MIT\">\n  </a>\n\n  <a href=\"https://github.com/Naereen/badges\">\n    <img src=\"https://img.shields.io/badge/badges-awesome-green.svg\" alt=\"badges = awesome\">\n  </a>\n\n  <br>\n\n  <a href=\"https://github.com/semantic-release/semantic-release\">\n    <img src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\" alt=\"uses semantic release\">\n  </a>\n\n  <a href=\"https://github.com/prettier/prettier\">\n    <img src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square\" alt=\"code style: prettier\">\n  </a>\n\n  <br>\n\n  <a href=\"https://bundlephobia.com/result?p=vue-qrcode-reader\">\n    <img src=\"https://badgen.net/bundlephobia/minzip/vue-qrcode-reader\" alt=\"size minified + gzipped\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/v/vue-qrcode-reader.svg\" alt=\"npm current version\">\n  </a>\n\n\n  <br>\n\n  <a href=\"https://github.com/vuejs/awesome-vue\">\n    <img src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Vue\">\n  </a>\n\n  <br>\n  <br>\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html\">live demos</a> |\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/api/QrcodeStream.html\">api reference</a>\n</p>\n\nA set of Vue.js components, allowing you to detect and decode QR codes, without leaving the browser.\n\n- :movie_camera: `QrcodeStream` accesses the device camera and continuously scans incoming frames.\n- :put_litter_in_its_place: `QrcodeDropZone` renders to an empty region where you can drag-and-drop images to be decoded.\n- :open_file_folder: `QrcodeCapture` is a classic file upload field, instantly scanning all files you select.\n\nAll components are responsive. Beyond that, close to zero styling. Make them fit your layout. Usage is simple and straight forward:\n\n```html\n<qrcode-stream @decode=\"onDecode\"></qrcode-stream>\n```\n\n```js\nmethods: {\n  onDecode (decodedString) {\n    // ...\n  }\n}\n```\n\n### Screenshots\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot1.png\" height=\"500\" alt=\"Screenshot 1\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot2.png\" height=\"500\" alt=\"Screenshot 2\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot3.png\" height=\"500\" alt=\"Screenshot 3\">\n</p>\n\n# Installation :package:\n\n## With NPM\n\nRun\n\n```bash\nnpm install vue-qrcode-reader\n```\n\nYou can import the components independantly\n\n```javascript\nimport { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader'\n\nconst MyComponent = {\n\n  components: {\n    QrcodeStream,\n    QrcodeDropZone,\n    QrcodeCapture\n  },\n\n  // ...\n))\n```\n\nor register all of them globally right away\n\n```javascript\nimport Vue from \"vue\";\nimport VueQrcodeReader from \"vue-qrcode-reader\";\n\nVue.use(VueQrcodeReader);\n```\n\n## Without NPM\n\nInclude the following JS file:\n\nhttps://unpkg.com/vue-qrcode-reader/dist/VueQrcodeReader.umd.min.js\n\nMake sure to include it after Vue:\n\n```html\n<script src=\"./vue.js\"></script>\n<script src=\"./VueQrcodeReader.umd.min.js\"></script>\n```\n\nAll components are automatically registered globally.\nUse kebab-case to reference them in your templates:\n\n```html\n<qrcode-stream></qrcode-stream>\n<qrcode-drop-zone></qrcode-drop-zone>\n<qrcode-capture></qrcode-capture>\n```\n\n# Troubleshooting :zap:\n\n### The wrong camera is picked by default. Can I set it explicitly?\n\nModern devices sometimes have multiple rear cameras.\nNot all are optimal for scanning QR codes.\nFor example wide angle, infrared and virtual cameras.\nWith the current web API it's hard to pick the right camera automatically.\nIt's technically possible to let the user make that decision.\nFor example by displaying list of installed cameras and letting the user select the right one.\nHowever, this is a user experience trade-off.\nNative QR code reader applications don't face this trade-off.\nThat's why we want to find a different solution.\n\nPlease create a GitHub issue from the [wrong camera selected](https://github.com/gruhn/vue-qrcode-reader/issues/new?assignees=&labels=&template=wrong_camera.md&title=) template and follow the instructions in the text.\n#### I don't see the camera when using `QrcodeStream`.\n\n- Check if it works on the demo page. Especially the [Decode All](https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html) demo, since it renders error messages. If you see errors, consult the docs to understand their meaning.\n  - The demo works but it doesn't work in my project: Listen for the `init` event to investigate errors.\n  - The demo doesn't work: Carefully review the Browser Support section above. Maybe your device is just not supported.\n\n#### I'm running a dev server on localhost. How to test on my mobile device without HTTPS?\n\n- If your setup is Desktop Chrome + Android Chrome, use [Remote Debugging](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/) which allows your Android device to [access your local server as localhost](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server).\n- Otherwise use a reverse proxy like [ngrok](https://ngrok.com/) or [serveo](https://serveo.net/) to temporarily make your local server publicly available with HTTPS.\n- There are also loads of serverless/static hosting services that have HTTPS enabled by default and where you can deploy your web app for free (e.g. *GitHub Pages*, *GitLab Pages*, *Google Firebase*, *Netlify*, *Heroku*, *ZEIT Now*, ...)\n\n#### Some of my QR codes are not being detected.\n\n- Make sure, there is some white border around the QR code.\n- Color inverted QR codes are not supported (dark background, light foreground).\n- [Model 1 QR codes](https://en.wikipedia.org/wiki/QR_code#Model_1) are also not supported.\n\n# Thanks :pray:\n\n<a href=\"https://browserstack.com\">\n  <img height=\"38\" src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/browserstack-logo.png\" alt=\"BrowserStack Logo\">\n</a>\n","readmeFilename":"README.md","gitHead":"145b2621e1a18209716942e84f6950e9c70d1171","_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.2","_nodeVersion":"16.17.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-7grE71ZRDf45CC4yjNdn0k9IMqX9B77mYfzQ0pvCtNyxY8UQ+qA/NfuW7NAIS8Fj9waSZYBVzlwBGd4dr48R8g==","shasum":"ed98fcf66a6def643d350467fd4da8cb1b3caef6","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.2.tgz","fileCount":80,"unpackedSize":4023877,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGwAwXGEuK+IqkNACQDkzhzFWDo7nDGxrf/LPWmG3338AiBxo9NHpk1HMxfk/zPJIISMGENkZbBC7tXgV0OD6DQj9A=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjH/P6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrTVA//TV3ai7QvjE1wEhGHSrL2HVIKPDYRvKMjqr/fOhk+CJ8qE3uv\r\nsjtmEqPDdSSuqE58kTsu38YBkHru+dsxnZ49gzDsGkHrh0YZxtzPR01NSQvo\r\nrAIc5QNwbFB+hvzUJn3xlseTW4vuqENtzgKmUL3+t/EVhShGt0c/aHgeUne6\r\nzksgqezkY1+jiU+DhEhlbhPr6bCiQSo+nTeZfl5I7LpUhhEwa9C5h1DSg3fN\r\nhhx6CwfTgBn/YgTKcVtZRvImqfxRbQaNx23mG3P3pKaArwLYz7g3x/F5NFFv\r\nE36CZ5TOjNxQju0iEBt5t7EKeWL16kHSALEFp4/cWYiOrP3rkcHS3A4t9aHJ\r\nuTDP1hODP03wtLADYQzABrfDayawdFvCQuMM/5pJ5XXBOappK7wGqPAqvZvB\r\n7eMrnRTkOE4T4GWIw107SDB5Pdw4ULNWLdBGXnBtXNpCm+RDwVZh1o7E2eKt\r\n/CZ0YAP6zjQoCbqv3lmykBRdnDqSjGFznYSat0GBorF+xw2BwzwtEceASrUk\r\nHjrtq6XNvkHlySxOR/PAws44kQR1nb/38GwOZ/N4/RR8V9lwUseUUClPIcDj\r\nnCtfLLgB6lmj05OqaQsJztUo5W079hdlD1x1GJ5cPbPfm0Q3vZ1KCGWJt4Zq\r\nL6uu5pYIDUfMDrJYC0nlTTGs3rIrS8D28aM=\r\n=yJea\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.2_1663038457792_0.5838421092308101"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.3":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.3","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","types":"./src/types/vue-qrcode-reader.d.ts","dependencies":{"@undecaf/barcode-detector-polyfill":"^0.9.16","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.3","_integrity":"sha512-MSM/udeWu++e0FK9266OyMo65u88IWuoHaK7QA04uplfY4cPoq5awbtqkfpnaTxO585hBXdrdycjbOJ8In3D6A==","_resolved":"/tmp/0550ed1347a712903b66d3e84cda0d91/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.3.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.3.tgz","_nodeVersion":"20.2.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-MSM/udeWu++e0FK9266OyMo65u88IWuoHaK7QA04uplfY4cPoq5awbtqkfpnaTxO585hBXdrdycjbOJ8In3D6A==","shasum":"6057143fda187b51544a01c0391e641c5d437646","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.3.tgz","fileCount":83,"unpackedSize":1127140,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5MpNJNWmrwDX0X3bsvelSGkCohrpRGzfaQ0Jhd3NFuwIhAMcFp/g5HspqBgYLAEMtFfco2dUEo06ZVwtoQtjTUT0U"}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.3_1685586749255_0.07739179363565873"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.4":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.4","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","types":"./src/types/vue-qrcode-reader.d.ts","dependencies":{"barcode-detector":"^1.0.0","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.4","_integrity":"sha512-Y6LvBFjkllYJyTiAQF3hDYKh+a9zP4BKiOzS3tq4wALeLLWPaWHnPuTaK4CELYlTnZlIc76kiqBfHjfUabT+Qw==","_resolved":"/tmp/58516098c04a1d36b4fbcfb9300ea290/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.4.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.4.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-Y6LvBFjkllYJyTiAQF3hDYKh+a9zP4BKiOzS3tq4wALeLLWPaWHnPuTaK4CELYlTnZlIc76kiqBfHjfUabT+Qw==","shasum":"07b28f94659f28b1f2c57cbb713b92db0f28ebfc","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.4.tgz","fileCount":81,"unpackedSize":975842,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpSgT4wqd//pE2m0Z77Xllxeq0hpEldJPusfwE0/Q3EAIhAL1be6IF1+BmozQJE+dQpJPukDejvfA+pF2zGTGo8Rcs"}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.4_1686106447848_0.4611349374186757"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.5":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.5","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"dist/VueQrcodeReader.common.js","unpkg":"dist/VueQrcodeReader.umd.min.js","types":"./src/types/vue-qrcode-reader.d.ts","dependencies":{"barcode-detector":"^1.0.0","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.5","_integrity":"sha512-GirdD6aT3CS0Z31wC1Np8Uk/Rd2QAGas6RYbSa45QHTI8IjR1aBK5r/vOfMQgvF0w9ULHyPrckfmodAsaD2XsQ==","_resolved":"/tmp/c4127e7f0f700afd62c04a273ba22d54/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.5.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.5.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-GirdD6aT3CS0Z31wC1Np8Uk/Rd2QAGas6RYbSa45QHTI8IjR1aBK5r/vOfMQgvF0w9ULHyPrckfmodAsaD2XsQ==","shasum":"788331cf1efd8328a51bc6c72d774622687df62b","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.5.tgz","fileCount":85,"unpackedSize":1304080,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxkvrBacQcs0zQoqv1m9gm3cbKG7XwZi6Unx97V4SSnAiBjffO0sDtH/NOhC7XfdVNbY8+HiE5EOAf0OeUawtzoGQ=="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.5_1686106757026_0.9317908601340343"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.6":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.6","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"barcode-detector":"^1.0.0","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.6","_integrity":"sha512-Yxzxa/51nlTFZeOIyZsxUIvruV4AKMlgRSEdXKhcMlBt6/9GiLNFlWm2E39MoGzRzPbanXLeVjQ5LbKTL8DSCQ==","_resolved":"/tmp/8b9367f135f966c3de1dfffa69216798/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.6.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.6.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-Yxzxa/51nlTFZeOIyZsxUIvruV4AKMlgRSEdXKhcMlBt6/9GiLNFlWm2E39MoGzRzPbanXLeVjQ5LbKTL8DSCQ==","shasum":"1fbe3a4aa2a63aa209468237e6fde3d5d1bfa7c5","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.6.tgz","fileCount":80,"unpackedSize":976020,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAS5HdjUI+1bDW/CSPxcoRM5o73MdrHXjZP8fkE13qKPAiEA3KpQq0WD1phQumqlhMXn4YBR4CuXlUZzB3k8sF9orOc="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.6_1686112604889_0.21385493891435692"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.7":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.7","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"barcode-detector":"^1.0.0","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.7","_integrity":"sha512-fI349fTbbgHWVcD0PPA55k/eDJ9qfTT7AoCztFwXcXxu5mdAQATJnF/6PqiM4jtP6OIsTIldmI2DfysbHkw4+w==","_resolved":"/tmp/f6a606af0ec4b6b2a1a204991feae608/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.7.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.7.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-fI349fTbbgHWVcD0PPA55k/eDJ9qfTT7AoCztFwXcXxu5mdAQATJnF/6PqiM4jtP6OIsTIldmI2DfysbHkw4+w==","shasum":"da64e4eb22ce5e3ce300a6382cd286840097282d","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.7.tgz","fileCount":20,"unpackedSize":379244,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID36I/Ivm46sI2DOKReQLbWYYcFq36JHV6Tx/k+dHa02AiAsEzpfP/DK4EgVLQH2drrgaMo11Qt4M0oqf13xKB7+vg=="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.7_1686113140383_0.9235592370426717"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.8":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.8","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"barcode-detector":"^1.0.0","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.41.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","rimraf":"5.0.1","semantic-release":"21.0.2","typescript":"5.0.4","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"pnpm rimraf dist && vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.8","_integrity":"sha512-vP9CtkF5yicc5PE1IA+CV7HcXAK7P/MQMGD2YMou1a1RudN/u078qOGcokc3evuJDJTSodcNOUNr1bQLMURnAA==","_resolved":"/tmp/3d03d9b0e76b8906ca52566efd9ebe11/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.8.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.8.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-vP9CtkF5yicc5PE1IA+CV7HcXAK7P/MQMGD2YMou1a1RudN/u078qOGcokc3evuJDJTSodcNOUNr1bQLMURnAA==","shasum":"e7d59a1c02c8f4770ae72a86bc1a84321d46f6e7","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.8.tgz","fileCount":20,"unpackedSize":379287,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDJvtehAPhWzAdAkDUk9eXJd780+NOpH9aP1y/uU9bVjAiAGY1euccGgX1KsIlF06wN4s4zBcFG4m4MRqdMwCs7G4Q=="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.8_1686113426296_0.7449525213870529"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.9":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.9","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"barcode-detector":"^1.0.1","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.2.5","@undecaf/barcode-detector-polyfill":"0.9.16","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.42.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","rimraf":"5.0.1","semantic-release":"21.0.3","typescript":"5.1.3","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.1","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"pnpm rimraf dist && vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.9","_integrity":"sha512-b4jFy59ePI2PnTRMFXP4iH0jofRvMzQvgAG1o/aLiJbgWiZsragCB8V8uB2LRVuDq5RauEfu77tcBO45ddfMmQ==","_resolved":"/tmp/7589a8b4d0fb74a42724d1d3c977bfc2/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.9.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.9.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-b4jFy59ePI2PnTRMFXP4iH0jofRvMzQvgAG1o/aLiJbgWiZsragCB8V8uB2LRVuDq5RauEfu77tcBO45ddfMmQ==","shasum":"fe5f82af1457e20a347f56e131f6d60b683dd16e","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.9.tgz","fileCount":20,"unpackedSize":379338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDmiGBPa0RdBkwfqFLVY6AuwYRBsZrYl4RSL4ct4kbdFAiEAncsf9ow/qfO+obWF9o9atpkz1JE4XVYExlAYgyHtPP0="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.9_1686205993814_0.7973292293822278"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.11":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.11","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"@sec-ant/barcode-detector":"^0.1.5","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.3.1","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.42.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","rimraf":"5.0.1","semantic-release":"21.0.5","typescript":"5.1.3","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.2","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"scripts":{"build":"pnpm rimraf dist && vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false"},"_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.11","_integrity":"sha512-ZpmyOJBz6qtwR7jCh8RasYt27XDpWDfnObaW4zKDJhVRNnlv13kjunWS9glMi1jPpQxHgOc0a2ng2V9dwlIfJw==","_resolved":"/tmp/baaedaf592c7119ff633aec88f595b69/dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.11.tgz","_from":"file:dargmuesli-vue-qrcode-reader-3.1.0-vue3-compatibility.11.tgz","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-ZpmyOJBz6qtwR7jCh8RasYt27XDpWDfnObaW4zKDJhVRNnlv13kjunWS9glMi1jPpQxHgOc0a2ng2V9dwlIfJw==","shasum":"39125db124ccc8e5612daede226d4265e9243418","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.11.tgz","fileCount":19,"unpackedSize":284687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEU5DMR3hjYG/S4O7kGrMxU9ke8ILk9ZSjgGefFo992uAiBQn/wngs+FscYy8Ii88X5D5QQpEee40aTANNmRdVxm5w=="}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.11_1686656523539_0.17836329634441772"},"_hasShrinkwrap":false},"3.1.0-vue3-compatibility.12":{"name":"@dargmuesli/vue-qrcode-reader","version":"3.1.0-vue3-compatibility.12","private":false,"publishConfig":{"access":"public"},"description":"A set of Vue.js components for detecting and decoding QR codes.","author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"engines":{"node":"20"},"packageManager":"pnpm@8.3.1","type":"module","scripts":{"build":"pnpm rimraf dist && vite build","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","prepack":"pnpm run build","prepare":"husky install"},"main":"./dist/vue-qrcode-reader.js","module":"./dist/vue-qrcode-reader.js","unpkg":"./dist/vue-qrcode-reader.umd.cjs","exports":{".":{"import":"./dist/vue-qrcode-reader.js","require":"./dist/vue-qrcode-reader.umd.cjs","types":"./dist/index.d.ts"}},"types":"./dist/index.d.ts","dependencies":{"@sec-ant/barcode-detector":"^0.1.5","webrtc-adapter":"^8.2.2"},"devDependencies":{"@tsconfig/node20":"1.0.1","@types/node":"20.3.1","@vitejs/plugin-vue":"4.2.3","@vue/compiler-sfc":"3.3.4","@vue/eslint-config-prettier":"7.1.0","@vue/eslint-config-typescript":"11.0.3","@vue/tsconfig":"0.4.0","eslint":"8.42.0","eslint-plugin-prettier":"4.2.1","eslint-plugin-vue":"9.14.1","husky":"8.0.3","lint-staged":"13.2.2","prettier":"2.8.8","rimraf":"5.0.1","semantic-release":"21.0.5","typescript":"5.1.3","vite":"4.3.9","vite-plugin-dts":"2.3.0","vitepress":"1.0.0-beta.2","vue":"3.3.4","vue-tsc":"1.6.5"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"gitHead":"5684a4570e6368f49c87d162eaab533d317f6134","_id":"@dargmuesli/vue-qrcode-reader@3.1.0-vue3-compatibility.12","_nodeVersion":"20.1.0","_npmVersion":"9.6.4","dist":{"integrity":"sha512-ruQTe5gG6f5CJ7Keuh8JM9crN7+WdKLKnIBemBl1OYQ1UebD0RK/PHJHaGdUGtAkmq5pAeYoNevVWS8WCr4NZQ==","shasum":"9ec8dc70407b880700759494b60a08e5a6b051f1","tarball":"https://registry.npmjs.org/@dargmuesli/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.12.tgz","fileCount":18,"unpackedSize":185398,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnIV268hZwUWA2+OnC10BxrzLpZ63tN4cjgulFMQ5tdAIhANv3vmW038iwlZW+GvxeiCndqpFT6hPOVyC/YlvHnNEw"}]},"_npmUser":{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"},"directories":{},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/vue-qrcode-reader_3.1.0-vue3-compatibility.12_1688224943578_0.6937036943293109"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-13T02:45:34.394Z","1.0.0-vue3-compatibility.1":"2022-09-13T02:45:34.728Z","modified":"2023-07-01T15:22:23.910Z","3.1.0-vue3-compatibility.1":"2022-09-13T03:01:19.806Z","3.1.0-vue3-compatibility.2":"2022-09-13T03:07:38.041Z","3.1.0-vue3-compatibility.3":"2023-06-01T02:32:29.529Z","3.1.0-vue3-compatibility.4":"2023-06-07T02:54:08.052Z","3.1.0-vue3-compatibility.5":"2023-06-07T02:59:17.451Z","3.1.0-vue3-compatibility.6":"2023-06-07T04:36:45.113Z","3.1.0-vue3-compatibility.7":"2023-06-07T04:45:40.618Z","3.1.0-vue3-compatibility.8":"2023-06-07T04:50:26.558Z","3.1.0-vue3-compatibility.9":"2023-06-08T06:33:14.021Z","3.1.0-vue3-compatibility.11":"2023-06-13T11:42:03.698Z","3.1.0-vue3-compatibility.12":"2023-07-01T15:22:23.747Z"},"maintainers":[{"name":"dargmuesli","email":"e-mail@jonas-thelemann.de"}],"description":"A set of Vue.js components for detecting and decoding QR codes.","homepage":"https://gruhn.github.io/vue-qrcode-reader","keywords":["vue","vuejs","vue-component","qrcode","qrcode-reader","qrcode-scanner","webrtc"],"repository":{"type":"git","url":"git+https://github.com/dargmuesli/vue-qrcode-reader.git"},"author":{"name":"Niklas Gruhn","email":"niklas@gruhn.me"},"bugs":{"url":"https://github.com/gruhn/vue-qrcode-reader/issues"},"license":"MIT","readme":"<p align=\"center\">\n  <img src=\"https://gruhn.github.io/vue-qrcode-reader/logo.png\" alt=\"Logo\" width=\"240\" height=\"240\" style=\"max-width: 100%;\">\n\n  <br>\n  <br>\n\n  <a href=\"https://vuejs.org/\">\n    <img src=\"https://img.shields.io/badge/vue-2%20&%203-brightgreen.svg\" alt=\"for Vue 2 and 3\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/dm/vue-qrcode-reader.svg\" alt=\"npm monthly downloads\">\n  </a>\n\n  <br>\n\n  <img src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" alt=\"is maintained? yes\">\n\n  <a href=\"http://opensource.org/licenses/MIT\">\n    <img src=\"https://img.shields.io/github/license/Naereen/StrapDown.js.svg\" alt=\"licence: MIT\">\n  </a>\n\n  <a href=\"https://github.com/Naereen/badges\">\n    <img src=\"https://img.shields.io/badge/badges-awesome-green.svg\" alt=\"badges = awesome\">\n  </a>\n\n  <br>\n\n  <a href=\"https://github.com/semantic-release/semantic-release\">\n    <img src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\" alt=\"uses semantic release\">\n  </a>\n\n  <a href=\"https://github.com/prettier/prettier\">\n    <img src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square\" alt=\"code style: prettier\">\n  </a>\n\n  <br>\n\n  <a href=\"https://bundlephobia.com/result?p=vue-qrcode-reader\">\n    <img src=\"https://badgen.net/bundlephobia/minzip/vue-qrcode-reader\" alt=\"size minified + gzipped\">\n  </a>\n\n  <a href=\"https://www.npmjs.com/package/vue-qrcode-reader\">\n    <img src=\"https://img.shields.io/npm/v/vue-qrcode-reader.svg\" alt=\"npm current version\">\n  </a>\n\n\n  <br>\n\n  <a href=\"https://github.com/vuejs/awesome-vue\">\n    <img src=\"https://awesome.re/mentioned-badge.svg\" alt=\"Mentioned in Awesome Vue\">\n  </a>\n\n  <br>\n  <br>\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html\">live demos</a> |\n  <a href=\"https://gruhn.github.io/vue-qrcode-reader/api/QrcodeStream.html\">api reference</a>\n</p>\n\nA set of Vue.js components, allowing you to detect and decode QR codes, without leaving the browser.\n\n- :movie_camera: `QrcodeStream` accesses the device camera and continuously scans incoming frames.\n- :put_litter_in_its_place: `QrcodeDropZone` renders to an empty region where you can drag-and-drop images to be decoded.\n- :open_file_folder: `QrcodeCapture` is a classic file upload field, instantly scanning all files you select.\n\nAll components are responsive. Beyond that, close to zero styling. Make them fit your layout. Usage is simple and straight forward:\n\n```html\n<qrcode-stream @decode=\"onDecode\"></qrcode-stream>\n```\n\n```js\nmethods: {\n  onDecode (decodedString) {\n    // ...\n  }\n}\n```\n\n### Screenshots\n\n<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot1.png\" height=\"500\" alt=\"Screenshot 1\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot2.png\" height=\"500\" alt=\"Screenshot 2\">\n  <img src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/screenshot3.png\" height=\"500\" alt=\"Screenshot 3\">\n</p>\n\n# Installation :package:\n\n## With NPM\n\nRun\n\n```bash\nnpm install vue-qrcode-reader\n```\n\nYou can import the components independantly\n\n```javascript\nimport { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader'\n\nconst MyComponent = {\n\n  components: {\n    QrcodeStream,\n    QrcodeDropZone,\n    QrcodeCapture\n  },\n\n  // ...\n))\n```\n\nor register all of them globally right away\n\n```javascript\nimport Vue from \"vue\";\nimport VueQrcodeReader from \"vue-qrcode-reader\";\n\nVue.use(VueQrcodeReader);\n```\n\n## Without NPM\n\nInclude the following JS file:\n\nhttps://unpkg.com/vue-qrcode-reader/dist/VueQrcodeReader.umd.min.js\n\nMake sure to include it after Vue:\n\n```html\n<script src=\"./vue.js\"></script>\n<script src=\"./VueQrcodeReader.umd.min.js\"></script>\n```\n\nAll components are automatically registered globally.\nUse kebab-case to reference them in your templates:\n\n```html\n<qrcode-stream></qrcode-stream>\n<qrcode-drop-zone></qrcode-drop-zone>\n<qrcode-capture></qrcode-capture>\n```\n\n# Troubleshooting :zap:\n\n### The wrong camera is picked by default. Can I set it explicitly?\n\nModern devices sometimes have multiple rear cameras.\nNot all are optimal for scanning QR codes.\nFor example wide angle, infrared and virtual cameras.\nWith the current web API it's hard to pick the right camera automatically.\nIt's technically possible to let the user make that decision.\nFor example by displaying list of installed cameras and letting the user select the right one.\nHowever, this is a user experience trade-off.\nNative QR code reader applications don't face this trade-off.\nThat's why we want to find a different solution.\n\nPlease create a GitHub issue from the [wrong camera selected](https://github.com/gruhn/vue-qrcode-reader/issues/new?assignees=&labels=&template=wrong_camera.md&title=) template and follow the instructions in the text.\n#### I don't see the camera when using `QrcodeStream`.\n\n- Check if it works on the demo page. Especially the [Decode All](https://gruhn.github.io/vue-qrcode-reader/demos/DecodeAll.html) demo, since it renders error messages. If you see errors, consult the docs to understand their meaning.\n  - The demo works but it doesn't work in my project: Listen for the `init` event to investigate errors.\n  - The demo doesn't work: Carefully review the Browser Support section above. Maybe your device is just not supported.\n\n#### I'm running a dev server on localhost. How to test on my mobile device without HTTPS?\n\n- If your setup is Desktop Chrome + Android Chrome, use [Remote Debugging](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/) which allows your Android device to [access your local server as localhost](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server).\n- Otherwise use a reverse proxy like [ngrok](https://ngrok.com/) or [serveo](https://serveo.net/) to temporarily make your local server publicly available with HTTPS.\n- There are also loads of serverless/static hosting services that have HTTPS enabled by default and where you can deploy your web app for free (e.g. *GitHub Pages*, *GitLab Pages*, *Google Firebase*, *Netlify*, *Heroku*, *ZEIT Now*, ...)\n\n#### Some of my QR codes are not being detected.\n\n- Make sure, there is some white border around the QR code.\n- Color inverted QR codes are not supported (dark background, light foreground).\n- [Model 1 QR codes](https://en.wikipedia.org/wiki/QR_code#Model_1) are also not supported.\n\n# Thanks :pray:\n\n<a href=\"https://browserstack.com\">\n  <img height=\"38\" src=\"https://raw.githubusercontent.com/gruhn/vue-qrcode-reader/master/.github/browserstack-logo.png\" alt=\"BrowserStack Logo\">\n</a>\n","readmeFilename":"README.md"}