{"version":3,"sources":["../src/helpers.ts","../src/standalone.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-function-type */\nimport type { ObjectTypes, Primitive, PrimitiveTypes } from './types';\n\nexport const objectTypes = [\n  'Array',\n  'ArrayBuffer',\n  'AsyncFunction',\n  'AsyncGenerator',\n  'AsyncGeneratorFunction',\n  'Date',\n  'Error',\n  'Function',\n  'Generator',\n  'GeneratorFunction',\n  'HTMLElement',\n  'Map',\n  'Object',\n  'Promise',\n  'RegExp',\n  'Set',\n  'URL',\n  'WeakMap',\n  'WeakSet',\n] as const;\n\nexport const primitiveTypes = [\n  'bigint',\n  'boolean',\n  'null',\n  'number',\n  'string',\n  'symbol',\n  'undefined',\n] as const;\n\nexport function getObjectType(value: unknown): ObjectTypes | undefined {\n  const objectTypeName = Object.prototype.toString.call(value).slice(8, -1);\n\n  if (/HTML\\w+Element/.test(objectTypeName)) {\n    return 'HTMLElement';\n  }\n\n  if (isObjectType(objectTypeName)) {\n    return objectTypeName;\n  }\n\n  return undefined;\n}\n\nexport function isObjectOfType<T>(type: string) {\n  return (value: unknown): value is T => getObjectType(value) === type;\n}\n\nexport function isObjectType(name: unknown): name is ObjectTypes {\n  return objectTypes.includes(name as ObjectTypes);\n}\n\nexport function isOfType<T extends Primitive | Function>(type: string) {\n  // eslint-disable-next-line valid-typeof\n  return (value: unknown): value is T => typeof value === type;\n}\n\nexport function isPrimitiveType(name: unknown): name is PrimitiveTypes {\n  return primitiveTypes.includes(name as PrimitiveTypes);\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\nimport { getObjectType, isObjectOfType, isOfType, isPrimitiveType } from './helpers';\nimport type { Class, PlainObject, Primitive } from './types';\n\nconst DOM_PROPERTIES_TO_CHECK = [\n  'innerHTML',\n  'ownerDocument',\n  'style',\n  'attributes',\n  'nodeValue',\n] as const;\n\nexport const isArray = <T = unknown>(value: unknown): value is T[] => Array.isArray(value);\n\nexport const isAsyncGeneratorFunction = (value: unknown): value is AsyncGeneratorFunction =>\n  getObjectType(value) === 'AsyncGeneratorFunction';\n\nexport const isAsyncFunction = /*#__PURE__*/ isObjectOfType<Function>('AsyncFunction');\n\nexport const isBigInt = /*#__PURE__*/ isOfType<bigint>('bigint');\n\nexport const isBoolean = (value: unknown): value is boolean => {\n  return value === true || value === false;\n};\n\nexport const isDate = /*#__PURE__*/ isObjectOfType<Date>('Date');\n\nexport const isError = /*#__PURE__*/ isObjectOfType<Error>('Error');\n\nexport const isFunction = /*#__PURE__*/ isOfType<Function>('function');\n\nexport const isGeneratorFunction =\n  /*#__PURE__*/ isObjectOfType<GeneratorFunction>('GeneratorFunction');\n\nexport const isInteger = (value: unknown): value is number => {\n  return typeof value === 'number' && Number.isInteger(value);\n};\n\nexport const isMap = /*#__PURE__*/ isObjectOfType<Map<unknown, unknown>>('Map');\n\nexport const isNan = (value: unknown): value is number => {\n  return Number.isNaN(value as number);\n};\n\nexport const isNull = (value: unknown): value is null => {\n  return value === null;\n};\n\nexport const isPlainFunction = /*#__PURE__*/ isObjectOfType<Function>('Function');\n\nexport const isPromise = /*#__PURE__*/ isObjectOfType<Promise<unknown>>('Promise');\n\nexport const isRegexp = /*#__PURE__*/ isObjectOfType<RegExp>('RegExp');\n\nexport const isSet = /*#__PURE__*/ isObjectOfType<Set<unknown>>('Set');\n\nexport const isString = /*#__PURE__*/ isOfType<string>('string');\n\nexport const isSymbol = /*#__PURE__*/ isOfType<symbol>('symbol');\n\nexport const isUndefined = /*#__PURE__*/ isOfType<undefined>('undefined');\n\nexport const isWeakMap = /*#__PURE__*/ isObjectOfType<WeakMap<PlainObject, unknown>>('WeakMap');\n\nexport const isWeakSet = /*#__PURE__*/ isObjectOfType<WeakSet<PlainObject>>('WeakSet');\n\n// Functions with internal dependencies\n\nexport const isNullOrUndefined = (value: unknown): value is null | undefined => {\n  return isNull(value) || isUndefined(value);\n};\n\nexport const isDefined = <T>(value: T): value is Exclude<T, undefined> => !isUndefined(value);\n\nexport const isNumber = (value: unknown): value is number => {\n  return isOfType<number>('number')(value) && !isNan(value);\n};\n\nexport const isNonEmptyString = (value: unknown): value is string => {\n  return isString(value) && value.trim().length > 0;\n};\n\nexport const isNumericString = (value: unknown): value is string => {\n  if (!isString(value) || value.length === 0) {\n    return false;\n  }\n\n  const trimmed = value.trim();\n\n  return trimmed.length > 0 && Number.isFinite(Number(trimmed));\n};\n\nexport const isObject = (value: unknown): value is object => {\n  return !isNullOrUndefined(value) && (isFunction(value) || typeof value === 'object');\n};\n\nexport const isPlainObject = (value: unknown): value is PlainObject => {\n  if (getObjectType(value) !== 'Object') {\n    return false;\n  }\n\n  const prototype = Object.getPrototypeOf(value);\n\n  return prototype === null || prototype === Object.getPrototypeOf({});\n};\n\nexport const isPrimitive = (value: unknown): value is Primitive =>\n  isNull(value) || isPrimitiveType(typeof value);\n\nexport const isUrl = (value: unknown): value is URL => {\n  return getObjectType(value) === 'URL';\n};\n\nexport const isIterable = (value: unknown): value is IterableIterator<unknown> => {\n  return (\n    !isNullOrUndefined(value) && isFunction((value as IterableIterator<unknown>)[Symbol.iterator])\n  );\n};\n\nexport const isGenerator = (value: unknown): value is Generator => {\n  return (\n    isIterable(value) &&\n    isFunction((value as IterableIterator<unknown>).next) &&\n    isFunction((value as IterableIterator<unknown>).throw)\n  );\n};\n\nexport const isClass = (value: unknown): value is Class => {\n  return isFunction(value) && /^class\\s/.test(value.toString());\n};\n\nexport const isArrayOf = (target: unknown[], predicate: (v: unknown) => boolean): boolean => {\n  if (!isArray(target) || !isFunction(predicate)) {\n    return false;\n  }\n\n  return target.every(d => predicate(d));\n};\n\nexport const isDomElement = (value: unknown): value is HTMLElement => {\n  return (\n    isObject(value) &&\n    !isPlainObject(value) &&\n    (value as HTMLElement).nodeType === 1 &&\n    isString((value as HTMLElement).nodeName) &&\n    DOM_PROPERTIES_TO_CHECK.every(property => property in (value as HTMLElement))\n  );\n};\n\nexport const isEmpty = (value: unknown): boolean => {\n  return (\n    (isString(value) && value.length === 0) ||\n    (isArray(value) && value.length === 0) ||\n    (isObject(value) && !isMap(value) && !isSet(value) && Object.keys(value).length === 0) ||\n    (isSet(value) && value.size === 0) ||\n    (isMap(value) && value.size === 0)\n  );\n};\n\nexport const isInstanceOf = <T>(instance: unknown, class_: Class<T>): instance is T => {\n  if (!instance || !(class_ as Class<T>)) {\n    return false;\n  }\n\n  return Object.getPrototypeOf(instance) === class_.prototype;\n};\n\nexport const isOneOf = (target: unknown[], value: any): boolean => {\n  if (!isArray(target)) {\n    return false;\n  }\n\n  // eslint-disable-next-line unicorn/prefer-includes\n  return target.indexOf(value) > -1;\n};\n\nexport const isPropertyOf = (\n  target: PlainObject,\n  key: string,\n  predicate?: (v: unknown) => boolean,\n): boolean => {\n  if (!isObject(target) || !key) {\n    return false;\n  }\n\n  const value = target[key];\n\n  if (isFunction(predicate)) {\n    return predicate(value);\n  }\n\n  return isDefined(value);\n};\n","import { getObjectType } from './helpers';\nimport {\n  isArray,\n  isArrayOf,\n  isAsyncFunction,\n  isAsyncGeneratorFunction,\n  isBigInt,\n  isBoolean,\n  isClass,\n  isDate,\n  isDefined,\n  isDomElement,\n  isEmpty,\n  isError,\n  isFunction,\n  isGenerator,\n  isGeneratorFunction,\n  isInstanceOf,\n  isInteger,\n  isIterable,\n  isMap,\n  isNan,\n  isNonEmptyString,\n  isNull,\n  isNullOrUndefined,\n  isNumber,\n  isNumericString,\n  isObject,\n  isOneOf,\n  isPlainFunction,\n  isPlainObject,\n  isPrimitive,\n  isPromise,\n  isPropertyOf,\n  isRegexp,\n  isSet,\n  isString,\n  isSymbol,\n  isUndefined,\n  isUrl,\n  isWeakMap,\n  isWeakSet,\n} from './standalone';\nimport type { TypeName } from './types';\n\nfunction is(value: unknown): TypeName {\n  if (value === null) {\n    return 'null';\n  }\n\n  switch (typeof value) {\n    case 'bigint':\n      return 'bigint';\n    case 'boolean':\n      return 'boolean';\n    case 'number':\n      return 'number';\n    case 'string':\n      return 'string';\n    case 'symbol':\n      return 'symbol';\n    case 'undefined':\n      return 'undefined';\n    default:\n  }\n\n  if (isArray(value)) {\n    return 'Array';\n  }\n\n  if (isPlainFunction(value)) {\n    return 'Function';\n  }\n\n  const tagType = getObjectType(value);\n\n  /* v8 ignore next -- @preserve */\n  if (tagType) {\n    return tagType;\n  }\n\n  /* v8 ignore next -- @preserve */\n  return 'Object';\n}\n\nis.array = isArray;\nis.arrayOf = isArrayOf;\nis.asyncGeneratorFunction = isAsyncGeneratorFunction;\nis.asyncFunction = isAsyncFunction;\nis.bigint = isBigInt;\nis.boolean = isBoolean;\nis.class = isClass;\nis.date = isDate;\nis.defined = isDefined;\nis.domElement = isDomElement;\nis.empty = isEmpty;\nis.error = isError;\nis.function = isFunction;\nis.generator = isGenerator;\nis.generatorFunction = isGeneratorFunction;\nis.instanceOf = isInstanceOf;\nis.integer = isInteger;\nis.iterable = isIterable;\nis.map = isMap;\nis.nan = isNan;\nis.null = isNull;\nis.nullOrUndefined = isNullOrUndefined;\nis.nonEmptyString = isNonEmptyString;\nis.number = isNumber;\nis.numericString = isNumericString;\nis.object = isObject;\nis.oneOf = isOneOf;\nis.plainFunction = isPlainFunction;\nis.plainObject = isPlainObject;\nis.primitive = isPrimitive;\nis.promise = isPromise;\nis.propertyOf = isPropertyOf;\nis.regexp = isRegexp;\nis.set = isSet;\nis.string = isString;\nis.symbol = isSymbol;\nis.undefined = isUndefined;\nis.url = isUrl;\nis.weakMap = isWeakMap;\nis.weakSet = isWeakSet;\n\nexport default is;\n"],"mappings":";AAGO,IAAM,cAAc;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,cAAc,OAAyC;AACrE,QAAM,iBAAiB,OAAO,UAAU,SAAS,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE;AAExE,MAAI,iBAAiB,KAAK,cAAc,GAAG;AACzC,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,cAAc,GAAG;AAChC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEO,SAAS,eAAkB,MAAc;AAC9C,SAAO,CAAC,UAA+B,cAAc,KAAK,MAAM;AAClE;AAEO,SAAS,aAAa,MAAoC;AAC/D,SAAO,YAAY,SAAS,IAAmB;AACjD;AAEO,SAAS,SAAyC,MAAc;AAErE,SAAO,CAAC,UAA+B,OAAO,UAAU;AAC1D;AAEO,SAAS,gBAAgB,MAAuC;AACrE,SAAO,eAAe,SAAS,IAAsB;AACvD;;;AC3DA,IAAM,0BAA0B;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,UAAU,CAAc,UAAiC,MAAM,QAAQ,KAAK;AAElF,IAAM,2BAA2B,CAAC,UACvC,cAAc,KAAK,MAAM;AAEpB,IAAM,kBAAgC,+BAAyB,eAAe;AAE9E,IAAM,WAAyB,yBAAiB,QAAQ;AAExD,IAAM,YAAY,CAAC,UAAqC;AAC7D,SAAO,UAAU,QAAQ,UAAU;AACrC;AAEO,IAAM,SAAuB,+BAAqB,MAAM;AAExD,IAAM,UAAwB,+BAAsB,OAAO;AAE3D,IAAM,aAA2B,yBAAmB,UAAU;AAE9D,IAAM,sBACG,+BAAkC,mBAAmB;AAE9D,IAAM,YAAY,CAAC,UAAoC;AAC5D,SAAO,OAAO,UAAU,YAAY,OAAO,UAAU,KAAK;AAC5D;AAEO,IAAM,QAAsB,+BAAsC,KAAK;AAEvE,IAAM,QAAQ,CAAC,UAAoC;AACxD,SAAO,OAAO,MAAM,KAAe;AACrC;AAEO,IAAM,SAAS,CAAC,UAAkC;AACvD,SAAO,UAAU;AACnB;AAEO,IAAM,kBAAgC,+BAAyB,UAAU;AAEzE,IAAM,YAA0B,+BAAiC,SAAS;AAE1E,IAAM,WAAyB,+BAAuB,QAAQ;AAE9D,IAAM,QAAsB,+BAA6B,KAAK;AAE9D,IAAM,WAAyB,yBAAiB,QAAQ;AAExD,IAAM,WAAyB,yBAAiB,QAAQ;AAExD,IAAM,cAA4B,yBAAoB,WAAW;AAEjE,IAAM,YAA0B,+BAA8C,SAAS;AAEvF,IAAM,YAA0B,+BAAqC,SAAS;AAI9E,IAAM,oBAAoB,CAAC,UAA8C;AAC9E,SAAO,OAAO,KAAK,KAAK,YAAY,KAAK;AAC3C;AAEO,IAAM,YAAY,CAAI,UAA6C,CAAC,YAAY,KAAK;AAErF,IAAM,WAAW,CAAC,UAAoC;AAC3D,SAAO,SAAiB,QAAQ,EAAE,KAAK,KAAK,CAAC,MAAM,KAAK;AAC1D;AAEO,IAAM,mBAAmB,CAAC,UAAoC;AACnE,SAAO,SAAS,KAAK,KAAK,MAAM,KAAK,EAAE,SAAS;AAClD;AAEO,IAAM,kBAAkB,CAAC,UAAoC;AAClE,MAAI,CAAC,SAAS,KAAK,KAAK,MAAM,WAAW,GAAG;AAC1C,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,MAAM,KAAK;AAE3B,SAAO,QAAQ,SAAS,KAAK,OAAO,SAAS,OAAO,OAAO,CAAC;AAC9D;AAEO,IAAM,WAAW,CAAC,UAAoC;AAC3D,SAAO,CAAC,kBAAkB,KAAK,MAAM,WAAW,KAAK,KAAK,OAAO,UAAU;AAC7E;AAEO,IAAM,gBAAgB,CAAC,UAAyC;AACrE,MAAI,cAAc,KAAK,MAAM,UAAU;AACrC,WAAO;AAAA,EACT;AAEA,QAAM,YAAY,OAAO,eAAe,KAAK;AAE7C,SAAO,cAAc,QAAQ,cAAc,OAAO,eAAe,CAAC,CAAC;AACrE;AAEO,IAAM,cAAc,CAAC,UAC1B,OAAO,KAAK,KAAK,gBAAgB,OAAO,KAAK;AAExC,IAAM,QAAQ,CAAC,UAAiC;AACrD,SAAO,cAAc,KAAK,MAAM;AAClC;AAEO,IAAM,aAAa,CAAC,UAAuD;AAChF,SACE,CAAC,kBAAkB,KAAK,KAAK,WAAY,MAAoC,OAAO,QAAQ,CAAC;AAEjG;AAEO,IAAM,cAAc,CAAC,UAAuC;AACjE,SACE,WAAW,KAAK,KAChB,WAAY,MAAoC,IAAI,KACpD,WAAY,MAAoC,KAAK;AAEzD;AAEO,IAAM,UAAU,CAAC,UAAmC;AACzD,SAAO,WAAW,KAAK,KAAK,WAAW,KAAK,MAAM,SAAS,CAAC;AAC9D;AAEO,IAAM,YAAY,CAAC,QAAmB,cAAgD;AAC3F,MAAI,CAAC,QAAQ,MAAM,KAAK,CAAC,WAAW,SAAS,GAAG;AAC9C,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,MAAM,OAAK,UAAU,CAAC,CAAC;AACvC;AAEO,IAAM,eAAe,CAAC,UAAyC;AACpE,SACE,SAAS,KAAK,KACd,CAAC,cAAc,KAAK,KACnB,MAAsB,aAAa,KACpC,SAAU,MAAsB,QAAQ,KACxC,wBAAwB,MAAM,cAAY,YAAa,KAAqB;AAEhF;AAEO,IAAM,UAAU,CAAC,UAA4B;AAClD,SACG,SAAS,KAAK,KAAK,MAAM,WAAW,KACpC,QAAQ,KAAK,KAAK,MAAM,WAAW,KACnC,SAAS,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,OAAO,KAAK,KAAK,EAAE,WAAW,KACnF,MAAM,KAAK,KAAK,MAAM,SAAS,KAC/B,MAAM,KAAK,KAAK,MAAM,SAAS;AAEpC;AAEO,IAAM,eAAe,CAAI,UAAmB,WAAoC;AACrF,MAAI,CAAC,YAAY,CAAE,QAAqB;AACtC,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,eAAe,QAAQ,MAAM,OAAO;AACpD;AAEO,IAAM,UAAU,CAAC,QAAmB,UAAwB;AACjE,MAAI,CAAC,QAAQ,MAAM,GAAG;AACpB,WAAO;AAAA,EACT;AAGA,SAAO,OAAO,QAAQ,KAAK,IAAI;AACjC;AAEO,IAAM,eAAe,CAC1B,QACA,KACA,cACY;AACZ,MAAI,CAAC,SAAS,MAAM,KAAK,CAAC,KAAK;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,OAAO,GAAG;AAExB,MAAI,WAAW,SAAS,GAAG;AACzB,WAAO,UAAU,KAAK;AAAA,EACxB;AAEA,SAAO,UAAU,KAAK;AACxB;;;ACpJA,SAAS,GAAG,OAA0B;AACpC,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AAEA,UAAQ,OAAO,OAAO;AAAA,IACpB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,QAAQ,KAAK,GAAG;AAClB,WAAO;AAAA,EACT;AAEA,MAAI,gBAAgB,KAAK,GAAG;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,UAAU,cAAc,KAAK;AAGnC,MAAI,SAAS;AACX,WAAO;AAAA,EACT;AAGA,SAAO;AACT;AAEA,GAAG,QAAQ;AACX,GAAG,UAAU;AACb,GAAG,yBAAyB;AAC5B,GAAG,gBAAgB;AACnB,GAAG,SAAS;AACZ,GAAG,UAAU;AACb,GAAG,QAAQ;AACX,GAAG,OAAO;AACV,GAAG,UAAU;AACb,GAAG,aAAa;AAChB,GAAG,QAAQ;AACX,GAAG,QAAQ;AACX,GAAG,WAAW;AACd,GAAG,YAAY;AACf,GAAG,oBAAoB;AACvB,GAAG,aAAa;AAChB,GAAG,UAAU;AACb,GAAG,WAAW;AACd,GAAG,MAAM;AACT,GAAG,MAAM;AACT,GAAG,OAAO;AACV,GAAG,kBAAkB;AACrB,GAAG,iBAAiB;AACpB,GAAG,SAAS;AACZ,GAAG,gBAAgB;AACnB,GAAG,SAAS;AACZ,GAAG,QAAQ;AACX,GAAG,gBAAgB;AACnB,GAAG,cAAc;AACjB,GAAG,YAAY;AACf,GAAG,UAAU;AACb,GAAG,aAAa;AAChB,GAAG,SAAS;AACZ,GAAG,MAAM;AACT,GAAG,SAAS;AACZ,GAAG,SAAS;AACZ,GAAG,YAAY;AACf,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG,UAAU;AAEb,IAAO,gBAAQ;","names":[]}