├── .gitignore ├── icons ├── icon128.png ├── icon16.png ├── icon240.png └── icon48.png ├── package.json ├── .eslintrc.js ├── .github └── workflows │ └── lint.yml ├── manifest.json ├── LICENSE.md ├── README.md ├── src ├── login.js ├── background.js └── switcher.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | web-ext-artifacts 4 | -------------------------------------------------------------------------------- /icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sad/scam/HEAD/icons/icon128.png -------------------------------------------------------------------------------- /icons/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sad/scam/HEAD/icons/icon16.png -------------------------------------------------------------------------------- /icons/icon240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sad/scam/HEAD/icons/icon240.png -------------------------------------------------------------------------------- /icons/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sad/scam/HEAD/icons/icon48.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scam", 3 | "version": "1.3.1", 4 | "description": "SoundCloud Account Manager Extension", 5 | "author": "reid", 6 | "license": "MIT", 7 | "devDependencies": { 8 | "eslint": "^6.5.1", 9 | "eslint-config-airbnb-base": "^14.0.0", 10 | "eslint-plugin-import": "^2.18.2" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "webextensions": true, 4 | "browser": true 5 | }, 6 | "rules": { 7 | "no-control-regex": "off", 8 | "no-prototype-builtins": "off", 9 | "no-restricted-globals": "off", 10 | "no-restricted-syntax": "off" 11 | }, 12 | "extends": "airbnb-base" 13 | }; -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: Lint 2 | 3 | on: [pull_request] 4 | 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | name: ESLint checker 9 | 10 | strategy: 11 | matrix: 12 | node-version: ['12.*'] 13 | 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v1 17 | with: 18 | fetch-depth: 1 19 | 20 | - name: Use Node.js ${{ matrix.node-version }} 21 | uses: actions/setup-node@v1 22 | with: 23 | node-version: ${{ matrix.node-version }} 24 | 25 | - name: yarn install 26 | run: yarn --dev 27 | 28 | - name: Run ESLint 29 | uses: ninosaurus/eslint-check@v5.3.1 30 | with: 31 | eslint-config-path: "./.eslintrc.js" 32 | custom-directory: "./" 33 | repo-token: ${{secrets.GITHUB_TOKEN}} 34 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scam", 3 | "version": "1.3.1", 4 | "manifest_version": 2, 5 | "description": "SoundCloud Account Manager: Quickly switch between multiple SoundCloud accounts.", 6 | "homepage_url": "https://github.com/nihilist/scam", 7 | "icons": { 8 | "16": "icons/icon16.png", 9 | "48": "icons/icon48.png", 10 | "128": "icons/icon128.png", 11 | "240": "icons/icon240.png" 12 | }, 13 | "content_scripts": [ 14 | { 15 | "matches": ["https://soundcloud.com/*"], 16 | "js": ["src/switcher.js"], 17 | "run_at": "document_idle" 18 | }, 19 | { 20 | "matches": ["https://secure.soundcloud.com/*"], 21 | "js": ["src/login.js"], 22 | "all_frames": true, 23 | "run_at": "document_start" 24 | } 25 | ], 26 | "background": { 27 | "scripts": ["src/background.js"], 28 | "persistent": false 29 | }, 30 | "permissions": [ 31 | "cookies", 32 | "https://soundcloud.com/*", 33 | "https://api-auth.soundcloud.com/*", 34 | "https://secure.soundcloud.com/*" 35 | ] 36 | } 37 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 reid 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # scam 2 | [![chrome webstore](https://img.shields.io/chrome-web-store/v/pjjmnjpdamiodphjhekmbdgnbegndmkc?style=flat-square)](https://chrome.google.com/webstore/detail/pjjmnjpdamiodphjhekmbdgnbegndmkc) 3 | [![firefox addons](https://img.shields.io/amo/v/scam?style=flat-square)](https://addons.mozilla.org/en-US/firefox/addon/scam/) 4 | [![airbnb eslint style](https://img.shields.io/static/v1?label=code%20style&message=airbnb&color=success&style=flat-square)](https://github.com/airbnb/javascript) 5 | [![mit licensed](https://img.shields.io/static/v1?label=license&message=mit&color=success&style=flat-square)](https://github.com/nihilist/scam/blob/master/LICENSE.md) 6 | 7 | **scam** (the **soundcloud account manager**) is a simple account switching extension for [SoundCloud](https://soundcloud.com). it's currently in development – pull requests welcome. new accounts are automatically added every time you log in. you can find them under the username dropdown. 8 | 9 | you can find it in the Chrome Web Store [**here**](https://chrome.google.com/webstore/detail/pjjmnjpdamiodphjhekmbdgnbegndmkc) or the Firefox addon store [**here**](https://addons.mozilla.org/en-US/firefox/addon/scam/). 10 | 11 | ### contributing 12 | please use `yarn` or your favourite package manager to install the airbnb eslint base after cloning the repo. 13 | 14 |

15 | Preview 16 |

