├── .gitignore ├── index.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import puppeteer from "puppeteer"; 2 | 3 | async function getQuotes() { 4 | const browser = await puppeteer.launch({ 5 | headless: true, 6 | args: ['--no-sandbox', '--disable-extensions'], // Disable extensions 7 | }); 8 | const page = await browser.newPage(); 9 | 10 | await page.goto('http://quotes.toscrape.com/', { waitUntil: 'domcontentloaded' }); 11 | 12 | // Scrape the data 13 | const quotes = await page.evaluate(() => { 14 | const quoteElements = document.querySelectorAll('.quote'); 15 | const quoteList = []; 16 | quoteElements.forEach((quote) => { 17 | const text = quote.querySelector('.text') ? quote.querySelector('.text').innerText : null; 18 | const author = quote.querySelector('.author') ? quote.querySelector('.author').innerText : null; 19 | const tags = quote.querySelector('.tags') ? Array.from(quote.querySelectorAll('.tag')).map(tag => tag.innerText) : []; 20 | if (text && author) { 21 | quoteList.push({ text, author, tags }); 22 | } 23 | }); 24 | return quoteList; 25 | }); 26 | 27 | console.log(quotes); 28 | 29 | await browser.close(); 30 | } 31 | 32 | getQuotes(); -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "first-puppeteer-scraper-example", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "first-puppeteer-scraper-example", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "puppeteer": "^24.2.1" 13 | } 14 | }, 15 | "node_modules/@babel/code-frame": { 16 | "version": "7.26.2", 17 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", 18 | "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", 19 | "license": "MIT", 20 | "dependencies": { 21 | "@babel/helper-validator-identifier": "^7.25.9", 22 | "js-tokens": "^4.0.0", 23 | "picocolors": "^1.0.0" 24 | }, 25 | "engines": { 26 | "node": ">=6.9.0" 27 | } 28 | }, 29 | "node_modules/@babel/helper-validator-identifier": { 30 | "version": "7.25.9", 31 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", 32 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", 33 | "license": "MIT", 34 | "engines": { 35 | "node": ">=6.9.0" 36 | } 37 | }, 38 | "node_modules/@puppeteer/browsers": { 39 | "version": "2.7.1", 40 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.7.1.tgz", 41 | "integrity": "sha512-MK7rtm8JjaxPN7Mf1JdZIZKPD2Z+W7osvrC1vjpvfOX1K0awDIHYbNi89f7eotp7eMUn2shWnt03HwVbriXtKQ==", 42 | "license": "Apache-2.0", 43 | "dependencies": { 44 | "debug": "^4.4.0", 45 | "extract-zip": "^2.0.1", 46 | "progress": "^2.0.3", 47 | "proxy-agent": "^6.5.0", 48 | "semver": "^7.7.0", 49 | "tar-fs": "^3.0.8", 50 | "yargs": "^17.7.2" 51 | }, 52 | "bin": { 53 | "browsers": "lib/cjs/main-cli.js" 54 | }, 55 | "engines": { 56 | "node": ">=18" 57 | } 58 | }, 59 | "node_modules/@tootallnate/quickjs-emscripten": { 60 | "version": "0.23.0", 61 | "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", 62 | "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", 63 | "license": "MIT" 64 | }, 65 | "node_modules/@types/node": { 66 | "version": "22.13.4", 67 | "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.4.tgz", 68 | "integrity": "sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==", 69 | "license": "MIT", 70 | "optional": true, 71 | "dependencies": { 72 | "undici-types": "~6.20.0" 73 | } 74 | }, 75 | "node_modules/@types/yauzl": { 76 | "version": "2.10.3", 77 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", 78 | "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", 79 | "license": "MIT", 80 | "optional": true, 81 | "dependencies": { 82 | "@types/node": "*" 83 | } 84 | }, 85 | "node_modules/agent-base": { 86 | "version": "7.1.3", 87 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", 88 | "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", 89 | "license": "MIT", 90 | "engines": { 91 | "node": ">= 14" 92 | } 93 | }, 94 | "node_modules/ansi-regex": { 95 | "version": "5.0.1", 96 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 97 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 98 | "license": "MIT", 99 | "engines": { 100 | "node": ">=8" 101 | } 102 | }, 103 | "node_modules/ansi-styles": { 104 | "version": "4.3.0", 105 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 106 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 107 | "license": "MIT", 108 | "dependencies": { 109 | "color-convert": "^2.0.1" 110 | }, 111 | "engines": { 112 | "node": ">=8" 113 | }, 114 | "funding": { 115 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 116 | } 117 | }, 118 | "node_modules/argparse": { 119 | "version": "2.0.1", 120 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 121 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 122 | "license": "Python-2.0" 123 | }, 124 | "node_modules/ast-types": { 125 | "version": "0.13.4", 126 | "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", 127 | "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", 128 | "license": "MIT", 129 | "dependencies": { 130 | "tslib": "^2.0.1" 131 | }, 132 | "engines": { 133 | "node": ">=4" 134 | } 135 | }, 136 | "node_modules/b4a": { 137 | "version": "1.6.7", 138 | "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", 139 | "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", 140 | "license": "Apache-2.0" 141 | }, 142 | "node_modules/bare-events": { 143 | "version": "2.5.4", 144 | "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", 145 | "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", 146 | "license": "Apache-2.0", 147 | "optional": true 148 | }, 149 | "node_modules/bare-fs": { 150 | "version": "4.0.1", 151 | "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", 152 | "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", 153 | "license": "Apache-2.0", 154 | "optional": true, 155 | "dependencies": { 156 | "bare-events": "^2.0.0", 157 | "bare-path": "^3.0.0", 158 | "bare-stream": "^2.0.0" 159 | }, 160 | "engines": { 161 | "bare": ">=1.7.0" 162 | } 163 | }, 164 | "node_modules/bare-os": { 165 | "version": "3.4.0", 166 | "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz", 167 | "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==", 168 | "license": "Apache-2.0", 169 | "optional": true, 170 | "engines": { 171 | "bare": ">=1.6.0" 172 | } 173 | }, 174 | "node_modules/bare-path": { 175 | "version": "3.0.0", 176 | "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", 177 | "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", 178 | "license": "Apache-2.0", 179 | "optional": true, 180 | "dependencies": { 181 | "bare-os": "^3.0.1" 182 | } 183 | }, 184 | "node_modules/bare-stream": { 185 | "version": "2.6.5", 186 | "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", 187 | "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", 188 | "license": "Apache-2.0", 189 | "optional": true, 190 | "dependencies": { 191 | "streamx": "^2.21.0" 192 | }, 193 | "peerDependencies": { 194 | "bare-buffer": "*", 195 | "bare-events": "*" 196 | }, 197 | "peerDependenciesMeta": { 198 | "bare-buffer": { 199 | "optional": true 200 | }, 201 | "bare-events": { 202 | "optional": true 203 | } 204 | } 205 | }, 206 | "node_modules/basic-ftp": { 207 | "version": "5.0.5", 208 | "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", 209 | "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", 210 | "license": "MIT", 211 | "engines": { 212 | "node": ">=10.0.0" 213 | } 214 | }, 215 | "node_modules/buffer-crc32": { 216 | "version": "0.2.13", 217 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 218 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 219 | "license": "MIT", 220 | "engines": { 221 | "node": "*" 222 | } 223 | }, 224 | "node_modules/callsites": { 225 | "version": "3.1.0", 226 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 227 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 228 | "license": "MIT", 229 | "engines": { 230 | "node": ">=6" 231 | } 232 | }, 233 | "node_modules/chromium-bidi": { 234 | "version": "1.3.0", 235 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-1.3.0.tgz", 236 | "integrity": "sha512-G3x1bkST13kmbL7+dT/oRkNH/7C4UqG+0YQpmySrzXspyOhYgDNc6lhSGpj3cuexvH25WTENhTYq2Tt9JRXtbw==", 237 | "license": "Apache-2.0", 238 | "dependencies": { 239 | "mitt": "^3.0.1", 240 | "zod": "^3.24.1" 241 | }, 242 | "peerDependencies": { 243 | "devtools-protocol": "*" 244 | } 245 | }, 246 | "node_modules/cliui": { 247 | "version": "8.0.1", 248 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", 249 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", 250 | "license": "ISC", 251 | "dependencies": { 252 | "string-width": "^4.2.0", 253 | "strip-ansi": "^6.0.1", 254 | "wrap-ansi": "^7.0.0" 255 | }, 256 | "engines": { 257 | "node": ">=12" 258 | } 259 | }, 260 | "node_modules/color-convert": { 261 | "version": "2.0.1", 262 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 263 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 264 | "license": "MIT", 265 | "dependencies": { 266 | "color-name": "~1.1.4" 267 | }, 268 | "engines": { 269 | "node": ">=7.0.0" 270 | } 271 | }, 272 | "node_modules/color-name": { 273 | "version": "1.1.4", 274 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 275 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 276 | "license": "MIT" 277 | }, 278 | "node_modules/cosmiconfig": { 279 | "version": "9.0.0", 280 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", 281 | "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", 282 | "license": "MIT", 283 | "dependencies": { 284 | "env-paths": "^2.2.1", 285 | "import-fresh": "^3.3.0", 286 | "js-yaml": "^4.1.0", 287 | "parse-json": "^5.2.0" 288 | }, 289 | "engines": { 290 | "node": ">=14" 291 | }, 292 | "funding": { 293 | "url": "https://github.com/sponsors/d-fischer" 294 | }, 295 | "peerDependencies": { 296 | "typescript": ">=4.9.5" 297 | }, 298 | "peerDependenciesMeta": { 299 | "typescript": { 300 | "optional": true 301 | } 302 | } 303 | }, 304 | "node_modules/data-uri-to-buffer": { 305 | "version": "6.0.2", 306 | "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", 307 | "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", 308 | "license": "MIT", 309 | "engines": { 310 | "node": ">= 14" 311 | } 312 | }, 313 | "node_modules/debug": { 314 | "version": "4.4.0", 315 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", 316 | "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", 317 | "license": "MIT", 318 | "dependencies": { 319 | "ms": "^2.1.3" 320 | }, 321 | "engines": { 322 | "node": ">=6.0" 323 | }, 324 | "peerDependenciesMeta": { 325 | "supports-color": { 326 | "optional": true 327 | } 328 | } 329 | }, 330 | "node_modules/degenerator": { 331 | "version": "5.0.1", 332 | "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", 333 | "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", 334 | "license": "MIT", 335 | "dependencies": { 336 | "ast-types": "^0.13.4", 337 | "escodegen": "^2.1.0", 338 | "esprima": "^4.0.1" 339 | }, 340 | "engines": { 341 | "node": ">= 14" 342 | } 343 | }, 344 | "node_modules/devtools-protocol": { 345 | "version": "0.0.1402036", 346 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1402036.tgz", 347 | "integrity": "sha512-JwAYQgEvm3yD45CHB+RmF5kMbWtXBaOGwuxa87sZogHcLCv8c/IqnThaoQ1y60d7pXWjSKWQphPEc+1rAScVdg==", 348 | "license": "BSD-3-Clause" 349 | }, 350 | "node_modules/emoji-regex": { 351 | "version": "8.0.0", 352 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 353 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 354 | "license": "MIT" 355 | }, 356 | "node_modules/end-of-stream": { 357 | "version": "1.4.4", 358 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 359 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 360 | "license": "MIT", 361 | "dependencies": { 362 | "once": "^1.4.0" 363 | } 364 | }, 365 | "node_modules/env-paths": { 366 | "version": "2.2.1", 367 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", 368 | "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", 369 | "license": "MIT", 370 | "engines": { 371 | "node": ">=6" 372 | } 373 | }, 374 | "node_modules/error-ex": { 375 | "version": "1.3.2", 376 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 377 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 378 | "license": "MIT", 379 | "dependencies": { 380 | "is-arrayish": "^0.2.1" 381 | } 382 | }, 383 | "node_modules/escalade": { 384 | "version": "3.2.0", 385 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", 386 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", 387 | "license": "MIT", 388 | "engines": { 389 | "node": ">=6" 390 | } 391 | }, 392 | "node_modules/escodegen": { 393 | "version": "2.1.0", 394 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", 395 | "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", 396 | "license": "BSD-2-Clause", 397 | "dependencies": { 398 | "esprima": "^4.0.1", 399 | "estraverse": "^5.2.0", 400 | "esutils": "^2.0.2" 401 | }, 402 | "bin": { 403 | "escodegen": "bin/escodegen.js", 404 | "esgenerate": "bin/esgenerate.js" 405 | }, 406 | "engines": { 407 | "node": ">=6.0" 408 | }, 409 | "optionalDependencies": { 410 | "source-map": "~0.6.1" 411 | } 412 | }, 413 | "node_modules/esprima": { 414 | "version": "4.0.1", 415 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 416 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 417 | "license": "BSD-2-Clause", 418 | "bin": { 419 | "esparse": "bin/esparse.js", 420 | "esvalidate": "bin/esvalidate.js" 421 | }, 422 | "engines": { 423 | "node": ">=4" 424 | } 425 | }, 426 | "node_modules/estraverse": { 427 | "version": "5.3.0", 428 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 429 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 430 | "license": "BSD-2-Clause", 431 | "engines": { 432 | "node": ">=4.0" 433 | } 434 | }, 435 | "node_modules/esutils": { 436 | "version": "2.0.3", 437 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 438 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 439 | "license": "BSD-2-Clause", 440 | "engines": { 441 | "node": ">=0.10.0" 442 | } 443 | }, 444 | "node_modules/extract-zip": { 445 | "version": "2.0.1", 446 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 447 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 448 | "license": "BSD-2-Clause", 449 | "dependencies": { 450 | "debug": "^4.1.1", 451 | "get-stream": "^5.1.0", 452 | "yauzl": "^2.10.0" 453 | }, 454 | "bin": { 455 | "extract-zip": "cli.js" 456 | }, 457 | "engines": { 458 | "node": ">= 10.17.0" 459 | }, 460 | "optionalDependencies": { 461 | "@types/yauzl": "^2.9.1" 462 | } 463 | }, 464 | "node_modules/fast-fifo": { 465 | "version": "1.3.2", 466 | "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", 467 | "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", 468 | "license": "MIT" 469 | }, 470 | "node_modules/fd-slicer": { 471 | "version": "1.1.0", 472 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 473 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 474 | "license": "MIT", 475 | "dependencies": { 476 | "pend": "~1.2.0" 477 | } 478 | }, 479 | "node_modules/get-caller-file": { 480 | "version": "2.0.5", 481 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 482 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 483 | "license": "ISC", 484 | "engines": { 485 | "node": "6.* || 8.* || >= 10.*" 486 | } 487 | }, 488 | "node_modules/get-stream": { 489 | "version": "5.2.0", 490 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 491 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 492 | "license": "MIT", 493 | "dependencies": { 494 | "pump": "^3.0.0" 495 | }, 496 | "engines": { 497 | "node": ">=8" 498 | }, 499 | "funding": { 500 | "url": "https://github.com/sponsors/sindresorhus" 501 | } 502 | }, 503 | "node_modules/get-uri": { 504 | "version": "6.0.4", 505 | "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", 506 | "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", 507 | "license": "MIT", 508 | "dependencies": { 509 | "basic-ftp": "^5.0.2", 510 | "data-uri-to-buffer": "^6.0.2", 511 | "debug": "^4.3.4" 512 | }, 513 | "engines": { 514 | "node": ">= 14" 515 | } 516 | }, 517 | "node_modules/http-proxy-agent": { 518 | "version": "7.0.2", 519 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", 520 | "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", 521 | "license": "MIT", 522 | "dependencies": { 523 | "agent-base": "^7.1.0", 524 | "debug": "^4.3.4" 525 | }, 526 | "engines": { 527 | "node": ">= 14" 528 | } 529 | }, 530 | "node_modules/https-proxy-agent": { 531 | "version": "7.0.6", 532 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", 533 | "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", 534 | "license": "MIT", 535 | "dependencies": { 536 | "agent-base": "^7.1.2", 537 | "debug": "4" 538 | }, 539 | "engines": { 540 | "node": ">= 14" 541 | } 542 | }, 543 | "node_modules/import-fresh": { 544 | "version": "3.3.1", 545 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", 546 | "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", 547 | "license": "MIT", 548 | "dependencies": { 549 | "parent-module": "^1.0.0", 550 | "resolve-from": "^4.0.0" 551 | }, 552 | "engines": { 553 | "node": ">=6" 554 | }, 555 | "funding": { 556 | "url": "https://github.com/sponsors/sindresorhus" 557 | } 558 | }, 559 | "node_modules/ip-address": { 560 | "version": "9.0.5", 561 | "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", 562 | "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", 563 | "license": "MIT", 564 | "dependencies": { 565 | "jsbn": "1.1.0", 566 | "sprintf-js": "^1.1.3" 567 | }, 568 | "engines": { 569 | "node": ">= 12" 570 | } 571 | }, 572 | "node_modules/is-arrayish": { 573 | "version": "0.2.1", 574 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 575 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 576 | "license": "MIT" 577 | }, 578 | "node_modules/is-fullwidth-code-point": { 579 | "version": "3.0.0", 580 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 581 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 582 | "license": "MIT", 583 | "engines": { 584 | "node": ">=8" 585 | } 586 | }, 587 | "node_modules/js-tokens": { 588 | "version": "4.0.0", 589 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 590 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 591 | "license": "MIT" 592 | }, 593 | "node_modules/js-yaml": { 594 | "version": "4.1.0", 595 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 596 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 597 | "license": "MIT", 598 | "dependencies": { 599 | "argparse": "^2.0.1" 600 | }, 601 | "bin": { 602 | "js-yaml": "bin/js-yaml.js" 603 | } 604 | }, 605 | "node_modules/jsbn": { 606 | "version": "1.1.0", 607 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", 608 | "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", 609 | "license": "MIT" 610 | }, 611 | "node_modules/json-parse-even-better-errors": { 612 | "version": "2.3.1", 613 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 614 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", 615 | "license": "MIT" 616 | }, 617 | "node_modules/lines-and-columns": { 618 | "version": "1.2.4", 619 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 620 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 621 | "license": "MIT" 622 | }, 623 | "node_modules/lru-cache": { 624 | "version": "7.18.3", 625 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", 626 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", 627 | "license": "ISC", 628 | "engines": { 629 | "node": ">=12" 630 | } 631 | }, 632 | "node_modules/mitt": { 633 | "version": "3.0.1", 634 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", 635 | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", 636 | "license": "MIT" 637 | }, 638 | "node_modules/ms": { 639 | "version": "2.1.3", 640 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 641 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 642 | "license": "MIT" 643 | }, 644 | "node_modules/netmask": { 645 | "version": "2.0.2", 646 | "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", 647 | "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", 648 | "license": "MIT", 649 | "engines": { 650 | "node": ">= 0.4.0" 651 | } 652 | }, 653 | "node_modules/once": { 654 | "version": "1.4.0", 655 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 656 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 657 | "license": "ISC", 658 | "dependencies": { 659 | "wrappy": "1" 660 | } 661 | }, 662 | "node_modules/pac-proxy-agent": { 663 | "version": "7.2.0", 664 | "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", 665 | "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", 666 | "license": "MIT", 667 | "dependencies": { 668 | "@tootallnate/quickjs-emscripten": "^0.23.0", 669 | "agent-base": "^7.1.2", 670 | "debug": "^4.3.4", 671 | "get-uri": "^6.0.1", 672 | "http-proxy-agent": "^7.0.0", 673 | "https-proxy-agent": "^7.0.6", 674 | "pac-resolver": "^7.0.1", 675 | "socks-proxy-agent": "^8.0.5" 676 | }, 677 | "engines": { 678 | "node": ">= 14" 679 | } 680 | }, 681 | "node_modules/pac-resolver": { 682 | "version": "7.0.1", 683 | "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", 684 | "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", 685 | "license": "MIT", 686 | "dependencies": { 687 | "degenerator": "^5.0.0", 688 | "netmask": "^2.0.2" 689 | }, 690 | "engines": { 691 | "node": ">= 14" 692 | } 693 | }, 694 | "node_modules/parent-module": { 695 | "version": "1.0.1", 696 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 697 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 698 | "license": "MIT", 699 | "dependencies": { 700 | "callsites": "^3.0.0" 701 | }, 702 | "engines": { 703 | "node": ">=6" 704 | } 705 | }, 706 | "node_modules/parse-json": { 707 | "version": "5.2.0", 708 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 709 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 710 | "license": "MIT", 711 | "dependencies": { 712 | "@babel/code-frame": "^7.0.0", 713 | "error-ex": "^1.3.1", 714 | "json-parse-even-better-errors": "^2.3.0", 715 | "lines-and-columns": "^1.1.6" 716 | }, 717 | "engines": { 718 | "node": ">=8" 719 | }, 720 | "funding": { 721 | "url": "https://github.com/sponsors/sindresorhus" 722 | } 723 | }, 724 | "node_modules/pend": { 725 | "version": "1.2.0", 726 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 727 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", 728 | "license": "MIT" 729 | }, 730 | "node_modules/picocolors": { 731 | "version": "1.1.1", 732 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", 733 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", 734 | "license": "ISC" 735 | }, 736 | "node_modules/progress": { 737 | "version": "2.0.3", 738 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 739 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 740 | "license": "MIT", 741 | "engines": { 742 | "node": ">=0.4.0" 743 | } 744 | }, 745 | "node_modules/proxy-agent": { 746 | "version": "6.5.0", 747 | "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", 748 | "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", 749 | "license": "MIT", 750 | "dependencies": { 751 | "agent-base": "^7.1.2", 752 | "debug": "^4.3.4", 753 | "http-proxy-agent": "^7.0.1", 754 | "https-proxy-agent": "^7.0.6", 755 | "lru-cache": "^7.14.1", 756 | "pac-proxy-agent": "^7.1.0", 757 | "proxy-from-env": "^1.1.0", 758 | "socks-proxy-agent": "^8.0.5" 759 | }, 760 | "engines": { 761 | "node": ">= 14" 762 | } 763 | }, 764 | "node_modules/proxy-from-env": { 765 | "version": "1.1.0", 766 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 767 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", 768 | "license": "MIT" 769 | }, 770 | "node_modules/pump": { 771 | "version": "3.0.2", 772 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", 773 | "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", 774 | "license": "MIT", 775 | "dependencies": { 776 | "end-of-stream": "^1.1.0", 777 | "once": "^1.3.1" 778 | } 779 | }, 780 | "node_modules/puppeteer": { 781 | "version": "24.2.1", 782 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.2.1.tgz", 783 | "integrity": "sha512-Euno62ou0cd0dTkOYTNioSOsFF4VpSnz4ldD38hi9ov9xCNtr8DbhmoJRUx+V9OuPgecueZbKOohRrnrhkbg3Q==", 784 | "hasInstallScript": true, 785 | "license": "Apache-2.0", 786 | "dependencies": { 787 | "@puppeteer/browsers": "2.7.1", 788 | "chromium-bidi": "1.3.0", 789 | "cosmiconfig": "^9.0.0", 790 | "devtools-protocol": "0.0.1402036", 791 | "puppeteer-core": "24.2.1", 792 | "typed-query-selector": "^2.12.0" 793 | }, 794 | "bin": { 795 | "puppeteer": "lib/cjs/puppeteer/node/cli.js" 796 | }, 797 | "engines": { 798 | "node": ">=18" 799 | } 800 | }, 801 | "node_modules/puppeteer-core": { 802 | "version": "24.2.1", 803 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.2.1.tgz", 804 | "integrity": "sha512-bCypUh3WXzETafv1TCFAjIUnI8BiQ/d+XvEfEXDLcIMm9CAvROqnBmbt79yBjwasoDZsgfXnUmIJU7Y27AalVQ==", 805 | "license": "Apache-2.0", 806 | "dependencies": { 807 | "@puppeteer/browsers": "2.7.1", 808 | "chromium-bidi": "1.3.0", 809 | "debug": "^4.4.0", 810 | "devtools-protocol": "0.0.1402036", 811 | "typed-query-selector": "^2.12.0", 812 | "ws": "^8.18.0" 813 | }, 814 | "engines": { 815 | "node": ">=18" 816 | } 817 | }, 818 | "node_modules/require-directory": { 819 | "version": "2.1.1", 820 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 821 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", 822 | "license": "MIT", 823 | "engines": { 824 | "node": ">=0.10.0" 825 | } 826 | }, 827 | "node_modules/resolve-from": { 828 | "version": "4.0.0", 829 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 830 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 831 | "license": "MIT", 832 | "engines": { 833 | "node": ">=4" 834 | } 835 | }, 836 | "node_modules/semver": { 837 | "version": "7.7.1", 838 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 839 | "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 840 | "license": "ISC", 841 | "bin": { 842 | "semver": "bin/semver.js" 843 | }, 844 | "engines": { 845 | "node": ">=10" 846 | } 847 | }, 848 | "node_modules/smart-buffer": { 849 | "version": "4.2.0", 850 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", 851 | "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", 852 | "license": "MIT", 853 | "engines": { 854 | "node": ">= 6.0.0", 855 | "npm": ">= 3.0.0" 856 | } 857 | }, 858 | "node_modules/socks": { 859 | "version": "2.8.4", 860 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", 861 | "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", 862 | "license": "MIT", 863 | "dependencies": { 864 | "ip-address": "^9.0.5", 865 | "smart-buffer": "^4.2.0" 866 | }, 867 | "engines": { 868 | "node": ">= 10.0.0", 869 | "npm": ">= 3.0.0" 870 | } 871 | }, 872 | "node_modules/socks-proxy-agent": { 873 | "version": "8.0.5", 874 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", 875 | "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", 876 | "license": "MIT", 877 | "dependencies": { 878 | "agent-base": "^7.1.2", 879 | "debug": "^4.3.4", 880 | "socks": "^2.8.3" 881 | }, 882 | "engines": { 883 | "node": ">= 14" 884 | } 885 | }, 886 | "node_modules/source-map": { 887 | "version": "0.6.1", 888 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 889 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 890 | "license": "BSD-3-Clause", 891 | "optional": true, 892 | "engines": { 893 | "node": ">=0.10.0" 894 | } 895 | }, 896 | "node_modules/sprintf-js": { 897 | "version": "1.1.3", 898 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", 899 | "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", 900 | "license": "BSD-3-Clause" 901 | }, 902 | "node_modules/streamx": { 903 | "version": "2.22.0", 904 | "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.0.tgz", 905 | "integrity": "sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==", 906 | "license": "MIT", 907 | "dependencies": { 908 | "fast-fifo": "^1.3.2", 909 | "text-decoder": "^1.1.0" 910 | }, 911 | "optionalDependencies": { 912 | "bare-events": "^2.2.0" 913 | } 914 | }, 915 | "node_modules/string-width": { 916 | "version": "4.2.3", 917 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 918 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 919 | "license": "MIT", 920 | "dependencies": { 921 | "emoji-regex": "^8.0.0", 922 | "is-fullwidth-code-point": "^3.0.0", 923 | "strip-ansi": "^6.0.1" 924 | }, 925 | "engines": { 926 | "node": ">=8" 927 | } 928 | }, 929 | "node_modules/strip-ansi": { 930 | "version": "6.0.1", 931 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 932 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 933 | "license": "MIT", 934 | "dependencies": { 935 | "ansi-regex": "^5.0.1" 936 | }, 937 | "engines": { 938 | "node": ">=8" 939 | } 940 | }, 941 | "node_modules/tar-fs": { 942 | "version": "3.0.8", 943 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", 944 | "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", 945 | "license": "MIT", 946 | "dependencies": { 947 | "pump": "^3.0.0", 948 | "tar-stream": "^3.1.5" 949 | }, 950 | "optionalDependencies": { 951 | "bare-fs": "^4.0.1", 952 | "bare-path": "^3.0.0" 953 | } 954 | }, 955 | "node_modules/tar-stream": { 956 | "version": "3.1.7", 957 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", 958 | "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", 959 | "license": "MIT", 960 | "dependencies": { 961 | "b4a": "^1.6.4", 962 | "fast-fifo": "^1.2.0", 963 | "streamx": "^2.15.0" 964 | } 965 | }, 966 | "node_modules/text-decoder": { 967 | "version": "1.2.3", 968 | "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", 969 | "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", 970 | "license": "Apache-2.0", 971 | "dependencies": { 972 | "b4a": "^1.6.4" 973 | } 974 | }, 975 | "node_modules/tslib": { 976 | "version": "2.8.1", 977 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 978 | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 979 | "license": "0BSD" 980 | }, 981 | "node_modules/typed-query-selector": { 982 | "version": "2.12.0", 983 | "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", 984 | "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", 985 | "license": "MIT" 986 | }, 987 | "node_modules/undici-types": { 988 | "version": "6.20.0", 989 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", 990 | "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", 991 | "license": "MIT", 992 | "optional": true 993 | }, 994 | "node_modules/wrap-ansi": { 995 | "version": "7.0.0", 996 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 997 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 998 | "license": "MIT", 999 | "dependencies": { 1000 | "ansi-styles": "^4.0.0", 1001 | "string-width": "^4.1.0", 1002 | "strip-ansi": "^6.0.0" 1003 | }, 1004 | "engines": { 1005 | "node": ">=10" 1006 | }, 1007 | "funding": { 1008 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 1009 | } 1010 | }, 1011 | "node_modules/wrappy": { 1012 | "version": "1.0.2", 1013 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1014 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1015 | "license": "ISC" 1016 | }, 1017 | "node_modules/ws": { 1018 | "version": "8.18.0", 1019 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 1020 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 1021 | "license": "MIT", 1022 | "engines": { 1023 | "node": ">=10.0.0" 1024 | }, 1025 | "peerDependencies": { 1026 | "bufferutil": "^4.0.1", 1027 | "utf-8-validate": ">=5.0.2" 1028 | }, 1029 | "peerDependenciesMeta": { 1030 | "bufferutil": { 1031 | "optional": true 1032 | }, 1033 | "utf-8-validate": { 1034 | "optional": true 1035 | } 1036 | } 1037 | }, 1038 | "node_modules/y18n": { 1039 | "version": "5.0.8", 1040 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", 1041 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", 1042 | "license": "ISC", 1043 | "engines": { 1044 | "node": ">=10" 1045 | } 1046 | }, 1047 | "node_modules/yargs": { 1048 | "version": "17.7.2", 1049 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", 1050 | "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", 1051 | "license": "MIT", 1052 | "dependencies": { 1053 | "cliui": "^8.0.1", 1054 | "escalade": "^3.1.1", 1055 | "get-caller-file": "^2.0.5", 1056 | "require-directory": "^2.1.1", 1057 | "string-width": "^4.2.3", 1058 | "y18n": "^5.0.5", 1059 | "yargs-parser": "^21.1.1" 1060 | }, 1061 | "engines": { 1062 | "node": ">=12" 1063 | } 1064 | }, 1065 | "node_modules/yargs-parser": { 1066 | "version": "21.1.1", 1067 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", 1068 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", 1069 | "license": "ISC", 1070 | "engines": { 1071 | "node": ">=12" 1072 | } 1073 | }, 1074 | "node_modules/yauzl": { 1075 | "version": "2.10.0", 1076 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 1077 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 1078 | "license": "MIT", 1079 | "dependencies": { 1080 | "buffer-crc32": "~0.2.3", 1081 | "fd-slicer": "~1.1.0" 1082 | } 1083 | }, 1084 | "node_modules/zod": { 1085 | "version": "3.24.2", 1086 | "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", 1087 | "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", 1088 | "license": "MIT", 1089 | "funding": { 1090 | "url": "https://github.com/sponsors/colinhacks" 1091 | } 1092 | } 1093 | } 1094 | } 1095 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "first-puppeteer-scraper-example", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1" 7 | }, 8 | "keywords": [], 9 | "author": "", 10 | "license": "ISC", 11 | "description": "", 12 | "types": "module", 13 | "type":"module", 14 | "dependencies": { 15 | "puppeteer": "^24.2.1" 16 | } 17 | } 18 | --------------------------------------------------------------------------------