@heyform-inc/utils 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/helper.ts","../src/type.ts","../src/bytes.ts","../src/clone.ts","../src/color.ts","../src/conv.ts","../src/hs.ts","../src/date.ts","../src/mime.ts","../src/nanoid.ts","../src/object.ts","../src/parse.ts","../src/qs.ts","../src/random.ts","../src/slugify.ts","../src/uuid.ts"],"names":["type","red","green","blue","alpha","regx","parse","RandomType"],"mappings":"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","sourcesContent":["export * from 'deep-object-diff'\nexport * from './bytes'\nexport * from './clone'\nexport * from './color'\nexport * from './conv'\nexport * from './date'\nexport { default as helper } from './helper'\nexport * from './hs'\nexport * from './mime'\nexport * from './nanoid'\nexport * from './object'\nexport * from './parse'\nexport { default as qs } from './qs'\nexport * from './random'\nexport * from './slugify'\nexport * from './type'\nexport * from './uuid'\n","import visUUID from 'validator/lib/isUUID'\r\nimport visFQDN from 'validator/lib/isFQDN'\r\nimport { default as visNumeric, IsNumericOptions } from 'validator/lib/isNumeric'\r\nimport { default as visEmail, IsEmailOptions } from 'validator/lib/isEmail'\r\nimport { default as visURL, IsURLOptions } from 'validator/lib/isURL'\r\n\r\nimport { type } from './type'\r\n\r\n/* @ts-ignore */\r\nconst whiteSpaceRegx =\r\n /^[\\s\\f\\n\\r\\t\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0]+$/\r\n\r\nexport const isUUID = visUUID\r\nexport const isFQDN = visFQDN\r\n\r\nexport function isBoolean(arg: any): boolean {\r\n return type(arg) === 'boolean'\r\n}\r\n\r\nexport function isString(arg: any): boolean {\r\n return type(arg) === 'string'\r\n}\r\n\r\nexport function isNumber(arg: any): boolean {\r\n return type(arg) === 'number'\r\n}\r\n\r\nexport const isArray = Array.isArray\r\n\r\nexport function isValidArray(arg: any): boolean {\r\n return isArray(arg) && arg.length > 0\r\n}\r\n\r\nexport function isNan(arg: any): boolean {\r\n return isNumber(arg) && Number.isNaN(arg)\r\n}\r\n\r\nexport function isSet(arg: any): boolean {\r\n return type(arg) === 'set'\r\n}\r\n\r\nexport function isWeakSet(arg: any): boolean {\r\n return type(arg) === 'weakset'\r\n}\r\n\r\nexport function isMap(arg: any): boolean {\r\n return type(arg) === 'map'\r\n}\r\n\r\nexport function isWeakMap(arg: any): boolean {\r\n return type(arg) === 'weakmap'\r\n}\r\n\r\nexport function isSymbol(arg: any): boolean {\r\n return type(arg) === 'symbol'\r\n}\r\n\r\nexport function isObject(arg: any): boolean {\r\n return type(arg) === 'object'\r\n}\r\n\r\nexport function isDate(arg: any): boolean {\r\n return type(arg) === 'date'\r\n}\r\n\r\nexport function isRegExp(arg: any): boolean {\r\n return type(arg) === 'regexp'\r\n}\r\n\r\nexport function isError(arg: any): boolean {\r\n return type(arg) === 'error'\r\n}\r\n\r\nexport function isFunction(arg: any): boolean {\r\n return type(arg) === 'function'\r\n}\r\n\r\nexport function isNull(arg: any): boolean {\r\n return type(arg) === 'null'\r\n}\r\n\r\nexport function isUndefined(arg: any): boolean {\r\n return type(arg) === 'undefined'\r\n}\r\n\r\nexport function isNil(arg: any): boolean {\r\n return isNull(arg) || isUndefined(arg)\r\n}\r\n\r\nexport function isPlainObject(arg: any): boolean {\r\n if (!isObject(arg)) return false\r\n\r\n const ctor = arg.constructor\r\n if (typeof ctor !== 'function') return false\r\n\r\n const proto = ctor.prototype\r\n if (!isObject(proto)) return false\r\n\r\n return proto.hasOwnProperty('isPrototypeOf')\r\n}\r\n\r\nexport function isEmpty(arg: any): boolean {\r\n if (isNil(arg)) return true\r\n\r\n if (isBoolean(arg)) return false\r\n\r\n if (isNumber(arg)) return false\r\n\r\n if (isString(arg)) {\r\n return arg.length === 0 || whiteSpaceRegx.test(arg)\r\n }\r\n\r\n if (isFunction(arg) || isArray(arg)) {\r\n return arg.length === 0\r\n }\r\n\r\n switch (type(arg)) {\r\n case 'file':\r\n case 'map':\r\n case 'weakmap':\r\n case 'set':\r\n case 'weakset': {\r\n return arg.size === 0\r\n }\r\n\r\n case 'object': {\r\n for (const key in arg) {\r\n if (Object.hasOwnProperty.call(arg, key)) return false\r\n }\r\n return true\r\n }\r\n\r\n default:\r\n break\r\n }\r\n\r\n return false\r\n}\r\n\r\nexport function isValid(arg: any): boolean {\r\n return !isEmpty(arg)\r\n}\r\n\r\nexport function isEqual(arg1: any, arg2: any): boolean {\r\n return String(arg1) === String(arg2)\r\n}\r\n\r\nexport function isTrue(arg1: any): boolean {\r\n return arg1 === true || arg1 === 'true' || isEqual(arg1, '1')\r\n}\r\n\r\nexport function isFalse(arg1: any): boolean {\r\n return arg1 === false || arg1 === 'false' || isEqual(arg1, '0')\r\n}\r\n\r\nexport function isBool(arg: any): boolean {\r\n return isTrue(arg) || isFalse(arg)\r\n}\r\n\r\nexport function isFormData(arg: any): boolean {\r\n return type(arg) === 'formdata'\r\n}\r\n\r\nexport function uniqueArray(arg: any): any[] {\r\n if (!isValidArray(arg)) {\r\n return []\r\n }\r\n return Array.from(new Set(arg))\r\n}\r\n\r\nexport function isNumeric(arg: any, options?: IsNumericOptions): boolean {\r\n return isNumber(arg) || (isString(arg) && visNumeric(arg, options))\r\n}\r\n\r\nexport function isURL(arg: any, options?: IsURLOptions): boolean {\r\n return isValid(arg) && isString(arg) && visURL(arg, options)\r\n}\r\n\r\nexport function isEmail(arg: any, options?: IsEmailOptions): boolean {\r\n return isValid(arg) && isString(arg) && visEmail(arg, options)\r\n}\r\n\r\nexport default {\r\n isUUID,\r\n isFQDN,\r\n isBoolean,\r\n isString,\r\n isNumber,\r\n isNumeric,\r\n isArray,\r\n isValidArray,\r\n isNan,\r\n isSet,\r\n isMap,\r\n isSymbol,\r\n isObject,\r\n isDate,\r\n isRegExp,\r\n isError,\r\n isFunction,\r\n isNull,\r\n isUndefined,\r\n isNil,\r\n isPlainObject,\r\n isEmpty,\r\n isValid,\r\n isEqual,\r\n isTrue,\r\n isFalse,\r\n isBool,\r\n isURL,\r\n isEmail,\r\n isFormData,\r\n uniqueArray\r\n}\r\n","const toString = Object.prototype.toString\n\nexport function type(obj: any): string {\n if (obj === null) {\n return 'null'\n }\n\n let type: string = typeof obj\n\n if (type !== 'object') {\n return type\n }\n\n type = toString.call(obj).slice(8, -1)\n\n const typeLower = type.toLowerCase()\n\n if (typeLower !== 'object') {\n if (\n typeLower === 'number' ||\n typeLower === 'boolean' ||\n typeLower === 'string'\n ) {\n return type\n }\n return typeLower\n }\n\n return typeLower\n}\n","import { isEmpty } from './helper'\n\nconst BYTE = 1\nconst KB = BYTE * 1024\nconst MB = KB * 1024\nconst GB = MB * 1024\nconst TB = GB * 1024\nconst PB = TB * 1024\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(b|kb|mb|gb|tb|pb)$/i\n\nexport function parseBytes(value: string | number): number | undefined {\n if (isEmpty(value)) {\n return\n }\n\n const str = String(value)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'pb':\n return num * PB\n\n case 'tb':\n return num * TB\n\n case 'gb':\n return num * GB\n\n case 'mb':\n return num * MB\n\n case 'kb':\n return num * KB\n\n case 'b':\n return num * BYTE\n }\n}\n\nexport function bytes(size: string): number | undefined {\n return parseBytes(size)\n}\n\nexport function formatBytes(value: string | number): string {\n const mag = Math.abs(Number(value))\n let unit: string\n let size: number | string\n\n if (mag >= PB) {\n unit = 'PB'\n size = mag / PB\n } else if (mag >= TB) {\n unit = 'TB'\n size = mag / TB\n } else if (mag >= GB) {\n unit = 'GB'\n size = mag / GB\n } else if (mag >= MB) {\n unit = 'MB'\n size = mag / MB\n } else if (mag >= KB) {\n unit = 'KB'\n size = mag / KB\n } else {\n unit = 'B'\n size = mag / BYTE\n }\n\n if (String(size).includes('.')) {\n size = size.toFixed(1)\n }\n\n return size + unit\n}\n","import _clone from 'clone'\n\nexport function clone<T>(obj: T): T {\n return _clone(obj)\n}\n","import { isEmpty } from './helper'\n\nconst HEX_REGEX = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i\nconst RGBA_REGEX =\n /rgba\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d*(?:\\.\\d+)?)\\)/i\nconst RGB_REGEX = /rgb\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?)\\)/i\n\nexport function isHexColor(color: string): boolean {\n return HEX_REGEX.test(color)\n}\n\nexport function isRgba(color: string): boolean {\n return RGBA_REGEX.test(color)\n}\n\nexport function isRgb(color: string): boolean {\n return RGB_REGEX.test(color)\n}\n\nexport function hexToRgb(hex: string): number[] {\n if (isEmpty(hex)) {\n return []\n }\n\n if (isRgba(hex)) {\n // @ts-ignore\n const [, red, green, blue, alpha] = RGBA_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), Number(alpha)]\n }\n\n if (isRgb(hex)) {\n // @ts-ignore\n const [, red, green, blue] = RGB_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), 1]\n }\n\n if (!isHexColor(hex)) {\n return []\n }\n\n hex = hex.replace(/^#/, '')\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n let alpha = 1\n if (hex.length === 8) {\n alpha = hexToFloatAlpha(hex.slice(6, 8))\n hex = hex.slice(0, 6)\n }\n\n const number = Number.parseInt(hex, 16)\n const red = number >> 16\n const green = (number >> 8) & 255\n const blue = number & 255\n\n return [red, green, blue, alpha]\n}\n\nexport function isDarkColor(hex: string): boolean {\n if (!isHexColor(hex)) {\n return true\n }\n return colorBrightness(hex) < 170\n}\n\nexport function isLightColor(hex: string): boolean {\n return !isDarkColor(hex)\n}\n\nexport function colorBrightness(hex: string): number {\n const [red, green, blue, alpha] = hexToRgb(hex)\n return (alpha * (red * 299 + green * 587 + blue * 114)) / 1000\n}\n\nexport function rgbToHex([r, g, b]: number[]): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport function alpha(hex: string, alpha: number): string {\n const [red, green, blue] = hexToRgb(hex)\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`\n}\n\nexport function lighten(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#fff'))\n}\n\nexport function darken(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#010101'))\n}\n\nexport function invert(hex: string): string {\n const [red, green, blue] = hexToRgb(hex)\n return rgbToHex([255 - red, 255 - green, 255 - blue])\n}\n\n/**\n * Convert rgba to a transparency-adjusted-hex\n * https://stackoverflow.com/a/15898886\n */\nexport function alphaHexToRgb(\n hex: string,\n alpha: number,\n backgroundHex: string\n): number[] {\n const hexRgb = hexToRgb(hex)\n const backgroundRgb = hexToRgb(backgroundHex)\n\n return hexRgb.map((color, index) => {\n return colorRange(\n Math.floor(\n colorRange(color) * alpha +\n colorRange(backgroundRgb[index]) * (1 - alpha)\n )\n )\n })\n}\n\nfunction colorRange(color: number): number {\n return color < 1 ? 1 : color >= 255 ? 255 : color\n}\n\nfunction hexToFloatAlpha(arg: string) {\n const num = parseInt(arg, 16)\n const max = parseInt('0xff', 16)\n return Number((num / max).toFixed(2))\n}\n","import { isEmpty, isTrue, isBoolean } from './helper'\n\nexport function toBool(value: unknown, defaults?: boolean): boolean {\n if (isEmpty(value)) {\n return defaults || false\n }\n\n if (isBoolean(value)) {\n return value as boolean\n }\n\n return isTrue(value)\n}\n","import { isEmpty } from './helper'\n\nconst second = 1\nconst minute = second * 60\nconst hour = minute * 60\nconst day = hour * 24\nconst week = day * 7\nconst year = day * 365\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(s|m|h|d|w|y)$/i\n\nfunction parse(arg: string): number | undefined {\n if (isEmpty(arg)) {\n return\n }\n\n const str = String(arg)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'y':\n return num * year\n\n case 'w':\n return num * week\n\n case 'd':\n return num * day\n\n case 'h':\n return num * hour\n\n case 'm':\n return num * minute\n\n case 's':\n return num * second\n }\n}\n\nexport function hs(arg: string): number | undefined {\n const value = parse(arg)\n\n if (value) {\n return Math.round(value)\n }\n}\n\nexport function ms(arg: string): number | undefined {\n const value = hs(arg)\n\n if (value) {\n return value * 1e3\n }\n}\n","import { hs } from './hs'\nimport { OpUnitType, QUnitType } from 'dayjs'\nimport dayjs from 'dayjs'\n\nexport function timestamp(): number {\n return Math.floor(Date.now() / 1e3)\n}\n\nexport function date(str?: string, format?: string) {\n return dayjs(str, format)\n}\n\nexport function unixDate(t: number) {\n return dayjs.unix(t)\n}\n\nexport function isDateExpired(\n start: number,\n end: number,\n expire: string\n): boolean {\n return end - start > hs(expire)!\n}\n\nexport function unixDiff(\n start: number,\n end: number,\n unit: QUnitType | OpUnitType = 'day'\n): number {\n if (start > end || start < 0 || end < 0) {\n return 0\n }\n return unixDate(end).diff(unixDate(start), unit)\n}\n\nexport function datePeriod(\n start: number,\n value = 1,\n unit: OpUnitType = 'month'\n): number {\n return unixDate(start)\n .add(value, unit as unknown as any)\n .unix()\n}\n","import * as m from 'mime-types'\n\nexport const commonImageMimeTypes: string[] = [\n m.lookup('.jpg'),\n m.lookup('.png'),\n m.lookup('.bmp'),\n m.lookup('.webp'),\n m.lookup('.gif')\n] as any\n\nexport const commonFileMimeTypes: string[] = [\n ...commonImageMimeTypes,\n m.lookup('.txt'),\n m.lookup('.md'),\n m.lookup('.doc'),\n m.lookup('.docx'),\n m.lookup('.xls'),\n m.lookup('.xlsx'),\n m.lookup('.csv'),\n m.lookup('.ppt'),\n m.lookup('.pptx'),\n m.lookup('.pdf'),\n m.lookup('.mp4'),\n m.lookup('.wmv'),\n m.lookup('.svg')\n] as any\n\nexport const mime = m.lookup\n","import { customAlphabet } from 'nanoid'\n\nconst NANOID_ALPHABET =\n 'ModuleSymbhasOwnPr0123456789ABCDEFGHNRVfgctiUvzKqYTJkLxpZXIjQW'\n\nexport function nanoid(len = 21): string {\n return nanoidCustomAlphabet(NANOID_ALPHABET, len)\n}\n\nexport function nanoidCustomAlphabet(alphabet: string, len = 21): string {\n const generate = customAlphabet(alphabet, len)\n return generate()\n}\n","import { clone } from './clone'\nimport {\n isArray,\n isNan,\n isNil,\n isObject,\n isPlainObject,\n isValid\n} from './helper'\nimport * as objectPath from 'object-path'\n\nexport { deepEqual } from 'fast-equals'\n\nexport function pickObject(\n target: Record<string, any>,\n fields: Array<string | string[]>,\n excludes: Array<string> = []\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const targetKeys = Object.keys(copied)\n\n const fieldAlias: Record<string, any> = {}\n let picked: string[] = []\n\n if (fields.length > 0) {\n fields.forEach(item => {\n if (isArray(item)) {\n if (item.length > 0) {\n const filed = item[0]\n picked.push(filed)\n\n if (item.length > 1) {\n fieldAlias[filed] = item[1]\n }\n }\n } else {\n picked.push(item)\n }\n })\n } else {\n picked = targetKeys\n }\n\n const newObj: Record<string, any> = {}\n\n targetKeys\n .filter(key => !excludes.includes(key) && picked.includes(key))\n .forEach(key => {\n const alias = fieldAlias[key]\n\n if (alias) {\n newObj[alias] = copied[key]\n } else {\n newObj[key] = copied[key]\n }\n })\n\n return newObj\n}\n\nexport function pickValidValues<T = string | number | boolean>(\n target: Record<string, T>,\n fields: Array<string | string[]>\n): Record<string, T> {\n const dist: Record<string, T> = {}\n\n fields.forEach(field => {\n let key = String(field)\n let alias: string | undefined\n\n if (isArray(field)) {\n key = field[0]\n\n if (field.length > 1) {\n alias = field[1]\n }\n }\n\n let value = target[key]\n\n if (isValid(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n\n dist[alias || key] = value\n }\n })\n\n return dist\n}\n\nexport function removeObjectNil(\n target: Record<string, any>\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const newObj: Record<string, any> = {}\n\n for (const field of Object.keys(copied)) {\n const value = copied[field]\n\n if (isNil(value) || isNan(value)) {\n continue\n }\n\n newObj[field] = value\n }\n\n return newObj\n}\n\nexport function copyObjectValues(\n target: Record<string, any>,\n dist: Record<string, any>,\n keyMaps: Array<string | string[]>\n): void {\n if (!isObject(target) || !isObject(dist)) {\n return\n }\n\n for (const keys of keyMaps) {\n let targetKey: string\n let distKey: string\n\n if (isArray(keys)) {\n targetKey = keys[0]\n distKey = keys[1]\n } else {\n targetKey = String(keys)\n distKey = targetKey\n }\n\n let value = objectPath.get(target, targetKey)\n\n if (!isNil(value) && !isNan(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n objectPath.set(dist, distKey, value)\n }\n }\n}\n","import * as helper from './helper'\n\nexport function parseJson(str: string, defaultValue?: any): any {\n let value: any\n\n try {\n value = JSON.parse(str)\n } catch (e) {\n // eslint-disable-line\n }\n\n if (defaultValue && !value) {\n value = defaultValue\n }\n\n return value\n}\n\nexport function parseBool(arg: any, defaultValue?: boolean): boolean {\n if (helper.isEmpty(arg)) {\n return defaultValue || false\n }\n\n if (helper.isBoolean(arg)) {\n return arg\n }\n\n return helper.isTrue(arg)\n}\n\nexport function parseNumber(\n arg: any,\n defaultValue?: number,\n maxValue?: number\n): number | undefined {\n if (helper.isNumber(arg)) {\n if (maxValue && maxValue < Number(arg)) {\n return maxValue\n }\n return Number(arg)\n }\n\n const num = parseInt(arg, 10)\n\n if (isNaN(num)) {\n return defaultValue\n }\n\n if (maxValue && maxValue < num) {\n return maxValue\n }\n\n return num\n}\n\nexport function htmlToText(html: string, limit = 100) {\n let result = html\n .replace(/<style[^<>]*>((?!<\\/).)*<\\/style>/gi, '')\n .replace(/<script[^<>]*>((?!<\\/).)*<\\/script>/gi, '')\n .replace(/<[^>]+>/g, '')\n .replace(/\\t|\\r|\\n|\\r\\n/g, '')\n .replace(/\\s+/g, '')\n .replace(/&nbsp;/g, ' ')\n .replace(/&quot;/g, '\"')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n\n if (limit > 0) {\n result = result.slice(0, limit)\n }\n\n return result\n}\n","import { isEmpty, isString } from './helper'\n\ninterface QsOptions {\n encode?: boolean\n decode?: boolean\n separator?: string\n}\n\nexport function stringify(\n arg: Record<string, any>,\n options?: QsOptions\n): string {\n const arr: string[] = []\n\n Object.keys(arg).forEach(key => {\n let val = arg[key]\n\n if (isEmpty(val)) {\n val = ''\n } else {\n val = String(val)\n }\n\n if (options?.encode) {\n val = encodeURIComponent(val)\n }\n\n arr.push(`${key}=${val}`)\n })\n\n return arr.join('&')\n}\n\nexport function parse(str: string, options?: QsOptions): Record<string, any> {\n const obj: Record<string, any> = {}\n\n if (!isString(str)) {\n return obj\n }\n\n const arr = str.replace(/^([^?]+)?\\?/, '').split('&')\n\n arr.forEach(param => {\n const paramArr = param.split('=')\n const key = paramArr[0]\n\n if (!isEmpty(key)) {\n let val: any = paramArr[1]\n\n if (options?.decode) {\n val = decodeURIComponent(val)\n }\n\n val =\n options?.separator && val.includes(options?.separator)\n ? val.split(options?.separator)\n : val\n\n obj[key] = val\n }\n })\n\n return obj\n}\n\nexport default {\n stringify,\n parse\n}\n","const numeric = '0123456789'\nconst hexic = '0123456789abcdef'\nconst lower = 'abcdefghijklmnopqrstuvwxyz'\nconst upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nconst length = 6\n\nexport enum RandomType {\n LOWER,\n UPPER,\n NUMERIC,\n HEXIC,\n LOWER_NUMERIC,\n UPPER_NUMERIC,\n ALPHANUMERIC\n}\n\nexport function random(\n len = length * 2,\n type = RandomType.ALPHANUMERIC\n): string {\n let alphabet: string = numeric + lower + upper\n\n switch (type) {\n case RandomType.LOWER:\n alphabet = lower\n break\n case RandomType.UPPER:\n alphabet = upper\n break\n case RandomType.HEXIC:\n alphabet = hexic\n break\n case RandomType.NUMERIC:\n alphabet = numeric\n break\n case RandomType.LOWER_NUMERIC:\n alphabet = lower + numeric\n break\n case RandomType.UPPER_NUMERIC:\n alphabet = upper + numeric\n break\n case RandomType.ALPHANUMERIC:\n alphabet = lower + upper + numeric\n break\n default:\n break\n }\n\n let str = ''\n const alphabetLength = alphabet.length\n\n for (let i = 0; i < len; i++) {\n str += alphabet.charAt(Math.floor(Math.random() * alphabetLength))\n }\n\n return str\n}\n","import slug from 'slugify'\n\nexport interface SlugifyOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\nexport function slugify(text: string, options?: SlugifyOptions): string {\n return slug(text, {\n replacement: '_',\n lower: true,\n ...options\n })\n}\n","export { v4 as uuidv4, v5 as uuidv5 } from 'uuid'\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/helper.ts","../src/type.ts","../src/bytes.ts","../src/clone.ts","../src/color.ts","../src/conv.ts","../src/hs.ts","../src/date.ts","../src/mime.ts","../src/nanoid.ts","../src/object.ts","../src/parse.ts","../src/random.ts","../src/slugify.ts","../src/uuid.ts"],"names":["default","type","red","green","blue","alpha","RandomType"],"mappings":"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","sourcesContent":["export * from 'deep-object-diff'\nexport { default as qs } from 'qs'\nexport * from './bytes'\nexport * from './clone'\nexport * from './color'\nexport * from './conv'\nexport * from './date'\nexport { default as helper } from './helper'\nexport * from './hs'\nexport * from './mime'\nexport * from './nanoid'\nexport * from './object'\nexport * from './parse'\nexport * from './random'\nexport * from './slugify'\nexport * from './type'\nexport * from './uuid'\n","import visUUID from 'validator/lib/isUUID'\nimport visFQDN from 'validator/lib/isFQDN'\nimport {\n default as visNumeric,\n IsNumericOptions\n} from 'validator/lib/isNumeric'\nimport { default as visEmail, IsEmailOptions } from 'validator/lib/isEmail'\nimport { default as visURL, IsURLOptions } from 'validator/lib/isURL'\n\nimport { type } from './type'\n\n/* @ts-ignore */\nconst whiteSpaceRegx =\n /^[\\s\\f\\n\\r\\t\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff\\x09\\x0a\\x0b\\x0c\\x0d\\x20\\xa0]+$/\n\nexport const isUUID = visUUID\nexport const isFQDN = visFQDN\n\nexport function isBoolean(arg: any): boolean {\n return type(arg) === 'boolean'\n}\n\nexport function isString(arg: any): boolean {\n return type(arg) === 'string'\n}\n\nexport function isNumber(arg: any): boolean {\n return type(arg) === 'number'\n}\n\nexport const isArray = Array.isArray\n\nexport function isValidArray(arg: any): boolean {\n return isArray(arg) && arg.length > 0\n}\n\nexport function isNan(arg: any): boolean {\n return isNumber(arg) && Number.isNaN(arg)\n}\n\nexport function isSet(arg: any): boolean {\n return type(arg) === 'set'\n}\n\nexport function isWeakSet(arg: any): boolean {\n return type(arg) === 'weakset'\n}\n\nexport function isMap(arg: any): boolean {\n return type(arg) === 'map'\n}\n\nexport function isWeakMap(arg: any): boolean {\n return type(arg) === 'weakmap'\n}\n\nexport function isSymbol(arg: any): boolean {\n return type(arg) === 'symbol'\n}\n\nexport function isObject(arg: any): boolean {\n return type(arg) === 'object'\n}\n\nexport function isDate(arg: any): boolean {\n return type(arg) === 'date'\n}\n\nexport function isRegExp(arg: any): boolean {\n return type(arg) === 'regexp'\n}\n\nexport function isError(arg: any): boolean {\n return type(arg) === 'error'\n}\n\nexport function isFunction(arg: any): boolean {\n return type(arg) === 'function'\n}\n\nexport function isNull(arg: any): boolean {\n return type(arg) === 'null'\n}\n\nexport function isUndefined(arg: any): boolean {\n return type(arg) === 'undefined'\n}\n\nexport function isNil(arg: any): boolean {\n return isNull(arg) || isUndefined(arg)\n}\n\nexport function isPlainObject(arg: any): boolean {\n if (!isObject(arg)) return false\n\n const ctor = arg.constructor\n if (typeof ctor !== 'function') return false\n\n const proto = ctor.prototype\n if (!isObject(proto)) return false\n\n return proto.hasOwnProperty('isPrototypeOf')\n}\n\nexport function isEmpty(arg: any): boolean {\n if (isNil(arg)) return true\n\n if (isBoolean(arg)) return false\n\n if (isNumber(arg)) return false\n\n if (isString(arg)) {\n return arg.length === 0 || whiteSpaceRegx.test(arg)\n }\n\n if (isFunction(arg) || isArray(arg)) {\n return arg.length === 0\n }\n\n switch (type(arg)) {\n case 'file':\n case 'map':\n case 'weakmap':\n case 'set':\n case 'weakset': {\n return arg.size === 0\n }\n\n case 'object': {\n for (const key in arg) {\n if (Object.hasOwnProperty.call(arg, key)) return false\n }\n return true\n }\n\n default:\n break\n }\n\n return false\n}\n\nexport function isValid(arg: any): boolean {\n return !isEmpty(arg)\n}\n\nexport function isEqual(arg1: any, arg2: any): boolean {\n return String(arg1) === String(arg2)\n}\n\nexport function isTrue(arg1: any): boolean {\n return arg1 === true || arg1 === 'true' || isEqual(arg1, '1')\n}\n\nexport function isFalse(arg1: any): boolean {\n return arg1 === false || arg1 === 'false' || isEqual(arg1, '0')\n}\n\nexport function isBool(arg: any): boolean {\n return isTrue(arg) || isFalse(arg)\n}\n\nexport function isFormData(arg: any): boolean {\n return type(arg) === 'formdata'\n}\n\nexport function uniqueArray(arg: any): any[] {\n if (!isValidArray(arg)) {\n return []\n }\n return Array.from(new Set(arg))\n}\n\nexport function isNumeric(arg: any, options?: IsNumericOptions): boolean {\n return isNumber(arg) || (isString(arg) && visNumeric(arg, options))\n}\n\nexport function isURL(arg: any, options?: IsURLOptions): boolean {\n return isValid(arg) && isString(arg) && visURL(arg, options)\n}\n\nexport function isEmail(arg: any, options?: IsEmailOptions): boolean {\n return isValid(arg) && isString(arg) && visEmail(arg, options)\n}\n\nexport default {\n isUUID,\n isFQDN,\n isBoolean,\n isString,\n isNumber,\n isNumeric,\n isArray,\n isValidArray,\n isNan,\n isSet,\n isMap,\n isWeakSet,\n isWeakMap,\n isSymbol,\n isObject,\n isDate,\n isRegExp,\n isError,\n isFunction,\n isNull,\n isUndefined,\n isNil,\n isPlainObject,\n isEmpty,\n isValid,\n isEqual,\n isTrue,\n isFalse,\n isBool,\n isURL,\n isEmail,\n isFormData,\n uniqueArray\n}\n","const toString = Object.prototype.toString\n\nexport function type(obj: any): string {\n if (obj === null) {\n return 'null'\n }\n\n let type: string = typeof obj\n\n if (type !== 'object') {\n return type\n }\n\n type = toString.call(obj).slice(8, -1)\n\n const typeLower = type.toLowerCase()\n\n if (typeLower !== 'object') {\n if (\n typeLower === 'number' ||\n typeLower === 'boolean' ||\n typeLower === 'string'\n ) {\n return type\n }\n return typeLower\n }\n\n return typeLower\n}\n","import { isEmpty } from './helper'\n\nconst BYTE = 1\nconst KB = BYTE * 1024\nconst MB = KB * 1024\nconst GB = MB * 1024\nconst TB = GB * 1024\nconst PB = TB * 1024\nconst regx = /^(-?(?:\\d+)?\\.?\\d+)(b|kb|mb|gb|tb|pb)$/i\n\nexport function parseBytes(value: string | number): number | undefined {\n if (isEmpty(value)) {\n return\n }\n\n const str = String(value)\n const matches = str.match(regx)\n\n if (!matches) {\n return\n }\n\n const num = parseFloat(matches[1])\n const type = matches[2].toLowerCase()\n\n switch (type) {\n case 'pb':\n return num * PB\n\n case 'tb':\n return num * TB\n\n case 'gb':\n return num * GB\n\n case 'mb':\n return num * MB\n\n case 'kb':\n return num * KB\n\n case 'b':\n return num * BYTE\n }\n}\n\nexport function bytes(size: string): number | undefined {\n return parseBytes(size)\n}\n\nexport function formatBytes(value: string | number): string {\n const mag = Math.abs(Number(value))\n let unit: string\n let size: number | string\n\n if (mag >= PB) {\n unit = 'PB'\n size = mag / PB\n } else if (mag >= TB) {\n unit = 'TB'\n size = mag / TB\n } else if (mag >= GB) {\n unit = 'GB'\n size = mag / GB\n } else if (mag >= MB) {\n unit = 'MB'\n size = mag / MB\n } else if (mag >= KB) {\n unit = 'KB'\n size = mag / KB\n } else {\n unit = 'B'\n size = mag / BYTE\n }\n\n if (String(size).includes('.')) {\n size = size.toFixed(1)\n }\n\n return size + unit\n}\n","import _clone from 'clone'\n\nexport function clone<T>(obj: T): T {\n return _clone(obj)\n}\n","import { isEmpty } from './helper'\n\nconst HEX_REGEX = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i\nconst RGBA_REGEX =\n /rgba\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d*(?:\\.\\d+)?)\\)/i\nconst RGB_REGEX = /rgb\\((\\d{1,3}%?),\\s*(\\d{1,3}%?),\\s*(\\d{1,3}%?)\\)/i\n\nexport function isHexColor(color: string): boolean {\n return HEX_REGEX.test(color)\n}\n\nexport function isRgba(color: string): boolean {\n return RGBA_REGEX.test(color)\n}\n\nexport function isRgb(color: string): boolean {\n return RGB_REGEX.test(color)\n}\n\nexport function hexToRgb(hex: string): number[] {\n if (isEmpty(hex)) {\n return []\n }\n\n if (isRgba(hex)) {\n // @ts-ignore\n const [, red, green, blue, alpha] = RGBA_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), Number(alpha)]\n }\n\n if (isRgb(hex)) {\n // @ts-ignore\n const [, red, green, blue] = RGB_REGEX.exec(hex)\n return [Number(red), Number(green), Number(blue), 1]\n }\n\n if (!isHexColor(hex)) {\n return []\n }\n\n hex = hex.replace(/^#/, '')\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n let alpha = 1\n if (hex.length === 8) {\n alpha = hexToFloatAlpha(hex.slice(6, 8))\n hex = hex.slice(0, 6)\n }\n\n const number = Number.parseInt(hex, 16)\n const red = number >> 16\n const green = (number >> 8) & 255\n const blue = number & 255\n\n return [red, green, blue, alpha]\n}\n\nexport function isDarkColor(hex: string): boolean {\n if (!isHexColor(hex)) {\n return true\n }\n return colorBrightness(hex) < 170\n}\n\nexport function isLightColor(hex: string): boolean {\n return !isDarkColor(hex)\n}\n\nexport function colorBrightness(hex: string): number {\n const [red, green, blue, alpha] = hexToRgb(hex)\n return (alpha * (red * 299 + green * 587 + blue * 114)) / 1000\n}\n\nexport function rgbToHex([r, g, b]: number[]): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\nexport function alpha(hex: string, alpha: number): string {\n const [red, green, blue] = hexToRgb(hex)\n return `rgba(${red}, ${green}, ${blue}, ${alpha})`\n}\n\nexport function lighten(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#fff'))\n}\n\nexport function darken(hex: string, alpha: number): string {\n return rgbToHex(alphaHexToRgb(hex, 1 - alpha, '#010101'))\n}\n\nexport function invert(hex: string): string {\n const [red, green, blue] = hexToRgb(hex)\n return rgbToHex([255 - red, 255 - green, 255 - blue])\n}\n\n/**\n * Convert rgba to a transparency-adjusted-hex\n * https://stackoverflow.com/a/15898886\n */\nexport function alphaHexToRgb(\n hex: string,\n alpha: number,\n backgroundHex: string\n): number[] {\n const hexRgb = hexToRgb(hex)\n const backgroundRgb = hexToRgb(backgroundHex)\n\n return hexRgb.map((color, index) => {\n return colorRange(\n Math.floor(\n colorRange(color) * alpha +\n colorRange(backgroundRgb[index]) * (1 - alpha)\n )\n )\n })\n}\n\nfunction colorRange(color: number): number {\n return color < 1 ? 1 : color >= 255 ? 255 : color\n}\n\nfunction hexToFloatAlpha(arg: string) {\n const num = parseInt(arg, 16)\n const max = parseInt('0xff', 16)\n return Number((num / max).toFixed(2))\n}\n","import { IParseOptions, IStringifyOptions, parse, stringify } from 'qs'\nimport {\n isEmpty,\n isBoolean,\n isTrue,\n isNumber,\n isValid,\n isString\n} from './helper'\n\nexport function toBool(value: unknown, defaults?: boolean): boolean {\n if (isEmpty(value)) {\n return defaults || false\n }\n\n if (isBoolean(value)) {\n return value as boolean\n }\n\n return isTrue(value)\n}\n\nexport const parseBool = toBool\n\nexport function toInteger(\n value: unknown,\n defaults?: number,\n maxValue?: number\n): number | undefined {\n let val: number\n\n if (isNumber(value)) {\n val = Number(value)\n } else {\n val = parseInt(value as string, 10)\n }\n\n if (!isFinite(val)) {\n return defaults\n }\n\n return maxValue ? Math.min(maxValue, val) : val\n}\n\nexport const parseNumber = toInteger\nexport const toInt = toInteger\n\nexport function toFloat(\n value: unknown,\n defaults?: number,\n maxValue?: number\n): number | undefined {\n let val: number\n\n if (isNumber(value)) {\n val = Number(value)\n } else {\n val = parseFloat(value as string)\n }\n\n if (!isFinite(val)) {\n return defaults\n }\n\n return maxValue ? Math.min(maxValue, val) : val\n}\n\nexport function toFixed(value: number, precision = 2) {\n return value.toFixed(precision).replace(/(\\.\\d*?)0+$/, '$1').replace(/\\.$/, '')\n}\n\nexport function toJSON<T extends object>(\n str: unknown,\n defaults?: T\n): T | undefined {\n let value: T | undefined\n\n if (isValid(str) && isString(str)) {\n try {\n value = JSON.parse(str as string)\n } catch (e) {\n // eslint-disable-line\n }\n }\n\n if (!!defaults && !value) {\n value = defaults\n }\n\n return value\n}\n\nexport const parseJson = toJSON\n\nconst THOUSAND = 1_000\nconst HUNDRED_THOUSAND = 100_000\nconst MILLION = 1_000_000\nconst HUNDRED_MILLION = 100_000_000\nconst BILLION = 1_000_000_000\nconst HUNDRED_BILLION = 100_000_000_000\nconst TRILLION = 1_000_000_000_000\n\nexport function toIntlNumber(value: number) {\n if (value >= THOUSAND && value < MILLION) {\n const thousands = value / THOUSAND\n\n if (thousands === Math.floor(thousands) || value >= HUNDRED_THOUSAND) {\n return Math.floor(thousands) + 'K'\n } else {\n return Math.floor(thousands * 10) / 10 + 'K'\n }\n } else if (value >= MILLION && value < BILLION) {\n const millions = value / MILLION\n\n if (millions === Math.floor(millions) || value >= HUNDRED_MILLION) {\n return Math.floor(millions) + 'M'\n } else {\n return Math.floor(millions * 10) / 10 + 'M'\n }\n } else if (value >= BILLION && value < TRILLION) {\n const billions = value / BILLION\n\n if (billions === Math.floor(billions) || value >= HUNDRED_BILLION) {\n return Math.floor(billions) + 'B'\n } else {\n return Math.floor(billions * 10) / 10 + 'B'\n }\n } else {\n return `${value}`\n }\n}\n\ninterface ToDurationOptions {\n hideOnZeroValue?: boolean\n padNumber?: boolean\n hourUnit?: string\n minuteUnit?: string\n secondUnit?: string\n}\n\nfunction durationPad(num: number, size: number) {\n return ('000' + num).slice(size * -1)\n}\n\nfunction getDuration(num: number, unit: string, options?: ToDurationOptions) {\n if (options?.hideOnZeroValue && num === 0) {\n return\n }\n\n if (options?.padNumber) {\n return durationPad(num, 2) + unit\n }\n\n return num + unit\n}\n\nexport function toDuration(value: number, options?: ToDurationOptions) {\n const hours = Math.floor(value / 60 / 60)\n const minutes = Math.floor(value / 60) % 60\n const seconds = Math.floor(value - minutes * 60 - hours * 60 * 60)\n\n return [\n hours > 0 ? { num: hours, unit: options?.hourUnit || 'h' } : null,\n minutes > 0 ? { num: minutes, unit: options?.minuteUnit || 'm' } : null,\n { num: seconds, unit: options?.secondUnit || 's' }\n ]\n .filter(Boolean)\n .map((d, i) =>\n getDuration(d!.num, d!.unit, {\n ...options,\n hideOnZeroValue: i === 0 ? false : options?.hideOnZeroValue\n })\n )\n .filter(Boolean)\n .join(' ')\n}\n\nexport function toURLParams<T extends object>(\n value: string,\n options?: IParseOptions\n) {\n return parse(value, options) as T\n}\n\nexport function toURLQuery(\n value: Record<string | number, any>,\n baseUri?: string,\n options?: IStringifyOptions\n) {\n const query = stringify(value, options)\n\n if (baseUri) {\n return baseUri + (baseUri.includes('?') ? '&' : '?') + query\n }\n\n return query\n}\n","import vms from 'ms'\n\nexport function hs(arg: string): number | undefined {\n const value = ms(arg)\n\n if (value) {\n return Math.round(value / 1_000)\n }\n}\n\nexport function ms(arg: string): number | undefined {\n return vms(arg)\n}\n\nexport const toSecond = hs\nexport const toMillisecond = ms\n","import { hs } from './hs'\nimport { OpUnitType, QUnitType } from 'dayjs'\nimport dayjs from 'dayjs'\n\nexport function timestamp(): number {\n return Math.floor(Date.now() / 1e3)\n}\n\nexport function date(str?: string, format?: string) {\n return dayjs(str, format)\n}\n\nexport function unixDate(t: number) {\n return dayjs.unix(t)\n}\n\nexport function isDateExpired(\n start: number,\n end: number,\n expire: string\n): boolean {\n return end - start > hs(expire)!\n}\n\nexport function unixDiff(\n start: number,\n end: number,\n unit: QUnitType | OpUnitType = 'day'\n): number {\n if (start > end || start < 0 || end < 0) {\n return 0\n }\n return unixDate(end).diff(unixDate(start), unit)\n}\n\nexport function datePeriod(\n start: number,\n value = 1,\n unit: OpUnitType = 'month'\n): number {\n return unixDate(start)\n .add(value, unit as unknown as any)\n .unix()\n}\n","import * as m from 'mime-types'\n\nexport const commonImageMimeTypes: string[] = [\n m.lookup('.jpg'),\n m.lookup('.png'),\n m.lookup('.bmp'),\n m.lookup('.webp'),\n m.lookup('.gif')\n] as any\n\nexport const commonFileMimeTypes: string[] = [\n ...commonImageMimeTypes,\n m.lookup('.txt'),\n m.lookup('.md'),\n m.lookup('.doc'),\n m.lookup('.docx'),\n m.lookup('.xls'),\n m.lookup('.xlsx'),\n m.lookup('.csv'),\n m.lookup('.ppt'),\n m.lookup('.pptx'),\n m.lookup('.pdf'),\n m.lookup('.mp4'),\n m.lookup('.wmv'),\n m.lookup('.svg')\n] as any\n\nexport const mime = m.lookup\n","import { customAlphabet } from 'nanoid'\n\nconst NANOID_ALPHABET =\n 'ModuleSymbhasOwnPr0123456789ABCDEFGHNRVfgctiUvzKqYTJkLxpZXIjQW'\n\nexport function nanoid(len = 21): string {\n return nanoidCustomAlphabet(NANOID_ALPHABET, len)\n}\n\nexport function nanoidCustomAlphabet(alphabet: string, len = 21): string {\n const generate = customAlphabet(alphabet, len)\n return generate()\n}\n","import { clone } from './clone'\nimport {\n isArray,\n isNan,\n isNil,\n isObject,\n isPlainObject,\n isValid\n} from './helper'\nimport * as objectPath from 'object-path'\n\nexport { deepEqual } from 'fast-equals'\n\nexport function pickObject(\n target: Record<string, any>,\n fields: Array<string | string[]>,\n excludes: Array<string> = []\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const targetKeys = Object.keys(copied)\n\n const fieldAlias: Record<string, any> = {}\n let picked: string[] = []\n\n if (fields.length > 0) {\n fields.forEach(item => {\n if (isArray(item)) {\n if (item.length > 0) {\n const filed = item[0]\n picked.push(filed)\n\n if (item.length > 1) {\n fieldAlias[filed] = item[1]\n }\n }\n } else {\n picked.push(item)\n }\n })\n } else {\n picked = targetKeys\n }\n\n const newObj: Record<string, any> = {}\n\n targetKeys\n .filter(key => !excludes.includes(key) && picked.includes(key))\n .forEach(key => {\n const alias = fieldAlias[key]\n\n if (alias) {\n newObj[alias] = copied[key]\n } else {\n newObj[key] = copied[key]\n }\n })\n\n return newObj\n}\n\nexport function excludeObject(\n target: Record<string, any>,\n excludes: Array<string> = []\n): Record<string, any> {\n return pickObject(target, [], excludes)\n}\n\nexport function pickValidValues<T = string | number | boolean>(\n target: Record<string, T>,\n fields: Array<string | string[]>\n): Record<string, T> {\n const dist: Record<string, T> = {}\n\n fields.forEach(field => {\n let key = String(field)\n let alias: string | undefined\n\n if (isArray(field)) {\n key = field[0]\n\n if (field.length > 1) {\n alias = field[1]\n }\n }\n\n let value = target[key]\n\n if (isValid(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n\n dist[alias || key] = value\n }\n })\n\n return dist\n}\n\nexport function removeObjectNil(\n target: Record<string, any>\n): Record<string, any> {\n if (!isObject(target)) {\n return {}\n }\n\n const copied = clone<Record<string, any>>(target)\n const newObj: Record<string, any> = {}\n\n for (const field of Object.keys(copied)) {\n const value = copied[field]\n\n if (isNil(value) || isNan(value)) {\n continue\n }\n\n newObj[field] = value\n }\n\n return newObj\n}\n\nexport function copyObjectValues(\n target: Record<string, any>,\n dist: Record<string, any>,\n keyMaps: Array<string | string[]>\n): void {\n if (!isObject(target) || !isObject(dist)) {\n return\n }\n\n for (const keys of keyMaps) {\n let targetKey: string\n let distKey: string\n\n if (isArray(keys)) {\n targetKey = keys[0]\n distKey = keys[1]\n } else {\n targetKey = String(keys)\n distKey = targetKey\n }\n\n let value = objectPath.get(target, targetKey)\n\n if (!isNil(value) && !isNan(value)) {\n if (isPlainObject(value) || isArray(value)) {\n value = clone(value)\n }\n objectPath.set(dist, distKey, value)\n }\n }\n}\n","export function htmlToText(html: string, limit = 100) {\n let result = html\n .replace(/<style[^<>]*>((?!<\\/).)*<\\/style>/gi, '')\n .replace(/<script[^<>]*>((?!<\\/).)*<\\/script>/gi, '')\n .replace(/<[^>]+>/g, '')\n .replace(/\\t|\\r|\\n|\\r\\n/g, '')\n .replace(/\\s+/g, '')\n .replace(/&nbsp;/g, ' ')\n .replace(/&quot;/g, '\"')\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n\n if (limit > 0) {\n result = result.slice(0, limit)\n }\n\n return result\n}\n","const numeric = '0123456789'\nconst hexic = '0123456789abcdef'\nconst lower = 'abcdefghijklmnopqrstuvwxyz'\nconst upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\nconst length = 6\n\nexport enum RandomType {\n LOWER,\n UPPER,\n NUMERIC,\n HEXIC,\n LOWER_NUMERIC,\n UPPER_NUMERIC,\n ALPHANUMERIC\n}\n\nexport function random(\n len = length * 2,\n type = RandomType.ALPHANUMERIC\n): string {\n let alphabet: string = numeric + lower + upper\n\n switch (type) {\n case RandomType.LOWER:\n alphabet = lower\n break\n case RandomType.UPPER:\n alphabet = upper\n break\n case RandomType.HEXIC:\n alphabet = hexic\n break\n case RandomType.NUMERIC:\n alphabet = numeric\n break\n case RandomType.LOWER_NUMERIC:\n alphabet = lower + numeric\n break\n case RandomType.UPPER_NUMERIC:\n alphabet = upper + numeric\n break\n case RandomType.ALPHANUMERIC:\n alphabet = lower + upper + numeric\n break\n }\n\n let str = ''\n const alphabetLength = alphabet.length\n\n for (let i = 0; i < len; i++) {\n str += alphabet.charAt(Math.floor(Math.random() * alphabetLength))\n }\n\n return str\n}\n","import slug from 'slugify'\n\nexport interface SlugifyOptions {\n replacement?: string\n remove?: RegExp\n lower?: boolean\n strict?: boolean\n locale?: string\n trim?: boolean\n}\n\nexport function slugify(text: string, options?: SlugifyOptions): string {\n return slug(text, {\n replacement: '_',\n lower: true,\n ...options\n })\n}\n","export { v4 as uuidv4, v5 as uuidv5 } from 'uuid'\n"]}
package/dist/index.mjs CHANGED
@@ -1,10 +1,13 @@
1
1
  export * from 'deep-object-diff';
2
+ import { parse, stringify } from 'qs';
3
+ export { default as qs } from 'qs';
2
4
  import visUUID from 'validator/lib/isUUID';
3
5
  import visFQDN from 'validator/lib/isFQDN';
4
6
  import visNumeric from 'validator/lib/isNumeric';
5
7
  import visEmail from 'validator/lib/isEmail';
6
8
  import visURL from 'validator/lib/isURL';
7
9
  import _clone from 'clone';
10
+ import vms from 'ms';
8
11
  import dayjs from 'dayjs';
9
12
  import * as m from 'mime-types';
10
13
  import { customAlphabet } from 'nanoid';
@@ -59,9 +62,15 @@ function isNan(arg) {
59
62
  function isSet(arg) {
60
63
  return type(arg) === "set";
61
64
  }
65
+ function isWeakSet(arg) {
66
+ return type(arg) === "weakset";
67
+ }
62
68
  function isMap(arg) {
63
69
  return type(arg) === "map";
64
70
  }
71
+ function isWeakMap(arg) {
72
+ return type(arg) === "weakmap";
73
+ }
65
74
  function isSymbol(arg) {
66
75
  return type(arg) === "symbol";
67
76
  }
@@ -169,6 +178,8 @@ var helper_default = {
169
178
  isNan,
170
179
  isSet,
171
180
  isMap,
181
+ isWeakSet,
182
+ isWeakMap,
172
183
  isSymbol,
173
184
  isObject,
174
185
  isDate,
@@ -352,8 +363,6 @@ function hexToFloatAlpha(arg) {
352
363
  const max = parseInt("0xff", 16);
353
364
  return Number((num / max).toFixed(2));
354
365
  }
355
-
356
- // src/conv.ts
357
366
  function toBool(value, defaults) {
358
367
  if (isEmpty(value)) {
359
368
  return defaults || false;
@@ -363,53 +372,131 @@ function toBool(value, defaults) {
363
372
  }
364
373
  return isTrue(value);
365
374
  }
366
-
367
- // src/hs.ts
368
- var second = 1;
369
- var minute = second * 60;
370
- var hour = minute * 60;
371
- var day = hour * 24;
372
- var week = day * 7;
373
- var year = day * 365;
374
- var regx2 = /^(-?(?:\d+)?\.?\d+)(s|m|h|d|w|y)$/i;
375
- function parse(arg) {
376
- if (isEmpty(arg)) {
377
- return;
375
+ var parseBool = toBool;
376
+ function toInteger(value, defaults, maxValue) {
377
+ let val;
378
+ if (isNumber(value)) {
379
+ val = Number(value);
380
+ } else {
381
+ val = parseInt(value, 10);
378
382
  }
379
- const str = String(arg);
380
- const matches = str.match(regx2);
381
- if (!matches) {
383
+ if (!isFinite(val)) {
384
+ return defaults;
385
+ }
386
+ return maxValue ? Math.min(maxValue, val) : val;
387
+ }
388
+ var parseNumber = toInteger;
389
+ var toInt = toInteger;
390
+ function toFloat(value, defaults, maxValue) {
391
+ let val;
392
+ if (isNumber(value)) {
393
+ val = Number(value);
394
+ } else {
395
+ val = parseFloat(value);
396
+ }
397
+ if (!isFinite(val)) {
398
+ return defaults;
399
+ }
400
+ return maxValue ? Math.min(maxValue, val) : val;
401
+ }
402
+ function toFixed(value, precision = 2) {
403
+ return value.toFixed(precision).replace(/(\.\d*?)0+$/, "$1").replace(/\.$/, "");
404
+ }
405
+ function toJSON(str, defaults) {
406
+ let value;
407
+ if (isValid(str) && isString(str)) {
408
+ try {
409
+ value = JSON.parse(str);
410
+ } catch (e) {
411
+ }
412
+ }
413
+ if (!!defaults && !value) {
414
+ value = defaults;
415
+ }
416
+ return value;
417
+ }
418
+ var parseJson = toJSON;
419
+ var THOUSAND = 1e3;
420
+ var HUNDRED_THOUSAND = 1e5;
421
+ var MILLION = 1e6;
422
+ var HUNDRED_MILLION = 1e8;
423
+ var BILLION = 1e9;
424
+ var HUNDRED_BILLION = 1e11;
425
+ var TRILLION = 1e12;
426
+ function toIntlNumber(value) {
427
+ if (value >= THOUSAND && value < MILLION) {
428
+ const thousands = value / THOUSAND;
429
+ if (thousands === Math.floor(thousands) || value >= HUNDRED_THOUSAND) {
430
+ return Math.floor(thousands) + "K";
431
+ } else {
432
+ return Math.floor(thousands * 10) / 10 + "K";
433
+ }
434
+ } else if (value >= MILLION && value < BILLION) {
435
+ const millions = value / MILLION;
436
+ if (millions === Math.floor(millions) || value >= HUNDRED_MILLION) {
437
+ return Math.floor(millions) + "M";
438
+ } else {
439
+ return Math.floor(millions * 10) / 10 + "M";
440
+ }
441
+ } else if (value >= BILLION && value < TRILLION) {
442
+ const billions = value / BILLION;
443
+ if (billions === Math.floor(billions) || value >= HUNDRED_BILLION) {
444
+ return Math.floor(billions) + "B";
445
+ } else {
446
+ return Math.floor(billions * 10) / 10 + "B";
447
+ }
448
+ } else {
449
+ return `${value}`;
450
+ }
451
+ }
452
+ function durationPad(num, size) {
453
+ return ("000" + num).slice(size * -1);
454
+ }
455
+ function getDuration(num, unit, options) {
456
+ if (options?.hideOnZeroValue && num === 0) {
382
457
  return;
383
458
  }
384
- const num = parseFloat(matches[1]);
385
- const type2 = matches[2].toLowerCase();
386
- switch (type2) {
387
- case "y":
388
- return num * year;
389
- case "w":
390
- return num * week;
391
- case "d":
392
- return num * day;
393
- case "h":
394
- return num * hour;
395
- case "m":
396
- return num * minute;
397
- case "s":
398
- return num * second;
459
+ if (options?.padNumber) {
460
+ return durationPad(num, 2) + unit;
461
+ }
462
+ return num + unit;
463
+ }
464
+ function toDuration(value, options) {
465
+ const hours = Math.floor(value / 60 / 60);
466
+ const minutes = Math.floor(value / 60) % 60;
467
+ const seconds = Math.floor(value - minutes * 60 - hours * 60 * 60);
468
+ return [
469
+ hours > 0 ? { num: hours, unit: options?.hourUnit || "h" } : null,
470
+ minutes > 0 ? { num: minutes, unit: options?.minuteUnit || "m" } : null,
471
+ { num: seconds, unit: options?.secondUnit || "s" }
472
+ ].filter(Boolean).map(
473
+ (d, i) => getDuration(d.num, d.unit, {
474
+ ...options,
475
+ hideOnZeroValue: i === 0 ? false : options?.hideOnZeroValue
476
+ })
477
+ ).filter(Boolean).join(" ");
478
+ }
479
+ function toURLParams(value, options) {
480
+ return parse(value, options);
481
+ }
482
+ function toURLQuery(value, baseUri, options) {
483
+ const query = stringify(value, options);
484
+ if (baseUri) {
485
+ return baseUri + (baseUri.includes("?") ? "&" : "?") + query;
399
486
  }
487
+ return query;
400
488
  }
401
489
  function hs(arg) {
402
- const value = parse(arg);
490
+ const value = ms(arg);
403
491
  if (value) {
404
- return Math.round(value);
492
+ return Math.round(value / 1e3);
405
493
  }
406
494
  }
407
495
  function ms(arg) {
408
- const value = hs(arg);
409
- if (value) {
410
- return value * 1e3;
411
- }
496
+ return vms(arg);
412
497
  }
498
+ var toSecond = hs;
499
+ var toMillisecond = ms;
413
500
  function timestamp() {
414
501
  return Math.floor(Date.now() / 1e3);
415
502
  }
@@ -499,6 +586,9 @@ function pickObject(target, fields, excludes = []) {
499
586
  });
500
587
  return newObj;
501
588
  }
589
+ function excludeObject(target, excludes = []) {
590
+ return pickObject(target, [], excludes);
591
+ }
502
592
  function pickValidValues(target, fields) {
503
593
  const dist = {};
504
594
  fields.forEach((field) => {
@@ -560,42 +650,6 @@ function copyObjectValues(target, dist, keyMaps) {
560
650
  }
561
651
 
562
652
  // src/parse.ts
563
- function parseJson(str, defaultValue) {
564
- let value;
565
- try {
566
- value = JSON.parse(str);
567
- } catch (e) {
568
- }
569
- if (defaultValue && !value) {
570
- value = defaultValue;
571
- }
572
- return value;
573
- }
574
- function parseBool(arg, defaultValue) {
575
- if (isEmpty(arg)) {
576
- return defaultValue || false;
577
- }
578
- if (isBoolean(arg)) {
579
- return arg;
580
- }
581
- return isTrue(arg);
582
- }
583
- function parseNumber(arg, defaultValue, maxValue) {
584
- if (isNumber(arg)) {
585
- if (maxValue && maxValue < Number(arg)) {
586
- return maxValue;
587
- }
588
- return Number(arg);
589
- }
590
- const num = parseInt(arg, 10);
591
- if (isNaN(num)) {
592
- return defaultValue;
593
- }
594
- if (maxValue && maxValue < num) {
595
- return maxValue;
596
- }
597
- return num;
598
- }
599
653
  function htmlToText(html, limit = 100) {
600
654
  let result = html.replace(/<style[^<>]*>((?!<\/).)*<\/style>/gi, "").replace(/<script[^<>]*>((?!<\/).)*<\/script>/gi, "").replace(/<[^>]+>/g, "").replace(/\t|\r|\n|\r\n/g, "").replace(/\s+/g, "").replace(/&nbsp;/g, " ").replace(/&quot;/g, '"').replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">");
601
655
  if (limit > 0) {
@@ -604,48 +658,6 @@ function htmlToText(html, limit = 100) {
604
658
  return result;
605
659
  }
606
660
 
607
- // src/qs.ts
608
- function stringify(arg, options) {
609
- const arr = [];
610
- Object.keys(arg).forEach((key) => {
611
- let val = arg[key];
612
- if (isEmpty(val)) {
613
- val = "";
614
- } else {
615
- val = String(val);
616
- }
617
- if (options?.encode) {
618
- val = encodeURIComponent(val);
619
- }
620
- arr.push(`${key}=${val}`);
621
- });
622
- return arr.join("&");
623
- }
624
- function parse2(str, options) {
625
- const obj = {};
626
- if (!isString(str)) {
627
- return obj;
628
- }
629
- const arr = str.replace(/^([^?]+)?\?/, "").split("&");
630
- arr.forEach((param) => {
631
- const paramArr = param.split("=");
632
- const key = paramArr[0];
633
- if (!isEmpty(key)) {
634
- let val = paramArr[1];
635
- if (options?.decode) {
636
- val = decodeURIComponent(val);
637
- }
638
- val = options?.separator && val.includes(options?.separator) ? val.split(options?.separator) : val;
639
- obj[key] = val;
640
- }
641
- });
642
- return obj;
643
- }
644
- var qs_default = {
645
- stringify,
646
- parse: parse2
647
- };
648
-
649
661
  // src/random.ts
650
662
  var numeric = "0123456789";
651
663
  var hexic = "0123456789abcdef";
@@ -702,6 +714,6 @@ function slugify(text, options) {
702
714
  });
703
715
  }
704
716
 
705
- export { RandomType, alpha, alphaHexToRgb, bytes, clone, colorBrightness, commonFileMimeTypes, commonImageMimeTypes, copyObjectValues, darken, date, datePeriod, formatBytes, helper_default as helper, hexToRgb, hs, htmlToText, invert, isDarkColor, isDateExpired, isHexColor, isLightColor, isRgb, isRgba, lighten, mime, ms, nanoid, nanoidCustomAlphabet, parseBool, parseBytes, parseJson, parseNumber, pickObject, pickValidValues, qs_default as qs, random, removeObjectNil, rgbToHex, slugify, timestamp, toBool, type, unixDate, unixDiff };
717
+ export { RandomType, alpha, alphaHexToRgb, bytes, clone, colorBrightness, commonFileMimeTypes, commonImageMimeTypes, copyObjectValues, darken, date, datePeriod, excludeObject, formatBytes, helper_default as helper, hexToRgb, hs, htmlToText, invert, isDarkColor, isDateExpired, isHexColor, isLightColor, isRgb, isRgba, lighten, mime, ms, nanoid, nanoidCustomAlphabet, parseBool, parseBytes, parseJson, parseNumber, pickObject, pickValidValues, random, removeObjectNil, rgbToHex, slugify, timestamp, toBool, toDuration, toFixed, toFloat, toInt, toInteger, toIntlNumber, toJSON, toMillisecond, toSecond, toURLParams, toURLQuery, type, unixDate, unixDiff };
706
718
  //# sourceMappingURL=out.js.map
707
719
  //# sourceMappingURL=index.mjs.map