{"_id":"@dornick/mounts-media","name":"@dornick/mounts-media","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@dornick/mounts-media","version":"0.1.0","description":"Media VFS mounts for Dornick — Camera, Microphone, BarcodeDetector, MediaDevices, ScreenCapture. Each capability-gated.","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","typecheck":"tsc --noEmit","clean":"rm -rf dist","size":"size-limit"},"dependencies":{"@dornick/vfs":"0.1.0","@dornick/capabilities":"0.1.0"},"devDependencies":{"@size-limit/file":"^11.1.6","size-limit":"^11.1.6","tsup":"^8.3.0","typescript":"^5.5.4","vitest":"^4.1.7"},"license":"MIT","sideEffects":false,"publishConfig":{"access":"public"},"size-limit":[{"name":"@dornick/mounts-media (gz)","path":"dist/index.js","limit":"3.5 KB","gzip":true}],"gitHead":"622e4ebed9c3aebadd808a2dd1f5f29c7d226040","_id":"@dornick/mounts-media@0.1.0","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-Bgikw0pEHPz+N8mv8B7h8vgVMqUfcz6mw68yG0S4/St1U3O7Vo78P8XCNjEtauorWMAXaRtTOBSlshDoSFjyaw==","shasum":"6085055089539c4f90ebac852d6a861988147d9c","tarball":"https://registry.npmjs.org/@dornick/mounts-media/-/mounts-media-0.1.0.tgz","fileCount":5,"unpackedSize":42489,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD5uB5/SZ1T2JQD1kejn2vg4yGx/EFY0P+rI2xWeoKCJwIhANIOFvRQGXtqJvL6AkKYwpcLEGR0sdrTfoB9rx7WkUBK"}]},"_npmUser":{"name":"dipankarsarkar","email":"me@dipankar.name"},"directories":{},"maintainers":[{"name":"dipankarsarkar","email":"me@dipankar.name"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mounts-media_0.1.0_1788784927550_0.28742236968636337"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-07T12:42:07.373Z","0.1.0":"2026-09-07T12:42:07.671Z","modified":"2026-09-07T12:42:07.949Z"},"maintainers":[{"name":"dipankarsarkar","email":"me@dipankar.name"}],"description":"Media VFS mounts for Dornick — Camera, Microphone, BarcodeDetector, MediaDevices, ScreenCapture. Each capability-gated.","license":"MIT","readme":"# @dornick/mounts-media\n\n**Media VFS mounts for Dornick — Camera, Microphone, BarcodeDetector, MediaDevices, ScreenCapture.**\n\nTree-shakable. Each mount is capability-gated; on unsupported browsers, `static available(caps)` returns false and `dornick.mount(...)` is a no-op.\n\n[![npm](https://img.shields.io/npm/v/@dornick/mounts-media.svg?style=flat&color=4c1)](https://www.npmjs.com/package/@dornick/mounts-media)\n[![license](https://img.shields.io/npm/l/@dornick/mounts-media.svg?style=flat&color=blue)](../../LICENSE)\n\n## Install\n\n```sh\nnpm i @dornick/mounts-media\n```\n\n## Use\n\n```ts\nimport { Dornick } from \"@dornick/core\";\nimport {\n  CameraMount,\n  MicrophoneMount,\n  BarcodeMount,\n  MediaDevicesMount,\n  ScreenCaptureMount,\n} from \"@dornick/mounts-media\";\n\nconst dornick = new Dornick({ config, transport });\n\ndornick.mount(\"/host/camera\", new CameraMount({ facingMode: \"environment\" }));\ndornick.mount(\"/host/mic\", new MicrophoneMount());\ndornick.mount(\"/host/barcode\", new BarcodeMount());\ndornick.mount(\"/host/devices\", new MediaDevicesMount());\ndornick.mount(\"/host/screen\", new ScreenCaptureMount());\n```\n\n## Paths exposed\n\n| Mount | Path | Operations |\n|---|---|---|\n| **CameraMount** | `capture.json` | write to trigger capture; read for `{ base64, mimeType, width, height }` |\n| **MicrophoneMount** | `record.cmd`, `last.json` | write `\"start\"` / `\"stop\"`; read last recording |\n| **BarcodeMount** | `formats.json`, `scan.cmd`, `last.json` | write a data URL or HTTP URL to scan |\n| **MediaDevicesMount** | `list.json` | read enumerated devices |\n| **ScreenCaptureMount** | `capture.json` | write to trigger; read for the captured frame |\n\n## Capability gates\n\n| Mount | Gate |\n|---|---|\n| CameraMount | `apis.camera` |\n| MicrophoneMount | `apis.microphone` |\n| BarcodeMount | `apis.barcodeDetector` (Chromium / Safari iOS) |\n| MediaDevicesMount | `navigator.mediaDevices.enumerateDevices` |\n| ScreenCaptureMount | `navigator.mediaDevices.getDisplayMedia` |\n\n## Pairs nicely with\n\n- [`@dornick/parsers-ocr`](https://www.npmjs.com/package/@dornick/parsers-ocr) — `CameraMount` capture → OCR → fields\n- [`@dornick/mounts-hardware`](https://www.npmjs.com/package/@dornick/mounts-hardware) — combine with WebAuthn for KYC\n\n## See also\n\n- [Concept: Browser-API mounts](https://docs.neullabs.com/dornick/concepts/browser-api-mounts/)\n- [Use case: In-browser OCR](https://docs.neullabs.com/dornick/use-cases/in-browser-ocr/)\n- [Use case: KYC / AML intake](https://docs.neullabs.com/dornick/use-cases/kyc-intake/)\n\n## License\n\nMIT — © Dipankar Sarkar\n","readmeFilename":"README.md","_rev":"1-38a18feda0b0961d31a81f1496dd4eb9"}