├── .prettierignore ├── app ├── dev-app-update.yml ├── .gitignore ├── development.env ├── .env ├── package.json ├── utils │ ├── oauth │ │ └── index.js │ ├── session │ │ └── index.js │ ├── networking │ │ └── index.js │ ├── updater │ │ └── index.js │ ├── windows │ │ └── index.js │ ├── config │ │ └── index.js │ ├── prism │ │ └── index.js │ └── browser │ │ └── index.js ├── index.html ├── main.js ├── LICENSE └── yarn.lock ├── .prettierrc ├── .vscode ├── extensions.json └── settings.json ├── .gitignore ├── setup.sh ├── README.md ├── DEVELOPMENT.md ├── package.json └── yarn.lock /.prettierignore: -------------------------------------------------------------------------------- 1 | package.json 2 | node_modules 3 | dist 4 | build -------------------------------------------------------------------------------- /app/dev-app-update.yml: -------------------------------------------------------------------------------- 1 | owner: stoplightio 2 | repo: desktop 3 | provider: github 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": true, 4 | "trailingComma": "es5" 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["esbenp.prettier-vscode", "eamodio.gitlens"] 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /build-tmp 3 | /npm-debug.log 4 | /dist 5 | .idea 6 | /yarn-error.log 7 | /lerna-debug.log 8 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | brew install Caskroom/cask/xquartz wine mono 2 | brew install ruby gnu-tar libicns graphicsmagick 3 | gem install fpm 4 | yarn 5 | cd app && yarn 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # testing 7 | /coverage 8 | 9 | # production 10 | /build 11 | 12 | # misc 13 | .DS_Store 14 | npm-debug.log* 15 | yarn-debug.log* 16 | yarn-error.log* 17 | 18 | -------------------------------------------------------------------------------- /app/development.env: -------------------------------------------------------------------------------- 1 | RELEASE_STAGE=development 2 | SL_APP_HOST=http://localhost:3100 3 | SL_API_HOST=http://localhost:3030 4 | SL_EXPORTER_HOST=http://localhost:3031 5 | SL_PRISM_HOST=http://localhost:4050 6 | SL_PRISM_PORT=4025 7 | SL_PUBS_HOST=localhost:8080 8 | SL_PUBS_INGRESS=ingress.localhost:8080 9 | AWS_BUCKET=user-content-dev.stoplight.io 10 | GITHUB_CLIENT_ID=2fead212d04013c864b2 11 | GA_KEY= 12 | INTERCOM_KEY= 13 | STRIPE_PK=pk_test_kpBgbzToWW21hZDan1nRNnVF 14 | ACCOUNT_DOCK_KEY=ad_acco_a67qwbr1k0j39lmz 15 | BUGSNAG_KEY= 16 | FULLSTORY_KEY= 17 | HEADWAY_KEY= 18 | -------------------------------------------------------------------------------- /app/.env: -------------------------------------------------------------------------------- 1 | RELEASE_STAGE=production 2 | SL_APP_HOST=https://next.stoplight.io 3 | SL_API_HOST=https://next-api.stoplight.io 4 | SL_EXPORTER_HOST=https://exporter.stoplight.io 5 | SL_PRISM_HOST=https://prism.stoplight.io 6 | SL_PRISM_PORT=4020 7 | SL_PUBS_HOST=docs.stoplight.io 8 | SL_PUBS_INGRESS=ingress.docs.stoplight.io 9 | AWS_BUCKET=user-content.stoplight.io 10 | GITHUB_CLIENT_ID=756956c5ddce1b579de6 11 | GA_KEY=UA-73790375-8 12 | INTERCOM_KEY=g7eo4oae 13 | STRIPE_PK=pk_live_1zLROeDhR4a35o2OMgvChIfG 14 | ACCOUNT_DOCK_KEY=ad_acco_4weuvzhpcgx15l8n 15 | BUGSNAG_KEY=45837fb90fa3085732214a960e9545ea 16 | FULLSTORY_KEY= 17 | HEADWAY_KEY= 18 | SL_DISABLED_FEATURES=user-explorer,org-explorer 19 | -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stoplight-next", 3 | "productName": "Stoplight Next", 4 | "description": "The best way to model, document, and test APIs.", 5 | "version": "4.10.7", 6 | "environment": "production", 7 | "license": "Apache-2.0", 8 | "author": { 9 | "name": "Stoplight", 10 | "email": "support@stoplight.io" 11 | }, 12 | "main": "./main.js", 13 | "dependencies": { 14 | "chokidar": "1.7.x", 15 | "dotenv": "5.0.x", 16 | "electron-ga": "^1.0.6", 17 | "electron-store": "1.3.x", 18 | "electron-updater": "2.21.10", 19 | "electron-window-state": "4.1.x", 20 | "fs-extra": "5.0.x", 21 | "ip": "1.x.x", 22 | "lodash": "4.x.x", 23 | "ps-tree": "1.x.x", 24 | "shortid": "2.2.x", 25 | "simple-oauth2": "1.5.x" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.tabSize": 2, 3 | "editor.renderWhitespace": "boundary", 4 | "editor.cursorStyle": "line", 5 | "editor.rulers": [100], 6 | "editor.formatOnSave": true, 7 | "files.trimTrailingWhitespace": true, 8 | "files.insertFinalNewline": true, 9 | "prettier.eslintIntegration": true, 10 | "files.watcherExclude": { 11 | "**/.git/objects/**": true, 12 | "**/node_modules/**": true, 13 | "**/build/**": true, 14 | "**/dist/**": true 15 | }, 16 | "files.exclude": { 17 | "**/.git": true, 18 | "**/.DS_Store": true, 19 | "**/dist/**": true 20 | }, 21 | "search.exclude": { 22 | "**/.git/objects": true, 23 | "**/node_modules": true, 24 | "**/yarn.lock": true, 25 | "**/build": true, 26 | "**/dist": true 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Stoplight Desktop App 2 | 3 | Looking for the latest and greatest visual editor from Stoplight? Check out [Stoplight Studio](https://stoplight.io/studio/) 4 | 5 | This is a wrapper around the Stoplight Platform, that makes certain native functionality available to it. It also starts and manages a local instance Prism on your computer for you. 6 | 7 | **Download the latest release in the [GitHub releases tab](https://github.com/stoplightio/desktop/releases).** 8 | 9 | For support, see our [community forum](https://community.stoplight.io/). For support that includes private account information, email [support@stoplight.io](mailto:support@stoplight.io). 10 | 11 | > Note: This repo will appear to not be updated often, but this is because it is a wrapper around the Stoplight web app. We have monthly releases, see our Changelog [here](https://community.stoplight.io/tags/changelog). 12 | -------------------------------------------------------------------------------- /app/utils/oauth/index.js: -------------------------------------------------------------------------------- 1 | const { BrowserWindow, ipcMain, session } = require('electron'); 2 | 3 | function getPopupSize(provider) { 4 | switch (provider) { 5 | case 'github': 6 | return { width: 1020, height: 644 }; 7 | default: 8 | return { width: 1020, height: 644 }; 9 | } 10 | } 11 | 12 | exports.init = () => { 13 | ipcMain.on('open.oauth.window', (event, { provider, url, param }) => { 14 | const winSize = getPopupSize(provider); 15 | const authWindow = new BrowserWindow({ 16 | width: winSize.width, 17 | height: winSize.height, 18 | center: true, 19 | show: false, 20 | minimizable: false, 21 | maximizable: false, 22 | fullscreenable: false, 23 | title: `${provider} Authorization`, 24 | webPreferences: { 25 | devTools: false, 26 | nodeIntegration: false, 27 | }, 28 | session: session.fromPartition('persist:main', { cache: false }), 29 | }); 30 | 31 | authWindow.loadURL(url); 32 | authWindow.show(); 33 | 34 | let finalUrl; 35 | 36 | authWindow.on('closed', () => { 37 | event.sender.send('close.oauth.window', finalUrl); 38 | }); 39 | 40 | authWindow.webContents.on('did-get-redirect-request', (e, oldUrl, newUrl) => { 41 | if (newUrl.indexOf(param) !== -1) { 42 | finalUrl = newUrl; 43 | authWindow.close(); 44 | } 45 | }); 46 | 47 | authWindow.webContents.on('will-navigate', (e, url) => { 48 | if (url.indexOf(param) !== -1) { 49 | finalUrl = url; 50 | authWindow.close(); 51 | } 52 | }); 53 | }); 54 | }; 55 | -------------------------------------------------------------------------------- /app/utils/session/index.js: -------------------------------------------------------------------------------- 1 | const { session, ipcMain } = require('electron'); 2 | 3 | const config = require('../config'); 4 | 5 | let log; 6 | let currentSession; 7 | 8 | exports.init = ({ logger }, cb) => { 9 | log = logger; 10 | 11 | exports.getCurrentSession(cookie => { 12 | if (cookie) { 13 | currentSession = `${cookie.name}=${cookie.value}`; 14 | } 15 | 16 | cb(cookie); 17 | }); 18 | }; 19 | 20 | exports.getCurrentSession = cb => { 21 | if (session.defaultSession) { 22 | session.defaultSession.cookies.get( 23 | { url: config.get('networking.platformHost') }, 24 | (error, cookies) => { 25 | let found = null; 26 | if (error) { 27 | log('session.get.error', error); 28 | return; 29 | } else { 30 | for (const cookie of cookies) { 31 | if (cookie.name === '_stoplight_session') { 32 | found = cookie; 33 | break; 34 | } 35 | } 36 | } 37 | 38 | cb(found); 39 | } 40 | ); 41 | } else { 42 | cb(); 43 | } 44 | }; 45 | 46 | ipcMain.on('session.create', (_event, options) => { 47 | if (session.defaultSession) { 48 | log('session.create'); 49 | session.defaultSession.cookies.set( 50 | { 51 | url: config.get('networking.platformHost'), 52 | name: '_stoplight_session', 53 | value: options.value, 54 | httpOnly: true, 55 | expirationDate: new Date().getTime() + 1000 * 60 * 60 * 24 * 365, 56 | }, 57 | error => { 58 | if (error) { 59 | log('session.create.error', error); 60 | } else { 61 | currentSession = `_stoplight_session=${options.value}`; 62 | 63 | if (session.defaultSession) { 64 | session.defaultSession.cookies.flushStore(() => { 65 | log('session.flushed'); 66 | }); 67 | } 68 | } 69 | } 70 | ); 71 | } 72 | }); 73 | 74 | ipcMain.on('session.remove', () => { 75 | if (session.defaultSession) { 76 | log('session.remove'); 77 | session.defaultSession.cookies.remove('http://localhost', '_stoplight_session', error => { 78 | if (error) { 79 | log('session.remove.error', error); 80 | } else { 81 | currentSession = undefined; 82 | } 83 | }); 84 | } 85 | }); 86 | 87 | ipcMain.on('session.get', event => { 88 | event.returnValue = currentSession || null; 89 | }); 90 | -------------------------------------------------------------------------------- /DEVELOPMENT.md: -------------------------------------------------------------------------------- 1 | # Development 2 | 3 | This is only relevant for Stoplight engineers. 4 | 5 | ### Setup 6 | 7 | ##### Dependencies 8 | 9 | * Stoplight Platform 10 | * Node >= 7 11 | 12 | ##### OS X / Linux 13 | 14 | Install the dev deps listed above. 15 | 16 | ```bash 17 | yarn install && cd app && yarn install && cd .. 18 | yarn start 19 | ``` 20 | 21 | ##### Building 22 | 23 | Builds will be located in the /dist folder. 24 | 25 | ```bash 26 | yarn build:production 27 | ``` 28 | 29 | ##### Code Signing 30 | 31 | This is useful: https://mkaz.blog/code/code-signing-a-windows-application/. 32 | 33 | CSC_LINK, WIN_CSC_LINK, and CSC_KEY_PASSWORD must be set in your environment. For example: 34 | 35 | Our mac cert is provided by apple developer program. Install it into your keychain, export it to .p12 from the keychain/login screen. 36 | 37 | Our windows cert is provided by Digicert. Install it into your keychain, export it to .p12 from the keychain/login screen. 38 | 39 | ```bash 40 | export CSC_LINK="~/Documents/Credentials/evario-cert/cert-mac.p12" 41 | export WIN_CSC_LINK="~/Documents/Credentials/evario-cert/cert.p12" 42 | export CSC_KEY_PASSWORD="123" 43 | ``` 44 | 45 | ##### Releasing 46 | 47 | GH_TOKEN needs to be set in your environment. 48 | 49 | Code signing needs to be setup. 50 | 51 | 1. Increment app/package.json version property. 52 | 2. Build Stoplight Platform, replace app/build with newly built public files (just files/folders in the public directory). 53 | 54 | ```bash 55 | yarn release:production 56 | ``` 57 | 58 | ### Environment Variables 59 | 60 | * The desktop app MUST bundle ALL if its own variables. It will not inherit variables from hosted stoplight since it now bundles all of its own assets. 61 | * Production environment variables are located in `app/.env`. 62 | * Development environment variables are located in `app/development.env`. 63 | 64 | ##### Adding a Variable 65 | 66 | 1. Add its default production value (or set to empty string) to `app/.env`. 67 | 2. Add its default development value (or set to empty string) to `app/development.env`. 68 | 3. Add it to `app/utils/config/index.js`. 69 | 70 | ### Project Structure 71 | 72 | Notable directories and files: 73 | 74 | ##### app/main.js 75 | 76 | The entry point to the application. This is run when it starts. This file opens a new Electron window, loading either a local instance of the API Dashboard (in development), or a remote instance of the dashboard. 77 | 78 | ##### app/utils/browser/index.js 79 | 80 | This is a pre-script, run before the remote dashboard is loaded. Here, we set a global Electron variable, making several native node modules available to the Stoplight platform. 81 | -------------------------------------------------------------------------------- /app/utils/networking/index.js: -------------------------------------------------------------------------------- 1 | const _ = require('lodash'); 2 | const url = require('url'); 3 | const { dialog } = require('electron'); 4 | 5 | const windows = require('../windows'); 6 | const config = require('../config'); 7 | 8 | let hasShownNetworkingError; 9 | 10 | exports.init = ({ app } = {}) => { 11 | // PROXY SERVERS 12 | 13 | const user = config.get('networking.proxy.user'); 14 | const pass = config.get('networking.proxy.pass'); 15 | 16 | // respect any explicitly set proxies 17 | const proxyUrl = config.get('networking.proxy.url'); 18 | let parsedProxyUrl; 19 | if (proxyUrl) { 20 | try { 21 | parsedProxyUrl = url.parse(proxyUrl); 22 | 23 | if (!parsedProxyUrl.auth && user && pass) { 24 | parsedProxyUrl.auth = `${user}:${pass}`; 25 | } 26 | 27 | console.log('Using proxyUrl', url.format(parsedProxyUrl)); 28 | process.env.HTTPS_PROXY = process.env.HTTP_PROXY = url.format(parsedProxyUrl); 29 | app.commandLine.appendSwitch( 30 | 'proxy-server', 31 | parsedProxyUrl.protocol + '//' + parsedProxyUrl.host 32 | ); 33 | } catch (e) { 34 | console.log('invalid proxyUrl', e); 35 | } 36 | } 37 | 38 | // respect explicitly set proxy bypass 39 | let bypassList = config.get('networking.proxy.bypass'); 40 | if (bypassList) { 41 | bypassList = `stoplight.local;${bypassList.replace(/,/g, ';')}`; 42 | } else if (proxyUrl) { 43 | bypassList = 'stoplight.local;'; 44 | } 45 | if (bypassList) { 46 | console.log('Using bypassList', bypassList); 47 | process.env.NO_PROXY = bypassList; 48 | app.commandLine.appendSwitch('proxy-bypass-list', bypassList); 49 | } 50 | 51 | app.on('login', function(event, webContents, request, authInfo, callback) { 52 | event.preventDefault(); 53 | 54 | if (request && request.url && request.url.match('stoplight.local/desktop')) { 55 | return; 56 | } 57 | 58 | const auth = _.get(parsedProxyUrl, 'auth', ''); 59 | const authParts = (auth || '').split(':'); 60 | const authUsername = _.first(authParts) || user; 61 | const authPassword = _.last(authParts) || pass; 62 | 63 | if (!authUsername || !authPassword) { 64 | console.log( 65 | 'Your proxy requires basic auth, navigating to desktop preferences.', 66 | request.url 67 | ); 68 | 69 | if (!hasShownNetworkingError) { 70 | hasShownNetworkingError = true; 71 | 72 | dialog.showErrorBox( 73 | 'Network Error', 74 | 'Your network proxy requires basic auth, and none provided. Please update the basic auth settings on the desktop preferences screen.' 75 | ); 76 | 77 | const mainWindow = windows.getMainWindow(); 78 | if (mainWindow) { 79 | mainWindow.loadURL(`stoplight://stoplight.local/desktop/settings/networking`); 80 | } else { 81 | console.log('Hmm, mainWindow not instantiated. Cannot navigate to preferences!'); 82 | } 83 | } 84 | } else { 85 | callback(authUsername, authPassword); 86 | } 87 | }); 88 | }; 89 | -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 24 | 25 | 30 | 31 | 45 | 46 | 47 | 48 | 49 | 61 | 62 | 63 | 64 |
65 | 66 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "repository": { 4 | "type": "git", 5 | "url": "git+https://github.com/stoplightio/desktop.git" 6 | }, 7 | "author": { 8 | "name": "Stoplight", 9 | "email": "support@stoplight.io" 10 | }, 11 | "scripts": { 12 | "start": "NODE_ENV=development electron ./app", 13 | "setup": "rm -R node_modules && yarn", 14 | "postinstall": "electron-builder install-app-deps", 15 | "electron:sign": "codesign --deep --force --verbose --sign - node_modules/electron/dist/Electron.app", 16 | "build:normalize": "node build-normalize", 17 | "build:pre": "node build-pre", 18 | "build:post": "node build-post", 19 | "build": "electron-builder --mac --linux --win", 20 | "release": "electron-builder --mac --linux --win", 21 | "build:production": "NODE_ENV=production yarn build:normalize && yarn build:pre && yarn build && yarn build:post", 22 | "build:staging": "NODE_ENV=staging yarn build:normalize && yarn build:pre && yarn build && yarn build:post", 23 | "release:production": "NODE_ENV=production yarn build:normalize && yarn build:pre && yarn release && yarn build:post", 24 | "release:staging": "NODE_ENV=staging yarn build:normalize && yarn build:pre && yarn release && yarn build:post", 25 | "format": "prettier --write \"**/*.js\"" 26 | }, 27 | "devDependencies": { 28 | "adm-zip": "0.4.x", 29 | "devtron": "1.4.x", 30 | "electron": "1.8.7", 31 | "electron-builder": "20.5.1", 32 | "fs-extra": "5.x.x", 33 | "prettier": "1.13.3", 34 | "request": "2.x.x" 35 | }, 36 | "build": { 37 | "appId": "com.stoplight.app", 38 | "compression": "normal", 39 | "asar": true, 40 | "publish": { 41 | "provider": "github" 42 | }, 43 | "extraResources": [ 44 | { 45 | "from": "build-tmp/${os}/${arch}", 46 | "to": "app" 47 | } 48 | ], 49 | "mac": { 50 | "category": "public.app-category.developer-tools", 51 | "target": [ 52 | { 53 | "target": "dmg", 54 | "arch": [ 55 | "x64" 56 | ] 57 | }, 58 | { 59 | "target": "zip", 60 | "arch": [ 61 | "x64" 62 | ] 63 | } 64 | ], 65 | "extendInfo": { 66 | "CFBundleURLTypes": [ 67 | { 68 | "CFBundleURLSchemes": [ 69 | "stoplight" 70 | ], 71 | "CFBundleURLName": "Stoplight Protocol" 72 | } 73 | ] 74 | } 75 | }, 76 | "linux": { 77 | "category": "Development", 78 | "target": [ 79 | { 80 | "target": "AppImage", 81 | "arch": [ 82 | "x64", 83 | "ia32" 84 | ] 85 | }, 86 | { 87 | "target": "deb", 88 | "arch": [ 89 | "x64", 90 | "ia32" 91 | ] 92 | } 93 | ] 94 | }, 95 | "win": { 96 | "target": [ 97 | { 98 | "target": "nsis", 99 | "arch": [ 100 | "x64", 101 | "ia32" 102 | ] 103 | } 104 | ] 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /app/utils/updater/index.js: -------------------------------------------------------------------------------- 1 | const { ipcMain } = require('electron'); 2 | const autoUpdater = require('electron-updater').autoUpdater; 3 | 4 | const windows = require('../windows'); 5 | 6 | autoUpdater.autoDownload = false; 7 | autoUpdater.fullChangelog = true; 8 | 9 | let hasInitted = false; 10 | let manualUpdateCheck = false; 11 | let lastCheck; 12 | 13 | const shouldCheck = () => { 14 | const now = new Date(); 15 | 16 | if (manualUpdateCheck) return true; 17 | 18 | // auto check at most once every 5 minutes 19 | if (lastCheck && now.getTime() - lastCheck.getTime() < 300000) { 20 | return false; 21 | } 22 | 23 | return true; 24 | } 25 | 26 | autoUpdater.on('download-progress', progressObj => { 27 | if (windows.getMainWindow()) { 28 | windows.getMainWindow().webContents.send('updater.download-progress', progressObj); 29 | } 30 | }); 31 | 32 | autoUpdater.on('error', err => { 33 | manualUpdateCheck = false; 34 | 35 | if (windows.getMainWindow()) { 36 | windows.getMainWindow().webContents.send('updater.error', err); 37 | } 38 | }); 39 | 40 | autoUpdater.on('checking-for-update', () => { 41 | if (windows.getMainWindow()) { 42 | windows.getMainWindow().webContents.send('updater.checking-for-update'); 43 | } 44 | }); 45 | 46 | autoUpdater.on('update-available', info => { 47 | manualUpdateCheck = false; 48 | 49 | if (windows.getMainWindow()) { 50 | windows.getMainWindow().webContents.send('updater.update-available', info); 51 | } 52 | }); 53 | 54 | autoUpdater.on('update-not-available', info => { 55 | manualUpdateCheck = false; 56 | 57 | if (windows.getMainWindow()) { 58 | windows.getMainWindow().webContents.send('updater.update-not-available', info); 59 | } 60 | }); 61 | 62 | autoUpdater.on('update-downloaded', info => { 63 | if (windows.getMainWindow()) { 64 | windows.getMainWindow().webContents.send('updater.update-downloaded', info); 65 | } 66 | }); 67 | 68 | exports.checkForUpdates = () => { 69 | if (!shouldCheck()) { 70 | return; 71 | } 72 | 73 | lastCheck = new Date(); 74 | 75 | try { 76 | autoUpdater.checkForUpdates(); 77 | } catch (e) { 78 | console.log('checkForUpdates failed', e); 79 | } 80 | }; 81 | 82 | exports.init = ({ app, logger }) => { 83 | if (hasInitted) return; 84 | 85 | hasInitted = true; 86 | 87 | if (process.platform !== 'linux') { 88 | exports.checkForUpdates(); 89 | 90 | setInterval(() => { 91 | exports.checkForUpdates(); 92 | }, 1000 * 60 * 30); 93 | 94 | app.on('browser-window-focus', () => { 95 | const now = new Date(); 96 | 97 | // auto check at most once every 5 minutes 98 | if (lastCheck && now.getTime() - lastCheck.getTime() < 300000) { 99 | return; 100 | } 101 | 102 | exports.checkForUpdates(); 103 | }); 104 | } 105 | 106 | ipcMain.on('updater.check', event => { 107 | manualUpdateCheck = true; 108 | 109 | if (logger) { 110 | logger('updater.check'); 111 | } 112 | 113 | exports.checkForUpdates(); 114 | }); 115 | 116 | ipcMain.on('updater.install', event => { 117 | if (logger) { 118 | logger('updater.install'); 119 | } 120 | 121 | autoUpdater.quitAndInstall(); 122 | }); 123 | 124 | ipcMain.on('updater.download', event => { 125 | if (logger) { 126 | logger('updater.download'); 127 | } 128 | 129 | autoUpdater.downloadUpdate(); 130 | }); 131 | }; 132 | -------------------------------------------------------------------------------- /app/utils/windows/index.js: -------------------------------------------------------------------------------- 1 | const electron = require('electron'); 2 | const Path = require('path'); 3 | const windowStateKeeper = require('electron-window-state'); 4 | 5 | const { BrowserWindow, shell, dialog } = electron; 6 | 7 | const updaterUtils = require('../updater'); 8 | 9 | let mainWindow; 10 | 11 | const isDev = process.env.NODE_ENV === 'development'; 12 | 13 | exports.getMainWindow = () => { 14 | return mainWindow; 15 | }; 16 | 17 | exports.createWindow = ({ app, logger, targetWindow } = {}) => { 18 | const { screen } = electron; 19 | const size = screen.getPrimaryDisplay().workAreaSize; 20 | 21 | let mainWindowState = windowStateKeeper({ 22 | defaultWidth: parseInt(size.width * 0.98), 23 | defaultHeight: parseInt(size.height * 0.96), 24 | }); 25 | 26 | // Create the browser window. 27 | mainWindow = 28 | targetWindow || 29 | new BrowserWindow({ 30 | x: mainWindowState.x, 31 | y: mainWindowState.y, 32 | width: mainWindowState.width, 33 | height: mainWindowState.height, 34 | center: true, 35 | backgroundColor: '#13101C', 36 | webPreferences: { 37 | webSecurity: false, 38 | nodeIntegration: false, 39 | preload: Path.resolve(Path.join(__dirname, '..', 'browser', 'index.js')), 40 | }, 41 | }); 42 | 43 | mainWindowState.manage(mainWindow); 44 | 45 | // Emitted when the window is closed. 46 | mainWindow.on('closed', () => { 47 | // Dereference the window object, usually you would store windows 48 | // in an array if your app supports multi windows, this is the time 49 | // when you should delete the corresponding element. 50 | mainWindow = null; 51 | }); 52 | 53 | // Emitted when the window regains focus. 54 | mainWindow.on('focus', () => { 55 | if (mainWindow) { 56 | mainWindow.webContents.send('window.focus'); 57 | } 58 | }); 59 | 60 | mainWindow.webContents.on('new-window', (e, url, frameName, disposition) => { 61 | if (disposition === 'foreground-tab') { 62 | e.preventDefault(); 63 | shell.openExternal(url); 64 | } 65 | }); 66 | 67 | mainWindow.on('swipe', (e, direction) => { 68 | if (!mainWindow) { 69 | return; 70 | } 71 | 72 | switch (direction) { 73 | case 'left': 74 | if (mainWindow && mainWindow.webContents.canGoBack()) { 75 | mainWindow.webContents.goBack(); 76 | } 77 | break; 78 | case 'right': 79 | if (mainWindow && mainWindow.webContents.canGoForward()) { 80 | mainWindow.webContents.goForward(); 81 | } 82 | break; 83 | } 84 | }); 85 | 86 | mainWindow.webContents.on('did-finish-load', event => { 87 | updaterUtils.init({ app, logger }); 88 | }); 89 | 90 | // Add prompt before quiting an app if onbeforeunload event is fired. 91 | // This event is supported by electron 1.7.3 and above 92 | // https://github.com/electron/electron/issues/2579 93 | mainWindow.webContents.on('will-prevent-unload', event => { 94 | const choice = dialog.showMessageBox(mainWindow, { 95 | type: 'question', 96 | buttons: ['Quit', 'Stay'], 97 | title: 'Are you sure?', 98 | message: 'You have unsaved changes. Do you want to quit without saving?', 99 | defaultId: 0, 100 | cancelId: 1, 101 | }); 102 | 103 | if (choice === 0) { 104 | event.preventDefault(); 105 | } 106 | }); 107 | }; 108 | 109 | exports.loadApp = () => { 110 | if (mainWindow) { 111 | if (isDev) { 112 | mainWindow.loadURL('http://localhost:3100'); 113 | } else { 114 | mainWindow.loadURL('stoplight://stoplight.local'); 115 | } 116 | } else { 117 | console.log('You must instantiate a mainWindow before calling loadApp'); 118 | } 119 | }; 120 | -------------------------------------------------------------------------------- /app/utils/config/index.js: -------------------------------------------------------------------------------- 1 | const Store = require('electron-store'); 2 | const _ = require('lodash'); 3 | const os = require('os'); 4 | const { app } = require('electron'); 5 | 6 | let config; 7 | let defaults; 8 | let envVariables = { 9 | NAME: process.env.NODE_ENV, 10 | ARCH: os.arch(), 11 | PLATFORM: os.platform(), 12 | APP_VERSION: app.getVersion(), 13 | }; 14 | Object.assign(process.env, envVariables); 15 | 16 | exports.get = path => { 17 | let value; 18 | 19 | if (config) { 20 | value = config.get(path); 21 | } 22 | 23 | return value || _.get(defaults, path); 24 | }; 25 | 26 | exports.set = (path, value) => { 27 | if (config) { 28 | config.set(path, value); 29 | } 30 | }; 31 | 32 | /** 33 | * These are the dotenv variables. They are tracked separately from process.env because 34 | * process.env has all sorts of other stuff that we don't want to work with. 35 | */ 36 | exports.setEnvVariables = ({ variables }) => { 37 | Object.assign(envVariables, variables); 38 | }; 39 | 40 | /** 41 | * Pulls the config values back out into their environment variable equivalents, and merges 42 | * those values with the rest of the environment variables before returning the env object. 43 | */ 44 | exports.getEnvVariables = () => { 45 | let configVars = {}; 46 | 47 | if (config) { 48 | configVars = { 49 | SL_PLATFORM_HOST: exports.get('networking.platformHost'), 50 | SL_APP_HOST: exports.get('networking.appHost'), 51 | SL_API_HOST: exports.get('networking.apiHost'), 52 | SL_EXPORTER_HOST: exports.get('networking.exporterHost'), 53 | SL_PRISM_HOST: exports.get('networking.prismHost'), 54 | SL_PUBS_HOST: exports.get('networking.pubsHost'), 55 | SL_PUBS_INGRESS: exports.get('networking.pubsIngress'), 56 | 57 | PROXY_URL: exports.get('networking.proxy.url'), 58 | PROXY_BYPASS: exports.get('networking.proxy.bypass'), 59 | PROXY_USER: exports.get('networking.proxy.user'), 60 | PROXY_PASS: exports.get('networking.proxy.pass'), 61 | 62 | PRISM_PORT: exports.get('prism.port'), 63 | 64 | GITHUB_CLIENT_ID: exports.get('integrations.github.clientId'), 65 | GA_KEY: exports.get('integrations.ga.key'), 66 | }; 67 | } 68 | 69 | return Object.assign({}, envVariables, configVars); 70 | }; 71 | 72 | exports.init = () => { 73 | // don't store defaults in config, so that not written to disk 74 | defaults = { 75 | networking: { 76 | platformHost: process.env.SL_APP_HOST || '', 77 | appHost: process.env.SL_APP_HOST || '', 78 | apiHost: process.env.SL_API_HOST || '', 79 | exporterHost: process.env.SL_EXPORTER_HOST || '', 80 | prismHost: process.env.SL_PRISM_HOST || '', 81 | pubsHost: process.env.SL_PUBS_HOST || '', 82 | pubsIngress: process.env.SL_PUBS_INGRESS || '', 83 | 84 | proxy: { 85 | url: process.env.HTTPS_PROXY || process.env.HTTP_PROXY || '', 86 | bypass: process.env.NO_PROXY || '', 87 | user: process.env.PROXY_USER || '', 88 | pass: process.env.PROXY_PASS || '', 89 | }, 90 | }, 91 | 92 | prism: { 93 | port: process.env.SL_PRISM_PORT, 94 | }, 95 | 96 | integrations: { 97 | github: { 98 | clientId: process.env.GITHUB_CLIENT_ID || '', 99 | }, 100 | 101 | ga: { 102 | key: process.env.GA_KEY || '', 103 | }, 104 | }, 105 | }; 106 | 107 | config = new Store({ 108 | version: 1, 109 | 110 | name: process.env.NODE_ENV === 'production' ? 'config' : `config-${process.env.NODE_ENV}`, 111 | 112 | defaults: {}, 113 | }); 114 | 115 | // DEPRECATED, old settings 116 | 117 | const currentHost = () => { 118 | const activeHost = config.get('activeHost'); 119 | if (!activeHost) { 120 | return; 121 | } 122 | 123 | const hosts = config.get('store.hosts') || []; 124 | 125 | return hosts[activeHost] || hosts[0]; 126 | }; 127 | 128 | const host = currentHost(); 129 | if (host) { 130 | const setIfNotExists = (oldPath, newPath) => { 131 | const t = _.get(host, oldPath); 132 | if (t && !config.get(newPath)) { 133 | config.set(newPath, t); 134 | } 135 | }; 136 | 137 | setIfNotExists('apiHost', 'networking.apiHost'); 138 | setIfNotExists('proxy.url', 'networking.proxy.url'); 139 | setIfNotExists('proxy.bypass', 'networking.proxy.bypass'); 140 | setIfNotExists('proxy.user', 'networking.proxy.user'); 141 | setIfNotExists('proxy.pass', 'networking.proxy.pass'); 142 | } 143 | }; 144 | -------------------------------------------------------------------------------- /app/utils/prism/index.js: -------------------------------------------------------------------------------- 1 | var server = null, 2 | starting = false, 3 | killing = false, 4 | onClose = null, 5 | debug = process.env.NODE_ENV === 'development' ? true : false; 6 | 7 | var fs = require('fs'); 8 | var Path = require('path'); 9 | var spawn = require('child_process').spawn; 10 | var psTree = require('ps-tree'); 11 | 12 | const configUtils = require('../config'); 13 | 14 | var logger = null; 15 | var log = function() { 16 | var args = new Array(arguments.length); 17 | for (var i = 0; i < args.length; ++i) { 18 | // i is always valid index in the arguments object 19 | args[i] = arguments[i]; 20 | } 21 | args = ['%cprism', 'color: blue'].concat([].slice.call(args)); 22 | 23 | if (logger) { 24 | logger.apply(null, args); 25 | } else { 26 | console.log.apply(console, args); 27 | } 28 | }; 29 | 30 | var resetProxy = function() { 31 | killing = false; 32 | starting = false; 33 | server = null; 34 | }; 35 | 36 | var kill = function(pid, signal, cb) { 37 | if (killing) { 38 | return; 39 | } 40 | 41 | log('starting kill', pid, signal, server); 42 | 43 | server.on('close', function(code) { 44 | resetProxy(); 45 | if (cb) { 46 | cb(); 47 | } 48 | }); 49 | 50 | signal = signal || 'SIGKILL'; 51 | if (process.platform === 'win32') { 52 | try { 53 | process.kill(pid, signal); 54 | } catch (ex) { 55 | log('process.kill err', pid, signal, ex); 56 | } 57 | } else { 58 | psTree(pid, function(err, children) { 59 | if (err) { 60 | log('kill psTree err', err); 61 | return; 62 | } 63 | 64 | [pid] 65 | .concat( 66 | children.map(function(p) { 67 | return p.PID; 68 | }) 69 | ) 70 | .forEach(function(tpid) { 71 | try { 72 | process.kill(tpid, signal); 73 | } catch (ex) { 74 | log('process.kill err', tpid, signal, ex); 75 | } 76 | }); 77 | }); 78 | } 79 | }; 80 | 81 | function startServer(options, cb) { 82 | if (starting) { 83 | return server; 84 | } 85 | starting = true; 86 | 87 | var command, commandDir, args; 88 | 89 | // If we're trying to debug, check to make sure we have the go proxy source installed on our system first 90 | var runDebugProxy = false; 91 | if (debug) { 92 | try { 93 | fs.lstatSync(process.env.GOPATH + '/src/github.com/stoplightio/bear2.0/cmd/prism'); 94 | runDebugProxy = true; 95 | } catch (e) { 96 | log('cant start in debug mode', e); 97 | } 98 | } 99 | 100 | if (runDebugProxy) { 101 | //run -c config.json -s spec/orig/swagger.json -p 4011 -m -d 102 | // args = ['-a=run ' + ['-c ' + Path.join(options.config, 'config.json'), '-s ' + Path.join(options.config, 'spec.json')].join(' ')] 103 | args = ['run', 'main.go', 'conduct', 'serve', `-p=${configUtils.get('prism.port')}`]; 104 | command = 'go'; 105 | commandDir = process.env.GOPATH + '/src/github.com/stoplightio/bear2.0/cmd/prism'; 106 | } else { 107 | if (process.platform === 'win32') { 108 | command = 'prism.exe'; 109 | } else { 110 | command = './prism'; 111 | } 112 | 113 | commandDir = Path.join(__dirname, '..', '..', '..', 'app', 'proxy'); 114 | // args = ['run', '-c=./config.json', '-s=./spec.json'] 115 | args = ['conduct', 'serve', `-p=${configUtils.get('prism.port')}`]; 116 | } 117 | 118 | log('starting prism with command', commandDir, command, args); 119 | 120 | try { 121 | server = spawn(command, args, { 122 | cwd: commandDir, 123 | }); 124 | } catch (e) { 125 | if (cb) { 126 | cb(e); 127 | } 128 | 129 | return; 130 | } 131 | 132 | server.stdout.on('data', function(data) { 133 | starting = false; 134 | log(String(data)); 135 | }); 136 | server.stderr.on('data', function(data) { 137 | starting = false; 138 | var toLog = String(data); 139 | log(toLog); 140 | 141 | if (toLog.match(/already in use|bind/)) { 142 | if (onClose) { 143 | onClose(2); 144 | } 145 | } 146 | }); 147 | server.on('close', function(code) { 148 | if (onClose) { 149 | onClose(code); 150 | } 151 | 152 | log('killed with code', code); 153 | resetProxy(); 154 | }); 155 | 156 | if (cb) { 157 | cb(); 158 | } 159 | return server; 160 | } 161 | 162 | process.on('SIGTERM', function() { 163 | if (server) { 164 | kill(server.pid, 'SIGTERM'); 165 | } 166 | }); 167 | 168 | process.on('SIGINT', function() { 169 | if (server) { 170 | kill(server.pid, 'SIGINT'); 171 | } 172 | }); 173 | 174 | process.on('exit', function() { 175 | if (server) { 176 | kill(server.pid, 'exit'); 177 | } 178 | }); 179 | 180 | var serverFunctions = { 181 | log, 182 | }; 183 | 184 | serverFunctions.start = function(options, cb, onCloseCb) { 185 | onClose = onCloseCb; 186 | 187 | if (!server || server.exitCode) { 188 | log('initializing start prism'); 189 | return startServer(options, cb); 190 | } 191 | 192 | if (!starting && server.pid) { 193 | log('initializing restart prism', server); 194 | serverFunctions.stop(function() { 195 | startServer(options, cb); 196 | }); 197 | } 198 | }; 199 | 200 | serverFunctions.stop = function(cb) { 201 | if (server) { 202 | log('initializing stop prism'); 203 | kill(server.pid, null, cb); 204 | } else { 205 | log("tried to stop prism, but it's not running!"); 206 | if (cb) { 207 | cb(); 208 | } 209 | } 210 | }; 211 | 212 | serverFunctions.setLogger = function(newLogger) { 213 | logger = newLogger; 214 | }; 215 | 216 | module.exports = serverFunctions; 217 | -------------------------------------------------------------------------------- /app/main.js: -------------------------------------------------------------------------------- 1 | const Path = require('path'); 2 | 3 | // Setup environment variables first 4 | const pjson = require('./package.json'); 5 | process.env.NODE_ENV = process.env.NODE_ENV || pjson.environment || 'development'; 6 | let dotEnvData; 7 | if (process.env.NODE_ENV === 'development') { 8 | dotEnvData = require('dotenv').config({ 9 | path: Path.resolve(__dirname, 'development.env'), 10 | }); 11 | } else { 12 | dotEnvData = require('dotenv').config({ 13 | path: Path.resolve(__dirname, '.env'), 14 | }); 15 | } 16 | const configUtils = require('./utils/config'); 17 | configUtils.setEnvVariables({ variables: dotEnvData ? dotEnvData.parsed : {} }); 18 | configUtils.init(); 19 | 20 | const _ = require('lodash'); 21 | const { app, ipcMain, BrowserWindow, dialog, shell, session, protocol } = require('electron'); 22 | const os = require('os'); 23 | const url = require('url'); 24 | const request = require('request'); 25 | 26 | const windowUtils = require('./utils/windows'); 27 | const networkingUtils = require('./utils/networking'); 28 | const prismUtils = require('./utils/prism'); 29 | const sessionUtils = require('./utils/session'); 30 | const oauthUtils = require('./utils/oauth'); 31 | 32 | networkingUtils.init({ app }); 33 | 34 | // LOGGING 35 | 36 | // Be very careful with use of arguments property below. It is very 37 | // easy to leak! 38 | // 39 | // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#3-managing-arguments 40 | 41 | const _log = function(baseArgs, args) { 42 | if (windowUtils.getMainWindow()) { 43 | windowUtils 44 | .getMainWindow() 45 | .webContents.send.apply( 46 | windowUtils.getMainWindow().webContents, 47 | baseArgs.concat([].slice.call(args)) 48 | ); 49 | } 50 | 51 | // garbage 52 | baseArgs = undefined; 53 | args = undefined; 54 | }; 55 | 56 | // This function sends messages to the mainWindow, to log stuff in developer tools 57 | const browserLoggerBaseArgs = ['console.log']; 58 | const browserLogger = function() { 59 | if (windowUtils.getMainWindow()) { 60 | const args = new Array(arguments.length); 61 | for (let i = 0; i < args.length; ++i) { 62 | // i is always valid index in the arguments object 63 | args[i] = arguments[i]; 64 | } 65 | _log(browserLoggerBaseArgs, args); 66 | } 67 | }; 68 | 69 | const proxyLoggerBaseArgs = ['proxy.log']; 70 | const proxyLogger = function() { 71 | if (windowUtils.getMainWindow()) { 72 | const args = new Array(arguments.length); 73 | for (let i = 0; i < args.length; ++i) { 74 | // i is always valid index in the arguments object 75 | args[i] = arguments[i]; 76 | } 77 | _log(browserLoggerBaseArgs, args); 78 | _log(proxyLoggerBaseArgs, args); 79 | } 80 | }; 81 | 82 | prismUtils.setLogger(proxyLogger); 83 | 84 | // END LOGGING 85 | 86 | // Quit when all windowUtils are closed. 87 | app.on('window-all-closed', () => { 88 | app.quit(); 89 | }); 90 | 91 | // Shutdown the servers on quit 92 | let serversStopped = false; 93 | app.on('will-quit', event => { 94 | if (!serversStopped) { 95 | event.preventDefault(); 96 | prismUtils.stop(() => { 97 | serversStopped = true; 98 | setTimeout(() => { 99 | app.quit(); 100 | }, 200); 101 | }); 102 | } 103 | }); 104 | 105 | app.setAsDefaultProtocolClient('stoplight'); 106 | protocol.registerStandardSchemes(['stoplight'], { secure: true }); 107 | app.on('ready', () => { 108 | protocol.registerFileProtocol( 109 | 'stoplight', 110 | (request, callback) => { 111 | if (!request || !request.url) { 112 | return callback(Path.normalize(`${__dirname}/index.html`)); 113 | } 114 | 115 | /** 116 | * Take out the fake "host". 117 | * 118 | * stoplight://stoplight.io/foo/bar -> /foo/bar 119 | */ 120 | let url = request.url.split('stoplight.local')[1]; 121 | 122 | /** 123 | * If not asset url, then its an app route so we just render the index file. 124 | * 125 | * App route: stoplight://stoplight.io/users/foo 126 | * Asset: stoplight://stoplight.io/js/foo.js (note period in url) 127 | */ 128 | const firstPart = url ? url.split('/')[1] : ''; 129 | if ( 130 | !firstPart || 131 | // basic assets 132 | (!['index.html', 'css', 'static', 'js', 'fonts', 'uploads', 'images'].includes(firstPart) && 133 | // workers 134 | !_.endsWith(firstPart, '.worker.js') && 135 | // map files 136 | !_.endsWith(firstPart, '.js.map')) 137 | ) { 138 | return callback(Path.normalize(`${__dirname}/index.html`)); 139 | } 140 | 141 | callback(Path.normalize(`${__dirname}/build/${url}`)); 142 | }, 143 | err => { 144 | if (err) console.error('Failed to register protocol', err); 145 | } 146 | ); 147 | 148 | oauthUtils.init(); 149 | windowUtils.createWindow({ app, logger: browserLogger }); 150 | 151 | sessionUtils.init({ app, logger: browserLogger }, () => { 152 | windowUtils.loadApp(); 153 | }); 154 | }); 155 | 156 | ipcMain.on('app.relaunch', () => { 157 | app.relaunch(); 158 | app.quit(); 159 | }); 160 | 161 | ipcMain.on('app.showSettings', () => { 162 | if (windowUtils.getMainWindow()) { 163 | windowUtils.getMainWindow().webContents.send('route.settings'); 164 | } 165 | }); 166 | 167 | // 168 | // Events available to the browser 169 | // 170 | 171 | ipcMain.on('proxy.start', (event, options, env) => { 172 | try { 173 | prismUtils.start( 174 | options, 175 | err => { 176 | if (err) { 177 | prismUtils.log('error starting prism server', e); 178 | event.sender.send('proxy.start.reject'); 179 | } else { 180 | event.sender.send('proxy.start.resolve'); 181 | } 182 | }, 183 | code => { 184 | if (windowUtils.getMainWindow()) { 185 | windowUtils.getMainWindow().webContents.send('proxy.stopped', code); 186 | } 187 | } 188 | ); 189 | } catch (e) { 190 | prismUtils.log('error starting prism server', e); 191 | event.sender.send('proxy.start.reject'); 192 | } 193 | }); 194 | 195 | ipcMain.on('proxy.stop', event => { 196 | try { 197 | prismUtils.stop(() => { 198 | event.sender.send('proxy.stop.resolve'); 199 | }); 200 | } catch (e) { 201 | prismUtils.log('error stopping prism', e); 202 | event.sender.send('proxy.stop.reject'); 203 | } 204 | }); 205 | 206 | // DEEP LINKING 207 | app.on('open-url', function(event, url) { 208 | if (windowUtils.getMainWindow()) { 209 | windowUtils.getMainWindow().show(); 210 | } 211 | }); 212 | -------------------------------------------------------------------------------- /app/utils/browser/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs-extra'); 2 | const electron = require('electron'); 3 | const fileWatcher = require('chokidar'); 4 | const OAuth2 = require('simple-oauth2'); 5 | const shortid = require('shortid'); 6 | const _ = require('lodash'); 7 | const Analytics = require('electron-ga').default; 8 | 9 | const { ipcRenderer, remote, clipboard } = electron; 10 | const { app, Menu, shell, dialog } = remote; 11 | const dataPath = app.getPath('appData'); 12 | 13 | const config = remote.require('./utils/config'); 14 | 15 | const env = remote.process.env; 16 | if (env.NODE_ENV === 'development') { 17 | require('devtron').install(); 18 | } 19 | 20 | let analytics; 21 | const gaKey = config.get('integrations.ga.key'); 22 | if (gaKey) { 23 | try { 24 | analytics = new Analytics(gaKey); 25 | } catch (err) { 26 | console.error('Google Analytics error:', err); 27 | } 28 | } 29 | 30 | const createOAuth2 = ({ client_id, client_secret, access_token_url, authorize_url }) => 31 | OAuth2.create({ 32 | client: { 33 | id: client_id, 34 | secret: client_secret, 35 | }, 36 | auth: { 37 | tokenHost: access_token_url, 38 | tokenPath: ' ', 39 | authorizeHost: authorize_url, 40 | authorizePath: ' ', 41 | }, 42 | }); 43 | 44 | // The values available to our dashboard 45 | global.Electron = { 46 | fs, 47 | shell, 48 | dialog, 49 | fileWatcher, 50 | ipc: ipcRenderer, 51 | dataPath, 52 | config: { 53 | get: path => { 54 | return _.cloneDeep(config.get(path)); 55 | }, 56 | set: (path, value) => { 57 | return config.set(path, JSON.parse(JSON.stringify(value))); 58 | }, 59 | }, 60 | listeners: { 61 | onRouteDidChange: ({ userId }) => { 62 | if (analytics) { 63 | setTimeout(() => { 64 | analytics.send('pageview', { 65 | aid: 'com.stoplight.app', 66 | uid: userId, 67 | dl: window.location.toString(), 68 | dp: `${window.location.pathname}${window.location.search}`, 69 | dh: window.location.hostname, 70 | dt: document.title, 71 | }); 72 | }, 50); 73 | } 74 | }, 75 | }, 76 | events: { 77 | onOpenFile: null, // app must implement this to hook into file open events 78 | onOpenUrl: null, // app must implement this to hook into url open events 79 | onOpenAbout: null, // app must implement this to hook into open about 80 | }, 81 | env: config.getEnvVariables(), 82 | oauth: { 83 | //credentials: { scope, client_id, client_secret, access_token_url, authorize_url } 84 | getAuthorizeURL: credentials => { 85 | const oauth2instance = createOAuth2(credentials); 86 | 87 | return oauth2instance.authorizationCode.authorizeURL({ 88 | scope: credentials.scope, 89 | state: shortid.generate(), 90 | }); 91 | }, 92 | 93 | /** 94 | * 95 | * @param credentials - { code, scope, client_id, client_secret, access_token_url, authorize_url } 96 | * @return {Promise} 97 | */ 98 | getAccessToken: credentials => { 99 | const oauth2instance = createOAuth2(credentials); 100 | 101 | return oauth2instance.authorizationCode.getToken({ 102 | code: credentials.code, 103 | }); 104 | }, 105 | }, 106 | }; 107 | 108 | app.on('open-file', (e, path) => { 109 | if (Electron.events.onOpenFile) { 110 | Electron.events.onOpenFile(e, path); 111 | } 112 | }); 113 | app.on('open-url', (e, url) => { 114 | if (Electron.events.onOpenUrl) { 115 | Electron.events.onOpenUrl(e, url); 116 | } 117 | }); 118 | 119 | // BUILD APP MENU 120 | 121 | let mainSubmenu = [ 122 | { 123 | label: 'About Stoplight', 124 | click: function() { 125 | if (Electron.events.onOpenAbout) { 126 | Electron.events.onOpenAbout(); 127 | } 128 | }, 129 | }, 130 | { 131 | label: 'Check for Updates', 132 | click: function() { 133 | if (Electron.events.onOpenAbout) { 134 | Electron.events.onOpenAbout(); 135 | } 136 | 137 | if (process.platform !== 'linux') { 138 | ipcRenderer.send('updater.check'); 139 | } 140 | }, 141 | }, 142 | { 143 | type: 'separator', 144 | }, 145 | { 146 | label: 'Preferences', 147 | click() { 148 | ipcRenderer.send('app.showSettings'); 149 | }, 150 | }, 151 | { 152 | type: 'separator', 153 | }, 154 | ]; 155 | 156 | if (process.platform === 'darwin') { 157 | mainSubmenu = mainSubmenu.concat([ 158 | { 159 | role: 'services', 160 | submenu: [], 161 | }, 162 | { 163 | type: 'separator', 164 | }, 165 | { 166 | role: 'hide', 167 | }, 168 | { 169 | role: 'hideothers', 170 | }, 171 | { 172 | role: 'unhide', 173 | }, 174 | { 175 | type: 'separator', 176 | }, 177 | ]); 178 | } else { 179 | // linux or windows 180 | } 181 | 182 | mainSubmenu = mainSubmenu.concat([ 183 | { 184 | role: 'quit', 185 | }, 186 | ]); 187 | 188 | const template = [ 189 | { 190 | label: app.getName(), 191 | submenu: mainSubmenu, 192 | }, 193 | // TODO once we support local git repos 194 | // { 195 | // label: "File", 196 | // submenu: [ 197 | // { 198 | // label: "Open...", 199 | // accelerator: "CmdOrCtrl+o", 200 | // click() { 201 | // dialog.showOpenDialog( 202 | // { 203 | // properties: ["openFile"], 204 | // filters: [ 205 | // { name: "JSON Files", extensions: ["json"] }, 206 | // { name: "YAML Files", extensions: ["yaml", "yml"] } 207 | // ] 208 | // }, 209 | // filePaths => { 210 | // if (filePaths) { 211 | // if (Electron.events.onOpenFile) { 212 | // Electron.events.onOpenFile(null, filePaths[0]); 213 | // } 214 | // } 215 | // } 216 | // ); 217 | // } 218 | // } 219 | // ] 220 | // }, 221 | { 222 | label: 'Edit', 223 | submenu: [ 224 | { 225 | role: 'undo', 226 | }, 227 | { 228 | role: 'redo', 229 | }, 230 | { 231 | type: 'separator', 232 | }, 233 | { 234 | label: 'Back', 235 | accelerator: 'CmdOrCtrl+[', 236 | click(item, focusedWindow) { 237 | const contents = focusedWindow ? focusedWindow.webContents : null; 238 | if (contents && contents.canGoBack()) { 239 | contents.goBack(); 240 | } 241 | }, 242 | }, 243 | { 244 | label: 'Forward', 245 | accelerator: 'CmdOrCtrl+]', 246 | click(item, focusedWindow) { 247 | const contents = focusedWindow ? focusedWindow.webContents : null; 248 | if (contents && contents.canGoForward()) { 249 | contents.goForward(); 250 | } 251 | }, 252 | }, 253 | { 254 | type: 'separator', 255 | }, 256 | { 257 | label: 'Copy Current Location to Clipboard', 258 | accelerator: 'CmdOrCtrl+Shift+C', 259 | click(item, focusedWindow) { 260 | const contents = focusedWindow ? focusedWindow.webContents : null; 261 | if (contents) { 262 | let url = contents.getURL(); 263 | if (url) { 264 | url = url.replace('stoplight://stoplight.local', ''); 265 | 266 | clipboard.writeText(url); 267 | new Notification('Copied!', { 268 | title: 'Copied!', 269 | body: url, 270 | }); 271 | } 272 | } 273 | }, 274 | }, 275 | { 276 | type: 'separator', 277 | }, 278 | { 279 | role: 'cut', 280 | }, 281 | { 282 | role: 'copy', 283 | }, 284 | { 285 | role: 'paste', 286 | }, 287 | { 288 | role: 'pasteandmatchstyle', 289 | }, 290 | { 291 | role: 'delete', 292 | }, 293 | { 294 | role: 'selectall', 295 | }, 296 | ], 297 | }, 298 | { 299 | label: 'View', 300 | submenu: [ 301 | { 302 | role: 'reload', 303 | }, 304 | { 305 | role: 'toggledevtools', 306 | }, 307 | { 308 | type: 'separator', 309 | }, 310 | { 311 | role: 'resetzoom', 312 | }, 313 | { 314 | role: 'zoomin', 315 | }, 316 | { 317 | role: 'zoomout', 318 | }, 319 | { 320 | type: 'separator', 321 | }, 322 | { 323 | role: 'togglefullscreen', 324 | }, 325 | ], 326 | }, 327 | { 328 | role: 'window', 329 | submenu: [ 330 | { 331 | role: 'minimize', 332 | }, 333 | { 334 | role: 'close', 335 | }, 336 | ], 337 | }, 338 | { 339 | role: 'help', 340 | submenu: [ 341 | { 342 | label: 'Learn More', 343 | click() { 344 | shell.openExternal('https://help.stoplight.io'); 345 | }, 346 | }, 347 | ], 348 | }, 349 | ]; 350 | 351 | if (process.platform === 'darwin') { 352 | // Edit menu. 353 | template[2].submenu.push( 354 | { 355 | type: 'separator', 356 | }, 357 | { 358 | label: 'Speech', 359 | submenu: [ 360 | { 361 | role: 'startspeaking', 362 | }, 363 | { 364 | role: 'stopspeaking', 365 | }, 366 | ], 367 | } 368 | ); 369 | 370 | // Window menu. 371 | template[4].submenu = [ 372 | { 373 | label: 'Close', 374 | accelerator: 'CmdOrCtrl+W', 375 | role: 'close', 376 | }, 377 | { 378 | label: 'Minimize', 379 | accelerator: 'CmdOrCtrl+M', 380 | role: 'minimize', 381 | }, 382 | { 383 | label: 'Zoom', 384 | role: 'zoom', 385 | }, 386 | { 387 | type: 'separator', 388 | }, 389 | { 390 | label: 'Bring All to Front', 391 | role: 'front', 392 | }, 393 | ]; 394 | } 395 | 396 | const menu = Menu.buildFromTemplate(template); 397 | Menu.setApplicationMenu(menu); 398 | 399 | // DEV TOOLS LOGGING 400 | 401 | ipcRenderer.on('console.log', (...args) => { 402 | console.log.apply(console, args.slice(1)); 403 | }); 404 | 405 | ipcRenderer.on('console.error', (...args) => { 406 | console.error.apply(console, args.slice(1)); 407 | }); 408 | -------------------------------------------------------------------------------- /app/LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /app/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.1" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 8 | 9 | ajv@^4.9.1: 10 | version "4.11.8" 11 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 12 | dependencies: 13 | co "^4.6.0" 14 | json-stable-stringify "^1.0.1" 15 | 16 | ajv@^5.1.0: 17 | version "5.5.2" 18 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 19 | dependencies: 20 | co "^4.6.0" 21 | fast-deep-equal "^1.0.0" 22 | fast-json-stable-stringify "^2.0.0" 23 | json-schema-traverse "^0.3.0" 24 | 25 | ansi-regex@^2.0.0: 26 | version "2.1.1" 27 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 28 | 29 | anymatch@^1.3.0: 30 | version "1.3.2" 31 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 32 | dependencies: 33 | micromatch "^2.1.5" 34 | normalize-path "^2.0.0" 35 | 36 | aproba@^1.0.3: 37 | version "1.2.0" 38 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 39 | 40 | are-we-there-yet@~1.1.2: 41 | version "1.1.4" 42 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 43 | dependencies: 44 | delegates "^1.0.0" 45 | readable-stream "^2.0.6" 46 | 47 | argparse@^1.0.7: 48 | version "1.0.10" 49 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 50 | dependencies: 51 | sprintf-js "~1.0.2" 52 | 53 | arr-diff@^2.0.0: 54 | version "2.0.0" 55 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 56 | dependencies: 57 | arr-flatten "^1.0.1" 58 | 59 | arr-flatten@^1.0.1: 60 | version "1.1.0" 61 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 62 | 63 | array-unique@^0.2.1: 64 | version "0.2.1" 65 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 66 | 67 | asn1@~0.2.3: 68 | version "0.2.3" 69 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 70 | 71 | assert-plus@1.0.0, assert-plus@^1.0.0: 72 | version "1.0.0" 73 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 74 | 75 | assert-plus@^0.2.0: 76 | version "0.2.0" 77 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 78 | 79 | async-each@^1.0.0: 80 | version "1.0.1" 81 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 82 | 83 | asynckit@^0.4.0: 84 | version "0.4.0" 85 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 86 | 87 | aws-sign2@~0.6.0: 88 | version "0.6.0" 89 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 90 | 91 | aws-sign2@~0.7.0: 92 | version "0.7.0" 93 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 94 | 95 | aws4@^1.2.1, aws4@^1.6.0: 96 | version "1.7.0" 97 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 98 | 99 | balanced-match@^1.0.0: 100 | version "1.0.0" 101 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 102 | 103 | bcrypt-pbkdf@^1.0.0: 104 | version "1.0.1" 105 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 106 | dependencies: 107 | tweetnacl "^0.14.3" 108 | 109 | binary-extensions@^1.0.0: 110 | version "1.11.0" 111 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 112 | 113 | block-stream@*: 114 | version "0.0.9" 115 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 116 | dependencies: 117 | inherits "~2.0.0" 118 | 119 | bluebird-lst@^1.0.5: 120 | version "1.0.5" 121 | resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.5.tgz#bebc83026b7e92a72871a3dc599e219cbfb002a9" 122 | dependencies: 123 | bluebird "^3.5.1" 124 | 125 | bluebird@^3.5.0, bluebird@^3.5.1: 126 | version "3.5.1" 127 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 128 | 129 | boom@2.x.x: 130 | version "2.10.1" 131 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 132 | dependencies: 133 | hoek "2.x.x" 134 | 135 | boom@4.x.x: 136 | version "4.3.1" 137 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 138 | dependencies: 139 | hoek "4.x.x" 140 | 141 | boom@5.x.x: 142 | version "5.2.0" 143 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 144 | dependencies: 145 | hoek "4.x.x" 146 | 147 | brace-expansion@^1.1.7: 148 | version "1.1.11" 149 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 150 | dependencies: 151 | balanced-match "^1.0.0" 152 | concat-map "0.0.1" 153 | 154 | braces@^1.8.2: 155 | version "1.8.5" 156 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 157 | dependencies: 158 | expand-range "^1.8.1" 159 | preserve "^0.2.0" 160 | repeat-element "^1.1.2" 161 | 162 | buffer-from@^1.0.0: 163 | version "1.1.0" 164 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 165 | 166 | builder-util-runtime@~4.2.1: 167 | version "4.2.1" 168 | resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.2.1.tgz#0caa358f1331d70680010141ca591952b69b35bc" 169 | dependencies: 170 | bluebird-lst "^1.0.5" 171 | debug "^3.1.0" 172 | fs-extra-p "^4.6.0" 173 | sax "^1.2.4" 174 | 175 | caseless@~0.12.0: 176 | version "0.12.0" 177 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 178 | 179 | chokidar@1.7.x: 180 | version "1.7.0" 181 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 182 | dependencies: 183 | anymatch "^1.3.0" 184 | async-each "^1.0.0" 185 | glob-parent "^2.0.0" 186 | inherits "^2.0.1" 187 | is-binary-path "^1.0.0" 188 | is-glob "^2.0.0" 189 | path-is-absolute "^1.0.0" 190 | readdirp "^2.0.0" 191 | optionalDependencies: 192 | fsevents "^1.0.0" 193 | 194 | co@^4.6.0: 195 | version "4.6.0" 196 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 197 | 198 | code-point-at@^1.0.0: 199 | version "1.1.0" 200 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 201 | 202 | combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: 203 | version "1.0.6" 204 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 205 | dependencies: 206 | delayed-stream "~1.0.0" 207 | 208 | concat-map@0.0.1: 209 | version "0.0.1" 210 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 211 | 212 | conf@^1.3.0: 213 | version "1.4.0" 214 | resolved "https://registry.yarnpkg.com/conf/-/conf-1.4.0.tgz#1ea66c9d7a9b601674a5bb9d2b8dc3c726625e67" 215 | dependencies: 216 | dot-prop "^4.1.0" 217 | env-paths "^1.0.0" 218 | make-dir "^1.0.0" 219 | pkg-up "^2.0.0" 220 | write-file-atomic "^2.3.0" 221 | 222 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 223 | version "1.1.0" 224 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 225 | 226 | core-util-is@1.0.2, core-util-is@~1.0.0: 227 | version "1.0.2" 228 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 229 | 230 | cryptiles@2.x.x: 231 | version "2.0.5" 232 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 233 | dependencies: 234 | boom "2.x.x" 235 | 236 | cryptiles@3.x.x: 237 | version "3.1.2" 238 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 239 | dependencies: 240 | boom "5.x.x" 241 | 242 | dashdash@^1.12.0: 243 | version "1.14.1" 244 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 245 | dependencies: 246 | assert-plus "^1.0.0" 247 | 248 | date-fns@^1.3.0: 249 | version "1.29.0" 250 | resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" 251 | 252 | debug@^2.2.0: 253 | version "2.6.9" 254 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 255 | dependencies: 256 | ms "2.0.0" 257 | 258 | debug@^3.1.0: 259 | version "3.1.0" 260 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 261 | dependencies: 262 | ms "2.0.0" 263 | 264 | deep-equal@^1.0.1: 265 | version "1.0.1" 266 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 267 | 268 | deep-extend@~0.4.0: 269 | version "0.4.2" 270 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 271 | 272 | delayed-stream@~1.0.0: 273 | version "1.0.0" 274 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 275 | 276 | delegates@^1.0.0: 277 | version "1.0.0" 278 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 279 | 280 | detect-libc@^1.0.2: 281 | version "1.0.3" 282 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 283 | 284 | dot-prop@^4.1.0: 285 | version "4.2.0" 286 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 287 | dependencies: 288 | is-obj "^1.0.0" 289 | 290 | dotenv@5.0.x: 291 | version "5.0.1" 292 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" 293 | 294 | duplexer@~0.1.1: 295 | version "0.1.1" 296 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 297 | 298 | ecc-jsbn@~0.1.1: 299 | version "0.1.1" 300 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 301 | dependencies: 302 | jsbn "~0.1.0" 303 | 304 | electron-ga@^1.0.6: 305 | version "1.0.6" 306 | resolved "https://registry.yarnpkg.com/electron-ga/-/electron-ga-1.0.6.tgz#6a1a911902a1d5c75433424d81b8083d5c9350fc" 307 | dependencies: 308 | node-machine-id "^1.1.9" 309 | qs "^6.5.1" 310 | 311 | electron-is-dev@^0.3.0: 312 | version "0.3.0" 313 | resolved "https://registry.yarnpkg.com/electron-is-dev/-/electron-is-dev-0.3.0.tgz#14e6fda5c68e9e4ecbeff9ccf037cbd7c05c5afe" 314 | 315 | electron-store@1.3.x: 316 | version "1.3.0" 317 | resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-1.3.0.tgz#ee488a28a61fb982fd35b658fb9cb6331eb201f8" 318 | dependencies: 319 | conf "^1.3.0" 320 | 321 | electron-updater@2.21.10: 322 | version "2.21.10" 323 | resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-2.21.10.tgz#aa66757ebf966f4247f247a8433af45cfe8e93b0" 324 | dependencies: 325 | bluebird-lst "^1.0.5" 326 | builder-util-runtime "~4.2.1" 327 | electron-is-dev "^0.3.0" 328 | fs-extra-p "^4.6.0" 329 | js-yaml "^3.11.0" 330 | lazy-val "^1.0.3" 331 | lodash.isequal "^4.5.0" 332 | semver "^5.5.0" 333 | source-map-support "^0.5.5" 334 | 335 | electron-window-state@4.1.x: 336 | version "4.1.1" 337 | resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d" 338 | dependencies: 339 | deep-equal "^1.0.1" 340 | jsonfile "^2.2.3" 341 | mkdirp "^0.5.1" 342 | 343 | env-paths@^1.0.0: 344 | version "1.0.0" 345 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" 346 | 347 | esprima@^4.0.0: 348 | version "4.0.0" 349 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 350 | 351 | event-stream@~3.3.0: 352 | version "3.3.4" 353 | resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 354 | dependencies: 355 | duplexer "~0.1.1" 356 | from "~0" 357 | map-stream "~0.1.0" 358 | pause-stream "0.0.11" 359 | split "0.3" 360 | stream-combiner "~0.0.4" 361 | through "~2.3.1" 362 | 363 | expand-brackets@^0.1.4: 364 | version "0.1.5" 365 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 366 | dependencies: 367 | is-posix-bracket "^0.1.0" 368 | 369 | expand-range@^1.8.1: 370 | version "1.8.2" 371 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 372 | dependencies: 373 | fill-range "^2.1.0" 374 | 375 | extend@~3.0.0, extend@~3.0.1: 376 | version "3.0.1" 377 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 378 | 379 | extglob@^0.3.1: 380 | version "0.3.2" 381 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 382 | dependencies: 383 | is-extglob "^1.0.0" 384 | 385 | extsprintf@1.3.0: 386 | version "1.3.0" 387 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 388 | 389 | extsprintf@^1.2.0: 390 | version "1.4.0" 391 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 392 | 393 | fast-deep-equal@^1.0.0: 394 | version "1.1.0" 395 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 396 | 397 | fast-json-stable-stringify@^2.0.0: 398 | version "2.0.0" 399 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 400 | 401 | filename-regex@^2.0.0: 402 | version "2.0.1" 403 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 404 | 405 | fill-range@^2.1.0: 406 | version "2.2.3" 407 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 408 | dependencies: 409 | is-number "^2.1.0" 410 | isobject "^2.0.0" 411 | randomatic "^1.1.3" 412 | repeat-element "^1.1.2" 413 | repeat-string "^1.5.2" 414 | 415 | find-up@^2.1.0: 416 | version "2.1.0" 417 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 418 | dependencies: 419 | locate-path "^2.0.0" 420 | 421 | for-in@^1.0.1: 422 | version "1.0.2" 423 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 424 | 425 | for-own@^0.1.4: 426 | version "0.1.5" 427 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 428 | dependencies: 429 | for-in "^1.0.1" 430 | 431 | forever-agent@~0.6.1: 432 | version "0.6.1" 433 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 434 | 435 | form-data@~2.1.1: 436 | version "2.1.4" 437 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 438 | dependencies: 439 | asynckit "^0.4.0" 440 | combined-stream "^1.0.5" 441 | mime-types "^2.1.12" 442 | 443 | form-data@~2.3.1: 444 | version "2.3.2" 445 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 446 | dependencies: 447 | asynckit "^0.4.0" 448 | combined-stream "1.0.6" 449 | mime-types "^2.1.12" 450 | 451 | from@~0: 452 | version "0.1.7" 453 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 454 | 455 | fs-extra-p@^4.6.0: 456 | version "4.6.0" 457 | resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.6.0.tgz#c7b7117f0dcf8a99c9b2ed589067c960abcf3ef9" 458 | dependencies: 459 | bluebird-lst "^1.0.5" 460 | fs-extra "^6.0.0" 461 | 462 | fs-extra@5.0.x: 463 | version "5.0.0" 464 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" 465 | dependencies: 466 | graceful-fs "^4.1.2" 467 | jsonfile "^4.0.0" 468 | universalify "^0.1.0" 469 | 470 | fs-extra@^6.0.0: 471 | version "6.0.1" 472 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" 473 | dependencies: 474 | graceful-fs "^4.1.2" 475 | jsonfile "^4.0.0" 476 | universalify "^0.1.0" 477 | 478 | fs.realpath@^1.0.0: 479 | version "1.0.0" 480 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 481 | 482 | fsevents@^1.0.0: 483 | version "1.1.3" 484 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" 485 | dependencies: 486 | nan "^2.3.0" 487 | node-pre-gyp "^0.6.39" 488 | 489 | fstream-ignore@^1.0.5: 490 | version "1.0.5" 491 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 492 | dependencies: 493 | fstream "^1.0.0" 494 | inherits "2" 495 | minimatch "^3.0.0" 496 | 497 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 498 | version "1.0.11" 499 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 500 | dependencies: 501 | graceful-fs "^4.1.2" 502 | inherits "~2.0.0" 503 | mkdirp ">=0.5 0" 504 | rimraf "2" 505 | 506 | gauge@~2.7.3: 507 | version "2.7.4" 508 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 509 | dependencies: 510 | aproba "^1.0.3" 511 | console-control-strings "^1.0.0" 512 | has-unicode "^2.0.0" 513 | object-assign "^4.1.0" 514 | signal-exit "^3.0.0" 515 | string-width "^1.0.1" 516 | strip-ansi "^3.0.1" 517 | wide-align "^1.1.0" 518 | 519 | getpass@^0.1.1: 520 | version "0.1.7" 521 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 522 | dependencies: 523 | assert-plus "^1.0.0" 524 | 525 | glob-base@^0.3.0: 526 | version "0.3.0" 527 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 528 | dependencies: 529 | glob-parent "^2.0.0" 530 | is-glob "^2.0.0" 531 | 532 | glob-parent@^2.0.0: 533 | version "2.0.0" 534 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 535 | dependencies: 536 | is-glob "^2.0.0" 537 | 538 | glob@^7.0.5: 539 | version "7.1.2" 540 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 541 | dependencies: 542 | fs.realpath "^1.0.0" 543 | inflight "^1.0.4" 544 | inherits "2" 545 | minimatch "^3.0.4" 546 | once "^1.3.0" 547 | path-is-absolute "^1.0.0" 548 | 549 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: 550 | version "4.1.11" 551 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 552 | 553 | har-schema@^1.0.5: 554 | version "1.0.5" 555 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 556 | 557 | har-schema@^2.0.0: 558 | version "2.0.0" 559 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 560 | 561 | har-validator@~4.2.1: 562 | version "4.2.1" 563 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 564 | dependencies: 565 | ajv "^4.9.1" 566 | har-schema "^1.0.5" 567 | 568 | har-validator@~5.0.3: 569 | version "5.0.3" 570 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 571 | dependencies: 572 | ajv "^5.1.0" 573 | har-schema "^2.0.0" 574 | 575 | has-unicode@^2.0.0: 576 | version "2.0.1" 577 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 578 | 579 | hawk@3.1.3, hawk@~3.1.3: 580 | version "3.1.3" 581 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 582 | dependencies: 583 | boom "2.x.x" 584 | cryptiles "2.x.x" 585 | hoek "2.x.x" 586 | sntp "1.x.x" 587 | 588 | hawk@~6.0.2: 589 | version "6.0.2" 590 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 591 | dependencies: 592 | boom "4.x.x" 593 | cryptiles "3.x.x" 594 | hoek "4.x.x" 595 | sntp "2.x.x" 596 | 597 | hoek@2.x.x: 598 | version "2.16.3" 599 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 600 | 601 | hoek@4.x.x: 602 | version "4.2.1" 603 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" 604 | 605 | http-signature@~1.1.0: 606 | version "1.1.1" 607 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 608 | dependencies: 609 | assert-plus "^0.2.0" 610 | jsprim "^1.2.2" 611 | sshpk "^1.7.0" 612 | 613 | http-signature@~1.2.0: 614 | version "1.2.0" 615 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 616 | dependencies: 617 | assert-plus "^1.0.0" 618 | jsprim "^1.2.2" 619 | sshpk "^1.7.0" 620 | 621 | imurmurhash@^0.1.4: 622 | version "0.1.4" 623 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 624 | 625 | inflight@^1.0.4: 626 | version "1.0.6" 627 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 628 | dependencies: 629 | once "^1.3.0" 630 | wrappy "1" 631 | 632 | inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: 633 | version "2.0.3" 634 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 635 | 636 | ini@~1.3.0: 637 | version "1.3.5" 638 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 639 | 640 | ip@1.x.x: 641 | version "1.1.5" 642 | resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 643 | 644 | is-binary-path@^1.0.0: 645 | version "1.0.1" 646 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 647 | dependencies: 648 | binary-extensions "^1.0.0" 649 | 650 | is-buffer@^1.1.5: 651 | version "1.1.6" 652 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 653 | 654 | is-dotfile@^1.0.0: 655 | version "1.0.3" 656 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 657 | 658 | is-equal-shallow@^0.1.3: 659 | version "0.1.3" 660 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 661 | dependencies: 662 | is-primitive "^2.0.0" 663 | 664 | is-extendable@^0.1.1: 665 | version "0.1.1" 666 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 667 | 668 | is-extglob@^1.0.0: 669 | version "1.0.0" 670 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 671 | 672 | is-fullwidth-code-point@^1.0.0: 673 | version "1.0.0" 674 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 675 | dependencies: 676 | number-is-nan "^1.0.0" 677 | 678 | is-glob@^2.0.0, is-glob@^2.0.1: 679 | version "2.0.1" 680 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 681 | dependencies: 682 | is-extglob "^1.0.0" 683 | 684 | is-number@^2.1.0: 685 | version "2.1.0" 686 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 687 | dependencies: 688 | kind-of "^3.0.2" 689 | 690 | is-number@^3.0.0: 691 | version "3.0.0" 692 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 693 | dependencies: 694 | kind-of "^3.0.2" 695 | 696 | is-obj@^1.0.0: 697 | version "1.0.1" 698 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 699 | 700 | is-posix-bracket@^0.1.0: 701 | version "0.1.1" 702 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 703 | 704 | is-primitive@^2.0.0: 705 | version "2.0.0" 706 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 707 | 708 | is-typedarray@~1.0.0: 709 | version "1.0.0" 710 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 711 | 712 | isarray@1.0.0, isarray@~1.0.0: 713 | version "1.0.0" 714 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 715 | 716 | isemail@3.x.x: 717 | version "3.1.2" 718 | resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.2.tgz#937cf919002077999a73ea8b1951d590e84e01dd" 719 | dependencies: 720 | punycode "2.x.x" 721 | 722 | isobject@^2.0.0: 723 | version "2.1.0" 724 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 725 | dependencies: 726 | isarray "1.0.0" 727 | 728 | isstream@~0.1.2: 729 | version "0.1.2" 730 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 731 | 732 | joi@^12.0.0: 733 | version "12.0.0" 734 | resolved "https://registry.yarnpkg.com/joi/-/joi-12.0.0.tgz#46f55e68f4d9628f01bbb695902c8b307ad8d33a" 735 | dependencies: 736 | hoek "4.x.x" 737 | isemail "3.x.x" 738 | topo "2.x.x" 739 | 740 | js-yaml@^3.11.0: 741 | version "3.11.0" 742 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 743 | dependencies: 744 | argparse "^1.0.7" 745 | esprima "^4.0.0" 746 | 747 | jsbn@~0.1.0: 748 | version "0.1.1" 749 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 750 | 751 | json-schema-traverse@^0.3.0: 752 | version "0.3.1" 753 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 754 | 755 | json-schema@0.2.3: 756 | version "0.2.3" 757 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 758 | 759 | json-stable-stringify@^1.0.1: 760 | version "1.0.1" 761 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 762 | dependencies: 763 | jsonify "~0.0.0" 764 | 765 | json-stringify-safe@~5.0.1: 766 | version "5.0.1" 767 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 768 | 769 | jsonfile@^2.2.3: 770 | version "2.4.0" 771 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" 772 | optionalDependencies: 773 | graceful-fs "^4.1.6" 774 | 775 | jsonfile@^4.0.0: 776 | version "4.0.0" 777 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 778 | optionalDependencies: 779 | graceful-fs "^4.1.6" 780 | 781 | jsonify@~0.0.0: 782 | version "0.0.0" 783 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 784 | 785 | jsprim@^1.2.2: 786 | version "1.4.1" 787 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 788 | dependencies: 789 | assert-plus "1.0.0" 790 | extsprintf "1.3.0" 791 | json-schema "0.2.3" 792 | verror "1.10.0" 793 | 794 | kind-of@^3.0.2: 795 | version "3.2.2" 796 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 797 | dependencies: 798 | is-buffer "^1.1.5" 799 | 800 | kind-of@^4.0.0: 801 | version "4.0.0" 802 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 803 | dependencies: 804 | is-buffer "^1.1.5" 805 | 806 | lazy-val@^1.0.3: 807 | version "1.0.3" 808 | resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc" 809 | 810 | locate-path@^2.0.0: 811 | version "2.0.0" 812 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 813 | dependencies: 814 | p-locate "^2.0.0" 815 | path-exists "^3.0.0" 816 | 817 | lodash.isequal@^4.5.0: 818 | version "4.5.0" 819 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 820 | 821 | lodash@4.x.x: 822 | version "4.17.5" 823 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" 824 | 825 | make-dir@^1.0.0: 826 | version "1.2.0" 827 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" 828 | dependencies: 829 | pify "^3.0.0" 830 | 831 | map-stream@~0.1.0: 832 | version "0.1.0" 833 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 834 | 835 | micromatch@^2.1.5: 836 | version "2.3.11" 837 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 838 | dependencies: 839 | arr-diff "^2.0.0" 840 | array-unique "^0.2.1" 841 | braces "^1.8.2" 842 | expand-brackets "^0.1.4" 843 | extglob "^0.3.1" 844 | filename-regex "^2.0.0" 845 | is-extglob "^1.0.0" 846 | is-glob "^2.0.1" 847 | kind-of "^3.0.2" 848 | normalize-path "^2.0.1" 849 | object.omit "^2.0.0" 850 | parse-glob "^3.0.4" 851 | regex-cache "^0.4.2" 852 | 853 | mime-db@~1.33.0: 854 | version "1.33.0" 855 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 856 | 857 | mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: 858 | version "2.1.18" 859 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 860 | dependencies: 861 | mime-db "~1.33.0" 862 | 863 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 864 | version "3.0.4" 865 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 866 | dependencies: 867 | brace-expansion "^1.1.7" 868 | 869 | minimist@0.0.8: 870 | version "0.0.8" 871 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 872 | 873 | minimist@^1.2.0: 874 | version "1.2.0" 875 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 876 | 877 | "mkdirp@>=0.5 0", mkdirp@^0.5.1: 878 | version "0.5.1" 879 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 880 | dependencies: 881 | minimist "0.0.8" 882 | 883 | ms@2.0.0: 884 | version "2.0.0" 885 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 886 | 887 | nan@^2.3.0: 888 | version "2.10.0" 889 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" 890 | 891 | node-machine-id@^1.1.9: 892 | version "1.1.10" 893 | resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.10.tgz#b4cb8f01b25b90d4e0675be00df30e61ee75179b" 894 | 895 | node-pre-gyp@^0.6.39: 896 | version "0.6.39" 897 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" 898 | dependencies: 899 | detect-libc "^1.0.2" 900 | hawk "3.1.3" 901 | mkdirp "^0.5.1" 902 | nopt "^4.0.1" 903 | npmlog "^4.0.2" 904 | rc "^1.1.7" 905 | request "2.81.0" 906 | rimraf "^2.6.1" 907 | semver "^5.3.0" 908 | tar "^2.2.1" 909 | tar-pack "^3.4.0" 910 | 911 | nopt@^4.0.1: 912 | version "4.0.1" 913 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 914 | dependencies: 915 | abbrev "1" 916 | osenv "^0.1.4" 917 | 918 | normalize-path@^2.0.0, normalize-path@^2.0.1: 919 | version "2.1.1" 920 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 921 | dependencies: 922 | remove-trailing-separator "^1.0.1" 923 | 924 | npmlog@^4.0.2: 925 | version "4.1.2" 926 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 927 | dependencies: 928 | are-we-there-yet "~1.1.2" 929 | console-control-strings "~1.1.0" 930 | gauge "~2.7.3" 931 | set-blocking "~2.0.0" 932 | 933 | number-is-nan@^1.0.0: 934 | version "1.0.1" 935 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 936 | 937 | oauth-sign@~0.8.1, oauth-sign@~0.8.2: 938 | version "0.8.2" 939 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 940 | 941 | object-assign@^4.1.0: 942 | version "4.1.1" 943 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 944 | 945 | object.omit@^2.0.0: 946 | version "2.0.1" 947 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 948 | dependencies: 949 | for-own "^0.1.4" 950 | is-extendable "^0.1.1" 951 | 952 | once@^1.3.0, once@^1.3.3: 953 | version "1.4.0" 954 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 955 | dependencies: 956 | wrappy "1" 957 | 958 | os-homedir@^1.0.0: 959 | version "1.0.2" 960 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 961 | 962 | os-tmpdir@^1.0.0: 963 | version "1.0.2" 964 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 965 | 966 | osenv@^0.1.4: 967 | version "0.1.5" 968 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 969 | dependencies: 970 | os-homedir "^1.0.0" 971 | os-tmpdir "^1.0.0" 972 | 973 | p-limit@^1.1.0: 974 | version "1.2.0" 975 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 976 | dependencies: 977 | p-try "^1.0.0" 978 | 979 | p-locate@^2.0.0: 980 | version "2.0.0" 981 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 982 | dependencies: 983 | p-limit "^1.1.0" 984 | 985 | p-try@^1.0.0: 986 | version "1.0.0" 987 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 988 | 989 | parse-glob@^3.0.4: 990 | version "3.0.4" 991 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 992 | dependencies: 993 | glob-base "^0.3.0" 994 | is-dotfile "^1.0.0" 995 | is-extglob "^1.0.0" 996 | is-glob "^2.0.0" 997 | 998 | path-exists@^3.0.0: 999 | version "3.0.0" 1000 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1001 | 1002 | path-is-absolute@^1.0.0: 1003 | version "1.0.1" 1004 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1005 | 1006 | pause-stream@0.0.11: 1007 | version "0.0.11" 1008 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1009 | dependencies: 1010 | through "~2.3" 1011 | 1012 | performance-now@^0.2.0: 1013 | version "0.2.0" 1014 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 1015 | 1016 | performance-now@^2.1.0: 1017 | version "2.1.0" 1018 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1019 | 1020 | pify@^3.0.0: 1021 | version "3.0.0" 1022 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1023 | 1024 | pkg-up@^2.0.0: 1025 | version "2.0.0" 1026 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" 1027 | dependencies: 1028 | find-up "^2.1.0" 1029 | 1030 | preserve@^0.2.0: 1031 | version "0.2.0" 1032 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1033 | 1034 | process-nextick-args@~2.0.0: 1035 | version "2.0.0" 1036 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1037 | 1038 | ps-tree@1.x.x: 1039 | version "1.1.0" 1040 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" 1041 | dependencies: 1042 | event-stream "~3.3.0" 1043 | 1044 | punycode@2.x.x: 1045 | version "2.1.0" 1046 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" 1047 | 1048 | punycode@^1.4.1: 1049 | version "1.4.1" 1050 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1051 | 1052 | qs@^6.5.1, qs@~6.5.1: 1053 | version "6.5.1" 1054 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 1055 | 1056 | qs@~6.4.0: 1057 | version "6.4.0" 1058 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 1059 | 1060 | randomatic@^1.1.3: 1061 | version "1.1.7" 1062 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 1063 | dependencies: 1064 | is-number "^3.0.0" 1065 | kind-of "^4.0.0" 1066 | 1067 | rc@^1.1.7: 1068 | version "1.2.6" 1069 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" 1070 | dependencies: 1071 | deep-extend "~0.4.0" 1072 | ini "~1.3.0" 1073 | minimist "^1.2.0" 1074 | strip-json-comments "~2.0.1" 1075 | 1076 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: 1077 | version "2.3.6" 1078 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1079 | dependencies: 1080 | core-util-is "~1.0.0" 1081 | inherits "~2.0.3" 1082 | isarray "~1.0.0" 1083 | process-nextick-args "~2.0.0" 1084 | safe-buffer "~5.1.1" 1085 | string_decoder "~1.1.1" 1086 | util-deprecate "~1.0.1" 1087 | 1088 | readdirp@^2.0.0: 1089 | version "2.1.0" 1090 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1091 | dependencies: 1092 | graceful-fs "^4.1.2" 1093 | minimatch "^3.0.2" 1094 | readable-stream "^2.0.2" 1095 | set-immediate-shim "^1.0.1" 1096 | 1097 | regex-cache@^0.4.2: 1098 | version "0.4.4" 1099 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1100 | dependencies: 1101 | is-equal-shallow "^0.1.3" 1102 | 1103 | remove-trailing-separator@^1.0.1: 1104 | version "1.1.0" 1105 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1106 | 1107 | repeat-element@^1.1.2: 1108 | version "1.1.2" 1109 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1110 | 1111 | repeat-string@^1.5.2: 1112 | version "1.6.1" 1113 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1114 | 1115 | request@2.81.0: 1116 | version "2.81.0" 1117 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 1118 | dependencies: 1119 | aws-sign2 "~0.6.0" 1120 | aws4 "^1.2.1" 1121 | caseless "~0.12.0" 1122 | combined-stream "~1.0.5" 1123 | extend "~3.0.0" 1124 | forever-agent "~0.6.1" 1125 | form-data "~2.1.1" 1126 | har-validator "~4.2.1" 1127 | hawk "~3.1.3" 1128 | http-signature "~1.1.0" 1129 | is-typedarray "~1.0.0" 1130 | isstream "~0.1.2" 1131 | json-stringify-safe "~5.0.1" 1132 | mime-types "~2.1.7" 1133 | oauth-sign "~0.8.1" 1134 | performance-now "^0.2.0" 1135 | qs "~6.4.0" 1136 | safe-buffer "^5.0.1" 1137 | stringstream "~0.0.4" 1138 | tough-cookie "~2.3.0" 1139 | tunnel-agent "^0.6.0" 1140 | uuid "^3.0.0" 1141 | 1142 | request@^2.81.0: 1143 | version "2.85.0" 1144 | resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" 1145 | dependencies: 1146 | aws-sign2 "~0.7.0" 1147 | aws4 "^1.6.0" 1148 | caseless "~0.12.0" 1149 | combined-stream "~1.0.5" 1150 | extend "~3.0.1" 1151 | forever-agent "~0.6.1" 1152 | form-data "~2.3.1" 1153 | har-validator "~5.0.3" 1154 | hawk "~6.0.2" 1155 | http-signature "~1.2.0" 1156 | is-typedarray "~1.0.0" 1157 | isstream "~0.1.2" 1158 | json-stringify-safe "~5.0.1" 1159 | mime-types "~2.1.17" 1160 | oauth-sign "~0.8.2" 1161 | performance-now "^2.1.0" 1162 | qs "~6.5.1" 1163 | safe-buffer "^5.1.1" 1164 | stringstream "~0.0.5" 1165 | tough-cookie "~2.3.3" 1166 | tunnel-agent "^0.6.0" 1167 | uuid "^3.1.0" 1168 | 1169 | rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: 1170 | version "2.6.2" 1171 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1172 | dependencies: 1173 | glob "^7.0.5" 1174 | 1175 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1176 | version "5.1.1" 1177 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1178 | 1179 | sax@^1.2.4: 1180 | version "1.2.4" 1181 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1182 | 1183 | semver@^5.3.0, semver@^5.5.0: 1184 | version "5.5.0" 1185 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1186 | 1187 | set-blocking@~2.0.0: 1188 | version "2.0.0" 1189 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1190 | 1191 | set-immediate-shim@^1.0.1: 1192 | version "1.0.1" 1193 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1194 | 1195 | shortid@2.2.x: 1196 | version "2.2.8" 1197 | resolved "https://registry.yarnpkg.com/shortid/-/shortid-2.2.8.tgz#033b117d6a2e975804f6f0969dbe7d3d0b355131" 1198 | 1199 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1200 | version "3.0.2" 1201 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1202 | 1203 | simple-oauth2@1.5.x: 1204 | version "1.5.2" 1205 | resolved "https://registry.yarnpkg.com/simple-oauth2/-/simple-oauth2-1.5.2.tgz#99d7f1e9875e3e6039dccb381a5c1c9744d5823c" 1206 | dependencies: 1207 | bluebird "^3.5.0" 1208 | date-fns "^1.3.0" 1209 | debug "^3.1.0" 1210 | joi "^12.0.0" 1211 | request "^2.81.0" 1212 | 1213 | sntp@1.x.x: 1214 | version "1.0.9" 1215 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1216 | dependencies: 1217 | hoek "2.x.x" 1218 | 1219 | sntp@2.x.x: 1220 | version "2.1.0" 1221 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 1222 | dependencies: 1223 | hoek "4.x.x" 1224 | 1225 | source-map-support@^0.5.5: 1226 | version "0.5.6" 1227 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 1228 | dependencies: 1229 | buffer-from "^1.0.0" 1230 | source-map "^0.6.0" 1231 | 1232 | source-map@^0.6.0: 1233 | version "0.6.1" 1234 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1235 | 1236 | split@0.3: 1237 | version "0.3.3" 1238 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1239 | dependencies: 1240 | through "2" 1241 | 1242 | sprintf-js@~1.0.2: 1243 | version "1.0.3" 1244 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1245 | 1246 | sshpk@^1.7.0: 1247 | version "1.14.1" 1248 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 1249 | dependencies: 1250 | asn1 "~0.2.3" 1251 | assert-plus "^1.0.0" 1252 | dashdash "^1.12.0" 1253 | getpass "^0.1.1" 1254 | optionalDependencies: 1255 | bcrypt-pbkdf "^1.0.0" 1256 | ecc-jsbn "~0.1.1" 1257 | jsbn "~0.1.0" 1258 | tweetnacl "~0.14.0" 1259 | 1260 | stream-combiner@~0.0.4: 1261 | version "0.0.4" 1262 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 1263 | dependencies: 1264 | duplexer "~0.1.1" 1265 | 1266 | string-width@^1.0.1, string-width@^1.0.2: 1267 | version "1.0.2" 1268 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1269 | dependencies: 1270 | code-point-at "^1.0.0" 1271 | is-fullwidth-code-point "^1.0.0" 1272 | strip-ansi "^3.0.0" 1273 | 1274 | string_decoder@~1.1.1: 1275 | version "1.1.1" 1276 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1277 | dependencies: 1278 | safe-buffer "~5.1.0" 1279 | 1280 | stringstream@~0.0.4, stringstream@~0.0.5: 1281 | version "0.0.5" 1282 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1283 | 1284 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1285 | version "3.0.1" 1286 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1287 | dependencies: 1288 | ansi-regex "^2.0.0" 1289 | 1290 | strip-json-comments@~2.0.1: 1291 | version "2.0.1" 1292 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1293 | 1294 | tar-pack@^3.4.0: 1295 | version "3.4.1" 1296 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" 1297 | dependencies: 1298 | debug "^2.2.0" 1299 | fstream "^1.0.10" 1300 | fstream-ignore "^1.0.5" 1301 | once "^1.3.3" 1302 | readable-stream "^2.1.4" 1303 | rimraf "^2.5.1" 1304 | tar "^2.2.1" 1305 | uid-number "^0.0.6" 1306 | 1307 | tar@^2.2.1: 1308 | version "2.2.1" 1309 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1310 | dependencies: 1311 | block-stream "*" 1312 | fstream "^1.0.2" 1313 | inherits "2" 1314 | 1315 | through@2, through@~2.3, through@~2.3.1: 1316 | version "2.3.8" 1317 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1318 | 1319 | topo@2.x.x: 1320 | version "2.0.2" 1321 | resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" 1322 | dependencies: 1323 | hoek "4.x.x" 1324 | 1325 | tough-cookie@~2.3.0, tough-cookie@~2.3.3: 1326 | version "2.3.4" 1327 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 1328 | dependencies: 1329 | punycode "^1.4.1" 1330 | 1331 | tunnel-agent@^0.6.0: 1332 | version "0.6.0" 1333 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1334 | dependencies: 1335 | safe-buffer "^5.0.1" 1336 | 1337 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1338 | version "0.14.5" 1339 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1340 | 1341 | uid-number@^0.0.6: 1342 | version "0.0.6" 1343 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1344 | 1345 | universalify@^0.1.0: 1346 | version "0.1.1" 1347 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" 1348 | 1349 | util-deprecate@~1.0.1: 1350 | version "1.0.2" 1351 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1352 | 1353 | uuid@^3.0.0, uuid@^3.1.0: 1354 | version "3.2.1" 1355 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1356 | 1357 | verror@1.10.0: 1358 | version "1.10.0" 1359 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1360 | dependencies: 1361 | assert-plus "^1.0.0" 1362 | core-util-is "1.0.2" 1363 | extsprintf "^1.2.0" 1364 | 1365 | wide-align@^1.1.0: 1366 | version "1.1.2" 1367 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 1368 | dependencies: 1369 | string-width "^1.0.2" 1370 | 1371 | wrappy@1: 1372 | version "1.0.2" 1373 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1374 | 1375 | write-file-atomic@^2.3.0: 1376 | version "2.3.0" 1377 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 1378 | dependencies: 1379 | graceful-fs "^4.1.11" 1380 | imurmurhash "^0.1.4" 1381 | signal-exit "^3.0.2" 1382 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "7zip-bin-linux@~1.3.1": 6 | version "1.3.1" 7 | resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.3.1.tgz#4856db1ab1bf5b6ee8444f93f5a8ad71446d00d5" 8 | 9 | "7zip-bin-mac@~1.0.1": 10 | version "1.0.1" 11 | resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02" 12 | 13 | "7zip-bin-win@~2.2.0": 14 | version "2.2.0" 15 | resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.2.0.tgz#0b81c43e911100f3ece2ebac4f414ca95a572d5b" 16 | 17 | "7zip-bin@~3.1.0": 18 | version "3.1.0" 19 | resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-3.1.0.tgz#70814c6b6d44fef8b74be6fc64d3977a2eff59a5" 20 | optionalDependencies: 21 | "7zip-bin-linux" "~1.3.1" 22 | "7zip-bin-mac" "~1.0.1" 23 | "7zip-bin-win" "~2.2.0" 24 | 25 | "7zip-bin@~4.0.2": 26 | version "4.0.2" 27 | resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-4.0.2.tgz#6abbdc22f33cab742053777a26db2e25ca527179" 28 | 29 | "@types/node@^8.0.24": 30 | version "8.10.9" 31 | resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.9.tgz#b507a74a7d3eddc74a17dc35fd40d8f45dde0d6c" 32 | 33 | accessibility-developer-tools@^2.11.0: 34 | version "2.12.0" 35 | resolved "https://registry.yarnpkg.com/accessibility-developer-tools/-/accessibility-developer-tools-2.12.0.tgz#3da0cce9d6ec6373964b84f35db7cfc3df7ab514" 36 | 37 | adm-zip@0.4.x: 38 | version "0.4.7" 39 | resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" 40 | 41 | ajv-keywords@^3.1.0: 42 | version "3.2.0" 43 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" 44 | 45 | ajv@^5.1.0: 46 | version "5.5.2" 47 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 48 | dependencies: 49 | co "^4.6.0" 50 | fast-deep-equal "^1.0.0" 51 | fast-json-stable-stringify "^2.0.0" 52 | json-schema-traverse "^0.3.0" 53 | 54 | ajv@^6.1.1: 55 | version "6.5.0" 56 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" 57 | dependencies: 58 | fast-deep-equal "^2.0.1" 59 | fast-json-stable-stringify "^2.0.0" 60 | json-schema-traverse "^0.3.0" 61 | uri-js "^4.2.1" 62 | 63 | ansi-align@^2.0.0: 64 | version "2.0.0" 65 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 66 | dependencies: 67 | string-width "^2.0.0" 68 | 69 | ansi-regex@^2.0.0: 70 | version "2.1.1" 71 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 72 | 73 | ansi-regex@^3.0.0: 74 | version "3.0.0" 75 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 76 | 77 | ansi-styles@^3.2.1: 78 | version "3.2.1" 79 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 80 | dependencies: 81 | color-convert "^1.9.0" 82 | 83 | app-builder-bin-linux@1.7.2: 84 | version "1.7.2" 85 | resolved "https://registry.yarnpkg.com/app-builder-bin-linux/-/app-builder-bin-linux-1.7.2.tgz#a764c8e52ecf1b5b068f32c820c6daf1ffed6a8f" 86 | 87 | app-builder-bin-mac@1.7.2: 88 | version "1.7.2" 89 | resolved "https://registry.yarnpkg.com/app-builder-bin-mac/-/app-builder-bin-mac-1.7.2.tgz#c4ee0d950666c97c12a45ac74ec6396be3357644" 90 | 91 | app-builder-bin-win@1.7.2: 92 | version "1.7.2" 93 | resolved "https://registry.yarnpkg.com/app-builder-bin-win/-/app-builder-bin-win-1.7.2.tgz#7acac890782f4118f09941b343ba06c56452a6f6" 94 | 95 | app-builder-bin@1.7.2: 96 | version "1.7.2" 97 | resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-1.7.2.tgz#daf67060a6bad8f5f611a0d2876d9db897a83f06" 98 | optionalDependencies: 99 | app-builder-bin-linux "1.7.2" 100 | app-builder-bin-mac "1.7.2" 101 | app-builder-bin-win "1.7.2" 102 | 103 | app-builder-bin@1.9.11: 104 | version "1.9.11" 105 | resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-1.9.11.tgz#bf04d4cdfc0a8ed83acedc5f9ab16be73b5a3a57" 106 | 107 | argparse@^1.0.7: 108 | version "1.0.10" 109 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 110 | dependencies: 111 | sprintf-js "~1.0.2" 112 | 113 | array-find-index@^1.0.1: 114 | version "1.0.2" 115 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 116 | 117 | asn1@~0.2.3: 118 | version "0.2.3" 119 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 120 | 121 | assert-plus@1.0.0, assert-plus@^1.0.0: 122 | version "1.0.0" 123 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 124 | 125 | async-exit-hook@^2.0.1: 126 | version "2.0.1" 127 | resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" 128 | 129 | asynckit@^0.4.0: 130 | version "0.4.0" 131 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 132 | 133 | aws-sign2@~0.7.0: 134 | version "0.7.0" 135 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 136 | 137 | aws4@^1.6.0: 138 | version "1.7.0" 139 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" 140 | 141 | balanced-match@^1.0.0: 142 | version "1.0.0" 143 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 144 | 145 | base64-js@1.2.0: 146 | version "1.2.0" 147 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" 148 | 149 | bcrypt-pbkdf@^1.0.0: 150 | version "1.0.1" 151 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 152 | dependencies: 153 | tweetnacl "^0.14.3" 154 | 155 | bluebird-lst@^1.0.5: 156 | version "1.0.5" 157 | resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.5.tgz#bebc83026b7e92a72871a3dc599e219cbfb002a9" 158 | dependencies: 159 | bluebird "^3.5.1" 160 | 161 | bluebird@^3.5.0, bluebird@^3.5.1: 162 | version "3.5.1" 163 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" 164 | 165 | boom@4.x.x: 166 | version "4.3.1" 167 | resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" 168 | dependencies: 169 | hoek "4.x.x" 170 | 171 | boom@5.x.x: 172 | version "5.2.0" 173 | resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" 174 | dependencies: 175 | hoek "4.x.x" 176 | 177 | boxen@^1.2.1: 178 | version "1.3.0" 179 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 180 | dependencies: 181 | ansi-align "^2.0.0" 182 | camelcase "^4.0.0" 183 | chalk "^2.0.1" 184 | cli-boxes "^1.0.0" 185 | string-width "^2.0.0" 186 | term-size "^1.2.0" 187 | widest-line "^2.0.0" 188 | 189 | brace-expansion@^1.1.7: 190 | version "1.1.11" 191 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 192 | dependencies: 193 | balanced-match "^1.0.0" 194 | concat-map "0.0.1" 195 | 196 | buffer-from@^1.0.0: 197 | version "1.1.0" 198 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" 199 | 200 | builder-util-runtime@4.0.5: 201 | version "4.0.5" 202 | resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.0.5.tgz#5340cf9886b9283ea6e5b20dc09b5e3e461aef62" 203 | dependencies: 204 | bluebird-lst "^1.0.5" 205 | debug "^3.1.0" 206 | fs-extra-p "^4.5.0" 207 | sax "^1.2.4" 208 | 209 | builder-util-runtime@^4.0.5, builder-util-runtime@^4.2.1: 210 | version "4.2.1" 211 | resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-4.2.1.tgz#0caa358f1331d70680010141ca591952b69b35bc" 212 | dependencies: 213 | bluebird-lst "^1.0.5" 214 | debug "^3.1.0" 215 | fs-extra-p "^4.6.0" 216 | sax "^1.2.4" 217 | 218 | builder-util@5.6.5: 219 | version "5.6.5" 220 | resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-5.6.5.tgz#f2d156541b8df9599456848e057566443dc04c82" 221 | dependencies: 222 | "7zip-bin" "~3.1.0" 223 | app-builder-bin "1.7.2" 224 | bluebird-lst "^1.0.5" 225 | builder-util-runtime "^4.0.5" 226 | chalk "^2.3.2" 227 | debug "^3.1.0" 228 | fs-extra-p "^4.5.2" 229 | is-ci "^1.1.0" 230 | js-yaml "^3.11.0" 231 | lazy-val "^1.0.3" 232 | semver "^5.5.0" 233 | source-map-support "^0.5.3" 234 | stat-mode "^0.2.2" 235 | temp-file "^3.1.1" 236 | 237 | builder-util@^5.6.5: 238 | version "5.11.4" 239 | resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-5.11.4.tgz#24d72aa567ecfeacca72b0740b4ddbffaaef617c" 240 | dependencies: 241 | "7zip-bin" "~4.0.2" 242 | app-builder-bin "1.9.11" 243 | bluebird-lst "^1.0.5" 244 | builder-util-runtime "^4.2.1" 245 | chalk "^2.4.1" 246 | debug "^3.1.0" 247 | fs-extra-p "^4.6.0" 248 | is-ci "^1.1.0" 249 | js-yaml "^3.11.0" 250 | lazy-val "^1.0.3" 251 | semver "^5.5.0" 252 | source-map-support "^0.5.6" 253 | stat-mode "^0.2.2" 254 | temp-file "^3.1.2" 255 | 256 | builtin-modules@^1.0.0: 257 | version "1.1.1" 258 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 259 | 260 | camelcase-keys@^2.0.0: 261 | version "2.1.0" 262 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 263 | dependencies: 264 | camelcase "^2.0.0" 265 | map-obj "^1.0.0" 266 | 267 | camelcase@^2.0.0: 268 | version "2.1.1" 269 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 270 | 271 | camelcase@^4.0.0, camelcase@^4.1.0: 272 | version "4.1.0" 273 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 274 | 275 | capture-stack-trace@^1.0.0: 276 | version "1.0.0" 277 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 278 | 279 | caseless@~0.12.0: 280 | version "0.12.0" 281 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 282 | 283 | chalk@^2.0.1: 284 | version "2.4.0" 285 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52" 286 | dependencies: 287 | ansi-styles "^3.2.1" 288 | escape-string-regexp "^1.0.5" 289 | supports-color "^5.3.0" 290 | 291 | chalk@^2.3.2, chalk@^2.4.1: 292 | version "2.4.1" 293 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 294 | dependencies: 295 | ansi-styles "^3.2.1" 296 | escape-string-regexp "^1.0.5" 297 | supports-color "^5.3.0" 298 | 299 | chromium-pickle-js@^0.2.0: 300 | version "0.2.0" 301 | resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" 302 | 303 | ci-info@^1.0.0: 304 | version "1.1.3" 305 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 306 | 307 | cli-boxes@^1.0.0: 308 | version "1.0.0" 309 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 310 | 311 | cliui@^4.0.0: 312 | version "4.0.0" 313 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" 314 | dependencies: 315 | string-width "^2.1.1" 316 | strip-ansi "^4.0.0" 317 | wrap-ansi "^2.0.0" 318 | 319 | co@^4.6.0: 320 | version "4.6.0" 321 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 322 | 323 | code-point-at@^1.0.0: 324 | version "1.1.0" 325 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 326 | 327 | color-convert@^1.9.0: 328 | version "1.9.1" 329 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 330 | dependencies: 331 | color-name "^1.1.1" 332 | 333 | color-convert@~0.5.0: 334 | version "0.5.3" 335 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" 336 | 337 | color-name@^1.1.1: 338 | version "1.1.3" 339 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 340 | 341 | combined-stream@1.0.6, combined-stream@~1.0.5: 342 | version "1.0.6" 343 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" 344 | dependencies: 345 | delayed-stream "~1.0.0" 346 | 347 | compare-version@^0.1.2: 348 | version "0.1.2" 349 | resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" 350 | 351 | concat-map@0.0.1: 352 | version "0.0.1" 353 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 354 | 355 | concat-stream@1.6.0: 356 | version "1.6.0" 357 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 358 | dependencies: 359 | inherits "^2.0.3" 360 | readable-stream "^2.2.2" 361 | typedarray "^0.0.6" 362 | 363 | configstore@^3.0.0: 364 | version "3.1.2" 365 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 366 | dependencies: 367 | dot-prop "^4.1.0" 368 | graceful-fs "^4.1.2" 369 | make-dir "^1.0.0" 370 | unique-string "^1.0.0" 371 | write-file-atomic "^2.0.0" 372 | xdg-basedir "^3.0.0" 373 | 374 | core-util-is@1.0.2, core-util-is@~1.0.0: 375 | version "1.0.2" 376 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 377 | 378 | create-error-class@^3.0.0: 379 | version "3.0.2" 380 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 381 | dependencies: 382 | capture-stack-trace "^1.0.0" 383 | 384 | cross-spawn@^5.0.1: 385 | version "5.1.0" 386 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 387 | dependencies: 388 | lru-cache "^4.0.1" 389 | shebang-command "^1.2.0" 390 | which "^1.2.9" 391 | 392 | cryptiles@3.x.x: 393 | version "3.1.2" 394 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" 395 | dependencies: 396 | boom "5.x.x" 397 | 398 | crypto-random-string@^1.0.0: 399 | version "1.0.0" 400 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 401 | 402 | currently-unhandled@^0.4.1: 403 | version "0.4.1" 404 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 405 | dependencies: 406 | array-find-index "^1.0.1" 407 | 408 | dashdash@^1.12.0: 409 | version "1.14.1" 410 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 411 | dependencies: 412 | assert-plus "^1.0.0" 413 | 414 | debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.6.8: 415 | version "2.6.9" 416 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 417 | dependencies: 418 | ms "2.0.0" 419 | 420 | debug@^3.0.0, debug@^3.1.0: 421 | version "3.1.0" 422 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 423 | dependencies: 424 | ms "2.0.0" 425 | 426 | decamelize@^1.1.1, decamelize@^1.1.2: 427 | version "1.2.0" 428 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 429 | 430 | deep-extend@~0.4.0: 431 | version "0.4.2" 432 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 433 | 434 | delayed-stream@~1.0.0: 435 | version "1.0.0" 436 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 437 | 438 | devtron@1.4.x: 439 | version "1.4.0" 440 | resolved "https://registry.yarnpkg.com/devtron/-/devtron-1.4.0.tgz#b5e748bd6e95bbe70bfcc68aae6fe696119441e1" 441 | dependencies: 442 | accessibility-developer-tools "^2.11.0" 443 | highlight.js "^9.3.0" 444 | humanize-plus "^1.8.1" 445 | 446 | dmg-builder@4.1.2: 447 | version "4.1.2" 448 | resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-4.1.2.tgz#b4d7245dc2e91812395b4268b12f888443ba5f30" 449 | dependencies: 450 | bluebird-lst "^1.0.5" 451 | builder-util "^5.6.5" 452 | electron-builder-lib "~20.5.0" 453 | fs-extra-p "^4.5.2" 454 | iconv-lite "^0.4.19" 455 | js-yaml "^3.11.0" 456 | parse-color "^1.0.0" 457 | sanitize-filename "^1.6.1" 458 | 459 | dot-prop@^4.1.0: 460 | version "4.2.0" 461 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 462 | dependencies: 463 | is-obj "^1.0.0" 464 | 465 | dotenv-expand@^4.0.1: 466 | version "4.2.0" 467 | resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" 468 | 469 | dotenv@^5.0.0: 470 | version "5.0.1" 471 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" 472 | 473 | duplexer3@^0.1.4: 474 | version "0.1.4" 475 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 476 | 477 | ecc-jsbn@~0.1.1: 478 | version "0.1.1" 479 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 480 | dependencies: 481 | jsbn "~0.1.0" 482 | 483 | ejs@^2.5.7: 484 | version "2.6.1" 485 | resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" 486 | 487 | electron-builder-lib@20.5.1, electron-builder-lib@~20.5.0: 488 | version "20.5.1" 489 | resolved "https://registry.yarnpkg.com/electron-builder-lib/-/electron-builder-lib-20.5.1.tgz#c155345c58d25580d316f6437c251a57e8e92d62" 490 | dependencies: 491 | "7zip-bin" "~3.1.0" 492 | app-builder-bin "1.7.2" 493 | async-exit-hook "^2.0.1" 494 | bluebird-lst "^1.0.5" 495 | builder-util "5.6.5" 496 | builder-util-runtime "4.0.5" 497 | chromium-pickle-js "^0.2.0" 498 | debug "^3.1.0" 499 | ejs "^2.5.7" 500 | electron-osx-sign "0.4.10" 501 | electron-publish "20.5.0" 502 | fs-extra-p "^4.5.2" 503 | hosted-git-info "^2.6.0" 504 | is-ci "^1.1.0" 505 | isbinaryfile "^3.0.2" 506 | js-yaml "^3.11.0" 507 | lazy-val "^1.0.3" 508 | minimatch "^3.0.4" 509 | normalize-package-data "^2.4.0" 510 | plist "^2.1.0" 511 | read-config-file "3.0.0" 512 | sanitize-filename "^1.6.1" 513 | semver "^5.5.0" 514 | temp-file "^3.1.1" 515 | 516 | electron-builder@20.5.1: 517 | version "20.5.1" 518 | resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-20.5.1.tgz#8e6fba76dcd65aeabab60f15bd46f294ee04dd11" 519 | dependencies: 520 | bluebird-lst "^1.0.5" 521 | builder-util "5.6.5" 522 | builder-util-runtime "4.0.5" 523 | chalk "^2.3.2" 524 | dmg-builder "4.1.2" 525 | electron-builder-lib "20.5.1" 526 | electron-download-tf "4.3.4" 527 | fs-extra-p "^4.5.2" 528 | is-ci "^1.1.0" 529 | lazy-val "^1.0.3" 530 | read-config-file "3.0.0" 531 | sanitize-filename "^1.6.1" 532 | update-notifier "^2.3.0" 533 | yargs "^11.0.0" 534 | 535 | electron-download-tf@4.3.4: 536 | version "4.3.4" 537 | resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-4.3.4.tgz#b03740b2885aa2ad3f8784fae74df427f66d5165" 538 | dependencies: 539 | debug "^3.0.0" 540 | env-paths "^1.0.0" 541 | fs-extra "^4.0.1" 542 | minimist "^1.2.0" 543 | nugget "^2.0.1" 544 | path-exists "^3.0.0" 545 | rc "^1.2.1" 546 | semver "^5.4.1" 547 | sumchecker "^2.0.2" 548 | 549 | electron-download@^3.0.1: 550 | version "3.3.0" 551 | resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.3.0.tgz#2cfd54d6966c019c4d49ad65fbe65cc9cdef68c8" 552 | dependencies: 553 | debug "^2.2.0" 554 | fs-extra "^0.30.0" 555 | home-path "^1.0.1" 556 | minimist "^1.2.0" 557 | nugget "^2.0.0" 558 | path-exists "^2.1.0" 559 | rc "^1.1.2" 560 | semver "^5.3.0" 561 | sumchecker "^1.2.0" 562 | 563 | electron-osx-sign@0.4.10: 564 | version "0.4.10" 565 | resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz#be4f3b89b2a75a1dc5f1e7249081ab2929ca3a26" 566 | dependencies: 567 | bluebird "^3.5.0" 568 | compare-version "^0.1.2" 569 | debug "^2.6.8" 570 | isbinaryfile "^3.0.2" 571 | minimist "^1.2.0" 572 | plist "^2.1.0" 573 | 574 | electron-publish@20.5.0: 575 | version "20.5.0" 576 | resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-20.5.0.tgz#bcef9949c63899d34680e89110e8d38d1016f1f6" 577 | dependencies: 578 | bluebird-lst "^1.0.5" 579 | builder-util "^5.6.5" 580 | builder-util-runtime "^4.0.5" 581 | chalk "^2.3.2" 582 | fs-extra-p "^4.5.2" 583 | lazy-val "^1.0.3" 584 | mime "^2.2.0" 585 | 586 | electron@1.8.7: 587 | version "1.8.7" 588 | resolved "https://registry.yarnpkg.com/electron/-/electron-1.8.7.tgz#373c1dc4589d7ab4acd49aff8db4a1c0a6c3bcc1" 589 | dependencies: 590 | "@types/node" "^8.0.24" 591 | electron-download "^3.0.1" 592 | extract-zip "^1.0.3" 593 | 594 | env-paths@^1.0.0: 595 | version "1.0.0" 596 | resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" 597 | 598 | error-ex@^1.2.0: 599 | version "1.3.1" 600 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 601 | dependencies: 602 | is-arrayish "^0.2.1" 603 | 604 | es6-promise@^4.0.5: 605 | version "4.2.4" 606 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" 607 | 608 | escape-string-regexp@^1.0.5: 609 | version "1.0.5" 610 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 611 | 612 | esprima@^4.0.0: 613 | version "4.0.0" 614 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 615 | 616 | execa@^0.7.0: 617 | version "0.7.0" 618 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 619 | dependencies: 620 | cross-spawn "^5.0.1" 621 | get-stream "^3.0.0" 622 | is-stream "^1.1.0" 623 | npm-run-path "^2.0.0" 624 | p-finally "^1.0.0" 625 | signal-exit "^3.0.0" 626 | strip-eof "^1.0.0" 627 | 628 | extend@~3.0.1: 629 | version "3.0.1" 630 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 631 | 632 | extract-zip@^1.0.3: 633 | version "1.6.6" 634 | resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.6.tgz#1290ede8d20d0872b429fd3f351ca128ec5ef85c" 635 | dependencies: 636 | concat-stream "1.6.0" 637 | debug "2.6.9" 638 | mkdirp "0.5.0" 639 | yauzl "2.4.1" 640 | 641 | extsprintf@1.3.0: 642 | version "1.3.0" 643 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 644 | 645 | extsprintf@^1.2.0: 646 | version "1.4.0" 647 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 648 | 649 | fast-deep-equal@^1.0.0: 650 | version "1.1.0" 651 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 652 | 653 | fast-deep-equal@^2.0.1: 654 | version "2.0.1" 655 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 656 | 657 | fast-json-stable-stringify@^2.0.0: 658 | version "2.0.0" 659 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 660 | 661 | fd-slicer@~1.0.1: 662 | version "1.0.1" 663 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" 664 | dependencies: 665 | pend "~1.2.0" 666 | 667 | find-up@^1.0.0: 668 | version "1.1.2" 669 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 670 | dependencies: 671 | path-exists "^2.0.0" 672 | pinkie-promise "^2.0.0" 673 | 674 | find-up@^2.1.0: 675 | version "2.1.0" 676 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 677 | dependencies: 678 | locate-path "^2.0.0" 679 | 680 | forever-agent@~0.6.1: 681 | version "0.6.1" 682 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 683 | 684 | form-data@~2.3.1: 685 | version "2.3.2" 686 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" 687 | dependencies: 688 | asynckit "^0.4.0" 689 | combined-stream "1.0.6" 690 | mime-types "^2.1.12" 691 | 692 | fs-extra-p@^4.5.0, fs-extra-p@^4.5.2, fs-extra-p@^4.6.0: 693 | version "4.6.0" 694 | resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-4.6.0.tgz#c7b7117f0dcf8a99c9b2ed589067c960abcf3ef9" 695 | dependencies: 696 | bluebird-lst "^1.0.5" 697 | fs-extra "^6.0.0" 698 | 699 | fs-extra@5.x.x: 700 | version "5.0.0" 701 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" 702 | dependencies: 703 | graceful-fs "^4.1.2" 704 | jsonfile "^4.0.0" 705 | universalify "^0.1.0" 706 | 707 | fs-extra@^0.30.0: 708 | version "0.30.0" 709 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" 710 | dependencies: 711 | graceful-fs "^4.1.2" 712 | jsonfile "^2.1.0" 713 | klaw "^1.0.0" 714 | path-is-absolute "^1.0.0" 715 | rimraf "^2.2.8" 716 | 717 | fs-extra@^4.0.1: 718 | version "4.0.3" 719 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" 720 | dependencies: 721 | graceful-fs "^4.1.2" 722 | jsonfile "^4.0.0" 723 | universalify "^0.1.0" 724 | 725 | fs-extra@^6.0.0: 726 | version "6.0.1" 727 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" 728 | dependencies: 729 | graceful-fs "^4.1.2" 730 | jsonfile "^4.0.0" 731 | universalify "^0.1.0" 732 | 733 | fs.realpath@^1.0.0: 734 | version "1.0.0" 735 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 736 | 737 | get-caller-file@^1.0.1: 738 | version "1.0.2" 739 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 740 | 741 | get-stdin@^4.0.1: 742 | version "4.0.1" 743 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 744 | 745 | get-stream@^3.0.0: 746 | version "3.0.0" 747 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 748 | 749 | getpass@^0.1.1: 750 | version "0.1.7" 751 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 752 | dependencies: 753 | assert-plus "^1.0.0" 754 | 755 | glob@^7.0.5: 756 | version "7.1.2" 757 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 758 | dependencies: 759 | fs.realpath "^1.0.0" 760 | inflight "^1.0.4" 761 | inherits "2" 762 | minimatch "^3.0.4" 763 | once "^1.3.0" 764 | path-is-absolute "^1.0.0" 765 | 766 | global-dirs@^0.1.0: 767 | version "0.1.1" 768 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 769 | dependencies: 770 | ini "^1.3.4" 771 | 772 | got@^6.7.1: 773 | version "6.7.1" 774 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 775 | dependencies: 776 | create-error-class "^3.0.0" 777 | duplexer3 "^0.1.4" 778 | get-stream "^3.0.0" 779 | is-redirect "^1.0.0" 780 | is-retry-allowed "^1.0.0" 781 | is-stream "^1.0.0" 782 | lowercase-keys "^1.0.0" 783 | safe-buffer "^5.0.1" 784 | timed-out "^4.0.0" 785 | unzip-response "^2.0.1" 786 | url-parse-lax "^1.0.0" 787 | 788 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: 789 | version "4.1.11" 790 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 791 | 792 | har-schema@^2.0.0: 793 | version "2.0.0" 794 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 795 | 796 | har-validator@~5.0.3: 797 | version "5.0.3" 798 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" 799 | dependencies: 800 | ajv "^5.1.0" 801 | har-schema "^2.0.0" 802 | 803 | has-flag@^3.0.0: 804 | version "3.0.0" 805 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 806 | 807 | hawk@~6.0.2: 808 | version "6.0.2" 809 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" 810 | dependencies: 811 | boom "4.x.x" 812 | cryptiles "3.x.x" 813 | hoek "4.x.x" 814 | sntp "2.x.x" 815 | 816 | highlight.js@^9.3.0: 817 | version "9.12.0" 818 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" 819 | 820 | hoek@4.x.x: 821 | version "4.2.1" 822 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" 823 | 824 | home-path@^1.0.1: 825 | version "1.0.5" 826 | resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f" 827 | 828 | hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: 829 | version "2.6.0" 830 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 831 | 832 | http-signature@~1.2.0: 833 | version "1.2.0" 834 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 835 | dependencies: 836 | assert-plus "^1.0.0" 837 | jsprim "^1.2.2" 838 | sshpk "^1.7.0" 839 | 840 | humanize-plus@^1.8.1: 841 | version "1.8.2" 842 | resolved "https://registry.yarnpkg.com/humanize-plus/-/humanize-plus-1.8.2.tgz#a65b34459ad6367adbb3707a82a3c9f916167030" 843 | 844 | iconv-lite@^0.4.19: 845 | version "0.4.23" 846 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 847 | dependencies: 848 | safer-buffer ">= 2.1.2 < 3" 849 | 850 | import-lazy@^2.1.0: 851 | version "2.1.0" 852 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 853 | 854 | imurmurhash@^0.1.4: 855 | version "0.1.4" 856 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 857 | 858 | indent-string@^2.1.0: 859 | version "2.1.0" 860 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 861 | dependencies: 862 | repeating "^2.0.0" 863 | 864 | inflight@^1.0.4: 865 | version "1.0.6" 866 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 867 | dependencies: 868 | once "^1.3.0" 869 | wrappy "1" 870 | 871 | inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 872 | version "2.0.3" 873 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 874 | 875 | ini@^1.3.4, ini@~1.3.0: 876 | version "1.3.5" 877 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 878 | 879 | invert-kv@^1.0.0: 880 | version "1.0.0" 881 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 882 | 883 | is-arrayish@^0.2.1: 884 | version "0.2.1" 885 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 886 | 887 | is-builtin-module@^1.0.0: 888 | version "1.0.0" 889 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 890 | dependencies: 891 | builtin-modules "^1.0.0" 892 | 893 | is-ci@^1.0.10, is-ci@^1.1.0: 894 | version "1.1.0" 895 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 896 | dependencies: 897 | ci-info "^1.0.0" 898 | 899 | is-finite@^1.0.0: 900 | version "1.0.2" 901 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 902 | dependencies: 903 | number-is-nan "^1.0.0" 904 | 905 | is-fullwidth-code-point@^1.0.0: 906 | version "1.0.0" 907 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 908 | dependencies: 909 | number-is-nan "^1.0.0" 910 | 911 | is-fullwidth-code-point@^2.0.0: 912 | version "2.0.0" 913 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 914 | 915 | is-installed-globally@^0.1.0: 916 | version "0.1.0" 917 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 918 | dependencies: 919 | global-dirs "^0.1.0" 920 | is-path-inside "^1.0.0" 921 | 922 | is-npm@^1.0.0: 923 | version "1.0.0" 924 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 925 | 926 | is-obj@^1.0.0: 927 | version "1.0.1" 928 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 929 | 930 | is-path-inside@^1.0.0: 931 | version "1.0.1" 932 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 933 | dependencies: 934 | path-is-inside "^1.0.1" 935 | 936 | is-redirect@^1.0.0: 937 | version "1.0.0" 938 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 939 | 940 | is-retry-allowed@^1.0.0: 941 | version "1.1.0" 942 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 943 | 944 | is-stream@^1.0.0, is-stream@^1.1.0: 945 | version "1.1.0" 946 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 947 | 948 | is-typedarray@~1.0.0: 949 | version "1.0.0" 950 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 951 | 952 | is-utf8@^0.2.0: 953 | version "0.2.1" 954 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 955 | 956 | isarray@0.0.1: 957 | version "0.0.1" 958 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 959 | 960 | isarray@~1.0.0: 961 | version "1.0.0" 962 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 963 | 964 | isbinaryfile@^3.0.2: 965 | version "3.0.2" 966 | resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" 967 | 968 | isexe@^2.0.0: 969 | version "2.0.0" 970 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 971 | 972 | isstream@~0.1.2: 973 | version "0.1.2" 974 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 975 | 976 | js-yaml@^3.10.0: 977 | version "3.12.0" 978 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" 979 | dependencies: 980 | argparse "^1.0.7" 981 | esprima "^4.0.0" 982 | 983 | js-yaml@^3.11.0: 984 | version "3.11.0" 985 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 986 | dependencies: 987 | argparse "^1.0.7" 988 | esprima "^4.0.0" 989 | 990 | jsbn@~0.1.0: 991 | version "0.1.1" 992 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 993 | 994 | json-schema-traverse@^0.3.0: 995 | version "0.3.1" 996 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 997 | 998 | json-schema@0.2.3: 999 | version "0.2.3" 1000 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1001 | 1002 | json-stringify-safe@~5.0.1: 1003 | version "5.0.1" 1004 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1005 | 1006 | json5@^0.5.1: 1007 | version "0.5.1" 1008 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1009 | 1010 | jsonfile@^2.1.0: 1011 | version "2.4.0" 1012 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" 1013 | optionalDependencies: 1014 | graceful-fs "^4.1.6" 1015 | 1016 | jsonfile@^4.0.0: 1017 | version "4.0.0" 1018 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 1019 | optionalDependencies: 1020 | graceful-fs "^4.1.6" 1021 | 1022 | jsprim@^1.2.2: 1023 | version "1.4.1" 1024 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1025 | dependencies: 1026 | assert-plus "1.0.0" 1027 | extsprintf "1.3.0" 1028 | json-schema "0.2.3" 1029 | verror "1.10.0" 1030 | 1031 | klaw@^1.0.0: 1032 | version "1.3.1" 1033 | resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" 1034 | optionalDependencies: 1035 | graceful-fs "^4.1.9" 1036 | 1037 | latest-version@^3.0.0: 1038 | version "3.1.0" 1039 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1040 | dependencies: 1041 | package-json "^4.0.0" 1042 | 1043 | lazy-val@^1.0.3: 1044 | version "1.0.3" 1045 | resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.3.tgz#bb97b200ef00801d94c317e29dc6ed39e31c5edc" 1046 | 1047 | lcid@^1.0.0: 1048 | version "1.0.0" 1049 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1050 | dependencies: 1051 | invert-kv "^1.0.0" 1052 | 1053 | load-json-file@^1.0.0: 1054 | version "1.1.0" 1055 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1056 | dependencies: 1057 | graceful-fs "^4.1.2" 1058 | parse-json "^2.2.0" 1059 | pify "^2.0.0" 1060 | pinkie-promise "^2.0.0" 1061 | strip-bom "^2.0.0" 1062 | 1063 | locate-path@^2.0.0: 1064 | version "2.0.0" 1065 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1066 | dependencies: 1067 | p-locate "^2.0.0" 1068 | path-exists "^3.0.0" 1069 | 1070 | loud-rejection@^1.0.0: 1071 | version "1.6.0" 1072 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 1073 | dependencies: 1074 | currently-unhandled "^0.4.1" 1075 | signal-exit "^3.0.0" 1076 | 1077 | lowercase-keys@^1.0.0: 1078 | version "1.0.1" 1079 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 1080 | 1081 | lru-cache@^4.0.1: 1082 | version "4.1.2" 1083 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" 1084 | dependencies: 1085 | pseudomap "^1.0.2" 1086 | yallist "^2.1.2" 1087 | 1088 | make-dir@^1.0.0: 1089 | version "1.2.0" 1090 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" 1091 | dependencies: 1092 | pify "^3.0.0" 1093 | 1094 | map-obj@^1.0.0, map-obj@^1.0.1: 1095 | version "1.0.1" 1096 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1097 | 1098 | mem@^1.1.0: 1099 | version "1.1.0" 1100 | resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 1101 | dependencies: 1102 | mimic-fn "^1.0.0" 1103 | 1104 | meow@^3.1.0: 1105 | version "3.7.0" 1106 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 1107 | dependencies: 1108 | camelcase-keys "^2.0.0" 1109 | decamelize "^1.1.2" 1110 | loud-rejection "^1.0.0" 1111 | map-obj "^1.0.1" 1112 | minimist "^1.1.3" 1113 | normalize-package-data "^2.3.4" 1114 | object-assign "^4.0.1" 1115 | read-pkg-up "^1.0.1" 1116 | redent "^1.0.0" 1117 | trim-newlines "^1.0.0" 1118 | 1119 | mime-db@~1.33.0: 1120 | version "1.33.0" 1121 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" 1122 | 1123 | mime-types@^2.1.12, mime-types@~2.1.17: 1124 | version "2.1.18" 1125 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" 1126 | dependencies: 1127 | mime-db "~1.33.0" 1128 | 1129 | mime@^2.2.0: 1130 | version "2.3.1" 1131 | resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" 1132 | 1133 | mimic-fn@^1.0.0: 1134 | version "1.2.0" 1135 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1136 | 1137 | minimatch@^3.0.4: 1138 | version "3.0.4" 1139 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1140 | dependencies: 1141 | brace-expansion "^1.1.7" 1142 | 1143 | minimist@0.0.8: 1144 | version "0.0.8" 1145 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1146 | 1147 | minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: 1148 | version "1.2.0" 1149 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1150 | 1151 | mkdirp@0.5.0: 1152 | version "0.5.0" 1153 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" 1154 | dependencies: 1155 | minimist "0.0.8" 1156 | 1157 | ms@2.0.0: 1158 | version "2.0.0" 1159 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1160 | 1161 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.4.0: 1162 | version "2.4.0" 1163 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 1164 | dependencies: 1165 | hosted-git-info "^2.1.4" 1166 | is-builtin-module "^1.0.0" 1167 | semver "2 || 3 || 4 || 5" 1168 | validate-npm-package-license "^3.0.1" 1169 | 1170 | npm-run-path@^2.0.0: 1171 | version "2.0.2" 1172 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1173 | dependencies: 1174 | path-key "^2.0.0" 1175 | 1176 | nugget@^2.0.0, nugget@^2.0.1: 1177 | version "2.0.1" 1178 | resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" 1179 | dependencies: 1180 | debug "^2.1.3" 1181 | minimist "^1.1.0" 1182 | pretty-bytes "^1.0.2" 1183 | progress-stream "^1.1.0" 1184 | request "^2.45.0" 1185 | single-line-log "^1.1.2" 1186 | throttleit "0.0.2" 1187 | 1188 | number-is-nan@^1.0.0: 1189 | version "1.0.1" 1190 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1191 | 1192 | oauth-sign@~0.8.2: 1193 | version "0.8.2" 1194 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1195 | 1196 | object-assign@^4.0.1: 1197 | version "4.1.1" 1198 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1199 | 1200 | object-keys@~0.4.0: 1201 | version "0.4.0" 1202 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" 1203 | 1204 | once@^1.3.0: 1205 | version "1.4.0" 1206 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1207 | dependencies: 1208 | wrappy "1" 1209 | 1210 | os-locale@^2.0.0: 1211 | version "2.1.0" 1212 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 1213 | dependencies: 1214 | execa "^0.7.0" 1215 | lcid "^1.0.0" 1216 | mem "^1.1.0" 1217 | 1218 | p-finally@^1.0.0: 1219 | version "1.0.0" 1220 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1221 | 1222 | p-limit@^1.1.0: 1223 | version "1.2.0" 1224 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 1225 | dependencies: 1226 | p-try "^1.0.0" 1227 | 1228 | p-locate@^2.0.0: 1229 | version "2.0.0" 1230 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1231 | dependencies: 1232 | p-limit "^1.1.0" 1233 | 1234 | p-try@^1.0.0: 1235 | version "1.0.0" 1236 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1237 | 1238 | package-json@^4.0.0: 1239 | version "4.0.1" 1240 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 1241 | dependencies: 1242 | got "^6.7.1" 1243 | registry-auth-token "^3.0.1" 1244 | registry-url "^3.0.3" 1245 | semver "^5.1.0" 1246 | 1247 | parse-color@^1.0.0: 1248 | version "1.0.0" 1249 | resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" 1250 | dependencies: 1251 | color-convert "~0.5.0" 1252 | 1253 | parse-json@^2.2.0: 1254 | version "2.2.0" 1255 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1256 | dependencies: 1257 | error-ex "^1.2.0" 1258 | 1259 | path-exists@^2.0.0, path-exists@^2.1.0: 1260 | version "2.1.0" 1261 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 1262 | dependencies: 1263 | pinkie-promise "^2.0.0" 1264 | 1265 | path-exists@^3.0.0: 1266 | version "3.0.0" 1267 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1268 | 1269 | path-is-absolute@^1.0.0: 1270 | version "1.0.1" 1271 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1272 | 1273 | path-is-inside@^1.0.1: 1274 | version "1.0.2" 1275 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1276 | 1277 | path-key@^2.0.0: 1278 | version "2.0.1" 1279 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1280 | 1281 | path-type@^1.0.0: 1282 | version "1.1.0" 1283 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 1284 | dependencies: 1285 | graceful-fs "^4.1.2" 1286 | pify "^2.0.0" 1287 | pinkie-promise "^2.0.0" 1288 | 1289 | pend@~1.2.0: 1290 | version "1.2.0" 1291 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 1292 | 1293 | performance-now@^2.1.0: 1294 | version "2.1.0" 1295 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 1296 | 1297 | pify@^2.0.0: 1298 | version "2.3.0" 1299 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1300 | 1301 | pify@^3.0.0: 1302 | version "3.0.0" 1303 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1304 | 1305 | pinkie-promise@^2.0.0: 1306 | version "2.0.1" 1307 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1308 | dependencies: 1309 | pinkie "^2.0.0" 1310 | 1311 | pinkie@^2.0.0: 1312 | version "2.0.4" 1313 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1314 | 1315 | plist@^2.1.0: 1316 | version "2.1.0" 1317 | resolved "https://registry.yarnpkg.com/plist/-/plist-2.1.0.tgz#57ccdb7a0821df21831217a3cad54e3e146a1025" 1318 | dependencies: 1319 | base64-js "1.2.0" 1320 | xmlbuilder "8.2.2" 1321 | xmldom "0.1.x" 1322 | 1323 | prepend-http@^1.0.1: 1324 | version "1.0.4" 1325 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1326 | 1327 | prettier@1.13.3: 1328 | version "1.13.3" 1329 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.3.tgz#e74c09a7df6519d472ca6febaa37cf7addb48a20" 1330 | 1331 | pretty-bytes@^1.0.2: 1332 | version "1.0.4" 1333 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" 1334 | dependencies: 1335 | get-stdin "^4.0.1" 1336 | meow "^3.1.0" 1337 | 1338 | process-nextick-args@~2.0.0: 1339 | version "2.0.0" 1340 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1341 | 1342 | progress-stream@^1.1.0: 1343 | version "1.2.0" 1344 | resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" 1345 | dependencies: 1346 | speedometer "~0.1.2" 1347 | through2 "~0.2.3" 1348 | 1349 | pseudomap@^1.0.2: 1350 | version "1.0.2" 1351 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1352 | 1353 | punycode@^1.4.1: 1354 | version "1.4.1" 1355 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1356 | 1357 | punycode@^2.1.0: 1358 | version "2.1.0" 1359 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" 1360 | 1361 | qs@~6.5.1: 1362 | version "6.5.1" 1363 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 1364 | 1365 | rc@^1.0.1, rc@^1.1.2, rc@^1.1.6, rc@^1.2.1: 1366 | version "1.2.6" 1367 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" 1368 | dependencies: 1369 | deep-extend "~0.4.0" 1370 | ini "~1.3.0" 1371 | minimist "^1.2.0" 1372 | strip-json-comments "~2.0.1" 1373 | 1374 | read-config-file@3.0.0: 1375 | version "3.0.0" 1376 | resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-3.0.0.tgz#771def5184a7f76abaf6b2c82f20cb983775b8ea" 1377 | dependencies: 1378 | ajv "^6.1.1" 1379 | ajv-keywords "^3.1.0" 1380 | bluebird-lst "^1.0.5" 1381 | dotenv "^5.0.0" 1382 | dotenv-expand "^4.0.1" 1383 | fs-extra-p "^4.5.0" 1384 | js-yaml "^3.10.0" 1385 | json5 "^0.5.1" 1386 | lazy-val "^1.0.3" 1387 | 1388 | read-pkg-up@^1.0.1: 1389 | version "1.0.1" 1390 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 1391 | dependencies: 1392 | find-up "^1.0.0" 1393 | read-pkg "^1.0.0" 1394 | 1395 | read-pkg@^1.0.0: 1396 | version "1.1.0" 1397 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 1398 | dependencies: 1399 | load-json-file "^1.0.0" 1400 | normalize-package-data "^2.3.2" 1401 | path-type "^1.0.0" 1402 | 1403 | readable-stream@^2.2.2: 1404 | version "2.3.6" 1405 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1406 | dependencies: 1407 | core-util-is "~1.0.0" 1408 | inherits "~2.0.3" 1409 | isarray "~1.0.0" 1410 | process-nextick-args "~2.0.0" 1411 | safe-buffer "~5.1.1" 1412 | string_decoder "~1.1.1" 1413 | util-deprecate "~1.0.1" 1414 | 1415 | readable-stream@~1.1.9: 1416 | version "1.1.14" 1417 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 1418 | dependencies: 1419 | core-util-is "~1.0.0" 1420 | inherits "~2.0.1" 1421 | isarray "0.0.1" 1422 | string_decoder "~0.10.x" 1423 | 1424 | redent@^1.0.0: 1425 | version "1.0.0" 1426 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 1427 | dependencies: 1428 | indent-string "^2.1.0" 1429 | strip-indent "^1.0.1" 1430 | 1431 | registry-auth-token@^3.0.1: 1432 | version "3.3.2" 1433 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" 1434 | dependencies: 1435 | rc "^1.1.6" 1436 | safe-buffer "^5.0.1" 1437 | 1438 | registry-url@^3.0.3: 1439 | version "3.1.0" 1440 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1441 | dependencies: 1442 | rc "^1.0.1" 1443 | 1444 | repeating@^2.0.0: 1445 | version "2.0.1" 1446 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1447 | dependencies: 1448 | is-finite "^1.0.0" 1449 | 1450 | request@2.x.x, request@^2.45.0: 1451 | version "2.85.0" 1452 | resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" 1453 | dependencies: 1454 | aws-sign2 "~0.7.0" 1455 | aws4 "^1.6.0" 1456 | caseless "~0.12.0" 1457 | combined-stream "~1.0.5" 1458 | extend "~3.0.1" 1459 | forever-agent "~0.6.1" 1460 | form-data "~2.3.1" 1461 | har-validator "~5.0.3" 1462 | hawk "~6.0.2" 1463 | http-signature "~1.2.0" 1464 | is-typedarray "~1.0.0" 1465 | isstream "~0.1.2" 1466 | json-stringify-safe "~5.0.1" 1467 | mime-types "~2.1.17" 1468 | oauth-sign "~0.8.2" 1469 | performance-now "^2.1.0" 1470 | qs "~6.5.1" 1471 | safe-buffer "^5.1.1" 1472 | stringstream "~0.0.5" 1473 | tough-cookie "~2.3.3" 1474 | tunnel-agent "^0.6.0" 1475 | uuid "^3.1.0" 1476 | 1477 | require-directory@^2.1.1: 1478 | version "2.1.1" 1479 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1480 | 1481 | require-main-filename@^1.0.1: 1482 | version "1.0.1" 1483 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1484 | 1485 | rimraf@^2.2.8: 1486 | version "2.6.2" 1487 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1488 | dependencies: 1489 | glob "^7.0.5" 1490 | 1491 | safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1492 | version "5.1.1" 1493 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1494 | 1495 | "safer-buffer@>= 2.1.2 < 3": 1496 | version "2.1.2" 1497 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1498 | 1499 | sanitize-filename@^1.6.1: 1500 | version "1.6.1" 1501 | resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a" 1502 | dependencies: 1503 | truncate-utf8-bytes "^1.0.0" 1504 | 1505 | sax@^1.2.4: 1506 | version "1.2.4" 1507 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 1508 | 1509 | semver-diff@^2.0.0: 1510 | version "2.1.0" 1511 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1512 | dependencies: 1513 | semver "^5.0.3" 1514 | 1515 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: 1516 | version "5.5.0" 1517 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1518 | 1519 | set-blocking@^2.0.0: 1520 | version "2.0.0" 1521 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1522 | 1523 | shebang-command@^1.2.0: 1524 | version "1.2.0" 1525 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1526 | dependencies: 1527 | shebang-regex "^1.0.0" 1528 | 1529 | shebang-regex@^1.0.0: 1530 | version "1.0.0" 1531 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1532 | 1533 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1534 | version "3.0.2" 1535 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1536 | 1537 | single-line-log@^1.1.2: 1538 | version "1.1.2" 1539 | resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" 1540 | dependencies: 1541 | string-width "^1.0.1" 1542 | 1543 | sntp@2.x.x: 1544 | version "2.1.0" 1545 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" 1546 | dependencies: 1547 | hoek "4.x.x" 1548 | 1549 | source-map-support@^0.5.3, source-map-support@^0.5.6: 1550 | version "0.5.6" 1551 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" 1552 | dependencies: 1553 | buffer-from "^1.0.0" 1554 | source-map "^0.6.0" 1555 | 1556 | source-map@^0.6.0: 1557 | version "0.6.1" 1558 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1559 | 1560 | spdx-correct@^3.0.0: 1561 | version "3.0.0" 1562 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 1563 | dependencies: 1564 | spdx-expression-parse "^3.0.0" 1565 | spdx-license-ids "^3.0.0" 1566 | 1567 | spdx-exceptions@^2.1.0: 1568 | version "2.1.0" 1569 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 1570 | 1571 | spdx-expression-parse@^3.0.0: 1572 | version "3.0.0" 1573 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1574 | dependencies: 1575 | spdx-exceptions "^2.1.0" 1576 | spdx-license-ids "^3.0.0" 1577 | 1578 | spdx-license-ids@^3.0.0: 1579 | version "3.0.0" 1580 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 1581 | 1582 | speedometer@~0.1.2: 1583 | version "0.1.4" 1584 | resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" 1585 | 1586 | sprintf-js@~1.0.2: 1587 | version "1.0.3" 1588 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1589 | 1590 | sshpk@^1.7.0: 1591 | version "1.14.1" 1592 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" 1593 | dependencies: 1594 | asn1 "~0.2.3" 1595 | assert-plus "^1.0.0" 1596 | dashdash "^1.12.0" 1597 | getpass "^0.1.1" 1598 | optionalDependencies: 1599 | bcrypt-pbkdf "^1.0.0" 1600 | ecc-jsbn "~0.1.1" 1601 | jsbn "~0.1.0" 1602 | tweetnacl "~0.14.0" 1603 | 1604 | stat-mode@^0.2.2: 1605 | version "0.2.2" 1606 | resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" 1607 | 1608 | string-width@^1.0.1: 1609 | version "1.0.2" 1610 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1611 | dependencies: 1612 | code-point-at "^1.0.0" 1613 | is-fullwidth-code-point "^1.0.0" 1614 | strip-ansi "^3.0.0" 1615 | 1616 | string-width@^2.0.0, string-width@^2.1.1: 1617 | version "2.1.1" 1618 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1619 | dependencies: 1620 | is-fullwidth-code-point "^2.0.0" 1621 | strip-ansi "^4.0.0" 1622 | 1623 | string_decoder@~0.10.x: 1624 | version "0.10.31" 1625 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1626 | 1627 | string_decoder@~1.1.1: 1628 | version "1.1.1" 1629 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1630 | dependencies: 1631 | safe-buffer "~5.1.0" 1632 | 1633 | stringstream@~0.0.5: 1634 | version "0.0.5" 1635 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1636 | 1637 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1638 | version "3.0.1" 1639 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1640 | dependencies: 1641 | ansi-regex "^2.0.0" 1642 | 1643 | strip-ansi@^4.0.0: 1644 | version "4.0.0" 1645 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1646 | dependencies: 1647 | ansi-regex "^3.0.0" 1648 | 1649 | strip-bom@^2.0.0: 1650 | version "2.0.0" 1651 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1652 | dependencies: 1653 | is-utf8 "^0.2.0" 1654 | 1655 | strip-eof@^1.0.0: 1656 | version "1.0.0" 1657 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1658 | 1659 | strip-indent@^1.0.1: 1660 | version "1.0.1" 1661 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 1662 | dependencies: 1663 | get-stdin "^4.0.1" 1664 | 1665 | strip-json-comments@~2.0.1: 1666 | version "2.0.1" 1667 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1668 | 1669 | sumchecker@^1.2.0: 1670 | version "1.3.1" 1671 | resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.1.tgz#79bb3b4456dd04f18ebdbc0d703a1d1daec5105d" 1672 | dependencies: 1673 | debug "^2.2.0" 1674 | es6-promise "^4.0.5" 1675 | 1676 | sumchecker@^2.0.2: 1677 | version "2.0.2" 1678 | resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" 1679 | dependencies: 1680 | debug "^2.2.0" 1681 | 1682 | supports-color@^5.3.0: 1683 | version "5.4.0" 1684 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1685 | dependencies: 1686 | has-flag "^3.0.0" 1687 | 1688 | temp-file@^3.1.1, temp-file@^3.1.2: 1689 | version "3.1.2" 1690 | resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.1.2.tgz#54ba4084097558e8ff2ad1e4bd84841ef2804043" 1691 | dependencies: 1692 | async-exit-hook "^2.0.1" 1693 | bluebird-lst "^1.0.5" 1694 | fs-extra-p "^4.6.0" 1695 | lazy-val "^1.0.3" 1696 | 1697 | term-size@^1.2.0: 1698 | version "1.2.0" 1699 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 1700 | dependencies: 1701 | execa "^0.7.0" 1702 | 1703 | throttleit@0.0.2: 1704 | version "0.0.2" 1705 | resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" 1706 | 1707 | through2@~0.2.3: 1708 | version "0.2.3" 1709 | resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" 1710 | dependencies: 1711 | readable-stream "~1.1.9" 1712 | xtend "~2.1.1" 1713 | 1714 | timed-out@^4.0.0: 1715 | version "4.0.1" 1716 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 1717 | 1718 | tough-cookie@~2.3.3: 1719 | version "2.3.4" 1720 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" 1721 | dependencies: 1722 | punycode "^1.4.1" 1723 | 1724 | trim-newlines@^1.0.0: 1725 | version "1.0.0" 1726 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 1727 | 1728 | truncate-utf8-bytes@^1.0.0: 1729 | version "1.0.2" 1730 | resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" 1731 | dependencies: 1732 | utf8-byte-length "^1.0.1" 1733 | 1734 | tunnel-agent@^0.6.0: 1735 | version "0.6.0" 1736 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 1737 | dependencies: 1738 | safe-buffer "^5.0.1" 1739 | 1740 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1741 | version "0.14.5" 1742 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1743 | 1744 | typedarray@^0.0.6: 1745 | version "0.0.6" 1746 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1747 | 1748 | unique-string@^1.0.0: 1749 | version "1.0.0" 1750 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 1751 | dependencies: 1752 | crypto-random-string "^1.0.0" 1753 | 1754 | universalify@^0.1.0: 1755 | version "0.1.1" 1756 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" 1757 | 1758 | unzip-response@^2.0.1: 1759 | version "2.0.1" 1760 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 1761 | 1762 | update-notifier@^2.3.0: 1763 | version "2.5.0" 1764 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 1765 | dependencies: 1766 | boxen "^1.2.1" 1767 | chalk "^2.0.1" 1768 | configstore "^3.0.0" 1769 | import-lazy "^2.1.0" 1770 | is-ci "^1.0.10" 1771 | is-installed-globally "^0.1.0" 1772 | is-npm "^1.0.0" 1773 | latest-version "^3.0.0" 1774 | semver-diff "^2.0.0" 1775 | xdg-basedir "^3.0.0" 1776 | 1777 | uri-js@^4.2.1: 1778 | version "4.2.2" 1779 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 1780 | dependencies: 1781 | punycode "^2.1.0" 1782 | 1783 | url-parse-lax@^1.0.0: 1784 | version "1.0.0" 1785 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 1786 | dependencies: 1787 | prepend-http "^1.0.1" 1788 | 1789 | utf8-byte-length@^1.0.1: 1790 | version "1.0.4" 1791 | resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" 1792 | 1793 | util-deprecate@~1.0.1: 1794 | version "1.0.2" 1795 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1796 | 1797 | uuid@^3.1.0: 1798 | version "3.2.1" 1799 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" 1800 | 1801 | validate-npm-package-license@^3.0.1: 1802 | version "3.0.3" 1803 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 1804 | dependencies: 1805 | spdx-correct "^3.0.0" 1806 | spdx-expression-parse "^3.0.0" 1807 | 1808 | verror@1.10.0: 1809 | version "1.10.0" 1810 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 1811 | dependencies: 1812 | assert-plus "^1.0.0" 1813 | core-util-is "1.0.2" 1814 | extsprintf "^1.2.0" 1815 | 1816 | which-module@^2.0.0: 1817 | version "2.0.0" 1818 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1819 | 1820 | which@^1.2.9: 1821 | version "1.3.0" 1822 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 1823 | dependencies: 1824 | isexe "^2.0.0" 1825 | 1826 | widest-line@^2.0.0: 1827 | version "2.0.0" 1828 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" 1829 | dependencies: 1830 | string-width "^2.1.1" 1831 | 1832 | wrap-ansi@^2.0.0: 1833 | version "2.1.0" 1834 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 1835 | dependencies: 1836 | string-width "^1.0.1" 1837 | strip-ansi "^3.0.1" 1838 | 1839 | wrappy@1: 1840 | version "1.0.2" 1841 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1842 | 1843 | write-file-atomic@^2.0.0: 1844 | version "2.3.0" 1845 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 1846 | dependencies: 1847 | graceful-fs "^4.1.11" 1848 | imurmurhash "^0.1.4" 1849 | signal-exit "^3.0.2" 1850 | 1851 | xdg-basedir@^3.0.0: 1852 | version "3.0.0" 1853 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 1854 | 1855 | xmlbuilder@8.2.2: 1856 | version "8.2.2" 1857 | resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" 1858 | 1859 | xmldom@0.1.x: 1860 | version "0.1.27" 1861 | resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" 1862 | 1863 | xtend@~2.1.1: 1864 | version "2.1.2" 1865 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" 1866 | dependencies: 1867 | object-keys "~0.4.0" 1868 | 1869 | y18n@^3.2.1: 1870 | version "3.2.1" 1871 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 1872 | 1873 | yallist@^2.1.2: 1874 | version "2.1.2" 1875 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1876 | 1877 | yargs-parser@^9.0.2: 1878 | version "9.0.2" 1879 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" 1880 | dependencies: 1881 | camelcase "^4.1.0" 1882 | 1883 | yargs@^11.0.0: 1884 | version "11.0.0" 1885 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" 1886 | dependencies: 1887 | cliui "^4.0.0" 1888 | decamelize "^1.1.1" 1889 | find-up "^2.1.0" 1890 | get-caller-file "^1.0.1" 1891 | os-locale "^2.0.0" 1892 | require-directory "^2.1.1" 1893 | require-main-filename "^1.0.1" 1894 | set-blocking "^2.0.0" 1895 | string-width "^2.0.0" 1896 | which-module "^2.0.0" 1897 | y18n "^3.2.1" 1898 | yargs-parser "^9.0.2" 1899 | 1900 | yauzl@2.4.1: 1901 | version "2.4.1" 1902 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" 1903 | dependencies: 1904 | fd-slicer "~1.0.1" 1905 | --------------------------------------------------------------------------------