├── urls.txt ├── package.json ├── LICENSE ├── README.md ├── urltopdf.js ├── .gitignore └── yarn.lock /urls.txt: -------------------------------------------------------------------------------- 1 | https://google.com 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "puppeteer-bulk-print", 3 | "version": "1.0.0", 4 | "license": "MIT", 5 | "description": "Bulk print webpages to pdf using puppeteer.", 6 | "keywords": [ 7 | "bulk", 8 | "print", 9 | "pdf", 10 | "puppeteer" 11 | ], 12 | "repository": "https://github.com/skyme5/puppeteer-bulk-print.git", 13 | "homepage": "https://github.com/skyme5/puppeteer-bulk-print", 14 | "author": "Aakash Gajjar ", 15 | "main": "index.js", 16 | "dependencies": { 17 | "puppeteer": "^9.0.0" 18 | }, 19 | "scripts": { 20 | "start": "node urltopdf.js" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022, Aakash Gajjar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |

3 |

4 | Bulk print webpages to pdf

5 | 6 | Javascript 10 | 11 | 12 | Node.JS 16 | 17 | 18 | License: MIT 22 | 23 | Buy Me A Coffee 24 |

25 |
26 |

27 | 28 | ### Installation 29 | 30 | Install using `yarn`, 31 | 32 | ```bash 33 | yarn install 34 | ``` 35 | 36 | ### Usage 37 | 38 | Put urls in `urls.txt` file and run the script 39 | 40 | ```text 41 | node urlstopdf.js 42 | ``` 43 | -------------------------------------------------------------------------------- /urltopdf.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const puppeteer = require('puppeteer'); 3 | 4 | const list = fs 5 | .readFileSync('urls.txt', { encoding: 'utf8', flag: 'r' }) 6 | .trim() 7 | .split(`\n`); 8 | 9 | const getFileName = (url) => { 10 | return new URL(url).pathname.replace(/[^\w\-_]+/g, ''); 11 | }; 12 | 13 | (async () => { 14 | const browser = await puppeteer.launch({ devtools: true, headless: true }); 15 | const page = await browser.newPage(); 16 | await page.setViewport({ width: 1440, height: 900, deviceScaleFactor: 1 }); 17 | 18 | async function printPage(url, path) { 19 | await page.goto(url, { 20 | waitUntil: 'networkidle0', 21 | }); 22 | 23 | await page.pdf({ 24 | path: path, 25 | format: 'A4', 26 | printBackground: false, 27 | displayHeaderFooter: true, 28 | margin: { top: `0.4in`, right: `0.4in`, bottom: `0.4in`, left: `0.4in` }, 29 | }); 30 | } 31 | 32 | async function start() { 33 | console.log(`Print start`); 34 | for (let index = 0, length = list.length; index < length; index++) { 35 | const url = list[index]; 36 | const path = `${getFileName(url)}.pdf`; 37 | try { 38 | console.log(`Printing (${index + 1}/${length}): ${url}`); 39 | await printPage(url, path); 40 | console.log(`Done => ${path}`); 41 | } catch (err) { 42 | console.error(err); 43 | } 44 | } 45 | } 46 | 47 | await start(); 48 | 49 | await page.close(); 50 | await browser.close(); 51 | })(); 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/node 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=node 3 | 4 | ### Node ### 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | .pnpm-debug.log* 13 | 14 | # Diagnostic reports (https://nodejs.org/api/report.html) 15 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 16 | 17 | # Runtime data 18 | pids 19 | *.pid 20 | *.seed 21 | *.pid.lock 22 | 23 | # Directory for instrumented libs generated by jscoverage/JSCover 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | coverage 28 | *.lcov 29 | 30 | # nyc test coverage 31 | .nyc_output 32 | 33 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 34 | .grunt 35 | 36 | # Bower dependency directory (https://bower.io/) 37 | bower_components 38 | 39 | # node-waf configuration 40 | .lock-wscript 41 | 42 | # Compiled binary addons (https://nodejs.org/api/addons.html) 43 | build/Release 44 | 45 | # Dependency directories 46 | node_modules/ 47 | jspm_packages/ 48 | 49 | # Snowpack dependency directory (https://snowpack.dev/) 50 | web_modules/ 51 | 52 | # TypeScript cache 53 | *.tsbuildinfo 54 | 55 | # Optional npm cache directory 56 | .npm 57 | 58 | # Optional eslint cache 59 | .eslintcache 60 | 61 | # Optional stylelint cache 62 | .stylelintcache 63 | 64 | # Microbundle cache 65 | .rpt2_cache/ 66 | .rts2_cache_cjs/ 67 | .rts2_cache_es/ 68 | .rts2_cache_umd/ 69 | 70 | # Optional REPL history 71 | .node_repl_history 72 | 73 | # Output of 'npm pack' 74 | *.tgz 75 | 76 | # Yarn Integrity file 77 | .yarn-integrity 78 | 79 | # dotenv environment variable files 80 | .env 81 | .env.development.local 82 | .env.test.local 83 | .env.production.local 84 | .env.local 85 | 86 | # parcel-bundler cache (https://parceljs.org/) 87 | .cache 88 | .parcel-cache 89 | 90 | # Next.js build output 91 | .next 92 | out 93 | 94 | # Nuxt.js build / generate output 95 | .nuxt 96 | dist 97 | 98 | # Gatsby files 99 | .cache/ 100 | # Comment in the public line in if your project uses Gatsby and not Next.js 101 | # https://nextjs.org/blog/next-9-1#public-directory-support 102 | # public 103 | 104 | # vuepress build output 105 | .vuepress/dist 106 | 107 | # vuepress v2.x temp and cache directory 108 | .temp 109 | 110 | # Docusaurus cache and generated files 111 | .docusaurus 112 | 113 | # Serverless directories 114 | .serverless/ 115 | 116 | # FuseBox cache 117 | .fusebox/ 118 | 119 | # DynamoDB Local files 120 | .dynamodb/ 121 | 122 | # TernJS port file 123 | .tern-port 124 | 125 | # Stores VSCode versions used for testing VSCode extensions 126 | .vscode-test 127 | 128 | # yarn v2 129 | .yarn/cache 130 | .yarn/unplugged 131 | .yarn/build-state.yml 132 | .yarn/install-state.gz 133 | .pnp.* 134 | 135 | ### Node Patch ### 136 | # Serverless Webpack directories 137 | .webpack/ 138 | 139 | # Optional stylelint cache 140 | 141 | # SvelteKit build / generate output 142 | .svelte-kit 143 | 144 | # End of https://www.toptal.com/developers/gitignore/api/node 145 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/node@*": 6 | version "15.0.1" 7 | resolved "https://registry.yarnpkg.com/@types/node/-/node-15.0.1.tgz#ef34dea0881028d11398be5bf4e856743e3dc35a" 8 | integrity sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA== 9 | 10 | "@types/yauzl@^2.9.1": 11 | version "2.9.1" 12 | resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" 13 | integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== 14 | dependencies: 15 | "@types/node" "*" 16 | 17 | agent-base@6: 18 | version "6.0.2" 19 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 20 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 21 | dependencies: 22 | debug "4" 23 | 24 | balanced-match@^1.0.0: 25 | version "1.0.2" 26 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 27 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 28 | 29 | base64-js@^1.3.1: 30 | version "1.5.1" 31 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 32 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 33 | 34 | bl@^4.0.3: 35 | version "4.1.0" 36 | resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" 37 | integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== 38 | dependencies: 39 | buffer "^5.5.0" 40 | inherits "^2.0.4" 41 | readable-stream "^3.4.0" 42 | 43 | brace-expansion@^1.1.7: 44 | version "1.1.11" 45 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 46 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 47 | dependencies: 48 | balanced-match "^1.0.0" 49 | concat-map "0.0.1" 50 | 51 | buffer-crc32@~0.2.3: 52 | version "0.2.13" 53 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 54 | integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 55 | 56 | buffer@^5.2.1, buffer@^5.5.0: 57 | version "5.7.1" 58 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" 59 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== 60 | dependencies: 61 | base64-js "^1.3.1" 62 | ieee754 "^1.1.13" 63 | 64 | chownr@^1.1.1: 65 | version "1.1.4" 66 | resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" 67 | integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== 68 | 69 | concat-map@0.0.1: 70 | version "0.0.1" 71 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 72 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 73 | 74 | debug@4, debug@^4.1.0, debug@^4.1.1: 75 | version "4.3.1" 76 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 77 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 78 | dependencies: 79 | ms "2.1.2" 80 | 81 | devtools-protocol@0.0.869402: 82 | version "0.0.869402" 83 | resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.869402.tgz#03ade701761742e43ae4de5dc188bcd80f156d8d" 84 | integrity sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA== 85 | 86 | end-of-stream@^1.1.0, end-of-stream@^1.4.1: 87 | version "1.4.4" 88 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 89 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 90 | dependencies: 91 | once "^1.4.0" 92 | 93 | extract-zip@^2.0.0: 94 | version "2.0.1" 95 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" 96 | integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== 97 | dependencies: 98 | debug "^4.1.1" 99 | get-stream "^5.1.0" 100 | yauzl "^2.10.0" 101 | optionalDependencies: 102 | "@types/yauzl" "^2.9.1" 103 | 104 | fd-slicer@~1.1.0: 105 | version "1.1.0" 106 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 107 | integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 108 | dependencies: 109 | pend "~1.2.0" 110 | 111 | find-up@^4.0.0: 112 | version "4.1.0" 113 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" 114 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== 115 | dependencies: 116 | locate-path "^5.0.0" 117 | path-exists "^4.0.0" 118 | 119 | fs-constants@^1.0.0: 120 | version "1.0.0" 121 | resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" 122 | integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== 123 | 124 | fs.realpath@^1.0.0: 125 | version "1.0.0" 126 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 127 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 128 | 129 | get-stream@^5.1.0: 130 | version "5.2.0" 131 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 132 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 133 | dependencies: 134 | pump "^3.0.0" 135 | 136 | glob@^7.1.3: 137 | version "7.1.6" 138 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 139 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 140 | dependencies: 141 | fs.realpath "^1.0.0" 142 | inflight "^1.0.4" 143 | inherits "2" 144 | minimatch "^3.0.4" 145 | once "^1.3.0" 146 | path-is-absolute "^1.0.0" 147 | 148 | https-proxy-agent@^5.0.0: 149 | version "5.0.0" 150 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" 151 | integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== 152 | dependencies: 153 | agent-base "6" 154 | debug "4" 155 | 156 | ieee754@^1.1.13: 157 | version "1.2.1" 158 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 159 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 160 | 161 | inflight@^1.0.4: 162 | version "1.0.6" 163 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 164 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 165 | dependencies: 166 | once "^1.3.0" 167 | wrappy "1" 168 | 169 | inherits@2, inherits@^2.0.3, inherits@^2.0.4: 170 | version "2.0.4" 171 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 172 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 173 | 174 | locate-path@^5.0.0: 175 | version "5.0.0" 176 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" 177 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== 178 | dependencies: 179 | p-locate "^4.1.0" 180 | 181 | minimatch@^3.0.4: 182 | version "3.0.4" 183 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 184 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 185 | dependencies: 186 | brace-expansion "^1.1.7" 187 | 188 | mkdirp-classic@^0.5.2: 189 | version "0.5.3" 190 | resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" 191 | integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== 192 | 193 | ms@2.1.2: 194 | version "2.1.2" 195 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 196 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 197 | 198 | node-fetch@^2.6.1: 199 | version "2.6.1" 200 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" 201 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== 202 | 203 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 204 | version "1.4.0" 205 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 206 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 207 | dependencies: 208 | wrappy "1" 209 | 210 | p-limit@^2.2.0: 211 | version "2.3.0" 212 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 213 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 214 | dependencies: 215 | p-try "^2.0.0" 216 | 217 | p-locate@^4.1.0: 218 | version "4.1.0" 219 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 220 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== 221 | dependencies: 222 | p-limit "^2.2.0" 223 | 224 | p-try@^2.0.0: 225 | version "2.2.0" 226 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 227 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 228 | 229 | path-exists@^4.0.0: 230 | version "4.0.0" 231 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 232 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 233 | 234 | path-is-absolute@^1.0.0: 235 | version "1.0.1" 236 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 237 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 238 | 239 | pend@~1.2.0: 240 | version "1.2.0" 241 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 242 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 243 | 244 | pkg-dir@^4.2.0: 245 | version "4.2.0" 246 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 247 | integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 248 | dependencies: 249 | find-up "^4.0.0" 250 | 251 | progress@^2.0.1: 252 | version "2.0.3" 253 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 254 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 255 | 256 | proxy-from-env@^1.1.0: 257 | version "1.1.0" 258 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 259 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 260 | 261 | pump@^3.0.0: 262 | version "3.0.0" 263 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 264 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 265 | dependencies: 266 | end-of-stream "^1.1.0" 267 | once "^1.3.1" 268 | 269 | puppeteer@^9.0.0: 270 | version "9.0.0" 271 | resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-9.0.0.tgz#b476e17ceb3e33a6667bf682d66dde9898f9c031" 272 | integrity sha512-Avu8SKWQRC1JKNMgfpH7d4KzzHOL/A65jRYrjNU46hxnOYGwqe4zZp/JW8qulaH0Pnbm5qyO3EbSKvqBUlfvkg== 273 | dependencies: 274 | debug "^4.1.0" 275 | devtools-protocol "0.0.869402" 276 | extract-zip "^2.0.0" 277 | https-proxy-agent "^5.0.0" 278 | node-fetch "^2.6.1" 279 | pkg-dir "^4.2.0" 280 | progress "^2.0.1" 281 | proxy-from-env "^1.1.0" 282 | rimraf "^3.0.2" 283 | tar-fs "^2.0.0" 284 | unbzip2-stream "^1.3.3" 285 | ws "^7.2.3" 286 | 287 | readable-stream@^3.1.1, readable-stream@^3.4.0: 288 | version "3.6.0" 289 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 290 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 291 | dependencies: 292 | inherits "^2.0.3" 293 | string_decoder "^1.1.1" 294 | util-deprecate "^1.0.1" 295 | 296 | rimraf@^3.0.2: 297 | version "3.0.2" 298 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 299 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 300 | dependencies: 301 | glob "^7.1.3" 302 | 303 | safe-buffer@~5.2.0: 304 | version "5.2.1" 305 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 306 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 307 | 308 | string_decoder@^1.1.1: 309 | version "1.3.0" 310 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 311 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 312 | dependencies: 313 | safe-buffer "~5.2.0" 314 | 315 | tar-fs@^2.0.0: 316 | version "2.1.1" 317 | resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" 318 | integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== 319 | dependencies: 320 | chownr "^1.1.1" 321 | mkdirp-classic "^0.5.2" 322 | pump "^3.0.0" 323 | tar-stream "^2.1.4" 324 | 325 | tar-stream@^2.1.4: 326 | version "2.2.0" 327 | resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" 328 | integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== 329 | dependencies: 330 | bl "^4.0.3" 331 | end-of-stream "^1.4.1" 332 | fs-constants "^1.0.0" 333 | inherits "^2.0.3" 334 | readable-stream "^3.1.1" 335 | 336 | through@^2.3.8: 337 | version "2.3.8" 338 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 339 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 340 | 341 | unbzip2-stream@^1.3.3: 342 | version "1.4.3" 343 | resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" 344 | integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== 345 | dependencies: 346 | buffer "^5.2.1" 347 | through "^2.3.8" 348 | 349 | util-deprecate@^1.0.1: 350 | version "1.0.2" 351 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 352 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 353 | 354 | wrappy@1: 355 | version "1.0.2" 356 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 357 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 358 | 359 | ws@^7.2.3: 360 | version "7.4.5" 361 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" 362 | integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== 363 | 364 | yauzl@^2.10.0: 365 | version "2.10.0" 366 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 367 | integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 368 | dependencies: 369 | buffer-crc32 "~0.2.3" 370 | fd-slicer "~1.1.0" 371 | --------------------------------------------------------------------------------