├── .gitignore ├── LICENSE.md ├── README.md ├── now.json ├── package.json ├── src ├── auth.js ├── callback.js ├── helpers │ └── index.js ├── index.js └── lib │ └── oauth.js ├── tsconfig.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | .env 4 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Maximilian Stoiber 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `micro-oauth` 2 | 3 | A tiny microservice that makes it easier to add OAuth authentication to your application. 4 | This supports any provider that follows the OAuth2 protocol, like GitHub and Instagram. 5 | 6 | ## Usage 7 | 8 | ### Clone this repo 9 | 10 | Clone the repo: 11 | 12 | ```sh 13 | git clone git@github.com:brunolemos/micro-oauth.git 14 | ``` 15 | 16 | ### Enviroment variables 17 | 18 | Edit the `env` field inside `now.json`. Example: 19 | 20 | ```js 21 | { 22 | // The provider you are authenticating on 23 | "PROVIDER": "GitHub", 24 | // or Instagram, ... 25 | 26 | // The provider authorize url (to request permissions from the user) 27 | "AUTHORIZE_URL": "https://github.com/login/oauth/authorize", 28 | // or https://www.instagram.com/oauth/authorize, ... 29 | 30 | // The URL to redirect the user to once the authentication was successful 31 | // PS: You can also pass this as a ?callback_url parameter on AUTHORIZE_URL env variable above 32 | "CALLBACK_URL": "myapp://oauth/github", 33 | // or http://localhost:1234/my/oauth/callback/xxx, ... 34 | 35 | // Your application client id 36 | "CLIENT_ID": "abc123", 37 | 38 | // Your application client secret 39 | "CLIENT_SECRET": "abc123", 40 | 41 | // Provider's url to get the access token 42 | "GET_TOKEN_URL": "https://github.com/login/oauth/access_token" 43 | // or https://api.instagram.com/oauth/access_token, ... 44 | } 45 | ``` 46 | 47 | > Create an application on the provider website (e.g. [GitHub](https://github.com/settings/applications/new), [Instagram](https://www.instagram.com/developer/clients/register/), ...) to get your `CLIENT_ID` and `CLIENT_SECRET` if you haven't done that already. 48 | 49 | ### Deploy 50 | 51 | ```sh 52 | now 53 | ``` 54 | 55 | 56 | ### More details 57 | 58 | To request people authorization, you need to send them to `http://localhost:3000/` or the url generated by `now`. 59 | 60 | > You can pass a `?scope=` query param to set the permissions you request from the user, check the provider docs ([GitHub](https://developer.github.com/v3/oauth/#scopes), [Instagram](https://www.instagram.com/developer/authorization/), ...) 61 | > You can actually pass any other parameter and they will be passed to the callback as well 62 | 63 | When authentication was successful, the user will be redirected to the `CALLBACK_URL` with the `access_token` query param set to the provider access token. You can then use that token to interact with the Provider API! (see: [GitHub API](https://developer.github.com/v3/), [Instagram API](https://www.instagram.com/developer/endpoints/), ...) 64 | 65 | > E.g. setting `CALLBACK_URL=myapp://oauth/github` will redirect them to `myapp://oauth/github/?access_token=abc123`. (where `abc123` is the provided access token) 66 | 67 | > If you passed other parameters to AUTHORIZE_URL, e.g. http://xxx.com/?xxx=1, it will be passed to the callback url, e.g. http://callbackurl.com/?access_token=abc123&xxx=1 68 | 69 | ### Finish setup 70 | 71 | To make this work you have to set the authorization callback URL on the provider website to whatever URL `now` gave you: 72 | 73 | ![Authorization callback URL: 'https://your-url.now.sh/callback'](https://s19.postimg.org/espmt065v/Screen_Shot_2017_02_28_at_02_57_26.png) 74 | 75 | or localhost for testing: 76 | 77 | ![Authorization callback URL: 'http://localhost:3000/callback'](https://s19.postimg.org/ib1mpe71v/Screen_Shot_2017_02_28_at_02_56_54.png) 78 | 79 | ### Error handling 80 | 81 | In case an error happens on the server, the user will be redirected to the `CALLBACK_URL` with the `error` query param set to a relevant error message. 82 | 83 | ## License 84 | 85 | Copyright (c) 2018 [Bruno Lemos](https://twitter.com/brunolemos) & [Maximilian Stoiber](https://twitter.com/mxstbr), licensed under the MIT license. 86 | See [LICENSE.md](LICENSE.md) for more information. 87 | -------------------------------------------------------------------------------- /now.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "micro-oauth", 3 | "version": 2, 4 | "builds": [ 5 | { "src": "src/auth.js", "use": "@now/node" }, 6 | { "src": "src/callback.js", "use": "@now/node" } 7 | ], 8 | "routes": [ 9 | { "src": "/callback", "dest": "src/callback.js" }, 10 | { "src": "/", "dest": "src/auth.js" } 11 | ], 12 | "regions": ["gru1"], 13 | "env": { 14 | "PROVIDER": "GitHub", 15 | "AUTHORIZE_URL": "https://github.com/login/oauth/authorize", 16 | "CALLBACK_URL": "", 17 | "CLIENT_ID": "", 18 | "CLIENT_SECRET": "", 19 | "GET_TOKEN_URL": "https://github.com/login/oauth/access_token" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "micro-oauth", 3 | "version": "3.0.1", 4 | "description": "", 5 | "main": "src/index.js", 6 | "scripts": { 7 | "start": "nodemon --exec \"micro\" -e \"js\"" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/brunolemos/micro-oauth.git" 12 | }, 13 | "author": "Bruno Lemos (https://twitter.com/brunolemos)", 14 | "contributors": [ 15 | { 16 | "name": "Bruno Lemos", 17 | "email": "bruno@brunolemos.org", 18 | "url": "https://twitter.com/brunolemos" 19 | }, 20 | { 21 | "name": "Max Stoiber", 22 | "email": "contact@mxstbr.com", 23 | "url": "http://mxstbr.com/" 24 | } 25 | ], 26 | "bugs": { 27 | "url": "https://github.com/brunolemos/micro-oauth/issues" 28 | }, 29 | "homepage": "https://github.com/brunolemos/micro-oauth.git#readme", 30 | "dependencies": { 31 | "axios": "^0.15.3", 32 | "lodash": "^4.17.4", 33 | "qs": "^6.3.1", 34 | "url": "^0.11.0" 35 | }, 36 | "devDependencies": { 37 | "micro": "^9.3.3", 38 | "microrouter": "^3.1.3", 39 | "nodemon": "^1.11.0" 40 | }, 41 | "license": "MIT" 42 | } 43 | -------------------------------------------------------------------------------- /src/auth.js: -------------------------------------------------------------------------------- 1 | const url = require('url') 2 | 3 | const oauth = require('./lib/oauth') 4 | const { getCallbackURLWithQuery, mergeQueryWithURL } = require('./helpers') 5 | 6 | module.exports = (req, res) => { 7 | req.query = url.parse(req.url, true).query 8 | 9 | return oauth.authorize( 10 | req, 11 | res, 12 | { AUTHORIZE_URL: process.env.AUTHORIZE_URL }, 13 | Object.assign({}, req.query, { 14 | client_id: process.env.CLIENT_ID, 15 | redirect_uri: getCallbackURLWithQuery(req), 16 | response_type: 'code', 17 | }) 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /src/callback.js: -------------------------------------------------------------------------------- 1 | const url = require('url') 2 | 3 | const oauth = require('./lib/oauth') 4 | const { getCallbackURLWithQuery, mergeQueryWithURL } = require('./helpers') 5 | 6 | module.exports = (req, res) => { 7 | req.query = url.parse(req.url, true).query 8 | 9 | return oauth.callback( 10 | req, 11 | res, 12 | { 13 | PROVIDER: process.env.PROVIDER, 14 | CALLBACK_URL: req.query.callback_url || process.env.CALLBACK_URL, 15 | CLIENT_ID: process.env.CLIENT_ID, 16 | CLIENT_SECRET: process.env.CLIENT_SECRET, 17 | GET_TOKEN_URL: process.env.GET_TOKEN_URL, 18 | }, 19 | { 20 | grant_type: 'authorization_code', 21 | redirect_uri: getCallbackURLWithQuery(req), 22 | } 23 | ) 24 | } 25 | -------------------------------------------------------------------------------- /src/helpers/index.js: -------------------------------------------------------------------------------- 1 | const omit = require('lodash/omit') 2 | const qs = require('qs') 3 | 4 | const oauth = require('../lib/oauth') 5 | 6 | exports.mergeQueryWithURL = (url, ...queryObjs) => { 7 | const [, urlWithoutQuery, queryStringFromURL] = 8 | (url || '').match(/([^?]+)[?]?(.*)/) || [] 9 | const queryFromURL = qs.parse(queryStringFromURL) 10 | 11 | const mergedQuery = Object.assign({}, ...queryObjs, queryFromURL) 12 | const mergedQueryString = qs.stringify(mergedQuery) || '' 13 | 14 | return `${urlWithoutQuery || ''}?${mergedQueryString}` 15 | } 16 | 17 | exports.getBaseCallbackURL = req => `${oauth.getCurrentHostURL(req)}/callback` 18 | 19 | exports.getCallbackURLWithQuery = (req, query = req.query) => { 20 | return exports.mergeQueryWithURL( 21 | exports.getBaseCallbackURL(req), 22 | omit(query, [ 23 | 'client_id', 24 | 'code', 25 | 'grant_type', 26 | 'redirect_uri', 27 | 'response_type', 28 | 'scope', 29 | ]) 30 | ) 31 | } 32 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | const { get, router } = require('microrouter') 2 | 3 | const nowConfig = require('../now.json') 4 | Object.assign(nowConfig.env, process.env) 5 | 6 | module.exports = router( 7 | get('/', require('./auth')), 8 | get('/callback', require('./callback')) 9 | ) 10 | -------------------------------------------------------------------------------- /src/lib/oauth.js: -------------------------------------------------------------------------------- 1 | const qs = require('qs') 2 | const axios = require('axios') 3 | 4 | const { mergeQueryWithURL } = require('../helpers') 5 | 6 | const redirectUsingHTML = (res, statusCode, url) => { 7 | res.writeHead(statusCode || 302, { 'content-type': 'text/html' }) 8 | res.end( 9 | ` 10 | 11 | 12 | Redirecting... 13 | ` 14 | ) 15 | } 16 | 17 | const redirectUsingHTMLAndPostMessage = (res, statusCode, url) => { 18 | res.writeHead(statusCode || 302, { 'content-type': 'text/html' }) 19 | res.end( 20 | ` 21 | 22 | Redirecting... 23 | ` 48 | ) 49 | } 50 | 51 | const isLocalhost = host => 52 | host.indexOf('localhost') >= 0 || 53 | host.indexOf('0.0.0.0') >= 0 || 54 | host.indexOf('127.0.0.1') >= 0 55 | 56 | exports.getCurrentHostURL = req => 57 | isLocalhost(req.headers.host) 58 | ? `http://${req.headers.host.replace(/(0.0.0.0)|(127.0.0.1)/, 'localhost')}` 59 | : `https://${req.headers.host}` 60 | 61 | exports.authorize = (req, res, { AUTHORIZE_URL }, _query = req.query) => { 62 | redirectUsingHTML(res, 302, mergeQueryWithURL(AUTHORIZE_URL, _query)) 63 | } 64 | 65 | exports.callback = async ( 66 | req, 67 | res, 68 | { 69 | CALLBACK_URL, 70 | CLIENT_ID, 71 | CLIENT_SECRET, 72 | GET_TOKEN_URL, 73 | PROVIDER = 'OAuth provider', 74 | }, 75 | _query = req.query, 76 | _callback = function() {} 77 | ) => { 78 | const { code } = req.query 79 | 80 | const callback = _callback || function() {} 81 | const redirectWithData = (statusCode, data) => { 82 | callback(data.error || null, data.error ? null : data) 83 | 84 | const query = Object.assign({}, req.query, data) 85 | query.callback_url = query.callback_url || CALLBACK_URL 86 | 87 | const url = mergeQueryWithURL(CALLBACK_URL, query) 88 | redirectUsingHTMLAndPostMessage(res, statusCode, url) 89 | } 90 | 91 | if (!code) { 92 | redirectWithData(401, { error: 'Provide code query param' }) 93 | return 94 | } 95 | 96 | try { 97 | const { status, data } = await axios.post( 98 | GET_TOKEN_URL, 99 | qs.stringify( 100 | Object.assign( 101 | {}, 102 | { 103 | client_id: CLIENT_ID, 104 | client_secret: CLIENT_SECRET, 105 | code, 106 | }, 107 | _query 108 | ) 109 | ) 110 | ) 111 | 112 | if (status === 200 && data) { 113 | const result = typeof data === 'object' ? data : qs.parse(data) 114 | 115 | if (result.error) { 116 | redirectWithData(401, { error: result.error_description }) 117 | } else { 118 | result.access_token = result.access_token || undefined 119 | redirectWithData(200, result) 120 | } 121 | } else { 122 | redirectWithData(500, { error: `${PROVIDER} server error.` }) 123 | } 124 | } catch (err) { 125 | console.error('err', err) 126 | const statusCode = (((err || {}).response || {}).data || {}).code || 500 127 | const message = 128 | (((err || {}).response || {}).data || {}).error_message || 129 | `Please provide CALLBACK_URL, CLIENT_ID, CLIENT_SECRET and GET_TOKEN_URL variables. (or ${PROVIDER} might be down)` 130 | 131 | redirectWithData(statusCode, { error: message }) 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "noEmit": true 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /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.0" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 8 | integrity sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8= 9 | 10 | ansi-regex@^2.0.0: 11 | version "2.1.1" 12 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 13 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 14 | 15 | ansi-styles@^2.2.1: 16 | version "2.2.1" 17 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 18 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 19 | 20 | ansi-styles@^3.2.1: 21 | version "3.2.1" 22 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 23 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 24 | dependencies: 25 | color-convert "^1.9.0" 26 | 27 | anymatch@^1.3.0: 28 | version "1.3.0" 29 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 30 | integrity sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc= 31 | dependencies: 32 | arrify "^1.0.0" 33 | micromatch "^2.1.5" 34 | 35 | aproba@^1.0.3: 36 | version "1.1.1" 37 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" 38 | integrity sha1-ldNgDwdxCqDpKYxyatXs8urLq6s= 39 | 40 | are-we-there-yet@~1.1.2: 41 | version "1.1.2" 42 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" 43 | integrity sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM= 44 | dependencies: 45 | delegates "^1.0.0" 46 | readable-stream "^2.0.0 || ^1.1.13" 47 | 48 | arg@2.0.0: 49 | version "2.0.0" 50 | resolved "http://registry.npmjs.org/arg/-/arg-2.0.0.tgz#c06e7ff69ab05b3a4a03ebe0407fac4cba657545" 51 | integrity sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w== 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 | integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= 57 | dependencies: 58 | arr-flatten "^1.0.1" 59 | 60 | arr-flatten@^1.0.1: 61 | version "1.0.1" 62 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" 63 | integrity sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs= 64 | 65 | array-unique@^0.2.1: 66 | version "0.2.1" 67 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 68 | integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= 69 | 70 | arrify@^1.0.0: 71 | version "1.0.1" 72 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 73 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 74 | 75 | asn1@~0.2.3: 76 | version "0.2.3" 77 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 78 | integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y= 79 | 80 | assert-plus@^0.2.0: 81 | version "0.2.0" 82 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 83 | integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ= 84 | 85 | assert-plus@^1.0.0: 86 | version "1.0.0" 87 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 88 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 89 | 90 | async-each@^1.0.0: 91 | version "1.0.1" 92 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 93 | integrity sha1-GdOGodntxufByF04iu28xW0zYC0= 94 | 95 | asynckit@^0.4.0: 96 | version "0.4.0" 97 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 98 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 99 | 100 | aws-sign2@~0.6.0: 101 | version "0.6.0" 102 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 103 | integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8= 104 | 105 | aws4@^1.2.1: 106 | version "1.6.0" 107 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 108 | integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4= 109 | 110 | axios@^0.15.3: 111 | version "0.15.3" 112 | resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053" 113 | integrity sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM= 114 | dependencies: 115 | follow-redirects "1.0.0" 116 | 117 | balanced-match@^0.4.1: 118 | version "0.4.2" 119 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 120 | integrity sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg= 121 | 122 | bcrypt-pbkdf@^1.0.0: 123 | version "1.0.1" 124 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 125 | integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40= 126 | dependencies: 127 | tweetnacl "^0.14.3" 128 | 129 | binary-extensions@^1.0.0: 130 | version "1.8.0" 131 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 132 | integrity sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q= 133 | 134 | block-stream@*: 135 | version "0.0.9" 136 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 137 | integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= 138 | dependencies: 139 | inherits "~2.0.0" 140 | 141 | boom@2.x.x: 142 | version "2.10.1" 143 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 144 | integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8= 145 | dependencies: 146 | hoek "2.x.x" 147 | 148 | brace-expansion@^1.0.0: 149 | version "1.1.6" 150 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" 151 | integrity sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk= 152 | dependencies: 153 | balanced-match "^0.4.1" 154 | concat-map "0.0.1" 155 | 156 | braces@^1.8.2: 157 | version "1.8.5" 158 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 159 | integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= 160 | dependencies: 161 | expand-range "^1.8.1" 162 | preserve "^0.2.0" 163 | repeat-element "^1.1.2" 164 | 165 | buffer-shims@^1.0.0: 166 | version "1.0.0" 167 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 168 | integrity sha1-mXjOMXOIxkmth5MCjDR37wRKi1E= 169 | 170 | bytes@3.0.0: 171 | version "3.0.0" 172 | resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 173 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 174 | 175 | caseless@~0.11.0: 176 | version "0.11.0" 177 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" 178 | integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c= 179 | 180 | chalk@2.4.0: 181 | version "2.4.0" 182 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52" 183 | integrity sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw== 184 | dependencies: 185 | ansi-styles "^3.2.1" 186 | escape-string-regexp "^1.0.5" 187 | supports-color "^5.3.0" 188 | 189 | chalk@^1.0.0, chalk@^1.1.1: 190 | version "1.1.3" 191 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 192 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 193 | dependencies: 194 | ansi-styles "^2.2.1" 195 | escape-string-regexp "^1.0.2" 196 | has-ansi "^2.0.0" 197 | strip-ansi "^3.0.0" 198 | supports-color "^2.0.0" 199 | 200 | chokidar@^1.4.3: 201 | version "1.6.1" 202 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" 203 | integrity sha1-L0RHq16W5Q+z14n9kNTHLg5McMI= 204 | dependencies: 205 | anymatch "^1.3.0" 206 | async-each "^1.0.0" 207 | glob-parent "^2.0.0" 208 | inherits "^2.0.1" 209 | is-binary-path "^1.0.0" 210 | is-glob "^2.0.0" 211 | path-is-absolute "^1.0.0" 212 | readdirp "^2.0.0" 213 | optionalDependencies: 214 | fsevents "^1.0.0" 215 | 216 | code-point-at@^1.0.0: 217 | version "1.1.0" 218 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 219 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 220 | 221 | color-convert@^1.9.0: 222 | version "1.9.3" 223 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 224 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 225 | dependencies: 226 | color-name "1.1.3" 227 | 228 | color-name@1.1.3: 229 | version "1.1.3" 230 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 231 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 232 | 233 | combined-stream@^1.0.5, combined-stream@~1.0.5: 234 | version "1.0.5" 235 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 236 | integrity sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk= 237 | dependencies: 238 | delayed-stream "~1.0.0" 239 | 240 | commander@^2.9.0: 241 | version "2.9.0" 242 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 243 | integrity sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q= 244 | dependencies: 245 | graceful-readlink ">= 1.0.0" 246 | 247 | concat-map@0.0.1: 248 | version "0.0.1" 249 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 250 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 251 | 252 | configstore@^1.0.0: 253 | version "1.4.0" 254 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" 255 | integrity sha1-w1eB0FAdJowlxUuLF/YkDopPsCE= 256 | dependencies: 257 | graceful-fs "^4.1.2" 258 | mkdirp "^0.5.0" 259 | object-assign "^4.0.1" 260 | os-tmpdir "^1.0.0" 261 | osenv "^0.1.0" 262 | uuid "^2.0.1" 263 | write-file-atomic "^1.1.2" 264 | xdg-basedir "^2.0.0" 265 | 266 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 267 | version "1.1.0" 268 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 269 | integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 270 | 271 | content-type@1.0.4: 272 | version "1.0.4" 273 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 274 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 275 | 276 | core-util-is@~1.0.0: 277 | version "1.0.2" 278 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 279 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 280 | 281 | cryptiles@2.x.x: 282 | version "2.0.5" 283 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 284 | integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g= 285 | dependencies: 286 | boom "2.x.x" 287 | 288 | dashdash@^1.12.0: 289 | version "1.14.1" 290 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 291 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 292 | dependencies: 293 | assert-plus "^1.0.0" 294 | 295 | debug@^2.2.0: 296 | version "2.6.1" 297 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.1.tgz#79855090ba2c4e3115cc7d8769491d58f0491351" 298 | integrity sha1-eYVQkLosTjEVzH2HaUkdWPBJE1E= 299 | dependencies: 300 | ms "0.7.2" 301 | 302 | debug@~2.2.0: 303 | version "2.2.0" 304 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" 305 | integrity sha1-+HBX6ZWxofauaklgZkE3vFbwOdo= 306 | dependencies: 307 | ms "0.7.1" 308 | 309 | deep-extend@~0.4.0: 310 | version "0.4.1" 311 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" 312 | integrity sha1-7+QRPQgIX05vlod1mBD4B0aeIlM= 313 | 314 | delayed-stream@~1.0.0: 315 | version "1.0.0" 316 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 317 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 318 | 319 | delegates@^1.0.0: 320 | version "1.0.0" 321 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 322 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 323 | 324 | depd@1.1.1: 325 | version "1.1.1" 326 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 327 | integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= 328 | 329 | duplexer@~0.1.1: 330 | version "0.1.1" 331 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 332 | integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= 333 | 334 | duplexify@^3.2.0: 335 | version "3.5.0" 336 | resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" 337 | integrity sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ= 338 | dependencies: 339 | end-of-stream "1.0.0" 340 | inherits "^2.0.1" 341 | readable-stream "^2.0.0" 342 | stream-shift "^1.0.0" 343 | 344 | ecc-jsbn@~0.1.1: 345 | version "0.1.1" 346 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 347 | integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU= 348 | dependencies: 349 | jsbn "~0.1.0" 350 | 351 | end-of-stream@1.0.0: 352 | version "1.0.0" 353 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" 354 | integrity sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4= 355 | dependencies: 356 | once "~1.3.0" 357 | 358 | es6-promise@^3.0.2: 359 | version "3.3.1" 360 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" 361 | integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= 362 | 363 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 364 | version "1.0.5" 365 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 366 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 367 | 368 | event-stream@~3.3.0: 369 | version "3.3.4" 370 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 371 | integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= 372 | dependencies: 373 | duplexer "~0.1.1" 374 | from "~0" 375 | map-stream "~0.1.0" 376 | pause-stream "0.0.11" 377 | split "0.3" 378 | stream-combiner "~0.0.4" 379 | through "~2.3.1" 380 | 381 | expand-brackets@^0.1.4: 382 | version "0.1.5" 383 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 384 | integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= 385 | dependencies: 386 | is-posix-bracket "^0.1.0" 387 | 388 | expand-range@^1.8.1: 389 | version "1.8.2" 390 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 391 | integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= 392 | dependencies: 393 | fill-range "^2.1.0" 394 | 395 | extend@~3.0.0: 396 | version "3.0.0" 397 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" 398 | integrity sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ= 399 | 400 | extglob@^0.3.1: 401 | version "0.3.2" 402 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 403 | integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= 404 | dependencies: 405 | is-extglob "^1.0.0" 406 | 407 | extsprintf@1.0.2: 408 | version "1.0.2" 409 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 410 | integrity sha1-4QgOBljjALBilJkMxw4VAiNf1VA= 411 | 412 | filename-regex@^2.0.0: 413 | version "2.0.0" 414 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" 415 | integrity sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U= 416 | 417 | fill-range@^2.1.0: 418 | version "2.2.3" 419 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 420 | integrity sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM= 421 | dependencies: 422 | is-number "^2.1.0" 423 | isobject "^2.0.0" 424 | randomatic "^1.1.3" 425 | repeat-element "^1.1.2" 426 | repeat-string "^1.5.2" 427 | 428 | follow-redirects@1.0.0: 429 | version "1.0.0" 430 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37" 431 | integrity sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc= 432 | dependencies: 433 | debug "^2.2.0" 434 | 435 | for-in@^0.1.5: 436 | version "0.1.6" 437 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" 438 | integrity sha1-yfluib+tGKVFr17D7TUqHZ5bTcg= 439 | 440 | for-own@^0.1.4: 441 | version "0.1.4" 442 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" 443 | integrity sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI= 444 | dependencies: 445 | for-in "^0.1.5" 446 | 447 | forever-agent@~0.6.1: 448 | version "0.6.1" 449 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 450 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 451 | 452 | form-data@~2.1.1: 453 | version "2.1.2" 454 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" 455 | integrity sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ= 456 | dependencies: 457 | asynckit "^0.4.0" 458 | combined-stream "^1.0.5" 459 | mime-types "^2.1.12" 460 | 461 | from@~0: 462 | version "0.1.3" 463 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" 464 | integrity sha1-72OsIGKsMqz3hi4NQLRLiW8i87w= 465 | 466 | fs.realpath@^1.0.0: 467 | version "1.0.0" 468 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 469 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 470 | 471 | fsevents@^1.0.0: 472 | version "1.1.1" 473 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" 474 | integrity sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8= 475 | dependencies: 476 | nan "^2.3.0" 477 | node-pre-gyp "^0.6.29" 478 | 479 | fstream-ignore@~1.0.5: 480 | version "1.0.5" 481 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 482 | integrity sha1-nDHa40dnAY/h0kmyTa2mfQktoQU= 483 | dependencies: 484 | fstream "^1.0.0" 485 | inherits "2" 486 | minimatch "^3.0.0" 487 | 488 | fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: 489 | version "1.0.10" 490 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" 491 | integrity sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI= 492 | dependencies: 493 | graceful-fs "^4.1.2" 494 | inherits "~2.0.0" 495 | mkdirp ">=0.5 0" 496 | rimraf "2" 497 | 498 | gauge@~2.7.1: 499 | version "2.7.3" 500 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.3.tgz#1c23855f962f17b3ad3d0dc7443f304542edfe09" 501 | integrity sha1-HCOFX5YvF7OtPQ3HRD8wRULt/gk= 502 | dependencies: 503 | aproba "^1.0.3" 504 | console-control-strings "^1.0.0" 505 | has-unicode "^2.0.0" 506 | object-assign "^4.1.0" 507 | signal-exit "^3.0.0" 508 | string-width "^1.0.1" 509 | strip-ansi "^3.0.1" 510 | wide-align "^1.1.0" 511 | 512 | generate-function@^2.0.0: 513 | version "2.0.0" 514 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 515 | integrity sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ= 516 | 517 | generate-object-property@^1.1.0: 518 | version "1.2.0" 519 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 520 | integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA= 521 | dependencies: 522 | is-property "^1.0.0" 523 | 524 | getpass@^0.1.1: 525 | version "0.1.6" 526 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" 527 | integrity sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY= 528 | dependencies: 529 | assert-plus "^1.0.0" 530 | 531 | glob-base@^0.3.0: 532 | version "0.3.0" 533 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 534 | integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= 535 | dependencies: 536 | glob-parent "^2.0.0" 537 | is-glob "^2.0.0" 538 | 539 | glob-parent@^2.0.0: 540 | version "2.0.0" 541 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 542 | integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= 543 | dependencies: 544 | is-glob "^2.0.0" 545 | 546 | glob@^7.0.5: 547 | version "7.1.1" 548 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 549 | integrity sha1-gFIR3wT6rxxjo2ADBs31reULLsg= 550 | dependencies: 551 | fs.realpath "^1.0.0" 552 | inflight "^1.0.4" 553 | inherits "2" 554 | minimatch "^3.0.2" 555 | once "^1.3.0" 556 | path-is-absolute "^1.0.0" 557 | 558 | got@^3.2.0: 559 | version "3.3.1" 560 | resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" 561 | integrity sha1-5dDtSvVfw+701WAHdp2YGSvLLso= 562 | dependencies: 563 | duplexify "^3.2.0" 564 | infinity-agent "^2.0.0" 565 | is-redirect "^1.0.0" 566 | is-stream "^1.0.0" 567 | lowercase-keys "^1.0.0" 568 | nested-error-stacks "^1.0.0" 569 | object-assign "^3.0.0" 570 | prepend-http "^1.0.0" 571 | read-all-stream "^3.0.0" 572 | timed-out "^2.0.0" 573 | 574 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 575 | version "4.1.11" 576 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 577 | integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= 578 | 579 | "graceful-readlink@>= 1.0.0": 580 | version "1.0.1" 581 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 582 | integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= 583 | 584 | har-validator@~2.0.6: 585 | version "2.0.6" 586 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" 587 | integrity sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0= 588 | dependencies: 589 | chalk "^1.1.1" 590 | commander "^2.9.0" 591 | is-my-json-valid "^2.12.4" 592 | pinkie-promise "^2.0.0" 593 | 594 | has-ansi@^2.0.0: 595 | version "2.0.0" 596 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 597 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 598 | dependencies: 599 | ansi-regex "^2.0.0" 600 | 601 | has-flag@^3.0.0: 602 | version "3.0.0" 603 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 604 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 605 | 606 | has-unicode@^2.0.0: 607 | version "2.0.1" 608 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 609 | integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= 610 | 611 | hawk@~3.1.3: 612 | version "3.1.3" 613 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 614 | integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ= 615 | dependencies: 616 | boom "2.x.x" 617 | cryptiles "2.x.x" 618 | hoek "2.x.x" 619 | sntp "1.x.x" 620 | 621 | hoek@2.x.x: 622 | version "2.16.3" 623 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 624 | integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0= 625 | 626 | http-errors@1.6.2: 627 | version "1.6.2" 628 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 629 | integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= 630 | dependencies: 631 | depd "1.1.1" 632 | inherits "2.0.3" 633 | setprototypeof "1.0.3" 634 | statuses ">= 1.3.1 < 2" 635 | 636 | http-signature@~1.1.0: 637 | version "1.1.1" 638 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 639 | integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8= 640 | dependencies: 641 | assert-plus "^0.2.0" 642 | jsprim "^1.2.2" 643 | sshpk "^1.7.0" 644 | 645 | iconv-lite@0.4.19: 646 | version "0.4.19" 647 | resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 648 | integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== 649 | 650 | ignore-by-default@^1.0.0: 651 | version "1.0.1" 652 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 653 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 654 | 655 | imurmurhash@^0.1.4: 656 | version "0.1.4" 657 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 658 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 659 | 660 | infinity-agent@^2.0.0: 661 | version "2.0.3" 662 | resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" 663 | integrity sha1-ReDi/3qesDCyfWK3SzdEt6esQhY= 664 | 665 | inflight@^1.0.4: 666 | version "1.0.6" 667 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 668 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 669 | dependencies: 670 | once "^1.3.0" 671 | wrappy "1" 672 | 673 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: 674 | version "2.0.3" 675 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 676 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 677 | 678 | ini@~1.3.0: 679 | version "1.3.4" 680 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 681 | integrity sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4= 682 | 683 | is-binary-path@^1.0.0: 684 | version "1.0.1" 685 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 686 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 687 | dependencies: 688 | binary-extensions "^1.0.0" 689 | 690 | is-buffer@^1.0.2: 691 | version "1.1.4" 692 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" 693 | integrity sha1-z8hszV3FpS+oBIkRHGkgxFfi2Ys= 694 | 695 | is-dotfile@^1.0.0: 696 | version "1.0.2" 697 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 698 | integrity sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0= 699 | 700 | is-equal-shallow@^0.1.3: 701 | version "0.1.3" 702 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 703 | integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= 704 | dependencies: 705 | is-primitive "^2.0.0" 706 | 707 | is-extendable@^0.1.1: 708 | version "0.1.1" 709 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 710 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 711 | 712 | is-extglob@^1.0.0: 713 | version "1.0.0" 714 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 715 | integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= 716 | 717 | is-finite@^1.0.0: 718 | version "1.0.2" 719 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 720 | integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= 721 | dependencies: 722 | number-is-nan "^1.0.0" 723 | 724 | is-fullwidth-code-point@^1.0.0: 725 | version "1.0.0" 726 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 727 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 728 | dependencies: 729 | number-is-nan "^1.0.0" 730 | 731 | is-glob@^2.0.0, is-glob@^2.0.1: 732 | version "2.0.1" 733 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 734 | integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= 735 | dependencies: 736 | is-extglob "^1.0.0" 737 | 738 | is-my-json-valid@^2.12.4: 739 | version "2.15.0" 740 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" 741 | integrity sha1-k27do8o8IR/ZjzstPgjaQ/eykVs= 742 | dependencies: 743 | generate-function "^2.0.0" 744 | generate-object-property "^1.1.0" 745 | jsonpointer "^4.0.0" 746 | xtend "^4.0.0" 747 | 748 | is-npm@^1.0.0: 749 | version "1.0.0" 750 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 751 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 752 | 753 | is-number@^2.0.2, is-number@^2.1.0: 754 | version "2.1.0" 755 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 756 | integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= 757 | dependencies: 758 | kind-of "^3.0.2" 759 | 760 | is-posix-bracket@^0.1.0: 761 | version "0.1.1" 762 | resolved "http://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 763 | integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= 764 | 765 | is-primitive@^2.0.0: 766 | version "2.0.0" 767 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 768 | integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= 769 | 770 | is-property@^1.0.0: 771 | version "1.0.2" 772 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 773 | integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= 774 | 775 | is-redirect@^1.0.0: 776 | version "1.0.0" 777 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 778 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 779 | 780 | is-stream@1.1.0, is-stream@^1.0.0: 781 | version "1.1.0" 782 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 783 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 784 | 785 | is-typedarray@~1.0.0: 786 | version "1.0.0" 787 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 788 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 789 | 790 | isarray@1.0.0, isarray@~1.0.0: 791 | version "1.0.0" 792 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 793 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 794 | 795 | isobject@^2.0.0: 796 | version "2.1.0" 797 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 798 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 799 | dependencies: 800 | isarray "1.0.0" 801 | 802 | isstream@~0.1.2: 803 | version "0.1.2" 804 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 805 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 806 | 807 | jodid25519@^1.0.0: 808 | version "1.0.2" 809 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" 810 | integrity sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc= 811 | dependencies: 812 | jsbn "~0.1.0" 813 | 814 | jsbn@~0.1.0: 815 | version "0.1.1" 816 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 817 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 818 | 819 | json-schema@0.2.3: 820 | version "0.2.3" 821 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 822 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 823 | 824 | json-stringify-safe@~5.0.1: 825 | version "5.0.1" 826 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 827 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 828 | 829 | jsonpointer@^4.0.0: 830 | version "4.0.1" 831 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 832 | integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk= 833 | 834 | jsprim@^1.2.2: 835 | version "1.3.1" 836 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" 837 | integrity sha1-KnJW9wQSop7jZwqspiWZTE3P8lI= 838 | dependencies: 839 | extsprintf "1.0.2" 840 | json-schema "0.2.3" 841 | verror "1.3.6" 842 | 843 | kind-of@^3.0.2: 844 | version "3.1.0" 845 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" 846 | integrity sha1-R11pil5J/15T0U4+cyQp3Iv0z0c= 847 | dependencies: 848 | is-buffer "^1.0.2" 849 | 850 | latest-version@^1.0.0: 851 | version "1.0.1" 852 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" 853 | integrity sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs= 854 | dependencies: 855 | package-json "^1.0.0" 856 | 857 | lodash._baseassign@^3.0.0: 858 | version "3.2.0" 859 | resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" 860 | integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= 861 | dependencies: 862 | lodash._basecopy "^3.0.0" 863 | lodash.keys "^3.0.0" 864 | 865 | lodash._basecopy@^3.0.0: 866 | version "3.0.1" 867 | resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" 868 | integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= 869 | 870 | lodash._bindcallback@^3.0.0: 871 | version "3.0.1" 872 | resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" 873 | integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= 874 | 875 | lodash._createassigner@^3.0.0: 876 | version "3.1.1" 877 | resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" 878 | integrity sha1-g4pbri/aymOsIt7o4Z+k5taXCxE= 879 | dependencies: 880 | lodash._bindcallback "^3.0.0" 881 | lodash._isiterateecall "^3.0.0" 882 | lodash.restparam "^3.0.0" 883 | 884 | lodash._getnative@^3.0.0: 885 | version "3.9.1" 886 | resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" 887 | integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= 888 | 889 | lodash._isiterateecall@^3.0.0: 890 | version "3.0.9" 891 | resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" 892 | integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= 893 | 894 | lodash.assign@^3.0.0: 895 | version "3.2.0" 896 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" 897 | integrity sha1-POnwI0tLIiPilrj6CsH+6OvKZPo= 898 | dependencies: 899 | lodash._baseassign "^3.0.0" 900 | lodash._createassigner "^3.0.0" 901 | lodash.keys "^3.0.0" 902 | 903 | lodash.defaults@^3.1.2: 904 | version "3.1.2" 905 | resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" 906 | integrity sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw= 907 | dependencies: 908 | lodash.assign "^3.0.0" 909 | lodash.restparam "^3.0.0" 910 | 911 | lodash.isarguments@^3.0.0: 912 | version "3.1.0" 913 | resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" 914 | integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= 915 | 916 | lodash.isarray@^3.0.0: 917 | version "3.0.4" 918 | resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" 919 | integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= 920 | 921 | lodash.keys@^3.0.0: 922 | version "3.1.2" 923 | resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" 924 | integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= 925 | dependencies: 926 | lodash._getnative "^3.0.0" 927 | lodash.isarguments "^3.0.0" 928 | lodash.isarray "^3.0.0" 929 | 930 | lodash.restparam@^3.0.0: 931 | version "3.6.1" 932 | resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" 933 | integrity sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU= 934 | 935 | lodash@^4.17.4: 936 | version "4.17.4" 937 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 938 | integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= 939 | 940 | lowercase-keys@^1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 943 | integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= 944 | 945 | map-stream@~0.1.0: 946 | version "0.1.0" 947 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 948 | integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= 949 | 950 | micro@^9.3.3: 951 | version "9.3.3" 952 | resolved "https://registry.npmjs.org/micro/-/micro-9.3.3.tgz#32728c7be15e807691ead85da27fd8117a8bca24" 953 | integrity sha512-GbCp4NFQguARch0odX+BuWDja2Kc1pbYZqWfRvEDihGFTJG8U77C0L+Owg2j7TPyhQ5Tc+7z/SxspRqjdiZCjQ== 954 | dependencies: 955 | arg "2.0.0" 956 | chalk "2.4.0" 957 | content-type "1.0.4" 958 | is-stream "1.1.0" 959 | raw-body "2.3.2" 960 | 961 | micromatch@^2.1.5: 962 | version "2.3.11" 963 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 964 | integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= 965 | dependencies: 966 | arr-diff "^2.0.0" 967 | array-unique "^0.2.1" 968 | braces "^1.8.2" 969 | expand-brackets "^0.1.4" 970 | extglob "^0.3.1" 971 | filename-regex "^2.0.0" 972 | is-extglob "^1.0.0" 973 | is-glob "^2.0.1" 974 | kind-of "^3.0.2" 975 | normalize-path "^2.0.1" 976 | object.omit "^2.0.0" 977 | parse-glob "^3.0.4" 978 | regex-cache "^0.4.2" 979 | 980 | microrouter@^3.1.3: 981 | version "3.1.3" 982 | resolved "https://registry.npmjs.org/microrouter/-/microrouter-3.1.3.tgz#1e45df77d3e2d773be5da129cfc7d5e6e6c86f4e" 983 | integrity sha1-HkXfd9Pi13O+XaEpz8fV5ubIb04= 984 | dependencies: 985 | url-pattern "^1.0.3" 986 | 987 | mime-db@~1.26.0: 988 | version "1.26.0" 989 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" 990 | integrity sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8= 991 | 992 | mime-types@^2.1.12, mime-types@~2.1.7: 993 | version "2.1.14" 994 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" 995 | integrity sha1-9+99l1g/yvO30oK2+LVnnaselO4= 996 | dependencies: 997 | mime-db "~1.26.0" 998 | 999 | minimatch@^3.0.0, minimatch@^3.0.2: 1000 | version "3.0.3" 1001 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" 1002 | integrity sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q= 1003 | dependencies: 1004 | brace-expansion "^1.0.0" 1005 | 1006 | minimist@0.0.8: 1007 | version "0.0.8" 1008 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1009 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 1010 | 1011 | minimist@^1.2.0: 1012 | version "1.2.0" 1013 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1014 | integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= 1015 | 1016 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@~0.5.1: 1017 | version "0.5.1" 1018 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1019 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 1020 | dependencies: 1021 | minimist "0.0.8" 1022 | 1023 | ms@0.7.1: 1024 | version "0.7.1" 1025 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" 1026 | integrity sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg= 1027 | 1028 | ms@0.7.2: 1029 | version "0.7.2" 1030 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" 1031 | integrity sha1-riXPJRKziFodldfwN4aNhDESR2U= 1032 | 1033 | nan@^2.3.0: 1034 | version "2.5.1" 1035 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.1.tgz#d5b01691253326a97a2bbee9e61c55d8d60351e2" 1036 | integrity sha1-1bAWkSUzJql6K77p5hxV2NYDUeI= 1037 | 1038 | nested-error-stacks@^1.0.0: 1039 | version "1.0.2" 1040 | resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" 1041 | integrity sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88= 1042 | dependencies: 1043 | inherits "~2.0.1" 1044 | 1045 | node-pre-gyp@^0.6.29: 1046 | version "0.6.33" 1047 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz#640ac55198f6a925972e0c16c4ac26a034d5ecc9" 1048 | integrity sha1-ZArFUZj2qSWXLgwWxKwmoDTV7Mk= 1049 | dependencies: 1050 | mkdirp "~0.5.1" 1051 | nopt "~3.0.6" 1052 | npmlog "^4.0.1" 1053 | rc "~1.1.6" 1054 | request "^2.79.0" 1055 | rimraf "~2.5.4" 1056 | semver "~5.3.0" 1057 | tar "~2.2.1" 1058 | tar-pack "~3.3.0" 1059 | 1060 | nodemon@^1.11.0: 1061 | version "1.11.0" 1062 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" 1063 | integrity sha1-ImxWK9KnsT09dRi0mtSCijYj0Gw= 1064 | dependencies: 1065 | chokidar "^1.4.3" 1066 | debug "^2.2.0" 1067 | es6-promise "^3.0.2" 1068 | ignore-by-default "^1.0.0" 1069 | lodash.defaults "^3.1.2" 1070 | minimatch "^3.0.0" 1071 | ps-tree "^1.0.1" 1072 | touch "1.0.0" 1073 | undefsafe "0.0.3" 1074 | update-notifier "0.5.0" 1075 | 1076 | nopt@~1.0.10: 1077 | version "1.0.10" 1078 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1079 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 1080 | dependencies: 1081 | abbrev "1" 1082 | 1083 | nopt@~3.0.6: 1084 | version "3.0.6" 1085 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 1086 | integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= 1087 | dependencies: 1088 | abbrev "1" 1089 | 1090 | normalize-path@^2.0.1: 1091 | version "2.0.1" 1092 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" 1093 | integrity sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o= 1094 | 1095 | npmlog@^4.0.1: 1096 | version "4.0.2" 1097 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" 1098 | integrity sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518= 1099 | dependencies: 1100 | are-we-there-yet "~1.1.2" 1101 | console-control-strings "~1.1.0" 1102 | gauge "~2.7.1" 1103 | set-blocking "~2.0.0" 1104 | 1105 | number-is-nan@^1.0.0: 1106 | version "1.0.1" 1107 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1108 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1109 | 1110 | oauth-sign@~0.8.1: 1111 | version "0.8.2" 1112 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1113 | integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM= 1114 | 1115 | object-assign@^3.0.0: 1116 | version "3.0.0" 1117 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" 1118 | integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= 1119 | 1120 | object-assign@^4.0.1, object-assign@^4.1.0: 1121 | version "4.1.1" 1122 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1123 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1124 | 1125 | object.omit@^2.0.0: 1126 | version "2.0.1" 1127 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1128 | integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= 1129 | dependencies: 1130 | for-own "^0.1.4" 1131 | is-extendable "^0.1.1" 1132 | 1133 | once@^1.3.0: 1134 | version "1.4.0" 1135 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1136 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1137 | dependencies: 1138 | wrappy "1" 1139 | 1140 | once@~1.3.0, once@~1.3.3: 1141 | version "1.3.3" 1142 | resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" 1143 | integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= 1144 | dependencies: 1145 | wrappy "1" 1146 | 1147 | os-homedir@^1.0.0: 1148 | version "1.0.2" 1149 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1150 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 1151 | 1152 | os-tmpdir@^1.0.0: 1153 | version "1.0.2" 1154 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1155 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1156 | 1157 | osenv@^0.1.0: 1158 | version "0.1.4" 1159 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1160 | integrity sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ= 1161 | dependencies: 1162 | os-homedir "^1.0.0" 1163 | os-tmpdir "^1.0.0" 1164 | 1165 | package-json@^1.0.0: 1166 | version "1.2.0" 1167 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" 1168 | integrity sha1-yOysCUInzfdqMWh07QXifMk5oOA= 1169 | dependencies: 1170 | got "^3.2.0" 1171 | registry-url "^3.0.0" 1172 | 1173 | parse-glob@^3.0.4: 1174 | version "3.0.4" 1175 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1176 | integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= 1177 | dependencies: 1178 | glob-base "^0.3.0" 1179 | is-dotfile "^1.0.0" 1180 | is-extglob "^1.0.0" 1181 | is-glob "^2.0.0" 1182 | 1183 | path-is-absolute@^1.0.0: 1184 | version "1.0.1" 1185 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1186 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1187 | 1188 | pause-stream@0.0.11: 1189 | version "0.0.11" 1190 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1191 | integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= 1192 | dependencies: 1193 | through "~2.3" 1194 | 1195 | pinkie-promise@^2.0.0: 1196 | version "2.0.1" 1197 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1198 | integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= 1199 | dependencies: 1200 | pinkie "^2.0.0" 1201 | 1202 | pinkie@^2.0.0: 1203 | version "2.0.4" 1204 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1205 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= 1206 | 1207 | prepend-http@^1.0.0: 1208 | version "1.0.4" 1209 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1210 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= 1211 | 1212 | preserve@^0.2.0: 1213 | version "0.2.0" 1214 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1215 | integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= 1216 | 1217 | process-nextick-args@~1.0.6: 1218 | version "1.0.7" 1219 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1220 | integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= 1221 | 1222 | ps-tree@^1.0.1: 1223 | version "1.1.0" 1224 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" 1225 | integrity sha1-tCGyQUDWID8e08dplrRCewjowBQ= 1226 | dependencies: 1227 | event-stream "~3.3.0" 1228 | 1229 | punycode@1.3.2: 1230 | version "1.3.2" 1231 | resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 1232 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 1233 | 1234 | punycode@^1.4.1: 1235 | version "1.4.1" 1236 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1237 | integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= 1238 | 1239 | qs@^6.3.1, qs@~6.3.0: 1240 | version "6.3.1" 1241 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.1.tgz#918c0b3bcd36679772baf135b1acb4c1651ed79d" 1242 | integrity sha1-kYwLO802Z5dyuvE1say0wWUe150= 1243 | 1244 | querystring@0.2.0: 1245 | version "0.2.0" 1246 | resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 1247 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 1248 | 1249 | randomatic@^1.1.3: 1250 | version "1.1.6" 1251 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 1252 | integrity sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs= 1253 | dependencies: 1254 | is-number "^2.0.2" 1255 | kind-of "^3.0.2" 1256 | 1257 | raw-body@2.3.2: 1258 | version "2.3.2" 1259 | resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 1260 | integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= 1261 | dependencies: 1262 | bytes "3.0.0" 1263 | http-errors "1.6.2" 1264 | iconv-lite "0.4.19" 1265 | unpipe "1.0.0" 1266 | 1267 | rc@^1.0.1, rc@~1.1.6: 1268 | version "1.1.7" 1269 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.7.tgz#c5ea564bb07aff9fd3a5b32e906c1d3a65940fea" 1270 | integrity sha1-xepWS7B6/5/TpbMukGwdOmWUD+o= 1271 | dependencies: 1272 | deep-extend "~0.4.0" 1273 | ini "~1.3.0" 1274 | minimist "^1.2.0" 1275 | strip-json-comments "~2.0.1" 1276 | 1277 | read-all-stream@^3.0.0: 1278 | version "3.1.0" 1279 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 1280 | integrity sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= 1281 | dependencies: 1282 | pinkie-promise "^2.0.0" 1283 | readable-stream "^2.0.0" 1284 | 1285 | readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2: 1286 | version "2.2.3" 1287 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.3.tgz#9cf49463985df016c8ae8813097a9293a9b33729" 1288 | integrity sha1-nPSUY5hd8BbIrogTCXqSk6mzNyk= 1289 | dependencies: 1290 | buffer-shims "^1.0.0" 1291 | core-util-is "~1.0.0" 1292 | inherits "~2.0.1" 1293 | isarray "~1.0.0" 1294 | process-nextick-args "~1.0.6" 1295 | string_decoder "~0.10.x" 1296 | util-deprecate "~1.0.1" 1297 | 1298 | readable-stream@~2.1.4: 1299 | version "2.1.5" 1300 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" 1301 | integrity sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA= 1302 | dependencies: 1303 | buffer-shims "^1.0.0" 1304 | core-util-is "~1.0.0" 1305 | inherits "~2.0.1" 1306 | isarray "~1.0.0" 1307 | process-nextick-args "~1.0.6" 1308 | string_decoder "~0.10.x" 1309 | util-deprecate "~1.0.1" 1310 | 1311 | readdirp@^2.0.0: 1312 | version "2.1.0" 1313 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1314 | integrity sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg= 1315 | dependencies: 1316 | graceful-fs "^4.1.2" 1317 | minimatch "^3.0.2" 1318 | readable-stream "^2.0.2" 1319 | set-immediate-shim "^1.0.1" 1320 | 1321 | regex-cache@^0.4.2: 1322 | version "0.4.3" 1323 | resolved "http://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 1324 | integrity sha1-mxpsNdTQ3871cRrmUejp09cRQUU= 1325 | dependencies: 1326 | is-equal-shallow "^0.1.3" 1327 | is-primitive "^2.0.0" 1328 | 1329 | registry-url@^3.0.0: 1330 | version "3.1.0" 1331 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1332 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 1333 | dependencies: 1334 | rc "^1.0.1" 1335 | 1336 | repeat-element@^1.1.2: 1337 | version "1.1.2" 1338 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1339 | integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo= 1340 | 1341 | repeat-string@^1.5.2: 1342 | version "1.6.1" 1343 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1344 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 1345 | 1346 | repeating@^1.1.2: 1347 | version "1.1.3" 1348 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" 1349 | integrity sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw= 1350 | dependencies: 1351 | is-finite "^1.0.0" 1352 | 1353 | request@^2.79.0: 1354 | version "2.79.0" 1355 | resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" 1356 | integrity sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4= 1357 | dependencies: 1358 | aws-sign2 "~0.6.0" 1359 | aws4 "^1.2.1" 1360 | caseless "~0.11.0" 1361 | combined-stream "~1.0.5" 1362 | extend "~3.0.0" 1363 | forever-agent "~0.6.1" 1364 | form-data "~2.1.1" 1365 | har-validator "~2.0.6" 1366 | hawk "~3.1.3" 1367 | http-signature "~1.1.0" 1368 | is-typedarray "~1.0.0" 1369 | isstream "~0.1.2" 1370 | json-stringify-safe "~5.0.1" 1371 | mime-types "~2.1.7" 1372 | oauth-sign "~0.8.1" 1373 | qs "~6.3.0" 1374 | stringstream "~0.0.4" 1375 | tough-cookie "~2.3.0" 1376 | tunnel-agent "~0.4.1" 1377 | uuid "^3.0.0" 1378 | 1379 | rimraf@2, rimraf@~2.5.1, rimraf@~2.5.4: 1380 | version "2.5.4" 1381 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" 1382 | integrity sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ= 1383 | dependencies: 1384 | glob "^7.0.5" 1385 | 1386 | semver-diff@^2.0.0: 1387 | version "2.1.0" 1388 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1389 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 1390 | dependencies: 1391 | semver "^5.0.3" 1392 | 1393 | semver@^5.0.3, semver@~5.3.0: 1394 | version "5.3.0" 1395 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 1396 | integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= 1397 | 1398 | set-blocking@~2.0.0: 1399 | version "2.0.0" 1400 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1401 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1402 | 1403 | set-immediate-shim@^1.0.1: 1404 | version "1.0.1" 1405 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1406 | integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= 1407 | 1408 | setprototypeof@1.0.3: 1409 | version "1.0.3" 1410 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1411 | integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= 1412 | 1413 | signal-exit@^3.0.0: 1414 | version "3.0.2" 1415 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1416 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1417 | 1418 | slide@^1.1.5: 1419 | version "1.1.6" 1420 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 1421 | integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= 1422 | 1423 | sntp@1.x.x: 1424 | version "1.0.9" 1425 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1426 | integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg= 1427 | dependencies: 1428 | hoek "2.x.x" 1429 | 1430 | split@0.3: 1431 | version "0.3.3" 1432 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1433 | integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= 1434 | dependencies: 1435 | through "2" 1436 | 1437 | sshpk@^1.7.0: 1438 | version "1.10.2" 1439 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" 1440 | integrity sha1-1agEziJpVRVjjnmNviMnPeBwpfo= 1441 | dependencies: 1442 | asn1 "~0.2.3" 1443 | assert-plus "^1.0.0" 1444 | dashdash "^1.12.0" 1445 | getpass "^0.1.1" 1446 | optionalDependencies: 1447 | bcrypt-pbkdf "^1.0.0" 1448 | ecc-jsbn "~0.1.1" 1449 | jodid25519 "^1.0.0" 1450 | jsbn "~0.1.0" 1451 | tweetnacl "~0.14.0" 1452 | 1453 | "statuses@>= 1.3.1 < 2": 1454 | version "1.5.0" 1455 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1456 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1457 | 1458 | stream-combiner@~0.0.4: 1459 | version "0.0.4" 1460 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 1461 | integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= 1462 | dependencies: 1463 | duplexer "~0.1.1" 1464 | 1465 | stream-shift@^1.0.0: 1466 | version "1.0.0" 1467 | resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" 1468 | integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= 1469 | 1470 | string-length@^1.0.0: 1471 | version "1.0.1" 1472 | resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" 1473 | integrity sha1-VpcPscOFWOnnC3KL894mmsRa36w= 1474 | dependencies: 1475 | strip-ansi "^3.0.0" 1476 | 1477 | string-width@^1.0.1: 1478 | version "1.0.2" 1479 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1480 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1481 | dependencies: 1482 | code-point-at "^1.0.0" 1483 | is-fullwidth-code-point "^1.0.0" 1484 | strip-ansi "^3.0.0" 1485 | 1486 | string_decoder@~0.10.x: 1487 | version "0.10.31" 1488 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 1489 | integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= 1490 | 1491 | stringstream@~0.0.4: 1492 | version "0.0.5" 1493 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 1494 | integrity sha1-TkhM1N5aC7vuGORjB3EKioFiGHg= 1495 | 1496 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1497 | version "3.0.1" 1498 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1499 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1500 | dependencies: 1501 | ansi-regex "^2.0.0" 1502 | 1503 | strip-json-comments@~2.0.1: 1504 | version "2.0.1" 1505 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1506 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1507 | 1508 | supports-color@^2.0.0: 1509 | version "2.0.0" 1510 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1511 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 1512 | 1513 | supports-color@^5.3.0: 1514 | version "5.5.0" 1515 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1516 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1517 | dependencies: 1518 | has-flag "^3.0.0" 1519 | 1520 | tar-pack@~3.3.0: 1521 | version "3.3.0" 1522 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" 1523 | integrity sha1-MJMYFkGPVa/E0hd1r91nIM7kXa4= 1524 | dependencies: 1525 | debug "~2.2.0" 1526 | fstream "~1.0.10" 1527 | fstream-ignore "~1.0.5" 1528 | once "~1.3.3" 1529 | readable-stream "~2.1.4" 1530 | rimraf "~2.5.1" 1531 | tar "~2.2.1" 1532 | uid-number "~0.0.6" 1533 | 1534 | tar@~2.2.1: 1535 | version "2.2.1" 1536 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 1537 | integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= 1538 | dependencies: 1539 | block-stream "*" 1540 | fstream "^1.0.2" 1541 | inherits "2" 1542 | 1543 | through@2, through@~2.3, through@~2.3.1: 1544 | version "2.3.8" 1545 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1546 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 1547 | 1548 | timed-out@^2.0.0: 1549 | version "2.0.0" 1550 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" 1551 | integrity sha1-84sK6B03R9YoAB9B2vxlKs5nHAo= 1552 | 1553 | touch@1.0.0: 1554 | version "1.0.0" 1555 | resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" 1556 | integrity sha1-RJy+LbrlqMgDjjDXH6D/RklHxN4= 1557 | dependencies: 1558 | nopt "~1.0.10" 1559 | 1560 | tough-cookie@~2.3.0: 1561 | version "2.3.2" 1562 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 1563 | integrity sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo= 1564 | dependencies: 1565 | punycode "^1.4.1" 1566 | 1567 | tunnel-agent@~0.4.1: 1568 | version "0.4.3" 1569 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" 1570 | integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us= 1571 | 1572 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 1573 | version "0.14.5" 1574 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 1575 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 1576 | 1577 | uid-number@~0.0.6: 1578 | version "0.0.6" 1579 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 1580 | integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE= 1581 | 1582 | undefsafe@0.0.3: 1583 | version "0.0.3" 1584 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" 1585 | integrity sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8= 1586 | 1587 | unpipe@1.0.0: 1588 | version "1.0.0" 1589 | resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 1590 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 1591 | 1592 | update-notifier@0.5.0: 1593 | version "0.5.0" 1594 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" 1595 | integrity sha1-B7XcIGazYnqztPUwEw9+3doHpMw= 1596 | dependencies: 1597 | chalk "^1.0.0" 1598 | configstore "^1.0.0" 1599 | is-npm "^1.0.0" 1600 | latest-version "^1.0.0" 1601 | repeating "^1.1.2" 1602 | semver-diff "^2.0.0" 1603 | string-length "^1.0.0" 1604 | 1605 | url-pattern@^1.0.3: 1606 | version "1.0.3" 1607 | resolved "https://registry.npmjs.org/url-pattern/-/url-pattern-1.0.3.tgz#0409292471b24f23c50d65a47931793d2b5acfc1" 1608 | integrity sha1-BAkpJHGyTyPFDWWkeTF5PStaz8E= 1609 | 1610 | url@^0.11.0: 1611 | version "0.11.0" 1612 | resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 1613 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 1614 | dependencies: 1615 | punycode "1.3.2" 1616 | querystring "0.2.0" 1617 | 1618 | util-deprecate@~1.0.1: 1619 | version "1.0.2" 1620 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1621 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1622 | 1623 | uuid@^2.0.1: 1624 | version "2.0.3" 1625 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 1626 | integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= 1627 | 1628 | uuid@^3.0.0: 1629 | version "3.0.1" 1630 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 1631 | integrity sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE= 1632 | 1633 | verror@1.3.6: 1634 | version "1.3.6" 1635 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 1636 | integrity sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw= 1637 | dependencies: 1638 | extsprintf "1.0.2" 1639 | 1640 | wide-align@^1.1.0: 1641 | version "1.1.0" 1642 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" 1643 | integrity sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0= 1644 | dependencies: 1645 | string-width "^1.0.1" 1646 | 1647 | wrappy@1: 1648 | version "1.0.2" 1649 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1650 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1651 | 1652 | write-file-atomic@^1.1.2: 1653 | version "1.3.1" 1654 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" 1655 | integrity sha1-fUW6MjFjKN0ex9kPYOvA2EW7dZo= 1656 | dependencies: 1657 | graceful-fs "^4.1.11" 1658 | imurmurhash "^0.1.4" 1659 | slide "^1.1.5" 1660 | 1661 | xdg-basedir@^2.0.0: 1662 | version "2.0.0" 1663 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 1664 | integrity sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= 1665 | dependencies: 1666 | os-homedir "^1.0.0" 1667 | 1668 | xtend@^4.0.0: 1669 | version "4.0.1" 1670 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 1671 | integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= 1672 | --------------------------------------------------------------------------------