├── reset.js ├── package.json ├── README.md ├── .gitignore ├── login.js ├── index.js └── yarn.lock /reset.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const fs = require('fs-extra') 3 | const path = require('path') 4 | 5 | const COOKIEFILE = path.join(__dirname, 'cookie.json') 6 | 7 | fs.remove(COOKIEFILE).then(() => console.log('Your GitHub login credentials(cookies) have been deleted.')) 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ghfileupl", 3 | "version": "1.1.0", 4 | "author": "maple3142", 5 | "main": "index.js", 6 | "bin": { 7 | "gupl": "./index.js", 8 | "ghfileupl": "./index.js", 9 | "gupl-reset": "./reset.js", 10 | "ghfileupl-reset": "./reset.js" 11 | }, 12 | "license": "MIT", 13 | "dependencies": { 14 | "cheerio": "^1.0.0-rc.2", 15 | "conf": "^10.1.1", 16 | "form-data": "^4.0.0", 17 | "fs-extra": "^10.0.1", 18 | "got": "^9.3.1", 19 | "mime-types": "^2.1.21", 20 | "prompts": "^2.4.2", 21 | "tough-cookie": "^4.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ghfileupl 2 | 3 | > Upload your file to github 4 | 5 | ## Preview 6 | 7 | ![image preview](https://user-images.githubusercontent.com/9370547/48205839-d2f05280-e364-11e8-8e18-a9d2af272ee1.png) 8 | 9 | ![zip preview](https://user-images.githubusercontent.com/9370547/48205709-915fa780-e364-11e8-9e24-04d621c26406.png) 10 | 11 | ## Usage 12 | 13 | ```cmd 14 | npm i -g ghfileupl 15 | gupl ./testimg.png 16 | ``` 17 | 18 | ![step](https://user-images.githubusercontent.com/9370547/48206784-10ee7600-e367-11e8-9dd6-6250843eb981.jpg) 19 | 20 | When you use this at the first time, it will ask you to login GitHub account with account and password. 21 | 22 | I suggest you to register another alt account when using this tool. 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # parcel-bundler cache (https://parceljs.org/) 61 | .cache 62 | 63 | # next.js build output 64 | .next 65 | 66 | # nuxt.js build output 67 | .nuxt 68 | 69 | # vuepress build output 70 | .vuepress/dist 71 | 72 | # Serverless directories 73 | .serverless 74 | 75 | # FuseBox cache 76 | .fusebox/ 77 | 78 | cookie.json 79 | -------------------------------------------------------------------------------- /login.js: -------------------------------------------------------------------------------- 1 | const got = require('got') 2 | const cheerio = require('cheerio') 3 | const { CookieJar } = require('tough-cookie') 4 | const qs = require('querystring') 5 | 6 | module.exports = async (acc, pwd, otp) => { 7 | const cookieJar = new CookieJar() 8 | const client = got.extend({ 9 | cookieJar, 10 | headers: { 11 | Accept: 'text/html' 12 | }, 13 | followRedirect: false, 14 | hooks: { 15 | beforeRequest: opts => { 16 | //console.log(opts) 17 | if (opts.form) { 18 | opts.body = qs.stringify(opts.form) 19 | opts.headers['Content-Length'] = opts.body.length 20 | } 21 | } 22 | } 23 | }) 24 | const $lg = await client.get('https://github.com/login').then(r => cheerio.load(r.body)) 25 | const authenticity_token = $lg('input[name=authenticity_token]').attr('value') 26 | const resp = await client.post('https://github.com/session', { 27 | cookieJar, 28 | form: { 29 | login: acc, 30 | password: pwd, 31 | authenticity_token, 32 | utf8: '✓', 33 | commit: 'Sign in' 34 | } 35 | }) 36 | if (resp.statusCode === 200) { 37 | //failed 38 | throw new Error('Login failed!') 39 | } else if (resp.headers.location === 'https://github.com/') { 40 | //success 41 | return cookieJar 42 | } else if (resp.headers.location.includes('/sessions/two-factor')) { 43 | // 2fa 44 | if (!otp) { 45 | throw new Error('2fa otp code is required but not given!') 46 | } 47 | const $fa = await client.get('https://github.com/sessions/two-factor').then(r => cheerio.load(r.body)) 48 | const authenticity_token2 = $fa('input[name=authenticity_token]').attr('value') 49 | const resp2 = await client.post('https://github.com/sessions/two-factor', { 50 | form: { 51 | otp, 52 | authenticity_token: authenticity_token2, 53 | utf8: '✓' 54 | } 55 | }) 56 | if (resp2.headers.location === 'https://github.com/') { 57 | return cookieJar 58 | } else { 59 | throw new Error('Login failed!') 60 | } 61 | } else { 62 | throw new Error('Unknown status!') 63 | } 64 | } 65 | 66 | if (require.main === module) { 67 | module.exports('USERNAME', 'PASSWORD', 'OTP CODE (optional)').then(console.log, e => console.error(e)) 68 | } 69 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const login = require('./login') 3 | const prompts = require('prompts') 4 | const qs = require('querystring') 5 | const mime = require('mime-types') 6 | const { CookieJar } = require('tough-cookie') 7 | const got = require('got') 8 | const FormData = require('form-data') 9 | const cheerio = require('cheerio') 10 | const fs = require('fs-extra') 11 | const path = require('path') 12 | const Conf = require('conf') 13 | 14 | if (process.argv.length < 3) { 15 | console.error(`Usage: gupl `) 16 | process.exit(1) 17 | } 18 | 19 | const ALLOWED_FILETYPES = ['.gif', '.jpg', '.jpeg', '.png', '.docx', '.gz', '.log', '.pdf', '.pptx', '.txt', '.xlsx', '.zip'] 20 | const REPOURL = 'https://github.com/github/feedback/discussions/new' 21 | const config = new Conf() 22 | const FILEPATH = path.resolve(process.argv[2]) 23 | const fileext = path.extname(FILEPATH) 24 | 25 | const isFileAllowed = ALLOWED_FILETYPES.includes(fileext) 26 | if (!isFileAllowed) { 27 | console.log('Your file is not allowed to upload to GitHub.') 28 | console.log(`Only ${ALLOWED_FILETYPES.join(', ')} are allowed.`) 29 | process.exit(1) 30 | } 31 | 32 | const readCookie = async () => { 33 | if (config.has('session')) { 34 | return CookieJar.fromJSON(config.get('session')) 35 | } 36 | 37 | const questions = [ 38 | { 39 | type: 'text', 40 | name: 'username', 41 | message: 'What is your GitHub username?', 42 | validate: v => !!v 43 | }, 44 | { 45 | type: 'password', 46 | name: 'password', 47 | message: 'What is your GitHub password?', 48 | validate: v => !!v 49 | }, 50 | { 51 | type: 'confirm', 52 | name: 'has2fa', 53 | message: 'Do you have 2fa enabled?' 54 | }, 55 | { 56 | type: has2fa => (has2fa ? 'text' : null), 57 | name: 'otp', 58 | message: 'Please enter current otp here:', 59 | validate: v => !!v && /^\d{6}$/.test(v) 60 | } 61 | ] 62 | const r = await prompts(questions) 63 | const cookie = await login(r.username, r.password, r.otp) 64 | config.set('session', cookie) 65 | console.log(`Your GitHub login credentials(cookies) have been saved to ${config.path}.`) 66 | console.log('To delete it, you can execute "gupl-reset" or "ghfileupl-reset".') 67 | return cookie 68 | } 69 | ;(async () => { 70 | const cookieJar = await readCookie() 71 | const client = got.extend({ 72 | cookieJar, 73 | followRedirect: false, 74 | hooks: { 75 | beforeRequest: opts => { 76 | if (opts.form) { 77 | opts.body = qs.stringify(opts.form) 78 | opts.headers['Content-Length'] = opts.body.length 79 | } 80 | } 81 | } 82 | }) 83 | const $ = await client.get(REPOURL).then(r => cheerio.load(r.body)) 84 | const stat = await fs.stat(FILEPATH) 85 | try { 86 | const res = await client 87 | .post('https://github.com/upload/policies/assets', { 88 | form: { 89 | name: path.basename(FILEPATH), 90 | size: stat.size, 91 | content_type: mime.lookup(FILEPATH), 92 | authenticity_token: $('.js-upload-markdown-image').children('input[type=hidden]').attr('value'), 93 | repository_id: parseInt($('meta[name="octolytics-dimension-repository_id"]').attr('content')) 94 | } 95 | }) 96 | .then(r => JSON.parse(r.body)) 97 | .catch(e => { 98 | throw JSON.parse(e.body) 99 | }) 100 | const fd = new FormData() 101 | for (const [k, v] of Object.entries(res.form)) { 102 | fd.append(k, v) 103 | } 104 | fd.append('file', fs.createReadStream(FILEPATH)) 105 | await client.post(res.upload_url, { body: fd }) 106 | const fd2 = new FormData() 107 | fd2.append('authenticity_token', res.asset_upload_authenticity_token) 108 | const result = await client 109 | .put('https://github.com' + res.asset_upload_url, { headers: { Accept: 'application/json' }, body: fd2 }) 110 | .then(r => JSON.parse(r.body)) 111 | console.log(JSON.stringify(result, null, 2)) 112 | } catch (e) { 113 | if (e.errors) { 114 | console.error(e.errors) 115 | } else { 116 | console.error(e) 117 | } 118 | } 119 | })().catch(console.error) 120 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@sindresorhus/is@^0.14.0": 6 | version "0.14.0" 7 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 8 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 9 | 10 | "@szmarczak/http-timer@^1.1.2": 11 | version "1.1.2" 12 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 13 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 14 | dependencies: 15 | defer-to-connect "^1.0.1" 16 | 17 | ajv-formats@^2.1.1: 18 | version "2.1.1" 19 | resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" 20 | integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== 21 | dependencies: 22 | ajv "^8.0.0" 23 | 24 | ajv@^8.0.0, ajv@^8.6.3: 25 | version "8.10.0" 26 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" 27 | integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== 28 | dependencies: 29 | fast-deep-equal "^3.1.1" 30 | json-schema-traverse "^1.0.0" 31 | require-from-string "^2.0.2" 32 | uri-js "^4.2.2" 33 | 34 | asynckit@^0.4.0: 35 | version "0.4.0" 36 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 37 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 38 | 39 | atomically@^1.7.0: 40 | version "1.7.0" 41 | resolved "https://registry.yarnpkg.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe" 42 | integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w== 43 | 44 | boolbase@^1.0.0: 45 | version "1.0.0" 46 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 47 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 48 | 49 | cacheable-request@^6.0.0: 50 | version "6.1.0" 51 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 52 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 53 | dependencies: 54 | clone-response "^1.0.2" 55 | get-stream "^5.1.0" 56 | http-cache-semantics "^4.0.0" 57 | keyv "^3.0.0" 58 | lowercase-keys "^2.0.0" 59 | normalize-url "^4.1.0" 60 | responselike "^1.0.2" 61 | 62 | cheerio-select@^1.5.0: 63 | version "1.5.0" 64 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" 65 | integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== 66 | dependencies: 67 | css-select "^4.1.3" 68 | css-what "^5.0.1" 69 | domelementtype "^2.2.0" 70 | domhandler "^4.2.0" 71 | domutils "^2.7.0" 72 | 73 | cheerio@^1.0.0-rc.2: 74 | version "1.0.0-rc.10" 75 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" 76 | integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== 77 | dependencies: 78 | cheerio-select "^1.5.0" 79 | dom-serializer "^1.3.2" 80 | domhandler "^4.2.0" 81 | htmlparser2 "^6.1.0" 82 | parse5 "^6.0.1" 83 | parse5-htmlparser2-tree-adapter "^6.0.1" 84 | tslib "^2.2.0" 85 | 86 | clone-response@^1.0.2: 87 | version "1.0.2" 88 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 89 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 90 | dependencies: 91 | mimic-response "^1.0.0" 92 | 93 | combined-stream@^1.0.8: 94 | version "1.0.8" 95 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 96 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 97 | dependencies: 98 | delayed-stream "~1.0.0" 99 | 100 | conf@^10.1.1: 101 | version "10.1.1" 102 | resolved "https://registry.yarnpkg.com/conf/-/conf-10.1.1.tgz#ff08046d5aeeee0eaff55d57f5b4319193c3dfda" 103 | integrity sha512-z2civwq/k8TMYtcn3SVP0Peso4otIWnHtcTuHhQ0zDZDdP4NTxqEc8owfkz4zBsdMYdn/LFcE+ZhbCeqkhtq3Q== 104 | dependencies: 105 | ajv "^8.6.3" 106 | ajv-formats "^2.1.1" 107 | atomically "^1.7.0" 108 | debounce-fn "^4.0.0" 109 | dot-prop "^6.0.1" 110 | env-paths "^2.2.1" 111 | json-schema-typed "^7.0.3" 112 | onetime "^5.1.2" 113 | pkg-up "^3.1.0" 114 | semver "^7.3.5" 115 | 116 | css-select@^4.1.3: 117 | version "4.2.1" 118 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd" 119 | integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ== 120 | dependencies: 121 | boolbase "^1.0.0" 122 | css-what "^5.1.0" 123 | domhandler "^4.3.0" 124 | domutils "^2.8.0" 125 | nth-check "^2.0.1" 126 | 127 | css-what@^5.0.1, css-what@^5.1.0: 128 | version "5.1.0" 129 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" 130 | integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== 131 | 132 | debounce-fn@^4.0.0: 133 | version "4.0.0" 134 | resolved "https://registry.yarnpkg.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7" 135 | integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ== 136 | dependencies: 137 | mimic-fn "^3.0.0" 138 | 139 | decompress-response@^3.3.0: 140 | version "3.3.0" 141 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 142 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 143 | dependencies: 144 | mimic-response "^1.0.0" 145 | 146 | defer-to-connect@^1.0.1: 147 | version "1.1.3" 148 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" 149 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 150 | 151 | delayed-stream@~1.0.0: 152 | version "1.0.0" 153 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 154 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 155 | 156 | dom-serializer@^1.0.1, dom-serializer@^1.3.2: 157 | version "1.3.2" 158 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" 159 | integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== 160 | dependencies: 161 | domelementtype "^2.0.1" 162 | domhandler "^4.2.0" 163 | entities "^2.0.0" 164 | 165 | domelementtype@^2.0.1, domelementtype@^2.2.0: 166 | version "2.2.0" 167 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" 168 | integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== 169 | 170 | domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.0: 171 | version "4.3.0" 172 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" 173 | integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== 174 | dependencies: 175 | domelementtype "^2.2.0" 176 | 177 | domutils@^2.5.2, domutils@^2.7.0, domutils@^2.8.0: 178 | version "2.8.0" 179 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 180 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 181 | dependencies: 182 | dom-serializer "^1.0.1" 183 | domelementtype "^2.2.0" 184 | domhandler "^4.2.0" 185 | 186 | dot-prop@^6.0.1: 187 | version "6.0.1" 188 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" 189 | integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== 190 | dependencies: 191 | is-obj "^2.0.0" 192 | 193 | duplexer3@^0.1.4: 194 | version "0.1.4" 195 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 196 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 197 | 198 | end-of-stream@^1.1.0: 199 | version "1.4.4" 200 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 201 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 202 | dependencies: 203 | once "^1.4.0" 204 | 205 | entities@^2.0.0: 206 | version "2.2.0" 207 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 208 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 209 | 210 | env-paths@^2.2.1: 211 | version "2.2.1" 212 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" 213 | integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== 214 | 215 | fast-deep-equal@^3.1.1: 216 | version "3.1.3" 217 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 218 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 219 | 220 | find-up@^3.0.0: 221 | version "3.0.0" 222 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 223 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 224 | dependencies: 225 | locate-path "^3.0.0" 226 | 227 | form-data@^4.0.0: 228 | version "4.0.0" 229 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" 230 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 231 | dependencies: 232 | asynckit "^0.4.0" 233 | combined-stream "^1.0.8" 234 | mime-types "^2.1.12" 235 | 236 | fs-extra@^10.0.1: 237 | version "10.0.1" 238 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" 239 | integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== 240 | dependencies: 241 | graceful-fs "^4.2.0" 242 | jsonfile "^6.0.1" 243 | universalify "^2.0.0" 244 | 245 | get-stream@^4.1.0: 246 | version "4.1.0" 247 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 248 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 249 | dependencies: 250 | pump "^3.0.0" 251 | 252 | get-stream@^5.1.0: 253 | version "5.2.0" 254 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 255 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 256 | dependencies: 257 | pump "^3.0.0" 258 | 259 | got@^9.3.1: 260 | version "9.6.0" 261 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 262 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 263 | dependencies: 264 | "@sindresorhus/is" "^0.14.0" 265 | "@szmarczak/http-timer" "^1.1.2" 266 | cacheable-request "^6.0.0" 267 | decompress-response "^3.3.0" 268 | duplexer3 "^0.1.4" 269 | get-stream "^4.1.0" 270 | lowercase-keys "^1.0.1" 271 | mimic-response "^1.0.1" 272 | p-cancelable "^1.0.0" 273 | to-readable-stream "^1.0.0" 274 | url-parse-lax "^3.0.0" 275 | 276 | graceful-fs@^4.1.6, graceful-fs@^4.2.0: 277 | version "4.2.9" 278 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" 279 | integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== 280 | 281 | htmlparser2@^6.1.0: 282 | version "6.1.0" 283 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" 284 | integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== 285 | dependencies: 286 | domelementtype "^2.0.1" 287 | domhandler "^4.0.0" 288 | domutils "^2.5.2" 289 | entities "^2.0.0" 290 | 291 | http-cache-semantics@^4.0.0: 292 | version "4.1.0" 293 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 294 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 295 | 296 | is-obj@^2.0.0: 297 | version "2.0.0" 298 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 299 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 300 | 301 | json-buffer@3.0.0: 302 | version "3.0.0" 303 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 304 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 305 | 306 | json-schema-traverse@^1.0.0: 307 | version "1.0.0" 308 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 309 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 310 | 311 | json-schema-typed@^7.0.3: 312 | version "7.0.3" 313 | resolved "https://registry.yarnpkg.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9" 314 | integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A== 315 | 316 | jsonfile@^6.0.1: 317 | version "6.1.0" 318 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" 319 | integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== 320 | dependencies: 321 | universalify "^2.0.0" 322 | optionalDependencies: 323 | graceful-fs "^4.1.6" 324 | 325 | keyv@^3.0.0: 326 | version "3.1.0" 327 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 328 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 329 | dependencies: 330 | json-buffer "3.0.0" 331 | 332 | kleur@^3.0.3: 333 | version "3.0.3" 334 | resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" 335 | integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== 336 | 337 | locate-path@^3.0.0: 338 | version "3.0.0" 339 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 340 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 341 | dependencies: 342 | p-locate "^3.0.0" 343 | path-exists "^3.0.0" 344 | 345 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 346 | version "1.0.1" 347 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 348 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 349 | 350 | lowercase-keys@^2.0.0: 351 | version "2.0.0" 352 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 353 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 354 | 355 | lru-cache@^6.0.0: 356 | version "6.0.0" 357 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 358 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 359 | dependencies: 360 | yallist "^4.0.0" 361 | 362 | mime-db@1.51.0: 363 | version "1.51.0" 364 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 365 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 366 | 367 | mime-types@^2.1.12, mime-types@^2.1.21: 368 | version "2.1.34" 369 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 370 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 371 | dependencies: 372 | mime-db "1.51.0" 373 | 374 | mimic-fn@^2.1.0: 375 | version "2.1.0" 376 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 377 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 378 | 379 | mimic-fn@^3.0.0: 380 | version "3.1.0" 381 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" 382 | integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== 383 | 384 | mimic-response@^1.0.0, mimic-response@^1.0.1: 385 | version "1.0.1" 386 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 387 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 388 | 389 | normalize-url@^4.1.0: 390 | version "4.5.1" 391 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" 392 | integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== 393 | 394 | nth-check@^2.0.1: 395 | version "2.0.1" 396 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" 397 | integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== 398 | dependencies: 399 | boolbase "^1.0.0" 400 | 401 | once@^1.3.1, once@^1.4.0: 402 | version "1.4.0" 403 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 404 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 405 | dependencies: 406 | wrappy "1" 407 | 408 | onetime@^5.1.2: 409 | version "5.1.2" 410 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 411 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 412 | dependencies: 413 | mimic-fn "^2.1.0" 414 | 415 | p-cancelable@^1.0.0: 416 | version "1.1.0" 417 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 418 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 419 | 420 | p-limit@^2.0.0: 421 | version "2.3.0" 422 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" 423 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== 424 | dependencies: 425 | p-try "^2.0.0" 426 | 427 | p-locate@^3.0.0: 428 | version "3.0.0" 429 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 430 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 431 | dependencies: 432 | p-limit "^2.0.0" 433 | 434 | p-try@^2.0.0: 435 | version "2.2.0" 436 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 437 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 438 | 439 | parse5-htmlparser2-tree-adapter@^6.0.1: 440 | version "6.0.1" 441 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" 442 | integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== 443 | dependencies: 444 | parse5 "^6.0.1" 445 | 446 | parse5@^6.0.1: 447 | version "6.0.1" 448 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 449 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 450 | 451 | path-exists@^3.0.0: 452 | version "3.0.0" 453 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 454 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 455 | 456 | pkg-up@^3.1.0: 457 | version "3.1.0" 458 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" 459 | integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== 460 | dependencies: 461 | find-up "^3.0.0" 462 | 463 | prepend-http@^2.0.0: 464 | version "2.0.0" 465 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 466 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 467 | 468 | prompts@^2.4.2: 469 | version "2.4.2" 470 | resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" 471 | integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== 472 | dependencies: 473 | kleur "^3.0.3" 474 | sisteransi "^1.0.5" 475 | 476 | psl@^1.1.33: 477 | version "1.8.0" 478 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 479 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 480 | 481 | pump@^3.0.0: 482 | version "3.0.0" 483 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 484 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 485 | dependencies: 486 | end-of-stream "^1.1.0" 487 | once "^1.3.1" 488 | 489 | punycode@^2.1.0, punycode@^2.1.1: 490 | version "2.1.1" 491 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 492 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 493 | 494 | require-from-string@^2.0.2: 495 | version "2.0.2" 496 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 497 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 498 | 499 | responselike@^1.0.2: 500 | version "1.0.2" 501 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 502 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 503 | dependencies: 504 | lowercase-keys "^1.0.0" 505 | 506 | semver@^7.3.5: 507 | version "7.3.5" 508 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 509 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 510 | dependencies: 511 | lru-cache "^6.0.0" 512 | 513 | sisteransi@^1.0.5: 514 | version "1.0.5" 515 | resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" 516 | integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== 517 | 518 | to-readable-stream@^1.0.0: 519 | version "1.0.0" 520 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 521 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 522 | 523 | tough-cookie@^4.0.0: 524 | version "4.0.0" 525 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" 526 | integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== 527 | dependencies: 528 | psl "^1.1.33" 529 | punycode "^2.1.1" 530 | universalify "^0.1.2" 531 | 532 | tslib@^2.2.0: 533 | version "2.3.1" 534 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 535 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 536 | 537 | universalify@^0.1.2: 538 | version "0.1.2" 539 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" 540 | integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 541 | 542 | universalify@^2.0.0: 543 | version "2.0.0" 544 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" 545 | integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== 546 | 547 | uri-js@^4.2.2: 548 | version "4.4.1" 549 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 550 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 551 | dependencies: 552 | punycode "^2.1.0" 553 | 554 | url-parse-lax@^3.0.0: 555 | version "3.0.0" 556 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 557 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 558 | dependencies: 559 | prepend-http "^2.0.0" 560 | 561 | wrappy@1: 562 | version "1.0.2" 563 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 564 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 565 | 566 | yallist@^4.0.0: 567 | version "4.0.0" 568 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 569 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 570 | --------------------------------------------------------------------------------