hypha-debugger 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/debugger.d.ts +30 -1
- package/dist/hypha-debugger.js +13590 -1994
- package/dist/hypha-debugger.js.map +1 -1
- package/dist/hypha-debugger.min.js +58 -1
- package/dist/hypha-debugger.min.js.map +1 -1
- package/dist/hypha-debugger.mjs +3609 -447
- package/dist/hypha-debugger.mjs.map +1 -1
- package/dist/index.d.ts +8 -11
- package/dist/page-controller/actions.d.ts +12 -0
- package/dist/page-controller/dom.d.ts +31 -0
- package/dist/page-controller/index.d.ts +54 -0
- package/dist/page-controller/page-info.d.ts +21 -0
- package/dist/page-controller/types.d.ts +42 -0
- package/dist/services/dom.d.ts +31 -4
- package/dist/services/execute.d.ts +1 -3
- package/dist/services/info.d.ts +16 -6
- package/dist/services/page-controller.d.ts +159 -0
- package/dist/services/react.d.ts +1 -4
- package/dist/services/screenshot.d.ts +1 -8
- package/dist/services/skill.d.ts +29 -0
- package/dist/ui/cursor.d.ts +24 -0
- package/dist/ui/overlay.d.ts +2 -2
- package/dist/ui/styles.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hypha-debugger.mjs","sources":["../src/ui/styles.ts","../src/ui/overlay.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,null],"names":[],"mappings":"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","x_google_ignoreList":[5,6,7,8,9,10,11,12,13,14]}
|
|
1
|
+
{"version":3,"file":"hypha-debugger.mjs","sources":["../src/ui/styles.ts","../src/ui/overlay.ts","../src/ui/cursor.ts","../src/utils/env.ts","../src/services/info.ts","../src/services/dom.ts","../node_modules/html-to-image/es/util.js","../node_modules/html-to-image/es/clone-pseudos.js","../node_modules/html-to-image/es/mimes.js","../node_modules/html-to-image/es/dataurl.js","../node_modules/html-to-image/es/clone-node.js","../node_modules/html-to-image/es/embed-resources.js","../node_modules/html-to-image/es/embed-images.js","../node_modules/html-to-image/es/apply-style.js","../node_modules/html-to-image/es/embed-webfonts.js","../node_modules/html-to-image/es/index.js","../src/services/screenshot.ts","../src/services/execute.ts","../src/services/navigate.ts","../src/services/react.ts","../src/services/skill.ts","../src/page-controller/dom-tree.js","../src/page-controller/dom.ts","../src/page-controller/actions.ts","../src/page-controller/page-info.ts","../src/page-controller/index.ts","../src/services/page-controller.ts","../src/debugger.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,"export function resolveUrl(url, baseUrl) {\n // url is absolute already\n if (url.match(/^[a-z]+:\\/\\//i)) {\n return url;\n }\n // url is absolute already, without protocol\n if (url.match(/^\\/\\//)) {\n return window.location.protocol + url;\n }\n // dataURI, mailto:, tel:, etc.\n if (url.match(/^[a-z]+:/i)) {\n return url;\n }\n const doc = document.implementation.createHTMLDocument();\n const base = doc.createElement('base');\n const a = doc.createElement('a');\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl) {\n base.href = baseUrl;\n }\n a.href = url;\n return a.href;\n}\nexport const uuid = (() => {\n // generate uuid for className of pseudo elements.\n // We should not use GUIDs, otherwise pseudo elements sometimes cannot be captured.\n let counter = 0;\n // ref: http://stackoverflow.com/a/6248722/2519373\n const random = () => \n // eslint-disable-next-line no-bitwise\n `0000${((Math.random() * 36 ** 4) << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n})();\nexport function delay(ms) {\n return (args) => new Promise((resolve) => {\n setTimeout(() => resolve(args), ms);\n });\n}\nexport function toArray(arrayLike) {\n const arr = [];\n for (let i = 0, l = arrayLike.length; i < l; i++) {\n arr.push(arrayLike[i]);\n }\n return arr;\n}\nlet styleProps = null;\nexport function getStyleProperties(options = {}) {\n if (styleProps) {\n return styleProps;\n }\n if (options.includeStyleProperties) {\n styleProps = options.includeStyleProperties;\n return styleProps;\n }\n styleProps = toArray(window.getComputedStyle(document.documentElement));\n return styleProps;\n}\nfunction px(node, styleProperty) {\n const win = node.ownerDocument.defaultView || window;\n const val = win.getComputedStyle(node).getPropertyValue(styleProperty);\n return val ? parseFloat(val.replace('px', '')) : 0;\n}\nfunction getNodeWidth(node) {\n const leftBorder = px(node, 'border-left-width');\n const rightBorder = px(node, 'border-right-width');\n return node.clientWidth + leftBorder + rightBorder;\n}\nfunction getNodeHeight(node) {\n const topBorder = px(node, 'border-top-width');\n const bottomBorder = px(node, 'border-bottom-width');\n return node.clientHeight + topBorder + bottomBorder;\n}\nexport function getImageSize(targetNode, options = {}) {\n const width = options.width || getNodeWidth(targetNode);\n const height = options.height || getNodeHeight(targetNode);\n return { width, height };\n}\nexport function getPixelRatio() {\n let ratio;\n let FINAL_PROCESS;\n try {\n FINAL_PROCESS = process;\n }\n catch (e) {\n // pass\n }\n const val = FINAL_PROCESS && FINAL_PROCESS.env\n ? FINAL_PROCESS.env.devicePixelRatio\n : null;\n if (val) {\n ratio = parseInt(val, 10);\n if (Number.isNaN(ratio)) {\n ratio = 1;\n }\n }\n return ratio || window.devicePixelRatio || 1;\n}\n// @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas#maximum_canvas_size\nconst canvasDimensionLimit = 16384;\nexport function checkCanvasDimensions(canvas) {\n if (canvas.width > canvasDimensionLimit ||\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvasDimensionLimit &&\n canvas.height > canvasDimensionLimit) {\n if (canvas.width > canvas.height) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n else if (canvas.width > canvasDimensionLimit) {\n canvas.height *= canvasDimensionLimit / canvas.width;\n canvas.width = canvasDimensionLimit;\n }\n else {\n canvas.width *= canvasDimensionLimit / canvas.height;\n canvas.height = canvasDimensionLimit;\n }\n }\n}\nexport function canvasToBlob(canvas, options = {}) {\n if (canvas.toBlob) {\n return new Promise((resolve) => {\n canvas.toBlob(resolve, options.type ? options.type : 'image/png', options.quality ? options.quality : 1);\n });\n }\n return new Promise((resolve) => {\n const binaryString = window.atob(canvas\n .toDataURL(options.type ? options.type : undefined, options.quality ? options.quality : undefined)\n .split(',')[1]);\n const len = binaryString.length;\n const binaryArray = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n binaryArray[i] = binaryString.charCodeAt(i);\n }\n resolve(new Blob([binaryArray], {\n type: options.type ? options.type : 'image/png',\n }));\n });\n}\nexport function createImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n img.decode().then(() => {\n requestAnimationFrame(() => resolve(img));\n });\n };\n img.onerror = reject;\n img.crossOrigin = 'anonymous';\n img.decoding = 'async';\n img.src = url;\n });\n}\nexport async function svgToDataURL(svg) {\n return Promise.resolve()\n .then(() => new XMLSerializer().serializeToString(svg))\n .then(encodeURIComponent)\n .then((html) => `data:image/svg+xml;charset=utf-8,${html}`);\n}\nexport async function nodeToDataURL(node, width, height) {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttribute('width', `${width}`);\n svg.setAttribute('height', `${height}`);\n svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n foreignObject.setAttribute('width', '100%');\n foreignObject.setAttribute('height', '100%');\n foreignObject.setAttribute('x', '0');\n foreignObject.setAttribute('y', '0');\n foreignObject.setAttribute('externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svgToDataURL(svg);\n}\nexport const isInstanceOfElement = (node, instance) => {\n if (node instanceof instance)\n return true;\n const nodePrototype = Object.getPrototypeOf(node);\n if (nodePrototype === null)\n return false;\n return (nodePrototype.constructor.name === instance.name ||\n isInstanceOfElement(nodePrototype, instance));\n};\n//# sourceMappingURL=util.js.map","import { uuid, getStyleProperties } from './util';\nfunction formatCSSText(style) {\n const content = style.getPropertyValue('content');\n return `${style.cssText} content: '${content.replace(/'|\"/g, '')}';`;\n}\nfunction formatCSSProperties(style, options) {\n return getStyleProperties(options)\n .map((name) => {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n return `${name}: ${value}${priority ? ' !important' : ''};`;\n })\n .join(' ');\n}\nfunction getPseudoElementStyle(className, pseudo, style, options) {\n const selector = `.${className}:${pseudo}`;\n const cssText = style.cssText\n ? formatCSSText(style)\n : formatCSSProperties(style, options);\n return document.createTextNode(`${selector}{${cssText}}`);\n}\nfunction clonePseudoElement(nativeNode, clonedNode, pseudo, options) {\n const style = window.getComputedStyle(nativeNode, pseudo);\n const content = style.getPropertyValue('content');\n if (content === '' || content === 'none') {\n return;\n }\n const className = uuid();\n try {\n clonedNode.className = `${clonedNode.className} ${className}`;\n }\n catch (err) {\n return;\n }\n const styleElement = document.createElement('style');\n styleElement.appendChild(getPseudoElementStyle(className, pseudo, style, options));\n clonedNode.appendChild(styleElement);\n}\nexport function clonePseudoElements(nativeNode, clonedNode, options) {\n clonePseudoElement(nativeNode, clonedNode, ':before', options);\n clonePseudoElement(nativeNode, clonedNode, ':after', options);\n}\n//# sourceMappingURL=clone-pseudos.js.map","const WOFF = 'application/font-woff';\nconst JPEG = 'image/jpeg';\nconst mimes = {\n woff: WOFF,\n woff2: WOFF,\n ttf: 'application/font-truetype',\n eot: 'application/vnd.ms-fontobject',\n png: 'image/png',\n jpg: JPEG,\n jpeg: JPEG,\n gif: 'image/gif',\n tiff: 'image/tiff',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n};\nfunction getExtension(url) {\n const match = /\\.([^./]*?)$/g.exec(url);\n return match ? match[1] : '';\n}\nexport function getMimeType(url) {\n const extension = getExtension(url).toLowerCase();\n return mimes[extension] || '';\n}\n//# sourceMappingURL=mimes.js.map","function getContentFromDataUrl(dataURL) {\n return dataURL.split(/,/)[1];\n}\nexport function isDataUrl(url) {\n return url.search(/^(data:)/) !== -1;\n}\nexport function makeDataUrl(content, mimeType) {\n return `data:${mimeType};base64,${content}`;\n}\nexport async function fetchAsDataURL(url, init, process) {\n const res = await fetch(url, init);\n if (res.status === 404) {\n throw new Error(`Resource \"${res.url}\" not found`);\n }\n const blob = await res.blob();\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = () => {\n try {\n resolve(process({ res, result: reader.result }));\n }\n catch (error) {\n reject(error);\n }\n };\n reader.readAsDataURL(blob);\n });\n}\nconst cache = {};\nfunction getCacheKey(url, contentType, includeQueryParams) {\n let key = url.replace(/\\?.*/, '');\n if (includeQueryParams) {\n key = url;\n }\n // font resource\n if (/ttf|otf|eot|woff2?/i.test(key)) {\n key = key.replace(/.*\\//, '');\n }\n return contentType ? `[${contentType}]${key}` : key;\n}\nexport async function resourceToDataURL(resourceUrl, contentType, options) {\n const cacheKey = getCacheKey(resourceUrl, contentType, options.includeQueryParams);\n if (cache[cacheKey] != null) {\n return cache[cacheKey];\n }\n // ref: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache\n if (options.cacheBust) {\n // eslint-disable-next-line no-param-reassign\n resourceUrl += (/\\?/.test(resourceUrl) ? '&' : '?') + new Date().getTime();\n }\n let dataURL;\n try {\n const content = await fetchAsDataURL(resourceUrl, options.fetchRequestInit, ({ res, result }) => {\n if (!contentType) {\n // eslint-disable-next-line no-param-reassign\n contentType = res.headers.get('Content-Type') || '';\n }\n return getContentFromDataUrl(result);\n });\n dataURL = makeDataUrl(content, contentType);\n }\n catch (error) {\n dataURL = options.imagePlaceholder || '';\n let msg = `Failed to fetch resource: ${resourceUrl}`;\n if (error) {\n msg = typeof error === 'string' ? error : error.message;\n }\n if (msg) {\n console.warn(msg);\n }\n }\n cache[cacheKey] = dataURL;\n return dataURL;\n}\n//# sourceMappingURL=dataurl.js.map","import { clonePseudoElements } from './clone-pseudos';\nimport { createImage, toArray, isInstanceOfElement, getStyleProperties, } from './util';\nimport { getMimeType } from './mimes';\nimport { resourceToDataURL } from './dataurl';\nasync function cloneCanvasElement(canvas) {\n const dataURL = canvas.toDataURL();\n if (dataURL === 'data:,') {\n return canvas.cloneNode(false);\n }\n return createImage(dataURL);\n}\nasync function cloneVideoElement(video, options) {\n if (video.currentSrc) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n canvas.width = video.clientWidth;\n canvas.height = video.clientHeight;\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n const dataURL = canvas.toDataURL();\n return createImage(dataURL);\n }\n const poster = video.poster;\n const contentType = getMimeType(poster);\n const dataURL = await resourceToDataURL(poster, contentType, options);\n return createImage(dataURL);\n}\nasync function cloneIFrameElement(iframe, options) {\n var _a;\n try {\n if ((_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentDocument) === null || _a === void 0 ? void 0 : _a.body) {\n return (await cloneNode(iframe.contentDocument.body, options, true));\n }\n }\n catch (_b) {\n // Failed to clone iframe\n }\n return iframe.cloneNode(false);\n}\nasync function cloneSingleNode(node, options) {\n if (isInstanceOfElement(node, HTMLCanvasElement)) {\n return cloneCanvasElement(node);\n }\n if (isInstanceOfElement(node, HTMLVideoElement)) {\n return cloneVideoElement(node, options);\n }\n if (isInstanceOfElement(node, HTMLIFrameElement)) {\n return cloneIFrameElement(node, options);\n }\n return node.cloneNode(isSVGElement(node));\n}\nconst isSlotElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SLOT';\nconst isSVGElement = (node) => node.tagName != null && node.tagName.toUpperCase() === 'SVG';\nasync function cloneChildren(nativeNode, clonedNode, options) {\n var _a, _b;\n if (isSVGElement(clonedNode)) {\n return clonedNode;\n }\n let children = [];\n if (isSlotElement(nativeNode) && nativeNode.assignedNodes) {\n children = toArray(nativeNode.assignedNodes());\n }\n else if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n ((_a = nativeNode.contentDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n children = toArray(nativeNode.contentDocument.body.childNodes);\n }\n else {\n children = toArray(((_b = nativeNode.shadowRoot) !== null && _b !== void 0 ? _b : nativeNode).childNodes);\n }\n if (children.length === 0 ||\n isInstanceOfElement(nativeNode, HTMLVideoElement)) {\n return clonedNode;\n }\n await children.reduce((deferred, child) => deferred\n .then(() => cloneNode(child, options))\n .then((clonedChild) => {\n if (clonedChild) {\n clonedNode.appendChild(clonedChild);\n }\n }), Promise.resolve());\n return clonedNode;\n}\nfunction cloneCSSStyle(nativeNode, clonedNode, options) {\n const targetStyle = clonedNode.style;\n if (!targetStyle) {\n return;\n }\n const sourceStyle = window.getComputedStyle(nativeNode);\n if (sourceStyle.cssText) {\n targetStyle.cssText = sourceStyle.cssText;\n targetStyle.transformOrigin = sourceStyle.transformOrigin;\n }\n else {\n getStyleProperties(options).forEach((name) => {\n let value = sourceStyle.getPropertyValue(name);\n if (name === 'font-size' && value.endsWith('px')) {\n const reducedFont = Math.floor(parseFloat(value.substring(0, value.length - 2))) - 0.1;\n value = `${reducedFont}px`;\n }\n if (isInstanceOfElement(nativeNode, HTMLIFrameElement) &&\n name === 'display' &&\n value === 'inline') {\n value = 'block';\n }\n if (name === 'd' && clonedNode.getAttribute('d')) {\n value = `path(${clonedNode.getAttribute('d')})`;\n }\n targetStyle.setProperty(name, value, sourceStyle.getPropertyPriority(name));\n });\n }\n}\nfunction cloneInputValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLTextAreaElement)) {\n clonedNode.innerHTML = nativeNode.value;\n }\n if (isInstanceOfElement(nativeNode, HTMLInputElement)) {\n clonedNode.setAttribute('value', nativeNode.value);\n }\n}\nfunction cloneSelectValue(nativeNode, clonedNode) {\n if (isInstanceOfElement(nativeNode, HTMLSelectElement)) {\n const clonedSelect = clonedNode;\n const selectedOption = Array.from(clonedSelect.children).find((child) => nativeNode.value === child.getAttribute('value'));\n if (selectedOption) {\n selectedOption.setAttribute('selected', '');\n }\n }\n}\nfunction decorate(nativeNode, clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n cloneCSSStyle(nativeNode, clonedNode, options);\n clonePseudoElements(nativeNode, clonedNode, options);\n cloneInputValue(nativeNode, clonedNode);\n cloneSelectValue(nativeNode, clonedNode);\n }\n return clonedNode;\n}\nasync function ensureSVGSymbols(clone, options) {\n const uses = clone.querySelectorAll ? clone.querySelectorAll('use') : [];\n if (uses.length === 0) {\n return clone;\n }\n const processedDefs = {};\n for (let i = 0; i < uses.length; i++) {\n const use = uses[i];\n const id = use.getAttribute('xlink:href');\n if (id) {\n const exist = clone.querySelector(id);\n const definition = document.querySelector(id);\n if (!exist && definition && !processedDefs[id]) {\n // eslint-disable-next-line no-await-in-loop\n processedDefs[id] = (await cloneNode(definition, options, true));\n }\n }\n }\n const nodes = Object.values(processedDefs);\n if (nodes.length) {\n const ns = 'http://www.w3.org/1999/xhtml';\n const svg = document.createElementNS(ns, 'svg');\n svg.setAttribute('xmlns', ns);\n svg.style.position = 'absolute';\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.overflow = 'hidden';\n svg.style.display = 'none';\n const defs = document.createElementNS(ns, 'defs');\n svg.appendChild(defs);\n for (let i = 0; i < nodes.length; i++) {\n defs.appendChild(nodes[i]);\n }\n clone.appendChild(svg);\n }\n return clone;\n}\nexport async function cloneNode(node, options, isRoot) {\n if (!isRoot && options.filter && !options.filter(node)) {\n return null;\n }\n return Promise.resolve(node)\n .then((clonedNode) => cloneSingleNode(clonedNode, options))\n .then((clonedNode) => cloneChildren(node, clonedNode, options))\n .then((clonedNode) => decorate(node, clonedNode, options))\n .then((clonedNode) => ensureSVGSymbols(clonedNode, options));\n}\n//# sourceMappingURL=clone-node.js.map","import { resolveUrl } from './util';\nimport { getMimeType } from './mimes';\nimport { isDataUrl, makeDataUrl, resourceToDataURL } from './dataurl';\nconst URL_REGEX = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nconst URL_WITH_FORMAT_REGEX = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_REGEX = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction toRegex(url) {\n // eslint-disable-next-line no-useless-escape\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, 'g');\n}\nexport function parseURLs(cssText) {\n const urls = [];\n cssText.replace(URL_REGEX, (raw, quotation, url) => {\n urls.push(url);\n return raw;\n });\n return urls.filter((url) => !isDataUrl(url));\n}\nexport async function embed(cssText, resourceURL, baseURL, options, getContentFromUrl) {\n try {\n const resolvedURL = baseURL ? resolveUrl(resourceURL, baseURL) : resourceURL;\n const contentType = getMimeType(resourceURL);\n let dataURL;\n if (getContentFromUrl) {\n const content = await getContentFromUrl(resolvedURL);\n dataURL = makeDataUrl(content, contentType);\n }\n else {\n dataURL = await resourceToDataURL(resolvedURL, contentType, options);\n }\n return cssText.replace(toRegex(resourceURL), `$1${dataURL}$3`);\n }\n catch (error) {\n // pass\n }\n return cssText;\n}\nfunction filterPreferredFontFormat(str, { preferredFontFormat }) {\n return !preferredFontFormat\n ? str\n : str.replace(FONT_SRC_REGEX, (match) => {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_REGEX.exec(match) || [];\n if (!format) {\n return '';\n }\n if (format === preferredFontFormat) {\n return `src: ${src};`;\n }\n }\n });\n}\nexport function shouldEmbed(url) {\n return url.search(URL_REGEX) !== -1;\n}\nexport async function embedResources(cssText, baseUrl, options) {\n if (!shouldEmbed(cssText)) {\n return cssText;\n }\n const filteredCSSText = filterPreferredFontFormat(cssText, options);\n const urls = parseURLs(filteredCSSText);\n return urls.reduce((deferred, url) => deferred.then((css) => embed(css, url, baseUrl, options)), Promise.resolve(filteredCSSText));\n}\n//# sourceMappingURL=embed-resources.js.map","import { embedResources } from './embed-resources';\nimport { toArray, isInstanceOfElement } from './util';\nimport { isDataUrl, resourceToDataURL } from './dataurl';\nimport { getMimeType } from './mimes';\nasync function embedProp(propName, node, options) {\n var _a;\n const propValue = (_a = node.style) === null || _a === void 0 ? void 0 : _a.getPropertyValue(propName);\n if (propValue) {\n const cssString = await embedResources(propValue, null, options);\n node.style.setProperty(propName, cssString, node.style.getPropertyPriority(propName));\n return true;\n }\n return false;\n}\nasync function embedBackground(clonedNode, options) {\n ;\n (await embedProp('background', clonedNode, options)) ||\n (await embedProp('background-image', clonedNode, options));\n (await embedProp('mask', clonedNode, options)) ||\n (await embedProp('-webkit-mask', clonedNode, options)) ||\n (await embedProp('mask-image', clonedNode, options)) ||\n (await embedProp('-webkit-mask-image', clonedNode, options));\n}\nasync function embedImageNode(clonedNode, options) {\n const isImageElement = isInstanceOfElement(clonedNode, HTMLImageElement);\n if (!(isImageElement && !isDataUrl(clonedNode.src)) &&\n !(isInstanceOfElement(clonedNode, SVGImageElement) &&\n !isDataUrl(clonedNode.href.baseVal))) {\n return;\n }\n const url = isImageElement ? clonedNode.src : clonedNode.href.baseVal;\n const dataURL = await resourceToDataURL(url, getMimeType(url), options);\n await new Promise((resolve, reject) => {\n clonedNode.onload = resolve;\n clonedNode.onerror = options.onImageErrorHandler\n ? (...attributes) => {\n try {\n resolve(options.onImageErrorHandler(...attributes));\n }\n catch (error) {\n reject(error);\n }\n }\n : reject;\n const image = clonedNode;\n if (image.decode) {\n image.decode = resolve;\n }\n if (image.loading === 'lazy') {\n image.loading = 'eager';\n }\n if (isImageElement) {\n clonedNode.srcset = '';\n clonedNode.src = dataURL;\n }\n else {\n clonedNode.href.baseVal = dataURL;\n }\n });\n}\nasync function embedChildren(clonedNode, options) {\n const children = toArray(clonedNode.childNodes);\n const deferreds = children.map((child) => embedImages(child, options));\n await Promise.all(deferreds).then(() => clonedNode);\n}\nexport async function embedImages(clonedNode, options) {\n if (isInstanceOfElement(clonedNode, Element)) {\n await embedBackground(clonedNode, options);\n await embedImageNode(clonedNode, options);\n await embedChildren(clonedNode, options);\n }\n}\n//# sourceMappingURL=embed-images.js.map","export function applyStyle(node, options) {\n const { style } = node;\n if (options.backgroundColor) {\n style.backgroundColor = options.backgroundColor;\n }\n if (options.width) {\n style.width = `${options.width}px`;\n }\n if (options.height) {\n style.height = `${options.height}px`;\n }\n const manual = options.style;\n if (manual != null) {\n Object.keys(manual).forEach((key) => {\n style[key] = manual[key];\n });\n }\n return node;\n}\n//# sourceMappingURL=apply-style.js.map","import { toArray } from './util';\nimport { fetchAsDataURL } from './dataurl';\nimport { shouldEmbed, embedResources } from './embed-resources';\nconst cssFetchCache = {};\nasync function fetchCSS(url) {\n let cache = cssFetchCache[url];\n if (cache != null) {\n return cache;\n }\n const res = await fetch(url);\n const cssText = await res.text();\n cache = { url, cssText };\n cssFetchCache[url] = cache;\n return cache;\n}\nasync function embedFonts(data, options) {\n let cssText = data.cssText;\n const regexUrl = /url\\([\"']?([^\"')]+)[\"']?\\)/g;\n const fontLocs = cssText.match(/url\\([^)]+\\)/g) || [];\n const loadFonts = fontLocs.map(async (loc) => {\n let url = loc.replace(regexUrl, '$1');\n if (!url.startsWith('https://')) {\n url = new URL(url, data.url).href;\n }\n return fetchAsDataURL(url, options.fetchRequestInit, ({ result }) => {\n cssText = cssText.replace(loc, `url(${result})`);\n return [loc, result];\n });\n });\n return Promise.all(loadFonts).then(() => cssText);\n}\nfunction parseCSS(source) {\n if (source == null) {\n return [];\n }\n const result = [];\n const commentsRegex = /(\\/\\*[\\s\\S]*?\\*\\/)/gi;\n // strip out comments\n let cssText = source.replace(commentsRegex, '');\n // eslint-disable-next-line prefer-regex-literals\n const keyframesRegex = new RegExp('((@.*?keyframes [\\\\s\\\\S]*?){([\\\\s\\\\S]*?}\\\\s*?)})', 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const matches = keyframesRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n result.push(matches[0]);\n }\n cssText = cssText.replace(keyframesRegex, '');\n const importRegex = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n // to match css & media queries together\n const combinedCSSRegex = '((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]' +\n '*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})';\n // unified regex\n const unifiedRegex = new RegExp(combinedCSSRegex, 'gi');\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let matches = importRegex.exec(cssText);\n if (matches === null) {\n matches = unifiedRegex.exec(cssText);\n if (matches === null) {\n break;\n }\n else {\n importRegex.lastIndex = unifiedRegex.lastIndex;\n }\n }\n else {\n unifiedRegex.lastIndex = importRegex.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nasync function getCSSRules(styleSheets, options) {\n const ret = [];\n const deferreds = [];\n // First loop inlines imports\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item, index) => {\n if (item.type === CSSRule.IMPORT_RULE) {\n let importIndex = index + 1;\n const url = item.href;\n const deferred = fetchCSS(url)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n try {\n sheet.insertRule(rule, rule.startsWith('@import')\n ? (importIndex += 1)\n : sheet.cssRules.length);\n }\n catch (error) {\n console.error('Error inserting rule from remote css', {\n rule,\n error,\n });\n }\n }))\n .catch((e) => {\n console.error('Error loading remote css', e.toString());\n });\n deferreds.push(deferred);\n }\n });\n }\n catch (e) {\n const inline = styleSheets.find((a) => a.href == null) || document.styleSheets[0];\n if (sheet.href != null) {\n deferreds.push(fetchCSS(sheet.href)\n .then((metadata) => embedFonts(metadata, options))\n .then((cssText) => parseCSS(cssText).forEach((rule) => {\n inline.insertRule(rule, inline.cssRules.length);\n }))\n .catch((err) => {\n console.error('Error loading remote stylesheet', err);\n }));\n }\n console.error('Error inlining remote css file', e);\n }\n }\n });\n return Promise.all(deferreds).then(() => {\n // Second loop parses rules\n styleSheets.forEach((sheet) => {\n if ('cssRules' in sheet) {\n try {\n toArray(sheet.cssRules || []).forEach((item) => {\n ret.push(item);\n });\n }\n catch (e) {\n console.error(`Error while reading CSS rules from ${sheet.href}`, e);\n }\n }\n });\n return ret;\n });\n}\nfunction getWebFontRules(cssRules) {\n return cssRules\n .filter((rule) => rule.type === CSSRule.FONT_FACE_RULE)\n .filter((rule) => shouldEmbed(rule.style.getPropertyValue('src')));\n}\nasync function parseWebFontRules(node, options) {\n if (node.ownerDocument == null) {\n throw new Error('Provided element is not within a Document');\n }\n const styleSheets = toArray(node.ownerDocument.styleSheets);\n const cssRules = await getCSSRules(styleSheets, options);\n return getWebFontRules(cssRules);\n}\nfunction normalizeFontFamily(font) {\n return font.trim().replace(/[\"']/g, '');\n}\nfunction getUsedFonts(node) {\n const fonts = new Set();\n function traverse(node) {\n const fontFamily = node.style.fontFamily || getComputedStyle(node).fontFamily;\n fontFamily.split(',').forEach((font) => {\n fonts.add(normalizeFontFamily(font));\n });\n Array.from(node.children).forEach((child) => {\n if (child instanceof HTMLElement) {\n traverse(child);\n }\n });\n }\n traverse(node);\n return fonts;\n}\nexport async function getWebFontCSS(node, options) {\n const rules = await parseWebFontRules(node, options);\n const usedFonts = getUsedFonts(node);\n const cssTexts = await Promise.all(rules\n .filter((rule) => usedFonts.has(normalizeFontFamily(rule.style.fontFamily)))\n .map((rule) => {\n const baseUrl = rule.parentStyleSheet\n ? rule.parentStyleSheet.href\n : null;\n return embedResources(rule.cssText, baseUrl, options);\n }));\n return cssTexts.join('\\n');\n}\nexport async function embedWebFonts(clonedNode, options) {\n const cssText = options.fontEmbedCSS != null\n ? options.fontEmbedCSS\n : options.skipFonts\n ? null\n : await getWebFontCSS(clonedNode, options);\n if (cssText) {\n const styleNode = document.createElement('style');\n const sytleContent = document.createTextNode(cssText);\n styleNode.appendChild(sytleContent);\n if (clonedNode.firstChild) {\n clonedNode.insertBefore(styleNode, clonedNode.firstChild);\n }\n else {\n clonedNode.appendChild(styleNode);\n }\n }\n}\n//# sourceMappingURL=embed-webfonts.js.map","import { cloneNode } from './clone-node';\nimport { embedImages } from './embed-images';\nimport { applyStyle } from './apply-style';\nimport { embedWebFonts, getWebFontCSS } from './embed-webfonts';\nimport { getImageSize, getPixelRatio, createImage, canvasToBlob, nodeToDataURL, checkCanvasDimensions, } from './util';\nexport async function toSvg(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const clonedNode = (await cloneNode(node, options, true));\n await embedWebFonts(clonedNode, options);\n await embedImages(clonedNode, options);\n applyStyle(clonedNode, options);\n const datauri = await nodeToDataURL(clonedNode, width, height);\n return datauri;\n}\nexport async function toCanvas(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const svg = await toSvg(node, options);\n const img = await createImage(svg);\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const ratio = options.pixelRatio || getPixelRatio();\n const canvasWidth = options.canvasWidth || width;\n const canvasHeight = options.canvasHeight || height;\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n if (!options.skipAutoScale) {\n checkCanvasDimensions(canvas);\n }\n canvas.style.width = `${canvasWidth}`;\n canvas.style.height = `${canvasHeight}`;\n if (options.backgroundColor) {\n context.fillStyle = options.backgroundColor;\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n context.drawImage(img, 0, 0, canvas.width, canvas.height);\n return canvas;\n}\nexport async function toPixelData(node, options = {}) {\n const { width, height } = getImageSize(node, options);\n const canvas = await toCanvas(node, options);\n const ctx = canvas.getContext('2d');\n return ctx.getImageData(0, 0, width, height).data;\n}\nexport async function toPng(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL();\n}\nexport async function toJpeg(node, options = {}) {\n const canvas = await toCanvas(node, options);\n return canvas.toDataURL('image/jpeg', options.quality || 1);\n}\nexport async function toBlob(node, options = {}) {\n const canvas = await toCanvas(node, options);\n const blob = await canvasToBlob(canvas);\n return blob;\n}\nexport async function getFontEmbedCSS(node, options = {}) {\n return getWebFontCSS(node, options);\n}\n//# sourceMappingURL=index.js.map",null,null,null,null,null,"/**\n * @file port from browser-use\n * @see https://github.com/browser-use/browser-use/commits/main/browser_use/dom/dom_tree/index.js\n * @match 0.5.9 d51b6e73daff7165fdd3e44debd667e7f5f7fdc5\n *\n * search @edit for all the changed lines.\n *\n * @edit export\n * @edit add interactiveBlacklist interactiveWhitelist\n * @edit adjustable opacity\n * @edit direct dom ref\n * @edit @workaround input.checked\n * @edit smaller zIndex for highlight\n * @edit no need for xpath\n * @edit add `extra` field for extra data\n * @edit scrollable element detection\n * @edit add `data-browser-use-ignore` attribute\n * @edit improve `sampleRect`, filter out rects with 0 area\n * @edit exclude aria-hidden elements\n * @edit make sure attributes exist for interactive candidates.\n */\n\nexport default (\n\targs = {\n\t\tdoHighlightElements: true,\n\t\tfocusHighlightIndex: -1,\n\t\tviewportExpansion: 0,\n\t\tdebugMode: false,\n\n\t\t/**\n\t\t * @edit\n\t\t */\n\t\t/** @type {Element[]} */\n\t\tinteractiveBlacklist: [],\n\t\t/** @type {Element[]} */\n\t\tinteractiveWhitelist: [],\n\t\thighlightOpacity: 0.1,\n\t\thighlightLabelOpacity: 0.5,\n\t}\n) => {\n\t/**\n\t * @edit\n\t */\n\tconst { interactiveBlacklist, interactiveWhitelist, highlightOpacity, highlightLabelOpacity } =\n\t\targs\n\n\tconst { doHighlightElements, focusHighlightIndex, viewportExpansion, debugMode } = args\n\tlet highlightIndex = 0 // Reset highlight index\n\n\t/**\n\t * @edit add `extra` field for extra data\n\t */\n\tconst extraData = new WeakMap()\n\tfunction addExtraData(element, data) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return\n\t\textraData.set(element, { ...extraData.get(element), ...data })\n\t}\n\n\t// Add caching mechanisms at the top level\n\tconst DOM_CACHE = {\n\t\tboundingRects: new WeakMap(),\n\t\tclientRects: new WeakMap(),\n\t\tcomputedStyles: new WeakMap(),\n\t\tclearCache: () => {\n\t\t\tDOM_CACHE.boundingRects = new WeakMap()\n\t\t\tDOM_CACHE.clientRects = new WeakMap()\n\t\t\tDOM_CACHE.computedStyles = new WeakMap()\n\t\t},\n\t}\n\n\t/**\n\t * Gets the cached bounding rect for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the bounding rect for.\n\t * @returns {DOMRect | null} The cached bounding rect, or null if the element is not found.\n\t */\n\tfunction getCachedBoundingRect(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.boundingRects.has(element)) {\n\t\t\treturn DOM_CACHE.boundingRects.get(element)\n\t\t}\n\n\t\tconst rect = element.getBoundingClientRect()\n\n\t\tif (rect) {\n\t\t\tDOM_CACHE.boundingRects.set(element, rect)\n\t\t}\n\t\treturn rect\n\t}\n\n\t/**\n\t * Gets the cached computed style for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the computed style for.\n\t * @returns {CSSStyleDeclaration | null} The cached computed style, or null if the element is not found.\n\t */\n\tfunction getCachedComputedStyle(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.computedStyles.has(element)) {\n\t\t\treturn DOM_CACHE.computedStyles.get(element)\n\t\t}\n\n\t\tconst style = window.getComputedStyle(element)\n\n\t\tif (style) {\n\t\t\tDOM_CACHE.computedStyles.set(element, style)\n\t\t}\n\t\treturn style\n\t}\n\n\t/**\n\t * Gets the cached client rects for an element.\n\t *\n\t * @param {HTMLElement} element - The element to get the client rects for.\n\t * @returns {DOMRectList | null} The cached client rects, or null if the element is not found.\n\t */\n\tfunction getCachedClientRects(element) {\n\t\tif (!element) return null\n\n\t\tif (DOM_CACHE.clientRects.has(element)) {\n\t\t\treturn DOM_CACHE.clientRects.get(element)\n\t\t}\n\n\t\tconst rects = element.getClientRects()\n\n\t\tif (rects) {\n\t\t\tDOM_CACHE.clientRects.set(element, rects)\n\t\t}\n\t\treturn rects\n\t}\n\n\t/**\n\t * Hash map of DOM nodes indexed by their highlight index.\n\t *\n\t * @type {Object<string, any>}\n\t */\n\tconst DOM_HASH_MAP = {}\n\n\tconst ID = { current: 0 }\n\n\tconst HIGHLIGHT_CONTAINER_ID = 'playwright-highlight-container'\n\n\t// Add a WeakMap cache for XPath strings\n\tconst xpathCache = new WeakMap()\n\n\t// // Initialize once and reuse\n\t// const viewportObserver = new IntersectionObserver(\n\t// (entries) => {\n\t// entries.forEach(entry => {\n\t// elementVisibilityMap.set(entry.target, entry.isIntersecting);\n\t// });\n\t// },\n\t// { rootMargin: `${viewportExpansion}px` }\n\t// );\n\n\t/**\n\t * Highlights an element in the DOM and returns the index of the next element.\n\t *\n\t * @param {HTMLElement} element - The element to highlight.\n\t * @param {number} index - The index of the element.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @returns {number} The index of the next element.\n\t */\n\tfunction highlightElement(element, index, parentIframe = null) {\n\t\tif (!element) return index\n\n\t\tconst overlays = []\n\t\t/**\n\t\t * @type {HTMLElement | null}\n\t\t */\n\t\tlet label = null\n\t\tlet labelWidth = 20\n\t\tlet labelHeight = 16\n\t\tlet cleanupFn = null\n\n\t\ttry {\n\t\t\t// Create or get highlight container\n\t\t\tlet container = document.getElementById(HIGHLIGHT_CONTAINER_ID)\n\t\t\tif (!container) {\n\t\t\t\tcontainer = document.createElement('div')\n\t\t\t\tcontainer.id = HIGHLIGHT_CONTAINER_ID\n\t\t\t\tcontainer.style.position = 'fixed'\n\t\t\t\tcontainer.style.pointerEvents = 'none'\n\t\t\t\tcontainer.style.top = '0'\n\t\t\t\tcontainer.style.left = '0'\n\t\t\t\tcontainer.style.width = '100%'\n\t\t\t\tcontainer.style.height = '100%'\n\n\t\t\t\t/**\n\t\t\t\t * @edit smaller zIndex for highlight\n\t\t\t\t */\n\t\t\t\t// Use the maximum valid value in zIndex to ensure the element is not blocked by overlapping elements.\n\t\t\t\t// container.style.zIndex = \"2147483647\";\n\t\t\t\tcontainer.style.zIndex = '2147483640'\n\n\t\t\t\tcontainer.style.backgroundColor = 'transparent'\n\t\t\t\tdocument.body.appendChild(container)\n\t\t\t}\n\n\t\t\t// Get element client rects\n\t\t\tconst rects = element.getClientRects() // Use getClientRects()\n\n\t\t\tif (!rects || rects.length === 0) return index // Exit if no rects\n\n\t\t\t// Generate a color based on the index\n\t\t\tconst colors = [\n\t\t\t\t'#FF0000',\n\t\t\t\t'#00FF00',\n\t\t\t\t'#0000FF',\n\t\t\t\t'#FFA500',\n\t\t\t\t'#800080',\n\t\t\t\t'#008080',\n\t\t\t\t'#FF69B4',\n\t\t\t\t'#4B0082',\n\t\t\t\t'#FF4500',\n\t\t\t\t'#2E8B57',\n\t\t\t\t'#DC143C',\n\t\t\t\t'#4682B4',\n\t\t\t]\n\t\t\tconst colorIndex = index % colors.length\n\t\t\tlet baseColor = colors[colorIndex]\n\n\t\t\t/**\n\t\t\t * @edit adjustable opacity\n\t\t\t */\n\t\t\t// const backgroundColor = baseColor + \"1A\"; // 10% opacity version of the color\n\t\t\tconst backgroundColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\t\t\tbaseColor =\n\t\t\t\tbaseColor +\n\t\t\t\tMath.floor(highlightLabelOpacity * 255)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.padStart(2, '0')\n\n\t\t\t// Get iframe offset if necessary\n\t\t\tlet iframeOffset = { x: 0, y: 0 }\n\t\t\tif (parentIframe) {\n\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe offset\n\t\t\t\tiframeOffset.x = iframeRect.left\n\t\t\t\tiframeOffset.y = iframeRect.top\n\t\t\t}\n\n\t\t\t// Create fragment to hold overlay elements\n\t\t\tconst fragment = document.createDocumentFragment()\n\n\t\t\t// Create highlight overlays for each client rect\n\t\t\tfor (const rect of rects) {\n\t\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\t\tconst overlay = document.createElement('div')\n\t\t\t\toverlay.style.position = 'fixed'\n\t\t\t\toverlay.style.border = `2px solid ${baseColor}`\n\t\t\t\toverlay.style.backgroundColor = backgroundColor\n\t\t\t\toverlay.style.pointerEvents = 'none'\n\t\t\t\toverlay.style.boxSizing = 'border-box'\n\n\t\t\t\tconst top = rect.top + iframeOffset.y\n\t\t\t\tconst left = rect.left + iframeOffset.x\n\n\t\t\t\toverlay.style.top = `${top}px`\n\t\t\t\toverlay.style.left = `${left}px`\n\t\t\t\toverlay.style.width = `${rect.width}px`\n\t\t\t\toverlay.style.height = `${rect.height}px`\n\n\t\t\t\tfragment.appendChild(overlay)\n\t\t\t\toverlays.push({ element: overlay, initialRect: rect }) // Store overlay and its rect\n\t\t\t}\n\n\t\t\t// Create and position a single label relative to the first rect\n\t\t\tconst firstRect = rects[0]\n\t\t\tlabel = document.createElement('div')\n\t\t\tlabel.className = 'playwright-highlight-label'\n\t\t\tlabel.style.position = 'fixed'\n\t\t\tlabel.style.background = baseColor\n\t\t\tlabel.style.color = 'white'\n\t\t\tlabel.style.padding = '1px 4px'\n\t\t\tlabel.style.borderRadius = '4px'\n\t\t\tlabel.style.fontSize = `${Math.min(12, Math.max(8, firstRect.height / 2))}px`\n\t\t\tlabel.textContent = index.toString()\n\n\t\t\tlabelWidth = label.offsetWidth > 0 ? label.offsetWidth : labelWidth // Update actual width if possible\n\t\t\tlabelHeight = label.offsetHeight > 0 ? label.offsetHeight : labelHeight // Update actual height if possible\n\n\t\t\tconst firstRectTop = firstRect.top + iframeOffset.y\n\t\t\tconst firstRectLeft = firstRect.left + iframeOffset.x\n\n\t\t\tlet labelTop = firstRectTop + 2\n\t\t\tlet labelLeft = firstRectLeft + firstRect.width - labelWidth - 2\n\n\t\t\t// Adjust label position if first rect is too small\n\t\t\tif (firstRect.width < labelWidth + 4 || firstRect.height < labelHeight + 4) {\n\t\t\t\tlabelTop = firstRectTop - labelHeight - 2\n\t\t\t\tlabelLeft = firstRectLeft + firstRect.width - labelWidth // Align with right edge\n\t\t\t\tif (labelLeft < iframeOffset.x) labelLeft = firstRectLeft // Prevent going off-left\n\t\t\t}\n\n\t\t\t// Ensure label stays within viewport bounds slightly better\n\t\t\tlabelTop = Math.max(0, Math.min(labelTop, window.innerHeight - labelHeight))\n\t\t\tlabelLeft = Math.max(0, Math.min(labelLeft, window.innerWidth - labelWidth))\n\n\t\t\tlabel.style.top = `${labelTop}px`\n\t\t\tlabel.style.left = `${labelLeft}px`\n\n\t\t\tfragment.appendChild(label)\n\n\t\t\t// Update positions on scroll/resize\n\t\t\tconst updatePositions = () => {\n\t\t\t\tconst newRects = element.getClientRects() // Get fresh rects\n\t\t\t\tlet newIframeOffset = { x: 0, y: 0 }\n\n\t\t\t\tif (parentIframe) {\n\t\t\t\t\tconst iframeRect = parentIframe.getBoundingClientRect() // Keep getBoundingClientRect for iframe\n\t\t\t\t\tnewIframeOffset.x = iframeRect.left\n\t\t\t\t\tnewIframeOffset.y = iframeRect.top\n\t\t\t\t}\n\n\t\t\t\t// Update each overlay\n\t\t\t\toverlays.forEach((overlayData, i) => {\n\t\t\t\t\tif (i < newRects.length) {\n\t\t\t\t\t\t// Check if rect still exists\n\t\t\t\t\t\tconst newRect = newRects[i]\n\t\t\t\t\t\tconst newTop = newRect.top + newIframeOffset.y\n\t\t\t\t\t\tconst newLeft = newRect.left + newIframeOffset.x\n\n\t\t\t\t\t\toverlayData.element.style.top = `${newTop}px`\n\t\t\t\t\t\toverlayData.element.style.left = `${newLeft}px`\n\t\t\t\t\t\toverlayData.element.style.width = `${newRect.width}px`\n\t\t\t\t\t\toverlayData.element.style.height = `${newRect.height}px`\n\t\t\t\t\t\toverlayData.element.style.display =\n\t\t\t\t\t\t\tnewRect.width === 0 || newRect.height === 0 ? 'none' : 'block'\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// If fewer rects now, hide extra overlays\n\t\t\t\t\t\toverlayData.element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t// If there are fewer new rects than overlays, hide the extras\n\t\t\t\tif (newRects.length < overlays.length) {\n\t\t\t\t\tfor (let i = newRects.length; i < overlays.length; i++) {\n\t\t\t\t\t\toverlays[i].element.style.display = 'none'\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Update label position based on the first new rect\n\t\t\t\tif (label && newRects.length > 0) {\n\t\t\t\t\tconst firstNewRect = newRects[0]\n\t\t\t\t\tconst firstNewRectTop = firstNewRect.top + newIframeOffset.y\n\t\t\t\t\tconst firstNewRectLeft = firstNewRect.left + newIframeOffset.x\n\n\t\t\t\t\tlet newLabelTop = firstNewRectTop + 2\n\t\t\t\t\tlet newLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth - 2\n\n\t\t\t\t\tif (firstNewRect.width < labelWidth + 4 || firstNewRect.height < labelHeight + 4) {\n\t\t\t\t\t\tnewLabelTop = firstNewRectTop - labelHeight - 2\n\t\t\t\t\t\tnewLabelLeft = firstNewRectLeft + firstNewRect.width - labelWidth\n\t\t\t\t\t\tif (newLabelLeft < newIframeOffset.x) newLabelLeft = firstNewRectLeft\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ensure label stays within viewport bounds\n\t\t\t\t\tnewLabelTop = Math.max(0, Math.min(newLabelTop, window.innerHeight - labelHeight))\n\t\t\t\t\tnewLabelLeft = Math.max(0, Math.min(newLabelLeft, window.innerWidth - labelWidth))\n\n\t\t\t\t\tlabel.style.top = `${newLabelTop}px`\n\t\t\t\t\tlabel.style.left = `${newLabelLeft}px`\n\t\t\t\t\tlabel.style.display = 'block'\n\t\t\t\t} else if (label) {\n\t\t\t\t\t// Hide label if element has no rects anymore\n\t\t\t\t\tlabel.style.display = 'none'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttleFunction = (func, delay) => {\n\t\t\t\tlet lastCall = 0\n\t\t\t\treturn (...args) => {\n\t\t\t\t\tconst now = performance.now()\n\t\t\t\t\tif (now - lastCall < delay) return\n\t\t\t\t\tlastCall = now\n\t\t\t\t\treturn func(...args)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst throttledUpdatePositions = throttleFunction(updatePositions, 16) // ~60fps\n\t\t\twindow.addEventListener('scroll', throttledUpdatePositions, true)\n\t\t\twindow.addEventListener('resize', throttledUpdatePositions)\n\n\t\t\t// Add cleanup function\n\t\t\tcleanupFn = () => {\n\t\t\t\twindow.removeEventListener('scroll', throttledUpdatePositions, true)\n\t\t\t\twindow.removeEventListener('resize', throttledUpdatePositions)\n\t\t\t\t// Remove overlay elements if needed\n\t\t\t\toverlays.forEach((overlay) => overlay.element.remove())\n\t\t\t\tif (label) label.remove()\n\t\t\t}\n\n\t\t\t// Then add fragment to container in one operation\n\t\t\tcontainer.appendChild(fragment)\n\n\t\t\treturn index + 1\n\t\t} finally {\n\t\t\t// Store cleanup function for later use\n\t\t\tif (cleanupFn) {\n\t\t\t\t// Keep a reference to cleanup functions in a global array\n\t\t\t\t;(window._highlightCleanupFunctions = window._highlightCleanupFunctions || []).push(\n\t\t\t\t\tcleanupFn\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t// // Add this function to perform cleanup when needed\n\t// function cleanupHighlights() {\n\t// if (window._highlightCleanupFunctions && window._highlightCleanupFunctions.length) {\n\t// window._highlightCleanupFunctions.forEach(fn => fn());\n\t// window._highlightCleanupFunctions = [];\n\t// }\n\n\t// // Also remove the container\n\t// const container = document.getElementById(HIGHLIGHT_CONTAINER_ID);\n\t// if (container) container.remove();\n\t// }\n\n\t/**\n\t * Gets the position of an element in its parent.\n\t *\n\t * @param {HTMLElement} currentElement - The element to get the position for.\n\t * @returns {number} The position of the element in its parent.\n\t */\n\tfunction getElementPosition(currentElement) {\n\t\tif (!currentElement.parentElement) {\n\t\t\treturn 0 // No parent means no siblings\n\t\t}\n\n\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\n\t\tconst siblings = Array.from(currentElement.parentElement.children).filter(\n\t\t\t(sib) => sib.nodeName.toLowerCase() === tagName\n\t\t)\n\n\t\tif (siblings.length === 1) {\n\t\t\treturn 0 // Only element of its type\n\t\t}\n\n\t\tconst index = siblings.indexOf(currentElement) + 1 // 1-based index\n\t\treturn index\n\t}\n\n\tfunction getXPathTree(element, stopAtBoundary = true) {\n\t\tif (xpathCache.has(element)) return xpathCache.get(element)\n\n\t\tconst segments = []\n\t\tlet currentElement = element\n\n\t\twhile (currentElement && currentElement.nodeType === Node.ELEMENT_NODE) {\n\t\t\t// Stop if we hit a shadow root or iframe\n\t\t\tif (\n\t\t\t\tstopAtBoundary &&\n\t\t\t\t(currentElement.parentNode instanceof ShadowRoot ||\n\t\t\t\t\tcurrentElement.parentNode instanceof HTMLIFrameElement)\n\t\t\t) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tconst position = getElementPosition(currentElement)\n\t\t\tconst tagName = currentElement.nodeName.toLowerCase()\n\t\t\tconst xpathIndex = position > 0 ? `[${position}]` : ''\n\t\t\tsegments.unshift(`${tagName}${xpathIndex}`)\n\n\t\t\tcurrentElement = currentElement.parentNode\n\t\t}\n\n\t\tconst result = segments.join('/')\n\t\txpathCache.set(element, result)\n\t\treturn result\n\t}\n\n\t/**\n\t * @edit scrollable element detection\n\t * Checks if an element is scrollable. if so, return the scrollable distance on each direction (left right top bottom). if not return null.\n\t * @note distance smaller than 4 will be considered as not scrollable.\n\t * @note only check block elements, not inline elements.\n\t */\n\tfunction isScrollableElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn null // Not a valid element\n\t\t}\n\n\t\tconst style = getCachedComputedStyle(element)\n\t\tif (!style) return null\n\n\t\t// Check if the element is a block-level element\n\t\tconst display = style.display\n\t\tif (display === 'inline' || display === 'inline-block') {\n\t\t\treturn null // Not a block-level element\n\t\t}\n\n\t\t// Check overflow properties\n\t\tconst overflowX = style.overflowX\n\t\tconst overflowY = style.overflowY\n\n\t\t// Check scrollable distances\n\t\tconst scrollableX = overflowX === 'auto' || overflowX === 'scroll'\n\t\tconst scrollableY = overflowY === 'auto' || overflowY === 'scroll'\n\n\t\tif (!scrollableX && !scrollableY) {\n\t\t\treturn null // Not scrollable in any direction\n\t\t}\n\n\t\tconst scrollWidth = element.scrollWidth - element.clientWidth\n\t\tconst scrollHeight = element.scrollHeight - element.clientHeight\n\n\t\t// Consider small distances as not scrollable\n\t\tconst threshold = 4\n\n\t\tif (scrollWidth < threshold && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable\n\t\t}\n\n\t\tif (!scrollableY && scrollWidth < threshold) {\n\t\t\treturn null // Not scrollable horizontally\n\t\t}\n\n\t\tif (!scrollableX && scrollHeight < threshold) {\n\t\t\treturn null // Not scrollable vertically\n\t\t}\n\n\t\tconst distanceToTop = element.scrollTop\n\t\tconst distanceToLeft = element.scrollLeft\n\t\tconst distanceToRight = element.scrollWidth - element.clientWidth - element.scrollLeft\n\t\tconst distanceToBottom = element.scrollHeight - element.clientHeight - element.scrollTop\n\n\t\tconst scrollData = {\n\t\t\ttop: distanceToTop,\n\t\t\tright: distanceToRight,\n\t\t\tbottom: distanceToBottom,\n\t\t\tleft: distanceToLeft,\n\t\t}\n\n\t\t// Store extra data for the element\n\t\taddExtraData(element, {\n\t\t\tscrollable: true,\n\t\t\tscrollData: scrollData,\n\t\t})\n\n\t\treturn scrollData\n\t}\n\n\t/**\n\t * Checks if a text node is visible.\n\t *\n\t * @param {Text} textNode - The text node to check.\n\t * @returns {boolean} Whether the text node is visible.\n\t */\n\tfunction isTextNodeVisible(textNode) {\n\t\ttry {\n\t\t\t// Special case: when viewportExpansion is -1, consider all text nodes as visible\n\t\t\tif (viewportExpansion === -1) {\n\t\t\t\t// Still check parent visibility for basic filtering\n\t\t\t\tconst parentElement = textNode.parentElement\n\t\t\t\tif (!parentElement) return false\n\n\t\t\t\ttry {\n\t\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t\t})\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(textNode)\n\t\t\tconst rects = range.getClientRects() // Use getClientRects for Range\n\n\t\t\tif (!rects || rects.length === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet isAnyRectVisible = false\n\t\t\tlet isAnyRectInViewport = false\n\n\t\t\tfor (const rect of rects) {\n\t\t\t\t// Check size\n\t\t\t\tif (rect.width > 0 && rect.height > 0) {\n\t\t\t\t\tisAnyRectVisible = true\n\n\t\t\t\t\t// Viewport check for this rect\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(\n\t\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tisAnyRectInViewport = true\n\t\t\t\t\t\tbreak // Found a visible rect in viewport, no need to check others\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!isAnyRectVisible || !isAnyRectInViewport) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check parent visibility\n\t\t\tconst parentElement = textNode.parentElement\n\t\t\tif (!parentElement) return false\n\n\t\t\ttry {\n\t\t\t\treturn parentElement.checkVisibility({\n\t\t\t\t\tcheckOpacity: true,\n\t\t\t\t\tcheckVisibilityCSS: true,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\t// Fallback if checkVisibility is not supported\n\t\t\t\tconst style = window.getComputedStyle(parentElement)\n\t\t\t\treturn style.display !== 'none' && style.visibility !== 'hidden' && style.opacity !== '0'\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.warn('Error checking text node visibility:', e)\n\t\t\treturn false\n\t\t}\n\t}\n\n\t/**\n\t * Checks if an element is accepted.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is accepted.\n\t */\n\tfunction isElementAccepted(element) {\n\t\tif (!element || !element.tagName) return false\n\n\t\t// Always accept body and common container elements\n\t\tconst alwaysAccept = new Set([\n\t\t\t'body',\n\t\t\t'div',\n\t\t\t'main',\n\t\t\t'article',\n\t\t\t'section',\n\t\t\t'nav',\n\t\t\t'header',\n\t\t\t'footer',\n\t\t])\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\tif (alwaysAccept.has(tagName)) return true\n\n\t\tconst leafElementDenyList = new Set([\n\t\t\t'svg',\n\t\t\t'script',\n\t\t\t'style',\n\t\t\t'link',\n\t\t\t'meta',\n\t\t\t'noscript',\n\t\t\t'template',\n\t\t])\n\n\t\treturn !leafElementDenyList.has(tagName)\n\t}\n\n\t/**\n\t * Checks if an element is visible.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is visible.\n\t */\n\tfunction isElementVisible(element) {\n\t\tconst style = getCachedComputedStyle(element)\n\t\treturn (\n\t\t\telement.offsetWidth > 0 &&\n\t\t\telement.offsetHeight > 0 &&\n\t\t\tstyle?.visibility !== 'hidden' &&\n\t\t\tstyle?.display !== 'none'\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element is interactive.\n\t *\n\t * lots of comments, and uncommented code - to show the logic of what we already tried\n\t *\n\t * One of the things we tried at the beginning was also to use event listeners, and other fancy class, style stuff -> what actually worked best was just combining most things with computed cursor style :)\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t */\n\tfunction isInteractiveElement(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\t/**\n\t\t * @edit add interactiveBlacklist interactiveWhitelist\n\t\t */\n\t\tif (interactiveBlacklist.includes(element)) {\n\t\t\treturn false // Skip blacklisted elements\n\t\t}\n\t\tif (interactiveWhitelist.includes(element)) {\n\t\t\treturn true // Skip whitelisted elements\n\t\t}\n\n\t\t// Cache the tagName and style lookups\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst style = getCachedComputedStyle(element)\n\n\t\t// Define interactive cursors\n\t\tconst interactiveCursors = new Set([\n\t\t\t'pointer', // Link/clickable elements\n\t\t\t'move', // Movable elements\n\t\t\t'text', // Text selection\n\t\t\t'grab', // Grabbable elements\n\t\t\t'grabbing', // Currently grabbing\n\t\t\t'cell', // Table cell selection\n\t\t\t'copy', // Copy operation\n\t\t\t'alias', // Alias creation\n\t\t\t'all-scroll', // Scrollable content\n\t\t\t'col-resize', // Column resize\n\t\t\t'context-menu', // Context menu available\n\t\t\t'crosshair', // Precise selection\n\t\t\t'e-resize', // East resize\n\t\t\t'ew-resize', // East-west resize\n\t\t\t'help', // Help available\n\t\t\t'n-resize', // North resize\n\t\t\t'ne-resize', // Northeast resize\n\t\t\t'nesw-resize', // Northeast-southwest resize\n\t\t\t'ns-resize', // North-south resize\n\t\t\t'nw-resize', // Northwest resize\n\t\t\t'nwse-resize', // Northwest-southeast resize\n\t\t\t'row-resize', // Row resize\n\t\t\t's-resize', // South resize\n\t\t\t'se-resize', // Southeast resize\n\t\t\t'sw-resize', // Southwest resize\n\t\t\t'vertical-text', // Vertical text selection\n\t\t\t'w-resize', // West resize\n\t\t\t'zoom-in', // Zoom in\n\t\t\t'zoom-out', // Zoom out\n\t\t])\n\n\t\t// Define non-interactive cursors\n\t\tconst nonInteractiveCursors = new Set([\n\t\t\t'not-allowed', // Action not allowed\n\t\t\t'no-drop', // Drop not allowed\n\t\t\t'wait', // Processing\n\t\t\t'progress', // In progress\n\t\t\t'initial', // Initial value\n\t\t\t'inherit', // Inherited value\n\t\t\t//? Let's just include all potentially clickable elements that are not specifically blocked\n\t\t\t// 'none', // No cursor\n\t\t\t// 'default', // Default cursor\n\t\t\t// 'auto', // Browser default\n\t\t])\n\n\t\t/**\n\t\t * Checks if an element has an interactive pointer.\n\t\t *\n\t\t * @param {HTMLElement} element - The element to check.\n\t\t * @returns {boolean} Whether the element has an interactive pointer.\n\t\t */\n\t\tfunction doesElementHaveInteractivePointer(element) {\n\t\t\tif (element.tagName.toLowerCase() === 'html') return false\n\n\t\t\tif (style?.cursor && interactiveCursors.has(style.cursor)) return true\n\n\t\t\treturn false\n\t\t}\n\n\t\tlet isInteractiveCursor = doesElementHaveInteractivePointer(element)\n\n\t\t// Genius fix for almost all interactive elements\n\t\tif (isInteractiveCursor) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveElements = new Set([\n\t\t\t'a', // Links\n\t\t\t'button', // Buttons\n\t\t\t'input', // All input types (text, checkbox, radio, etc.)\n\t\t\t'select', // Dropdown menus\n\t\t\t'textarea', // Text areas\n\t\t\t'details', // Expandable details\n\t\t\t'summary', // Summary element (clickable part of details)\n\t\t\t'label', // Form labels (often clickable)\n\t\t\t'option', // Select options\n\t\t\t'optgroup', // Option groups\n\t\t\t'fieldset', // Form fieldsets (can be interactive with legend)\n\t\t\t'legend', // Fieldset legends\n\t\t])\n\n\t\t// Define explicit disable attributes and properties\n\t\tconst explicitDisableTags = new Set([\n\t\t\t'disabled', // Standard disabled attribute\n\t\t\t// 'aria-disabled', // ARIA disabled state\n\t\t\t'readonly', // Read-only state\n\t\t\t// 'aria-readonly', // ARIA read-only state\n\t\t\t// 'aria-hidden', // Hidden from accessibility\n\t\t\t// 'hidden', // Hidden attribute\n\t\t\t// 'inert', // Inert attribute\n\t\t\t// 'aria-inert', // ARIA inert state\n\t\t\t// 'tabindex=\"-1\"', // Removed from tab order\n\t\t\t// 'aria-hidden=\"true\"' // Hidden from screen readers\n\t\t])\n\n\t\t// handle inputs, select, checkbox, radio, textarea, button and make sure they are not cursor style disabled/not-allowed\n\t\tif (interactiveElements.has(tagName)) {\n\t\t\t// Check for non-interactive cursor\n\t\t\tif (style?.cursor && nonInteractiveCursors.has(style.cursor)) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for explicit disable attributes\n\t\t\tfor (const disableTag of explicitDisableTags) {\n\t\t\t\tif (\n\t\t\t\t\telement.hasAttribute(disableTag) ||\n\t\t\t\t\telement.getAttribute(disableTag) === 'true' ||\n\t\t\t\t\telement.getAttribute(disableTag) === ''\n\t\t\t\t) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check for disabled property on form elements\n\t\t\tif (element.disabled) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for readonly property on form elements\n\t\t\tif (element.readOnly) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Check for inert property\n\t\t\tif (element.inert) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn true\n\t\t}\n\n\t\tconst role = element.getAttribute('role')\n\t\tconst ariaRole = element.getAttribute('aria-role')\n\n\t\t// Check for contenteditable attribute\n\t\tif (element.getAttribute('contenteditable') === 'true' || element.isContentEditable) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Added enhancement to capture dropdown interactive elements\n\t\tif (\n\t\t\telement.classList &&\n\t\t\t(element.classList.contains('button') ||\n\t\t\t\telement.classList.contains('dropdown-toggle') ||\n\t\t\t\telement.getAttribute('data-index') ||\n\t\t\t\telement.getAttribute('data-toggle') === 'dropdown' ||\n\t\t\t\telement.getAttribute('aria-haspopup') === 'true')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst interactiveRoles = new Set([\n\t\t\t'button', // Directly clickable element\n\t\t\t// 'link', // Clickable link\n\t\t\t'menu', // Menu container (ARIA menus)\n\t\t\t'menubar', // Menu bar container\n\t\t\t'menuitem', // Clickable menu item\n\t\t\t'menuitemradio', // Radio-style menu item (selectable)\n\t\t\t'menuitemcheckbox', // Checkbox-style menu item (toggleable)\n\t\t\t'radio', // Radio button (selectable)\n\t\t\t'checkbox', // Checkbox (toggleable)\n\t\t\t'tab', // Tab (clickable to switch content)\n\t\t\t'switch', // Toggle switch (clickable to change state)\n\t\t\t'slider', // Slider control (draggable)\n\t\t\t'spinbutton', // Number input with up/down controls\n\t\t\t'combobox', // Dropdown with text input\n\t\t\t'searchbox', // Search input field\n\t\t\t'textbox', // Text input field\n\t\t\t'listbox', // Selectable list\n\t\t\t'option', // Selectable option in a list\n\t\t\t'scrollbar', // Scrollable control\n\t\t])\n\n\t\t// Basic role/attribute checks\n\t\tconst hasInteractiveRole =\n\t\t\tinteractiveElements.has(tagName) ||\n\t\t\t(role && interactiveRoles.has(role)) ||\n\t\t\t(ariaRole && interactiveRoles.has(ariaRole))\n\n\t\tif (hasInteractiveRole) return true\n\n\t\t// check whether element has event listeners by window.getEventListeners\n\t\ttry {\n\t\t\tif (typeof getEventListeners === 'function') {\n\t\t\t\tconst listeners = getEventListeners(element)\n\t\t\t\tconst mouseEvents = ['click', 'mousedown', 'mouseup', 'dblclick']\n\t\t\t\tfor (const eventType of mouseEvents) {\n\t\t\t\t\tif (listeners[eventType] && listeners[eventType].length > 0) {\n\t\t\t\t\t\treturn true // Found a mouse interaction listener\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListeners doesn't work in page.evaluate context)\n\t\t\tconst commonMouseAttrs = ['onclick', 'onmousedown', 'onmouseup', 'ondblclick']\n\t\t\tfor (const attr of commonMouseAttrs) {\n\t\t\t\tif (element.hasAttribute(attr) || typeof element[attr] === 'function') {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t/**\n\t\t * @edit scrollable element detection\n\t\t */\n\t\tif (isScrollableElement(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\t/**\n\t * Checks if an element is the topmost element at its position.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is the topmost element at its position.\n\t */\n\tfunction isTopElement(element) {\n\t\t// Special case: when viewportExpansion is -1, consider all elements as \"top\" elements\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = getCachedClientRects(element) // Replace element.getClientRects()\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\treturn false // No geometry, cannot be top\n\t\t}\n\n\t\tlet isAnyRectInViewport = false\n\t\tfor (const rect of rects) {\n\t\t\t// Use the same logic as isInExpandedViewport check\n\t\t\tif (\n\t\t\t\trect.width > 0 &&\n\t\t\t\trect.height > 0 &&\n\t\t\t\t!(\n\t\t\t\t\t// Only check non-empty rects\n\t\t\t\t\t(\n\t\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tisAnyRectInViewport = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (!isAnyRectInViewport) {\n\t\t\treturn false // All rects are outside the viewport area\n\t\t}\n\n\t\t// Find the correct document context and root element\n\t\tlet doc = element.ownerDocument\n\n\t\t// If we're in an iframe, elements are considered top by default\n\t\tif (doc !== window.document) {\n\t\t\treturn true\n\t\t}\n\n\t\t/**\n\t\t * @edit improve `sampleRect`, filter out rects with 0 area\n\t\t */\n\t\t// find a rect that has width and height as sample\n\t\tlet rect = Array.from(rects).find((r) => r.width > 0 && r.height > 0)\n\t\tif (!rect) {\n\t\t\treturn false // No valid rect found\n\t\t}\n\n\t\t// For shadow DOM, we need to check within its own root context\n\t\tconst shadowRoot = element.getRootNode()\n\t\tif (shadowRoot instanceof ShadowRoot) {\n\t\t\tconst centerX = rect.left + rect.width / 2\n\t\t\tconst centerY = rect.top + rect.height / 2\n\n\t\t\ttry {\n\t\t\t\tconst topEl = shadowRoot.elementFromPoint(centerX, centerY)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== shadowRoot) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\n\t\tconst margin = 5\n\n\t\t// For elements in viewport, check if they're topmost. Do the check in the\n\t\t// center of the element and at the corners to ensure we catch more cases.\n\t\tconst checkPoints = [\n\t\t\t// Initially only this was used, but it was not enough\n\t\t\t{ x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 },\n\t\t\t{ x: rect.left + margin, y: rect.top + margin }, // top left\n\t\t\t// { x: rect.right - margin, y: rect.top + margin }, // top right\n\t\t\t// { x: rect.left + margin, y: rect.bottom - margin }, // bottom left\n\t\t\t{ x: rect.right - margin, y: rect.bottom - margin }, // bottom right\n\t\t]\n\n\t\treturn checkPoints.some(({ x, y }) => {\n\t\t\ttry {\n\t\t\t\tconst topEl = document.elementFromPoint(x, y)\n\t\t\t\tif (!topEl) return false\n\n\t\t\t\tlet current = topEl\n\t\t\t\twhile (current && current !== document.documentElement) {\n\t\t\t\t\tif (current === element) return true\n\t\t\t\t\tcurrent = current.parentElement\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t} catch (e) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * Checks if an element is within the expanded viewport.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @param {number} viewportExpansion - The viewport expansion.\n\t * @returns {boolean} Whether the element is within the expanded viewport.\n\t */\n\tfunction isInExpandedViewport(element, viewportExpansion) {\n\t\tif (viewportExpansion === -1) {\n\t\t\treturn true\n\t\t}\n\n\t\tconst rects = element.getClientRects() // Use getClientRects\n\n\t\tif (!rects || rects.length === 0) {\n\t\t\t// Fallback to getBoundingClientRect if getClientRects is empty,\n\t\t\t// useful for elements like <svg> that might not have client rects but have a bounding box.\n\t\t\tconst boundingRect = getCachedBoundingRect(element)\n\t\t\tif (!boundingRect || boundingRect.width === 0 || boundingRect.height === 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn !(\n\t\t\t\tboundingRect.bottom < -viewportExpansion ||\n\t\t\t\tboundingRect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\tboundingRect.right < -viewportExpansion ||\n\t\t\t\tboundingRect.left > window.innerWidth + viewportExpansion\n\t\t\t)\n\t\t}\n\n\t\t// Check if *any* client rect is within the viewport\n\t\tfor (const rect of rects) {\n\t\t\tif (rect.width === 0 || rect.height === 0) continue // Skip empty rects\n\n\t\t\tif (\n\t\t\t\t!(\n\t\t\t\t\trect.bottom < -viewportExpansion ||\n\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\trect.left > window.innerWidth + viewportExpansion\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn true // Found at least one rect in the viewport\n\t\t\t}\n\t\t}\n\n\t\treturn false // No rects were found in the viewport\n\t}\n\n\t// /**\n\t// * Gets the effective scroll of an element.\n\t// *\n\t// * @param {HTMLElement} element - The element to get the effective scroll for.\n\t// * @returns {Object} The effective scroll of the element.\n\t// */\n\t// function getEffectiveScroll(element) {\n\t// let currentEl = element;\n\t// let scrollX = 0;\n\t// let scrollY = 0;\n\n\t// while (currentEl && currentEl !== document.documentElement) {\n\t// if (currentEl.scrollLeft || currentEl.scrollTop) {\n\t// scrollX += currentEl.scrollLeft;\n\t// scrollY += currentEl.scrollTop;\n\t// }\n\t// currentEl = currentEl.parentElement;\n\t// }\n\n\t// scrollX += window.scrollX;\n\t// scrollY += window.scrollY;\n\n\t// return { scrollX, scrollY };\n\t// }\n\n\t/**\n\t * Checks if an element is an interactive candidate.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is an interactive candidate.\n\t */\n\tfunction isInteractiveCandidate(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\n\t\t// Fast-path for common interactive elements\n\t\tconst interactiveElements = new Set([\n\t\t\t'a',\n\t\t\t'button',\n\t\t\t'input',\n\t\t\t'select',\n\t\t\t'textarea',\n\t\t\t'details',\n\t\t\t'summary',\n\t\t\t'label',\n\t\t])\n\n\t\tif (interactiveElements.has(tagName)) return true\n\n\t\t// Quick attribute checks without getting full lists\n\t\tconst hasQuickInteractiveAttr =\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('aria-') ||\n\t\t\telement.hasAttribute('data-action') ||\n\t\t\telement.getAttribute('contenteditable') === 'true'\n\n\t\treturn hasQuickInteractiveAttr\n\t}\n\n\t// --- Define constants for distinct interaction check ---\n\tconst DISTINCT_INTERACTIVE_TAGS = new Set([\n\t\t'a',\n\t\t'button',\n\t\t'input',\n\t\t'select',\n\t\t'textarea',\n\t\t'summary',\n\t\t'details',\n\t\t'label',\n\t\t'option',\n\t])\n\tconst INTERACTIVE_ROLES = new Set([\n\t\t'button',\n\t\t'link',\n\t\t'menuitem',\n\t\t'menuitemradio',\n\t\t'menuitemcheckbox',\n\t\t'radio',\n\t\t'checkbox',\n\t\t'tab',\n\t\t'switch',\n\t\t'slider',\n\t\t'spinbutton',\n\t\t'combobox',\n\t\t'searchbox',\n\t\t'textbox',\n\t\t'listbox',\n\t\t'option',\n\t\t'scrollbar',\n\t])\n\n\t/**\n\t * Heuristically determines if an element should be considered as independently interactive,\n\t * even if it's nested inside another interactive container.\n\t *\n\t * This function helps detect deeply nested actionable elements (e.g., menu items within a button)\n\t * that may not be picked up by strict interactivity checks.\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is heuristically interactive.\n\t */\n\tfunction isHeuristicallyInteractive(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) return false\n\n\t\t// Skip non-visible elements early for performance\n\t\tif (!isElementVisible(element)) return false\n\n\t\t// Check for common attributes that often indicate interactivity\n\t\tconst hasInteractiveAttributes =\n\t\t\telement.hasAttribute('role') ||\n\t\t\telement.hasAttribute('tabindex') ||\n\t\t\telement.hasAttribute('onclick') ||\n\t\t\ttypeof element.onclick === 'function'\n\n\t\t// Check for semantic class names suggesting interactivity\n\t\tconst hasInteractiveClass = /\\b(btn|clickable|menu|item|entry|link)\\b/i.test(\n\t\t\telement.className || ''\n\t\t)\n\n\t\t// Determine whether the element is inside a known interactive container\n\t\tconst isInKnownContainer = Boolean(\n\t\t\telement.closest('button,a,[role=\"button\"],.menu,.dropdown,.list,.toolbar')\n\t\t)\n\n\t\t// Ensure the element has at least one visible child (to avoid marking empty wrappers)\n\t\tconst hasVisibleChildren = [...element.children].some(isElementVisible)\n\n\t\t// Avoid highlighting elements whose parent is <body> (top-level wrappers)\n\t\tconst isParentBody = element.parentElement && element.parentElement.isSameNode(document.body)\n\n\t\treturn (\n\t\t\t(isInteractiveElement(element) || hasInteractiveAttributes || hasInteractiveClass) &&\n\t\t\thasVisibleChildren &&\n\t\t\tisInKnownContainer &&\n\t\t\t!isParentBody\n\t\t)\n\t}\n\n\t/**\n\t * Checks if an element likely represents a distinct interaction\n\t * separate from its parent (if the parent is also interactive).\n\t *\n\t * @param {HTMLElement} element - The element to check.\n\t * @returns {boolean} Whether the element is a distinct interaction.\n\t */\n\tfunction isElementDistinctInteraction(element) {\n\t\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst tagName = element.tagName.toLowerCase()\n\t\tconst role = element.getAttribute('role')\n\n\t\t// Check if it's an iframe - always distinct boundary\n\t\tif (tagName === 'iframe') {\n\t\t\treturn true\n\t\t}\n\n\t\t// Check tag name\n\t\tif (DISTINCT_INTERACTIVE_TAGS.has(tagName)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check interactive roles\n\t\tif (role && INTERACTIVE_ROLES.has(role)) {\n\t\t\treturn true\n\t\t}\n\t\t// Check contenteditable\n\t\tif (element.isContentEditable || element.getAttribute('contenteditable') === 'true') {\n\t\t\treturn true\n\t\t}\n\t\t// Check for common testing/automation attributes\n\t\tif (\n\t\t\telement.hasAttribute('data-testid') ||\n\t\t\telement.hasAttribute('data-cy') ||\n\t\t\telement.hasAttribute('data-test')\n\t\t) {\n\t\t\treturn true\n\t\t}\n\t\t// Check for explicit onclick handler (attribute or property)\n\t\tif (element.hasAttribute('onclick') || typeof element.onclick === 'function') {\n\t\t\treturn true\n\t\t}\n\n\t\t// return false\n\n\t\t// Check for other common interaction event listeners\n\t\ttry {\n\t\t\tconst getEventListenersForNode =\n\t\t\t\telement?.ownerDocument?.defaultView?.getEventListenersForNode ||\n\t\t\t\twindow.getEventListenersForNode\n\t\t\tif (typeof getEventListenersForNode === 'function') {\n\t\t\t\tconst listeners = getEventListenersForNode(element)\n\t\t\t\tconst interactionEvents = [\n\t\t\t\t\t'click',\n\t\t\t\t\t'mousedown',\n\t\t\t\t\t'mouseup',\n\t\t\t\t\t'keydown',\n\t\t\t\t\t'keyup',\n\t\t\t\t\t'submit',\n\t\t\t\t\t'change',\n\t\t\t\t\t'input',\n\t\t\t\t\t'focus',\n\t\t\t\t\t'blur',\n\t\t\t\t]\n\t\t\t\tfor (const eventType of interactionEvents) {\n\t\t\t\t\tfor (const listener of listeners) {\n\t\t\t\t\t\tif (listener.type === eventType) {\n\t\t\t\t\t\t\treturn true // Found a common interaction listener\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Fallback: Check common event attributes if getEventListeners is not available (getEventListenersForNode doesn't work in page.evaluate context)\n\t\t\tconst commonEventAttrs = [\n\t\t\t\t'onmousedown',\n\t\t\t\t'onmouseup',\n\t\t\t\t'onkeydown',\n\t\t\t\t'onkeyup',\n\t\t\t\t'onsubmit',\n\t\t\t\t'onchange',\n\t\t\t\t'oninput',\n\t\t\t\t'onfocus',\n\t\t\t\t'onblur',\n\t\t\t]\n\t\t\tif (commonEventAttrs.some((attr) => element.hasAttribute(attr))) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// console.warn(`Could not check event listeners for ${element.tagName}:`, e);\n\t\t\t// If checking listeners fails, rely on other checks\n\t\t}\n\n\t\t// if the element is not strictly interactive but appears clickable based on heuristic signals\n\t\tif (isHeuristicallyInteractive(element)) {\n\t\t\treturn true\n\t\t}\n\n\t\t// Default to false: if it's interactive but doesn't match above,\n\t\t// assume it triggers the same action as the parent.\n\t\treturn false\n\t}\n\t// --- End distinct interaction check ---\n\n\t/**\n * Handles the logic for deciding whether to highlight an element and performing the highlight.\n * @param {\n {\n tagName: string;\n attributes: Record<string, string>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }} nodeData - The node data object.\n * @param {HTMLElement} node - The node to highlight.\n * @param {HTMLElement | null} parentIframe - The parent iframe node.\n * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n * @returns {boolean} Whether the element was highlighted.\n */\n\tfunction handleHighlighting(nodeData, node, parentIframe, isParentHighlighted) {\n\t\tif (!nodeData.isInteractive) return false // Not interactive, definitely don't highlight\n\n\t\tlet shouldHighlight = false\n\t\tif (!isParentHighlighted) {\n\t\t\t// Parent wasn't highlighted, this interactive node can be highlighted.\n\t\t\tshouldHighlight = true\n\t\t} else {\n\t\t\t// Parent *was* highlighted. Only highlight this node if it represents a distinct interaction.\n\t\t\tif (isElementDistinctInteraction(node)) {\n\t\t\t\tshouldHighlight = true\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (parent highlighted)`);\n\t\t\t\tshouldHighlight = false\n\t\t\t}\n\t\t}\n\n\t\tif (shouldHighlight) {\n\t\t\t// Check viewport status before assigning index and highlighting\n\t\t\tnodeData.isInViewport = isInExpandedViewport(node, viewportExpansion)\n\n\t\t\t// When viewportExpansion is -1, all interactive elements should get a highlight index\n\t\t\t// regardless of viewport status\n\t\t\tif (nodeData.isInViewport || viewportExpansion === -1) {\n\t\t\t\tnodeData.highlightIndex = highlightIndex++\n\n\t\t\t\tif (doHighlightElements) {\n\t\t\t\t\tif (focusHighlightIndex >= 0) {\n\t\t\t\t\t\tif (focusHighlightIndex === nodeData.highlightIndex) {\n\t\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\thighlightElement(node, nodeData.highlightIndex, parentIframe)\n\t\t\t\t\t}\n\t\t\t\t\treturn true // Successfully highlighted\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// console.log(`Skipping highlight for ${nodeData.tagName} (outside viewport)`);\n\t\t\t}\n\t\t}\n\n\t\treturn false // Did not highlight\n\t}\n\n\t/**\n\t * Creates a node data object for a given node and its descendants.\n\t *\n\t * @param {HTMLElement} node - The node to process.\n\t * @param {HTMLElement | null} parentIframe - The parent iframe node.\n\t * @param {boolean} isParentHighlighted - Whether the parent node is highlighted.\n\t * @returns {string | null} The ID of the node data object, or null if the node is not processed.\n\t */\n\tfunction buildDomTree(node, parentIframe = null, isParentHighlighted = false) {\n\t\t// Fast rejection checks first\n\t\tif (\n\t\t\t!node ||\n\t\t\tnode.id === HIGHLIGHT_CONTAINER_ID ||\n\t\t\t(node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE)\n\t\t) {\n\t\t\treturn null\n\t\t}\n\n\t\tif (!node || node.id === HIGHLIGHT_CONTAINER_ID) {\n\t\t\treturn null\n\t\t}\n\n\t\t/**\n\t\t * @edit add `data-browser-use-ignore` attribute\n\t\t */\n\t\tif (node.dataset?.browserUseIgnore === 'true' || node.dataset?.pageAgentIgnore === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t/**\n\t\t * @edit exclude aria-hidden elements\n\t\t */\n\t\tif (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {\n\t\t\treturn null // Skip this node and its children\n\t\t}\n\n\t\t// Special handling for root node (body)\n\t\tif (node === document.body) {\n\t\t\tconst nodeData = {\n\t\t\t\ttagName: 'body',\n\t\t\t\tattributes: {},\n\t\t\t\txpath: '/body',\n\t\t\t\tchildren: [],\n\t\t\t}\n\n\t\t\t// Process children of body\n\t\t\tfor (const child of node.childNodes) {\n\t\t\t\tconst domElement = buildDomTree(child, parentIframe, false) // Body's children have no highlighted parent initially\n\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = nodeData\n\t\t\treturn id\n\t\t}\n\n\t\t// Early bailout for non-element nodes except text\n\t\tif (node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.TEXT_NODE) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Process text nodes\n\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\tconst textContent = node.textContent?.trim()\n\t\t\tif (!textContent) {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\t// Only check visibility for text nodes that might be visible\n\t\t\tconst parentElement = node.parentElement\n\t\t\tif (!parentElement || parentElement.tagName.toLowerCase() === 'script') {\n\t\t\t\treturn null\n\t\t\t}\n\n\t\t\tconst id = `${ID.current++}`\n\t\t\tDOM_HASH_MAP[id] = {\n\t\t\t\ttype: 'TEXT_NODE',\n\t\t\t\ttext: textContent,\n\t\t\t\tisVisible: isTextNodeVisible(node),\n\t\t\t}\n\t\t\treturn id\n\t\t}\n\n\t\t// Quick checks for element nodes\n\t\tif (node.nodeType === Node.ELEMENT_NODE && !isElementAccepted(node)) {\n\t\t\treturn null\n\t\t}\n\n\t\t// Early viewport check - only filter out elements clearly outside viewport\n\t\t// The getBoundingClientRect() of the Shadow DOM host element may return width/height = 0\n\t\tif (viewportExpansion !== -1 && !node.shadowRoot) {\n\t\t\tconst rect = getCachedBoundingRect(node) // Keep for initial quick check\n\t\t\tconst style = getCachedComputedStyle(node)\n\n\t\t\t// Skip viewport check for fixed/sticky elements as they may appear anywhere\n\t\t\tconst isFixedOrSticky = style && (style.position === 'fixed' || style.position === 'sticky')\n\n\t\t\t// Check if element has actual dimensions using offsetWidth/Height (quick check)\n\t\t\tconst hasSize = node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\t// Use getBoundingClientRect for the quick OUTSIDE check.\n\t\t\t// isInExpandedViewport will do the more accurate check later if needed.\n\t\t\tif (\n\t\t\t\t!rect ||\n\t\t\t\t(!isFixedOrSticky &&\n\t\t\t\t\t!hasSize &&\n\t\t\t\t\t(rect.bottom < -viewportExpansion ||\n\t\t\t\t\t\trect.top > window.innerHeight + viewportExpansion ||\n\t\t\t\t\t\trect.right < -viewportExpansion ||\n\t\t\t\t\t\trect.left > window.innerWidth + viewportExpansion))\n\t\t\t) {\n\t\t\t\t// console.log(\"Skipping node outside viewport (quick check):\", node.tagName, rect);\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n * @type {\n {\n tagName: string;\n attributes: Record<string, string | null>;\n xpath: any;\n children: never[];\n isVisible?: boolean;\n isTopElement?: boolean;\n isInteractive?: boolean;\n isInViewport?: boolean;\n highlightIndex?: number;\n shadowRoot?: boolean;\n }\n } nodeData - The node data object.\n */\n\t\tconst nodeData = {\n\t\t\ttagName: node.tagName.toLowerCase(),\n\t\t\tattributes: {},\n\n\t\t\t/**\n\t\t\t * @edit no need for xpath\n\t\t\t */\n\t\t\t// xpath: getXPathTree(node, true),\n\n\t\t\tchildren: [],\n\t\t}\n\n\t\t// Get attributes for interactive elements or potential text containers\n\t\tif (\n\t\t\tisInteractiveCandidate(node) ||\n\t\t\tnode.tagName.toLowerCase() === 'iframe' ||\n\t\t\tnode.tagName.toLowerCase() === 'body'\n\t\t) {\n\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\tfor (const name of attributeNames) {\n\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\tnodeData.attributes[name] = value\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * @edit @workaround input.checked\n\t\t\t */\n\t\t\tif (\n\t\t\t\tnode.tagName.toLowerCase() === 'input' &&\n\t\t\t\t(node.type === 'checkbox' || node.type === 'radio')\n\t\t\t) {\n\t\t\t\tnodeData.attributes.checked = node.checked ? 'true' : 'false' // Store as string for consistency\n\t\t\t}\n\t\t}\n\n\t\tlet nodeWasHighlighted = false\n\t\t// Perform visibility, interactivity, and highlighting checks\n\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\tnodeData.isVisible = isElementVisible(node) // isElementVisible uses offsetWidth/Height, which is fine\n\t\t\tif (nodeData.isVisible) {\n\t\t\t\tnodeData.isTopElement = isTopElement(node)\n\n\t\t\t\t// Special handling for ARIA menu containers - check interactivity even if not top element\n\t\t\t\tconst role = node.getAttribute('role')\n\t\t\t\tconst isMenuContainer = role === 'menu' || role === 'menubar' || role === 'listbox'\n\n\t\t\t\tif (nodeData.isTopElement || isMenuContainer) {\n\t\t\t\t\tnodeData.isInteractive = isInteractiveElement(node)\n\t\t\t\t\t// Call the dedicated highlighting function\n\t\t\t\t\tnodeWasHighlighted = handleHighlighting(nodeData, node, parentIframe, isParentHighlighted)\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit direct dom ref\n\t\t\t\t\t */\n\t\t\t\t\tnodeData.ref = node\n\n\t\t\t\t\t/**\n\t\t\t\t\t * @edit make sure attributes exist for interactive candidates.\n\t\t\t\t\t * @note if the element failed the isInteractiveCandidate, attributes would be empty.\n\t\t\t\t\t */\n\t\t\t\t\tif (nodeData.isInteractive && Object.keys(nodeData.attributes).length === 0) {\n\t\t\t\t\t\tconst attributeNames = node.getAttributeNames?.() || []\n\t\t\t\t\t\tfor (const name of attributeNames) {\n\t\t\t\t\t\t\tconst value = node.getAttribute(name)\n\t\t\t\t\t\t\tnodeData.attributes[name] = value\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Process children, with special handling for iframes and rich text editors\n\t\tif (node.tagName) {\n\t\t\tconst tagName = node.tagName.toLowerCase()\n\n\t\t\t// Handle iframes\n\t\t\tif (tagName === 'iframe') {\n\t\t\t\ttry {\n\t\t\t\t\tconst iframeDoc = node.contentDocument || node.contentWindow?.document\n\t\t\t\t\tif (iframeDoc) {\n\t\t\t\t\t\tfor (const child of iframeDoc.childNodes) {\n\t\t\t\t\t\t\tconst domElement = buildDomTree(child, node, false)\n\t\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.warn('Unable to access iframe:', e)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Handle rich text editors and contenteditable elements\n\t\t\telse if (\n\t\t\t\tnode.isContentEditable ||\n\t\t\t\tnode.getAttribute('contenteditable') === 'true' ||\n\t\t\t\tnode.id === 'tinymce' ||\n\t\t\t\tnode.classList.contains('mce-content-body') ||\n\t\t\t\t(tagName === 'body' && node.getAttribute('data-id')?.startsWith('mce_'))\n\t\t\t) {\n\t\t\t\t// Process all child nodes to capture formatted text\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle shadow DOM\n\t\t\t\tif (node.shadowRoot) {\n\t\t\t\t\tnodeData.shadowRoot = true\n\t\t\t\t\tfor (const child of node.shadowRoot.childNodes) {\n\t\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, nodeWasHighlighted)\n\t\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Handle regular elements\n\t\t\t\tfor (const child of node.childNodes) {\n\t\t\t\t\t// Pass the highlighted status of the *current* node to its children\n\t\t\t\t\tconst passHighlightStatusToChild = nodeWasHighlighted || isParentHighlighted\n\t\t\t\t\tconst domElement = buildDomTree(child, parentIframe, passHighlightStatusToChild)\n\t\t\t\t\tif (domElement) nodeData.children.push(domElement)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Skip empty anchor tags only if they have no dimensions and no children\n\t\tif (nodeData.tagName === 'a' && nodeData.children.length === 0 && !nodeData.attributes.href) {\n\t\t\t// Check if the anchor has actual dimensions\n\t\t\tconst rect = getCachedBoundingRect(node)\n\t\t\tconst hasSize =\n\t\t\t\t(rect && rect.width > 0 && rect.height > 0) || node.offsetWidth > 0 || node.offsetHeight > 0\n\n\t\t\tif (!hasSize) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * @edit add `extra` field for extra data\n\t\t */\n\t\tnodeData.extra = extraData.get(node) || null\n\n\t\tconst id = `${ID.current++}`\n\t\tDOM_HASH_MAP[id] = nodeData\n\t\treturn id\n\t}\n\n\tconst rootId = buildDomTree(document.body)\n\n\t// Clear the cache before starting\n\tDOM_CACHE.clearCache()\n\n\treturn { rootId, map: DOM_HASH_MAP }\n}\n",null,null,null,null,null,null,null],"names":["clickElement","dom.resolveViewportExpansion","dom.cleanUpHighlights","dom.getFlatTree","dom.flatTreeToString","dom.getSelectorMap","dom.getElementTextMap"],"mappings":"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","x_google_ignoreList":[6,7,8,9,10,11,12,13,14,15]}
|