{"version":3,"sources":["../src/runtime/is-class.ts","../src/types/kind.enum.ts","../src/runtime/kind-of.ts"],"names":["Kind"],"mappings":"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","file":"kind-of.cjs","sourcesContent":["export function isClass(Class: any) {\n  if (typeof Class !== 'function') {\n    return false;\n  }\n  if (/^class\\s/.test(Function.prototype.toString.call(Class))) {\n    return true;\n  }\n  try {\n    new Class();\n    return /^[A-Z]/gm.test(Class.name);\n  } catch (err: any) {\n    return !err.message.includes('is not a constructor');\n  }\n}\n\nexport default isClass;\n","export enum Kind {\n  Null = 'null',\n  String = 'string',\n  Undefined = 'undefined',\n  Array = 'array',\n  ArrayLike = 'arraylike',\n  Class = 'class',\n  Function = 'function',\n  Symbol = 'symbol',\n  Number = 'number',\n  Date = 'date',\n  Boolean = 'boolean',\n  RegExp = 'regexp',\n  Buffer = 'buffer',\n  NaN = 'nan',\n  Set = 'set',\n  Map = 'map',\n  ArrayBuffer = 'arraybuffer',\n  Error = 'error',\n  Promise = 'promise',\n  WeakMap = 'weakmap',\n  WeakSet = 'weakset',\n  Int8Array = 'int8array',\n  Uint8Array = 'uint8array',\n  Uint8ClampedArray = 'uint8clampedarray',\n  Object = 'object',\n  Element = 'element',\n}\n\nexport default Kind;\n","import { isClass } from './is-class';\nimport Kind from '../types/kind.enum';\n\nexport function kindOf(value: unknown): Kind {\n  if (value === null) return Kind.Null;\n  if (value === undefined) return Kind.Undefined;\n\n  if (typeof value === 'string') return Kind.String;\n\n  // Check for Buffer (Node.js)\n  if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) {\n    return Kind.Buffer;\n  }\n\n  if (value instanceof ArrayBuffer) return Kind.ArrayBuffer;\n\n  if (typeof value === 'number' && Number.isNaN(value)) {\n    return Kind.NaN;\n  }\n\n  if (value instanceof Error) return Kind.Error;\n  if (value instanceof Promise) return Kind.Promise;\n  if (value instanceof WeakMap) return Kind.WeakMap;\n  if (value instanceof WeakSet) return Kind.WeakSet;\n  if (value instanceof Int8Array) return Kind.Int8Array;\n  if (value instanceof Uint8Array) return Kind.Uint8Array;\n  if (value instanceof Uint8ClampedArray) return Kind.Uint8ClampedArray;\n\n  if (typeof value === 'function') {\n    return isClass(value) ? Kind.Class : Kind.Function;\n  }\n\n  if (Array.isArray(value)) return Kind.Array;\n\n  if (value instanceof Set) return Kind.Set;\n  if (value instanceof Map) return Kind.Map;\n\n  // Array-like: has length, not string and not function\n  if (\n    typeof value === 'object' &&\n    value !== null &&\n    'length' in (value as any) &&\n    typeof (value as any).length === 'number' &&\n    !(value instanceof String)\n  ) {\n    return Kind.ArrayLike;\n  }\n\n  if (typeof value === 'symbol') return Kind.Symbol;\n  if (typeof value === 'number') return Kind.Number;\n  if (typeof value === 'boolean') return Kind.Boolean;\n\n  if (value instanceof Date) return Kind.Date;\n  if (value instanceof RegExp) return Kind.RegExp;\n\n  if (typeof Element === 'function' && value instanceof Element)\n    return Kind.Element;\n\n  if (typeof value === 'object') return Kind.Object;\n\n  return (typeof value as Kind) || Kind.Undefined;\n}\n\nexport default kindOf;\n"]}