{
  "version": 3,
  "sources": ["../src/main.ts"],
  "sourcesContent": ["import {packageTracer} from '@alwatr/package-tracer';\n\n__dev_mode__: packageTracer.add(__package_name__, __package_version__);\n\n/**\n * Polyfill for Number.isFinite - properly checks if a value is a finite number\n * without type coercion.\n *\n * @param value - The value to check\n * @returns true if the value is a finite number, false otherwise\n */\nexport function isFiniteNumber(value: unknown): boolean {\n  // Use native implementation if available\n  if (typeof Number.isFinite === 'function') {\n    return Number.isFinite(value);\n  }\n  // Fallback implementation\n  return typeof value === 'number' && isFinite(value);\n}\n\n/**\n * Check if the value is a number or can be converted to a number.\n *\n * @param value - The value to check.\n * @returns `true` if the value is a number or can be converted to a number, otherwise `false`.\n *\n * @example\n * ```ts\n * isNumber(123);        // true\n * isNumber('123');      // true\n * isNumber(' 123 ');    // true\n * isNumber('0xff');     // true\n * isNumber('-1.1');     // true\n * isNumber('');         // false\n * isNumber('  ');       // false\n * isNumber(' 123a ');   // false\n * isNumber(NaN);        // false\n * isNumber(Infinity);   // false\n * isNumber({});         // false\n * isNumber([]);         // false\n * isNumber(null);       // false\n * isNumber(undefined);  // false\n * ```\n */\nexport function isNumber(value: unknown): boolean {\n  // Handle number type\n  if (typeof value === 'number') {\n    return value - value === 0;\n  }\n\n  // Handle string type\n  if (typeof value === 'string') {\n    const trimmed = value.trim();\n    if (trimmed === '') return false;\n\n    // Use unary plus for fastest string-to-number conversion\n    const num = +trimmed;\n    return isFiniteNumber(num);\n  }\n\n  return false;\n}\n\n/**\n * Convert a value to a number if possible.\n *\n * @param value - The value to convert.\n * @returns The converted number if valid, otherwise `null`.\n *\n * @example\n * ```ts\n * toNumber(123);        // 123\n * toNumber('123');      // 123\n * toNumber(' 123 ');    // 123\n * toNumber('0xff');     // 255\n * toNumber('-1.1');     // -1.1\n * toNumber('');         // null\n * toNumber('  ');       // null\n * toNumber('123a');     // null\n * toNumber(NaN);        // null\n * toNumber(Infinity);   // null\n * toNumber({});         // null\n * toNumber([]);         // null\n * toNumber(null);       // null\n * toNumber(undefined);  // null\n * ```\n */\nexport function toNumber(value: unknown): number | null {\n  // Handle number type\n  if (typeof value === 'number') {\n    return value - value === 0 ? value : null;\n  }\n\n  // Handle string type\n  if (typeof value === 'string') {\n    const trimmed = value.trim();\n    if (trimmed === '') return null;\n\n    const num = +trimmed;\n    return isFiniteNumber(num) ? num : null;\n  }\n\n  return null;\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA4B;AAE5B,aAAc,qCAAc,IAAI,qBAAkB,OAAmB;AAS9D,SAAS,eAAe,OAAyB;AAEtD,MAAI,OAAO,OAAO,aAAa,YAAY;AACzC,WAAO,OAAO,SAAS,KAAK;AAAA,EAC9B;AAEA,SAAO,OAAO,UAAU,YAAY,SAAS,KAAK;AACpD;AA0BO,SAAS,SAAS,OAAyB;AAEhD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,QAAQ,UAAU;AAAA,EAC3B;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,YAAY,GAAI,QAAO;AAG3B,UAAM,MAAM,CAAC;AACb,WAAO,eAAe,GAAG;AAAA,EAC3B;AAEA,SAAO;AACT;AA0BO,SAAS,SAAS,OAA+B;AAEtD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,QAAQ,UAAU,IAAI,QAAQ;AAAA,EACvC;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAK;AAC3B,QAAI,YAAY,GAAI,QAAO;AAE3B,UAAM,MAAM,CAAC;AACb,WAAO,eAAe,GAAG,IAAI,MAAM;AAAA,EACrC;AAEA,SAAO;AACT;",
  "names": []
}
