Detalhes do pacote

nusantara-valid

agraris136MIT0.4.2

Nusantara Valid is a data validator to validate any Indonesian specific civil data such as nik, nip, and many more.

validator, javascript, indonesia, atm

readme (leia-me)

npm version Coverage Status JS gzip size Extended JS gzip size Code license

Nusantara Valid logo

Nusantara Valid

Nusantara Valid is a data validator to validate any Indonesian specific civil data such as nik, nip, and many more.

Baca petunjuk berbahasa Indonesia

Table of contents

What it can do?

  • ATM Number (Nomor Rekening)
  • Cellular Number / Mobile Number
  • Credit Card Number
  • E-Mail
  • NIK (Nomor Induk Kependudukan)
  • NIP (Nomor Induk Pegawai Negeri Sipil)
  • NISN (Nomor Induk Siswa Nasional)
  • NPWP (Nomor Pokok Wajib Pajak)
  • TNKB (Tanda Nomor Kendaraan Bermotor)
  • Telephon Number
  • ZIP Code (Kode Pos)

Getting started

There are some ways to import the package

What's included

The package includes multiple formats to support different build process.

  • /cjs/nusantara-valid.js - CommonJS module.
  • /esm/nusantara-valid.js - ES module.
  • /umd/nusantara-valid.js - UMD module. Can be used in browser with script tag

We provide compiled JS (nusantara-valid.js), as well as compiled and minified JS (nusantara-valid.min.js) in each module. Extended JS files (nusantara-valid.extended.js and minified nusantara-valid.extended.min.js) include additional PROVINCE_DATA such as regencies and districts also some additional verification process.

Folder structure

nusantara-valid/
└── dist/
    ├── cjs/
    │   ├── nusantara-valid.extended.js
    │   ├── nusantara-valid.extended.js.map
    │   ├── nusantara-valid.extended.min.js
    │   ├── nusantara-valid.extended.min.js.map
    │   ├── nusantara-valid.js
    │   ├── nusantara-valid.js.map
    │   ├── nusantara-valid.min.js
    │   └── nusantara-valid.min.js.map
    ├── esm/
    │   ├── nusantara-valid.extended.js
    │   ├── nusantara-valid.extended.js.map
    │   ├── nusantara-valid.extended.min.js
    │   ├── nusantara-valid.extended.min.js.map
    │   ├── nusantara-valid.js
    │   ├── nusantara-valid.js.map
    │   ├── nusantara-valid.min.js
    │   └── nusantara-valid.min.js.map
    └── umd/
        ├── nusantara-valid.extended.js
        ├── nusantara-valid.extended.js.map
        ├── nusantara-valid.extended.min.js
        ├── nusantara-valid.extended.min.js.map
        ├── nusantara-valid.js
        ├── nusantara-valid.js.map
        ├── nusantara-valid.min.js
        └── nusantara-valid.min.js.map

Usage

CommonJS module way (require())

const NusantaraValid = require('nusantara-valid')

ES module way (import)

import NusantaraValid from './node_modules/nusantara-valid/dist/esm/nusantara-valid.js'

Good-old-browser-way (<script></script>)

Local

<script src="../dist/umd/nusantara-valid.min.js"></script>

CDN

<script src="https://cdn.jsdelivr.net/npm/nusantara-valid@0.4.2/dist/umd/nusantara-valid.min.js"></script>

API

