{
  "version": 3,
  "sources": ["../src/main.ts"],
  "sourcesContent": ["/**\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): value is number {\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): value is number {\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": ";;qqBAAA,qKAOO,SAAS,eAAe,MAAiC,CAE9D,GAAI,OAAO,OAAO,WAAa,WAAY,CACzC,OAAO,OAAO,SAAS,KAAK,CAC9B,CAEA,OAAO,OAAO,QAAU,UAAY,SAAS,KAAK,CACpD,CA0BO,SAAS,SAAS,MAAiC,CAExD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,CAC3B,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,MAAO,OAG3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,CAC3B,CAEA,MAAO,MACT,CA0BO,SAAS,SAAS,MAA+B,CAEtD,GAAI,OAAO,QAAU,SAAU,CAC7B,OAAO,MAAQ,QAAU,EAAI,MAAQ,IACvC,CAGA,GAAI,OAAO,QAAU,SAAU,CAC7B,MAAM,QAAU,MAAM,KAAK,EAC3B,GAAI,UAAY,GAAI,OAAO,KAE3B,MAAM,IAAM,CAAC,QACb,OAAO,eAAe,GAAG,EAAI,IAAM,IACrC,CAEA,OAAO,IACT",
  "names": []
}
