{"version":3,"file":"urlPolyfill.mjs","names":[],"sources":["../../../src/tools/utils/urlPolyfill.ts"],"sourcesContent":["import type { GlobalObject } from '../globalObject'\nimport { globalObject } from '../globalObject'\n\nexport function normalizeUrl(url: string) {\n  return buildUrl(url, globalObject.location?.href).href\n}\n\nexport function isValidUrl(url: string) {\n  try {\n    return !!buildUrl(url)\n  } catch {\n    return false\n  }\n}\n\nexport function getPathName(url: string) {\n  const pathname = buildUrl(url).pathname\n  return pathname[0] === '/' ? pathname : `/${pathname}`\n}\n\nexport function buildUrl(url: string, base?: string) {\n  const { URL } = getPristineWindow()\n\n  try {\n    return base !== undefined ? new URL(url, base) : new URL(url)\n  } catch (error) {\n    throw new Error(`Failed to construct URL: ${String(error)}`)\n  }\n}\n\n/**\n * Get native URL constructor from a clean iframe\n * This avoids polyfill issues by getting the native implementation from a fresh iframe context\n * Falls back to the original URL constructor if iframe approach fails\n */\nlet getPristineGlobalObjectCache: Pick<typeof window, 'URL'> | undefined\n\nexport function getPristineWindow() {\n  if (!getPristineGlobalObjectCache) {\n    let iframe: HTMLIFrameElement | undefined\n    let pristineWindow: GlobalObject\n    try {\n      iframe = document.createElement('iframe')\n      iframe.style.display = 'none'\n      document.body.appendChild(iframe)\n      pristineWindow = (iframe.contentWindow as GlobalObject | null) ?? globalObject\n    } catch {\n      pristineWindow = globalObject\n    }\n    getPristineGlobalObjectCache = {\n      URL: pristineWindow.URL,\n    }\n    iframe?.remove()\n  }\n\n  return getPristineGlobalObjectCache\n}\n"],"mappings":";;AAGA,SAAgB,aAAa,KAAa;CACxC,OAAO,SAAS,KAAK,aAAa,UAAU,IAAI,CAAC,CAAC;AACpD;AAEA,SAAgB,WAAW,KAAa;CACtC,IAAI;EACF,OAAO,CAAC,CAAC,SAAS,GAAG;CACvB,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,YAAY,KAAa;CACvC,MAAM,WAAW,SAAS,GAAG,CAAC,CAAC;CAC/B,OAAO,SAAS,OAAO,MAAM,WAAW,IAAI;AAC9C;AAEA,SAAgB,SAAS,KAAa,MAAe;CACnD,MAAM,EAAE,QAAQ,kBAAkB;CAElC,IAAI;EACF,OAAO,SAAS,KAAA,IAAY,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG;CAC9D,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,4BAA4B,OAAO,KAAK,GAAG;CAC7D;AACF;;;;;;AAOA,IAAI;AAEJ,SAAgB,oBAAoB;CAClC,IAAI,CAAC,8BAA8B;EACjC,IAAI;EACJ,IAAI;EACJ,IAAI;GACF,SAAS,SAAS,cAAc,QAAQ;GACxC,OAAO,MAAM,UAAU;GACvB,SAAS,KAAK,YAAY,MAAM;GAChC,iBAAkB,OAAO,iBAAyC;EACpE,QAAQ;GACN,iBAAiB;EACnB;EACA,+BAA+B,EAC7B,KAAK,eAAe,IACtB;EACA,QAAQ,OAAO;CACjB;CAEA,OAAO;AACT"}