@synotech/utils
Version:
a collection of utilities for internal use
1,484 lines (935 loc) • 28.2 kB
Markdown
<!-- 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]** 
* `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** 
## 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** 
#### 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]** 
### 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]}** 
* `$0.privateKey`  
* `$0.publicKey`  
* `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