├── .gitignore ├── README.md ├── WebPage.js ├── index.js ├── package-lock.json ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LINKEDIN-BOT 2 | A linkedin-bot which automatically accepts all the connection invitations. 3 | 4 | ## Running it locally on your machine 5 | 6 | 1) Clone this repo , `cd` to project root and add `.env` file with your username and password. 7 | 2) Make sure node is installed on your system. 8 | 3) Install chrome-driver on your system. 9 | 4) Install dependencies using `npm i` 10 | 5) Run `node index.js` 11 | 12 | ## Running it on cloud instance like AWS 13 | 14 | 1) SSH into your cloud instance. 15 | 2) Clone this repo. 16 | 3) Configure your environment variables.
17 |  3.a) MacOS/Linux
18 |  `> export USERNAME="Replace this with your linkedin username without quotes)"`
19 |  `> export PASSWORD="Replace this with your linkedin password without quotes)"`
20 |  3.b) Windows-CMD
21 |  `> setx USERNAME "Replace this with your linkedin username without quotes"`
22 |  `> setx PASSWORD "Replace this with your linkedin password without quotes"`
& 23 | ensp;3.c) Powershell
 `> $Env:USERNAME="Replace this with your linkedin username"`
24 |  `> $Env:PASSWORD="Replace this with your linkedin password"`
25 | 4) Install node and chrome-driver. 26 | 5) `cd` to project root and install dependencies using `npm i` 27 | 6) Run the application.
28 |  6.a) Launch script by running `node index.js`
29 |  6.b) Launch using pm2 by running `npm install pm2@latest -g && pm2 start index.js`
30 | -------------------------------------------------------------------------------- /WebPage.js: -------------------------------------------------------------------------------- 1 | require("dotenv").config(); 2 | const { Builder, By, until } = require("selenium-webdriver"); 3 | 4 | const chrome = require("selenium-webdriver/chrome"); 5 | 6 | function initOptions(o) { 7 | // o.addArguments("headless"); 8 | o.addArguments("disable-infobars"); 9 | o.addArguments("no-sandbox"); 10 | o.addArguments( 11 | "user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 RuxitSynthetic/1.0 v6419931773 t38550 ath9b965f92 altpub" 12 | ); 13 | o.setUserPreferences({ 14 | credential_enable_service: false, 15 | }); 16 | } 17 | 18 | const BasePage = function (customAudio = null) { 19 | let o = new chrome.Options(); 20 | initOptions(o); 21 | 22 | this.driver = new Builder() 23 | .withCapabilities({ acceptSslCerts: true, acceptInsecureCerts: true }) 24 | .setChromeOptions(o) 25 | .forBrowser("chrome") 26 | .build(); 27 | 28 | this.visit = async function (theUrl) { 29 | return await this.driver.get(theUrl); 30 | }; 31 | 32 | this.findById = async function (id) { 33 | await this.driver.wait( 34 | until.elementLocated(By.id(id)), 35 | 15000, 36 | "Looking for element" 37 | ); 38 | return await this.driver.findElement(By.id(id)); 39 | }; 40 | 41 | this.findByClassName = async function (name) { 42 | const els = await this.driver.wait( 43 | until.elementsLocated(By.className(name)), 44 | 15000, 45 | "Looking for element" 46 | ); 47 | return els[els.length - 1]; 48 | return await this.driver.findElement(By.className(name)); 49 | }; 50 | 51 | this.signin = async function () { 52 | let name = process.env.USERNAME || ""; 53 | let password = process.env.PASSWORD || ""; 54 | let input = await this.findById("session_key"); 55 | await input.sendKeys(name); 56 | let input2 = await this.findById("session_password"); 57 | await input2.sendKeys(password); 58 | let button = await this.findByClassName( 59 | "sign-in-form__submit-btn--full-width" 60 | ); 61 | console.log(button); 62 | await button.click(); 63 | }; 64 | 65 | this.pressAcceptButton = async function () { 66 | let buttons = await this.findByClassName( 67 | "artdeco-button--secondary invitation-card__action-btn" 68 | ); 69 | await buttons.click(); 70 | }; 71 | 72 | this.scrollToBottom = async function () { 73 | this.driver.executeScript("window.scrollTo(0, document.body.scrollHeight)"); 74 | }; 75 | }; 76 | 77 | module.exports = BasePage; 78 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { Builder, By, until } = require("selenium-webdriver"); 2 | const chrome = require("selenium-webdriver/chrome"); 3 | const BasePage = require("./WebPage") 4 | 5 | async function sleep(timeInS) { 6 | await new Promise((resolve) => setTimeout(resolve, timeInS * 1000)) 7 | } 8 | 9 | async function startBot() { 10 | const page = new BasePage(); 11 | let site = "https://www.linkedin.com"; 12 | await page.visit(site); 13 | 14 | await sleep(5) 15 | 16 | await page.signin(); 17 | await sleep(20) 18 | 19 | site = "https://www.linkedin.com/mynetwork/invitation-manager"; 20 | await sleep(5) 21 | await page.visit(site); 22 | 23 | for (let i = 3; i< 10000; i++) { 24 | if (i % 10 === 9) { 25 | page.visit(site); 26 | await sleep(8) 27 | page.scrollToBottom(); 28 | await sleep(2) 29 | } 30 | try { 31 | await page.pressAcceptButton(); 32 | await new Promise((resolve) => setTimeout(resolve, 1000)) 33 | page.scrollToBottom(); 34 | await sleep(3) 35 | } catch(e) { 36 | console.error(e) 37 | } 38 | } 39 | await new Promise((resolve) => setTimeout(resolve, 5000)) 40 | } 41 | 42 | 43 | (async () => { 44 | await startBot() 45 | })() 46 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "linkedin-bot", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@testim/chrome-version": { 8 | "version": "1.1.3", 9 | "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", 10 | "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==" 11 | }, 12 | "@types/node": { 13 | "version": "18.14.6", 14 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.6.tgz", 15 | "integrity": "sha512-93+VvleD3mXwlLI/xASjw0FzKcwzl3OdTCzm1LaRfqgS21gfFtK3zDXM5Op9TeeMsJVOaJ2VRDpT9q4Y3d0AvA==", 16 | "optional": true 17 | }, 18 | "@types/yauzl": { 19 | "version": "2.10.0", 20 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", 21 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", 22 | "optional": true, 23 | "requires": { 24 | "@types/node": "*" 25 | } 26 | }, 27 | "agent-base": { 28 | "version": "6.0.2", 29 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 30 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 31 | "requires": { 32 | "debug": "4" 33 | } 34 | }, 35 | "asynckit": { 36 | "version": "0.4.0", 37 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 38 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 39 | }, 40 | "axios": { 41 | "version": "1.3.4", 42 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", 43 | "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", 44 | "requires": { 45 | "follow-redirects": "^1.15.0", 46 | "form-data": "^4.0.0", 47 | "proxy-from-env": "^1.1.0" 48 | } 49 | }, 50 | "balanced-match": { 51 | "version": "1.0.2", 52 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 53 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" 54 | }, 55 | "brace-expansion": { 56 | "version": "1.1.11", 57 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 58 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 59 | "requires": { 60 | "balanced-match": "^1.0.0", 61 | "concat-map": "0.0.1" 62 | } 63 | }, 64 | "buffer-crc32": { 65 | "version": "0.2.13", 66 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 67 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" 68 | }, 69 | "chromedriver": { 70 | "version": "110.0.0", 71 | "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-110.0.0.tgz", 72 | "integrity": "sha512-Le6q8xrA/3fAt+g8qiN0YjsYxINIhQMC6wj9X3W5L77uN4NspEzklDrqYNwBcEVn7PcAEJ73nLlS7mTyZRspHA==", 73 | "requires": { 74 | "@testim/chrome-version": "^1.1.3", 75 | "axios": "^1.2.1", 76 | "compare-versions": "^5.0.1", 77 | "extract-zip": "^2.0.1", 78 | "https-proxy-agent": "^5.0.1", 79 | "proxy-from-env": "^1.1.0", 80 | "tcp-port-used": "^1.0.1" 81 | } 82 | }, 83 | "combined-stream": { 84 | "version": "1.0.8", 85 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 86 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 87 | "requires": { 88 | "delayed-stream": "~1.0.0" 89 | } 90 | }, 91 | "compare-versions": { 92 | "version": "5.0.3", 93 | "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", 94 | "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==" 95 | }, 96 | "concat-map": { 97 | "version": "0.0.1", 98 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 99 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" 100 | }, 101 | "core-util-is": { 102 | "version": "1.0.3", 103 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 104 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 105 | }, 106 | "debug": { 107 | "version": "4.3.4", 108 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 109 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 110 | "requires": { 111 | "ms": "2.1.2" 112 | } 113 | }, 114 | "deep-is": { 115 | "version": "0.1.4", 116 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 117 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" 118 | }, 119 | "delayed-stream": { 120 | "version": "1.0.0", 121 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 122 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 123 | }, 124 | "dotenv": { 125 | "version": "16.0.3", 126 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", 127 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" 128 | }, 129 | "end-of-stream": { 130 | "version": "1.4.4", 131 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 132 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 133 | "requires": { 134 | "once": "^1.4.0" 135 | } 136 | }, 137 | "extract-zip": { 138 | "version": "2.0.1", 139 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 140 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 141 | "requires": { 142 | "@types/yauzl": "^2.9.1", 143 | "debug": "^4.1.1", 144 | "get-stream": "^5.1.0", 145 | "yauzl": "^2.10.0" 146 | } 147 | }, 148 | "fd-slicer": { 149 | "version": "1.1.0", 150 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 151 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", 152 | "requires": { 153 | "pend": "~1.2.0" 154 | } 155 | }, 156 | "follow-redirects": { 157 | "version": "1.15.2", 158 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", 159 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" 160 | }, 161 | "form-data": { 162 | "version": "4.0.0", 163 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 164 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 165 | "requires": { 166 | "asynckit": "^0.4.0", 167 | "combined-stream": "^1.0.8", 168 | "mime-types": "^2.1.12" 169 | } 170 | }, 171 | "fs.realpath": { 172 | "version": "1.0.0", 173 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 174 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" 175 | }, 176 | "get-stream": { 177 | "version": "5.2.0", 178 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 179 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 180 | "requires": { 181 | "pump": "^3.0.0" 182 | } 183 | }, 184 | "glob": { 185 | "version": "7.2.3", 186 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 187 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 188 | "requires": { 189 | "fs.realpath": "^1.0.0", 190 | "inflight": "^1.0.4", 191 | "inherits": "2", 192 | "minimatch": "^3.1.1", 193 | "once": "^1.3.0", 194 | "path-is-absolute": "^1.0.0" 195 | } 196 | }, 197 | "https-proxy-agent": { 198 | "version": "5.0.1", 199 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", 200 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", 201 | "requires": { 202 | "agent-base": "6", 203 | "debug": "4" 204 | } 205 | }, 206 | "immediate": { 207 | "version": "3.0.6", 208 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", 209 | "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" 210 | }, 211 | "inflight": { 212 | "version": "1.0.6", 213 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 214 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 215 | "requires": { 216 | "once": "^1.3.0", 217 | "wrappy": "1" 218 | } 219 | }, 220 | "inherits": { 221 | "version": "2.0.4", 222 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 223 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 224 | }, 225 | "ip-regex": { 226 | "version": "4.3.0", 227 | "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", 228 | "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" 229 | }, 230 | "is-url": { 231 | "version": "1.2.4", 232 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", 233 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" 234 | }, 235 | "is2": { 236 | "version": "2.0.9", 237 | "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", 238 | "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", 239 | "requires": { 240 | "deep-is": "^0.1.3", 241 | "ip-regex": "^4.1.0", 242 | "is-url": "^1.2.4" 243 | } 244 | }, 245 | "isarray": { 246 | "version": "1.0.0", 247 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 248 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 249 | }, 250 | "jszip": { 251 | "version": "3.10.1", 252 | "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", 253 | "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", 254 | "requires": { 255 | "lie": "~3.3.0", 256 | "pako": "~1.0.2", 257 | "readable-stream": "~2.3.6", 258 | "setimmediate": "^1.0.5" 259 | } 260 | }, 261 | "lie": { 262 | "version": "3.3.0", 263 | "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", 264 | "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", 265 | "requires": { 266 | "immediate": "~3.0.5" 267 | } 268 | }, 269 | "mime-db": { 270 | "version": "1.52.0", 271 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 272 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 273 | }, 274 | "mime-types": { 275 | "version": "2.1.35", 276 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 277 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 278 | "requires": { 279 | "mime-db": "1.52.0" 280 | } 281 | }, 282 | "minimatch": { 283 | "version": "3.1.2", 284 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 285 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 286 | "requires": { 287 | "brace-expansion": "^1.1.7" 288 | } 289 | }, 290 | "ms": { 291 | "version": "2.1.2", 292 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 293 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 294 | }, 295 | "once": { 296 | "version": "1.4.0", 297 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 298 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 299 | "requires": { 300 | "wrappy": "1" 301 | } 302 | }, 303 | "pako": { 304 | "version": "1.0.11", 305 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 306 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" 307 | }, 308 | "path-is-absolute": { 309 | "version": "1.0.1", 310 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 311 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" 312 | }, 313 | "pend": { 314 | "version": "1.2.0", 315 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 316 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" 317 | }, 318 | "process-nextick-args": { 319 | "version": "2.0.1", 320 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 321 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 322 | }, 323 | "proxy-from-env": { 324 | "version": "1.1.0", 325 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 326 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 327 | }, 328 | "pump": { 329 | "version": "3.0.0", 330 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 331 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 332 | "requires": { 333 | "end-of-stream": "^1.1.0", 334 | "once": "^1.3.1" 335 | } 336 | }, 337 | "readable-stream": { 338 | "version": "2.3.8", 339 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", 340 | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", 341 | "requires": { 342 | "core-util-is": "~1.0.0", 343 | "inherits": "~2.0.3", 344 | "isarray": "~1.0.0", 345 | "process-nextick-args": "~2.0.0", 346 | "safe-buffer": "~5.1.1", 347 | "string_decoder": "~1.1.1", 348 | "util-deprecate": "~1.0.1" 349 | } 350 | }, 351 | "rimraf": { 352 | "version": "3.0.2", 353 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 354 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 355 | "requires": { 356 | "glob": "^7.1.3" 357 | } 358 | }, 359 | "safe-buffer": { 360 | "version": "5.1.2", 361 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 362 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 363 | }, 364 | "selenium-webdriver": { 365 | "version": "4.8.1", 366 | "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.1.tgz", 367 | "integrity": "sha512-p4MtfhCQdcV6xxkS7eI0tQN6+WNReRULLCAuT4RDGkrjfObBNXMJ3WT8XdK+aXTr5nnBKuh+PxIevM0EjJgkxA==", 368 | "requires": { 369 | "jszip": "^3.10.0", 370 | "tmp": "^0.2.1", 371 | "ws": ">=8.11.0" 372 | } 373 | }, 374 | "setimmediate": { 375 | "version": "1.0.5", 376 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 377 | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" 378 | }, 379 | "string_decoder": { 380 | "version": "1.1.1", 381 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 382 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 383 | "requires": { 384 | "safe-buffer": "~5.1.0" 385 | } 386 | }, 387 | "tcp-port-used": { 388 | "version": "1.0.2", 389 | "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", 390 | "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", 391 | "requires": { 392 | "debug": "4.3.1", 393 | "is2": "^2.0.6" 394 | }, 395 | "dependencies": { 396 | "debug": { 397 | "version": "4.3.1", 398 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 399 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 400 | "requires": { 401 | "ms": "2.1.2" 402 | } 403 | } 404 | } 405 | }, 406 | "tmp": { 407 | "version": "0.2.1", 408 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 409 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 410 | "requires": { 411 | "rimraf": "^3.0.0" 412 | } 413 | }, 414 | "util-deprecate": { 415 | "version": "1.0.2", 416 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 417 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 418 | }, 419 | "wrappy": { 420 | "version": "1.0.2", 421 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 422 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 423 | }, 424 | "ws": { 425 | "version": "8.12.1", 426 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", 427 | "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==" 428 | }, 429 | "yauzl": { 430 | "version": "2.10.0", 431 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 432 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", 433 | "requires": { 434 | "buffer-crc32": "~0.2.3", 435 | "fd-slicer": "~1.1.0" 436 | } 437 | } 438 | } 439 | } 440 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "linkedin-bot", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "license": "MIT", 6 | "dependencies": { 7 | "chromedriver": "^110.0.0", 8 | "dotenv": "^16.0.3", 9 | "selenium-webdriver": "^4.8.1" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@testim/chrome-version@^1.1.3": 6 | version "1.1.3" 7 | resolved "https://registry.yarnpkg.com/@testim/chrome-version/-/chrome-version-1.1.3.tgz#fbb68696899d7b8c1b9b891eded9c04fe2cd5529" 8 | integrity sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A== 9 | 10 | "@types/node@*": 11 | version "18.14.1" 12 | resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.1.tgz#90dad8476f1e42797c49d6f8b69aaf9f876fc69f" 13 | integrity sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ== 14 | 15 | "@types/yauzl@^2.9.1": 16 | version "2.10.0" 17 | resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" 18 | integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== 19 | dependencies: 20 | "@types/node" "*" 21 | 22 | agent-base@6: 23 | version "6.0.2" 24 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" 25 | integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== 26 | dependencies: 27 | debug "4" 28 | 29 | asynckit@^0.4.0: 30 | version "0.4.0" 31 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 32 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 33 | 34 | axios@^1.2.1: 35 | version "1.3.4" 36 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" 37 | integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== 38 | dependencies: 39 | follow-redirects "^1.15.0" 40 | form-data "^4.0.0" 41 | proxy-from-env "^1.1.0" 42 | 43 | balanced-match@^1.0.0: 44 | version "1.0.2" 45 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 46 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 47 | 48 | brace-expansion@^1.1.7: 49 | version "1.1.11" 50 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 51 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 52 | dependencies: 53 | balanced-match "^1.0.0" 54 | concat-map "0.0.1" 55 | 56 | buffer-crc32@~0.2.3: 57 | version "0.2.13" 58 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 59 | integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== 60 | 61 | chromedriver@^110.0.0: 62 | version "110.0.0" 63 | resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-110.0.0.tgz#d00a1a2976592d933faa8e9839e97692922834a4" 64 | integrity sha512-Le6q8xrA/3fAt+g8qiN0YjsYxINIhQMC6wj9X3W5L77uN4NspEzklDrqYNwBcEVn7PcAEJ73nLlS7mTyZRspHA== 65 | dependencies: 66 | "@testim/chrome-version" "^1.1.3" 67 | axios "^1.2.1" 68 | compare-versions "^5.0.1" 69 | extract-zip "^2.0.1" 70 | https-proxy-agent "^5.0.1" 71 | proxy-from-env "^1.1.0" 72 | tcp-port-used "^1.0.1" 73 | 74 | combined-stream@^1.0.8: 75 | version "1.0.8" 76 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 77 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 78 | dependencies: 79 | delayed-stream "~1.0.0" 80 | 81 | compare-versions@^5.0.1: 82 | version "5.0.3" 83 | resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7" 84 | integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A== 85 | 86 | concat-map@0.0.1: 87 | version "0.0.1" 88 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 89 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 90 | 91 | core-util-is@~1.0.0: 92 | version "1.0.3" 93 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 94 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 95 | 96 | debug@4, debug@^4.1.1: 97 | version "4.3.4" 98 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 99 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 100 | dependencies: 101 | ms "2.1.2" 102 | 103 | debug@4.3.1: 104 | version "4.3.1" 105 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 106 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 107 | dependencies: 108 | ms "2.1.2" 109 | 110 | deep-is@^0.1.3: 111 | version "0.1.4" 112 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 113 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 114 | 115 | delayed-stream@~1.0.0: 116 | version "1.0.0" 117 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 118 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 119 | 120 | end-of-stream@^1.1.0: 121 | version "1.4.4" 122 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 123 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 124 | dependencies: 125 | once "^1.4.0" 126 | 127 | extract-zip@^2.0.1: 128 | version "2.0.1" 129 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" 130 | integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== 131 | dependencies: 132 | debug "^4.1.1" 133 | get-stream "^5.1.0" 134 | yauzl "^2.10.0" 135 | optionalDependencies: 136 | "@types/yauzl" "^2.9.1" 137 | 138 | fd-slicer@~1.1.0: 139 | version "1.1.0" 140 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 141 | integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== 142 | dependencies: 143 | pend "~1.2.0" 144 | 145 | follow-redirects@^1.15.0: 146 | version "1.15.2" 147 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" 148 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 149 | 150 | form-data@^4.0.0: 151 | version "4.0.0" 152 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 153 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 154 | dependencies: 155 | asynckit "^0.4.0" 156 | combined-stream "^1.0.8" 157 | mime-types "^2.1.12" 158 | 159 | fs.realpath@^1.0.0: 160 | version "1.0.0" 161 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 162 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 163 | 164 | get-stream@^5.1.0: 165 | version "5.2.0" 166 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 167 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 168 | dependencies: 169 | pump "^3.0.0" 170 | 171 | glob@^7.1.3: 172 | version "7.2.3" 173 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 174 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 175 | dependencies: 176 | fs.realpath "^1.0.0" 177 | inflight "^1.0.4" 178 | inherits "2" 179 | minimatch "^3.1.1" 180 | once "^1.3.0" 181 | path-is-absolute "^1.0.0" 182 | 183 | https-proxy-agent@^5.0.1: 184 | version "5.0.1" 185 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" 186 | integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== 187 | dependencies: 188 | agent-base "6" 189 | debug "4" 190 | 191 | immediate@~3.0.5: 192 | version "3.0.6" 193 | resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" 194 | integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== 195 | 196 | inflight@^1.0.4: 197 | version "1.0.6" 198 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 199 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 200 | dependencies: 201 | once "^1.3.0" 202 | wrappy "1" 203 | 204 | inherits@2, inherits@~2.0.3: 205 | version "2.0.4" 206 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 207 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 208 | 209 | ip-regex@^4.1.0: 210 | version "4.3.0" 211 | resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" 212 | integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== 213 | 214 | is-url@^1.2.4: 215 | version "1.2.4" 216 | resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" 217 | integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== 218 | 219 | is2@^2.0.6: 220 | version "2.0.9" 221 | resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.9.tgz#ff63b441f90de343fa8fac2125ee170da8e8240d" 222 | integrity sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g== 223 | dependencies: 224 | deep-is "^0.1.3" 225 | ip-regex "^4.1.0" 226 | is-url "^1.2.4" 227 | 228 | isarray@~1.0.0: 229 | version "1.0.0" 230 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 231 | integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== 232 | 233 | jszip@^3.10.0: 234 | version "3.10.1" 235 | resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" 236 | integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== 237 | dependencies: 238 | lie "~3.3.0" 239 | pako "~1.0.2" 240 | readable-stream "~2.3.6" 241 | setimmediate "^1.0.5" 242 | 243 | lie@~3.3.0: 244 | version "3.3.0" 245 | resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" 246 | integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== 247 | dependencies: 248 | immediate "~3.0.5" 249 | 250 | mime-db@1.52.0: 251 | version "1.52.0" 252 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 253 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 254 | 255 | mime-types@^2.1.12: 256 | version "2.1.35" 257 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 258 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 259 | dependencies: 260 | mime-db "1.52.0" 261 | 262 | minimatch@^3.1.1: 263 | version "3.1.2" 264 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 265 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 266 | dependencies: 267 | brace-expansion "^1.1.7" 268 | 269 | ms@2.1.2: 270 | version "2.1.2" 271 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 272 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 273 | 274 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 275 | version "1.4.0" 276 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 277 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 278 | dependencies: 279 | wrappy "1" 280 | 281 | pako@~1.0.2: 282 | version "1.0.11" 283 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 284 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 285 | 286 | path-is-absolute@^1.0.0: 287 | version "1.0.1" 288 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 289 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 290 | 291 | pend@~1.2.0: 292 | version "1.2.0" 293 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 294 | integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== 295 | 296 | process-nextick-args@~2.0.0: 297 | version "2.0.1" 298 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 299 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 300 | 301 | proxy-from-env@^1.1.0: 302 | version "1.1.0" 303 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" 304 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 305 | 306 | pump@^3.0.0: 307 | version "3.0.0" 308 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 309 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 310 | dependencies: 311 | end-of-stream "^1.1.0" 312 | once "^1.3.1" 313 | 314 | readable-stream@~2.3.6: 315 | version "2.3.8" 316 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" 317 | integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== 318 | dependencies: 319 | core-util-is "~1.0.0" 320 | inherits "~2.0.3" 321 | isarray "~1.0.0" 322 | process-nextick-args "~2.0.0" 323 | safe-buffer "~5.1.1" 324 | string_decoder "~1.1.1" 325 | util-deprecate "~1.0.1" 326 | 327 | rimraf@^3.0.0: 328 | version "3.0.2" 329 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 330 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 331 | dependencies: 332 | glob "^7.1.3" 333 | 334 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 335 | version "5.1.2" 336 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 337 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 338 | 339 | selenium-webdriver@^4.8.1: 340 | version "4.8.1" 341 | resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.8.1.tgz#4b0a546c4ea747c44e9688c108f7a46b8d8244ab" 342 | integrity sha512-p4MtfhCQdcV6xxkS7eI0tQN6+WNReRULLCAuT4RDGkrjfObBNXMJ3WT8XdK+aXTr5nnBKuh+PxIevM0EjJgkxA== 343 | dependencies: 344 | jszip "^3.10.0" 345 | tmp "^0.2.1" 346 | ws ">=8.11.0" 347 | 348 | setimmediate@^1.0.5: 349 | version "1.0.5" 350 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 351 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== 352 | 353 | string_decoder@~1.1.1: 354 | version "1.1.1" 355 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 356 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 357 | dependencies: 358 | safe-buffer "~5.1.0" 359 | 360 | tcp-port-used@^1.0.1: 361 | version "1.0.2" 362 | resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.2.tgz#9652b7436eb1f4cfae111c79b558a25769f6faea" 363 | integrity sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA== 364 | dependencies: 365 | debug "4.3.1" 366 | is2 "^2.0.6" 367 | 368 | tmp@^0.2.1: 369 | version "0.2.1" 370 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" 371 | integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== 372 | dependencies: 373 | rimraf "^3.0.0" 374 | 375 | util-deprecate@~1.0.1: 376 | version "1.0.2" 377 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 378 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 379 | 380 | wrappy@1: 381 | version "1.0.2" 382 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 383 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 384 | 385 | ws@>=8.11.0: 386 | version "8.12.1" 387 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f" 388 | integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew== 389 | 390 | yauzl@^2.10.0: 391 | version "2.10.0" 392 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 393 | integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== 394 | dependencies: 395 | buffer-crc32 "~0.2.3" 396 | fd-slicer "~1.1.0" 397 | --------------------------------------------------------------------------------