npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mrz-generator

v1.1.1

Published

Enable a type TD1 and TD3 MRZ (Machine Readable Zone) text generation and MRV type B

Downloads

177

Readme

MRZ Generator

The module allows to create a MRZ (Machine Readable Zone) of type TD1 TD3.

The module allows to create a MRV (Machine Readable Zone) of type MRV B. For more information, check the following page: https://en.wikipedia.org/wiki/Machine-readable_passport

Installation

Last version:

npm install --save https://github.com/pgendre/n26-challenge-mrz-generator.git

The x.y.z version:

npm install --save https://github.com/pgendre/n26-challenge-mrz-generator.git#x.y.z

N26 challenge

To get a concrete example, run tests :

npm test

The MRZ of type TD3 should be displayed in your console. Associated input data :

{
  "passport": {
    "mrzType": "td3",
    "type": "p",
    "issuingCountry": "FRA",
    "number": "11av56868",
    "expirationDate": "11 May 2021 00:00:00 GMT"
  },
  "user": {
    "surname": "Gendre",
    "givenNames": "Pierre Joseph Alexandre",
    "nationality": "FRA",
    "dateOfBirth": "17 Oct 1986 00:12:00 GMT",
    "sex": "male"
  }
}

The MRZVof type MRV B should be displayed in your console. Associated input data :

{
  "passport": {
    "mrzType": "mrvb",
    "type": "v",
    "issuingCountry": "VEN",
    "number": "2912960",
    "expirationDate": "01 Mar 2029 00:00:00 GMT",
    "optionalField1":"281122"
  },
  "user": {
    "surname": "FUENTES MORA",
    "givenNames": "GLADYS",
    "nationality": "COL",
    "dateOfBirth": "16 Oct 1970 00:12:00 GMT",
    "sex": "female"
  }
}

The verification can be done with the picture located in the following directory:

./passport_picture

Basic usage

import { generateMrz } from 'mrz-generator'

const inputData = {
  passport: {
    mrzType: 'td1',
    type: 'p',
    issuingCountry: 'FRA',
    number: '11av56868',
    expirationDate: '11 May 2021 00:00:00 GMT',

  },
  user: {
    surname: 'Gendre',
    givenNames: 'Pierre Joseh Alexandre',
    nationality: 'FRA',
    dateOfBirth: '17 Oct 1986 00:12:00 GMT',
    sex: 'male'
  }
}

const basicTest => {
  try {
    const mrz = generateMrz(inputData)
    console.log(mrz)
    // > 'P<FRA11AV568680<<<<<<<<<<<<<<<\n8610175M2105116FRA<<<<<<<<<<<<\nGENDRE<<PIERRE<JOSEPH<ALEXANDR'
  } catch (e) {
    console.error(e)
  }
}

API Specification

Format of input data:

| 1 level key | 2 level key | Required | Format | Description | Example | | ----------- | -------------- | -------- |-----------------------| ----------------------------------------- | ----------------- | | passport | mrzType | Yes | 'td1' , 'td3' or mrvb | Type of mrz. | 'td1' | | | type | Yes | AlphaNum(1) | Type of passport. | 'i' | | | typePrecision | No | AlphaNum(1) | Precise the type of passport. | 'd' | | | issuingCountry | Yes | Country ISO * | Document issuing country. | 'ALB' | | | number | Yes | AlphaNum(9) | Document number. | 'AD98FR334' | | | expirationDate | Yes | Stringified Date | Format is free. Document expiration date. | '2023-06-24' | | | optionalField1 | No | AlphaNum(-) | Optional field. | '54 option32' | | | optionalField2 | No | AlphaNum(-) | Optional field (only available for TD1). | 'other 98' | | user | surname | Yes | Alpha(-)** | User surname. | 'Willson Mark' | | | givenNames | Yes | Alpha(-)** | User given names. | 'John Max Steven' | | | nationality | Yes | Country ISO * | User nationality. | 'BEL' | | | dateOfBirth | Yes | Stringified Date | User date of birth. | '1988-03-15' | | | sex | Yes | 'male'or'female' | User sex. | 'female' | | | | | or'unspecified' |

* : See the list below to get correct country code. ** : Are allowed hyphens, spaces and apostrophes.

Countries format

