├── .gitignore ├── README.md ├── _redirects ├── capture.js ├── dist ├── card │ └── .keep └── www.hawksworx.com.png ├── netlify.toml ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/card/*.png 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Social image generator 2 | 3 | Automatically generating images for opengraph and twitter cards. 4 | -------------------------------------------------------------------------------- /_redirects: -------------------------------------------------------------------------------- 1 | /* /www.hawksworx.com.png 404 2 | -------------------------------------------------------------------------------- /capture.js: -------------------------------------------------------------------------------- 1 | process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; 2 | 3 | const axios = require('axios'); 4 | const puppeteer = require('puppeteer'); 5 | var browser, page; 6 | 7 | 8 | /* 9 | * Global config variables 10 | */ 11 | const conf = { 12 | path: './dist/card', 13 | index: 'https://www.hawksworx.com/card-urls.json' 14 | } 15 | 16 | 17 | /* 18 | * Take a snapshot with puppeteer 19 | */ 20 | async function snap(url, file) { 21 | try { 22 | console.log('snapping :', url); 23 | await page.setViewport({ width: 1024, height: 512 }); 24 | await page.goto(url); 25 | await page.screenshot({ path: file, type: 'png' }); 26 | console.log('snapped :', file); 27 | } 28 | catch (err) { 29 | console.log('err :', err); 30 | } 31 | } 32 | 33 | 34 | async function setupAndProcess(array) { 35 | browser = await puppeteer.launch({ headless: true }); 36 | page = await browser.newPage(); 37 | for (const url of array) { 38 | let re = /\/|\./gi; 39 | let filename = url.split("://")[1].replace(re,"-"); 40 | let path = `${conf.path}/${filename}.png` 41 | await snap(url, path); 42 | } 43 | browser.close(); 44 | console.log('Done!'); 45 | } 46 | 47 | 48 | /* 49 | * Discover the list of urls for which we need snapshots 50 | */ 51 | 52 | axios.get(conf.index) 53 | .then((response) => { 54 | setupAndProcess(response.data.cards); 55 | }) 56 | .catch((error) => { 57 | console.log('error :', error) 58 | }); 59 | -------------------------------------------------------------------------------- /dist/card/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philhawksworth/social-image-generator/a9e1709e14b67657bd2bdb39e34e2ff6305d860d/dist/card/.keep -------------------------------------------------------------------------------- /dist/www.hawksworx.com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philhawksworth/social-image-generator/a9e1709e14b67657bd2bdb39e34e2ff6305d860d/dist/www.hawksworx.com.png -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "dist" 3 | command = "npm run build" 4 | 5 | [dev] 6 | publish = "dist" 7 | command = "npm run serve" 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "screenshooter", 3 | "version": "1.0.0", 4 | "main": "capture.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "build": "node capture.js" 8 | }, 9 | "dependencies": { 10 | "axios": "^0.18.0", 11 | "puppeteer": "^1.11.0" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | agent-base@^4.1.0: 6 | version "4.2.1" 7 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" 8 | integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== 9 | dependencies: 10 | es6-promisify "^5.0.0" 11 | 12 | async-limiter@~1.0.0: 13 | version "1.0.0" 14 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 15 | integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== 16 | 17 | axios@^0.18.0: 18 | version "0.18.0" 19 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" 20 | integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= 21 | dependencies: 22 | follow-redirects "^1.3.0" 23 | is-buffer "^1.1.5" 24 | 25 | balanced-match@^1.0.0: 26 | version "1.0.0" 27 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 28 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 29 | 30 | brace-expansion@^1.1.7: 31 | version "1.1.11" 32 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 33 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 34 | dependencies: 35 | balanced-match "^1.0.0" 36 | concat-map "0.0.1" 37 | 38 | buffer-from@^1.0.0: 39 | version "1.1.1" 40 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 41 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 42 | 43 | concat-map@0.0.1: 44 | version "0.0.1" 45 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 46 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 47 | 48 | concat-stream@1.6.2: 49 | version "1.6.2" 50 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 51 | integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== 52 | dependencies: 53 | buffer-from "^1.0.0" 54 | inherits "^2.0.3" 55 | readable-stream "^2.2.2" 56 | typedarray "^0.0.6" 57 | 58 | core-util-is@~1.0.0: 59 | version "1.0.2" 60 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 61 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 62 | 63 | debug@2.6.9: 64 | version "2.6.9" 65 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 66 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 67 | dependencies: 68 | ms "2.0.0" 69 | 70 | debug@=3.1.0: 71 | version "3.1.0" 72 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 73 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 74 | dependencies: 75 | ms "2.0.0" 76 | 77 | debug@^3.1.0: 78 | version "3.2.6" 79 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 80 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 81 | dependencies: 82 | ms "^2.1.1" 83 | 84 | debug@^4.1.0: 85 | version "4.1.1" 86 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 87 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 88 | dependencies: 89 | ms "^2.1.1" 90 | 91 | es6-promise@^4.0.3: 92 | version "4.2.5" 93 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" 94 | integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg== 95 | 96 | es6-promisify@^5.0.0: 97 | version "5.0.0" 98 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 99 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 100 | dependencies: 101 | es6-promise "^4.0.3" 102 | 103 | extract-zip@^1.6.6: 104 | version "1.6.7" 105 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" 106 | integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= 107 | dependencies: 108 | concat-stream "1.6.2" 109 | debug "2.6.9" 110 | mkdirp "0.5.1" 111 | yauzl "2.4.1" 112 | 113 | fd-slicer@~1.0.1: 114 | version "1.0.1" 115 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" 116 | integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= 117 | dependencies: 118 | pend "~1.2.0" 119 | 120 | follow-redirects@^1.3.0: 121 | version "1.6.1" 122 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb" 123 | integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ== 124 | dependencies: 125 | debug "=3.1.0" 126 | 127 | fs.realpath@^1.0.0: 128 | version "1.0.0" 129 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 130 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 131 | 132 | glob@^7.1.3: 133 | version "7.1.3" 134 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 135 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 136 | dependencies: 137 | fs.realpath "^1.0.0" 138 | inflight "^1.0.4" 139 | inherits "2" 140 | minimatch "^3.0.4" 141 | once "^1.3.0" 142 | path-is-absolute "^1.0.0" 143 | 144 | https-proxy-agent@^2.2.1: 145 | version "2.2.1" 146 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" 147 | integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== 148 | dependencies: 149 | agent-base "^4.1.0" 150 | debug "^3.1.0" 151 | 152 | inflight@^1.0.4: 153 | version "1.0.6" 154 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 155 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 156 | dependencies: 157 | once "^1.3.0" 158 | wrappy "1" 159 | 160 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 161 | version "2.0.3" 162 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 163 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 164 | 165 | is-buffer@^1.1.5: 166 | version "1.1.6" 167 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 168 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 169 | 170 | isarray@~1.0.0: 171 | version "1.0.0" 172 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 173 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 174 | 175 | mime@^2.0.3: 176 | version "2.4.0" 177 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" 178 | integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== 179 | 180 | minimatch@^3.0.4: 181 | version "3.0.4" 182 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 183 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 184 | dependencies: 185 | brace-expansion "^1.1.7" 186 | 187 | minimist@0.0.8: 188 | version "0.0.8" 189 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 190 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 191 | 192 | mkdirp@0.5.1: 193 | version "0.5.1" 194 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 195 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 196 | dependencies: 197 | minimist "0.0.8" 198 | 199 | ms@2.0.0: 200 | version "2.0.0" 201 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 202 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 203 | 204 | ms@^2.1.1: 205 | version "2.1.1" 206 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 207 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 208 | 209 | once@^1.3.0: 210 | version "1.4.0" 211 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 212 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 213 | dependencies: 214 | wrappy "1" 215 | 216 | path-is-absolute@^1.0.0: 217 | version "1.0.1" 218 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 219 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 220 | 221 | pend@~1.2.0: 222 | version "1.2.0" 223 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 224 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 225 | 226 | process-nextick-args@~2.0.0: 227 | version "2.0.0" 228 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 229 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== 230 | 231 | progress@^2.0.1: 232 | version "2.0.3" 233 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 234 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 235 | 236 | proxy-from-env@^1.0.0: 237 | version "1.0.0" 238 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" 239 | integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= 240 | 241 | puppeteer@^1.11.0: 242 | version "1.11.0" 243 | resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.11.0.tgz#63cdbe12b07275cd6e0b94bce41f3fcb20305770" 244 | integrity sha512-iG4iMOHixc2EpzqRV+pv7o3GgmU2dNYEMkvKwSaQO/vMZURakwSOn/EYJ6OIRFYOque1qorzIBvrytPIQB3YzQ== 245 | dependencies: 246 | debug "^4.1.0" 247 | extract-zip "^1.6.6" 248 | https-proxy-agent "^2.2.1" 249 | mime "^2.0.3" 250 | progress "^2.0.1" 251 | proxy-from-env "^1.0.0" 252 | rimraf "^2.6.1" 253 | ws "^6.1.0" 254 | 255 | readable-stream@^2.2.2: 256 | version "2.3.6" 257 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 258 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 259 | dependencies: 260 | core-util-is "~1.0.0" 261 | inherits "~2.0.3" 262 | isarray "~1.0.0" 263 | process-nextick-args "~2.0.0" 264 | safe-buffer "~5.1.1" 265 | string_decoder "~1.1.1" 266 | util-deprecate "~1.0.1" 267 | 268 | rimraf@^2.6.1: 269 | version "2.6.3" 270 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 271 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 272 | dependencies: 273 | glob "^7.1.3" 274 | 275 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 276 | version "5.1.2" 277 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 278 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 279 | 280 | string_decoder@~1.1.1: 281 | version "1.1.1" 282 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 283 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 284 | dependencies: 285 | safe-buffer "~5.1.0" 286 | 287 | typedarray@^0.0.6: 288 | version "0.0.6" 289 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 290 | integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= 291 | 292 | util-deprecate@~1.0.1: 293 | version "1.0.2" 294 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 295 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 296 | 297 | wrappy@1: 298 | version "1.0.2" 299 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 300 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 301 | 302 | ws@^6.1.0: 303 | version "6.1.2" 304 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8" 305 | integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw== 306 | dependencies: 307 | async-limiter "~1.0.0" 308 | 309 | yauzl@2.4.1: 310 | version "2.4.1" 311 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" 312 | integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= 313 | dependencies: 314 | fd-slicer "~1.0.1" 315 | --------------------------------------------------------------------------------