{"id":14984942,"url":"https://github.com/li0ard/tsemrtd","last_synced_at":"2025-10-07T06:15:06.313Z","repository":{"id":255070601,"uuid":"848307278","full_name":"li0ard/tsemrtd","owner":"li0ard","description":"simple library for eMRTD. supports browsers, node, bun and more!","archived":false,"fork":false,"pushed_at":"2025-06-18T08:33:44.000Z","size":190,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-29T07:04:43.463Z","etag":null,"topics":["bun","deno","icao-9303","mrtd","nodejs","passport","typescript"],"latest_commit_sha":null,"homepage":"https://tsemrtd.li0ard.rest","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/li0ard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-27T14:21:05.000Z","updated_at":"2025-06-18T08:33:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"02f75bf2-18a3-4f1a-ab4b-f0942ee4d9a2","html_url":"https://github.com/li0ard/tsemrtd","commit_stats":null,"previous_names":["li0ard/tsemrtd"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/li0ard/tsemrtd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/li0ard%2Ftsemrtd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/li0ard%2Ftsemrtd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/li0ard%2Ftsemrtd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/li0ard%2Ftsemrtd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/li0ard","download_url":"https://codeload.github.com/li0ard/tsemrtd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/li0ard%2Ftsemrtd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278729359,"owners_count":26035640,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bun","deno","icao-9303","mrtd","nodejs","passport","typescript"],"created_at":"2024-09-24T14:09:54.091Z","updated_at":"2025-10-07T06:15:06.305Z","avatar_url":"https://github.com/li0ard.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/li0ard/tsemrtd/\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/li0ard/tsemrtd/main/.github/logo.svg\" alt=\"tsemrtd logo\" title=\"tsemrtd\" width=\"120\" /\u003e\u003cbr\u003e\n    \u003c/a\u003e\u003cbr\u003e\n    \u003cb\u003etsemrtd\u003c/b\u003e\u003cbr\u003e\n    \u003cb\u003esimple library for eMRTD datagroups\u003c/b\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://tsemrtd.li0ard.rest\"\u003esite\u003c/a\u003e\n    \u0026nbsp;•\u0026nbsp;\n    \u003ca href=\"https://tsemrtd.js.org\"\u003edocs\u003c/a\u003e\n    \u003cbr\u003e\u003cbr\u003e\n    \u003ca href=\"https://github.com/li0ard/tsemrtd/actions/workflows/test.yml\"\u003e\u003cimg src=\"https://github.com/li0ard/tsemrtd/actions/workflows/test.yml/badge.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/li0ard/tsemrtd/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/li0ard/tsemrtd\" /\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://npmjs.com/package/@li0ard/tsemrtd\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@li0ard/tsemrtd\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://jsr.io/@li0ard/tsemrtd\"\u003e\u003cimg src=\"https://jsr.io/badges/@li0ard/tsemrtd\" /\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003chr\u003e\n\u003c/p\u003e\n\n## Features\n\n- Simple: Hides decoding process and provides simple and modern API\n- Type-Safe: Most of the APIs are strictly typed to help your workflow\n- Compliance: Fully complies with ICAO 9303 and ISO/IEC 19794 standards\n- Supports Bun, Node.js, Deno, Browsers, Cloudflare Workers\n- Supports CSCA masterlist's (ICAO PKD)\n\n## Installation\n\n```bash\n# from NPM\nnpm i @li0ard/tsemrtd\n\n# from JSR\nbunx jsr add @li0ard/tsemrtd \n```\n\n## Usage\n\n### Get MRZ\n```ts\nimport { DG1 } from \"@li0ard/tsemrtd\"\n\nlet file = await Bun.file(\"EF_DG1.bin\").bytes()\nlet data = DG1.load(file)\nconsole.log(data)\n// P\u003cD\u003c\u003cMUSTERMANN\u003c\u003cERIKA\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\n// C11T002JM4D\u003c\u003c9608122F1310317\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c6\n```\n\n### Extract and save photo\n```ts\nimport { DG2 } from \"@li0ard/tsemrtd\"\n\nlet file = await Bun.file(\"EF_DG2.bin\").bytes()\nlet data = DG2.load(file)\n\nawait Bun.write(\"image.jp2\",data[0].imageData)\n```\n\n## Supported DG's\n\n| Name | Descripion                                           |\n|------|------------------------------------------------------|\n| COM  | Manifest                                             |\n| DG1  | MRZ Info                                             |\n| DG2  | Face image                                           |\n| DG3  | Fingerprint image (Optional)                         |\n| DG4  | Iris image (Optional)                                |\n| DG5  | Displayed image (Optional)                           |\n| DG7  | Signature image (Optional)                           |\n| DG11 | Additional personal data (Optional)                  |\n| DG12 | Additional document data (Optional)                  |\n| DG14 | EAC/PACE data (Conditionally mandatory)              |\n| DG15 | Active authentication data (Conditionally mandatory) |\n| SOD  | Security object of document                          |\n\nLibrary doesn't support datagroups #6,8,9,10,13,16 because they are defined for optional information for each state.\n\n## Links\n\n- [jmrtd](https://jmrtd.org) - An Open Source Java Implementation of eMRTD\n- [ICAO 9303](https://www.icao.int/publications/pages/publication.aspx?docnum=9303) - Specifications to MRTD\n- [ISO/IEC 19794(-4/-5/-6)](https://www.iso.org/standard/38745.html) - Specifications to Biometric Information Encoding (BioAPI)\n- [NIST IR 6529A](https://csrc.nist.rip/publications/nistir/NISTIR6529A.pdf) - Specifications to CBEFF\n- [BSI TR-03110](https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Technische-Richtlinien/TR-nach-Thema-sortiert/tr03110/tr-03110.html) - Specifications to EAC/PACE","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fli0ard%2Ftsemrtd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fli0ard%2Ftsemrtd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fli0ard%2Ftsemrtd/lists"}