{"_id":"@axeprpr/browser-face-box","name":"@axeprpr/browser-face-box","dist-tags":{"beta":"0.1.0-beta.1","latest":"0.1.0-beta.1"},"versions":{"0.1.0-beta.1":{"name":"@axeprpr/browser-face-box","version":"0.1.0-beta.1","description":"Browser face detection box with camera capture and screenshot compare","type":"module","main":"./src/index.js","module":"./src/index.js","exports":{".":"./src/index.js","./facefinder.bin":"./facefinder.bin"},"keywords":["face-detection","face-compare","webcam","browser","picojs"],"license":"MIT","publishConfig":{"access":"public"},"_id":"@axeprpr/browser-face-box@0.1.0-beta.1","gitHead":"776bbb6716b9fcf31fc3e92e0a2b0990a1854a77","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-vTpHpkYwA2K5yCEWinu53zpGoNertHEE4tH2AvI052YSHme96Q5RYcWMbT8gfaAh2qeNdFL4rbxqDq6/sPsG2Q==","shasum":"46783fb3183d1ac1c1e7efc9bf551234ebbde56c","tarball":"https://registry.npmjs.org/@axeprpr/browser-face-box/-/browser-face-box-0.1.0-beta.1.tgz","fileCount":10,"unpackedSize":268065,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCIC/k5kHmNMjbPhHbtoHF++kvmyJmih9u41FzkM9fGAAIgYmLilmU4E+J86XbgbgVpgpJHZOhIeLfMMIfnUmZ4C1Y="}]},"_npmUser":{"name":"axeprpr","email":"axe3@qq.com"},"directories":{},"maintainers":[{"name":"axeprpr","email":"axe3@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/browser-face-box_0.1.0-beta.1_1774667533845_0.9860345966431909"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-28T03:12:13.785Z","0.1.0-beta.1":"2026-03-28T03:12:14.072Z","modified":"2026-03-28T03:12:14.275Z"},"maintainers":[{"name":"axeprpr","email":"axe3@qq.com"}],"description":"Browser face detection box with camera capture and screenshot compare","keywords":["face-detection","face-compare","webcam","browser","picojs"],"license":"MIT","readme":"# @axeprpr/browser-face-box\n\nLightweight browser face box toolkit built on pico.js.\n\nIt provides:\n- camera start/stop and frame capture\n- face detection from camera/image source\n- corner-box drawing overlay\n- screenshot/upload face compare (`compareFaceSources`)\n\n> This package is for detection + lightweight compare, not biometric-grade identity verification.\n\n## Install\n\n```bash\nnpm i @axeprpr/browser-face-box\n```\n\n## Quick Start\n\n```js\nimport { createFaceTracker } from \"@axeprpr/browser-face-box\";\nimport facefinderUrl from \"@axeprpr/browser-face-box/facefinder.bin\";\n\nconst tracker = createFaceTracker({\n  cascadeUrl: facefinderUrl,\n  drawOptions: { mirrorX: false, xOffset: 0 },\n  onDetect: (det) => {\n    // det = [row, col, size, score] or null\n  },\n  onError: (err) => console.error(err),\n});\n\nawait tracker.start({\n  containerId: \"camera\",\n  overlayCanvas: document.getElementById(\"overlay\"),\n  width: 640,\n  height: 480,\n});\n```\n\n## Compare Uploaded Images\n\n```js\nimport { initFaceDetector, compareFaceSources } from \"@axeprpr/browser-face-box\";\nimport facefinderUrl from \"@axeprpr/browser-face-box/facefinder.bin\";\n\nawait initFaceDetector({ cascadeUrl: facefinderUrl });\nconst result = await compareFaceSources(fileA, fileB, { threshold: 0.72 });\n\nconsole.log(result);\n// {\n//   matched: boolean,\n//   score: number,\n//   threshold: number,\n//   reason: \"face_not_found\" | null,\n//   detA,\n//   detB\n// }\n```\n\n## API\n\n### `createFaceTracker(options)`\n\nReturns tracker with methods:\n- `init()`\n- `start({ containerId, width, height, overlayCanvas })`\n- `stop()`\n- `captureFrame(type?, quality?)`\n- `detect(source, options?)`\n- `compare(sourceA, sourceB, options?)`\n- `compareCurrentFrameWith(source, options?)`\n\n### `compareFaceSources(sourceA, sourceB, options)`\n\nCompares two image sources (`File`, `Blob`, `data URL`, `URL`, `HTMLImageElement`, `HTMLCanvasElement`).\n\n### `compareUploadedFaces(sourceA, sourceB, options)`\n\nConvenience wrapper that initializes detector then compares.\n\n## Notes\n\n- Camera access requires secure context (`https://` or `http://localhost`).\n- For production identity systems, use a dedicated recognition model + liveness checks + compliance controls.\n","readmeFilename":"README.md","_rev":"1-15c58fbd0531a7dec3e9d0cdd05cd0cb"}