every-utils
TypeScript icon, indicating that this package has built-in type declarations

1.1.22 • Public • Published

Table of Contents

App dictionary

App countries

validateEmail

This method validates email address

Parameters

  • contact Object

    • contact.email String the email to be validated

Examples

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

Returns boolean {Promise} a boolean value indicating if the email is valid or not

validateEmailBulk

This method validates all supplied email addresses.

Parameters

  • mailingList Array array of email objects to be verified

Examples

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

Returns Array 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

secrets

This function creates .env | .env.development | .env.development.json files from aws secret manager This function also add respective files to .gitignore

Examples

{
		"scripts": {
  		"secrets": "node ./node_modules/secrets-manager/dist/index.js --secret aws-secret-name --profile local-aws-profile --privacy be|fe --region eu-west-1",
		}
}

Cryptography

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

Examples

const cryptography = new Cryptography(['key1', 'key2', 'key3'])

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

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

salt

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
const signature = cryptography.signature()
console.log(signature)
// Output:
// 6a3a4b5c6d7e8f9a

Returns any The generated signature as a string.

signatureVerify

Parameters

  • signature string The signature to verify.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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? 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

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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The password to hash.
  • salt string The salt value to use for hashing.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The expiry time for the JWT.

Examples

const payload = {
  sub: '1234567890',
  name: 'John Doe',
  iat: 1516239022
}
const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The JWT to verify.

Examples

const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
const crypto = new Cryptography(['key1', 'key2', 'key3'])
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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The private key to generate the public key from.

Examples

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

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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, publicKey: string}

    • $0.privateKey
    • $0.publicKey
  • privateKey The private key used to sign the data.

  • publicKey The public key used to verify the signature.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The string to check.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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 The data to encode.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
const data = 'Hello, World!'
const encodedData = cryptography.base64Encode(data)
console.log(encodedData)
// Output:
// SGVsbG8sIFdvcmxkIQ==

Returns any The base64-encoded string.

base64Decode

Parameters

  • encodedString string The base64-encoded string to decode.

Examples

const crypto = new Cryptography(['key1', 'key2', 'key3'])
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

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 the number or string instance to parse as a floating currency string

Examples

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

Returns string {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

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

const internationalPhoneNumber = phoneNumberGetInternationalString(phoneNumberObject);
console.log(internationalPhoneNumber); // Output: +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 a stringified object in string format

Examples

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

Returns object {Object} a well structured json object

initials

This method returns initials from a given name string

Parameters

  • alt string a name string to get initials from

Examples

initials('Zeal Murapa') // returns ZM

Returns string {String} a string of initials

isTrue

This method is a truthy check for a given value

Parameters

  • value any a stringified object in string format

Examples

isTrue('') // returns false

Returns boolean {Boolean} a boolean value

sleep

This function sleeps for a given time

Parameters

  • ms ms a number in milliseconds

Examples

await sleep(1000) // sleeps for 1 second

Returns promise {Promise} blocking async promise

phoneNumberFormatString

This function formats a phone number string to international format

Parameters

  • numberString string a phone number string

Examples

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

Returns object {String} a formatted phone number string

emailGetFromString

This function extracts an email address from a string

Parameters

  • text string a string containing an email address

Examples

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

Returns string {String} an email address

searchObject

This function searches an array of objects for a query string

Parameters

  • query string a string to search for
  • objects object an array of objects to search

Examples

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

Returns object {Array} a well structured json object

truncate

This method validates email address

Parameters

  • str string a string to truncate

Examples

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

Returns string {String} a truncated string

dateFormat

This method validates email address

Parameters

  • date date a date object
  • null @param {"full" | "long" | "short" | "time"} format - The format of the output.

Examples

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

Returns object {Object} a well structured json object

publicKeySetString

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

Parameters

  • key string a public key string without the header and footer

Examples

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

Returns string {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 a stringified object in string format

Examples

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

Returns string {string} a public key string without the header and footer

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

organizationCategory

A list of organizationCategory

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

Country

This method validates email address

Examples

// get country of andorra only
import { country_ad } from 'every-utils';

// get all countries
import { countries } from 'every-utils';

console.log(countries.find((country) => country.tld === country_ad.tld);

{
name: 'Andorra',
capital: 'Andorra la Vella',
population: '84000',
languages: 'ca',
callingCode: '376',
numeric: '020',
timezone: 'UTC+01:00',
region: 'Europe',
tld: 'ad',
currency: {
	name: 'Euro',
	symbol: '\u20ac',
	symbolNative: '\u20ac',
	decimalDigits: 2,
	rounding: 0,
	isoCode: 'EUR',
	namePlural: 'euros',
},
countryName: 'Andorra',
countryShortCode: 'AD',
regions: [
	{
		name: 'Andorra la Vella',
		shortCode: '07',
	},
	{
		name: 'Canillo',
		shortCode: '02',
	},
	{
		name: 'Encamp',
		shortCode: '03',
	},
	{
		name: 'Escaldes-Engordany',
		shortCode: '08',
	},
	{
		name: 'La Massana',
		shortCode: '04',
	},
	{
		name: 'Ordino',
		shortCode: '05',
	},
	{
		name: 'Sant Juli\u00e0 de L\u00f2ria',
		shortCode: '06',
	},
],
}

Returns object {Country} a country object

Readme

Keywords

none

Package Sidebar

Install

npm i every-utils

Weekly Downloads

591

Version

1.1.22

License

MIT

Unpacked Size

4.84 MB

Total Files

650

Last publish

Collaborators

  • synotech