├── .gitignore ├── LICENSE ├── README.md ├── bulktok.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | names.txt 3 | @* -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Karim elarabi 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 | # BulkToks 2 | Simple script to bulk download tiktok clips without watermark, used node js+ puppeteer 3 | 4 | That script only does one thing if you want many downloads options consider looking at [tiktokdl](https://github.com/karim0sec/tiktokdl) 5 | - Bulktok script bulk downloads all tiktok videos of a single user profileand the descriptions. 6 | - adding number after url argument bulk downloads number of tiktok videos of a single user and the descriptions. 7 | 8 | Note: Videos are stored in @username folder whereas the description is stored in names.txt 9 | Warning: Since the script bulk downloads, it can be alot of data depending on the number you enter or the number of videos a user has. 10 | 11 | # requirements: 12 | + Node Js 13 | 14 | # Installtion: 15 | After installing Node Js 16 | 17 | + git clone https://github.com/karim0sec/Bulk-Tiktoks-Downloader 18 | 19 | + cd Bulk-Tiktoks-Downloader 20 | 21 | navigate to the project directory and use this command: 22 | 23 | + npm i 24 | 25 | 26 | # How to use: 27 | 28 | Manual Way: 29 | edit the user profile url in bulktok script or edit the user profile url & the nVideos parameter in nvideosuser script. 30 | 31 | Terminal Way: 32 | In the terminal or command prompt use: 33 | 34 | + node bulktok https://www.tiktok.com/@davidbeckham 35 | 36 | Or 37 | 38 | + node bulktok https://www.tiktok.com/@davidbeckham n 39 | 40 | Note: Replace n with your desired number in the second command. e.g; 2 41 | 42 | 43 | Of course you can change the username davidbeckham to whatever user you want 44 | to download all videos of single user. 45 | 46 | Results will be saved in names.txt and videos in username folder location. 47 | 48 | All videos will be saved without watermark unless the user reuploaded his clips with logo. 49 | 50 | Cheers 51 | -------------------------------------------------------------------------------- /bulktok.js: -------------------------------------------------------------------------------- 1 | const vanillaPuppeteer = require('puppeteer'); 2 | const { addExtra } = require('puppeteer-extra'); 3 | const { pptr } = addExtra(vanillaPuppeteer); 4 | const fetch = require('node-fetch'); 5 | const fs = require('fs'); 6 | const https = require('https'); 7 | const {Headers} = require('node-fetch'); 8 | 9 | 10 | //set a user-agent for fetch 11 | const headers = new Headers(); 12 | headers.append('User-Agent', 'TikTok 26.2.0 rv:262018 (iPhone; iOS 14.4.2; en_US) Cronet'); 13 | headers.append('Content-Type', 'application/json'); 14 | 15 | 16 | main(); 17 | async function main() { 18 | //pptr.use(stealthPlugin()) 19 | const browser = await pptr.launch( { headless: true ,args: ['--chrome.runtime','--navigator.languages','--iframe.contentWindow']} ); 20 | const page = await browser.newPage(); 21 | page.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36"); 22 | //delete browser profile after finish 23 | let chromeTmpDataDir = null; 24 | let chromeSpawnArgs = browser.process().spawnargs; 25 | for (let i = 0; i < chromeSpawnArgs.length; i++) { 26 | if (chromeSpawnArgs[i].indexOf("--user-data-dir=") === 0) { 27 | chromeTmpDataDir = chromeSpawnArgs[i].replace("--user-data-dir=", ""); 28 | } 29 | } 30 | 31 | await page.evaluateOnNewDocument(() => { 32 | delete navigator.__proto__.webdriver; 33 | }); 34 | //We stop images and stylesheet to save data 35 | await page.setRequestInterception(true); 36 | 37 | page.on('request', (request) => { 38 | if(['image', 'stylesheet', 'font'].includes(request.resourceType())) { 39 | request.abort(); 40 | } else { 41 | request.continue(); 42 | } 43 | }) 44 | 45 | 46 | const args = process.argv.slice(2) 47 | const userLink = (args[0]) 48 | if (userLink.includes("@")){ 49 | console.log("Getting links from "+userLink) 50 | }else{ 51 | console.log("Syntax error: \n\r use it like that: node bulktok https://www.tiktok.com/@profile") 52 | process.exit() 53 | } 54 | var nVideos = parseInt(args[1]) 55 | 56 | 57 | 58 | await page.goto(userLink); //change this to user url page 59 | let username = page.url().slice(23,).replace(/[-:.\/*<>|?]/g,""); 60 | 61 | //scroll down until no more videos 62 | await autoScroll(page); 63 | 64 | const urls = await page.evaluate(() => 65 | Array.from(document.querySelectorAll('div.tiktok-1qb12g8-DivThreeColumnContainer > div > div > div > div > div > a'), element => element.href)); 66 | 67 | var videoDes = await page.evaluate(() =>Array.from(document.querySelectorAll('div.tiktok-1qb12g8-DivThreeColumnContainer.eegew6e2 > div > div > div > a')).map((items) => items.innerText)) 68 | 69 | for (var i=videoDes.length; i--;) { 70 | videoDes[i] = videoDes[i] + ' #shorts' + "\r\n" ;}; //append #shorts for each video title 71 | fs.appendFile('names.txt', videoDes + '', function (err) { 72 | if (err) throw err; 73 | console.log('Descriptions Saved!'); 74 | }); 75 | 76 | if (args[1] == null || args[1] == NaN){ 77 | var nVideos = String(urls.length); 78 | } 79 | 80 | browser.close(); 81 | if (chromeTmpDataDir !== null) { 82 | fs.rm(chromeTmpDataDir, { recursive: true }, () => console.log('Deleted tmp profile')); 83 | } 84 | // then download nVideos 85 | if(nVideos<=urls.length ){ 86 | console.log('Now Downloading ' +nVideos+ ' Video(s)' )}; 87 | 88 | //becareful that can be alot of gigas if profile has a lot of videos 89 | for (var i=0;i { 144 | await new Promise((resolve, reject) => { 145 | var totalHeight = 0; 146 | var distance = 100; 147 | var timer = setInterval(() => { 148 | var scrollHeight = document.body.scrollHeight; 149 | window.scrollBy(0, distance); 150 | totalHeight += distance; 151 | 152 | if(totalHeight >= scrollHeight){ 153 | clearInterval(timer); 154 | resolve(); 155 | } 156 | }, 100); 157 | }); 158 | }); 159 | } 160 | function sleep(ms) { 161 | return new Promise(resolve => setTimeout(resolve, ms)); 162 | } -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bulktok", 3 | "version": "2.1.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "bulktok", 9 | "version": "2.1.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "node-fetch": "^2.6.7", 13 | "puppeteer": "^19.0.0", 14 | "puppeteer-extra": "^3.3.4" 15 | } 16 | }, 17 | "node_modules/@babel/code-frame": { 18 | "version": "7.18.6", 19 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 20 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 21 | "dependencies": { 22 | "@babel/highlight": "^7.18.6" 23 | }, 24 | "engines": { 25 | "node": ">=6.9.0" 26 | } 27 | }, 28 | "node_modules/@babel/helper-validator-identifier": { 29 | "version": "7.19.1", 30 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 31 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", 32 | "engines": { 33 | "node": ">=6.9.0" 34 | } 35 | }, 36 | "node_modules/@babel/highlight": { 37 | "version": "7.18.6", 38 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 39 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 40 | "dependencies": { 41 | "@babel/helper-validator-identifier": "^7.18.6", 42 | "chalk": "^2.0.0", 43 | "js-tokens": "^4.0.0" 44 | }, 45 | "engines": { 46 | "node": ">=6.9.0" 47 | } 48 | }, 49 | "node_modules/@types/debug": { 50 | "version": "4.1.7", 51 | "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", 52 | "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", 53 | "dependencies": { 54 | "@types/ms": "*" 55 | } 56 | }, 57 | "node_modules/@types/ms": { 58 | "version": "0.7.31", 59 | "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", 60 | "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" 61 | }, 62 | "node_modules/@types/node": { 63 | "version": "18.11.8", 64 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.8.tgz", 65 | "integrity": "sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==", 66 | "optional": true 67 | }, 68 | "node_modules/@types/parse-json": { 69 | "version": "4.0.0", 70 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 71 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 72 | }, 73 | "node_modules/@types/yauzl": { 74 | "version": "2.10.0", 75 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", 76 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", 77 | "optional": true, 78 | "dependencies": { 79 | "@types/node": "*" 80 | } 81 | }, 82 | "node_modules/agent-base": { 83 | "version": "6.0.2", 84 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 85 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 86 | "dependencies": { 87 | "debug": "4" 88 | }, 89 | "engines": { 90 | "node": ">= 6.0.0" 91 | } 92 | }, 93 | "node_modules/ansi-styles": { 94 | "version": "3.2.1", 95 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 96 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 97 | "dependencies": { 98 | "color-convert": "^1.9.0" 99 | }, 100 | "engines": { 101 | "node": ">=4" 102 | } 103 | }, 104 | "node_modules/balanced-match": { 105 | "version": "1.0.2", 106 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 107 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 108 | }, 109 | "node_modules/base64-js": { 110 | "version": "1.5.1", 111 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 112 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 113 | "funding": [ 114 | { 115 | "type": "github", 116 | "url": "https://github.com/sponsors/feross" 117 | }, 118 | { 119 | "type": "patreon", 120 | "url": "https://www.patreon.com/feross" 121 | }, 122 | { 123 | "type": "consulting", 124 | "url": "https://feross.org/support" 125 | } 126 | ] 127 | }, 128 | "node_modules/bl": { 129 | "version": "4.1.0", 130 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 131 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 132 | "dependencies": { 133 | "buffer": "^5.5.0", 134 | "inherits": "^2.0.4", 135 | "readable-stream": "^3.4.0" 136 | } 137 | }, 138 | "node_modules/brace-expansion": { 139 | "version": "1.1.11", 140 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 141 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 142 | "dependencies": { 143 | "balanced-match": "^1.0.0", 144 | "concat-map": "0.0.1" 145 | } 146 | }, 147 | "node_modules/buffer": { 148 | "version": "5.7.1", 149 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 150 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 151 | "funding": [ 152 | { 153 | "type": "github", 154 | "url": "https://github.com/sponsors/feross" 155 | }, 156 | { 157 | "type": "patreon", 158 | "url": "https://www.patreon.com/feross" 159 | }, 160 | { 161 | "type": "consulting", 162 | "url": "https://feross.org/support" 163 | } 164 | ], 165 | "dependencies": { 166 | "base64-js": "^1.3.1", 167 | "ieee754": "^1.1.13" 168 | } 169 | }, 170 | "node_modules/buffer-crc32": { 171 | "version": "0.2.13", 172 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 173 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 174 | "engines": { 175 | "node": "*" 176 | } 177 | }, 178 | "node_modules/callsites": { 179 | "version": "3.1.0", 180 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 181 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 182 | "engines": { 183 | "node": ">=6" 184 | } 185 | }, 186 | "node_modules/chalk": { 187 | "version": "2.4.2", 188 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 189 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 190 | "dependencies": { 191 | "ansi-styles": "^3.2.1", 192 | "escape-string-regexp": "^1.0.5", 193 | "supports-color": "^5.3.0" 194 | }, 195 | "engines": { 196 | "node": ">=4" 197 | } 198 | }, 199 | "node_modules/chownr": { 200 | "version": "1.1.4", 201 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 202 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 203 | }, 204 | "node_modules/color-convert": { 205 | "version": "1.9.3", 206 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 207 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 208 | "dependencies": { 209 | "color-name": "1.1.3" 210 | } 211 | }, 212 | "node_modules/color-name": { 213 | "version": "1.1.3", 214 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 215 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 216 | }, 217 | "node_modules/concat-map": { 218 | "version": "0.0.1", 219 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 220 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 221 | }, 222 | "node_modules/cosmiconfig": { 223 | "version": "7.0.1", 224 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", 225 | "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", 226 | "dependencies": { 227 | "@types/parse-json": "^4.0.0", 228 | "import-fresh": "^3.2.1", 229 | "parse-json": "^5.0.0", 230 | "path-type": "^4.0.0", 231 | "yaml": "^1.10.0" 232 | }, 233 | "engines": { 234 | "node": ">=10" 235 | } 236 | }, 237 | "node_modules/cross-fetch": { 238 | "version": "3.1.5", 239 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", 240 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", 241 | "dependencies": { 242 | "node-fetch": "2.6.7" 243 | } 244 | }, 245 | "node_modules/debug": { 246 | "version": "4.3.4", 247 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 248 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 249 | "dependencies": { 250 | "ms": "2.1.2" 251 | }, 252 | "engines": { 253 | "node": ">=6.0" 254 | }, 255 | "peerDependenciesMeta": { 256 | "supports-color": { 257 | "optional": true 258 | } 259 | } 260 | }, 261 | "node_modules/deepmerge": { 262 | "version": "4.2.2", 263 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 264 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 265 | "engines": { 266 | "node": ">=0.10.0" 267 | } 268 | }, 269 | "node_modules/devtools-protocol": { 270 | "version": "0.0.1056733", 271 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", 272 | "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==" 273 | }, 274 | "node_modules/end-of-stream": { 275 | "version": "1.4.4", 276 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 277 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 278 | "dependencies": { 279 | "once": "^1.4.0" 280 | } 281 | }, 282 | "node_modules/error-ex": { 283 | "version": "1.3.2", 284 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 285 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 286 | "dependencies": { 287 | "is-arrayish": "^0.2.1" 288 | } 289 | }, 290 | "node_modules/escape-string-regexp": { 291 | "version": "1.0.5", 292 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 293 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 294 | "engines": { 295 | "node": ">=0.8.0" 296 | } 297 | }, 298 | "node_modules/extract-zip": { 299 | "version": "2.0.1", 300 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 301 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 302 | "dependencies": { 303 | "debug": "^4.1.1", 304 | "get-stream": "^5.1.0", 305 | "yauzl": "^2.10.0" 306 | }, 307 | "bin": { 308 | "extract-zip": "cli.js" 309 | }, 310 | "engines": { 311 | "node": ">= 10.17.0" 312 | }, 313 | "optionalDependencies": { 314 | "@types/yauzl": "^2.9.1" 315 | } 316 | }, 317 | "node_modules/fd-slicer": { 318 | "version": "1.1.0", 319 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 320 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 321 | "dependencies": { 322 | "pend": "~1.2.0" 323 | } 324 | }, 325 | "node_modules/fs-constants": { 326 | "version": "1.0.0", 327 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 328 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 329 | }, 330 | "node_modules/fs.realpath": { 331 | "version": "1.0.0", 332 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 333 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 334 | }, 335 | "node_modules/get-stream": { 336 | "version": "5.2.0", 337 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 338 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 339 | "dependencies": { 340 | "pump": "^3.0.0" 341 | }, 342 | "engines": { 343 | "node": ">=8" 344 | }, 345 | "funding": { 346 | "url": "https://github.com/sponsors/sindresorhus" 347 | } 348 | }, 349 | "node_modules/glob": { 350 | "version": "7.2.3", 351 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 352 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 353 | "dependencies": { 354 | "fs.realpath": "^1.0.0", 355 | "inflight": "^1.0.4", 356 | "inherits": "2", 357 | "minimatch": "^3.1.1", 358 | "once": "^1.3.0", 359 | "path-is-absolute": "^1.0.0" 360 | }, 361 | "engines": { 362 | "node": "*" 363 | }, 364 | "funding": { 365 | "url": "https://github.com/sponsors/isaacs" 366 | } 367 | }, 368 | "node_modules/has-flag": { 369 | "version": "3.0.0", 370 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 371 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 372 | "engines": { 373 | "node": ">=4" 374 | } 375 | }, 376 | "node_modules/https-proxy-agent": { 377 | "version": "5.0.1", 378 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 379 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 380 | "dependencies": { 381 | "agent-base": "6", 382 | "debug": "4" 383 | }, 384 | "engines": { 385 | "node": ">= 6" 386 | } 387 | }, 388 | "node_modules/ieee754": { 389 | "version": "1.2.1", 390 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 391 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 392 | "funding": [ 393 | { 394 | "type": "github", 395 | "url": "https://github.com/sponsors/feross" 396 | }, 397 | { 398 | "type": "patreon", 399 | "url": "https://www.patreon.com/feross" 400 | }, 401 | { 402 | "type": "consulting", 403 | "url": "https://feross.org/support" 404 | } 405 | ] 406 | }, 407 | "node_modules/import-fresh": { 408 | "version": "3.3.0", 409 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 410 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 411 | "dependencies": { 412 | "parent-module": "^1.0.0", 413 | "resolve-from": "^4.0.0" 414 | }, 415 | "engines": { 416 | "node": ">=6" 417 | }, 418 | "funding": { 419 | "url": "https://github.com/sponsors/sindresorhus" 420 | } 421 | }, 422 | "node_modules/inflight": { 423 | "version": "1.0.6", 424 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 425 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 426 | "dependencies": { 427 | "once": "^1.3.0", 428 | "wrappy": "1" 429 | } 430 | }, 431 | "node_modules/inherits": { 432 | "version": "2.0.4", 433 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 434 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 435 | }, 436 | "node_modules/is-arrayish": { 437 | "version": "0.2.1", 438 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 439 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 440 | }, 441 | "node_modules/js-tokens": { 442 | "version": "4.0.0", 443 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 444 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 445 | }, 446 | "node_modules/json-parse-even-better-errors": { 447 | "version": "2.3.1", 448 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 449 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 450 | }, 451 | "node_modules/lines-and-columns": { 452 | "version": "1.2.4", 453 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 454 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 455 | }, 456 | "node_modules/minimatch": { 457 | "version": "3.1.2", 458 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 459 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 460 | "dependencies": { 461 | "brace-expansion": "^1.1.7" 462 | }, 463 | "engines": { 464 | "node": "*" 465 | } 466 | }, 467 | "node_modules/mkdirp-classic": { 468 | "version": "0.5.3", 469 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 470 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 471 | }, 472 | "node_modules/ms": { 473 | "version": "2.1.2", 474 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 475 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 476 | }, 477 | "node_modules/node-fetch": { 478 | "version": "2.6.7", 479 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 480 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 481 | "dependencies": { 482 | "whatwg-url": "^5.0.0" 483 | }, 484 | "engines": { 485 | "node": "4.x || >=6.0.0" 486 | }, 487 | "peerDependencies": { 488 | "encoding": "^0.1.0" 489 | }, 490 | "peerDependenciesMeta": { 491 | "encoding": { 492 | "optional": true 493 | } 494 | } 495 | }, 496 | "node_modules/once": { 497 | "version": "1.4.0", 498 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 499 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 500 | "dependencies": { 501 | "wrappy": "1" 502 | } 503 | }, 504 | "node_modules/parent-module": { 505 | "version": "1.0.1", 506 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 507 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 508 | "dependencies": { 509 | "callsites": "^3.0.0" 510 | }, 511 | "engines": { 512 | "node": ">=6" 513 | } 514 | }, 515 | "node_modules/parse-json": { 516 | "version": "5.2.0", 517 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 518 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 519 | "dependencies": { 520 | "@babel/code-frame": "^7.0.0", 521 | "error-ex": "^1.3.1", 522 | "json-parse-even-better-errors": "^2.3.0", 523 | "lines-and-columns": "^1.1.6" 524 | }, 525 | "engines": { 526 | "node": ">=8" 527 | }, 528 | "funding": { 529 | "url": "https://github.com/sponsors/sindresorhus" 530 | } 531 | }, 532 | "node_modules/path-is-absolute": { 533 | "version": "1.0.1", 534 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 535 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 536 | "engines": { 537 | "node": ">=0.10.0" 538 | } 539 | }, 540 | "node_modules/path-type": { 541 | "version": "4.0.0", 542 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 543 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 544 | "engines": { 545 | "node": ">=8" 546 | } 547 | }, 548 | "node_modules/pend": { 549 | "version": "1.2.0", 550 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 551 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 552 | }, 553 | "node_modules/progress": { 554 | "version": "2.0.3", 555 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 556 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 557 | "engines": { 558 | "node": ">=0.4.0" 559 | } 560 | }, 561 | "node_modules/proxy-from-env": { 562 | "version": "1.1.0", 563 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 564 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 565 | }, 566 | "node_modules/pump": { 567 | "version": "3.0.0", 568 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 569 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 570 | "dependencies": { 571 | "end-of-stream": "^1.1.0", 572 | "once": "^1.3.1" 573 | } 574 | }, 575 | "node_modules/puppeteer": { 576 | "version": "19.2.0", 577 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.0.tgz", 578 | "integrity": "sha512-rhr5ery8htpOTikmm/wrDU707wtmJ7ccX2WLkBf0A8eYYpscck5/iz04/fHOiIRWMFfnYOvaO9wNb4jcO3Mjyg==", 579 | "hasInstallScript": true, 580 | "dependencies": { 581 | "cosmiconfig": "7.0.1", 582 | "devtools-protocol": "0.0.1056733", 583 | "https-proxy-agent": "5.0.1", 584 | "progress": "2.0.3", 585 | "proxy-from-env": "1.1.0", 586 | "puppeteer-core": "19.2.0" 587 | }, 588 | "engines": { 589 | "node": ">=14.1.0" 590 | } 591 | }, 592 | "node_modules/puppeteer-core": { 593 | "version": "19.2.0", 594 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.0.tgz", 595 | "integrity": "sha512-wdoZDzf46y1ScpPEUDAzIWDmvG272BbdqSvDMvtYNjy2UJZT/j5OS5k813o2lfT4HtOle79eByCLs24iXbat1g==", 596 | "dependencies": { 597 | "cross-fetch": "3.1.5", 598 | "debug": "4.3.4", 599 | "devtools-protocol": "0.0.1056733", 600 | "extract-zip": "2.0.1", 601 | "https-proxy-agent": "5.0.1", 602 | "proxy-from-env": "1.1.0", 603 | "rimraf": "3.0.2", 604 | "tar-fs": "2.1.1", 605 | "unbzip2-stream": "1.4.3", 606 | "ws": "8.10.0" 607 | }, 608 | "engines": { 609 | "node": ">=14.1.0" 610 | } 611 | }, 612 | "node_modules/puppeteer-extra": { 613 | "version": "3.3.4", 614 | "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.4.tgz", 615 | "integrity": "sha512-fN5pHvSMJ8d1o7Z8wLLTQOUBpORD2BcFn+KDs7QnkGZs9SV69hcUcce67vX4L4bNSEG3A0P6Osrv+vWNhhdm8w==", 616 | "dependencies": { 617 | "@types/debug": "^4.1.0", 618 | "debug": "^4.1.1", 619 | "deepmerge": "^4.2.2" 620 | }, 621 | "engines": { 622 | "node": ">=8" 623 | }, 624 | "peerDependencies": { 625 | "@types/puppeteer": "*", 626 | "puppeteer": "*", 627 | "puppeteer-core": "*" 628 | }, 629 | "peerDependenciesMeta": { 630 | "@types/puppeteer": { 631 | "optional": true 632 | }, 633 | "puppeteer": { 634 | "optional": true 635 | }, 636 | "puppeteer-core": { 637 | "optional": true 638 | } 639 | } 640 | }, 641 | "node_modules/readable-stream": { 642 | "version": "3.6.0", 643 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 644 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 645 | "dependencies": { 646 | "inherits": "^2.0.3", 647 | "string_decoder": "^1.1.1", 648 | "util-deprecate": "^1.0.1" 649 | }, 650 | "engines": { 651 | "node": ">= 6" 652 | } 653 | }, 654 | "node_modules/resolve-from": { 655 | "version": "4.0.0", 656 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 657 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 658 | "engines": { 659 | "node": ">=4" 660 | } 661 | }, 662 | "node_modules/rimraf": { 663 | "version": "3.0.2", 664 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 665 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 666 | "dependencies": { 667 | "glob": "^7.1.3" 668 | }, 669 | "bin": { 670 | "rimraf": "bin.js" 671 | }, 672 | "funding": { 673 | "url": "https://github.com/sponsors/isaacs" 674 | } 675 | }, 676 | "node_modules/safe-buffer": { 677 | "version": "5.2.1", 678 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 679 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 680 | "funding": [ 681 | { 682 | "type": "github", 683 | "url": "https://github.com/sponsors/feross" 684 | }, 685 | { 686 | "type": "patreon", 687 | "url": "https://www.patreon.com/feross" 688 | }, 689 | { 690 | "type": "consulting", 691 | "url": "https://feross.org/support" 692 | } 693 | ] 694 | }, 695 | "node_modules/string_decoder": { 696 | "version": "1.3.0", 697 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 698 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 699 | "dependencies": { 700 | "safe-buffer": "~5.2.0" 701 | } 702 | }, 703 | "node_modules/supports-color": { 704 | "version": "5.5.0", 705 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 706 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 707 | "dependencies": { 708 | "has-flag": "^3.0.0" 709 | }, 710 | "engines": { 711 | "node": ">=4" 712 | } 713 | }, 714 | "node_modules/tar-fs": { 715 | "version": "2.1.1", 716 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 717 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 718 | "dependencies": { 719 | "chownr": "^1.1.1", 720 | "mkdirp-classic": "^0.5.2", 721 | "pump": "^3.0.0", 722 | "tar-stream": "^2.1.4" 723 | } 724 | }, 725 | "node_modules/tar-stream": { 726 | "version": "2.2.0", 727 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 728 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 729 | "dependencies": { 730 | "bl": "^4.0.3", 731 | "end-of-stream": "^1.4.1", 732 | "fs-constants": "^1.0.0", 733 | "inherits": "^2.0.3", 734 | "readable-stream": "^3.1.1" 735 | }, 736 | "engines": { 737 | "node": ">=6" 738 | } 739 | }, 740 | "node_modules/through": { 741 | "version": "2.3.8", 742 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 743 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 744 | }, 745 | "node_modules/tr46": { 746 | "version": "0.0.3", 747 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 748 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 749 | }, 750 | "node_modules/unbzip2-stream": { 751 | "version": "1.4.3", 752 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 753 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 754 | "dependencies": { 755 | "buffer": "^5.2.1", 756 | "through": "^2.3.8" 757 | } 758 | }, 759 | "node_modules/util-deprecate": { 760 | "version": "1.0.2", 761 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 762 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 763 | }, 764 | "node_modules/webidl-conversions": { 765 | "version": "3.0.1", 766 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 767 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 768 | }, 769 | "node_modules/whatwg-url": { 770 | "version": "5.0.0", 771 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 772 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 773 | "dependencies": { 774 | "tr46": "~0.0.3", 775 | "webidl-conversions": "^3.0.0" 776 | } 777 | }, 778 | "node_modules/wrappy": { 779 | "version": "1.0.2", 780 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 781 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 782 | }, 783 | "node_modules/ws": { 784 | "version": "8.10.0", 785 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", 786 | "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", 787 | "engines": { 788 | "node": ">=10.0.0" 789 | }, 790 | "peerDependencies": { 791 | "bufferutil": "^4.0.1", 792 | "utf-8-validate": "^5.0.2" 793 | }, 794 | "peerDependenciesMeta": { 795 | "bufferutil": { 796 | "optional": true 797 | }, 798 | "utf-8-validate": { 799 | "optional": true 800 | } 801 | } 802 | }, 803 | "node_modules/yaml": { 804 | "version": "1.10.2", 805 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 806 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 807 | "engines": { 808 | "node": ">= 6" 809 | } 810 | }, 811 | "node_modules/yauzl": { 812 | "version": "2.10.0", 813 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 814 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 815 | "dependencies": { 816 | "buffer-crc32": "~0.2.3", 817 | "fd-slicer": "~1.1.0" 818 | } 819 | } 820 | }, 821 | "dependencies": { 822 | "@babel/code-frame": { 823 | "version": "7.18.6", 824 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 825 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 826 | "requires": { 827 | "@babel/highlight": "^7.18.6" 828 | } 829 | }, 830 | "@babel/helper-validator-identifier": { 831 | "version": "7.19.1", 832 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 833 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" 834 | }, 835 | "@babel/highlight": { 836 | "version": "7.18.6", 837 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 838 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 839 | "requires": { 840 | "@babel/helper-validator-identifier": "^7.18.6", 841 | "chalk": "^2.0.0", 842 | "js-tokens": "^4.0.0" 843 | } 844 | }, 845 | "@types/debug": { 846 | "version": "4.1.7", 847 | "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", 848 | "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", 849 | "requires": { 850 | "@types/ms": "*" 851 | } 852 | }, 853 | "@types/ms": { 854 | "version": "0.7.31", 855 | "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", 856 | "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" 857 | }, 858 | "@types/node": { 859 | "version": "18.11.8", 860 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.8.tgz", 861 | "integrity": "sha512-uGwPWlE0Hj972KkHtCDVwZ8O39GmyjfMane1Z3GUBGGnkZ2USDq7SxLpVIiIHpweY9DS0QTDH0Nw7RNBsAAZ5A==", 862 | "optional": true 863 | }, 864 | "@types/parse-json": { 865 | "version": "4.0.0", 866 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 867 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 868 | }, 869 | "@types/yauzl": { 870 | "version": "2.10.0", 871 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", 872 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", 873 | "optional": true, 874 | "requires": { 875 | "@types/node": "*" 876 | } 877 | }, 878 | "agent-base": { 879 | "version": "6.0.2", 880 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 881 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 882 | "requires": { 883 | "debug": "4" 884 | } 885 | }, 886 | "ansi-styles": { 887 | "version": "3.2.1", 888 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 889 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 890 | "requires": { 891 | "color-convert": "^1.9.0" 892 | } 893 | }, 894 | "balanced-match": { 895 | "version": "1.0.2", 896 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 897 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 898 | }, 899 | "base64-js": { 900 | "version": "1.5.1", 901 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 902 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 903 | }, 904 | "bl": { 905 | "version": "4.1.0", 906 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", 907 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", 908 | "requires": { 909 | "buffer": "^5.5.0", 910 | "inherits": "^2.0.4", 911 | "readable-stream": "^3.4.0" 912 | } 913 | }, 914 | "brace-expansion": { 915 | "version": "1.1.11", 916 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 917 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 918 | "requires": { 919 | "balanced-match": "^1.0.0", 920 | "concat-map": "0.0.1" 921 | } 922 | }, 923 | "buffer": { 924 | "version": "5.7.1", 925 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 926 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 927 | "requires": { 928 | "base64-js": "^1.3.1", 929 | "ieee754": "^1.1.13" 930 | } 931 | }, 932 | "buffer-crc32": { 933 | "version": "0.2.13", 934 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 935 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 936 | }, 937 | "callsites": { 938 | "version": "3.1.0", 939 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 940 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 941 | }, 942 | "chalk": { 943 | "version": "2.4.2", 944 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 945 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 946 | "requires": { 947 | "ansi-styles": "^3.2.1", 948 | "escape-string-regexp": "^1.0.5", 949 | "supports-color": "^5.3.0" 950 | } 951 | }, 952 | "chownr": { 953 | "version": "1.1.4", 954 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", 955 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 956 | }, 957 | "color-convert": { 958 | "version": "1.9.3", 959 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 960 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 961 | "requires": { 962 | "color-name": "1.1.3" 963 | } 964 | }, 965 | "color-name": { 966 | "version": "1.1.3", 967 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 968 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 969 | }, 970 | "concat-map": { 971 | "version": "0.0.1", 972 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 973 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 974 | }, 975 | "cosmiconfig": { 976 | "version": "7.0.1", 977 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", 978 | "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", 979 | "requires": { 980 | "@types/parse-json": "^4.0.0", 981 | "import-fresh": "^3.2.1", 982 | "parse-json": "^5.0.0", 983 | "path-type": "^4.0.0", 984 | "yaml": "^1.10.0" 985 | } 986 | }, 987 | "cross-fetch": { 988 | "version": "3.1.5", 989 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", 990 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", 991 | "requires": { 992 | "node-fetch": "2.6.7" 993 | } 994 | }, 995 | "debug": { 996 | "version": "4.3.4", 997 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 998 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 999 | "requires": { 1000 | "ms": "2.1.2" 1001 | } 1002 | }, 1003 | "deepmerge": { 1004 | "version": "4.2.2", 1005 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 1006 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" 1007 | }, 1008 | "devtools-protocol": { 1009 | "version": "0.0.1056733", 1010 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1056733.tgz", 1011 | "integrity": "sha512-CmTu6SQx2g3TbZzDCAV58+LTxVdKplS7xip0g5oDXpZ+isr0rv5dDP8ToyVRywzPHkCCPKgKgScEcwz4uPWDIA==" 1012 | }, 1013 | "end-of-stream": { 1014 | "version": "1.4.4", 1015 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 1016 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 1017 | "requires": { 1018 | "once": "^1.4.0" 1019 | } 1020 | }, 1021 | "error-ex": { 1022 | "version": "1.3.2", 1023 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1024 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1025 | "requires": { 1026 | "is-arrayish": "^0.2.1" 1027 | } 1028 | }, 1029 | "escape-string-regexp": { 1030 | "version": "1.0.5", 1031 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1032 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 1033 | }, 1034 | "extract-zip": { 1035 | "version": "2.0.1", 1036 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 1037 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 1038 | "requires": { 1039 | "@types/yauzl": "^2.9.1", 1040 | "debug": "^4.1.1", 1041 | "get-stream": "^5.1.0", 1042 | "yauzl": "^2.10.0" 1043 | } 1044 | }, 1045 | "fd-slicer": { 1046 | "version": "1.1.0", 1047 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 1048 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 1049 | "requires": { 1050 | "pend": "~1.2.0" 1051 | } 1052 | }, 1053 | "fs-constants": { 1054 | "version": "1.0.0", 1055 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1056 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1057 | }, 1058 | "fs.realpath": { 1059 | "version": "1.0.0", 1060 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1061 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 1062 | }, 1063 | "get-stream": { 1064 | "version": "5.2.0", 1065 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 1066 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 1067 | "requires": { 1068 | "pump": "^3.0.0" 1069 | } 1070 | }, 1071 | "glob": { 1072 | "version": "7.2.3", 1073 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1074 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1075 | "requires": { 1076 | "fs.realpath": "^1.0.0", 1077 | "inflight": "^1.0.4", 1078 | "inherits": "2", 1079 | "minimatch": "^3.1.1", 1080 | "once": "^1.3.0", 1081 | "path-is-absolute": "^1.0.0" 1082 | } 1083 | }, 1084 | "has-flag": { 1085 | "version": "3.0.0", 1086 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1087 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 1088 | }, 1089 | "https-proxy-agent": { 1090 | "version": "5.0.1", 1091 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 1092 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 1093 | "requires": { 1094 | "agent-base": "6", 1095 | "debug": "4" 1096 | } 1097 | }, 1098 | "ieee754": { 1099 | "version": "1.2.1", 1100 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1101 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 1102 | }, 1103 | "import-fresh": { 1104 | "version": "3.3.0", 1105 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1106 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1107 | "requires": { 1108 | "parent-module": "^1.0.0", 1109 | "resolve-from": "^4.0.0" 1110 | } 1111 | }, 1112 | "inflight": { 1113 | "version": "1.0.6", 1114 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1115 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1116 | "requires": { 1117 | "once": "^1.3.0", 1118 | "wrappy": "1" 1119 | } 1120 | }, 1121 | "inherits": { 1122 | "version": "2.0.4", 1123 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1124 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1125 | }, 1126 | "is-arrayish": { 1127 | "version": "0.2.1", 1128 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1129 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 1130 | }, 1131 | "js-tokens": { 1132 | "version": "4.0.0", 1133 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1134 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1135 | }, 1136 | "json-parse-even-better-errors": { 1137 | "version": "2.3.1", 1138 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 1139 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 1140 | }, 1141 | "lines-and-columns": { 1142 | "version": "1.2.4", 1143 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 1144 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 1145 | }, 1146 | "minimatch": { 1147 | "version": "3.1.2", 1148 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1149 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1150 | "requires": { 1151 | "brace-expansion": "^1.1.7" 1152 | } 1153 | }, 1154 | "mkdirp-classic": { 1155 | "version": "0.5.3", 1156 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", 1157 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 1158 | }, 1159 | "ms": { 1160 | "version": "2.1.2", 1161 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1162 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1163 | }, 1164 | "node-fetch": { 1165 | "version": "2.6.7", 1166 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", 1167 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", 1168 | "requires": { 1169 | "whatwg-url": "^5.0.0" 1170 | } 1171 | }, 1172 | "once": { 1173 | "version": "1.4.0", 1174 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1175 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1176 | "requires": { 1177 | "wrappy": "1" 1178 | } 1179 | }, 1180 | "parent-module": { 1181 | "version": "1.0.1", 1182 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1183 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1184 | "requires": { 1185 | "callsites": "^3.0.0" 1186 | } 1187 | }, 1188 | "parse-json": { 1189 | "version": "5.2.0", 1190 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1191 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1192 | "requires": { 1193 | "@babel/code-frame": "^7.0.0", 1194 | "error-ex": "^1.3.1", 1195 | "json-parse-even-better-errors": "^2.3.0", 1196 | "lines-and-columns": "^1.1.6" 1197 | } 1198 | }, 1199 | "path-is-absolute": { 1200 | "version": "1.0.1", 1201 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1202 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 1203 | }, 1204 | "path-type": { 1205 | "version": "4.0.0", 1206 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1207 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 1208 | }, 1209 | "pend": { 1210 | "version": "1.2.0", 1211 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 1212 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 1213 | }, 1214 | "progress": { 1215 | "version": "2.0.3", 1216 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1217 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 1218 | }, 1219 | "proxy-from-env": { 1220 | "version": "1.1.0", 1221 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 1222 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1223 | }, 1224 | "pump": { 1225 | "version": "3.0.0", 1226 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1227 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1228 | "requires": { 1229 | "end-of-stream": "^1.1.0", 1230 | "once": "^1.3.1" 1231 | } 1232 | }, 1233 | "puppeteer": { 1234 | "version": "19.2.0", 1235 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.2.0.tgz", 1236 | "integrity": "sha512-rhr5ery8htpOTikmm/wrDU707wtmJ7ccX2WLkBf0A8eYYpscck5/iz04/fHOiIRWMFfnYOvaO9wNb4jcO3Mjyg==", 1237 | "requires": { 1238 | "cosmiconfig": "7.0.1", 1239 | "devtools-protocol": "0.0.1056733", 1240 | "https-proxy-agent": "5.0.1", 1241 | "progress": "2.0.3", 1242 | "proxy-from-env": "1.1.0", 1243 | "puppeteer-core": "19.2.0" 1244 | } 1245 | }, 1246 | "puppeteer-core": { 1247 | "version": "19.2.0", 1248 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.2.0.tgz", 1249 | "integrity": "sha512-wdoZDzf46y1ScpPEUDAzIWDmvG272BbdqSvDMvtYNjy2UJZT/j5OS5k813o2lfT4HtOle79eByCLs24iXbat1g==", 1250 | "requires": { 1251 | "cross-fetch": "3.1.5", 1252 | "debug": "4.3.4", 1253 | "devtools-protocol": "0.0.1056733", 1254 | "extract-zip": "2.0.1", 1255 | "https-proxy-agent": "5.0.1", 1256 | "proxy-from-env": "1.1.0", 1257 | "rimraf": "3.0.2", 1258 | "tar-fs": "2.1.1", 1259 | "unbzip2-stream": "1.4.3", 1260 | "ws": "8.10.0" 1261 | } 1262 | }, 1263 | "puppeteer-extra": { 1264 | "version": "3.3.4", 1265 | "resolved": "https://registry.npmjs.org/puppeteer-extra/-/puppeteer-extra-3.3.4.tgz", 1266 | "integrity": "sha512-fN5pHvSMJ8d1o7Z8wLLTQOUBpORD2BcFn+KDs7QnkGZs9SV69hcUcce67vX4L4bNSEG3A0P6Osrv+vWNhhdm8w==", 1267 | "requires": { 1268 | "@types/debug": "^4.1.0", 1269 | "debug": "^4.1.1", 1270 | "deepmerge": "^4.2.2" 1271 | } 1272 | }, 1273 | "readable-stream": { 1274 | "version": "3.6.0", 1275 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1276 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1277 | "requires": { 1278 | "inherits": "^2.0.3", 1279 | "string_decoder": "^1.1.1", 1280 | "util-deprecate": "^1.0.1" 1281 | } 1282 | }, 1283 | "resolve-from": { 1284 | "version": "4.0.0", 1285 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1286 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 1287 | }, 1288 | "rimraf": { 1289 | "version": "3.0.2", 1290 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 1291 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 1292 | "requires": { 1293 | "glob": "^7.1.3" 1294 | } 1295 | }, 1296 | "safe-buffer": { 1297 | "version": "5.2.1", 1298 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1299 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1300 | }, 1301 | "string_decoder": { 1302 | "version": "1.3.0", 1303 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1304 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1305 | "requires": { 1306 | "safe-buffer": "~5.2.0" 1307 | } 1308 | }, 1309 | "supports-color": { 1310 | "version": "5.5.0", 1311 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1312 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1313 | "requires": { 1314 | "has-flag": "^3.0.0" 1315 | } 1316 | }, 1317 | "tar-fs": { 1318 | "version": "2.1.1", 1319 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", 1320 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", 1321 | "requires": { 1322 | "chownr": "^1.1.1", 1323 | "mkdirp-classic": "^0.5.2", 1324 | "pump": "^3.0.0", 1325 | "tar-stream": "^2.1.4" 1326 | } 1327 | }, 1328 | "tar-stream": { 1329 | "version": "2.2.0", 1330 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 1331 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 1332 | "requires": { 1333 | "bl": "^4.0.3", 1334 | "end-of-stream": "^1.4.1", 1335 | "fs-constants": "^1.0.0", 1336 | "inherits": "^2.0.3", 1337 | "readable-stream": "^3.1.1" 1338 | } 1339 | }, 1340 | "through": { 1341 | "version": "2.3.8", 1342 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1343 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 1344 | }, 1345 | "tr46": { 1346 | "version": "0.0.3", 1347 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1348 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 1349 | }, 1350 | "unbzip2-stream": { 1351 | "version": "1.4.3", 1352 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", 1353 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", 1354 | "requires": { 1355 | "buffer": "^5.2.1", 1356 | "through": "^2.3.8" 1357 | } 1358 | }, 1359 | "util-deprecate": { 1360 | "version": "1.0.2", 1361 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1362 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1363 | }, 1364 | "webidl-conversions": { 1365 | "version": "3.0.1", 1366 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1367 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 1368 | }, 1369 | "whatwg-url": { 1370 | "version": "5.0.0", 1371 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1372 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 1373 | "requires": { 1374 | "tr46": "~0.0.3", 1375 | "webidl-conversions": "^3.0.0" 1376 | } 1377 | }, 1378 | "wrappy": { 1379 | "version": "1.0.2", 1380 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1381 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1382 | }, 1383 | "ws": { 1384 | "version": "8.10.0", 1385 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", 1386 | "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", 1387 | "requires": {} 1388 | }, 1389 | "yaml": { 1390 | "version": "1.10.2", 1391 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1392 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" 1393 | }, 1394 | "yauzl": { 1395 | "version": "2.10.0", 1396 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 1397 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 1398 | "requires": { 1399 | "buffer-crc32": "~0.2.3", 1400 | "fd-slicer": "~1.1.0" 1401 | } 1402 | } 1403 | } 1404 | } 1405 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bulktok", 3 | "version": "2.1.0", 4 | "description": "", 5 | "main": "bulktok.js", 6 | "scripts": { 7 | "test": "node bulktok.js proflie url" 8 | }, 9 | "keywords": [], 10 | "author": "Karim ELsayed (karim0sec)", 11 | "license": "ISC", 12 | "dependencies": { 13 | "node-fetch": "^2.6.7", 14 | "puppeteer": "^19.0.0", 15 | "puppeteer-extra": "^3.3.4" 16 | } 17 | } 18 | --------------------------------------------------------------------------------