Coder Social home page Coder Social logo

french-ssn's Introduction

🇫🇷 French Social Security Number Parser

tested with jest npm version CircleCI Build Status codecov

"A la carte" parsing, validation and creation of French Social Security Numbers (named by French people as "Carte Vitale", "Numéro de sécu", "Numéro de sécurité sociale", "NIR", "Carte de sécu" ...)

Installation

yarn add french-ssn

or

npm i --save french-ssn

Usage

import SSN from "french-ssn"

SSN.parse("2 55 08 14 168 025 38")
/*
{
  provisional: false,
  gender: {
    name: 'female',
    title: 'Mme',
  },
  approximateAge: 62,
  birth: {
    month: {
      name: 'août',
      index: 8
    },
    year: 1955,
    approximateDate: 1955-08-17T00:00:00.000Z,
    country: {
      insee: '100',
      name: 'France'
    },
    county: {
      insee: '14',
      name: 'Calvados'
    },
    city: {
      insee: '14168'
    }
  }
}
*/

SSN.validate("2 55 08 14 168 025 12") // false
SSN.validate("2 55 08 14 168 025 38") // true
SSN.getControlKey("2 55 08 14 168 025") // "38"
SSN.make({ gender: 1, month: 5, year: 78, place: "99330", rank: 108 }) // "178059933010817"
SSN.format("178059933010817") // "1 78 05 99 330 108 17"

Api

Method arguments  returned value  throws
parse ssn: string | number : You may provide your ssn in various formats : a number with 15 digits, a string, with or without spaces, or any other delimiting character an object containing information about the ssn owner will throw if ssn is not correctly formated or if control key does not match. Will not throw if information provided does not make sense, information will simply be marked as "unknown". Eg: parse("0 ...").gender = { unknown: true }
validate ssn: string | number boolean (this is only a convenience function, it calls parse under the hood in a try catch block) never
getControlKey partialSSN: string | number : The first 13 characters of the ssn  string : the control key (2 digits between "01" and "97") will throw if ssn is not correctly formated
make params: { gender: string? | number?, month: string? | number?, year: string? | number?, place: string? | number?, rank: string? | number?, controlKey: string? | number? } string Mostly useful for tests, this function creates an SSN with the given params. If controlKey is not provided it is auto filled with a valid value. All named parameters of the function are optionnal.
format params: string | number string it prints an SSN nicely with spaces will throw if ssn is not correctly formated

Features

  • Corsica (2A, 2B)
  • DOM-TOM
  • Birth in Foreign countries
  • Birth in Algeria before 1962
  • Birth in Morocco or Tunisia before 1964
  • No dependencies (only dev dependencies)

Contributing

Please fork this package, and run

yarn install
yarn test

Issues

Something is not working as expected? Some data is wrong? Documentation is missing? You need a different feature / API? Please file an issue, we'll be in touch.

References

(in French)

Financial Support

Gofer 🤝 (the human-centric work-on-demand solution) is the main support of this package.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.