<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

- [](#)
- [validateEmail](#validateemail)
	- [Parameters](#parameters)
	- [Examples](#examples)
- [validateEmailBulk](#validateemailbulk)
	- [Parameters](#parameters-1)
	- [Examples](#examples-1)
- [email](#email)
- [tld](#tld)
	- [Parameters](#parameters-2)
- [atIndex](#atindex)
- [Cryptography](#cryptography)
	- [Examples](#examples-2)
	- [random](#random)
		- [Parameters](#parameters-3)
		- [Examples](#examples-3)
	- [salt](#salt)
		- [Examples](#examples-4)
	- [iv](#iv)
	- [signature](#signature)
		- [Examples](#examples-5)
	- [signatureVerify](#signatureverify)
		- [Parameters](#parameters-4)
		- [Examples](#examples-6)
	- [address](#address)
		- [Examples](#examples-7)
	- [getKeys](#getkeys)
		- [Parameters](#parameters-5)
	- [encryptSingle](#encryptsingle)
		- [Parameters](#parameters-6)
		- [Examples](#examples-8)
	- [encrypt](#encrypt)
		- [Parameters](#parameters-7)
		- [Examples](#examples-9)
	- [decrypt](#decrypt)
		- [Parameters](#parameters-8)
		- [Examples](#examples-10)
	- [password](#password)
		- [Parameters](#parameters-9)
		- [Examples](#examples-11)
	- [jwtIssue](#jwtissue)
		- [Parameters](#parameters-10)
		- [Examples](#examples-12)
	- [jwtVerify](#jwtverify)
		- [Parameters](#parameters-11)
		- [Examples](#examples-13)
	- [privateKey](#privatekey)
		- [Examples](#examples-14)
	- [publicKey](#publickey)
		- [Parameters](#parameters-12)
		- [Examples](#examples-15)
	- [publicKeyVerify](#publickeyverify)
		- [Parameters](#parameters-13)
		- [Examples](#examples-16)
	- [isBase64Encoded](#isbase64encoded)
		- [Parameters](#parameters-14)
		- [Examples](#examples-17)
	- [base64Encode](#base64encode)
		- [Parameters](#parameters-15)
		- [Examples](#examples-18)
	- [base64Decode](#base64decode)
		- [Parameters](#parameters-16)
		- [Examples](#examples-19)
- [NODE\_CIPHER](#node_cipher)
- [AUTH\_TAG\_BYTE\_LEN](#auth_tag_byte_len)
- [IV\_BYTE\_LEN](#iv_byte_len)
- [KEY\_BYTE\_LEN](#key_byte_len)
- [SALT\_BYTE\_LEN](#salt_byte_len)
- [get](#get)
	- [Parameters](#parameters-17)
- [invoiceTotals](#invoicetotals)
	- [Parameters](#parameters-18)
	- [Examples](#examples-20)
- [currencyParse](#currencyparse)
	- [Parameters](#parameters-19)
	- [Examples](#examples-21)
- [phoneNumberGetInternationalString](#phonenumbergetinternationalstring)
	- [Parameters](#parameters-20)
	- [Examples](#examples-22)
- [toJSON](#tojson)
	- [Parameters](#parameters-21)
	- [Examples](#examples-23)
- [initials](#initials)
	- [Parameters](#parameters-22)
	- [Examples](#examples-24)
- [currencyMask](#currencymask)
	- [Parameters](#parameters-23)
	- [Examples](#examples-25)
- [isTrue](#istrue)
	- [Parameters](#parameters-24)
	- [Examples](#examples-26)
- [sleep](#sleep)
	- [Parameters](#parameters-25)
	- [Examples](#examples-27)
- [phoneNumberFormatString](#phonenumberformatstring)
	- [Parameters](#parameters-26)
	- [Examples](#examples-28)
- [emailGetFromString](#emailgetfromstring)
	- [Parameters](#parameters-27)
	- [Examples](#examples-29)
- [searchObject](#searchobject)
	- [Parameters](#parameters-28)
	- [Examples](#examples-30)
- [truncate](#truncate)
	- [Parameters](#parameters-29)
	- [Examples](#examples-31)
- [dateFormat](#dateformat)
	- [Parameters](#parameters-30)
	- [Examples](#examples-32)
- [publicKeySetString](#publickeysetstring)
	- [Parameters](#parameters-31)
	- [Examples](#examples-33)
- [publicKeyGetString](#publickeygetstring)
	- [Parameters](#parameters-32)
	- [Examples](#examples-34)
- [bloodGroups](#bloodgroups)
- [accountsAsset](#accountsasset)
- [accountsEquity](#accountsequity)
- [accountsPayable](#accountspayable)
- [accountsLiability](#accountsliability)
- [accountsReceivable](#accountsreceivable)
- [currencyDenomination](#currencydenomination)
- [estimateTerm](#estimateterm)
- [invoiceTerm](#invoiceterm)
- [itemCategory](#itemcategory)
- [employmentStatus](#employmentstatus)
- [customerTypes](#customertypes)
- [bankAccountType](#bankaccounttype)
- [dateFormats](#dateformats)
- [contactType](#contacttype)
- [expenseStatus](#expensestatus)
- [salaryFrequency](#salaryfrequency)
- [leavePolicy](#leavepolicy)
- [languages](#languages)
- [taxTypes](#taxtypes)
- [expenseType](#expensetype)
- [gender](#gender)
- [documentSize](#documentsize)
- [deliveryNoteStatus](#deliverynotestatus)
- [creditNoteStatus](#creditnotestatus)
- [invoiceStatus](#invoicestatus)
- [estimateStatus](#estimatestatus)
- [docTypes](#doctypes)
- [months](#months)
- [monthDays](#monthdays)
- [industries](#industries)
- [monthNameNumber](#monthnamenumber)
- [orderStatus](#orderstatus)
- [paymentMethods](#paymentmethods)
- [deliveryMethods](#deliverymethods)
- [paymentStatus](#paymentstatus)
- [paymentTerms](#paymentterms)
- [productTypes](#producttypes)
- [alphabet](#alphabet)
- [productUnits](#productunits)
- [quoteStatus](#quotestatus)
- [recurringFrequency](#recurringfrequency)
- [salutations](#salutations)
- [weekdays](#weekdays)
- [timezones](#timezones)
- [payoutMethod](#payoutmethod)
- [paymentMethod](#paymentmethod)
- [transactionStatus](#transactionstatus)

##

App dictionary

## validateEmail

This method validates email address

### Parameters

*   `contact` **[Object][167]**&#x20;

    *   `contact.email` **[String][168]** the email to be validated

### Examples

```javascript
const isValid = await validateEmail({
     email: 'user@example.com',
 })
```

Returns **[boolean][169]** {Promise<boolean>} a boolean value indicating if the email is valid or not

## validateEmailBulk

This method validates all supplied email addresses.

### Parameters

*   `mailingList` **[Array][170]** array of email objects to be verified

### Examples

```javascript
const { data } = await validateEmailBulk(
  {
    email: 'user1@example.com',
  },
  {
      email: 'user2@example.com',
  },
])
```

Returns **[Array][170]** object consisting of valid and invalid email addresses { valid: \[], invalid: \[] }

## email

Check if the email contains more than 3 numeric characters. If it does, throw an error.

## tld

Validate TLD

### Parameters

*   `email` **any**&#x20;

## atIndex

remove email modifier

## Cryptography

The Cryptography class provides methods for encryption, decryption, signing, and verification of data using various cryptographic algorithms.

### Examples

```javascript
const cryptography = new Cryptography({
		keys: ['key1', 'key2', 'key3'],
		encryptKey: '',
		encryptKeySingle: '',
})

const encryptedData = cryptography.encrypt('Hello, World!')
const decryptedData = cryptography.decrypt(encryptedData)

const signature = cryptography.signature()
const isVerified = cryptography.signatureVerify(signature)

// creates a KrugerGold Token Address
const address = cryptography.address()

const encodedData = cryptography.base64Encode('Hello, World!')
const decodedData = cryptography.base64Decode(encodedData)
const isEncodedOrNot = cryptography.isBase64Encoded(encodedData)

cryptography.get('strong_pw') // returns i=SQ_qa3W[<RxoM
cryptography.random({ length: 20, useLowerCase: true, useUpperCase: true, useNumbers: true, useSpecial: true, useHex: false }) // returns *ajz:74,*ak0
```

### random

#### Parameters

*   `options` **RandomOptions**&#x20;

#### Examples

```javascript
cryptography.random({ length: 20, useLowerCase: true, useUpperCase: true, useNumbers: true, useSpecial: true, useHex: false }) // returns *ajz:74,*ak0

// Decent Passwords - Good for nothing really, public accounts and other non-critical things.
cryptography.get('decent_pw') // returns rXjdx36oro

// Strong Passwords - Robust enough to keep your web hosting account secure.
cryptography.get('strong_pw') // returns i=SQ_qa3W[<RxoM

// Fort Knox Passwords - Secure enough for almost anything, like root or administrator passwords.
cryptography.get('ft_knox_pw') // returns P}U%H\OOYAYb;wc"3hgI,3Lz[gd-z]

// Encryption Keys - Can be used for any other 256-bit key requirement.
cryptography.get('ci_key') // returns CeXHpM3nDgzdv0o3AkMCs3OuxzepLGW8

// 160-bit WPA Key
cryptography.get('160_wpa') // returns oHI#gR8z#h7BS>cZ!zH(

// 504-bit WPA Key
cryptography.get('504_wpa') // returns <os[g`s}u06jqt"Ea]t11,HsI[UipHD)%F";:9RhJ@kTU8GknLpMAXtoCzsJjT`

// 64-bit WEP Keys
cryptography.get('64_wep') // returns 8911B

// 128-bit WEP Keys
cryptography.get('128_wep') // returns 9F4E4F933BCCC

// 152-bit WEP Keys
cryptography.get('152_wep') // returns 695E1EE96E483961

// 256-bit WEP Keys
cryptography.get('256_wep') // returns AC7E866246BA6B71BF5D88A6861AB
```

Returns **[string][168]**&#x20;

### salt

#### Examples

```javascript
const salt = cryptography.salt()
console.log(salt)
// Output:
// 5eb63bbbe01eeed093cb22bb8f5acdc3
```

Returns **any** The generated salt value as a hexadecimal string.

### iv

Returns **any** The generated IV as a Buffer.

### signature

#### Examples

```javascript
const signature = cryptography.signature()
console.log(signature)
// Output:
// 6a3a4b5c6d7e8f9a
```

Returns **any** The generated signature as a string.

### signatureVerify

#### Parameters

*   `signature` **[string][168]** The signature to verify.

#### Examples

```javascript
const signature = '6a3a4b5c6d7e8f9a'
const isValid = cryptography.signatureVerify(signature)
console.log(isValid)
// Output:
// true
```

*   Throws **any** An error if the signature contains unknown identifiers.

Returns **any** True if the signature is valid, false otherwise.

### address

#### Examples

```javascript
const address = cryptography.address()
console.log(address)
// Output:
// kK5HCVlAmmEnnlKh6wVX9TiJ6YGI7FCl
```

*   Throws **any** An error if an error occurs during address generation.

Returns **any** The generated address as a string.

### getKeys

#### Parameters

*   `count` **[number][171]?** The number of keys to generate. Defaults to 12.

Returns **any** An array of randomly generated keys.

### encryptSingle

#### Parameters

*   `data` **any** The data to encrypt.

#### Examples

```javascript
const crypto = new Cryptography(['key1', 'key2', 'key3'], 'encryptKey', 'encryptKeySingle')
const data = 'Hello, World!'
const encryptedData = cryptography.encryptSingle(data)
console.log(encryptedData)
// Output:
// 5eb63bbbe01eeed093cb22bb8f5acdc3
```

Returns **any** The encrypted data as a base64-encoded string.

### encrypt

#### Parameters

*   `text` **any** The text to encrypt.

#### Examples

```javascript
const text = 'Hello, World!'
const encryptedText = cryptography.encrypt(text)
console.log(encryptedText)
// Output:
// 6a3a4b5c6d7e8f9a:6a3a4b5c6d7e8f9a:6a3a4b5c6d7e8f9a
```

*   Throws **any** An error if an error occurs during encryption.

Returns **any** The encrypted text as a string.

### decrypt

#### Parameters

*   `encryptedText` **any** The encrypted text to decrypt.

#### Examples

```javascript
const encryptedText = '6a3a4b5c6d7e8f9a:6a3a4b5c6d7e8f9a:6a3a4b5c6d7e8f9a'
const decryptedText = cryptography.decrypt(encryptedText)
console.log(decryptedText)
// Output:
// Hello, World!
```

*   Throws **any** An error if an error occurs during decryption.

Returns **any** The decrypted text as a string.

### password

#### Parameters

*   `password` **[string][168]** The password to hash.
*   `salt` **[string][168]** The salt value to use for hashing.

#### Examples

```javascript
const password = 'myPassword'
const salt = cryptography.salt()
const hashedPassword = cryptography.password(password, salt)
console.log(hashedPassword)
// Output:
// 5ebe2294ecd0e0f08eab7690d2a6ee69
```

*   Throws **any** An error if an error occurs during password hashing.

Returns **any** The hashed password as a hexadecimal string.

### jwtIssue

#### Parameters

*   `payload` **any** The payload to include in the JWT. (optional, default `{}`)
*   `expiry` **[string][168]** The expiry time for the JWT.

#### Examples

```javascript
const payload = {
  sub: '1234567890',
  name: 'John Doe',
  iat: 1516239022
}

const expiry = '1h'
const token = cryptography.jwtIssue(payload, expiry)
console.log(token)
// Output:
// eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
```

*   Throws **any** An error if an error occurs during JWT issuance.

Returns **any** The issued JWT as a string.

### jwtVerify

#### Parameters

*   `token` **[string][168]** The JWT to verify.

#### Examples

```javascript
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
const payload = cryptography.jwtVerify(token)
console.log(payload)
// Output:
// {
//   sub: '1234567890',
//   name: 'John Doe',
//   iat: 1516239022
// }
```

*   Throws **any** An error if the JWT is invalid or an error occurs during verification.

Returns **any** The decoded payload if the JWT is valid.

### privateKey

#### Examples

```javascript
const privateKey = cryptography.privateKey()
console.log(privateKey)
// Output:
// -----BEGIN PRIVATE KEY-----
// MIHuAgEAMBAGByqGSM49AgEGBSuBBAAjBIHWMIHTAgEBBEIBA4GCAWqjggFMMIIB
// ...
// -----END PRIVATE KEY-----
```

*   Throws **any** An error if an error occurs during private key generation.

Returns **any** The generated private key as a PEM-encoded string.

### publicKey

#### Parameters

*   `privateKey` **[string][168]** The private key to generate the public key from.

#### Examples

```javascript
const privateKey = `-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZ1Ck6vJQK0J5T
...
-----END PRIVATE KEY-----`

const publicKey = cryptography.publicKey(privateKey)
console.log(publicKey)
// Output:
// -----BEGIN PUBLIC KEY-----
// MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2dQpOryUCtCeUz8vZ6zB
// ...
// -----END PUBLIC KEY-----
```

Returns **any** The generated public key as a PEM-encoded string.

### publicKeyVerify

#### Parameters

*   `$0` **{privateKey: [string][168], publicKey: [string][168]}**&#x20;

    *   `$0.privateKey` &#x20;
    *   `$0.publicKey` &#x20;
*   `privateKey`  The private key used to sign the data.
*   `publicKey`  The public key used to verify the signature.

#### Examples

```javascript
const privateKey = `-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDZ1Ck6vJQK0J5T
...
-----END PRIVATE KEY-----`
const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2dQpOryUCtCeUz8vZ6zB
...
-----END PUBLIC KEY-----`
const isAuthentic = cryptography.publicKeyVerify({ privateKey, publicKey })
console.log(isAuthentic)
// Output:
// true
```

*   Throws **any** An error if the public key fails to authenticate.

Returns **any** True if the public key is authentic, false otherwise.

### isBase64Encoded

#### Parameters

*   `string` **[string][168]** The string to check.

#### Examples

```javascript
const encodedString = 'SGVsbG8sIFdvcmxkIQ=='
const isEncoded = cryptography.isBase64Encoded(encodedString)
console.log(isEncoded)
// Output:
// true
```

Returns **any** True if the string is base64 encoded, false otherwise.

### base64Encode

#### Parameters

*   `data` **[string][168]** The data to encode.

#### Examples

```javascript
const data = 'Hello, World!'
const encodedData = cryptography.base64Encode(data)
console.log(encodedData)
// Output:
// SGVsbG8sIFdvcmxkIQ==
```

Returns **any** The base64-encoded string.

### base64Decode

#### Parameters

*   `encodedString` **[string][168]** The base64-encoded string to decode.

#### Examples

```javascript
const encodedString = 'SGVsbG8sIFdvcmxkIQ=='
const decodedString = cryptography.base64Decode(encodedString)
console.log(decodedString)
// Output:
// Hello, World!
```

Returns **any** The decoded string.

## NODE\_CIPHER

GCM is an authenticated encryption mode that
not only provides confidentiality but also
provides integrity in a secured way.

## AUTH\_TAG\_BYTE\_LEN

128 bit auth tag is recommended for GCM.

## IV\_BYTE\_LEN

NIST recommends 96 bits or 12 bytes IV for GCM
to promote interoperability, efficiency, and
simplicity of design.

## KEY\_BYTE\_LEN

Note: 256 (in ALG name) is key size.
NODE size for AES is always 128.

## SALT\_BYTE\_LEN

To prevent rainbow table attacks.

## get

### Parameters

*   `strength`  The strength of the key to generate. decent\_pw|strong\_pw|ft\_knox\_pw|ci\_key|160\_wpa|504\_wpa|64\_wep|128\_wep|152\_wep|256\_wep

## invoiceTotals

Calculates the invoice totals based on the provided parameters.

### Parameters

*   `doc`  The invoice totals document.
*   `docProducts`  An array of products in the invoice.
*   `taxes`  An array of taxes applied to the invoice.

### Examples

```javascript
const doc = {
	number: 10001,
	objectId: 'testDocObject',
	discountAmount: 0,
	discountPercentage: 0,
	taxableSubTotal: 438.5,
	paid: 0,
	adjustment: 0,
	shipping: 0,
}

const docProducts = [{ qty: 2, price: 100, tax: 15 }]
const taxes = [
	{
		name: 'VAT',
		category: 'sales',
		value: 15,
	},
	{
		name: 'None',
		category: 'sales',
		value: 0,
	},
]
```

Returns **any** A Promise that resolves to an object containing the calculated invoice totals.

## currencyParse

This method validates email address

### Parameters

*   `number` **[String][168]** the number or string instance to parse as a floating currency string

### Examples

```javascript
currencyParse('123.43') // return '123.43'
 currencyParse('12xs3.3') // return '123.30'
```

Returns **[string][168]** {String} a boolean value indicating if the email is valid or not

## phoneNumberGetInternationalString

Returns the international format of a phone number.

### Parameters

*   `phoneNumberObject`  An object containing the phone number and country code.

### Examples

```javascript
const phoneNumberObject = {
	phoneNumber: '+1234567890',
	countryCode: 'US',
}

const internationalPhoneNumber = phoneNumberGetInternationalString(phoneNumberObject);
console.log(internationalPhoneNumber); // Output: { national: '1234567890', international: '+1 234-567-890' }
```

Returns **any** The international format of the phone number as a string.

## toJSON

This function returns a well structured json object

### Parameters

*   `object` **[string][168]** a stringified object in string format

### Examples

```javascript
toJSON('{"name":"John Doe"}') // returns {"name": "John Doe"}
```

Returns **[object][167]** {Object} a well structured json object

## initials

This method returns initials from a given name string

### Parameters

*   `alt` **[string][168]** a name string to get initials from

### Examples

```javascript
initials('Zeal Murapa') // returns ZM
```

Returns **[string][168]** {String} a string of initials

## currencyMask

This method validates email address

### Parameters

*   `number` **[number][171]** a number to mask as currency

### Examples

```javascript
currencyMask(1000) // returns 1,000
```

Returns **[string][168]** {String} a string of currency

## isTrue

This method is a truthy check for a given value

### Parameters

*   `value` **any** a stringified object in string format

### Examples

```javascript
isTrue('') // returns false
```

Returns **[boolean][169]** {Boolean} a boolean value

## sleep

This function sleeps for a given time

### Parameters

*   `ms` **ms** a number in milliseconds

### Examples

```javascript
await sleep(1000) // sleeps for 1 second
```

Returns **[promise][172]** {Promise} blocking async promise

## phoneNumberFormatString

This function formats a phone number string to international format

### Parameters

*   `numberString` **[string][168]** a phone number string

### Examples

```javascript
phoneNumberFormatString('+276925411223') // returns +27 692 541 1223
```

Returns **[object][167]** {String} a formatted phone number string

## emailGetFromString

This function extracts an email address from a string

### Parameters

*   `text` **[string][168]** a string containing an email address

### Examples

```javascript
emailGetFromString('This is my email address: john@example.com')
```

Returns **[string][168]** {String} an email address

## searchObject

This function searches an array of objects for a query string

### Parameters

*   `query` **[string][168]** a string to search for
*   `objects` **[object][167]** an array of objects to search

### Examples

```javascript
searchObject('John', [{name: 'John Doe'}, {name: 'Jane Doe'}]) // returns [{name: 'John Doe'}]
```

Returns **[object][167]** {Array} a well structured json object

## truncate

This method validates email address

### Parameters

*   `str` **[string][168]** a string to truncate

### Examples

```javascript
truncate('This is a long string', 10) // returns 'This is a...'
```

Returns **[string][168]** {String} a truncated string

## dateFormat

This method validates email address

### Parameters

*   `date` **[date][173]** a date object
*   `null`  @param {"full" | "long" | "short" | "time"} format - The format of the output.

### Examples

```javascript
dateFormat(new Date(), 'full') // returns 'Sun, Jan 3rd 2021 20:00:00'
```

Returns **[object][167]** {Object} a well structured json object

## publicKeySetString

This function returns a public key string with the header and footer

### Parameters

*   `key` **[string][168]** a public key string without the header and footer

### Examples

```javascript
publicKeySetString('MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA') // returns -----BEGIN PUBLIC KEY----- ...
```

Returns **[string][168]** {string} a public key string with the header and footer

## publicKeyGetString

This function returns a public key string without the header and footer

### Parameters

*   `key` **[string][168]** a stringified object in string format

### Examples

```javascript
publicKeyGetString('-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA)
```

Returns **[string][168]** {string} a public key string without the header and footer

## bloodGroups

A list of bloodGroups

## accountsAsset

A list of accountsAsset

## accountsEquity

A list of accountsEquity

## accountsPayable

A list of accountsPayable

## accountsLiability

A list of accountsLiability

## accountsReceivable

A list of accountsReceivable

## currencyDenomination

A list of currencyDenomination

## estimateTerm

A list of estimateTerm

## invoiceTerm

A list of invoiceTerm

## itemCategory

A list of itemCategory

## employmentStatus

A list of employmentStatus

## customerTypes

A list of customerTypes

## bankAccountType

A list of bankAccountType

## dateFormats

A list of dateFormats

## contactType

A list of contactType

## expenseStatus

A list of expenseStatus

## salaryFrequency

A list of salaryFrequency

## leavePolicy

A list of leavePolicy

## languages

A list of alphabet

## taxTypes

A list of taxTypes

## expenseType

A list of expenseType

## gender

A list of gender

## documentSize

A list of documentSize

## deliveryNoteStatus

A list of deliveryNoteStatus

## creditNoteStatus

A list of creditNoteStatus

## invoiceStatus

A list of invoiceStatus

## estimateStatus

A list of estimateStatus

## docTypes

A list of docTypes

## months

A list of months

## monthDays

A list of monthDays

## industries

A list of industries

## monthNameNumber

A list of monthNameNumber

## orderStatus

A list of orderStatus

## paymentMethods

A list of paymentMethods

## deliveryMethods

A list of deliveryMethods

## paymentStatus

A list of paymentStatus

## paymentTerms

A list of paymentTerms

## productTypes

A list of productTypes

## alphabet

A list of alphabet

## productUnits

A list of productUnits

## quoteStatus

A list of quoteStatus

## recurringFrequency

A list of recurringFrequency

## salutations

A list of salutations

## weekdays

A list of weekdays

## timezones

A list of timezones

## payoutMethod

A list of payment methods

## paymentMethod

A list of payment methods

## transactionStatus

A list of transaction status

Returns **[object][167]** {Country} a country object

[1]: #

[2]: #-1

[3]: #validateemail

[4]: #parameters

[5]: #examples

[6]: #validateemailbulk

[7]: #parameters-1

[8]: #examples-1

[9]: #email

[10]: #tld

[11]: #parameters-2

[12]: #atindex

[13]: #cryptography

[14]: #examples-2

[15]: #random

[16]: #parameters-3

[17]: #examples-3

[18]: #salt

[19]: #examples-4

[20]: #iv

[21]: #signature

[22]: #examples-5

[23]: #signatureverify

[24]: #parameters-4

[25]: #examples-6

[26]: #address

[27]: #examples-7

[28]: #getkeys

[29]: #parameters-5

[30]: #encryptsingle

[31]: #parameters-6

[32]: #examples-8

[33]: #encrypt

[34]: #parameters-7

[35]: #examples-9

[36]: #decrypt

[37]: #parameters-8

[38]: #examples-10

[39]: #password

[40]: #parameters-9

[41]: #examples-11

[42]: #jwtissue

[43]: #parameters-10

[44]: #examples-12

[45]: #jwtverify

[46]: #parameters-11

[47]: #examples-13

[48]: #privatekey

[49]: #examples-14

[50]: #publickey

[51]: #parameters-12

[52]: #examples-15

[53]: #publickeyverify

[54]: #parameters-13

[55]: #examples-16

[56]: #isbase64encoded

[57]: #parameters-14

[58]: #examples-17

[59]: #base64encode

[60]: #parameters-15

[61]: #examples-18

[62]: #base64decode

[63]: #parameters-16

[64]: #examples-19

[65]: #node_cipher

[66]: #auth_tag_byte_len

[67]: #iv_byte_len

[68]: #key_byte_len

[69]: #salt_byte_len

[70]: #get

[71]: #parameters-17

[72]: #invoicetotals

[73]: #parameters-18

[74]: #examples-20

[75]: #currencyparse

[76]: #parameters-19

[77]: #examples-21

[78]: #phonenumbergetinternationalstring

[79]: #parameters-20

[80]: #examples-22

[81]: #tojson

[82]: #parameters-21

[83]: #examples-23

[84]: #initials

[85]: #parameters-22

[86]: #examples-24

[87]: #currencymask

[88]: #parameters-23

[89]: #examples-25

[90]: #istrue

[91]: #parameters-24

[92]: #examples-26

[93]: #sleep

[94]: #parameters-25

[95]: #examples-27

[96]: #phonenumberformatstring

[97]: #parameters-26

[98]: #examples-28

[99]: #emailgetfromstring

[100]: #parameters-27

[101]: #examples-29

[102]: #searchobject

[103]: #parameters-28

[104]: #examples-30

[105]: #truncate

[106]: #parameters-29

[107]: #examples-31

[108]: #dateformat

[109]: #parameters-30

[110]: #examples-32

[111]: #publickeysetstring

[112]: #parameters-31

[113]: #examples-33

[114]: #publickeygetstring

[115]: #parameters-32

[116]: #examples-34

[117]: #bloodgroups

[118]: #accountsasset

[119]: #accountsequity

[120]: #accountspayable

[121]: #accountsliability

[122]: #accountsreceivable

[123]: #currencydenomination

[124]: #estimateterm

[125]: #invoiceterm

[126]: #itemcategory

[127]: #employmentstatus

[128]: #customertypes

[129]: #bankaccounttype

[130]: #dateformats

[131]: #contacttype

[132]: #expensestatus

[133]: #salaryfrequency

[134]: #leavepolicy

[135]: #languages

[136]: #taxtypes

[137]: #expensetype

[138]: #gender

[139]: #documentsize

[140]: #deliverynotestatus

[141]: #creditnotestatus

[142]: #invoicestatus

[143]: #estimatestatus

[144]: #doctypes

[145]: #months

[146]: #monthdays

[147]: #industries

[148]: #monthnamenumber

[149]: #orderstatus

[150]: #paymentmethods

[151]: #deliverymethods

[152]: #paymentstatus

[153]: #paymentterms

[154]: #producttypes

[155]: #alphabet

[156]: #productunits

[157]: #quotestatus

[158]: #recurringfrequency

[159]: #salutations

[160]: #weekdays

[161]: #timezones

[162]: #payoutmethod

[163]: #paymentmethod

[164]: #transactionstatus

[165]: #country

[166]: #examples-35

[167]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object

[168]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String

[169]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean

[170]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array

[171]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number

[172]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise

[173]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date