17 | -------------------------------------------------------------------------------- /src/login.js: -------------------------------------------------------------------------------- 1 | const sel = (selector) => document.querySelector(selector); 2 | const MESSAGE_ORIGIN = 'https://soundcloud.com'; 3 | 4 | let sessions; 5 | const getSession = (username) => sessions[username]; 6 | const switchSession = (user) => { 7 | chrome.runtime.sendMessage( 8 | { 9 | method: 'setCookie', 10 | data: { name: 'oauth_token', value: getSession(user).cookie }, 11 | }, () => parent.postMessage('_scam_reload', MESSAGE_ORIGIN), 12 | ); 13 | }; 14 | 15 | const injectLoggedOutSwitcher = () => { 16 | if (sessions) { 17 | const publicSignIn = sel('.provider-buttons'); 18 | const scamDiv = document.createElement('div'); 19 | const scamBtn = document.createElement('button'); 20 | const accountSelector = document.createElement('select'); 21 | scamDiv.setAttribute('class', 'form-row'); 22 | scamBtn.setAttribute('class', 'provider-button sc-button sc-button-large'); 23 | accountSelector.setAttribute('class', 'provider-button sc-button sc-button-large'); 24 | accountSelector.setAttribute('style', 'height: 100%'); 25 | scamBtn.innerText = 'Saved accounts'; 26 | scamDiv.appendChild(scamBtn); 27 | publicSignIn.appendChild(scamDiv); 28 | const firstOption = document.createElement('option'); 29 | firstOption.innerText = 'Accounts'; 30 | firstOption.disabled = true; 31 | firstOption.selected = true; 32 | accountSelector.appendChild(firstOption); 33 | Object.keys(sessions).forEach((accountName) => { 34 | const accountEl = document.createElement('option'); 35 | accountEl.value = accountName; 36 | accountEl.innerText = accountName; 37 | accountSelector.appendChild(accountEl); 38 | }); 39 | 40 | scamBtn.onclick = () => { 41 | scamBtn.parentNode.replaceChild(accountSelector, scamBtn); 42 | }; 43 | 44 | accountSelector.onchange = () => { 45 | switchSession(accountSelector.value); 46 | }; 47 | } 48 | }; 49 | 50 | window.addEventListener('message', (message) => { 51 | const { origin, data } = message; 52 | if (origin !== MESSAGE_ORIGIN) return; 53 | 54 | if (Array.isArray(data)) { 55 | const [name, sessionsData] = data; 56 | if (name === '_scam_sessions') { 57 | sessions = sessionsData; 58 | injectLoggedOutSwitcher(); 59 | } 60 | } 61 | }, false); 62 | -------------------------------------------------------------------------------- /src/background.js: -------------------------------------------------------------------------------- 1 | const emitter = chrome.runtime.onMessage ?? browser.runtime.onMessage; 2 | 3 | emitter.addListener((request, sender, sendResponse) => { 4 | if (request.method === 'forceLogout') { 5 | chrome.cookies.remove({ 6 | url: 'https://api-auth.soundcloud.com/connect/', 7 | name: '_soundcloud_session', 8 | }, () => sendResponse(true)); 9 | } else if (request.method === 'getCookie') { 10 | chrome.cookies.get({ 11 | url: 'https://soundcloud.com/', 12 | name: request.data.name, 13 | }, (cookie) => sendResponse(cookie)); 14 | } else if (request.method === 'setCookie') { 15 | chrome.cookies.set({ 16 | url: 'https://soundcloud.com/', 17 | name: request.data.name, 18 | value: request.data.value, 19 | secure: true, 20 | expirationDate: Math.floor(+new Date(+new Date() + 31536e6) / 1000), // expiry 1 year from now 21 | }, (cookie) => sendResponse(cookie)); 22 | } else if (request.method === 'removeCookie') { 23 | chrome.cookies.remove({ 24 | url: 'https://soundcloud.com/', 25 | name: request.data.name, 26 | }, (details) => sendResponse(details)); 27 | } else if (request.method === 'validateCookie') { 28 | const xhr = new XMLHttpRequest(); 29 | xhr.onreadystatechange = () => { 30 | if (xhr.readyState === 4) sendResponse(xhr.status === 200); 31 | }; 32 | xhr.open('POST', 'https://api-auth.soundcloud.com/connect/session'); 33 | xhr.send(JSON.stringify({ session: { access_token: request.data.cookie } })); 34 | } else if (request.method === 'refreshCookie') { 35 | const fetchNewCookie = () => { 36 | const xhr = new XMLHttpRequest(); 37 | xhr.onreadystatechange = () => { 38 | if (xhr.readyState === 4 && xhr.status === 200) { 39 | sendResponse(JSON.parse(xhr.responseText).session.access_token); 40 | } 41 | }; 42 | xhr.open('POST', 'https://api-auth.soundcloud.com/connect/session/token'); 43 | xhr.send('null'); 44 | }; 45 | if (request.data && request.data.cookie) { 46 | chrome.cookies.set({ 47 | url: 'https://api-auth.soundcloud.com/connect/', 48 | name: '_soundcloud_session', 49 | value: request.data.cookie, 50 | secure: true, 51 | SameSiteStatus: 'no_restriction', 52 | }, () => fetchNewCookie()); 53 | } else fetchNewCookie(); 54 | } 55 | 56 | return true; 57 | }); 58 | -------------------------------------------------------------------------------- /src/switcher.js: -------------------------------------------------------------------------------- 1 | const SECURE_ORIGIN = 'https://secure.soundcloud.com'; 2 | let previousUser; 3 | 4 | const sel = (selector) => document.querySelector(selector); 5 | const getSession = (username) => JSON.parse(localStorage.getItem('sc-accounts'))[username]; 6 | const getCurrentUser = () => { 7 | if (sel('.header__userNavUsernameButton') !== null) { 8 | return new URL(sel('.header__userNavUsernameButton').href).pathname.substr(1); 9 | } 10 | 11 | return false; 12 | }; 13 | 14 | const saveSession = (username, sessionData) => { 15 | const obj = localStorage.hasOwnProperty('sc-accounts') ? JSON.parse(localStorage.getItem('sc-accounts')) : {}; 16 | const storedCookie = Object.keys(obj).find((user) => obj[user].cookie === sessionData.cookie); 17 | if (storedCookie && username !== storedCookie) delete obj[storedCookie]; 18 | obj[username] = sessionData; 19 | localStorage.setItem('sc-accounts', JSON.stringify(obj)); 20 | }; 21 | 22 | const deleteSession = (username) => { 23 | if (localStorage.hasOwnProperty('sc-accounts')) { 24 | const obj = JSON.parse(localStorage.getItem('sc-accounts')); 25 | delete obj[username]; 26 | localStorage.setItem('sc-accounts', JSON.stringify(obj)); 27 | } 28 | }; 29 | 30 | const saveCurrentSession = () => { 31 | const username = getCurrentUser(); 32 | if (username === false) return; 33 | 34 | const sessionData = getSession(username) || {}; 35 | sessionData.notifyState = localStorage.getItem('V2::local::notify'); 36 | saveSession(username, sessionData); 37 | 38 | if (previousUser === username || !username) return; 39 | previousUser = username; 40 | chrome.runtime.sendMessage({ method: 'getCookie', data: { name: 'oauth_token' } }, (data) => { 41 | const cookie = data ? data.value : null; 42 | if (!cookie) return; 43 | 44 | sessionData.cookie = cookie; 45 | saveSession(username, sessionData); 46 | }); 47 | }; 48 | 49 | const switchSession = (user) => { 50 | saveCurrentSession(); 51 | 52 | const sessionData = getSession(user); 53 | if (sessionData.notifyState != null) localStorage.setItem('V2::local::notify', sessionData.notifyState); 54 | 55 | chrome.runtime.sendMessage({ method: 'setCookie', data: { name: 'oauth_token', value: sessionData.cookie } }, () => { 56 | location.reload(); 57 | }); 58 | }; 59 | 60 | const forceLogout = () => { 61 | saveCurrentSession(); 62 | chrome.runtime.sendMessage({ method: 'removeCookie', data: { name: 'oauth_token' } }, () => { 63 | chrome.runtime.sendMessage({ method: 'forceLogout' }, () => { 64 | window.location = 'https://soundcloud.com/signin'; 65 | }); 66 | }); 67 | }; 68 | 69 | const injectSwitcher = () => { 70 | if (localStorage.hasOwnProperty('sc-accounts')) { 71 | const accounts = JSON.parse(localStorage.getItem('sc-accounts')); 72 | const list = document.createElement('ul'); 73 | list.setAttribute('class', 'profileMenu__list sc-list-nostyle'); 74 | 75 | const addBtn = document.createElement('li'); 76 | addBtn.setAttribute('class', 'headerMenu__list'); 77 | const addLink = document.createElement('a'); 78 | addLink.setAttribute('class', 'headerMenu__link profileMenu__profile'); 79 | addLink.innerText = 'Add Account'; 80 | addLink.id = 'add-account'; 81 | addLink.href = '#'; 82 | 83 | 84 | addBtn.onclick = () => { 85 | forceLogout(); 86 | }; 87 | 88 | addBtn.appendChild(addLink); 89 | list.appendChild(addBtn); 90 | 91 | Object.keys(accounts).forEach((account) => { 92 | if (account === getCurrentUser()) return; 93 | 94 | const wrapper = document.createElement('div'); 95 | const li = document.createElement('li'); 96 | const link = document.createElement('a'); 97 | 98 | li.setAttribute('class', 'headerMenu__item'); 99 | link.setAttribute('class', 'headerMenu__link profileMenu__profile'); 100 | link.innerText = account; 101 | link.id = 'switch-account'; 102 | link.dataset.user = account; 103 | link.href = '#'; 104 | link.title = account; 105 | link.style.display = 'inline-block'; 106 | link.style.width = '50%'; 107 | link.style.textOverflow = 'ellipsis'; 108 | link.style.overflow = 'hidden'; 109 | link.style.verticalAlign = 'middle'; 110 | 111 | 112 | const delBtn = document.createElement('a'); 113 | 114 | delBtn.setAttribute('class', 'headerMenu__profile'); 115 | delBtn.innerHTML = '×'; 116 | delBtn.id = 'delete-account'; 117 | delBtn.dataset.user = account; 118 | delBtn.href = '#'; 119 | delBtn.style.padding = '5px'; 120 | delBtn.style.display = 'inline-block'; 121 | delBtn.style.verticalAlign = 'middle'; 122 | 123 | delBtn.onclick = (event) => { 124 | if (confirm(`Are you sure you want to remove the '${event.target.dataset.user}' account?`)) { // eslint-disable-line 125 | deleteSession(event.target.dataset.user); 126 | event.target.parentNode.parentNode.removeChild(event.target.parentNode); 127 | } 128 | }; 129 | 130 | link.onclick = (event) => { 131 | switchSession(event.target.dataset.user); 132 | }; 133 | 134 | wrapper.appendChild(link); 135 | wrapper.appendChild(delBtn); 136 | li.appendChild(wrapper); 137 | list.appendChild(li); 138 | }); 139 | if (sel('.profileMenu')) sel('.profileMenu').appendChild(list); 140 | } 141 | }; 142 | 143 | const passSessions = (element) => { 144 | const obj = localStorage.hasOwnProperty('sc-accounts') ? JSON.parse(localStorage.getItem('sc-accounts')) : {}; 145 | element.contentWindow.postMessage(['_scam_sessions', obj], SECURE_ORIGIN); 146 | }; 147 | 148 | const menuObserver = new MutationObserver((mutations) => { 149 | for (const mutation of mutations) { 150 | const addedNodes = Array.from(mutation.addedNodes); 151 | if (addedNodes.includes(sel('.dropdownMenu')) || addedNodes.includes(sel('.headerMenu__list'))) { 152 | injectSwitcher(); 153 | } 154 | if (mutation.target.classList && [...mutation.target.classList].includes('header__userNavUsernameButton')) { 155 | saveCurrentSession(); 156 | } 157 | 158 | addedNodes.forEach((node) => { 159 | if (node.querySelector && node.querySelector('.webAuthContainer iframe')) { 160 | const iframe = node.querySelector('.webAuthContainer iframe'); 161 | iframe.onload = () => { 162 | passSessions(iframe); 163 | }; 164 | } 165 | }); 166 | } 167 | }); 168 | 169 | window.addEventListener('message', (message) => { 170 | const { origin, data } = message; 171 | if (origin !== SECURE_ORIGIN) return; 172 | 173 | if (data === '_scam_reload') { 174 | window.location.reload(true); 175 | } 176 | }, false); 177 | 178 | const init = () => { 179 | // Migrate from old user sessions format 180 | const sessions = localStorage.hasOwnProperty('sc-accounts') ? JSON.parse(localStorage.getItem('sc-accounts')) : {}; 181 | Object.keys(sessions).forEach((username) => { 182 | if (typeof sessions[username] === 'string') sessions[username] = { cookie: sessions[username] }; 183 | }); 184 | localStorage.setItem('sc-accounts', JSON.stringify(sessions)); 185 | 186 | const observerOptions = { childList: true, subtree: true }; 187 | menuObserver.observe(document.body, observerOptions); 188 | saveCurrentSession(); 189 | }; 190 | 191 | init(); 192 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.5.5" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" 8 | integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/highlight@^7.0.0": 13 | version "7.5.0" 14 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" 15 | integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== 16 | dependencies: 17 | chalk "^2.0.0" 18 | esutils "^2.0.2" 19 | js-tokens "^4.0.0" 20 | 21 | acorn-jsx@^5.0.2: 22 | version "5.0.2" 23 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.2.tgz#84b68ea44b373c4f8686023a551f61a21b7c4a4f" 24 | integrity sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw== 25 | 26 | acorn@^7.0.0: 27 | version "7.1.0" 28 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" 29 | integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== 30 | 31 | ajv@^6.10.0, ajv@^6.10.2: 32 | version "6.10.2" 33 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" 34 | integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== 35 | dependencies: 36 | fast-deep-equal "^2.0.1" 37 | fast-json-stable-stringify "^2.0.0" 38 | json-schema-traverse "^0.4.1" 39 | uri-js "^4.2.2" 40 | 41 | ansi-escapes@^3.2.0: 42 | version "3.2.0" 43 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 44 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 45 | 46 | ansi-regex@^3.0.0: 47 | version "3.0.0" 48 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 49 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 50 | 51 | ansi-regex@^4.1.0: 52 | version "4.1.0" 53 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 54 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 55 | 56 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 57 | version "3.2.1" 58 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 59 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 60 | dependencies: 61 | color-convert "^1.9.0" 62 | 63 | argparse@^1.0.7: 64 | version "1.0.10" 65 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 66 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 67 | dependencies: 68 | sprintf-js "~1.0.2" 69 | 70 | array-includes@^3.0.3: 71 | version "3.0.3" 72 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 73 | integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= 74 | dependencies: 75 | define-properties "^1.1.2" 76 | es-abstract "^1.7.0" 77 | 78 | astral-regex@^1.0.0: 79 | version "1.0.0" 80 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 81 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 82 | 83 | balanced-match@^1.0.0: 84 | version "1.0.0" 85 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 86 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 87 | 88 | brace-expansion@^1.1.7: 89 | version "1.1.11" 90 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 91 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 92 | dependencies: 93 | balanced-match "^1.0.0" 94 | concat-map "0.0.1" 95 | 96 | callsites@^3.0.0: 97 | version "3.1.0" 98 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 99 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 100 | 101 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: 102 | version "2.4.2" 103 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 104 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 105 | dependencies: 106 | ansi-styles "^3.2.1" 107 | escape-string-regexp "^1.0.5" 108 | supports-color "^5.3.0" 109 | 110 | chardet@^0.7.0: 111 | version "0.7.0" 112 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 113 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 114 | 115 | cli-cursor@^2.1.0: 116 | version "2.1.0" 117 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 118 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 119 | dependencies: 120 | restore-cursor "^2.0.0" 121 | 122 | cli-width@^2.0.0: 123 | version "2.2.0" 124 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 125 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= 126 | 127 | color-convert@^1.9.0: 128 | version "1.9.3" 129 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 130 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 131 | dependencies: 132 | color-name "1.1.3" 133 | 134 | color-name@1.1.3: 135 | version "1.1.3" 136 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 137 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 138 | 139 | concat-map@0.0.1: 140 | version "0.0.1" 141 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 142 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 143 | 144 | confusing-browser-globals@^1.0.7: 145 | version "1.0.9" 146 | resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" 147 | integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== 148 | 149 | contains-path@^0.1.0: 150 | version "0.1.0" 151 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 152 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 153 | 154 | cross-spawn@^6.0.5: 155 | version "6.0.5" 156 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 157 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 158 | dependencies: 159 | nice-try "^1.0.4" 160 | path-key "^2.0.1" 161 | semver "^5.5.0" 162 | shebang-command "^1.2.0" 163 | which "^1.2.9" 164 | 165 | debug@^2.6.8, debug@^2.6.9: 166 | version "2.6.9" 167 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 168 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 169 | dependencies: 170 | ms "2.0.0" 171 | 172 | debug@^4.0.1: 173 | version "4.1.1" 174 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 175 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 176 | dependencies: 177 | ms "^2.1.1" 178 | 179 | deep-is@~0.1.3: 180 | version "0.1.3" 181 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 182 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 183 | 184 | define-properties@^1.1.2, define-properties@^1.1.3: 185 | version "1.1.3" 186 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 187 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 188 | dependencies: 189 | object-keys "^1.0.12" 190 | 191 | doctrine@1.5.0: 192 | version "1.5.0" 193 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 194 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 195 | dependencies: 196 | esutils "^2.0.2" 197 | isarray "^1.0.0" 198 | 199 | doctrine@^3.0.0: 200 | version "3.0.0" 201 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 202 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 203 | dependencies: 204 | esutils "^2.0.2" 205 | 206 | emoji-regex@^7.0.1: 207 | version "7.0.3" 208 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 209 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 210 | 211 | error-ex@^1.2.0: 212 | version "1.3.2" 213 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 214 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 215 | dependencies: 216 | is-arrayish "^0.2.1" 217 | 218 | es-abstract@^1.12.0, es-abstract@^1.7.0: 219 | version "1.14.2" 220 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" 221 | integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== 222 | dependencies: 223 | es-to-primitive "^1.2.0" 224 | function-bind "^1.1.1" 225 | has "^1.0.3" 226 | has-symbols "^1.0.0" 227 | is-callable "^1.1.4" 228 | is-regex "^1.0.4" 229 | object-inspect "^1.6.0" 230 | object-keys "^1.1.1" 231 | string.prototype.trimleft "^2.0.0" 232 | string.prototype.trimright "^2.0.0" 233 | 234 | es-to-primitive@^1.2.0: 235 | version "1.2.0" 236 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 237 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 238 | dependencies: 239 | is-callable "^1.1.4" 240 | is-date-object "^1.0.1" 241 | is-symbol "^1.0.2" 242 | 243 | escape-string-regexp@^1.0.5: 244 | version "1.0.5" 245 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 246 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 247 | 248 | eslint-config-airbnb-base@^14.0.0: 249 | version "14.0.0" 250 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz#8a7bcb9643d13c55df4dd7444f138bf4efa61e17" 251 | integrity sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA== 252 | dependencies: 253 | confusing-browser-globals "^1.0.7" 254 | object.assign "^4.1.0" 255 | object.entries "^1.1.0" 256 | 257 | eslint-import-resolver-node@^0.3.2: 258 | version "0.3.2" 259 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 260 | integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== 261 | dependencies: 262 | debug "^2.6.9" 263 | resolve "^1.5.0" 264 | 265 | eslint-module-utils@^2.4.0: 266 | version "2.4.1" 267 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" 268 | integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== 269 | dependencies: 270 | debug "^2.6.8" 271 | pkg-dir "^2.0.0" 272 | 273 | eslint-plugin-import@^2.18.2: 274 | version "2.18.2" 275 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" 276 | integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== 277 | dependencies: 278 | array-includes "^3.0.3" 279 | contains-path "^0.1.0" 280 | debug "^2.6.9" 281 | doctrine "1.5.0" 282 | eslint-import-resolver-node "^0.3.2" 283 | eslint-module-utils "^2.4.0" 284 | has "^1.0.3" 285 | minimatch "^3.0.4" 286 | object.values "^1.1.0" 287 | read-pkg-up "^2.0.0" 288 | resolve "^1.11.0" 289 | 290 | eslint-scope@^5.0.0: 291 | version "5.0.0" 292 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" 293 | integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== 294 | dependencies: 295 | esrecurse "^4.1.0" 296 | estraverse "^4.1.1" 297 | 298 | eslint-utils@^1.4.2: 299 | version "1.4.2" 300 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz#166a5180ef6ab7eb462f162fd0e6f2463d7309ab" 301 | integrity sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q== 302 | dependencies: 303 | eslint-visitor-keys "^1.0.0" 304 | 305 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 306 | version "1.1.0" 307 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" 308 | integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== 309 | 310 | eslint@^6.5.1: 311 | version "6.5.1" 312 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.5.1.tgz#828e4c469697d43bb586144be152198b91e96ed6" 313 | integrity sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A== 314 | dependencies: 315 | "@babel/code-frame" "^7.0.0" 316 | ajv "^6.10.0" 317 | chalk "^2.1.0" 318 | cross-spawn "^6.0.5" 319 | debug "^4.0.1" 320 | doctrine "^3.0.0" 321 | eslint-scope "^5.0.0" 322 | eslint-utils "^1.4.2" 323 | eslint-visitor-keys "^1.1.0" 324 | espree "^6.1.1" 325 | esquery "^1.0.1" 326 | esutils "^2.0.2" 327 | file-entry-cache "^5.0.1" 328 | functional-red-black-tree "^1.0.1" 329 | glob-parent "^5.0.0" 330 | globals "^11.7.0" 331 | ignore "^4.0.6" 332 | import-fresh "^3.0.0" 333 | imurmurhash "^0.1.4" 334 | inquirer "^6.4.1" 335 | is-glob "^4.0.0" 336 | js-yaml "^3.13.1" 337 | json-stable-stringify-without-jsonify "^1.0.1" 338 | levn "^0.3.0" 339 | lodash "^4.17.14" 340 | minimatch "^3.0.4" 341 | mkdirp "^0.5.1" 342 | natural-compare "^1.4.0" 343 | optionator "^0.8.2" 344 | progress "^2.0.0" 345 | regexpp "^2.0.1" 346 | semver "^6.1.2" 347 | strip-ansi "^5.2.0" 348 | strip-json-comments "^3.0.1" 349 | table "^5.2.3" 350 | text-table "^0.2.0" 351 | v8-compile-cache "^2.0.3" 352 | 353 | espree@^6.1.1: 354 | version "6.1.1" 355 | resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.1.tgz#7f80e5f7257fc47db450022d723e356daeb1e5de" 356 | integrity sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ== 357 | dependencies: 358 | acorn "^7.0.0" 359 | acorn-jsx "^5.0.2" 360 | eslint-visitor-keys "^1.1.0" 361 | 362 | esprima@^4.0.0: 363 | version "4.0.1" 364 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 365 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 366 | 367 | esquery@^1.0.1: 368 | version "1.0.1" 369 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 370 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== 371 | dependencies: 372 | estraverse "^4.0.0" 373 | 374 | esrecurse@^4.1.0: 375 | version "4.2.1" 376 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 377 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== 378 | dependencies: 379 | estraverse "^4.1.0" 380 | 381 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 382 | version "4.3.0" 383 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 384 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 385 | 386 | esutils@^2.0.2: 387 | version "2.0.3" 388 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 389 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 390 | 391 | external-editor@^3.0.3: 392 | version "3.1.0" 393 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" 394 | integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== 395 | dependencies: 396 | chardet "^0.7.0" 397 | iconv-lite "^0.4.24" 398 | tmp "^0.0.33" 399 | 400 | fast-deep-equal@^2.0.1: 401 | version "2.0.1" 402 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 403 | integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 404 | 405 | fast-json-stable-stringify@^2.0.0: 406 | version "2.0.0" 407 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 408 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 409 | 410 | fast-levenshtein@~2.0.4: 411 | version "2.0.6" 412 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 413 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 414 | 415 | figures@^2.0.0: 416 | version "2.0.0" 417 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 418 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 419 | dependencies: 420 | escape-string-regexp "^1.0.5" 421 | 422 | file-entry-cache@^5.0.1: 423 | version "5.0.1" 424 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 425 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 426 | dependencies: 427 | flat-cache "^2.0.1" 428 | 429 | find-up@^2.0.0, find-up@^2.1.0: 430 | version "2.1.0" 431 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 432 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 433 | dependencies: 434 | locate-path "^2.0.0" 435 | 436 | flat-cache@^2.0.1: 437 | version "2.0.1" 438 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 439 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 440 | dependencies: 441 | flatted "^2.0.0" 442 | rimraf "2.6.3" 443 | write "1.0.3" 444 | 445 | flatted@^2.0.0: 446 | version "2.0.1" 447 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" 448 | integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== 449 | 450 | fs.realpath@^1.0.0: 451 | version "1.0.0" 452 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 453 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 454 | 455 | function-bind@^1.1.1: 456 | version "1.1.1" 457 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 458 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 459 | 460 | functional-red-black-tree@^1.0.1: 461 | version "1.0.1" 462 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 463 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 464 | 465 | glob-parent@^5.0.0: 466 | version "5.1.0" 467 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" 468 | integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== 469 | dependencies: 470 | is-glob "^4.0.1" 471 | 472 | glob@^7.1.3: 473 | version "7.1.4" 474 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 475 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 476 | dependencies: 477 | fs.realpath "^1.0.0" 478 | inflight "^1.0.4" 479 | inherits "2" 480 | minimatch "^3.0.4" 481 | once "^1.3.0" 482 | path-is-absolute "^1.0.0" 483 | 484 | globals@^11.7.0: 485 | version "11.12.0" 486 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 487 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 488 | 489 | graceful-fs@^4.1.2: 490 | version "4.2.2" 491 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" 492 | integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== 493 | 494 | has-flag@^3.0.0: 495 | version "3.0.0" 496 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 497 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 498 | 499 | has-symbols@^1.0.0: 500 | version "1.0.0" 501 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 502 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 503 | 504 | has@^1.0.1, has@^1.0.3: 505 | version "1.0.3" 506 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 507 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 508 | dependencies: 509 | function-bind "^1.1.1" 510 | 511 | hosted-git-info@^2.1.4: 512 | version "2.8.4" 513 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" 514 | integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== 515 | 516 | iconv-lite@^0.4.24: 517 | version "0.4.24" 518 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 519 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 520 | dependencies: 521 | safer-buffer ">= 2.1.2 < 3" 522 | 523 | ignore@^4.0.6: 524 | version "4.0.6" 525 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 526 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 527 | 528 | import-fresh@^3.0.0: 529 | version "3.1.0" 530 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" 531 | integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== 532 | dependencies: 533 | parent-module "^1.0.0" 534 | resolve-from "^4.0.0" 535 | 536 | imurmurhash@^0.1.4: 537 | version "0.1.4" 538 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 539 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 540 | 541 | inflight@^1.0.4: 542 | version "1.0.6" 543 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 544 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 545 | dependencies: 546 | once "^1.3.0" 547 | wrappy "1" 548 | 549 | inherits@2: 550 | version "2.0.4" 551 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 552 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 553 | 554 | inquirer@^6.4.1: 555 | version "6.5.2" 556 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 557 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 558 | dependencies: 559 | ansi-escapes "^3.2.0" 560 | chalk "^2.4.2" 561 | cli-cursor "^2.1.0" 562 | cli-width "^2.0.0" 563 | external-editor "^3.0.3" 564 | figures "^2.0.0" 565 | lodash "^4.17.12" 566 | mute-stream "0.0.7" 567 | run-async "^2.2.0" 568 | rxjs "^6.4.0" 569 | string-width "^2.1.0" 570 | strip-ansi "^5.1.0" 571 | through "^2.3.6" 572 | 573 | is-arrayish@^0.2.1: 574 | version "0.2.1" 575 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 576 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 577 | 578 | is-callable@^1.1.4: 579 | version "1.1.4" 580 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 581 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 582 | 583 | is-date-object@^1.0.1: 584 | version "1.0.1" 585 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 586 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= 587 | 588 | is-extglob@^2.1.1: 589 | version "2.1.1" 590 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 591 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 592 | 593 | is-fullwidth-code-point@^2.0.0: 594 | version "2.0.0" 595 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 596 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 597 | 598 | is-glob@^4.0.0, is-glob@^4.0.1: 599 | version "4.0.1" 600 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 601 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 602 | dependencies: 603 | is-extglob "^2.1.1" 604 | 605 | is-promise@^2.1.0: 606 | version "2.1.0" 607 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 608 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 609 | 610 | is-regex@^1.0.4: 611 | version "1.0.4" 612 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 613 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 614 | dependencies: 615 | has "^1.0.1" 616 | 617 | is-symbol@^1.0.2: 618 | version "1.0.2" 619 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 620 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== 621 | dependencies: 622 | has-symbols "^1.0.0" 623 | 624 | isarray@^1.0.0: 625 | version "1.0.0" 626 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 627 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 628 | 629 | isexe@^2.0.0: 630 | version "2.0.0" 631 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 632 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 633 | 634 | js-tokens@^4.0.0: 635 | version "4.0.0" 636 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 637 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 638 | 639 | js-yaml@^3.13.1: 640 | version "3.13.1" 641 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 642 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 643 | dependencies: 644 | argparse "^1.0.7" 645 | esprima "^4.0.0" 646 | 647 | json-schema-traverse@^0.4.1: 648 | version "0.4.1" 649 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 650 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 651 | 652 | json-stable-stringify-without-jsonify@^1.0.1: 653 | version "1.0.1" 654 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 655 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 656 | 657 | levn@^0.3.0, levn@~0.3.0: 658 | version "0.3.0" 659 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 660 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 661 | dependencies: 662 | prelude-ls "~1.1.2" 663 | type-check "~0.3.2" 664 | 665 | load-json-file@^2.0.0: 666 | version "2.0.0" 667 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 668 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 669 | dependencies: 670 | graceful-fs "^4.1.2" 671 | parse-json "^2.2.0" 672 | pify "^2.0.0" 673 | strip-bom "^3.0.0" 674 | 675 | locate-path@^2.0.0: 676 | version "2.0.0" 677 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 678 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 679 | dependencies: 680 | p-locate "^2.0.0" 681 | path-exists "^3.0.0" 682 | 683 | lodash@^4.17.12, lodash@^4.17.14: 684 | version "4.17.15" 685 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 686 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 687 | 688 | mimic-fn@^1.0.0: 689 | version "1.2.0" 690 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 691 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 692 | 693 | minimatch@^3.0.4: 694 | version "3.0.4" 695 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 696 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 697 | dependencies: 698 | brace-expansion "^1.1.7" 699 | 700 | minimist@0.0.8: 701 | version "0.0.8" 702 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 703 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 704 | 705 | mkdirp@^0.5.1: 706 | version "0.5.1" 707 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 708 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 709 | dependencies: 710 | minimist "0.0.8" 711 | 712 | ms@2.0.0: 713 | version "2.0.0" 714 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 715 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 716 | 717 | ms@^2.1.1: 718 | version "2.1.2" 719 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 720 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 721 | 722 | mute-stream@0.0.7: 723 | version "0.0.7" 724 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 725 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 726 | 727 | natural-compare@^1.4.0: 728 | version "1.4.0" 729 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 730 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 731 | 732 | nice-try@^1.0.4: 733 | version "1.0.5" 734 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 735 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 736 | 737 | normalize-package-data@^2.3.2: 738 | version "2.5.0" 739 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 740 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 741 | dependencies: 742 | hosted-git-info "^2.1.4" 743 | resolve "^1.10.0" 744 | semver "2 || 3 || 4 || 5" 745 | validate-npm-package-license "^3.0.1" 746 | 747 | object-inspect@^1.6.0: 748 | version "1.6.0" 749 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" 750 | integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== 751 | 752 | object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: 753 | version "1.1.1" 754 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 755 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 756 | 757 | object.assign@^4.1.0: 758 | version "4.1.0" 759 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 760 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 761 | dependencies: 762 | define-properties "^1.1.2" 763 | function-bind "^1.1.1" 764 | has-symbols "^1.0.0" 765 | object-keys "^1.0.11" 766 | 767 | object.entries@^1.1.0: 768 | version "1.1.0" 769 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" 770 | integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== 771 | dependencies: 772 | define-properties "^1.1.3" 773 | es-abstract "^1.12.0" 774 | function-bind "^1.1.1" 775 | has "^1.0.3" 776 | 777 | object.values@^1.1.0: 778 | version "1.1.0" 779 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" 780 | integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== 781 | dependencies: 782 | define-properties "^1.1.3" 783 | es-abstract "^1.12.0" 784 | function-bind "^1.1.1" 785 | has "^1.0.3" 786 | 787 | once@^1.3.0: 788 | version "1.4.0" 789 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 790 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 791 | dependencies: 792 | wrappy "1" 793 | 794 | onetime@^2.0.0: 795 | version "2.0.1" 796 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 797 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 798 | dependencies: 799 | mimic-fn "^1.0.0" 800 | 801 | optionator@^0.8.2: 802 | version "0.8.2" 803 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 804 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 805 | dependencies: 806 | deep-is "~0.1.3" 807 | fast-levenshtein "~2.0.4" 808 | levn "~0.3.0" 809 | prelude-ls "~1.1.2" 810 | type-check "~0.3.2" 811 | wordwrap "~1.0.0" 812 | 813 | os-tmpdir@~1.0.2: 814 | version "1.0.2" 815 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 816 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 817 | 818 | p-limit@^1.1.0: 819 | version "1.3.0" 820 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 821 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 822 | dependencies: 823 | p-try "^1.0.0" 824 | 825 | p-locate@^2.0.0: 826 | version "2.0.0" 827 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 828 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 829 | dependencies: 830 | p-limit "^1.1.0" 831 | 832 | p-try@^1.0.0: 833 | version "1.0.0" 834 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 835 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 836 | 837 | parent-module@^1.0.0: 838 | version "1.0.1" 839 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 840 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 841 | dependencies: 842 | callsites "^3.0.0" 843 | 844 | parse-json@^2.2.0: 845 | version "2.2.0" 846 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 847 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 848 | dependencies: 849 | error-ex "^1.2.0" 850 | 851 | path-exists@^3.0.0: 852 | version "3.0.0" 853 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 854 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 855 | 856 | path-is-absolute@^1.0.0: 857 | version "1.0.1" 858 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 859 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 860 | 861 | path-key@^2.0.1: 862 | version "2.0.1" 863 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 864 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 865 | 866 | path-parse@^1.0.6: 867 | version "1.0.6" 868 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 869 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 870 | 871 | path-type@^2.0.0: 872 | version "2.0.0" 873 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 874 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 875 | dependencies: 876 | pify "^2.0.0" 877 | 878 | pify@^2.0.0: 879 | version "2.3.0" 880 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 881 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 882 | 883 | pkg-dir@^2.0.0: 884 | version "2.0.0" 885 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 886 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 887 | dependencies: 888 | find-up "^2.1.0" 889 | 890 | prelude-ls@~1.1.2: 891 | version "1.1.2" 892 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 893 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 894 | 895 | progress@^2.0.0: 896 | version "2.0.3" 897 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 898 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 899 | 900 | punycode@^2.1.0: 901 | version "2.1.1" 902 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 903 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 904 | 905 | read-pkg-up@^2.0.0: 906 | version "2.0.0" 907 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 908 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 909 | dependencies: 910 | find-up "^2.0.0" 911 | read-pkg "^2.0.0" 912 | 913 | read-pkg@^2.0.0: 914 | version "2.0.0" 915 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 916 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 917 | dependencies: 918 | load-json-file "^2.0.0" 919 | normalize-package-data "^2.3.2" 920 | path-type "^2.0.0" 921 | 922 | regexpp@^2.0.1: 923 | version "2.0.1" 924 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 925 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 926 | 927 | resolve-from@^4.0.0: 928 | version "4.0.0" 929 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 930 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 931 | 932 | resolve@^1.10.0, resolve@^1.11.0, resolve@^1.5.0: 933 | version "1.12.0" 934 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" 935 | integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== 936 | dependencies: 937 | path-parse "^1.0.6" 938 | 939 | restore-cursor@^2.0.0: 940 | version "2.0.0" 941 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 942 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 943 | dependencies: 944 | onetime "^2.0.0" 945 | signal-exit "^3.0.2" 946 | 947 | rimraf@2.6.3: 948 | version "2.6.3" 949 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 950 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 951 | dependencies: 952 | glob "^7.1.3" 953 | 954 | run-async@^2.2.0: 955 | version "2.3.0" 956 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 957 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= 958 | dependencies: 959 | is-promise "^2.1.0" 960 | 961 | rxjs@^6.4.0: 962 | version "6.5.3" 963 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" 964 | integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== 965 | dependencies: 966 | tslib "^1.9.0" 967 | 968 | "safer-buffer@>= 2.1.2 < 3": 969 | version "2.1.2" 970 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 971 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 972 | 973 | "semver@2 || 3 || 4 || 5", semver@^5.5.0: 974 | version "5.7.1" 975 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 976 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 977 | 978 | semver@^6.1.2: 979 | version "6.3.0" 980 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 981 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 982 | 983 | shebang-command@^1.2.0: 984 | version "1.2.0" 985 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 986 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 987 | dependencies: 988 | shebang-regex "^1.0.0" 989 | 990 | shebang-regex@^1.0.0: 991 | version "1.0.0" 992 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 993 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 994 | 995 | signal-exit@^3.0.2: 996 | version "3.0.2" 997 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 998 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 999 | 1000 | slice-ansi@^2.1.0: 1001 | version "2.1.0" 1002 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 1003 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 1004 | dependencies: 1005 | ansi-styles "^3.2.0" 1006 | astral-regex "^1.0.0" 1007 | is-fullwidth-code-point "^2.0.0" 1008 | 1009 | spdx-correct@^3.0.0: 1010 | version "3.1.0" 1011 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 1012 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 1013 | dependencies: 1014 | spdx-expression-parse "^3.0.0" 1015 | spdx-license-ids "^3.0.0" 1016 | 1017 | spdx-exceptions@^2.1.0: 1018 | version "2.2.0" 1019 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 1020 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 1021 | 1022 | spdx-expression-parse@^3.0.0: 1023 | version "3.0.0" 1024 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1025 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 1026 | dependencies: 1027 | spdx-exceptions "^2.1.0" 1028 | spdx-license-ids "^3.0.0" 1029 | 1030 | spdx-license-ids@^3.0.0: 1031 | version "3.0.5" 1032 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" 1033 | integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== 1034 | 1035 | sprintf-js@~1.0.2: 1036 | version "1.0.3" 1037 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1038 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1039 | 1040 | string-width@^2.1.0: 1041 | version "2.1.1" 1042 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1043 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1044 | dependencies: 1045 | is-fullwidth-code-point "^2.0.0" 1046 | strip-ansi "^4.0.0" 1047 | 1048 | string-width@^3.0.0: 1049 | version "3.1.0" 1050 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1051 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1052 | dependencies: 1053 | emoji-regex "^7.0.1" 1054 | is-fullwidth-code-point "^2.0.0" 1055 | strip-ansi "^5.1.0" 1056 | 1057 | string.prototype.trimleft@^2.0.0: 1058 | version "2.1.0" 1059 | resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" 1060 | integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== 1061 | dependencies: 1062 | define-properties "^1.1.3" 1063 | function-bind "^1.1.1" 1064 | 1065 | string.prototype.trimright@^2.0.0: 1066 | version "2.1.0" 1067 | resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" 1068 | integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== 1069 | dependencies: 1070 | define-properties "^1.1.3" 1071 | function-bind "^1.1.1" 1072 | 1073 | strip-ansi@^4.0.0: 1074 | version "4.0.0" 1075 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1076 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1077 | dependencies: 1078 | ansi-regex "^3.0.0" 1079 | 1080 | strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1081 | version "5.2.0" 1082 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1083 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1084 | dependencies: 1085 | ansi-regex "^4.1.0" 1086 | 1087 | strip-bom@^3.0.0: 1088 | version "3.0.0" 1089 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1090 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1091 | 1092 | strip-json-comments@^3.0.1: 1093 | version "3.0.1" 1094 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" 1095 | integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== 1096 | 1097 | supports-color@^5.3.0: 1098 | version "5.5.0" 1099 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1100 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1101 | dependencies: 1102 | has-flag "^3.0.0" 1103 | 1104 | table@^5.2.3: 1105 | version "5.4.6" 1106 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 1107 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 1108 | dependencies: 1109 | ajv "^6.10.2" 1110 | lodash "^4.17.14" 1111 | slice-ansi "^2.1.0" 1112 | string-width "^3.0.0" 1113 | 1114 | text-table@^0.2.0: 1115 | version "0.2.0" 1116 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1117 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1118 | 1119 | through@^2.3.6: 1120 | version "2.3.8" 1121 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1122 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1123 | 1124 | tmp@^0.0.33: 1125 | version "0.0.33" 1126 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1127 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 1128 | dependencies: 1129 | os-tmpdir "~1.0.2" 1130 | 1131 | tslib@^1.9.0: 1132 | version "1.10.0" 1133 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 1134 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 1135 | 1136 | type-check@~0.3.2: 1137 | version "0.3.2" 1138 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1139 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1140 | dependencies: 1141 | prelude-ls "~1.1.2" 1142 | 1143 | uri-js@^4.2.2: 1144 | version "4.2.2" 1145 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1146 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 1147 | dependencies: 1148 | punycode "^2.1.0" 1149 | 1150 | v8-compile-cache@^2.0.3: 1151 | version "2.1.0" 1152 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" 1153 | integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== 1154 | 1155 | validate-npm-package-license@^3.0.1: 1156 | version "3.0.4" 1157 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1158 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1159 | dependencies: 1160 | spdx-correct "^3.0.0" 1161 | spdx-expression-parse "^3.0.0" 1162 | 1163 | which@^1.2.9: 1164 | version "1.3.1" 1165 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1166 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1167 | dependencies: 1168 | isexe "^2.0.0" 1169 | 1170 | wordwrap@~1.0.0: 1171 | version "1.0.0" 1172 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1173 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 1174 | 1175 | wrappy@1: 1176 | version "1.0.2" 1177 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1178 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1179 | 1180 | write@1.0.3: 1181 | version "1.0.3" 1182 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 1183 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 1184 | dependencies: 1185 | mkdirp "^0.5.1" 1186 | --------------------------------------------------------------------------------