{"version":3,"file":"index.mjs","sources":["../src/core/constants.ts","../src/core/native-types.ts","../src/core/modern-types.ts","../src/core/kind-of.ts","../src/guards/primitives.ts","../src/guards/objects.ts","../src/guards/collections.ts","../src/guards/index.ts","../src/validators/schema.ts","../src/converters/to-primitive.ts","../src/converters/to-complex.ts","../src/converters/index.ts","../src/utils/performance.ts","../src/utils/inspect.ts","../src/utils/helpers.ts","../src/plugins/plugin-system.ts","../src/plugins/built-in/react.ts","../src/plugins/built-in/node.ts","../src/index.ts"],"sourcesContent":["export const PRIMITIVE_TYPES = [\n  'undefined',\n  'null',\n  'boolean',\n  'number',\n  'string',\n  'symbol',\n  'bigint',\n] as const;\n\nexport const OBJECT_TYPES = [\n  'object',\n  'array',\n  'function',\n  'date',\n  'regexp',\n  'error',\n] as const;\n\nexport const COLLECTION_TYPES = [\n  'map',\n  'set',\n  'weakmap',\n  'weakset',\n] as const;\n\nexport const TYPED_ARRAY_TYPES = [\n  'int8array',\n  'uint8array',\n  'uint8clampedarray',\n  'int16array',\n  'uint16array',\n  'int32array',\n  'uint32array',\n  'float32array',\n  'float64array',\n  'bigint64array',\n  'biguint64array',\n] as const;\n\nexport const MODERN_TYPES = [\n  'promise',\n  'generatorfunction',\n  'asyncfunction',\n  'asyncgeneratorfunction',\n  'proxy',\n  'dataview',\n  'arraybuffer',\n  'sharedarraybuffer',\n] as const;\n\nexport const NODE_TYPES = [\n  'buffer',\n  'stream',\n  'eventemitter',\n] as const;\n\nexport const DOM_TYPES = [\n  'element',\n  'node',\n  'window',\n  'document',\n] as const;\n\nexport const SPECIAL_TYPES = [\n  'arguments',\n  'global',\n] as const;\n\nexport const ALL_TYPES = [\n  ...PRIMITIVE_TYPES,\n  ...OBJECT_TYPES,\n  ...COLLECTION_TYPES,\n  ...TYPED_ARRAY_TYPES,\n  ...MODERN_TYPES,\n  ...NODE_TYPES,\n  ...DOM_TYPES,\n  ...SPECIAL_TYPES,\n] as const;\n\nexport type PrimitiveType = typeof PRIMITIVE_TYPES[number];\nexport type ObjectType = typeof OBJECT_TYPES[number];\nexport type CollectionType = typeof COLLECTION_TYPES[number];\nexport type TypedArrayType = typeof TYPED_ARRAY_TYPES[number];\nexport type ModernType = typeof MODERN_TYPES[number];\nexport type NodeType = typeof NODE_TYPES[number];\nexport type DOMType = typeof DOM_TYPES[number];\nexport type SpecialType = typeof SPECIAL_TYPES[number];\nexport type TypeName = typeof ALL_TYPES[number];\n\nexport const TYPE_TAG_MAP: Record<string, TypeName> = {\n  '[object Arguments]': 'arguments',\n  '[object Array]': 'array',\n  '[object ArrayBuffer]': 'arraybuffer',\n  '[object AsyncFunction]': 'asyncfunction',\n  '[object AsyncGeneratorFunction]': 'asyncgeneratorfunction',\n  '[object BigInt]': 'bigint',\n  '[object BigInt64Array]': 'bigint64array',\n  '[object BigUint64Array]': 'biguint64array',\n  '[object Boolean]': 'boolean',\n  '[object DataView]': 'dataview',\n  '[object Date]': 'date',\n  '[object Error]': 'error',\n  '[object Float32Array]': 'float32array',\n  '[object Float64Array]': 'float64array',\n  '[object Function]': 'function',\n  '[object GeneratorFunction]': 'generatorfunction',\n  '[object Int8Array]': 'int8array',\n  '[object Int16Array]': 'int16array',\n  '[object Int32Array]': 'int32array',\n  '[object Map]': 'map',\n  '[object Number]': 'number',\n  '[object Object]': 'object',\n  '[object Promise]': 'promise',\n  '[object Proxy]': 'proxy',\n  '[object RegExp]': 'regexp',\n  '[object Set]': 'set',\n  '[object SharedArrayBuffer]': 'sharedarraybuffer',\n  '[object String]': 'string',\n  '[object Symbol]': 'symbol',\n  '[object Uint8Array]': 'uint8array',\n  '[object Uint8ClampedArray]': 'uint8clampedarray',\n  '[object Uint16Array]': 'uint16array',\n  '[object Uint32Array]': 'uint32array',\n  '[object WeakMap]': 'weakmap',\n  '[object WeakSet]': 'weakset',\n  '[object Window]': 'window',\n  '[object HTMLDocument]': 'document',\n  '[object Document]': 'document',\n  '[object Null]': 'null',\n  '[object Undefined]': 'undefined',\n};","import type { TypeName } from './constants';\nimport { TYPE_TAG_MAP } from './constants';\n\nconst toString = Object.prototype.toString;\nconst toStringTag = Symbol.toStringTag;\n\nexport function getNativeType(value: unknown): TypeName | null {\n  if (value === undefined) return 'undefined';\n  if (value === null) return 'null';\n\n  const primitiveType = typeof value;\n  \n  switch (primitiveType) {\n    case 'boolean': return 'boolean';\n    case 'number': return 'number';\n    case 'string': return 'string';\n    case 'symbol': return 'symbol';\n    case 'bigint': return 'bigint';\n    case 'function': return getFunctionType(value as (...args: any[]) => any);\n    case 'object': return getObjectType(value as object);\n    default: return null;\n  }\n}\n\nfunction getFunctionType(fn: (...args: any[]) => any): TypeName {\n  const fnString = fn.toString();\n  \n  if (/^class\\s/.test(fnString)) {\n    return 'function';\n  }\n  \n  if (/^async\\s*function\\s*\\*/.test(fnString) || /^async\\s*\\*/.test(fnString)) {\n    return 'asyncgeneratorfunction';\n  }\n  \n  if (/^async\\s/.test(fnString)) {\n    return 'asyncfunction';\n  }\n  \n  if (/^function\\s*\\*/.test(fnString) || /^\\*/.test(fnString)) {\n    return 'generatorfunction';\n  }\n  \n  const ctorName = fn.constructor?.name;\n  if (ctorName === 'AsyncFunction') return 'asyncfunction';\n  if (ctorName === 'GeneratorFunction') return 'generatorfunction';\n  if (ctorName === 'AsyncGeneratorFunction') return 'asyncgeneratorfunction';\n  \n  return 'function';\n}\n\nfunction getObjectType(obj: object): TypeName {\n  const tag = toString.call(obj);\n  const mappedType = TYPE_TAG_MAP[tag];\n  \n  if (mappedType) {\n    return mappedType;\n  }\n  \n  // Check for special types first, before processing [object Object]\n  if (typeof Buffer !== 'undefined' && Buffer.isBuffer && Buffer.isBuffer(obj)) {\n    return 'buffer';\n  }\n  \n  if (typeof obj === 'object' && 'callee' in obj && typeof obj.callee === 'function') {\n    return 'arguments';\n  }\n  \n  if (isStream(obj)) {\n    return 'stream';\n  }\n  \n  if (isEventEmitter(obj)) {\n    return 'eventemitter';\n  }\n  \n  if (tag === '[object Object]') {\n    const customTag = (obj as any)[toStringTag];\n    if (typeof customTag === 'string') {\n      return customTag.toLowerCase() as TypeName;\n    }\n    \n    const ctor = obj.constructor;\n    if (ctor && ctor !== Object) {\n      const ctorName = ctor.name;\n      if (ctorName && ctorName !== 'Object') {\n        return ctorName.toLowerCase() as TypeName;\n      }\n    }\n    // Don't return 'object' here - continue to check for other types\n  }\n  \n  if (isDOMElement(obj)) {\n    return 'element';\n  }\n  \n  if (isDOMNode(obj)) {\n    return 'node';\n  }\n  \n  if (isGlobal(obj)) {\n    return 'global';\n  }\n  \n  return 'object';\n}\n\nfunction isStream(obj: any): boolean {\n  return obj !== null &&\n    typeof obj === 'object' &&\n    typeof obj.pipe === 'function';\n}\n\nfunction isEventEmitter(obj: any): boolean {\n  return obj !== null &&\n    typeof obj === 'object' &&\n    typeof obj.on === 'function' &&\n    typeof obj.emit === 'function' &&\n    typeof obj.removeListener === 'function';\n}\n\nfunction isDOMElement(obj: any): boolean {\n  if (typeof HTMLElement === 'undefined') return false;\n  return obj instanceof HTMLElement;\n}\n\nfunction isDOMNode(obj: any): boolean {\n  if (typeof Node === 'undefined') return false;\n  return obj instanceof Node;\n}\n\nfunction isGlobal(obj: any): boolean {\n  if (typeof globalThis !== 'undefined' && obj === globalThis) return true;\n  if (typeof global !== 'undefined' && obj === global) return true;\n  if (typeof window !== 'undefined' && obj === window) return true;\n  if (typeof self !== 'undefined' && obj === self) return true;\n  return false;\n}","import type { TypeName } from './constants';\n\nconst WeakMapPrototype = WeakMap.prototype;\nconst WeakSetPrototype = WeakSet.prototype;\nconst MapPrototype = Map.prototype;\nconst SetPrototype = Set.prototype;\nconst ArrayBufferPrototype = ArrayBuffer.prototype;\nconst DataViewPrototype = DataView.prototype;\nconst SharedArrayBufferPrototype = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer.prototype : null;\n\nexport function checkModernType(value: unknown): TypeName | null {\n  if (value === null || value === undefined) {\n    return null;\n  }\n\n  try {\n    if (value instanceof Promise || isThenable(value)) {\n      return 'promise';\n    }\n\n    if (value instanceof Map || (value as any).__proto__ === MapPrototype) {\n      return 'map';\n    }\n\n    if (value instanceof Set || (value as any).__proto__ === SetPrototype) {\n      return 'set';\n    }\n\n    if (value instanceof WeakMap || (value as any).__proto__ === WeakMapPrototype) {\n      return 'weakmap';\n    }\n\n    if (value instanceof WeakSet || (value as any).__proto__ === WeakSetPrototype) {\n      return 'weakset';\n    }\n\n    if (value instanceof ArrayBuffer || (value as any).__proto__ === ArrayBufferPrototype) {\n      return 'arraybuffer';\n    }\n\n    if (SharedArrayBufferPrototype && (value instanceof SharedArrayBuffer || (value as any).__proto__ === SharedArrayBufferPrototype)) {\n      return 'sharedarraybuffer';\n    }\n\n    if (value instanceof DataView || (value as any).__proto__ === DataViewPrototype) {\n      return 'dataview';\n    }\n\n    if (isProxy(value)) {\n      return 'proxy';\n    }\n  } catch {\n    // Cross-realm objects might throw\n  }\n\n  return null;\n}\n\nfunction isThenable(value: any): boolean {\n  return value !== null &&\n    (typeof value === 'object' || typeof value === 'function') &&\n    typeof value.then === 'function';\n}\n\nfunction isProxy(value: any): boolean {\n  try {\n    // Proxies are detected by checking if they trigger proxy traps\n    // when used with certain operations\n    if (typeof value !== 'object' && typeof value !== 'function') {\n      return false;\n    }\n\n    // Try to create a proxy with the value as handler\n    // If it's already a proxy, this might throw or behave differently\n    new Proxy({}, value as ProxyHandler<any>);\n    \n    // Additional check: see if common proxy behaviors are present\n    // This is a heuristic and might not catch all proxies\n    const descriptor = Object.getOwnPropertyDescriptor(value, Symbol.toStringTag);\n    if (descriptor && !descriptor.configurable && descriptor.value === 'Proxy') {\n      return true;\n    }\n\n    return false;\n  } catch {\n    // Some proxy operations might throw\n    return false;\n  }\n}\n\nexport function getTypedArrayType(value: any): TypeName | null {\n  if (!ArrayBuffer.isView(value)) {\n    return null;\n  }\n\n  const proto = Object.getPrototypeOf(value);\n  const ctorName = proto?.constructor?.name;\n\n  switch (ctorName) {\n    case 'Int8Array': return 'int8array';\n    case 'Uint8Array': return 'uint8array';\n    case 'Uint8ClampedArray': return 'uint8clampedarray';\n    case 'Int16Array': return 'int16array';\n    case 'Uint16Array': return 'uint16array';\n    case 'Int32Array': return 'int32array';\n    case 'Uint32Array': return 'uint32array';\n    case 'Float32Array': return 'float32array';\n    case 'Float64Array': return 'float64array';\n    case 'BigInt64Array': return 'bigint64array';\n    case 'BigUint64Array': return 'biguint64array';\n    default: return null;\n  }\n}","import type { TypeName } from './constants';\nexport type { TypeName } from './constants';\nimport { getNativeType } from './native-types';\nimport { checkModernType, getTypedArrayType } from './modern-types';\n\n\nexport interface DetailedType {\n  type: string;\n  constructor: string | null;\n  prototype: string | null;\n  isPrimitive: boolean;\n  isBuiltIn: boolean;\n  isNullish: boolean;\n  isIterable: boolean;\n  isAsync: boolean;\n  customType: string | null;\n  metadata?: Record<string, any> | undefined;\n}\n\nlet typeCache: WeakMap<object, string> | null = null;\nlet cacheEnabled = true;\n\nexport function kindOfCore(value: unknown): string {\n  if (value === undefined) return 'undefined';\n  if (value === null) return 'null';\n\n  const primitiveType = getPrimitiveType(value);\n  if (primitiveType) return primitiveType;\n\n  if (typeof value === 'object' && cacheEnabled && typeCache) {\n    const cached = typeCache.get(value);\n    if (cached) return cached;\n  }\n\n  let type = getNativeType(value);\n  \n  if (!type || type === 'object') {\n    const modernType = checkModernType(value);\n    if (modernType) {\n      type = modernType;\n    } else {\n      const arrayType = getTypedArrayType(value);\n      if (arrayType) {\n        type = arrayType;\n      } else {\n        type = getCustomType(value) || type || ('object' as TypeName);\n      }\n    }\n  }\n\n  if (typeof value === 'object' && cacheEnabled && type) {\n    if (!typeCache) typeCache = new WeakMap();\n    typeCache.set(value, type);\n  }\n\n  return type || 'object';\n}\n\nexport function fastKindOf(value: unknown): string {\n  if (value === undefined) return 'undefined';\n  if (value === null) return 'null';\n\n  const primitiveType = typeof value;\n  if (primitiveType !== 'object' && primitiveType !== 'function') {\n    return primitiveType;\n  }\n\n  if (Array.isArray(value)) return 'array';\n  if (value instanceof Date) return 'date';\n  if (value instanceof RegExp) return 'regexp';\n  if (value instanceof Error) return 'error';\n\n  return 'object';\n}\n\nexport function kindOfMany(values: unknown[]): string[] {\n  const results: string[] = new Array(values.length);\n  for (let i = 0; i < values.length; i++) {\n    results[i] = kindOfCore(values[i]);\n  }\n  return results;\n}\n\nexport function getDetailedType(value: unknown): DetailedType {\n  const type = kindOfCore(value);\n  const isPrimitive = value === null || (typeof value !== 'object' && typeof value !== 'function');\n  \n  let constructor: string | null = null;\n  let prototype: string | null = null;\n  let isIterable = false;\n  let isAsync = false;\n  let customType: string | null = null;\n  const metadata: Record<string, any> = {};\n\n  if (!isPrimitive && value !== null) {\n    const obj = value as any;\n    \n    if (obj.constructor) {\n      constructor = obj.constructor.name || null;\n    }\n    \n    const proto = Object.getPrototypeOf(obj);\n    if (proto && proto.constructor) {\n      prototype = proto.constructor.name || null;\n    }\n    \n    isIterable = typeof obj[Symbol.iterator] === 'function';\n    isAsync = typeof obj[Symbol.asyncIterator] === 'function' || \n              type === 'promise' || \n              type === 'asyncfunction' || \n              type === 'asyncgeneratorfunction';\n    \n    if (obj[Symbol.toStringTag]) {\n      customType = String(obj[Symbol.toStringTag]);\n    }\n    \n    if (type === 'array') {\n      metadata['length'] = (obj).length;\n    } else if (type === 'map' || type === 'set') {\n      metadata['size'] = (obj).size;\n    } else if (type === 'arraybuffer' || type === 'sharedarraybuffer') {\n      metadata['byteLength'] = (obj).byteLength;\n    } else if (type.includes('array') && (obj).buffer) {\n      metadata['byteLength'] = (obj).byteLength;\n      metadata['length'] = (obj).length;\n    }\n  }\n\n  return {\n    type,\n    constructor,\n    prototype,\n    isPrimitive,\n    isBuiltIn: isBuiltInType(type),\n    isNullish: value === null || value === undefined,\n    isIterable,\n    isAsync,\n    customType,\n    metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n  };\n}\n\nfunction getPrimitiveType(value: unknown): string | null {\n  const type = typeof value;\n  switch (type) {\n    case 'boolean':\n    case 'number':\n    case 'string':\n    case 'symbol':\n    case 'bigint':\n      return type;\n    default:\n      return null;\n  }\n}\n\nfunction getCustomType(value: any): TypeName | null {\n  try {\n    const toStringTag = value[Symbol.toStringTag];\n    if (typeof toStringTag === 'string') {\n      return toStringTag.toLowerCase() as TypeName;\n    }\n\n    if (value.constructor && value.constructor !== Object) {\n      const ctorName = value.constructor.name;\n      if (ctorName && ctorName !== 'Object') {\n        return ctorName.toLowerCase() as TypeName;\n      }\n    }\n  } catch {\n    // Ignore errors from accessing properties\n  }\n\n  return null;\n}\n\nfunction isBuiltInType(type: string): boolean {\n  const builtInTypes = new Set([\n    'undefined', 'null', 'boolean', 'number', 'string', 'symbol', 'bigint',\n    'object', 'array', 'function', 'date', 'regexp', 'error',\n    'map', 'set', 'weakmap', 'weakset',\n    'int8array', 'uint8array', 'uint8clampedarray', 'int16array', 'uint16array',\n    'int32array', 'uint32array', 'float32array', 'float64array',\n    'bigint64array', 'biguint64array',\n    'promise', 'generatorfunction', 'asyncfunction', 'asyncgeneratorfunction',\n    'proxy', 'dataview', 'arraybuffer', 'sharedarraybuffer',\n    'arguments'\n  ]);\n  \n  return builtInTypes.has(type);\n}\n\nexport function enableCache(): void {\n  cacheEnabled = true;\n  if (!typeCache) typeCache = new WeakMap();\n}\n\nexport function disableCache(): void {\n  cacheEnabled = false;\n  typeCache = null;\n}\n\nexport function clearCache(): void {\n  if (typeCache) {\n    typeCache = new WeakMap();\n  }\n}","export function isUndefined(value: unknown): value is undefined {\n  return value === undefined;\n}\n\nexport function isNull(value: unknown): value is null {\n  return value === null;\n}\n\nexport function isBoolean(value: unknown): value is boolean {\n  return typeof value === 'boolean';\n}\n\nexport function isNumber(value: unknown): value is number {\n  return typeof value === 'number';\n}\n\nexport function isString(value: unknown): value is string {\n  return typeof value === 'string';\n}\n\nexport function isSymbol(value: unknown): value is symbol {\n  return typeof value === 'symbol';\n}\n\nexport function isBigInt(value: unknown): value is bigint {\n  return typeof value === 'bigint';\n}\n\nexport function isPrimitive(value: unknown): value is undefined | null | boolean | number | string | symbol | bigint {\n  return value === null || (typeof value !== 'object' && typeof value !== 'function');\n}\n\nexport function isNullish(value: unknown): value is undefined | null {\n  return value === null || value === undefined;\n}\n\nexport function isFalsy(value: unknown): value is false | 0   | 0n | '' | null | undefined {\n  return !value;\n}\n\nexport function isTruthy<T>(value: T): value is Exclude<T, false | 0   | 0n | '' | null | undefined> {\n  return !!value;\n}\n\nexport function isInteger(value: unknown): value is number {\n  return typeof value === 'number' && Number.isInteger(value);\n}\n\nexport function isSafeInteger(value: unknown): value is number {\n  return typeof value === 'number' && Number.isSafeInteger(value);\n}\n\nexport function isFinite(value: unknown): value is number {\n  return typeof value === 'number' && Number.isFinite(value);\n}\n\nexport function isNaN(value: unknown): value is number {\n  return typeof value === 'number' && Number.isNaN(value);\n}\n\nexport function isInfinity(value: unknown): value is number {\n  return value === Infinity || value === -Infinity;\n}\n\nexport function isEmptyString(value: unknown): value is '' {\n  return value === '';\n}\n\nexport function isNumericString(value: unknown): value is string {\n  if (typeof value !== 'string') return false;\n  if (value === '') return false;\n  return !isNaN(Number(value)) && !isNaN(parseFloat(value));\n}\n\nexport function isJsonString(value: unknown): value is string {\n  if (typeof value !== 'string') return false;\n  try {\n    JSON.parse(value);\n    return true;\n  } catch {\n    return false;\n  }\n}","export function isObject(value: unknown): value is object {\n  return value !== null && typeof value === 'object';\n}\n\nexport function isArray<T = unknown>(value: unknown): value is T[] {\n  return Array.isArray(value);\n}\n\nexport function isFunction(value: unknown): value is (...args: any[]) => any {\n  return typeof value === 'function';\n}\n\nexport function isDate(value: unknown): value is Date {\n  return value instanceof Date;\n}\n\nexport function isRegExp(value: unknown): value is RegExp {\n  return value instanceof RegExp;\n}\n\nexport function isError(value: unknown): value is Error {\n  return value instanceof Error ||\n    (value !== null &&\n      typeof value === 'object' &&\n      'name' in value &&\n      'message' in value &&\n      'stack' in value);\n}\n\nexport function isPromise<T = unknown>(value: unknown): value is Promise<T> {\n  return value instanceof Promise ||\n    (value !== null &&\n      typeof value === 'object' &&\n      'then' in value &&\n      typeof (value as { then?: unknown }).then === 'function');\n}\n\nexport function isArguments(value: unknown): value is IArguments {\n  return Object.prototype.toString.call(value) === '[object Arguments]';\n}\n\nexport function isBuffer(value: unknown): value is Buffer {\n  return typeof Buffer !== 'undefined' &&\n    value !== null &&\n    typeof value === 'object' &&\n    'isBuffer' in Buffer &&\n    (Buffer as typeof Buffer & { isBuffer: (obj: unknown) => boolean }).isBuffer(value);\n}\n\nexport function isPlainObject(value: unknown): value is Record<string, unknown> {\n  if (!isObject(value)) return false;\n  \n  const proto = Object.getPrototypeOf(value);\n  if (proto === null) return true;\n  \n  const Ctor = Object.prototype.hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor === 'function' &&\n    Ctor instanceof Ctor &&\n    Function.prototype.toString.call(Ctor) === Function.prototype.toString.call(Object);\n}\n\nexport function isEmpty(value: unknown): boolean {\n  if (value === null || value === undefined) return true;\n  if (typeof value === 'string' || Array.isArray(value)) return value.length === 0;\n  if (value instanceof Map || value instanceof Set) return value.size === 0;\n  if (isPlainObject(value)) return Object.keys(value).length === 0;\n  return false;\n}\n\nexport function isEmptyArray(value: unknown): value is [] {\n  return Array.isArray(value) && value.length === 0;\n}\n\nexport function isEmptyObject(value: unknown): value is Record<string, never> {\n  return isPlainObject(value) && Object.keys(value).length === 0;\n}\n\nexport function hasLength(value: unknown): value is { length: number } {\n  return value !== null &&\n    value !== undefined &&\n    (typeof value === 'object' || typeof value === 'string') &&\n    (typeof value === 'string' || 'length' in value) &&\n    typeof (value as any).length === 'number';\n}\n\nexport function hasSize(value: unknown): value is { size: number } {\n  return value !== null &&\n    value !== undefined &&\n    typeof value === 'object' &&\n    'size' in value &&\n    typeof (value as any).size === 'number';\n}\n\nexport function isArrayLike<T = unknown>(value: unknown): value is ArrayLike<T> {\n  return value !== null &&\n    value !== undefined &&\n    typeof value !== 'function' &&\n    hasLength(value) &&\n    (value as any).length >= 0 &&\n    (value as any).length <= Number.MAX_SAFE_INTEGER;\n}\n\nexport function isIterable<T = unknown>(value: unknown): value is Iterable<T> {\n  return value !== null &&\n    value !== undefined &&\n    typeof (value as any)[Symbol.iterator] === 'function';\n}\n\nexport function isAsyncIterable<T = unknown>(value: unknown): value is AsyncIterable<T> {\n  return value !== null &&\n    value !== undefined &&\n    typeof (value as any)[Symbol.asyncIterator] === 'function';\n}\n\nexport function isConstructor(value: unknown): value is new (...args: any[]) => any {\n  if (typeof value !== 'function') return false;\n  \n  try {\n    const testObj = {};\n    const BoundTest = value.bind(testObj);\n    new BoundTest();\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport function isThenable<T = unknown>(value: unknown): value is PromiseLike<T> {\n  return value !== null &&\n    (typeof value === 'object' || typeof value === 'function') &&\n    'then' in value &&\n    typeof (value as any).then === 'function';\n}\n\nexport function isObservable(value: unknown): value is { subscribe: (...args: any[]) => any } {\n  return value !== null &&\n    typeof value === 'object' &&\n    'subscribe' in value &&\n    typeof (value as any).subscribe === 'function';\n}\n\nexport function isGenerator(value: unknown): value is Generator {\n  return value !== null &&\n    typeof value === 'object' &&\n    typeof (value as any).next === 'function' &&\n    typeof (value as any).throw === 'function' &&\n    typeof (value as any).return === 'function';\n}\n\nexport function isAsyncGenerator(value: unknown): value is AsyncGenerator {\n  return value !== null &&\n    typeof value === 'object' &&\n    typeof (value as any).next === 'function' &&\n    typeof (value as any).throw === 'function' &&\n    typeof (value as any).return === 'function' &&\n    isAsyncIterable(value);\n}\n\nexport function isGeneratorFunction(value: unknown): value is GeneratorFunction {\n  if (typeof value !== 'function') return false;\n  const name = value.constructor?.name;\n  return name === 'GeneratorFunction' || /^function\\s*\\*/.test(value.toString());\n}\n\nexport function isAsyncFunction(value: unknown): value is (...args: any[]) => Promise<unknown> {\n  if (typeof value !== 'function') return false;\n  const name = value.constructor?.name;\n  return name === 'AsyncFunction' || /^async\\s/.test(value.toString());\n}\n\nexport function isAsyncGeneratorFunction(value: unknown): value is (...args: any[]) => AsyncGenerator {\n  if (typeof value !== 'function') return false;\n  const name = value.constructor?.name;\n  return name === 'AsyncGeneratorFunction' || /^async\\s*function\\s*\\*/.test(value.toString());\n}\n\nexport function isProxy(value: unknown): value is object {\n  try {\n    if (typeof value !== 'object' && typeof value !== 'function') return false;\n    if (value === null) return false;\n    \n    // Attempt to use proxy-specific behavior\n    const testHandler: ProxyHandler<object> = {\n      get() {\n        throw new Error('proxy trap');\n      }\n    };\n    \n    const proxy = new Proxy({}, testHandler);\n    const isProxyLike = Object.prototype.toString.call(value) === Object.prototype.toString.call(proxy);\n    \n    return isProxyLike;\n  } catch {\n    return false;\n  }\n}\n\n// Error type guards\nexport function isTypeError(value: unknown): value is TypeError {\n  return value instanceof TypeError;\n}\n\nexport function isRangeError(value: unknown): value is RangeError {\n  return value instanceof RangeError;\n}\n\nexport function isSyntaxError(value: unknown): value is SyntaxError {\n  return value instanceof SyntaxError;\n}\n\nexport function isReferenceError(value: unknown): value is ReferenceError {\n  return value instanceof ReferenceError;\n}\n\nexport function isEvalError(value: unknown): value is EvalError {\n  return value instanceof EvalError;\n}\n\nexport function isURIError(value: unknown): value is URIError {\n  return value instanceof URIError;\n}\n\n// Node.js specific guards\nexport function isStream(value: unknown): value is NodeJS.ReadableStream | NodeJS.WritableStream {\n  return value !== null &&\n    typeof value === 'object' &&\n    typeof (value as any).pipe === 'function';\n}\n\nexport function isEventEmitter(value: unknown): value is NodeJS.EventEmitter {\n  return value !== null &&\n    typeof value === 'object' &&\n    typeof (value as any).on === 'function' &&\n    typeof (value as any).emit === 'function' &&\n    typeof (value as any).removeListener === 'function';\n}\n\n// DOM specific guards\nexport function isElement(value: unknown): value is Element {\n  return typeof Element !== 'undefined' && value instanceof Element;\n}\n\nexport function isNode(value: unknown): value is Node {\n  return typeof Node !== 'undefined' && value instanceof Node;\n}\n\nexport function isWindow(value: unknown): value is Window {\n  return typeof Window !== 'undefined' && value instanceof Window;\n}\n\nexport function isDocument(value: unknown): value is Document {\n  return typeof Document !== 'undefined' && value instanceof Document;\n}\n\nexport function isGlobal(value: unknown): value is typeof globalThis {\n  if (typeof globalThis !== 'undefined' && value === globalThis) return true;\n  if (typeof global !== 'undefined' && value === global) return true;\n  if (typeof window !== 'undefined' && value === window) return true;\n  if (typeof self !== 'undefined' && value === self) return true;\n  return false;\n}","export function isMap<K = any, V = any>(value: unknown): value is Map<K, V> {\n  return value instanceof Map;\n}\n\nexport function isSet<T = any>(value: unknown): value is Set<T> {\n  return value instanceof Set;\n}\n\nexport function isWeakMap<K extends object = object, V = any>(value: unknown): value is WeakMap<K, V> {\n  return value instanceof WeakMap;\n}\n\nexport function isWeakSet<T extends object = object>(value: unknown): value is WeakSet<T> {\n  return value instanceof WeakSet;\n}\n\nexport function isDataView(value: unknown): value is DataView {\n  return value instanceof DataView;\n}\n\nexport function isArrayBuffer(value: unknown): value is ArrayBuffer {\n  return value instanceof ArrayBuffer;\n}\n\nexport function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer {\n  return typeof SharedArrayBuffer !== 'undefined' && value instanceof SharedArrayBuffer;\n}\n\nexport function isTypedArray(value: unknown): value is TypedArray {\n  return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\nexport function isInt8Array(value: unknown): value is Int8Array {\n  return value instanceof Int8Array;\n}\n\nexport function isUint8Array(value: unknown): value is Uint8Array {\n  return value instanceof Uint8Array;\n}\n\nexport function isUint8ClampedArray(value: unknown): value is Uint8ClampedArray {\n  return value instanceof Uint8ClampedArray;\n}\n\nexport function isInt16Array(value: unknown): value is Int16Array {\n  return value instanceof Int16Array;\n}\n\nexport function isUint16Array(value: unknown): value is Uint16Array {\n  return value instanceof Uint16Array;\n}\n\nexport function isInt32Array(value: unknown): value is Int32Array {\n  return value instanceof Int32Array;\n}\n\nexport function isUint32Array(value: unknown): value is Uint32Array {\n  return value instanceof Uint32Array;\n}\n\nexport function isFloat32Array(value: unknown): value is Float32Array {\n  return value instanceof Float32Array;\n}\n\nexport function isFloat64Array(value: unknown): value is Float64Array {\n  return value instanceof Float64Array;\n}\n\nexport function isBigInt64Array(value: unknown): value is BigInt64Array {\n  return typeof BigInt64Array !== 'undefined' && value instanceof BigInt64Array;\n}\n\nexport function isBigUint64Array(value: unknown): value is BigUint64Array {\n  return typeof BigUint64Array !== 'undefined' && value instanceof BigUint64Array;\n}\n\n// Helper type definition\ntype TypedArray = \n  | Int8Array \n  | Uint8Array \n  | Uint8ClampedArray \n  | Int16Array \n  | Uint16Array \n  | Int32Array \n  | Uint32Array \n  | Float32Array \n  | Float64Array \n  | BigInt64Array \n  | BigUint64Array;","export * from './primitives';\nexport * from './objects';\nexport * from './collections';\n\nimport { kindOfCore } from '../core/kind-of';\nimport type { TypeMap, TypeName } from '../types';\n\nexport function isType<T extends TypeName>(value: unknown, type: T): value is TypeMap[T] {\n  return kindOfCore(value) === type;\n}\n\nexport function assertType<T extends TypeName>(value: unknown, type: T): asserts value is TypeMap[T] {\n  if (kindOfCore(value) !== type) {\n    throw new TypeError(`Expected type \"${type}\" but got \"${kindOfCore(value)}\"`);\n  }\n}\n\nexport function ensureType<T extends TypeName>(\n  value: unknown,\n  type: T,\n  defaultValue: TypeMap[T]\n): TypeMap[T] {\n  return isType(value, type) ? value : defaultValue;\n}","import { kindOfCore } from '../core/kind-of';\nimport type { ValidationResult, ValidationError, ValidationOptions, SchemaType } from '../types/schema';\n\nexport function validateSchema(\n  value: unknown,\n  schema: SchemaType,\n  options: ValidationOptions = {}\n): ValidationResult {\n  const errors: ValidationError[] = [];\n  const context = {\n    path: options.path || '',\n    strict: options.strict ?? true,\n    coerce: options.coerce ?? false,\n    partial: options.partial ?? false,\n  };\n\n  validateValue(value, schema, context, errors);\n\n  return {\n    valid: errors.length === 0,\n    errors,\n  };\n}\n\nfunction validateValue(\n  value: unknown,\n  schema: SchemaType,\n  context: { path: string; strict: boolean; coerce: boolean; partial: boolean },\n  errors: ValidationError[]\n): void {\n  if (typeof schema === 'string') {\n    // Simple type check\n    const actualType = kindOfCore(value);\n    if (actualType !== schema) {\n      errors.push({\n        path: context.path || 'root',\n        expected: schema,\n        actual: actualType,\n        message: `Expected type \"${schema}\" but got \"${actualType}\"`,\n      });\n    }\n  } else if (Array.isArray(schema)) {\n    // Array schema\n    if (!Array.isArray(value)) {\n      errors.push({\n        path: context.path || 'root',\n        expected: 'array',\n        actual: kindOfCore(value),\n        message: `Expected array but got \"${kindOfCore(value)}\"`,\n      });\n      return;\n    }\n\n    const itemSchema = schema[0];\n    if (itemSchema) {\n      value.forEach((item, index) => {\n        validateValue(\n          item,\n          itemSchema,\n          { ...context, path: `${context.path}[${index}]` },\n          errors\n        );\n      });\n    }\n  } else if (schema && typeof schema === 'object') {\n    // Object schema\n    if (typeof value !== 'object' || value === null) {\n      errors.push({\n        path: context.path || 'root',\n        expected: 'object',\n        actual: kindOfCore(value),\n        message: `Expected object but got \"${kindOfCore(value)}\"`,\n      });\n      return;\n    }\n\n    const obj = value as Record<string, unknown>;\n    const schemaObj = schema;\n\n    // Check required properties\n    if (!context.partial) {\n      for (const key of Object.keys(schemaObj)) {\n        if (!(key in obj)) {\n          errors.push({\n            path: context.path ? `${context.path}.${key}` : key,\n            expected: typeof schemaObj[key] === 'string' ? schemaObj[key] : kindOfCore(schemaObj[key]),\n            actual: 'undefined',\n            message: `Missing required property \"${key}\"`,\n          });\n        }\n      }\n    }\n\n    // Validate present properties\n    for (const key of Object.keys(obj)) {\n      if (key in schemaObj) {\n        const schemaValue = schemaObj[key];\n        if (schemaValue !== undefined) {\n          validateValue(\n            obj[key],\n            schemaValue,\n            { ...context, path: context.path ? `${context.path}.${key}` : key },\n            errors\n          );\n        }\n      } else if (context.strict) {\n        errors.push({\n          path: context.path ? `${context.path}.${key}` : key,\n          expected: 'undefined',\n          actual: kindOfCore(obj[key]),\n          message: `Unexpected property \"${key}\"`,\n        });\n      }\n    }\n  }\n}\n\nexport function createValidator(\n  schema: SchemaType,\n  options?: ValidationOptions\n): (value: unknown) => ValidationResult {\n  return (value: unknown) => validateSchema(value, schema, options);\n}","import { kindOfCore } from '../core/kind-of';\n\nexport function toString(value: unknown): string {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'string':\n      return value as string;\n    case 'number':\n    case 'boolean':\n    case 'bigint':\n      return String(value);\n    case 'symbol':\n      return (value as symbol).toString();\n    case 'undefined':\n      return 'undefined';\n    case 'null':\n      return 'null';\n    case 'date':\n      return (value as Date).toISOString();\n    case 'regexp':\n      return (value as RegExp).toString();\n    case 'function':\n      return (value as (...args: any[]) => any).toString();\n    case 'array':\n      return JSON.stringify(value);\n    case 'object':\n      try {\n        return JSON.stringify(value);\n      } catch {\n        return Object.prototype.toString.call(value);\n      }\n    default:\n      return String(value);\n  }\n}\n\nexport function toNumber(value: unknown): number | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'number':\n      return value as number;\n    case 'string': {\n      const num = Number(value);\n      return isNaN(num) ? null : num;\n    }\n    case 'boolean':\n      return value ? 1 : 0;\n    case 'null':\n      return 0;\n    case 'bigint': {\n      const bigIntValue = Number(value);\n      return bigIntValue > Number.MAX_SAFE_INTEGER || bigIntValue < Number.MIN_SAFE_INTEGER \n        ? null \n        : bigIntValue;\n    }\n    case 'date':\n      return (value as Date).getTime();\n    default:\n      return null;\n  }\n}\n\nexport function toBoolean(value: unknown): boolean {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'boolean':\n      return value as boolean;\n    case 'string': {\n      const str = (value as string).toLowerCase();\n      return str !== '' && str !== 'false' && str !== '0' && str !== 'no' && str !== 'null' && str !== 'undefined';\n    }\n    case 'number':\n      return value !== 0 && !isNaN(value as number);\n    case 'null':\n    case 'undefined':\n      return false;\n    case 'array':\n      return (value as any[]).length > 0;\n    case 'object':\n      return Object.keys(value as object).length > 0;\n    default:\n      return !!value;\n  }\n}\n\nexport function toBigInt(value: unknown): bigint | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'bigint':\n      return value as bigint;\n    case 'number':\n      if (Number.isInteger(value as number)) {\n        return BigInt(value as number);\n      }\n      return null;\n    case 'string':\n      try {\n        return BigInt(value as string);\n      } catch {\n        return null;\n      }\n    case 'boolean':\n      return BigInt(value ? 1 : 0);\n    default:\n      return null;\n  }\n}\n\nexport function toSymbol(value: unknown): symbol {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'symbol':\n      return value as symbol;\n    case 'string':\n      return Symbol(value as string);\n    case 'number':\n      return Symbol(String(value));\n    default:\n      return Symbol(toString(value));\n  }\n}","import { kindOfCore } from '../core/kind-of';\n\nexport function toArray(value: unknown): unknown[] | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'array':\n      return value as unknown[];\n    case 'string':\n      return Array.from(value as string);\n    case 'set':\n      return Array.from(value as Set<unknown>);\n    case 'map':\n      return Array.from(value as Map<unknown, unknown>);\n    case 'arguments':\n      return Array.from(value as ArrayLike<unknown>);\n    case 'null':\n    case 'undefined':\n      return [];\n    default:\n      if (value !== null && typeof value === 'object' && 'length' in value) {\n        return Array.from(value as ArrayLike<unknown>);\n      }\n      return [value];\n  }\n}\n\nexport function toObject(value: unknown): Record<string, unknown> | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'object':\n      return value as Record<string, unknown>;\n    case 'array': {\n      const arr = value as unknown[];\n      const obj: Record<string, unknown> = {};\n      arr.forEach((item, index) => {\n        obj[index] = item;\n      });\n      return obj;\n    }\n    case 'map': {\n      const map = value as Map<unknown, unknown>;\n      const obj: Record<string, unknown> = {};\n      for (const [key, val] of map) {\n        obj[String(key)] = val;\n      }\n      return obj;\n    }\n    case 'set': {\n      const set = value as Set<unknown>;\n      const obj: Record<string, unknown> = {};\n      let index = 0;\n      for (const item of set) {\n        obj[index++] = item;\n      }\n      return obj;\n    }\n    case 'string': {\n      const str = value as string;\n      const obj: Record<string, unknown> = {};\n      for (let i = 0; i < str.length; i++) {\n        obj[i] = str[i];\n      }\n      return obj;\n    }\n    case 'null':\n    case 'undefined':\n      return {};\n    default:\n      return { value };\n  }\n}\n\nexport function toMap(value: unknown): Map<unknown, unknown> | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'map':\n      return value as Map<unknown, unknown>;\n    case 'object': {\n      const obj = value as Record<string, unknown>;\n      const map = new Map<unknown, unknown>();\n      for (const [key, val] of Object.entries(obj)) {\n        map.set(key, val);\n      }\n      return map;\n    }\n    case 'array': {\n      const arr = value as unknown[];\n      const map = new Map<unknown, unknown>();\n      arr.forEach((item, index) => {\n        map.set(index, item);\n      });\n      return map;\n    }\n    case 'set': {\n      const set = value as Set<unknown>;\n      const map = new Map<unknown, unknown>();\n      let index = 0;\n      for (const item of set) {\n        map.set(index++, item);\n      }\n      return map;\n    }\n    default:\n      return null;\n  }\n}\n\nexport function toSet(value: unknown): Set<unknown> | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'set':\n      return value as Set<unknown>;\n    case 'array':\n      return new Set(value as unknown[]);\n    case 'string':\n      return new Set(Array.from(value as string));\n    case 'map':\n      return new Set((value as Map<unknown, unknown>).values());\n    case 'object':\n      return new Set(Object.values(value as Record<string, unknown>));\n    default:\n      return value !== null && value !== undefined ? new Set([value]) : new Set();\n  }\n}\n\nexport function toDate(value: unknown): Date | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'date':\n      return value as Date;\n    case 'string': {\n      const date = new Date(value as string);\n      return isNaN(date.getTime()) ? null : date;\n    }\n    case 'number': {\n      const date = new Date(value as number);\n      return isNaN(date.getTime()) ? null : date;\n    }\n    default:\n      return null;\n  }\n}\n\nexport function toRegExp(value: unknown): RegExp | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'regexp':\n      return value as RegExp;\n    case 'string':\n      try {\n        return new RegExp(value as string);\n      } catch {\n        return null;\n      }\n    default:\n      return null;\n  }\n}\n\nexport function toError(value: unknown): Error | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'error':\n      return value as Error;\n    case 'string':\n      return new Error(value as string);\n    case 'object':\n      if (value && typeof value === 'object' && 'message' in value) {\n        return new Error(String((value as any).message));\n      }\n      return new Error(String(value));\n    default:\n      return new Error(String(value));\n  }\n}\n\nexport function toFunction(value: unknown): ((...args: any[]) => any) | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'function':\n    case 'asyncfunction':\n    case 'generatorfunction':\n    case 'asyncgeneratorfunction':\n      return value as (...args: any[]) => any;\n    case 'string':\n      try {\n        // eslint-disable-next-line no-new-func, @typescript-eslint/no-implied-eval\n        return new Function('return ' + String(value)) as (...args: any[]) => any;\n      } catch {\n        return null;\n      }\n    default:\n      return null;\n  }\n}\n\nexport function toPromise(value: unknown): Promise<unknown> | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'promise':\n      return value as Promise<unknown>;\n    case 'function':\n      try {\n        const result = (value as (...args: any[]) => any)();\n        return Promise.resolve(result);\n      } catch (error) {\n        return Promise.reject(error);\n      }\n    default:\n      return Promise.resolve(value);\n  }\n}\n\nexport function toBuffer(value: unknown): Buffer | null {\n  if (typeof Buffer === 'undefined') {\n    return null;\n  }\n  \n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'buffer':\n      return value as Buffer;\n    case 'string':\n      return Buffer.from(value as string);\n    case 'array':\n      return Buffer.from(value as number[]);\n    case 'uint8array':\n      return Buffer.from(value as Uint8Array);\n    case 'arraybuffer':\n      return Buffer.from(value as ArrayBuffer);\n    default:\n      return null;\n  }\n}\n\nexport function toTypedArray<T extends ArrayBufferView>(\n  value: unknown,\n  TypedArrayConstructor: new (buffer: ArrayBuffer) => T\n): T | null {\n  const type = kindOfCore(value);\n  \n  switch (type) {\n    case 'arraybuffer':\n      return new TypedArrayConstructor(value as ArrayBuffer);\n    case 'array': {\n      const arr = value as number[];\n      const buffer = new ArrayBuffer(arr.length * 4);\n      const view = new TypedArrayConstructor(buffer);\n      for (let i = 0; i < arr.length; i++) {\n        (view as any)[i] = arr[i];\n      }\n      return view;\n    }\n    default:\n      if (type.includes('array') && value instanceof ArrayBuffer) {\n        return new TypedArrayConstructor(value);\n      }\n      return null;\n  }\n}","export { toString, toNumber, toBoolean, toBigInt, toSymbol } from './to-primitive';\nexport * from './to-complex';\n\nimport { kindOfCore } from '../core/kind-of';\nimport type { TypeMap, TypeName } from '../types';\nimport { toString, toNumber, toBoolean, toBigInt, toSymbol } from './to-primitive';\n\nexport function coerceType<T extends TypeName>(value: unknown, targetType: T): TypeMap[T] | null {\n  const currentType = kindOfCore(value);\n  \n  if (currentType === targetType) {\n    return value as TypeMap[T];\n  }\n\n  switch (targetType) {\n    case 'string':\n      return toString(value) as TypeMap[T];\n    case 'number':\n      return toNumber(value) as TypeMap[T];\n    case 'boolean':\n      return toBoolean(value) as TypeMap[T];\n    case 'bigint':\n      return toBigInt(value) as TypeMap[T];\n    case 'symbol':\n      return toSymbol(value) as TypeMap[T];\n    case 'undefined':\n      return undefined as TypeMap[T];\n    case 'null':\n      return null as TypeMap[T];\n    case 'array':\n      if (currentType === 'object' && value !== null) {\n        const arr = Array.from(value as any);\n        return arr.length > 0 ? arr as TypeMap[T] : null;\n      }\n      return null;\n    case 'object':\n      if (currentType === 'array') {\n        const obj: any = {};\n        (value as any[]).forEach((item, index) => {\n          obj[index] = item;\n        });\n        return obj as TypeMap[T];\n      }\n      return null;\n    case 'date':\n      if (currentType === 'string') {\n        const date = new Date(value as string);\n        return isNaN(date.getTime()) ? null : date as TypeMap[T];\n      }\n      return null;\n    default:\n      return null;\n  }\n}","export interface PerformanceMetrics {\n  totalCalls: number;\n  totalTime: number;\n  averageTime: number;\n  minTime: number;\n  maxTime: number;\n  cacheHits: number;\n  cacheMisses: number;\n}\n\nexport class PerformanceMonitor {\n  private metrics: Map<string, PerformanceMetrics> = new Map();\n  private enabled = false;\n\n  enable(): void {\n    this.enabled = true;\n  }\n\n  disable(): void {\n    this.enabled = false;\n  }\n\n  isEnabled(): boolean {\n    return this.enabled;\n  }\n\n  startTimer(operation: string): () => void {\n    if (!this.enabled) {\n      return () => {};\n    }\n\n    const start = performance.now();\n    return () => {\n      const duration = performance.now() - start;\n      this.recordMetric(operation, duration);\n    };\n  }\n\n  recordCacheHit(operation: string): void {\n    if (!this.enabled) return;\n\n    const metric = this.getOrCreateMetric(operation);\n    metric.cacheHits++;\n  }\n\n  recordCacheMiss(operation: string): void {\n    if (!this.enabled) return;\n\n    const metric = this.getOrCreateMetric(operation);\n    metric.cacheMisses++;\n  }\n\n  private recordMetric(operation: string, duration: number): void {\n    const metric = this.getOrCreateMetric(operation);\n    \n    metric.totalCalls++;\n    metric.totalTime += duration;\n    metric.averageTime = metric.totalTime / metric.totalCalls;\n    metric.minTime = Math.min(metric.minTime, duration);\n    metric.maxTime = Math.max(metric.maxTime, duration);\n  }\n\n  private getOrCreateMetric(operation: string): PerformanceMetrics {\n    if (!this.metrics.has(operation)) {\n      this.metrics.set(operation, {\n        totalCalls: 0,\n        totalTime: 0,\n        averageTime: 0,\n        minTime: Infinity,\n        maxTime: 0,\n        cacheHits: 0,\n        cacheMisses: 0,\n      });\n    }\n    const metric = this.metrics.get(operation);\n    if (!metric) {\n      throw new Error(`Metric '${operation}' should exist after creation`);\n    }\n    return metric;\n  }\n\n  getMetrics(operation?: string): PerformanceMetrics | Map<string, PerformanceMetrics> {\n    if (operation) {\n      return this.metrics.get(operation) || this.getOrCreateMetric(operation);\n    }\n    return new Map(this.metrics);\n  }\n\n  reset(operation?: string): void {\n    if (operation) {\n      this.metrics.delete(operation);\n    } else {\n      this.metrics.clear();\n    }\n  }\n\n  getReport(): string {\n    const report: string[] = ['Performance Report:', ''];\n    \n    for (const [operation, metrics] of this.metrics) {\n      report.push(`${operation}:`);\n      report.push(`  Total calls: ${metrics.totalCalls}`);\n      report.push(`  Total time: ${metrics.totalTime.toFixed(2)}ms`);\n      report.push(`  Average time: ${metrics.averageTime.toFixed(2)}ms`);\n      report.push(`  Min time: ${metrics.minTime.toFixed(2)}ms`);\n      report.push(`  Max time: ${metrics.maxTime.toFixed(2)}ms`);\n      report.push(`  Cache hits: ${metrics.cacheHits}`);\n      report.push(`  Cache misses: ${metrics.cacheMisses}`);\n      if (metrics.cacheHits + metrics.cacheMisses > 0) {\n        const hitRate = (metrics.cacheHits / (metrics.cacheHits + metrics.cacheMisses)) * 100;\n        report.push(`  Cache hit rate: ${hitRate.toFixed(1)}%`);\n      }\n      report.push('');\n    }\n    \n    return report.join('\\n');\n  }\n}\n\nexport const performanceMonitor = new PerformanceMonitor();","import { kindOfCore, getDetailedType } from '../core/kind-of';\n\nexport interface InspectOptions {\n  depth?: number;\n  colors?: boolean;\n  showHidden?: boolean;\n  showProxy?: boolean;\n  maxArrayLength?: number;\n  maxStringLength?: number;\n  breakLength?: number;\n  compact?: boolean;\n  sorted?: boolean;\n  getters?: boolean;\n}\n\nexport function inspect(value: unknown, options: InspectOptions = {}): string {\n  const opts = {\n    depth: 2,\n    colors: false,\n    showHidden: false,\n    showProxy: true,\n    maxArrayLength: 100,\n    maxStringLength: 200,\n    breakLength: 80,\n    compact: false,\n    sorted: false,\n    getters: false,\n    ...options,\n  };\n\n  return inspectValue(value, opts, 0, new Set());\n}\n\nfunction inspectValue(\n  value: unknown,\n  options: Required<InspectOptions>,\n  depth: number,\n  seen: Set<any>\n): string {\n  if (depth > options.depth) {\n    return '[Object]';\n  }\n\n  if (value === null) return 'null';\n  if (value === undefined) return 'undefined';\n\n  const type = kindOfCore(value);\n  \n  if (type === 'string') {\n    return inspectString(value as string, options);\n  }\n  \n  if (type === 'number' || type === 'boolean' || type === 'symbol' || type === 'bigint') {\n    return String(value);\n  }\n\n  if (typeof value === 'object' && value !== null) {\n    if (seen.has(value)) {\n      return '[Circular]';\n    }\n    seen.add(value);\n  }\n\n  try {\n    switch (type) {\n      case 'array':\n        return inspectArray(value as any[], options, depth, seen);\n      case 'object':\n        return inspectObject(value as Record<string, any>, options, depth, seen);\n      case 'function':\n        return inspectFunction(value as (...args: any[]) => any, options);\n      case 'date':\n        return inspectDate(value as Date, options);\n      case 'regexp':\n        return inspectRegExp(value as RegExp, options);\n      case 'error':\n        return inspectError(value as Error, options);\n      case 'map':\n        return inspectMap(value as Map<any, any>, options, depth, seen);\n      case 'set':\n        return inspectSet(value as Set<any>, options, depth, seen);\n      case 'promise':\n        return inspectPromise(value as Promise<any>, options);\n      default:\n        return inspectGeneric(value, type, options);\n    }\n  } finally {\n    if (typeof value === 'object' && value !== null) {\n      seen.delete(value);\n    }\n  }\n}\n\nfunction inspectString(str: string, options: Required<InspectOptions>): string {\n  if (str.length > options.maxStringLength) {\n    return `'${str.slice(0, options.maxStringLength)}...'`;\n  }\n  return `'${str}'`;\n}\n\nfunction inspectArray(arr: any[], options: Required<InspectOptions>, depth: number, seen: Set<any>): string {\n  if (arr.length === 0) return '[]';\n\n  const maxLength = Math.min(arr.length, options.maxArrayLength);\n  const items: string[] = [];\n\n  for (let i = 0; i < maxLength; i++) {\n    items.push(inspectValue(arr[i], options, depth + 1, seen));\n  }\n\n  if (arr.length > maxLength) {\n    items.push(`... ${arr.length - maxLength} more items`);\n  }\n\n  if (options.compact) {\n    return `[${items.join(', ')}]`;\n  }\n\n  const joined = items.join(', ');\n  if (joined.length <= options.breakLength) {\n    return `[${joined}]`;\n  }\n\n  return `[\\n${items.map(item => `  ${item}`).join(',\\n')}\\n]`;\n}\n\nfunction inspectObject(obj: Record<string, any>, options: Required<InspectOptions>, depth: number, seen: Set<any>): string {\n  const keys = options.showHidden ? \n    Object.getOwnPropertyNames(obj) : \n    Object.keys(obj);\n\n  if (keys.length === 0) return '{}';\n\n  if (options.sorted) {\n    keys.sort();\n  }\n\n  const items: string[] = [];\n  for (const key of keys) {\n    try {\n      const value = obj[key];\n      const inspected = inspectValue(value, options, depth + 1, seen);\n      items.push(`${key}: ${inspected}`);\n    } catch (error) {\n      items.push(`${key}: [Error: ${(error as Error).message}]`);\n    }\n  }\n\n  if (options.compact) {\n    return `{${items.join(', ')}}`;\n  }\n\n  const joined = items.join(', ');\n  if (joined.length <= options.breakLength) {\n    return `{${joined}}`;\n  }\n\n  return `{\\n${items.map(item => `  ${item}`).join(',\\n')}\\n}`;\n}\n\nfunction inspectFunction(fn: (...args: any[]) => any, _options: Required<InspectOptions>): string {\n  const name = fn.name || 'anonymous';\n  const type = getDetailedType(fn);\n  \n  if (type.type === 'asyncfunction') {\n    return `[AsyncFunction: ${name}]`;\n  } else if (type.type === 'generatorfunction') {\n    return `[GeneratorFunction: ${name}]`;\n  } else if (type.type === 'asyncgeneratorfunction') {\n    return `[AsyncGeneratorFunction: ${name}]`;\n  }\n  \n  return `[Function: ${name}]`;\n}\n\nfunction inspectDate(date: Date, _options: Required<InspectOptions>): string {\n  return `${date.toISOString()}`;\n}\n\nfunction inspectRegExp(regex: RegExp, _options: Required<InspectOptions>): string {\n  return regex.toString();\n}\n\nfunction inspectError(error: Error, _options: Required<InspectOptions>): string {\n  return `${error.name}: ${error.message}`;\n}\n\nfunction inspectMap(map: Map<any, any>, options: Required<InspectOptions>, depth: number, seen: Set<any>): string {\n  if (map.size === 0) return 'Map(0) {}';\n\n  const items: string[] = [];\n  let count = 0;\n  \n  for (const [key, value] of map) {\n    if (count >= options.maxArrayLength) {\n      items.push(`... ${map.size - count} more items`);\n      break;\n    }\n    \n    const keyStr = inspectValue(key, options, depth + 1, seen);\n    const valueStr = inspectValue(value, options, depth + 1, seen);\n    items.push(`${keyStr} => ${valueStr}`);\n    count++;\n  }\n\n  return `Map(${map.size}) {${items.join(', ')}}`;\n}\n\nfunction inspectSet(set: Set<any>, options: Required<InspectOptions>, depth: number, seen: Set<any>): string {\n  if (set.size === 0) return 'Set(0) {}';\n\n  const items: string[] = [];\n  let count = 0;\n  \n  for (const value of set) {\n    if (count >= options.maxArrayLength) {\n      items.push(`... ${set.size - count} more items`);\n      break;\n    }\n    \n    items.push(inspectValue(value, options, depth + 1, seen));\n    count++;\n  }\n\n  return `Set(${set.size}) {${items.join(', ')}}`;\n}\n\nfunction inspectPromise(_promise: Promise<any>, _options: Required<InspectOptions>): string {\n  return 'Promise { <pending> }';\n}\n\nfunction inspectGeneric(value: any, type: string, _options: Required<InspectOptions>): string {\n  if (value && typeof value === 'object' && value.constructor) {\n    return `${value.constructor.name} {}`;\n  }\n  return `[${type}]`;\n}\n\nexport function inspectType(value: unknown): string {\n  const detailed = getDetailedType(value);\n  const parts: string[] = [];\n  \n  parts.push(`Type: ${detailed.type}`);\n  \n  if (detailed.constructor) {\n    parts.push(`Constructor: ${detailed.constructor}`);\n  }\n  \n  if (detailed.customType) {\n    parts.push(`Custom Type: ${detailed.customType}`);\n  }\n  \n  const flags: string[] = [];\n  if (detailed.isPrimitive) flags.push('primitive');\n  if (detailed.isBuiltIn) flags.push('built-in');\n  if (detailed.isNullish) flags.push('nullish');\n  if (detailed.isIterable) flags.push('iterable');\n  if (detailed.isAsync) flags.push('async');\n  \n  if (flags.length > 0) {\n    parts.push(`Flags: ${flags.join(', ')}`);\n  }\n  \n  if (detailed.metadata) {\n    const metadata = Object.entries(detailed.metadata)\n      .map(([key, value]) => `${key}: ${value}`)\n      .join(', ');\n    parts.push(`Metadata: {${metadata}}`);\n  }\n  \n  return parts.join('\\n');\n}","import { kindOfCore } from '../core/kind-of';\n\nexport function isValidType(type: string): boolean {\n  const validTypes = new Set([\n    'undefined', 'null', 'boolean', 'number', 'string', 'symbol', 'bigint',\n    'object', 'array', 'function', 'date', 'regexp', 'error',\n    'map', 'set', 'weakmap', 'weakset',\n    'int8array', 'uint8array', 'uint8clampedarray', 'int16array', 'uint16array',\n    'int32array', 'uint32array', 'float32array', 'float64array',\n    'bigint64array', 'biguint64array',\n    'promise', 'generatorfunction', 'asyncfunction', 'asyncgeneratorfunction',\n    'proxy', 'dataview', 'arraybuffer', 'sharedarraybuffer',\n    'arguments', 'buffer', 'stream', 'eventemitter',\n    'element', 'node', 'window', 'document', 'global'\n  ]);\n  \n  return validTypes.has(type);\n}\n\nexport function getTypeCategory(type: string): string {\n  if (['undefined', 'null', 'boolean', 'number', 'string', 'symbol', 'bigint'].includes(type)) {\n    return 'primitive';\n  }\n  \n  if (['object', 'array', 'function', 'date', 'regexp', 'error'].includes(type)) {\n    return 'object';\n  }\n  \n  if (['map', 'set', 'weakmap', 'weakset'].includes(type)) {\n    return 'collection';\n  }\n  \n  if (type.includes('array') && type !== 'array') {\n    return 'typedarray';\n  }\n  \n  if (['promise', 'generatorfunction', 'asyncfunction', 'asyncgeneratorfunction'].includes(type)) {\n    return 'modern';\n  }\n  \n  if (['buffer', 'stream', 'eventemitter'].includes(type)) {\n    return 'node';\n  }\n  \n  if (['element', 'node', 'window', 'document'].includes(type)) {\n    return 'dom';\n  }\n  \n  return 'special';\n}\n\nexport function compareTypes(a: unknown, b: unknown): boolean {\n  return kindOfCore(a) === kindOfCore(b);\n}\n\nexport function isTypeOfAny(value: unknown, types: string[]): boolean {\n  const type = kindOfCore(value);\n  return types.includes(type);\n}\n\nexport function isTypeOfAll(values: unknown[], expectedType: string): boolean {\n  return values.every(value => kindOfCore(value) === expectedType);\n}\n\nexport function groupByType(values: unknown[]): Map<string, unknown[]> {\n  const groups = new Map<string, unknown[]>();\n  \n  for (const value of values) {\n    const type = kindOfCore(value);\n    if (!groups.has(type)) {\n      groups.set(type, []);\n    }\n    const group = groups.get(type);\n    if (group) {\n      group.push(value);\n    }\n  }\n  \n  return groups;\n}\n\nexport function getTypeStats(values: unknown[]): Record<string, number> {\n  const stats: Record<string, number> = {};\n  \n  for (const value of values) {\n    const type = kindOfCore(value);\n    stats[type] = (stats[type] || 0) + 1;\n  }\n  \n  return stats;\n}\n\nexport function filterByType<T>(values: unknown[], type: string): T[] {\n  return values.filter(value => kindOfCore(value) === type) as T[];\n}\n\nexport function findByType(values: unknown[], type: string): unknown {\n  return values.find(value => kindOfCore(value) === type);\n}\n\nexport function someOfType(values: unknown[], type: string): boolean {\n  return values.some(value => kindOfCore(value) === type);\n}\n\nexport function everyOfType(values: unknown[], type: string): boolean {\n  return values.every(value => kindOfCore(value) === type);\n}\n\nexport function noneOfType(values: unknown[], type: string): boolean {\n  return !values.some(value => kindOfCore(value) === type);\n}\n\nexport function countByType(values: unknown[], type: string): number {\n  return values.filter(value => kindOfCore(value) === type).length;\n}\n\nexport function getUniqueTypes(values: unknown[]): string[] {\n  const types = new Set<string>();\n  for (const value of values) {\n    types.add(kindOfCore(value));\n  }\n  return Array.from(types);\n}\n\nexport function createTypeMap(values: unknown[]): Map<string, unknown[]> {\n  return groupByType(values);\n}\n\nexport function getMostCommonType(values: unknown[]): string | null {\n  if (values.length === 0) return null;\n  \n  const stats = getTypeStats(values);\n  let maxCount = 0;\n  let mostCommon: string | null = null;\n  \n  for (const [type, count] of Object.entries(stats)) {\n    if (count > maxCount) {\n      maxCount = count;\n      mostCommon = type;\n    }\n  }\n  \n  return mostCommon;\n}\n\nexport function getLeastCommonType(values: unknown[]): string | null {\n  if (values.length === 0) return null;\n  \n  const stats = getTypeStats(values);\n  let minCount = Infinity;\n  let leastCommon: string | null = null;\n  \n  for (const [type, count] of Object.entries(stats)) {\n    if (count < minCount) {\n      minCount = count;\n      leastCommon = type;\n    }\n  }\n  \n  return leastCommon;\n}\n\nexport function isHomogeneous(values: unknown[]): boolean {\n  if (values.length === 0) return true;\n  \n  const firstType = kindOfCore(values[0]);\n  return values.every(value => kindOfCore(value) === firstType);\n}\n\nexport function isHeterogeneous(values: unknown[]): boolean {\n  return !isHomogeneous(values);\n}\n\nexport function partition(values: unknown[], predicate: (value: unknown) => boolean): [unknown[], unknown[]] {\n  const truthy: unknown[] = [];\n  const falsy: unknown[] = [];\n  \n  for (const value of values) {\n    if (predicate(value)) {\n      truthy.push(value);\n    } else {\n      falsy.push(value);\n    }\n  }\n  \n  return [truthy, falsy];\n}\n\nexport function partitionByType(values: unknown[], type: string): [unknown[], unknown[]] {\n  return partition(values, value => kindOfCore(value) === type);\n}","import { kindOfCore } from '../core/kind-of';\nimport type { TypePlugin, TypeChecker, KindOfInstance, PluginOptions } from './types';\n\nclass KindOfExtended {\n  private plugins: Map<string, TypePlugin> = new Map();\n  private customTypes: Map<string, TypeChecker> = new Map();\n  private typeOrder: string[] = [];\n\n  constructor() {\n    // Bind the function to maintain proper context\n    const boundFunction = this.detect.bind(this);\n    Object.setPrototypeOf(boundFunction, KindOfExtended.prototype);\n    Object.assign(boundFunction, this);\n    return boundFunction as any;\n  }\n\n  detect(value: unknown): string {\n    // Check custom types first (in reverse order for priority)\n    for (let i = this.typeOrder.length - 1; i >= 0; i--) {\n      const typeName = this.typeOrder[i];\n      if (!typeName) continue;\n      const checker = this.customTypes.get(typeName);\n      if (checker && checker(value)) {\n        return typeName;\n      }\n    }\n\n    // Fall back to core detection\n    return kindOfCore(value);\n  }\n\n  use(plugin: TypePlugin, options: PluginOptions = {}): this {\n    if (this.plugins.has(plugin.name)) {\n      throw new Error(`Plugin \"${plugin.name}\" is already registered`);\n    }\n\n    this.plugins.set(plugin.name, plugin);\n\n    // Register all types from the plugin\n    const prefix = options.prefix || '';\n    for (const [typeName, checker] of Object.entries(plugin.types)) {\n      const fullTypeName = prefix + typeName;\n      if (this.customTypes.has(fullTypeName) && !options.override) {\n        throw new Error(`Type \"${fullTypeName}\" is already defined`);\n      }\n      this.customTypes.set(fullTypeName, checker);\n      this.typeOrder.push(fullTypeName);\n    }\n\n    // Call setup if provided\n    if (plugin.setup) {\n      plugin.setup(this as any);\n    }\n\n    return this;\n  }\n\n  unuse(pluginName: string): this {\n    const plugin = this.plugins.get(pluginName);\n    if (!plugin) {\n      throw new Error(`Plugin \"${pluginName}\" is not registered`);\n    }\n\n    // Call teardown if provided\n    if (plugin.teardown) {\n      plugin.teardown();\n    }\n\n    // Remove all types from the plugin\n    for (const typeName of Object.keys(plugin.types)) {\n      this.customTypes.delete(typeName);\n      const index = this.typeOrder.indexOf(typeName);\n      if (index !== -1) {\n        this.typeOrder.splice(index, 1);\n      }\n    }\n\n    this.plugins.delete(pluginName);\n    return this;\n  }\n\n  defineType(name: string, checker: TypeChecker): this {\n    if (this.customTypes.has(name)) {\n      throw new Error(`Type \"${name}\" is already defined`);\n    }\n    this.customTypes.set(name, checker);\n    this.typeOrder.push(name);\n    return this;\n  }\n\n  removeType(name: string): this {\n    if (!this.customTypes.has(name)) {\n      throw new Error(`Type \"${name}\" is not defined`);\n    }\n    this.customTypes.delete(name);\n    const index = this.typeOrder.indexOf(name);\n    if (index !== -1) {\n      this.typeOrder.splice(index, 1);\n    }\n    return this;\n  }\n\n  getCustomTypes(): Record<string, TypeChecker> {\n    return Object.fromEntries(this.customTypes);\n  }\n\n  hasType(name: string): boolean {\n    return this.customTypes.has(name);\n  }\n}\n\nexport function createKindOfInstance(): KindOfInstance {\n  return new KindOfExtended() as any;\n}\n\nexport function createPlugin(config: TypePlugin): TypePlugin {\n  const plugin: TypePlugin = {\n    name: config.name,\n    version: config.version,\n    types: config.types,\n  };\n  \n  if (config.setup) {\n    plugin.setup = config.setup;\n  }\n  \n  if (config.teardown) {\n    plugin.teardown = config.teardown;\n  }\n  \n  return plugin;\n}","import { createPlugin } from '../plugin-system';\nimport type { TypeChecker } from '../types';\n\n// React type checkers\nconst isReactElement: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    'props' in value;\n};\n\nconst isReactComponent: TypeChecker = (value: unknown): boolean => {\n  if (typeof value !== 'function') return false;\n  \n  // Check for React component patterns\n  const fn = value;\n  const prototype = fn.prototype;\n  \n  // Class component check\n  if (prototype && prototype.isReactComponent) {\n    return true;\n  }\n  \n  // Function component check (heuristic)\n  if (fn.name && /^[A-Z]/.test(fn.name)) {\n    return true;\n  }\n  \n  return false;\n};\n\nconst isReactMemo: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.memo)';\n};\n\nconst isReactForwardRef: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'render' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.forward_ref)';\n};\n\nconst isReactLazy: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    '_payload' in value &&\n    '_init' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.lazy)';\n};\n\nconst isReactContext: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    '_currentValue' in value &&\n    'Provider' in value &&\n    'Consumer' in value;\n};\n\nconst isReactProvider: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    '_context' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.provider)';\n};\n\nconst isReactConsumer: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    '_context' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.consumer)';\n};\n\nconst isReactFragment: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    (value as any).type?.toString?.() === 'Symbol(react.fragment)';\n};\n\nconst isReactPortal: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'children' in value &&\n    'containerInfo' in value &&\n    (value as any).$$typeof?.toString?.() === 'Symbol(react.portal)';\n};\n\nconst isReactSuspense: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    (value as any).type?.toString?.() === 'Symbol(react.suspense)';\n};\n\nconst isReactProfiler: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    (value as any).type?.toString?.() === 'Symbol(react.profiler)';\n};\n\nconst isReactStrictMode: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    '$$typeof' in value &&\n    'type' in value &&\n    (value as any).type?.toString?.() === 'Symbol(react.strict_mode)';\n};\n\nexport const reactPlugin = createPlugin({\n  name: 'react',\n  version: '1.0.0',\n  types: {\n    'react.element': isReactElement,\n    'react.component': isReactComponent,\n    'react.memo': isReactMemo,\n    'react.forwardref': isReactForwardRef,\n    'react.lazy': isReactLazy,\n    'react.context': isReactContext,\n    'react.provider': isReactProvider,\n    'react.consumer': isReactConsumer,\n    'react.fragment': isReactFragment,\n    'react.portal': isReactPortal,\n    'react.suspense': isReactSuspense,\n    'react.profiler': isReactProfiler,\n    'react.strictmode': isReactStrictMode,\n  },\n});","import { createPlugin } from '../plugin-system';\nimport type { TypeChecker } from '../types';\n\n// Node.js specific type checkers\nconst isReadableStream: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'readable' in value &&\n    'read' in value &&\n    typeof (value as any).read === 'function' &&\n    '_readableState' in value;\n};\n\nconst isWritableStream: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'writable' in value &&\n    'write' in value &&\n    typeof (value as any).write === 'function' &&\n    '_writableState' in value;\n};\n\nconst isDuplexStream: TypeChecker = (value: unknown): boolean => {\n  return isReadableStream(value) && isWritableStream(value);\n};\n\nconst isTransformStream: TypeChecker = (value: unknown): boolean => {\n  return isDuplexStream(value) &&\n    value !== null &&\n    typeof value === 'object' &&\n    '_transform' in value &&\n    typeof (value as any)._transform === 'function';\n};\n\nconst isServer: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'listen' in value &&\n    'close' in value &&\n    'address' in value &&\n    typeof (value as any).listen === 'function';\n};\n\nconst isIncomingMessage: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'headers' in value &&\n    'method' in value &&\n    'url' in value &&\n    isReadableStream(value);\n};\n\nconst isServerResponse: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'statusCode' in value &&\n    'setHeader' in value &&\n    'writeHead' in value &&\n    isWritableStream(value);\n};\n\nconst isChildProcess: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'pid' in value &&\n    'kill' in value &&\n    'stdin' in value &&\n    'stdout' in value &&\n    'stderr' in value &&\n    typeof (value as any).kill === 'function';\n};\n\nconst isWorker: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'threadId' in value &&\n    'postMessage' in value &&\n    'terminate' in value &&\n    typeof (value as any).postMessage === 'function';\n};\n\nconst isMessagePort: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'postMessage' in value &&\n    'start' in value &&\n    'close' in value &&\n    typeof (value as any).postMessage === 'function';\n};\n\nconst isURL: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'href' in value &&\n    'protocol' in value &&\n    'hostname' in value &&\n    'pathname' in value &&\n    'search' in value &&\n    'hash' in value &&\n    value.constructor?.name === 'URL';\n};\n\nconst isURLSearchParams: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'append' in value &&\n    'get' in value &&\n    'set' in value &&\n    'delete' in value &&\n    typeof (value as any).append === 'function' &&\n    value.constructor?.name === 'URLSearchParams';\n};\n\nconst isTextEncoder: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'encode' in value &&\n    typeof (value as any).encode === 'function' &&\n    value.constructor?.name === 'TextEncoder';\n};\n\nconst isTextDecoder: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'decode' in value &&\n    typeof (value as any).decode === 'function' &&\n    value.constructor?.name === 'TextDecoder';\n};\n\nconst isAbortController: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'signal' in value &&\n    'abort' in value &&\n    typeof (value as any).abort === 'function' &&\n    value.constructor?.name === 'AbortController';\n};\n\nconst isAbortSignal: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'aborted' in value &&\n    typeof (value as any).aborted === 'boolean' &&\n    value.constructor?.name === 'AbortSignal';\n};\n\nconst isPerformanceObserver: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'observe' in value &&\n    'disconnect' in value &&\n    typeof (value as any).observe === 'function' &&\n    value.constructor?.name === 'PerformanceObserver';\n};\n\nconst isPerformanceEntry: TypeChecker = (value: unknown): boolean => {\n  return value !== null &&\n    typeof value === 'object' &&\n    'name' in value &&\n    'entryType' in value &&\n    'startTime' in value &&\n    'duration' in value &&\n    value.constructor?.name?.includes('Performance');\n};\n\nexport const nodePlugin = createPlugin({\n  name: 'node',\n  version: '1.0.0',\n  types: {\n    'node.readablestream': isReadableStream,\n    'node.writablestream': isWritableStream,\n    'node.duplexstream': isDuplexStream,\n    'node.transformstream': isTransformStream,\n    'node.server': isServer,\n    'node.incomingmessage': isIncomingMessage,\n    'node.serverresponse': isServerResponse,\n    'node.childprocess': isChildProcess,\n    'node.worker': isWorker,\n    'node.messageport': isMessagePort,\n    'node.url': isURL,\n    'node.urlsearchparams': isURLSearchParams,\n    'node.textencoder': isTextEncoder,\n    'node.textdecoder': isTextDecoder,\n    'node.abortcontroller': isAbortController,\n    'node.abortsignal': isAbortSignal,\n    'node.performanceobserver': isPerformanceObserver,\n    'node.performanceentry': isPerformanceEntry,\n  },\n});","import { kindOfCore, fastKindOf, kindOfMany, getDetailedType, enableCache, disableCache, clearCache } from './core/kind-of';\nimport type { TypeString } from './types';\nimport { isType, assertType, ensureType } from './guards';\n\n// Main function with overloads\nexport function kindOf(value: unknown): string;\nexport function kindOf<T>(value: T): TypeString<T>;\nexport function kindOf(value: unknown): string {\n  return kindOfCore(value);\n}\n\n// Re-export all functions\nexport { \n  fastKindOf, \n  kindOfMany, \n  getDetailedType,\n  isType,\n  assertType,\n  ensureType,\n  enableCache,\n  disableCache,\n  clearCache\n};\n\n// Re-export all guards\nexport * from './guards';\n\n// Re-export validators\nexport * from './validators';\n\n// Re-export converters\nexport * from './converters';\n\n// Re-export utils\nexport * from './utils';\n\n// Re-export plugins\nexport * from './plugins';\n\n// Re-export types\nexport type { DetailedType } from './core/kind-of';\nexport type * from './types';\nexport type * from './types/schema';\n\n// Default export\nexport default kindOf;\n\n// Named exports for convenience\nexport const typeOf = kindOf;\nexport const getType = kindOf;"],"names":["toString","isStream","isEventEmitter","isGlobal","isThenable","isProxy","isNaN","toNumber","toBoolean","toBigInt","toSymbol","value"],"mappings":"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"}