<summary>ATM Number (Nomor Rekening) javascript isValidATMNumber(atm: string); isValidATMNumberWithComparison(atm: string, bankKey: string); </summary> Result: javascript isValidATMNumber('87.800.000.00'); // true isValidATMNumberWithComparison('1230005123000', 'MDRK'); // true
<summary>Bank javascript getDataBank(bankKey: string); getDataBanks(); </summary> Result: javascript getDataBank('BCAK'); // { key: 'BCAK', name: 'Bank Central Asia' } getDataBanks(); // [ // { key: 'BCAK', name: 'Bank Central Asia' }, // { key: 'BCAS', name: 'Bank Central Asia Syariah' }, // { key: 'BNIK', name: 'Bank Negara Indonesia' }, // ... // ]
<summary>Cellular Number (Nomor HP) javascript isValidCellularNumber(cel: string); isValidCellularNumberWithComparison(cel: string, providerKey: string); getDataCellularNumber(cel: string); formatCellularNumber(cel: string, int:boolean = false) </summary> Result: javascript isValidCellularNumber('081212341234'); // true isValidCellularNumberWithComparison('081212341234', 'TELKOMSEL'); // true getDataCellularNumber('085612341234'); // { // "number": "0856-1234-1234", // "provider": { // "key": "INDOSAT", // "name": "Indosat Ooredoo" // } // } formatCellularNumber('+6281812341234'); // '0818-1234-1234' formatCellularNumber('085612341234', true); // '+62856-1234-1234'
<summary>Cellular Provider javascript getDataCellularProvider(key: string); getDataCellularProviders(); </summary> Result: javascript getDataCellularProvider('TELKOMSEL'); // { "key": "TELKOMSEL", "name": "Telkomsel" } getDataCellularProviders(); // [ // { key: 'TELKOMSEL', name: 'Telkomsel' }, // { key: 'INDOSAT', name: 'Indosat Ooredoo' }, // { key: 'XL', name: 'XL Axiata' }, // ... // ]
<summary>Credit Card Number javascript isValidCCNumber(cc: string); formatCCNumber(cc: string); </summary> Result: javascript isValidCCNumber('4000123456789010'); // true isValidCCNumber('5000 1234 5678 9010'); // true formatCCNumber('4000123456789010'); // '4000 1234 5678 9010' formatCCNumber('5000 1234 5678 9010'); // '5000 1234 5678 9010'
<summary>E-Mail javascript isValidEmail(email: string); </summary> Result: javascript isValidEmail('myawesom-email@domain.tld'); // true
<summary>Nomor Induk Kependudukan (NIK) javascript isValidNIK(nik: string); isValidNIKWithComparison(nik: string, comparison: { provinceKy?: string, birthday?: string }); getDataNIK(nik: string); </summary> Result: javascript isValidNIK('3101011212930001'); // true isValidNIKWithComparison('3101011212930001', { provinceKey: '31', birthday: '1993-12-12' }); // true getDataNIK('3101011212930001'); // { // nik: '3101011212930001', // birthday: 2006-12-20T00:00:00.000Z, // sex: 'Male', // province: { // key: '31', // name: 'Jakarta' // } // }
<summary>Nomor Induk Pegawai Negeri Sipil (NIP) javascript isValidNIP(nip: string); </summary> Result: javascript isValidNIP('198512262000051001'); // true
<summary>Nomor Induk Siswa Nasional (NISN) javascript isValidNISN(nisn: string); </summary> Result: javascript isValidNISN('0061230001'); // true
<summary>Nomor Pokok Wajib Pajak (NPWP) javascript isValidNPWP(npwp: string); formatNPWP(npwp: string); </summary> Result: javascript isValidNPWP('09.123.123.1-123.123'); // true isValidNPWP('091231231123123'); // true formatNPWP('091231231123123'); // '09.123.123.1-123.123'
<summary>Province javascript getDataProvince(key: string); getDataProvinces(); </summary> Result: javascript getDataProvince('34'); // { key: '34', name: 'Yogyakarta' } getDataProvinces(); // [ // { bpsCode: '11', name: 'Aceh' }, // { bpsCode: '12', name: 'Sumatra Utara' }, // { bpsCode: '13', name: 'Sumatra Barat' }, // ... // ]
<summary>Tanda Nomor Kendaraan Bermotor (TNKB) javascript isValidTNKB(tnkb: string); getDataTNKB(tnkb: string); </summary> Result: javascript isValidTNKB('AB1234XYZ'); // true getDataTNKB('AB1234XYZ'); // { // areaCode: 'AB', // index: 1234, // detailedAreaCode: 'XYZ', // province: { // key: '34', // name: 'Yogyakarta' // } // }
<summary>Telephone Number (Nomor Telefon) javascript isValidTelephoneNumber(tel: string); getDataTelephoneNumber(cel: string); formatTelephoneNumber(tel: string, int:boolean = false) </summary> Result: javascript isValidTelephoneNumber('0274123123'); // true getDataTelephoneNumber('0274123123'); // { // "number": "0274-123123", // "origin": { // "key": "34", // "name": "Yogyakarta" // } // } formatTelephoneNumber('0274123123'); // '0274-123123' formatTelephoneNumber('0274123123', true); // '+62274-123123'
<summary>ZIP Code (Kode POS) javascript isValidZIP(zip: string | number); isValidZIPWithComparison(zip: string | number, comparison: { provinceKy?: string }); </summary> Result: javascript isValidZIP('55264'); // true isValidZIP(55264); // true isValidZIPWithComparison('55264', { provinceKey: '34' }); // true isValidZIPWithComparison(55264, { provinceKey: '34' }); // true

API (Extended Only)

<summary>Province javascript getDataRegenciesInProvince(provinceBPSCode: string); getDataDistrictsInRegency(regencyBPSCode: string); </summary> Result: javascript getDataRegenciesInProvince('31'); // Regencies and City (Kabupaten dan Kota) in Jakarta // [ // { bpsCode: '31.01', name: 'Kepulauan Seribu' }, // { bpsCode: '31.71', name: 'Jakarta Pusat' }, // { bpsCode: '31.72', name: 'Jakarta Utara' }, // ... // ] getDataDistrictsInRegency('31.71'); // Districts (Kecamatan) in Jakarta Pusat // [ // { name: 'Gambir', bpsCode: '31.71.01' }, // { name: 'Sawah Besar', bpsCode: '31.71.02' }, // { name: 'Kemayoran', bpsCode: '31.71.03' }, // ... // ]

License

Copyright (c) 2020 - Fajar Setya Budi.

Nusantara Valid released under the MIT License.