@heyform-inc/utils 1.0.6 → 1.0.7

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.d.mts CHANGED
@@ -6,7 +6,7 @@ import { IsEmailOptions } from 'validator/lib/isEmail';
6
6
  import { IsURLOptions } from 'validator/lib/isURL';
7
7
  import * as m from 'mime-types';
8
8
  export { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
9
- export * from 'fast-equals';
9
+ export { deepEqual } from 'fast-equals';
10
10
 
11
11
  declare function parseBytes(value: string | number): number | undefined;
12
12
  declare function bytes(size: string): number | undefined;
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { IsEmailOptions } from 'validator/lib/isEmail';
6
6
  import { IsURLOptions } from 'validator/lib/isURL';
7
7
  import * as m from 'mime-types';
8
8
  export { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
9
- export * from 'fast-equals';
9
+ export { deepEqual } from 'fast-equals';
10
10
 
11
11
  declare function parseBytes(value: string | number): number | undefined;
12
12
  declare function bytes(size: string): number | undefined;
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ var dayjs = require('dayjs');
10
10
  var m = require('mime-types');
11
11
  var nanoid$1 = require('nanoid');
12
12
  var objectPath = require('object-path');
13
- var fast_equals_star = require('fast-equals');
13
+ var fastEquals = require('fast-equals');
14
14
  var slug = require('slugify');
15
15
  var uuid = require('uuid');
16
16
 
@@ -42,78 +42,9 @@ var _clone__default = /*#__PURE__*/_interopDefault(_clone);
42
42
  var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
43
43
  var m__namespace = /*#__PURE__*/_interopNamespace(m);
44
44
  var objectPath__namespace = /*#__PURE__*/_interopNamespace(objectPath);
45
- var fast_equals_star__namespace = /*#__PURE__*/_interopNamespace(fast_equals_star);
46
45
  var slug__default = /*#__PURE__*/_interopDefault(slug);
47
46
 
48
- var __defProp = Object.defineProperty;
49
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
50
- var __getOwnPropNames = Object.getOwnPropertyNames;
51
- var __hasOwnProp = Object.prototype.hasOwnProperty;
52
- var __export = (target, all) => {
53
- for (var name in all)
54
- __defProp(target, name, { get: all[name], enumerable: true });
55
- };
56
- var __copyProps = (to, from, except, desc) => {
57
- if (from && typeof from === "object" || typeof from === "function") {
58
- for (let key of __getOwnPropNames(from))
59
- if (!__hasOwnProp.call(to, key) && key !== except)
60
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
61
- }
62
- return to;
63
- };
64
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget );
65
-
66
47
  // src/index.ts
67
- var src_exports = {};
68
- __export(src_exports, {
69
- RandomType: () => RandomType,
70
- alpha: () => alpha,
71
- alphaHexToRgb: () => alphaHexToRgb,
72
- bytes: () => bytes,
73
- clone: () => clone,
74
- colorBrightness: () => colorBrightness,
75
- commonFileMimeTypes: () => commonFileMimeTypes,
76
- commonImageMimeTypes: () => commonImageMimeTypes,
77
- copyObjectValues: () => copyObjectValues,
78
- darken: () => darken,
79
- date: () => date,
80
- datePeriod: () => datePeriod,
81
- formatBytes: () => formatBytes,
82
- helper: () => helper_default,
83
- hexToRgb: () => hexToRgb,
84
- hs: () => hs,
85
- htmlToText: () => htmlToText,
86
- invert: () => invert,
87
- isDarkColor: () => isDarkColor,
88
- isDateExpired: () => isDateExpired,
89
- isHexColor: () => isHexColor,
90
- isLightColor: () => isLightColor,
91
- isRgb: () => isRgb,
92
- isRgba: () => isRgba,
93
- lighten: () => lighten,
94
- mime: () => mime,
95
- ms: () => ms,
96
- nanoid: () => nanoid,
97
- nanoidCustomAlphabet: () => nanoidCustomAlphabet,
98
- parseBool: () => parseBool,
99
- parseBytes: () => parseBytes,
100
- parseJson: () => parseJson,
101
- parseNumber: () => parseNumber,
102
- pickObject: () => pickObject,
103
- pickValidValues: () => pickValidValues,
104
- qs: () => qs_default,
105
- random: () => random,
106
- removeObjectNil: () => removeObjectNil,
107
- rgbToHex: () => rgbToHex,
108
- slugify: () => slugify,
109
- timestamp: () => timestamp,
110
- toBool: () => toBool,
111
- type: () => type,
112
- unixDate: () => unixDate,
113
- unixDiff: () => unixDiff,
114
- uuidv4: () => uuid.v4,
115
- uuidv5: () => uuid.v5
116
- });
117
48
 
118
49
  // src/type.ts
119
50
  var toString = Object.prototype.toString;
@@ -189,23 +120,17 @@ function isNil(arg) {
189
120
  return isNull(arg) || isUndefined(arg);
190
121
  }
191
122
  function isPlainObject(arg) {
192
- if (!isObject(arg))
193
- return false;
123
+ if (!isObject(arg)) return false;
194
124
  const ctor = arg.constructor;
195
- if (typeof ctor !== "function")
196
- return false;
125
+ if (typeof ctor !== "function") return false;
197
126
  const proto = ctor.prototype;
198
- if (!isObject(proto))
199
- return false;
127
+ if (!isObject(proto)) return false;
200
128
  return proto.hasOwnProperty("isPrototypeOf");
201
129
  }
202
130
  function isEmpty(arg) {
203
- if (isNil(arg))
204
- return true;
205
- if (isBoolean(arg))
206
- return false;
207
- if (isNumber(arg))
208
- return false;
131
+ if (isNil(arg)) return true;
132
+ if (isBoolean(arg)) return false;
133
+ if (isNumber(arg)) return false;
209
134
  if (isString(arg)) {
210
135
  return arg.length === 0 || whiteSpaceRegx.test(arg);
211
136
  }
@@ -222,8 +147,7 @@ function isEmpty(arg) {
222
147
  }
223
148
  case "object": {
224
149
  for (const key in arg) {
225
- if (Object.hasOwnProperty.call(arg, key))
226
- return false;
150
+ if (Object.hasOwnProperty.call(arg, key)) return false;
227
151
  }
228
152
  return true;
229
153
  }
@@ -568,16 +492,6 @@ function nanoidCustomAlphabet(alphabet, len = 21) {
568
492
  const generate = nanoid$1.customAlphabet(alphabet, len);
569
493
  return generate();
570
494
  }
571
-
572
- // src/object.ts
573
- var object_exports = {};
574
- __export(object_exports, {
575
- copyObjectValues: () => copyObjectValues,
576
- pickObject: () => pickObject,
577
- pickValidValues: () => pickValidValues,
578
- removeObjectNil: () => removeObjectNil
579
- });
580
- __reExport(object_exports, fast_equals_star__namespace);
581
495
  function pickObject(target, fields, excludes = []) {
582
496
  if (!isObject(target)) {
583
497
  return {};
@@ -674,9 +588,6 @@ function copyObjectValues(target, dist, keyMaps) {
674
588
  }
675
589
  }
676
590
 
677
- // src/index.ts
678
- __reExport(src_exports, object_exports);
679
-
680
591
  // src/parse.ts
681
592
  function parseJson(str, defaultValue) {
682
593
  let value;
@@ -820,6 +731,10 @@ function slugify(text, options) {
820
731
  });
821
732
  }
822
733
 
734
+ Object.defineProperty(exports, "deepEqual", {
735
+ enumerable: true,
736
+ get: function () { return fastEquals.deepEqual; }
737
+ });
823
738
  Object.defineProperty(exports, "uuidv4", {
824
739
  enumerable: true,
825
740
  get: function () { return uuid.v4; }
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'\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\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 isBoolean,\n isString,\n isNumber,\n isNumeric,\n isArray,\n isValidArray,\n isNan,\n isSet,\n isMap,\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 { 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 * 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/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 { 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\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 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'\r\nimport {\r\n isArray,\r\n isNan,\r\n isNil,\r\n isObject,\r\n isPlainObject,\r\n isValid\r\n} from './helper'\r\nimport * as objectPath from 'object-path'\r\n\r\nexport { deepEqual } from 'fast-equals'\r\n\r\nexport function pickObject(\r\n target: Record<string, any>,\r\n fields: Array<string | string[]>,\r\n excludes: Array<string> = []\r\n): Record<string, any> {\r\n if (!isObject(target)) {\r\n return {}\r\n }\r\n\r\n const copied = clone<Record<string, any>>(target)\r\n const targetKeys = Object.keys(copied)\r\n\r\n const fieldAlias: Record<string, any> = {}\r\n let picked: string[] = []\r\n\r\n if (fields.length > 0) {\r\n fields.forEach(item => {\r\n if (isArray(item)) {\r\n if (item.length > 0) {\r\n const filed = item[0]\r\n picked.push(filed)\r\n\r\n if (item.length > 1) {\r\n fieldAlias[filed] = item[1]\r\n }\r\n }\r\n } else {\r\n picked.push(item)\r\n }\r\n })\r\n } else {\r\n picked = targetKeys\r\n }\r\n\r\n const newObj: Record<string, any> = {}\r\n\r\n targetKeys\r\n .filter(key => !excludes.includes(key) && picked.includes(key))\r\n .forEach(key => {\r\n const alias = fieldAlias[key]\r\n\r\n if (alias) {\r\n newObj[alias] = copied[key]\r\n } else {\r\n newObj[key] = copied[key]\r\n }\r\n })\r\n\r\n return newObj\r\n}\r\n\r\nexport function pickValidValues<T = string | number | boolean>(\r\n target: Record<string, T>,\r\n fields: Array<string | string[]>\r\n): Record<string, T> {\r\n const dist: Record<string, T> = {}\r\n\r\n fields.forEach(field => {\r\n let key = String(field)\r\n let alias: string | undefined\r\n\r\n if (isArray(field)) {\r\n key = field[0]\r\n\r\n if (field.length > 1) {\r\n alias = field[1]\r\n }\r\n }\r\n\r\n let value = target[key]\r\n\r\n if (isValid(value)) {\r\n if (isPlainObject(value) || isArray(value)) {\r\n value = clone(value)\r\n }\r\n\r\n dist[alias || key] = value\r\n }\r\n })\r\n\r\n return dist\r\n}\r\n\r\nexport function removeObjectNil(\r\n target: Record<string, any>\r\n): Record<string, any> {\r\n if (!isObject(target)) {\r\n return {}\r\n }\r\n\r\n const copied = clone<Record<string, any>>(target)\r\n const newObj: Record<string, any> = {}\r\n\r\n for (const field of Object.keys(copied)) {\r\n const value = copied[field]\r\n\r\n if (isNil(value) || isNan(value)) {\r\n continue\r\n }\r\n\r\n newObj[field] = value\r\n }\r\n\r\n return newObj\r\n}\r\n\r\nexport function copyObjectValues(\r\n target: Record<string, any>,\r\n dist: Record<string, any>,\r\n keyMaps: Array<string | string[]>\r\n): void {\r\n if (!isObject(target) || !isObject(dist)) {\r\n return\r\n }\r\n\r\n for (const keys of keyMaps) {\r\n let targetKey: string\r\n let distKey: string\r\n\r\n if (isArray(keys)) {\r\n targetKey = keys[0]\r\n distKey = keys[1]\r\n } else {\r\n targetKey = String(keys)\r\n distKey = targetKey\r\n }\r\n\r\n let value = objectPath.get(target, targetKey)\r\n\r\n if (!isNil(value) && !isNan(value)) {\r\n if (isPlainObject(value) || isArray(value)) {\r\n value = clone(value)\r\n }\r\n objectPath.set(dist, distKey, value)\r\n }\r\n }\r\n}\r\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"]}
package/dist/index.mjs CHANGED
@@ -8,80 +8,11 @@ import dayjs from 'dayjs';
8
8
  import * as m from 'mime-types';
9
9
  import { customAlphabet } from 'nanoid';
10
10
  import * as objectPath from 'object-path';
11
- import * as fast_equals_star from 'fast-equals';
11
+ export { deepEqual } from 'fast-equals';
12
12
  import slug from 'slugify';
13
- import { v4, v5 } from 'uuid';
14
13
  export { v4 as uuidv4, v5 as uuidv5 } from 'uuid';
15
14
 
16
- var __defProp = Object.defineProperty;
17
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
18
- var __getOwnPropNames = Object.getOwnPropertyNames;
19
- var __hasOwnProp = Object.prototype.hasOwnProperty;
20
- var __export = (target, all) => {
21
- for (var name in all)
22
- __defProp(target, name, { get: all[name], enumerable: true });
23
- };
24
- var __copyProps = (to, from, except, desc) => {
25
- if (from && typeof from === "object" || typeof from === "function") {
26
- for (let key of __getOwnPropNames(from))
27
- if (!__hasOwnProp.call(to, key) && key !== except)
28
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
29
- }
30
- return to;
31
- };
32
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget );
33
-
34
15
  // src/index.ts
35
- var src_exports = {};
36
- __export(src_exports, {
37
- RandomType: () => RandomType,
38
- alpha: () => alpha,
39
- alphaHexToRgb: () => alphaHexToRgb,
40
- bytes: () => bytes,
41
- clone: () => clone,
42
- colorBrightness: () => colorBrightness,
43
- commonFileMimeTypes: () => commonFileMimeTypes,
44
- commonImageMimeTypes: () => commonImageMimeTypes,
45
- copyObjectValues: () => copyObjectValues,
46
- darken: () => darken,
47
- date: () => date,
48
- datePeriod: () => datePeriod,
49
- formatBytes: () => formatBytes,
50
- helper: () => helper_default,
51
- hexToRgb: () => hexToRgb,
52
- hs: () => hs,
53
- htmlToText: () => htmlToText,
54
- invert: () => invert,
55
- isDarkColor: () => isDarkColor,
56
- isDateExpired: () => isDateExpired,
57
- isHexColor: () => isHexColor,
58
- isLightColor: () => isLightColor,
59
- isRgb: () => isRgb,
60
- isRgba: () => isRgba,
61
- lighten: () => lighten,
62
- mime: () => mime,
63
- ms: () => ms,
64
- nanoid: () => nanoid,
65
- nanoidCustomAlphabet: () => nanoidCustomAlphabet,
66
- parseBool: () => parseBool,
67
- parseBytes: () => parseBytes,
68
- parseJson: () => parseJson,
69
- parseNumber: () => parseNumber,
70
- pickObject: () => pickObject,
71
- pickValidValues: () => pickValidValues,
72
- qs: () => qs_default,
73
- random: () => random,
74
- removeObjectNil: () => removeObjectNil,
75
- rgbToHex: () => rgbToHex,
76
- slugify: () => slugify,
77
- timestamp: () => timestamp,
78
- toBool: () => toBool,
79
- type: () => type,
80
- unixDate: () => unixDate,
81
- unixDiff: () => unixDiff,
82
- uuidv4: () => v4,
83
- uuidv5: () => v5
84
- });
85
16
 
86
17
  // src/type.ts
87
18
  var toString = Object.prototype.toString;
@@ -157,23 +88,17 @@ function isNil(arg) {
157
88
  return isNull(arg) || isUndefined(arg);
158
89
  }
159
90
  function isPlainObject(arg) {
160
- if (!isObject(arg))
161
- return false;
91
+ if (!isObject(arg)) return false;
162
92
  const ctor = arg.constructor;
163
- if (typeof ctor !== "function")
164
- return false;
93
+ if (typeof ctor !== "function") return false;
165
94
  const proto = ctor.prototype;
166
- if (!isObject(proto))
167
- return false;
95
+ if (!isObject(proto)) return false;
168
96
  return proto.hasOwnProperty("isPrototypeOf");
169
97
  }
170
98
  function isEmpty(arg) {
171
- if (isNil(arg))
172
- return true;
173
- if (isBoolean(arg))
174
- return false;
175
- if (isNumber(arg))
176
- return false;
99
+ if (isNil(arg)) return true;
100
+ if (isBoolean(arg)) return false;
101
+ if (isNumber(arg)) return false;
177
102
  if (isString(arg)) {
178
103
  return arg.length === 0 || whiteSpaceRegx.test(arg);
179
104
  }
@@ -190,8 +115,7 @@ function isEmpty(arg) {
190
115
  }
191
116
  case "object": {
192
117
  for (const key in arg) {
193
- if (Object.hasOwnProperty.call(arg, key))
194
- return false;
118
+ if (Object.hasOwnProperty.call(arg, key)) return false;
195
119
  }
196
120
  return true;
197
121
  }
@@ -536,16 +460,6 @@ function nanoidCustomAlphabet(alphabet, len = 21) {
536
460
  const generate = customAlphabet(alphabet, len);
537
461
  return generate();
538
462
  }
539
-
540
- // src/object.ts
541
- var object_exports = {};
542
- __export(object_exports, {
543
- copyObjectValues: () => copyObjectValues,
544
- pickObject: () => pickObject,
545
- pickValidValues: () => pickValidValues,
546
- removeObjectNil: () => removeObjectNil
547
- });
548
- __reExport(object_exports, fast_equals_star);
549
463
  function pickObject(target, fields, excludes = []) {
550
464
  if (!isObject(target)) {
551
465
  return {};
@@ -642,9 +556,6 @@ function copyObjectValues(target, dist, keyMaps) {
642
556
  }
643
557
  }
644
558
 
645
- // src/index.ts
646
- __reExport(src_exports, object_exports);
647
-
648
559
  // src/parse.ts
649
560
  function parseJson(str, defaultValue) {
650
561
  let value;
@@ -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'\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\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 isBoolean,\n isString,\n isNumber,\n isNumeric,\n isArray,\n isValidArray,\n isNan,\n isSet,\n isMap,\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 { 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 * 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/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 { 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\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 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'\r\nimport {\r\n isArray,\r\n isNan,\r\n isNil,\r\n isObject,\r\n isPlainObject,\r\n isValid\r\n} from './helper'\r\nimport * as objectPath from 'object-path'\r\n\r\nexport { deepEqual } from 'fast-equals'\r\n\r\nexport function pickObject(\r\n target: Record<string, any>,\r\n fields: Array<string | string[]>,\r\n excludes: Array<string> = []\r\n): Record<string, any> {\r\n if (!isObject(target)) {\r\n return {}\r\n }\r\n\r\n const copied = clone<Record<string, any>>(target)\r\n const targetKeys = Object.keys(copied)\r\n\r\n const fieldAlias: Record<string, any> = {}\r\n let picked: string[] = []\r\n\r\n if (fields.length > 0) {\r\n fields.forEach(item => {\r\n if (isArray(item)) {\r\n if (item.length > 0) {\r\n const filed = item[0]\r\n picked.push(filed)\r\n\r\n if (item.length > 1) {\r\n fieldAlias[filed] = item[1]\r\n }\r\n }\r\n } else {\r\n picked.push(item)\r\n }\r\n })\r\n } else {\r\n picked = targetKeys\r\n }\r\n\r\n const newObj: Record<string, any> = {}\r\n\r\n targetKeys\r\n .filter(key => !excludes.includes(key) && picked.includes(key))\r\n .forEach(key => {\r\n const alias = fieldAlias[key]\r\n\r\n if (alias) {\r\n newObj[alias] = copied[key]\r\n } else {\r\n newObj[key] = copied[key]\r\n }\r\n })\r\n\r\n return newObj\r\n}\r\n\r\nexport function pickValidValues<T = string | number | boolean>(\r\n target: Record<string, T>,\r\n fields: Array<string | string[]>\r\n): Record<string, T> {\r\n const dist: Record<string, T> = {}\r\n\r\n fields.forEach(field => {\r\n let key = String(field)\r\n let alias: string | undefined\r\n\r\n if (isArray(field)) {\r\n key = field[0]\r\n\r\n if (field.length > 1) {\r\n alias = field[1]\r\n }\r\n }\r\n\r\n let value = target[key]\r\n\r\n if (isValid(value)) {\r\n if (isPlainObject(value) || isArray(value)) {\r\n value = clone(value)\r\n }\r\n\r\n dist[alias || key] = value\r\n }\r\n })\r\n\r\n return dist\r\n}\r\n\r\nexport function removeObjectNil(\r\n target: Record<string, any>\r\n): Record<string, any> {\r\n if (!isObject(target)) {\r\n return {}\r\n }\r\n\r\n const copied = clone<Record<string, any>>(target)\r\n const newObj: Record<string, any> = {}\r\n\r\n for (const field of Object.keys(copied)) {\r\n const value = copied[field]\r\n\r\n if (isNil(value) || isNan(value)) {\r\n continue\r\n }\r\n\r\n newObj[field] = value\r\n }\r\n\r\n return newObj\r\n}\r\n\r\nexport function copyObjectValues(\r\n target: Record<string, any>,\r\n dist: Record<string, any>,\r\n keyMaps: Array<string | string[]>\r\n): void {\r\n if (!isObject(target) || !isObject(dist)) {\r\n return\r\n }\r\n\r\n for (const keys of keyMaps) {\r\n let targetKey: string\r\n let distKey: string\r\n\r\n if (isArray(keys)) {\r\n targetKey = keys[0]\r\n distKey = keys[1]\r\n } else {\r\n targetKey = String(keys)\r\n distKey = targetKey\r\n }\r\n\r\n let value = objectPath.get(target, targetKey)\r\n\r\n if (!isNil(value) && !isNan(value)) {\r\n if (isPlainObject(value) || isArray(value)) {\r\n value = clone(value)\r\n }\r\n objectPath.set(dist, distKey, value)\r\n }\r\n }\r\n}\r\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"]}
package/package.json CHANGED
@@ -1,71 +1,71 @@
1
- {
2
- "name": "@heyform-inc/utils",
3
- "description": "HeyForm utils",
4
- "version": "1.0.6",
5
- "homepage": "https://heyform.net",
6
- "author": "Heyooo, Inc.",
7
- "license": "AGPL-3.0",
8
- "main": "./dist/index.js",
9
- "module": "./dist/index.mjs",
10
- "types": "./dist/index.d.ts",
11
- "files": [
12
- "./dist"
13
- ],
14
- "scripts": {
15
- "build": "tsup",
16
- "test": "jest",
17
- "cov": "jest --coverage",
18
- "lint": "eslint . --ext .ts --quiet --fix",
19
- "clean": "rimraf dist",
20
- "prebuild": "npm run clean"
21
- },
22
- "dependencies": {
23
- "@types/clone": "^0.1.30",
24
- "@types/mime-types": "^2.1.0",
25
- "@types/object-path": "^0.11.0",
26
- "@types/uuid": "^8.3.0",
27
- "@types/validator": "^13.1.0",
28
- "clone": "^2.1.2",
29
- "dayjs": "^1.8.35",
30
- "deep-object-diff": "^1.1.0",
31
- "fast-equals": "^5.0.1",
32
- "humanize-bytes": "^1.0.1",
33
- "mime-types": "1.0.2",
34
- "nanoid": "^3.1.12",
35
- "object-path": "^0.11.5",
36
- "slugify": "^1.4.5",
37
- "uuid": "^8.3.0",
38
- "validator": "^13.1.1"
39
- },
40
- "devDependencies": {
41
- "@types/jest": "^26.0.3",
42
- "@types/node": "^13.7.1",
43
- "@typescript-eslint/eslint-plugin": "3.10.0",
44
- "@typescript-eslint/parser": "3.10.0",
45
- "coveralls": "^3.0.9",
46
- "eslint": "^7.4.0",
47
- "eslint-config-prettier": "^6.11.0",
48
- "eslint-import-resolver-typescript": "^2.2.1",
49
- "eslint-plugin-import": "^2.20.2",
50
- "eslint-plugin-prettier": "^3.1.3",
51
- "jest": "^26.1.0",
52
- "prettier": "^2.0.4",
53
- "rimraf": "^3.0.2",
54
- "ts-jest": "^26.1.0",
55
- "tslib": "^2.0.0",
56
- "tsup": "^8.0.2",
57
- "typescript": "4.9.5"
58
- },
59
- "jest": {
60
- "transform": {
61
- "^.+\\.ts$": "ts-jest"
62
- },
63
- "testRegex": "(/tests/.*|(\\.|/)test)\\.ts$",
64
- "moduleFileExtensions": [
65
- "ts",
66
- "js",
67
- "json",
68
- "node"
69
- ]
70
- }
71
- }
1
+ {
2
+ "name": "@heyform-inc/utils",
3
+ "description": "HeyForm utils",
4
+ "version": "1.0.7",
5
+ "homepage": "https://heyform.net",
6
+ "author": "Heyooo, Inc.",
7
+ "license": "AGPL-3.0",
8
+ "main": "./dist/index.js",
9
+ "module": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts",
11
+ "files": [
12
+ "./dist"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsup",
16
+ "test": "jest",
17
+ "cov": "jest --coverage",
18
+ "lint": "eslint . --ext .ts --quiet --fix",
19
+ "clean": "rimraf dist",
20
+ "prebuild": "npm run clean"
21
+ },
22
+ "dependencies": {
23
+ "@types/clone": "^0.1.30",
24
+ "@types/mime-types": "^2.1.0",
25
+ "@types/object-path": "^0.11.0",
26
+ "@types/uuid": "^8.3.0",
27
+ "@types/validator": "^13.1.0",
28
+ "clone": "^2.1.2",
29
+ "dayjs": "^1.8.35",
30
+ "deep-object-diff": "^1.1.0",
31
+ "fast-equals": "^5.0.1",
32
+ "humanize-bytes": "^1.0.1",
33
+ "mime-types": "1.0.2",
34
+ "nanoid": "^3.1.12",
35
+ "object-path": "^0.11.5",
36
+ "slugify": "^1.4.5",
37
+ "uuid": "^8.3.0",
38
+ "validator": "^13.1.1"
39
+ },
40
+ "devDependencies": {
41
+ "@types/jest": "^26.0.3",
42
+ "@types/node": "^13.7.1",
43
+ "@typescript-eslint/eslint-plugin": "3.10.0",
44
+ "@typescript-eslint/parser": "3.10.0",
45
+ "coveralls": "^3.0.9",
46
+ "eslint": "^7.4.0",
47
+ "eslint-config-prettier": "^6.11.0",
48
+ "eslint-import-resolver-typescript": "^2.2.1",
49
+ "eslint-plugin-import": "^2.20.2",
50
+ "eslint-plugin-prettier": "^3.1.3",
51
+ "jest": "^26.1.0",
52
+ "prettier": "^2.0.4",
53
+ "rimraf": "^3.0.2",
54
+ "ts-jest": "^26.1.0",
55
+ "tslib": "^2.0.0",
56
+ "tsup": "^8.0.2",
57
+ "typescript": "4.9.5"
58
+ },
59
+ "jest": {
60
+ "transform": {
61
+ "^.+\\.ts$": "ts-jest"
62
+ },
63
+ "testRegex": "(/tests/.*|(\\.|/)test)\\.ts$",
64
+ "moduleFileExtensions": [
65
+ "ts",
66
+ "js",
67
+ "json",
68
+ "node"
69
+ ]
70
+ }
71
+ }