{"version":3,"file":"index.cjs","names":["fetchSafe","LIB_PREFIX"],"sources":["../../src/fetchers/index.ts"],"sourcesContent":["import { LIB_PREFIX } from '../vars';\nimport { fetchSafe } from './fetch.polyfill';\n\ninterface BrowserProfile {\n  'User-Agent': string;\n  'Sec-Ch-Ua': string;\n  'Sec-Ch-Ua-Platform': string;\n}\n\nconst browserProfiles: BrowserProfile[] = [\n  // Chrome 131 / Windows\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',\n    'Sec-Ch-Ua': '\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"Windows\"'\n  },\n  // Chrome 130 / Windows\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',\n    'Sec-Ch-Ua': '\"Google Chrome\";v=\"130\", \"Chromium\";v=\"130\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"Windows\"'\n  },\n  // Chrome 131 / macOS\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',\n    'Sec-Ch-Ua': '\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"macOS\"'\n  },\n  // Chrome 130 / macOS\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',\n    'Sec-Ch-Ua': '\"Google Chrome\";v=\"130\", \"Chromium\";v=\"130\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"macOS\"'\n  },\n  // Edge 131 / Windows\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0',\n    'Sec-Ch-Ua': '\"Microsoft Edge\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"Windows\"'\n  },\n  // Edge 130 / Windows\n  {\n    'User-Agent':\n      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0',\n    'Sec-Ch-Ua': '\"Microsoft Edge\";v=\"130\", \"Chromium\";v=\"130\", \"Not_A Brand\";v=\"24\"',\n    'Sec-Ch-Ua-Platform': '\"Windows\"'\n  }\n];\n\nconst randomProfile = (): BrowserProfile =>\n  browserProfiles[Math.floor(Math.random() * browserProfiles.length)];\n\nconst baseHeaders = {\n  Accept:\n    'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',\n  'Accept-Language': 'cs-CZ,cs;q=0.9,en-US;q=0.8,en;q=0.7',\n  'Accept-Encoding': 'gzip, deflate, br',\n  'Cache-Control': 'max-age=0',\n  Connection: 'keep-alive',\n  'Sec-Ch-Ua-Mobile': '?0',\n  'Sec-Fetch-Dest': 'document',\n  'Sec-Fetch-Mode': 'navigate',\n  'Sec-Fetch-Site': 'none',\n  'Sec-Fetch-User': '?1',\n  'Upgrade-Insecure-Requests': '1'\n};\n\nexport const fetchPage = async (url: string, optionsRequest?: RequestInit): Promise<string> => {\n  try {\n    const mergedHeaders = new Headers({ ...baseHeaders, ...randomProfile() });\n\n    // Merge any custom headers provided in the function arguments\n    if (optionsRequest?.headers) {\n      const reqHeaders = new Headers(optionsRequest.headers);\n      reqHeaders.forEach((value, key) => mergedHeaders.set(key, value));\n    }\n\n    const { headers: _, ...restOptions } = optionsRequest || {};\n\n    const response = await fetchSafe(url, {\n      credentials: 'omit',\n      ...restOptions,\n      headers: mergedHeaders\n    });\n\n    if (!response.ok) {\n      throw new Error(`node-csfd-api: Bad response ${response.status} for url: ${url}`);\n    }\n\n    const html = await response.text();\n\n    // Quickly check if we hit the trap\n    if (html.includes(\"Making sure you're not a bot!\")) {\n      console.warn('[node-csfd-api] Trap detected. You may be rate-limited or blocked by ČSFD.');\n    }\n\n    return html;\n  } catch (e: unknown) {\n    if (e instanceof Error) {\n      console.error(LIB_PREFIX, e.message);\n    } else {\n      console.error(LIB_PREFIX, String(e));\n    }\n    return 'Error';\n  }\n};\n"],"mappings":";;;AASA,MAAM,kBAAoC;CAExC;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;CAEA;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;CAEA;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;CAEA;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;CAEA;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;CAEA;EACE,cACE;EACF,aAAa;EACb,sBAAsB;CACxB;AACF;AAEA,MAAM,sBACJ,gBAAgB,KAAK,MAAM,KAAK,OAAO,IAAI,gBAAgB,MAAM;AAEnE,MAAM,cAAc;CAClB,QACE;CACF,mBAAmB;CACnB,mBAAmB;CACnB,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,kBAAkB;CAClB,6BAA6B;AAC/B;AAEA,MAAa,YAAY,OAAO,KAAa,mBAAkD;CAC7F,IAAI;EACF,MAAM,gBAAgB,IAAI,QAAQ;GAAE,GAAG;GAAa,GAAG,cAAc;EAAE,CAAC;EAGxE,IAAI,gBAAgB,SAElB,IADuB,QAAQ,eAAe,OACrC,CAAC,CAAC,SAAS,OAAO,QAAQ,cAAc,IAAI,KAAK,KAAK,CAAC;EAGlE,MAAM,EAAE,SAAS,GAAG,GAAG,gBAAgB,kBAAkB,CAAC;EAE1D,MAAM,WAAW,MAAMA,uBAAAA,UAAU,KAAK;GACpC,aAAa;GACb,GAAG;GACH,SAAS;EACX,CAAC;EAED,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,+BAA+B,SAAS,OAAO,YAAY,KAAK;EAGlF,MAAM,OAAO,MAAM,SAAS,KAAK;EAGjC,IAAI,KAAK,SAAS,+BAA+B,GAC/C,QAAQ,KAAK,4EAA4E;EAG3F,OAAO;CACT,SAAS,GAAY;EACnB,IAAI,aAAa,OACf,QAAQ,MAAMC,aAAAA,YAAY,EAAE,OAAO;OAEnC,QAAQ,MAAMA,aAAAA,YAAY,OAAO,CAAC,CAAC;EAErC,OAAO;CACT;AACF"}