{"_id":"@ahmed_hani/dot-smile-liveness","_rev":"6-afd4aef3d36160db5806db84baec91af","name":"@ahmed_hani/dot-smile-liveness","dist-tags":{"latest":"8.0.1-fix.1"},"versions":{"7.4.0":{"name":"@ahmed_hani/dot-smile-liveness","version":"7.4.0","keywords":["semi-passive liveness","capture","identity","camera","video"],"license":"sofa proprietary license","_id":"@ahmed_hani/dot-smile-liveness@7.4.0","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"homepage":"https://github.com/Eng-AhmedHani/dot-js-kit#readme","bugs":{"url":"https://github.com/Eng-AhmedHani/dot-js-kit/issues"},"dist":{"shasum":"f32f384455e9f5d825a1988e9ec3011abccc640c","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-7.4.0.tgz","fileCount":36,"integrity":"sha512-bfwq/zkh7FEHnYa5jTBTvFdLw/2T8LeYPgJIZQ+gzOxWbPcVRNP4sUQQO2EYOfhBUy9hiQGFhyTcXON2Fg9P3Q==","signatures":[{"sig":"MEQCIHdcvqjZDNlRMgjjCcjo7orThgjsG41oCuYix/lug5jDAiBhM7zlJx9ALyHqTR1I9jpp8z0SOPd6XYvDyrGFE6ZslA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3450988},"types":"common/src/types/smile.d.ts","exports":{".":{"types":"./common/src/types/smile.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"private":false,"scripts":{"dev":"vite","tsc":"tsc","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --passWithNoTests","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","preview":"vite preview","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:smile":"LIB=smile vite build","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","build:watch":"pnpm build --watch","build:events":"LIB=events vite build","bump:version":"npm pkg set version=$VERSION","update:changelog":"../../scripts/update-changelog.sh"},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"repository":{"url":"git+https://github.com/Eng-AhmedHani/dot-js-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"Digital onboarding semi-passive liveness","directories":{},"_nodeVersion":"20.15.0","dependencies":{"preact":"^10.26.6","comlink":"^4.4.2","@preact/signals":"^2.0.4","styled-components":"^6.1.18","preact-custom-element":"^4.3.0"},"typesVersions":{"*":{".":["common/src/types/smile.d.ts"],"events":["smile/src/events.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dot-smile-liveness_7.4.0_1755456758730_0.6106315991026166","host":"s3://npm-registry-packages-npm-production"}},"7.6.1":{"name":"@ahmed_hani/dot-smile-liveness","version":"7.6.1","keywords":["semi-passive liveness","capture","identity","camera","video"],"license":"Innovatrics proprietary license","_id":"@ahmed_hani/dot-smile-liveness@7.6.1","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"homepage":"https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","bugs":{"url":"https://github.com/innovatrics/dot-js-kit/issues"},"dist":{"shasum":"f836217a91f67b1a8813edd0948ec81fd21a7a14","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-7.6.1.tgz","fileCount":38,"integrity":"sha512-pePE5CLd9G7dwVrEJX2xcO1PD7BEHaUOOLCMwK6nVIVPXuUecyjKJs5i6czSxoh7CjweNNb9tkIk57cwDnzywA==","signatures":[{"sig":"MEUCICcdnpaq6s6eJ7Jma/pk5S4Hb7j5NW7NPrC9ZzugwOfjAiEAjaxrdIFhYjiDm93btyDSohHZeYbIYIHR1f68EvbC9tc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3120706},"types":"common/src/types/smile.d.ts","exports":{".":{"types":"./common/src/types/smile.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"private":false,"scripts":{"dev":"vite","tsc":"tsc","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --passWithNoTests","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","preview":"vite preview","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:smile":"LIB=smile vite build","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","build:watch":"pnpm build --watch","build:events":"LIB=events vite build","bump:version":"npm pkg set version=$VERSION","update:changelog":"../../scripts/update-changelog.sh"},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"repository":{"url":"git+https://github.com/innovatrics/dot-js-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"Digital onboarding semi-passive liveness","directories":{},"_nodeVersion":"20.15.0","dependencies":{"preact":"^10.26.6","comlink":"^4.4.2","@preact/signals":"^2.0.4","styled-components":"^6.1.18","preact-custom-element":"^4.3.0"},"typesVersions":{"*":{".":["common/src/types/smile.d.ts"],"events":["smile/src/events.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dot-smile-liveness_7.6.1_1762066277708_0.5770240381304763","host":"s3://npm-registry-packages-npm-production"}},"7.7.0":{"name":"@ahmed_hani/dot-smile-liveness","version":"7.7.0","keywords":["semi-passive liveness","capture","identity","camera","video"],"license":"Innovatrics proprietary license","_id":"@ahmed_hani/dot-smile-liveness@7.7.0","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"homepage":"https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","bugs":{"url":"https://github.com/innovatrics/dot-js-kit/issues"},"dist":{"shasum":"da12e0737ef136a76fbdc79749e58f040ab1ab1b","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-7.7.0.tgz","fileCount":38,"integrity":"sha512-kiNUD1Q5oVZY/TC0tsBU/l8kqQzTHpXusrd7xECUVezhPcBICe5M1h6TZeeT9DMOtOsi8Y34elnzUBUWTBfOmg==","signatures":[{"sig":"MEYCIQCbGdhbEX+ejSat2OxN8q6jtfkeQG5KZVU2SY0es24jbQIhAMfHNsBLc3NUb/IC0wsjwNyLSsDDgLqK8PeC3zonH6Nf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3170279},"types":"common/src/types/smile.d.ts","exports":{".":{"types":"./common/src/types/smile.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"private":false,"scripts":{"dev":"vite","tsc":"tsc","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --passWithNoTests","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","preview":"vite preview","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:smile":"LIB=smile vite build","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","build:watch":"pnpm build --watch","build:events":"LIB=events vite build","bump:version":"npm pkg set version=$VERSION","update:changelog":"../../scripts/update-changelog.sh"},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"repository":{"url":"git+https://github.com/innovatrics/dot-js-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"Digital onboarding semi-passive liveness","directories":{},"_nodeVersion":"24.11.1","dependencies":{"preact":"^10.26.6","comlink":"^4.4.2","@preact/signals":"^2.0.4","styled-components":"^6.1.18","preact-custom-element":"^4.3.0"},"typesVersions":{"*":{".":["common/src/types/smile.d.ts"],"events":["smile/src/events.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dot-smile-liveness_7.7.0_1764141689397_0.5236827879847297","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@ahmed_hani/dot-smile-liveness","version":"8.0.0","keywords":["semi-passive liveness","capture","identity","camera","video"],"license":"ahmed_hani proprietary license","_id":"@ahmed_hani/dot-smile-liveness@8.0.0","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"homepage":"https://developers.ahmed_hani.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","bugs":{"url":"https://github.com/ahmed_hani/dot-js-kit/issues"},"dist":{"shasum":"55a9e3e1fbde398bd4d94c40c26d9fa023c1373f","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-8.0.0.tgz","fileCount":24,"integrity":"sha512-Fp0q2VhOLEFuVtWUXKVp1N0K8uK3rG0+bV/X+hq657yx0Rgq7IA9i0snBkrjSPDrY1fAxwGIZa9h7TTs0zgJAg==","signatures":[{"sig":"MEUCIAl3xgLb9xhWHASsrO0ZxL5rmlbgX/ba3S9G3uYxqUV5AiEAijIJq7rWIT5j2fAd6Nxx1k+HNNyZdEoo3ofSkcOJpn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2784638},"types":"common-new/src/types/public/smile.exports.d.ts","exports":{".":{"types":"./common-new/src/types/public/smile.exports.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"private":false,"scripts":{"dev":"vite","tsc":"tsc","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --coverage","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","preview":"vite preview","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:smile":"LIB=smile vite build","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","build:watch":"pnpm build:face --watch","build:events":"LIB=events vite build","bump:version":"npm pkg set version=$VERSION","build:controller":"LIB=smile vite build --config ../../config/vite-controller.config.ts","update:changelog":"../../scripts/update-changelog.sh"},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"repository":{"url":"git+https://github.com/ahmed_hani/dot-js-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"Digital onboarding semi-passive liveness","directories":{},"_nodeVersion":"24.11.1","dependencies":{"preact":"^10.26.6","comlink":"^4.4.2","valibot":"^1.1.0","@preact/signals":"^2.0.4","styled-components":"^6.1.18","preact-custom-element":"^4.3.0"},"typesVersions":{"*":{"events":["smile/src/events.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dot-smile-liveness_8.0.0_1766943050669_0.9174332137576013","host":"s3://npm-registry-packages-npm-production"}},"8.0.1":{"name":"@ahmed_hani/dot-smile-liveness","version":"8.0.1","keywords":["semi-passive liveness","capture","identity","camera","video"],"license":"ahmed_hani proprietary license","_id":"@ahmed_hani/dot-smile-liveness@8.0.1","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"homepage":"https://developers.ahmed_hani.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","bugs":{"url":"https://github.com/ahmed_hani/dot-js-kit/issues"},"dist":{"shasum":"9233fcca0963c9817a6f1ff7b7e0c9613742ec1a","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-8.0.1.tgz","fileCount":24,"integrity":"sha512-e8u6u58Ki8myWX2cj//qh1O4pGEusCuV63siQ6D8opv3gA1EAxFk0g3807NhNvSEdg5c4MicWzKvJ5t2zNH4Fw==","signatures":[{"sig":"MEQCIG9ecjLaPA1deITOV8ElKAJyRO42WEAKCn7j+04yfoFSAiAvsc8EZS4FHFhRwHYpYxbQLSSDtoKx+XRJYkhzM7R47Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2785294},"types":"common-new/src/types/public/smile.exports.d.ts","exports":{".":{"types":"./common-new/src/types/public/smile.exports.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"private":false,"scripts":{"dev":"vite","tsc":"tsc","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --coverage","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","preview":"vite preview","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:smile":"LIB=smile vite build","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","build:watch":"pnpm build:face --watch","build:events":"LIB=events vite build","bump:version":"npm pkg set version=$VERSION","build:controller":"LIB=smile vite build --config ../../config/vite-controller.config.ts","update:changelog":"../../scripts/update-changelog.sh"},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"repository":{"url":"git+https://github.com/ahmed_hani/dot-js-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"Digital onboarding semi-passive liveness","directories":{},"_nodeVersion":"24.11.1","dependencies":{"preact":"^10.26.6","comlink":"^4.4.2","valibot":"^1.1.0","@preact/signals":"^2.0.4","styled-components":"^6.1.18","preact-custom-element":"^4.3.0"},"typesVersions":{"*":{"events":["smile/src/events.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dot-smile-liveness_8.0.1_1767014192111_0.17665499806389828","host":"s3://npm-registry-packages-npm-production"}},"8.0.1-fix.1":{"name":"@ahmed_hani/dot-smile-liveness","private":false,"version":"8.0.1-fix.1","license":"ahmed_hani proprietary license","description":"Digital onboarding semi-passive liveness","keywords":["semi-passive liveness","capture","identity","camera","video"],"repository":{"type":"git","url":"git+https://github.com/ahmed_hani/dot-js-kit.git"},"homepage":"https://developers.ahmed_hani.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","dependencies":{"@preact/signals":"^2.0.4","comlink":"^4.4.2","preact":"^10.26.6","preact-custom-element":"^4.3.0","styled-components":"^6.1.18","valibot":"^1.1.0"},"types":"common-new/src/types/public/smile.exports.d.ts","exports":{".":{"types":"./common-new/src/types/public/smile.exports.d.ts","import":"./index.mjs","require":"./index.umd.js"},"./events":{"types":"./smile/src/events.d.ts","import":"./events.mjs","require":"./events.umd.js"}},"typesVersions":{"*":{"events":["smile/src/events.d.ts"]}},"scripts":{"dev":"vite","build:smile":"LIB=smile vite build","build:controller":"LIB=smile vite build --config ../../config/vite-controller.config.ts","build:events":"LIB=events vite build","build":"tsc && pnpm build:smile && pnpm build:events && pnpm build:types","build:watch":"pnpm build:face --watch","build:pack":"pnpm build && cd dist && pnpm pack --pack-destination ../","build:types":"tsc --project tsconfig.production.json && tsc-alias -p tsc-alias.json","preview":"vite preview","lint":"eslint \"src/**/*.{ts,tsx}\" --max-warnings 0","test":"vitest run --coverage","tsc":"tsc","bump:version":"npm pkg set version=$VERSION","update:changelog":"../../scripts/update-changelog.sh"},"_id":"@ahmed_hani/dot-smile-liveness@8.0.1-fix.1","bugs":{"url":"https://github.com/ahmed_hani/dot-js-kit/issues"},"_nodeVersion":"24.11.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-e/2Lj4CedRqfHGd78kFIiPQe6Hbuj6X19AidvLqRP1IWsmDQ8TCI10lFMSsdcXmIXgRgoSBUiGgZGgyUUTVxiA==","shasum":"a37ece308138e73f07ad9e14d908de0154c05faa","tarball":"https://registry.npmjs.org/@ahmed_hani/dot-smile-liveness/-/dot-smile-liveness-8.0.1-fix.1.tgz","fileCount":24,"unpackedSize":2785293,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDwZZQ8UFcYvvaCk34+ndO5B/Pe09OxVHfrvo/y1RD8dQIhANHVCt0qV1EyaqWg/tknawLrM8r9/W25mYfPEO+MrkGY"}]},"_npmUser":{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"},"directories":{},"maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dot-smile-liveness_8.0.1-fix.1_1768241170906_0.8625971335568148"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-17T18:52:38.619Z","modified":"2026-01-12T18:06:11.311Z","7.4.0":"2025-08-17T18:52:39.001Z","7.6.1":"2025-11-02T06:51:17.970Z","7.7.0":"2025-11-26T07:21:29.646Z","8.0.0":"2025-12-28T17:30:50.887Z","8.0.1":"2025-12-29T13:16:32.342Z","8.0.1-fix.1":"2026-01-12T18:06:11.099Z"},"bugs":{"url":"https://github.com/ahmed_hani/dot-js-kit/issues"},"license":"ahmed_hani proprietary license","homepage":"https://developers.ahmed_hani.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/","keywords":["semi-passive liveness","capture","identity","camera","video"],"repository":{"type":"git","url":"git+https://github.com/ahmed_hani/dot-js-kit.git"},"description":"Digital onboarding semi-passive liveness","maintainers":[{"name":"ahmed_hani","email":"ahmedalmashreai@gmail.com"}],"readme":"# Smile Liveness Component\n\n## Overview\n\nInnovatrics Smile Liveness Component is a web component that renders the video stream from an available phone or web camera to automatically capture two images of a user’s face with the required quality. The component lays the foundation for a semi-passive liveness capture capability.\n\nThe component output is two face images (one with neutral expression, one smiling) in the JPEG format and/or a proprietary file format for safe transfer to [Digital Identity Service](https://developers.innovatrics.com/digital-onboarding/technical/api-reference/) on server for further processing.\n\n<p align=\"center\">\n    <img alt=\"Smile Liveness\" src=\"https://www.innovatrics.com/wp-content/uploads/2024/03/Smile-liveness-preview-400px.gif\" width=\"200\" height=\"400\">\n</p>\n\nThe Smile Liveness Component can be used in combination with other components to develop remote identity verification or [digital onboarding solutions](https://www.innovatrics.com/digital-onboarding-toolkit/).\n\nYou can also check out the [integration samples](https://github.com/innovatrics/dot-web-samples) in various technologies (React, Vue, Angular, jQuery).\n\n## Pre-requisites\n\n1. **UI Component**\n\n   **IMPORTANT**: For this component to work as intended, we highly recommend you also have the [Auto Capture UI Component](https://www.npmjs.com/package/@innovatrics/dot-auto-capture-ui) installed in your project. You can learn more about why this is important on our [developers portal](https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/).\n\n2. **Camera requirements**\n\n   To get appropriate results using this component, the camera resolution on your device needs to be at least 720x720 pixels.\n\n3. **Supported browsers**\n\n   The Smile Liveness Component was tested with Chrome, Firefox, Edge, Safari, SafariVC, WebView and WKWebView. More information can be found [here](https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/#_supported_browsers).\n\n## Installation\n\nInstallation of the package is available via NPM, PNPM or Yarn:\n\nUsing NPM:\n\n```bash\n$ npm install @innovatrics/dot-smile-liveness\n```\n\nUsing PNPM:\n\n```bash\n$ pnpm add @innovatrics/dot-smile-liveness\n```\n\nUsing Yarn:\n\n```bash\n$ yarn add @innovatrics/dot-smile-liveness\n```\n\n## Usage\n\nThe Smile Liveness Component is a [web component](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) which uses custom HTML tag. Properties need to be passed into the component after the tag was rendered.\n\nHead to our [developers portal](https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/#_usage) to learn more about:\n\n- Initial setup\n- Requesting device motion permissions for iOS\n- Usage with TypeScript\n- Hosting SAM wasm\n- Troubleshooting\n- Properties\n- Callback parameters\n- Error handling\n- Examples of using the Face Auto Capture Component and the [Auto Capture UI Component](https://www.npmjs.com/package/@innovatrics/dot-auto-capture-ui) together\n\n## Changelog\n\nSee changelog [here](https://developers.innovatrics.com/digital-onboarding/technical/remote/dot-web-smile-liveness/latest/documentation/#_changelog).\n\n## License\n\nThe Smile Liveness Component is available under Innovatrics proprietary license.\n\nThe component can be used in a freemium mode without a license agreement. However, please note that the free version includes a watermark overlay in the component.\n\nTo obtain a license agreement and use the component without the overlay, please contact us at support@innovatrics.com.\n","readmeFilename":"README.md"}