{"_id":"@bengreenier/react-user-media","_rev":"2-ec9119d48c4831e0aac237e1bbc32a2d","name":"@bengreenier/react-user-media","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@bengreenier/react-user-media","version":"0.1.0","author":{"url":"https://github.com/bengreenier","name":"bengreenier"},"_id":"@bengreenier/react-user-media@0.1.0","maintainers":[{"name":"bengreenier","email":"ben@bengreenier.com"}],"dist":{"shasum":"8532aa15bde83b822bcec063f4c069c31edabd80","tarball":"https://registry.npmjs.org/@bengreenier/react-user-media/-/react-user-media-0.1.0.tgz","fileCount":27,"integrity":"sha512-s++ClKG/jSdhOL5IkjPgxhn0n3FD2Sncy5Belv6/Q+4yE7VgrF1g7rMcfLOH0Fq6ytNabeVSSGoymeWKQ2Vs1w==","signatures":[{"sig":"MEQCIEtbxDIoGuoF0Z4cffw2RKYSDDlTmAGepV5Brr1+V6VBAiAENZfxfFtmLpzu8RCWME/Uqp1RvDxeu1Zq1EIgQq+tvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64865},"type":"module","_from":"file:bengreenier-react-user-media-0.1.0.tgz","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"lint":"eslint .","test":"vitest run --coverage","build":"tsc -p ./tsconfig.types.json --emitDeclarationOnly && tsup --tsconfig ./tsconfig.lib.json --format cjs,esm src/index.ts","test-visible":"vitest run --coverage --browser.headless false"},"_npmUser":{"name":"bengreenier","email":"ben@bengreenier.com"},"licenses":[{"type":"MIT"},{"type":"Apache-2.0"}],"_resolved":"/tmp/2d41834a39e0764697a12a5a68d933a0/bengreenier-react-user-media-0.1.0.tgz","_integrity":"sha512-s++ClKG/jSdhOL5IkjPgxhn0n3FD2Sncy5Belv6/Q+4yE7VgrF1g7rMcfLOH0Fq6ytNabeVSSGoymeWKQ2Vs1w==","_npmVersion":"10.8.2","description":"A collection of hooks and components for easier access to getUserMedia, getDisplayMedia, and enumerateDevices in React.","directories":{},"_nodeVersion":"20.17.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","eslint":"^9.9.0","vitest":"^2.0.5","globals":"^15.9.0","@eslint/js":"^9.9.0","playwright":"^1.46.1","typescript":"^5.5.3","@types/react":"^18.3.4","@vitest/browser":"^2.0.5","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.1","@testing-library/dom":"^10.4.0","@testing-library/react":"^16.0.1","@testing-library/jest-dom":"^6.5.0","@vitest/coverage-istanbul":"^2.0.5","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.9"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-user-media_0.1.0_1724985671389_0.825053941785931","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@bengreenier/react-user-media","version":"0.1.1","author":{"url":"https://github.com/bengreenier","name":"bengreenier"},"_id":"@bengreenier/react-user-media@0.1.1","maintainers":[{"name":"bengreenier","email":"ben@bengreenier.com"}],"dist":{"shasum":"8746f31e597584de20713bd1644ba5e883e77601","tarball":"https://registry.npmjs.org/@bengreenier/react-user-media/-/react-user-media-0.1.1.tgz","fileCount":27,"integrity":"sha512-x9YY3QQuBQ3vsELspBpBp2y8VdYBiGknnPvLUs69JK9H4frGd3/VtDY7HtdxWfvAOTMLyp9w8MywviX9vipTag==","signatures":[{"sig":"MEUCIQD31hdW0VWetx6cBDVtl28a3GRwp30VoiSm61efIWVDfQIgOXdsk9fe7RY8ZshkrYs+ff1I9vApy3HP+JN1ix4gCMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":64971},"type":"module","_from":"file:bengreenier-react-user-media-0.1.1.tgz","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"private":false,"scripts":{"doc":"typedoc --plugin typedoc-github-theme --tsconfig ./tsconfig.lib.json --readme ./README.md --basePath ./src --out ./docs_out --entryPoints ./src/index.ts","lint":"eslint .","test":"vitest run --coverage","build":"tsc -p ./tsconfig.types.json --emitDeclarationOnly && tsup --tsconfig ./tsconfig.lib.json --format cjs,esm src/index.ts","test-visible":"vitest run --coverage --browser.headless false"},"_npmUser":{"name":"bengreenier","email":"ben@bengreenier.com"},"licenses":[{"type":"MIT"},{"type":"Apache-2.0"}],"_resolved":"/tmp/791ff741677786e4d6e8773b844544c8/bengreenier-react-user-media-0.1.1.tgz","_integrity":"sha512-x9YY3QQuBQ3vsELspBpBp2y8VdYBiGknnPvLUs69JK9H4frGd3/VtDY7HtdxWfvAOTMLyp9w8MywviX9vipTag==","_npmVersion":"10.8.2","description":"A collection of hooks and components for easier access to getUserMedia, getDisplayMedia, and enumerateDevices in React.","directories":{},"_nodeVersion":"20.17.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"react":"^18.3.1","eslint":"^9.9.0","vitest":"^2.0.5","globals":"^15.9.0","typedoc":"^0.26.6","@eslint/js":"^9.9.0","playwright":"^1.46.1","typescript":"^5.5.3","@types/react":"^18.3.4","@vitest/browser":"^2.0.5","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.1","@testing-library/dom":"^10.4.0","typedoc-github-theme":"^0.1.2","@testing-library/react":"^16.0.1","@testing-library/jest-dom":"^6.5.0","@vitest/coverage-istanbul":"^2.0.5","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.9"},"peerDependencies":{"react":">=18"},"_npmOperationalInternal":{"tmp":"tmp/react-user-media_0.1.1_1726078489206_0.34823537694916396","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"@bengreenier/react-user-media","description":"A collection of hooks and components for easier access to getUserMedia, getDisplayMedia, and enumerateDevices in React.","private":false,"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"author":{"name":"bengreenier","url":"https://github.com/bengreenier"},"version":"0.1.2","type":"module","licenses":[{"type":"MIT"},{"type":"Apache-2.0"}],"peerDependencies":{"react":">=18"},"dependencies":{},"devDependencies":{"@types/react":"^18.3.4","@types/react-dom":"^18.3.0","react":"^18.3.1","@eslint/js":"^9.9.0","eslint":"^9.9.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.9","globals":"^15.9.0","typescript":"^5.5.3","typescript-eslint":"^8.0.1","vitest":"^2.0.5","@vitest/browser":"^2.0.5","@vitest/coverage-istanbul":"^2.0.5","playwright":"^1.46.1","@testing-library/react":"^16.0.1","@testing-library/dom":"^10.4.0","@testing-library/jest-dom":"^6.5.0","typedoc":"^0.26.6","typedoc-github-theme":"^0.1.2"},"scripts":{"build":"tsc -p ./tsconfig.types.json --emitDeclarationOnly && tsup --tsconfig ./tsconfig.lib.json --format cjs,esm src/index.ts","doc":"typedoc --plugin typedoc-github-theme --tsconfig ./tsconfig.lib.json --readme ./README.md --basePath ./src --out ./docs_out --entryPoints ./src/index.ts","test":"vitest run --coverage","test-visible":"vitest run --coverage --browser.headless false","lint":"eslint ."},"_id":"@bengreenier/react-user-media@0.1.2","_integrity":"sha512-0A8EOORdDFOmj/zaGSM6Cx2+VLOS79xlTherDi8ipRWTqj7kP28p8XX/5jeB4V0lJSOfY3bew5GKlr74qN+jVg==","_resolved":"/tmp/282740249183b298b2974ab06fe6592f/bengreenier-react-user-media-0.1.2.tgz","_from":"file:bengreenier-react-user-media-0.1.2.tgz","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-0A8EOORdDFOmj/zaGSM6Cx2+VLOS79xlTherDi8ipRWTqj7kP28p8XX/5jeB4V0lJSOfY3bew5GKlr74qN+jVg==","shasum":"11d1a065841957f45c6a73c61c5f0211d47de3d4","tarball":"https://registry.npmjs.org/@bengreenier/react-user-media/-/react-user-media-0.1.2.tgz","fileCount":27,"unpackedSize":65339,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDXFQ3h4Pe5ackVGvUUdPMxKqEIdlgWeYBL7d4Z3kjyNAiEA4SYhlz3+JLPb+WwphrHXzN2iBuJZMzUlhda+JItkoh8="}]},"_npmUser":{"name":"bengreenier","email":"ben@bengreenier.com"},"directories":{},"maintainers":[{"name":"bengreenier","email":"ben@bengreenier.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-user-media_0.1.2_1726853028056_0.527395015979935"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-30T02:41:11.266Z","modified":"2024-09-20T17:23:48.479Z","0.1.0":"2024-08-30T02:41:11.593Z","0.1.1":"2024-09-11T18:14:49.396Z","0.1.2":"2024-09-20T17:23:48.292Z"},"author":{"name":"bengreenier","url":"https://github.com/bengreenier"},"description":"A collection of hooks and components for easier access to getUserMedia, getDisplayMedia, and enumerateDevices in React.","maintainers":[{"name":"bengreenier","email":"ben@bengreenier.com"}],"readme":"# react-user-media\n\nA collection of hooks and components for easier access to [`getUserMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia), [`getDisplayMedia`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia), and [`enumerateDevices`](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices) in [React](https://react.dev).\n\n## Hooks\n\n- `useMedia('user')`\n- `useMedia('display')`\n\n- `useMediaTracks(...)`\n\n  - `useMediaAudioTracks(...)`\n  - `useMediaVideoTracks(...)`\n  - `useTrackMuteState(...)`\n\n- `useMediaDevices()`\n\n  - `useMediaAudioInputDevices()`\n  - `useMediaAudioOutputDevices()`\n  - `useMediaVideoDevices()`\n\n- `useMediaRecorder()`\n\n## Components\n\n- `AudioPlayer`\n- `VideoPlayer`\n\n## Utility functions\n\n- `getSupportedConstraints()`\n- `closeMedia(...)`\n\n## Contributing\n\nPlease feel free to open any issues or PRs!\n\n### Building locally\n\nThis project uses [pnpm](https://pnpm.io) for dependency management, and expects a local [Node.js](https://nodejs.org/) installation for dev and testing.\n\nThen just `pnpm run`:\n\n- `build` - builds the project\n- `dev` - starts hosting the examples for local development.\n- `test` - runs tests.\n- `lint` - runs the linter.\n\n## License\n\nDual-licensed under Apache 2.0 + MIT.\n","readmeFilename":"README.md"}