{"version":3,"file":"utils.mjs","sources":["webpack://@agent-infra/browser-use/./src/utils.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport fs from 'fs';\nimport path from 'path';\n\nexport function sleep(seconds: number) {\n  return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n}\n\nexport function createLogger(name: string) {\n  const prefix = `[${name}]`;\n  return {\n    info: (...args: any[]) => console.log(prefix, ...args),\n    error: (...args: any[]) => console.error(prefix, ...args),\n    warning: (...args: any[]) => console.warn(prefix, ...args),\n    debug: (...args: any[]) => console.debug(prefix, ...args),\n  };\n}\n\n/**\n * Checks if an error is related to API authentication\n *\n * @param error - The error to check\n * @returns boolean indicating if it's an authentication error\n */\nexport function isAuthenticationError(error: unknown): boolean {\n  if (!(error instanceof Error)) return false;\n\n  // Get the error message\n  const errorMessage = error.message || '';\n\n  // Get error name - sometimes error.name just returns \"Error\" for custom errors\n  let errorName = error.name || '';\n\n  // Try to extract the constructor name, which often contains the actual error type\n  // This works better than error.name for many custom errors\n  const constructorName = error.constructor?.name;\n  if (constructorName && constructorName !== 'Error') {\n    errorName = constructorName;\n  }\n\n  // Check if the error name indicates an authentication error\n  if (errorName === 'AuthenticationError') {\n    return true;\n  }\n\n  // Fallback: check the message for authentication-related indicators\n  return (\n    errorMessage.toLowerCase().includes('authentication') ||\n    errorMessage.includes('401') ||\n    errorMessage.toLowerCase().includes('api key')\n  );\n}\n\nexport const getBuildDomTreeScript = () => {\n  const injectedScript = BUILD_DOM_TREE_SCRIPT;\n\n  if (injectedScript) {\n    return injectedScript;\n  }\n\n  return fs.readFileSync(\n    path.join(__dirname, '../assets/buildDomTree.js'),\n    'utf8',\n  );\n};\n"],"names":["sleep","seconds","Promise","resolve","setTimeout","createLogger","name","prefix","args","console","isAuthenticationError","error","_error_constructor","Error","errorMessage","errorName","constructorName","getBuildDomTreeScript","injectedScript","BUILD_DOM_TREE_SCRIPT","fs","path","__dirname"],"mappings":";;;;;;AAOO,SAASA,MAAMC,OAAe;IACnC,OAAO,IAAIC,QAAQ,CAACC,UAAYC,WAAWD,SAASF,AAAU,OAAVA;AACtD;AAEO,SAASI,aAAaC,IAAY;IACvC,MAAMC,SAAS,CAAC,CAAC,EAAED,KAAK,CAAC,CAAC;IAC1B,OAAO;QACL,MAAM,CAAC,GAAGE,OAAgBC,QAAQ,GAAG,CAACF,WAAWC;QACjD,OAAO,CAAC,GAAGA,OAAgBC,QAAQ,KAAK,CAACF,WAAWC;QACpD,SAAS,CAAC,GAAGA,OAAgBC,QAAQ,IAAI,CAACF,WAAWC;QACrD,OAAO,CAAC,GAAGA,OAAgBC,QAAQ,KAAK,CAACF,WAAWC;IACtD;AACF;AAQO,SAASE,sBAAsBC,KAAc;QAW1BC;IAVxB,IAAI,CAAED,CAAAA,iBAAiBE,KAAI,GAAI,OAAO;IAGtC,MAAMC,eAAeH,MAAM,OAAO,IAAI;IAGtC,IAAII,YAAYJ,MAAM,IAAI,IAAI;IAI9B,MAAMK,kBAAkB,QAAAJ,CAAAA,qBAAAA,MAAM,WAAW,AAAD,IAAhBA,KAAAA,IAAAA,mBAAmB,IAAI;IAC/C,IAAII,mBAAmBA,AAAoB,YAApBA,iBACrBD,YAAYC;IAId,IAAID,AAAc,0BAAdA,WACF,OAAO;IAIT,OACED,aAAa,WAAW,GAAG,QAAQ,CAAC,qBACpCA,aAAa,QAAQ,CAAC,UACtBA,aAAa,WAAW,GAAG,QAAQ,CAAC;AAExC;AAEO,MAAMG,wBAAwB;IACnC,MAAMC,iBAAiBC;IAEvB,IAAID,gBACF,OAAOA;IAGT,OAAOE,GAAG,YAAY,CACpBC,KAAK,IAAI,CAACC,WAAW,8BACrB;AAEJ"}