{"id":20597035,"url":"https://github.com/tradle/react-native-passport-reader","last_synced_at":"2025-04-14T23:52:40.405Z","repository":{"id":49939042,"uuid":"82719037","full_name":"tradle/react-native-passport-reader","owner":"tradle","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-22T08:41:08.000Z","size":12,"stargazers_count":22,"open_issues_count":4,"forks_count":18,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-14T23:52:21.910Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tradle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-21T19:34:29.000Z","updated_at":"2024-01-22T14:03:28.000Z","dependencies_parsed_at":"2024-11-16T08:20:03.198Z","dependency_job_id":"472c1b9c-debf-4765-82eb-b88d45b0f544","html_url":"https://github.com/tradle/react-native-passport-reader","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Freact-native-passport-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Freact-native-passport-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Freact-native-passport-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Freact-native-passport-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tradle","download_url":"https://codeload.github.com/tradle/react-native-passport-reader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981260,"owners_count":21193144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T08:19:56.976Z","updated_at":"2025-04-14T23:52:40.385Z","avatar_url":"https://github.com/tradle.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# react-native-passport-reader\n\nAdapted from [passport-reader](https://github.com/tananaev/passport-reader). Individual modifications are too many to enumerate, but essentially: the workflow code was adapted to the needs of a React Native module, and the scanning code was largely left as is.\n\n## Getting started\n\n```sh\n$ npm install react-native-passport-reader --save\n$ react-native link react-native-passport-reader\n```\n\nIn your `android/app/build.gradle` add `packagingOptions`:\n\n```\nandroid {\n    ...\n    packagingOptions {\n        exclude 'META-INF/LICENSE'\n        exclude 'META-INF/NOTICE'\n    }\n}\n```\n\nIn `AndroidManifest.xml` add:\n\n```xml\n\u003cuses-permission android:name=\"android.permission.CAMERA\" /\u003e\n\u003cuses-feature android:name=\"android.hardware.nfc\" android:required=\"false\" /\u003e\n```\n\nIf your app will not function without nfc capabilities, set `android:required` above to `true`\n\n## Usage\n```js\nimport PassportReader from 'react-native-passport-reader'\n// { scan, cancel, isSupported }\n\nasync function scan () {\n  // 1. start a scan\n  // 2. press the back of your android phone against the passport\n  // 3. wait for the scan(...) Promise to get resolved/rejected\n\n  const { \n    firstName, \n    lastName, \n    gender, \n    issuer, \n    nationality, \n    photo \n  } = await PassportReader.scan({\n    // yes, you need to know a bunch of data up front\n    // this is data you can get from reading the MRZ zone of the passport\n    documentNumber: 'ofDocumentBeingScanned',\n    dateOfBirth: 'yyMMdd',\n    dateOfExpiry: 'yyMMdd'\n  })\n\n  const { base64, width, height } = photo\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Freact-native-passport-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftradle%2Freact-native-passport-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Freact-native-passport-reader/lists"}