ABW Aruba AFG Afghanistan AGO Angola AIA Anguilla ALA Åland Islands ALB Albania AND Andorra ARE United Arab Emirates ARG Argentina ARM Armenia ASM American Samoa ATA Antarctica ATF French Southern Territories ATG Antigua and Barbuda AUS Australia AUT Austria AZE Azerbaijan BDI Burundi BEL Belgium BEN Benin BES Bonaire, Sint Eustatius and Saba BFA Burkina Faso BGD Bangladesh BGR Bulgaria BHR Bahrain BHS Bahamas BIH Bosnia and Herzegovina BLM Saint Barthélemy BLR Belarus BLZ Belize BMU Bermuda BOL Bolivia (Plurinational State of) BRA Brazil BRB Barbados BRN Brunei Darussalam BTN Bhutan BVT Bouvet Island BWA Botswana CAF Central African Republic CAN Canada CCK Cocos (Keeling) Islands CHE Switzerland CHL Chile CHN China CIV Côte d'Ivoire CMR Cameroon COD Congo, Democratic Republic of the COG Congo COK Cook Islands COL Colombia COM Comoros CPV Cabo Verde CRI Costa Rica CUB Cuba CUW Curaçao CXR Christmas Island CYM Cayman Islands CYP Cyprus CZE Czechia D Germany DJI Djibouti DMA Dominica DNK Denmark DOM Dominican Republic DZA Algeria ECU Ecuador EGY Egypt ERI Eritrea ESH Western Sahara ESP Spain EST Estonia ETH Ethiopia FIN Finland FJI Fiji FLK Falkland Islands (Malvinas) FRA France FRO Faroe Islands FSM Micronesia (Federated States of) GAB Gabon GBR United Kingdom of Great Britain and Northern Ireland GEO Georgia GGY Guernsey GHA Ghana GIB Gibraltar GIN Guinea GLP Guadeloupe GMB Gambia GNB Guinea-Bissau GNQ Equatorial Guinea GRC Greece GRD Grenada GRL Greenland GTM Guatemala GUF French Guiana GUM Guam GUY Guyana HKG Hong Kong HMD Heard Island and McDonald Islands HND Honduras HRV Croatia HTI Haiti HUN Hungary IDN Indonesia IMN Isle of Man IND India IOT British Indian Ocean Territory IRL Ireland IRN Iran (Islamic Republic of) IRQ Iraq ISL Iceland ISR Israel ITA Italy JAM Jamaica JEY Jersey JOR Jordan JPN Japan KAZ Kazakhstan KEN Kenya KGZ Kyrgyzstan KHM Cambodia KIR Kiribati KNA Saint Kitts and Nevis KOR Korea, Republic of KWT Kuwait LAO Lao People's Democratic Republic LBN Lebanon LBR Liberia LBY Libya LCA Saint Lucia LIE Liechtenstein LKA Sri Lanka LSO Lesotho LTU Lithuania LUX Luxembourg LVA Latvia MAC Macao MAF Saint Martin (French part) MAR Morocco MCO Monaco MDA Moldova, Republic of MDG Madagascar MDV Maldives MEX Mexico MHL Marshall Islands MKD North Macedonia MLI Mali MLT Malta MMR Myanmar MNE Montenegro MNG Mongolia MNP Northern Mariana Islands MOZ Mozambique MRT Mauritania MSR Montserrat MTQ Martinique MUS Mauritius MWI Malawi MYS Malaysia MYT Mayotte NAM Namibia NCL New Caledonia NER Niger NFK Norfolk Island NGA Nigeria NIC Nicaragua NIU Niue NLD Netherlands NOR Norway NPL Nepal NRU Nauru NZL New Zealand OMN Oman PAK Pakistan PAN Panama PCN Pitcairn PER Peru PHL Philippines PLW Palau PNG Papua New Guinea POL Poland PRI Puerto Rico PRK Korea (Democratic People's Republic of) PRT Portugal PRY Paraguay PSE Palestine, State of PYF French Polynesia QAT Qatar REU Réunion ROU Romania RUS Russian Federation RWA Rwanda SAU Saudi Arabia SDN Sudan SEN Senegal SGP Singapore SGS South Georgia and the South Sandwich Islands SHN Saint Helena, Ascension and Tristan da Cunha SJM Svalbard and Jan Mayen SLB Solomon Islands SLE Sierra Leone SLV El Salvador SMR San Marino SOM Somalia SPM Saint Pierre and Miquelon SRB Serbia SSD South Sudan STP Sao Tome and Principe SUR Suriname SVK Slovakia SVN Slovenia SWE Sweden SWZ Eswatini SXM Sint Maarten (Dutch part) SYC Seychelles SYR Syrian Arab Republic TCA Turks and Caicos Islands TCD Chad TGO Togo THA Thailand TJK Tajikistan TKL Tokelau TKM Turkmenistan TLS Timor-Leste TON Tonga TTO Trinidad and Tobago TUN Tunisia TUR Turkey TUV Tuvalu TWN Taiwan, Province of China TZA Tanzania, United Republic of UGA Uganda UKR Ukraine UMI United States Minor Outlying Islands URY Uruguay USA United States of America UZB Uzbekistan VAT Holy See VCT Saint Vincent and the Grenadines VEN Venezuela (Bolivarian Republic of) VGB Virgin Islands (British) VIR Virgin Islands (U.S.) VNM Viet Nam VUT Vanuatu WLF Wallis and Futuna WSM Samoa YEM Yemen ZAF South Africa ZMB Zambia ZWE Zimbabwe