├── .gitignore ├── README.md ├── app.js ├── custom_probes ├── package.json └── rethinkdb.js ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # parcel-bundler cache (https://parceljs.org/) 61 | .cache 62 | 63 | # next.js build output 64 | .next 65 | 66 | # nuxt.js build output 67 | .nuxt 68 | 69 | # vuepress build output 70 | .vuepress/dist 71 | 72 | # Serverless directories 73 | .serverless -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Getting started with PM2 Plus 2 | 3 | This example will show you how to monitor your NodeJS application at the code level. 4 | The app.js file contain all the PM2 Plus features you can use. 5 | 6 | ![https://pm2.io/_nuxt/img/Unified_overview.925badd.png](https://pm2.io/_nuxt/img/Unified_overview.925badd.png) 7 | 8 | ## Run it yourself 9 | 10 | ```bash 11 | $ npm install pm2 -g 12 | $ git clone https://github.com/keymetrics/app-playground.git 13 | $ cd app-playground 14 | $ pm2 start app.js 15 | ``` 16 | 17 | Comment the return in app.js to discover the other features of PM2 Plus. 18 | 19 | ## Link PM2 with PM2 Plus 20 | 21 | Create a new Bucket on PM2 Plus : [https://app.pm2.io/](https://app.pm2.io/) 22 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | const io = require('@pm2/io') 2 | const http = require('http') 3 | 4 | io.init({ 5 | network: { 6 | traffic: true 7 | } 8 | }) 9 | 10 | 11 | /** 12 | * Probe system #1 - Histograms 13 | * 14 | * Measuring the event loop delay 15 | */ 16 | 17 | const TIME_INTERVAL = 1000 18 | 19 | let oldTime = process.hrtime() 20 | 21 | const histogram = io.histogram({ 22 | name: 'Loop delay', 23 | measurement: 'mean', 24 | unit: 'ms' 25 | }) 26 | 27 | setInterval(() => { 28 | const newTime = process.hrtime() 29 | const delay = (newTime[0] - oldTime[0]) * 1e3 + (newTime[1] - oldTime[1]) / 1e6 - TIME_INTERVAL 30 | oldTime = newTime 31 | // Now we update the metric 32 | histogram.update(delay) 33 | }, TIME_INTERVAL) 34 | 35 | 36 | /** 37 | * Probe system #2 - Metrics 38 | * 39 | * Probe values that can be read instantly. 40 | */ 41 | let randomVariable = 0 42 | 43 | setInterval(() => { 44 | randomVariable++ 45 | }, 400) 46 | 47 | io.metric({ 48 | name: 'Var count', 49 | value: () => { 50 | return randomVariable 51 | } 52 | }) 53 | 54 | /** 55 | * Probe system #3 - Meter 56 | * 57 | * Probe things that are measured as events / interval. 58 | */ 59 | const meter = io.meter({ 60 | name: 'req/min', 61 | timeframe: 60 62 | }) 63 | 64 | /** 65 | * Use case for Meter Probe 66 | * 67 | * Create a mock http server 68 | */ 69 | 70 | http.createServer((req, res) => { 71 | // Then mark it at every connections 72 | meter.mark() 73 | res.end('Thanks') 74 | }).listen(5005) 75 | 76 | 77 | /** 78 | * Probe system #4 - Counter 79 | * 80 | * Measure things that increment or decrement 81 | */ 82 | const counter = io.counter({ 83 | name: 'Downloads' 84 | }) 85 | 86 | /** 87 | * Now let's create some remote action 88 | * And act on the Counter probe we just created 89 | */ 90 | io.action('decrement', { comment: 'Increment downloads' }, (cb) => { 91 | counter.dec() 92 | cb({ success: true }) 93 | }) 94 | 95 | io.action('increment', { comment : 'Decrement downloads' }, (cb) => { 96 | // Increment the previous counter 97 | counter.inc() 98 | cb({ success: true }) 99 | }) 100 | 101 | io.action('throw error', { comment: 'Throw a random error ' }, (cb) => { 102 | // Increment the previous counter 103 | throw new Error('This error will be caught!') 104 | }) 105 | 106 | io.action('send event', { comment: 'Sends an event' }, (cb) => { 107 | io.emit('event:sent', { 108 | msg: 'You sent a custom event!' 109 | }) 110 | cb('Sent event!') 111 | }) 112 | 113 | io.action('get env', (cb) => { 114 | cb(process.env) 115 | }) 116 | 117 | io.action('modules version', { comment: 'Get modules version' }, (cb) => { 118 | cb(process.versions) 119 | }) 120 | 121 | io.action('Action with params', { comment: 'Returns sent params' }, (data, cb) => { 122 | // Replies the received data 123 | cb(`Data received: ${JSON.stringify(data)}`) 124 | }) 125 | 126 | /** 127 | * Create an action that hit the HTTP server we just created 128 | * So we can see how the meter probe behaves 129 | */ 130 | io.action('do:http:query', (cb) => { 131 | const options = { 132 | hostname: '127.0.0.1', 133 | port: 5005, 134 | path: '/users', 135 | method: 'GET', 136 | headers: { 'Content-Type': 'application/json' } 137 | } 138 | 139 | const req = http.request(options, (res) => { 140 | res.setEncoding('utf8') 141 | res.on('data', (data) => { 142 | console.log(data) 143 | }) 144 | }) 145 | 146 | req.on('error', (e) => { 147 | console.log(`problem with request: ${e.message}`) 148 | }) 149 | 150 | req.end() 151 | 152 | cb({ success: true }) 153 | }) 154 | -------------------------------------------------------------------------------- /custom_probes/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rdb", 3 | "version": "0.2.19", 4 | "description": "keymetrics I/O adapter", 5 | "main": "index.js", 6 | "dependencies" : { 7 | "rethinkdb" : "*", 8 | "axm" : "*" 9 | }, 10 | "devDependencies" : { 11 | }, 12 | "scripts" : { 13 | "test" : "DEBUG='axm:*' mocha test" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/keymetrics/axm.git" 18 | }, 19 | "author": "Keymetrics I/O", 20 | "license": "ISC" 21 | } 22 | -------------------------------------------------------------------------------- /custom_probes/rethinkdb.js: -------------------------------------------------------------------------------- 1 | 2 | var axm = require('axm'); 3 | var fs = require('fs'); 4 | 5 | 6 | fs.readFile('/var/run/rethinkdb/default/pid_file', function(err, data) { 7 | 8 | var pid = data.toString(); 9 | 10 | axm.configureModule({ 11 | name : 'RethinkDB', 12 | version : '1.0', 13 | pid : pid, 14 | errors : false, 15 | latency : false, 16 | versioning : false, 17 | show_module_meta : true, 18 | author : 'Alexandre Strzelewicz', 19 | comment : 'This module monitor critical metrics of RethinkDB database', 20 | icon : 'database' 21 | }); 22 | 23 | }); 24 | 25 | var rdb = require('rethinkdb'); 26 | 27 | rdb.connect({ 28 | host: 'localhost', 29 | port: 28015 30 | }, function(err, con) { 31 | if (err) throw err; 32 | // Do query to create probes [...] 33 | // Todo 34 | }); 35 | 36 | axm.action('restart', function(reply) { 37 | // action 38 | reply({success:true}); 39 | }); 40 | 41 | // -> Action backup 42 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "application-name", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "start": "node app" 7 | }, 8 | "dependencies": { 9 | "@pm2/io": "^2.4.7" 10 | }, 11 | "apps": [ 12 | { 13 | "script": "app.js", 14 | "watch": "true", 15 | "name": "PM2 Plus tuto" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@pm2/agent-node@^1.0.9": 6 | version "1.1.3" 7 | resolved "https://registry.yarnpkg.com/@pm2/agent-node/-/agent-node-1.1.3.tgz#4603dd808bf8f8c4890d023b758d1232bdfc40a6" 8 | integrity sha512-xOQUbqnKkwWIDfzH1PMVwCQxur1gK/asCSvCHnE8u1O1FC/93FAq3m0Xc5ckFApibSwZYDRqUikE8yC/WnCN6A== 9 | dependencies: 10 | debug "^3.1.0" 11 | eventemitter2 "^5.0.1" 12 | proxy-agent "^3.0.3" 13 | ws "^6.0.0" 14 | 15 | "@pm2/io@^2.4.7": 16 | version "2.4.7" 17 | resolved "https://registry.yarnpkg.com/@pm2/io/-/io-2.4.7.tgz#153ce2a3827a115c8437315d9da71aae36fc5558" 18 | integrity sha512-01IQBBeIFUO6Gs3mVDfoDYcZ3cbaN66gPo6guVQTfhiTv1+ftQlSuZH64dO+41wKbUYgDrXnIvFHR99bnpqj8Q== 19 | dependencies: 20 | "@pm2/agent-node" "^1.0.9" 21 | async "^2.6.1" 22 | debug "3.1.0" 23 | deep-metrics "0.0.2" 24 | deepmerge "2.1.1" 25 | event-loop-inspector "^1.2.0" 26 | json-stringify-safe "5.0.1" 27 | semver "5.5.0" 28 | signal-exit "3.0.2" 29 | tslib "1.9.3" 30 | vxx "1.2.2" 31 | 32 | agent-base@4, agent-base@^4.1.0, agent-base@^4.2.0, agent-base@~4.2.0: 33 | version "4.2.1" 34 | resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" 35 | integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== 36 | dependencies: 37 | es6-promisify "^5.0.0" 38 | 39 | ast-types@0.x.x: 40 | version "0.11.7" 41 | resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c" 42 | integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw== 43 | 44 | async-limiter@~1.0.0: 45 | version "1.0.0" 46 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 47 | integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== 48 | 49 | async-listener@^0.6.0: 50 | version "0.6.10" 51 | resolved "https://registry.yarnpkg.com/async-listener/-/async-listener-0.6.10.tgz#a7c97abe570ba602d782273c0de60a51e3e17cbc" 52 | integrity sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw== 53 | dependencies: 54 | semver "^5.3.0" 55 | shimmer "^1.1.0" 56 | 57 | async@^2.6.1: 58 | version "2.6.1" 59 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" 60 | integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== 61 | dependencies: 62 | lodash "^4.17.10" 63 | 64 | bytes@3.0.0: 65 | version "3.0.0" 66 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 67 | integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= 68 | 69 | co@^4.6.0: 70 | version "4.6.0" 71 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 72 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 73 | 74 | continuation-local-storage@^3.1.4: 75 | version "3.2.1" 76 | resolved "https://registry.yarnpkg.com/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz#11f613f74e914fe9b34c92ad2d28fe6ae1db7ffb" 77 | integrity sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA== 78 | dependencies: 79 | async-listener "^0.6.0" 80 | emitter-listener "^1.1.1" 81 | 82 | core-util-is@~1.0.0: 83 | version "1.0.2" 84 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 85 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 86 | 87 | data-uri-to-buffer@1: 88 | version "1.2.0" 89 | resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" 90 | integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== 91 | 92 | debug@2, debug@^2.6.3: 93 | version "2.6.9" 94 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 95 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 96 | dependencies: 97 | ms "2.0.0" 98 | 99 | debug@3.1.0: 100 | version "3.1.0" 101 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 102 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 103 | dependencies: 104 | ms "2.0.0" 105 | 106 | debug@^3.1.0: 107 | version "3.2.6" 108 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 109 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 110 | dependencies: 111 | ms "^2.1.1" 112 | 113 | deep-is@~0.1.3: 114 | version "0.1.3" 115 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 116 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 117 | 118 | deep-metrics@0.0.2: 119 | version "0.0.2" 120 | resolved "https://registry.yarnpkg.com/deep-metrics/-/deep-metrics-0.0.2.tgz#180900dea82a2c4b976be2b7684914748f5a0931" 121 | integrity sha512-2b4DO8YcPWSHrZ7XW9YjjJajmflw2EhKUMmeriZmGYsC8XvCWIyztsEjCQ3f5kIQO+ItzBK7BqVjSWlFZQtONQ== 122 | dependencies: 123 | semver "^5.3.0" 124 | 125 | deepmerge@2.1.1: 126 | version "2.1.1" 127 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.1.tgz#e862b4e45ea0555072bf51e7fd0d9845170ae768" 128 | integrity sha512-urQxA1smbLZ2cBbXbaYObM1dJ82aJ2H57A1C/Kklfh/ZN1bgH4G/n5KWhdNfOK11W98gqZfyYj7W4frJJRwA2w== 129 | 130 | degenerator@^1.0.4: 131 | version "1.0.4" 132 | resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" 133 | integrity sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU= 134 | dependencies: 135 | ast-types "0.x.x" 136 | escodegen "1.x.x" 137 | esprima "3.x.x" 138 | 139 | depd@~1.1.2: 140 | version "1.1.2" 141 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 142 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 143 | 144 | emitter-listener@^1.1.1: 145 | version "1.1.2" 146 | resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" 147 | integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ== 148 | dependencies: 149 | shimmer "^1.2.0" 150 | 151 | es6-promise@^4.0.3: 152 | version "4.2.5" 153 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" 154 | integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg== 155 | 156 | es6-promisify@^5.0.0: 157 | version "5.0.0" 158 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 159 | integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= 160 | dependencies: 161 | es6-promise "^4.0.3" 162 | 163 | escodegen@1.x.x: 164 | version "1.11.0" 165 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" 166 | integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw== 167 | dependencies: 168 | esprima "^3.1.3" 169 | estraverse "^4.2.0" 170 | esutils "^2.0.2" 171 | optionator "^0.8.1" 172 | optionalDependencies: 173 | source-map "~0.6.1" 174 | 175 | esprima@3.x.x, esprima@^3.1.3: 176 | version "3.1.3" 177 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 178 | integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= 179 | 180 | estraverse@^4.2.0: 181 | version "4.2.0" 182 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 183 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 184 | 185 | esutils@^2.0.2: 186 | version "2.0.2" 187 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 188 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 189 | 190 | event-loop-inspector@^1.2.0: 191 | version "1.2.2" 192 | resolved "https://registry.yarnpkg.com/event-loop-inspector/-/event-loop-inspector-1.2.2.tgz#e56ed73f50a8b0b9193cc36be877fea18641aceb" 193 | integrity sha512-v7OqIPmO0jqpmSH4Uc6IrY/H6lOidYzrXHE8vPHLDDOfV1Pw+yu+KEIE/AWnoFheWYlunZbxzKpZBAezVlrU9g== 194 | 195 | eventemitter2@^5.0.1: 196 | version "5.0.1" 197 | resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" 198 | integrity sha1-YZegldX7a1folC9v1+qtY6CclFI= 199 | 200 | extend@3, extend@^3.0.0: 201 | version "3.0.2" 202 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 203 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 204 | 205 | fast-levenshtein@~2.0.4: 206 | version "2.0.6" 207 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 208 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 209 | 210 | file-uri-to-path@1: 211 | version "1.0.0" 212 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 213 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 214 | 215 | ftp@~0.3.10: 216 | version "0.3.10" 217 | resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" 218 | integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= 219 | dependencies: 220 | readable-stream "1.1.x" 221 | xregexp "2.0.0" 222 | 223 | get-uri@^2.0.0: 224 | version "2.0.2" 225 | resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.2.tgz#5c795e71326f6ca1286f2fc82575cd2bab2af578" 226 | integrity sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw== 227 | dependencies: 228 | data-uri-to-buffer "1" 229 | debug "2" 230 | extend "3" 231 | file-uri-to-path "1" 232 | ftp "~0.3.10" 233 | readable-stream "2" 234 | 235 | http-errors@1.6.3: 236 | version "1.6.3" 237 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" 238 | integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= 239 | dependencies: 240 | depd "~1.1.2" 241 | inherits "2.0.3" 242 | setprototypeof "1.1.0" 243 | statuses ">= 1.4.0 < 2" 244 | 245 | http-proxy-agent@^2.1.0: 246 | version "2.1.0" 247 | resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" 248 | integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== 249 | dependencies: 250 | agent-base "4" 251 | debug "3.1.0" 252 | 253 | https-proxy-agent@^2.2.1: 254 | version "2.2.1" 255 | resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" 256 | integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== 257 | dependencies: 258 | agent-base "^4.1.0" 259 | debug "^3.1.0" 260 | 261 | iconv-lite@0.4.23: 262 | version "0.4.23" 263 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" 264 | integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== 265 | dependencies: 266 | safer-buffer ">= 2.1.2 < 3" 267 | 268 | inherits@2.0.3, inherits@~2.0.1, inherits@~2.0.3: 269 | version "2.0.3" 270 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 271 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 272 | 273 | ip@^1.1.5: 274 | version "1.1.5" 275 | resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" 276 | integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= 277 | 278 | is@^3.2.0: 279 | version "3.3.0" 280 | resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" 281 | integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== 282 | 283 | isarray@0.0.1: 284 | version "0.0.1" 285 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 286 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 287 | 288 | isarray@~1.0.0: 289 | version "1.0.0" 290 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 291 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 292 | 293 | json-stringify-safe@5.0.1: 294 | version "5.0.1" 295 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 296 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 297 | 298 | levn@~0.3.0: 299 | version "0.3.0" 300 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 301 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 302 | dependencies: 303 | prelude-ls "~1.1.2" 304 | type-check "~0.3.2" 305 | 306 | lodash.findindex@^4.4.0: 307 | version "4.6.0" 308 | resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" 309 | integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= 310 | 311 | lodash.isequal@^4.0.0: 312 | version "4.5.0" 313 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 314 | integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= 315 | 316 | lodash.merge@^4.6.0: 317 | version "4.6.1" 318 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" 319 | integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ== 320 | 321 | lodash@^4.17.10: 322 | version "4.17.11" 323 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" 324 | integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== 325 | 326 | lru-cache@^4.1.2: 327 | version "4.1.5" 328 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 329 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 330 | dependencies: 331 | pseudomap "^1.0.2" 332 | yallist "^2.1.2" 333 | 334 | methods@^1.1.1: 335 | version "1.1.2" 336 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 337 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 338 | 339 | ms@2.0.0: 340 | version "2.0.0" 341 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 342 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 343 | 344 | ms@^2.1.1: 345 | version "2.1.1" 346 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 347 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 348 | 349 | netmask@^1.0.6: 350 | version "1.0.6" 351 | resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" 352 | integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU= 353 | 354 | optionator@^0.8.1: 355 | version "0.8.2" 356 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 357 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 358 | dependencies: 359 | deep-is "~0.1.3" 360 | fast-levenshtein "~2.0.4" 361 | levn "~0.3.0" 362 | prelude-ls "~1.1.2" 363 | type-check "~0.3.2" 364 | wordwrap "~1.0.0" 365 | 366 | pac-proxy-agent@^3.0.0: 367 | version "3.0.0" 368 | resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz#11d578b72a164ad74bf9d5bac9ff462a38282432" 369 | integrity sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q== 370 | dependencies: 371 | agent-base "^4.2.0" 372 | debug "^3.1.0" 373 | get-uri "^2.0.0" 374 | http-proxy-agent "^2.1.0" 375 | https-proxy-agent "^2.2.1" 376 | pac-resolver "^3.0.0" 377 | raw-body "^2.2.0" 378 | socks-proxy-agent "^4.0.1" 379 | 380 | pac-resolver@^3.0.0: 381 | version "3.0.0" 382 | resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26" 383 | integrity sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA== 384 | dependencies: 385 | co "^4.6.0" 386 | degenerator "^1.0.4" 387 | ip "^1.1.5" 388 | netmask "^1.0.6" 389 | thunkify "^2.1.2" 390 | 391 | prelude-ls@~1.1.2: 392 | version "1.1.2" 393 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 394 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 395 | 396 | process-nextick-args@~2.0.0: 397 | version "2.0.0" 398 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 399 | integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== 400 | 401 | proxy-agent@^3.0.3: 402 | version "3.0.3" 403 | resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.0.3.tgz#1c1a33db60ef5f2e9e35b876fd63c2bc681c611d" 404 | integrity sha512-PXVVVuH9tiQuxQltFJVSnXWuDtNr+8aNBP6XVDDCDiUuDN8eRCm+ii4/mFWmXWEA0w8jjJSlePa4LXlM4jIzNA== 405 | dependencies: 406 | agent-base "^4.2.0" 407 | debug "^3.1.0" 408 | http-proxy-agent "^2.1.0" 409 | https-proxy-agent "^2.2.1" 410 | lru-cache "^4.1.2" 411 | pac-proxy-agent "^3.0.0" 412 | proxy-from-env "^1.0.0" 413 | socks-proxy-agent "^4.0.1" 414 | 415 | proxy-from-env@^1.0.0: 416 | version "1.0.0" 417 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" 418 | integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= 419 | 420 | pseudomap@^1.0.2: 421 | version "1.0.2" 422 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 423 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 424 | 425 | raw-body@^2.2.0: 426 | version "2.3.3" 427 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" 428 | integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== 429 | dependencies: 430 | bytes "3.0.0" 431 | http-errors "1.6.3" 432 | iconv-lite "0.4.23" 433 | unpipe "1.0.0" 434 | 435 | readable-stream@1.1.x: 436 | version "1.1.14" 437 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" 438 | integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= 439 | dependencies: 440 | core-util-is "~1.0.0" 441 | inherits "~2.0.1" 442 | isarray "0.0.1" 443 | string_decoder "~0.10.x" 444 | 445 | readable-stream@2: 446 | version "2.3.6" 447 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 448 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== 449 | dependencies: 450 | core-util-is "~1.0.0" 451 | inherits "~2.0.3" 452 | isarray "~1.0.0" 453 | process-nextick-args "~2.0.0" 454 | safe-buffer "~5.1.1" 455 | string_decoder "~1.1.1" 456 | util-deprecate "~1.0.1" 457 | 458 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 459 | version "5.1.2" 460 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 461 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 462 | 463 | "safer-buffer@>= 2.1.2 < 3": 464 | version "2.1.2" 465 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 466 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 467 | 468 | semver@5.5.0: 469 | version "5.5.0" 470 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 471 | integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA== 472 | 473 | semver@^5.0.1, semver@^5.3.0: 474 | version "5.6.0" 475 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 476 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 477 | 478 | setprototypeof@1.1.0: 479 | version "1.1.0" 480 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 481 | integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== 482 | 483 | shimmer@^1.0.0, shimmer@^1.1.0, shimmer@^1.2.0: 484 | version "1.2.0" 485 | resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.0.tgz#f966f7555789763e74d8841193685a5e78736665" 486 | integrity sha512-xTCx2vohXC2EWWDqY/zb4+5Mu28D+HYNSOuFzsyRDRvI/e1ICb69afwaUwfjr+25ZXldbOLyp+iDUZHq8UnTag== 487 | 488 | signal-exit@3.0.2: 489 | version "3.0.2" 490 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 491 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 492 | 493 | smart-buffer@^4.0.1: 494 | version "4.0.1" 495 | resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3" 496 | integrity sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg== 497 | 498 | socks-proxy-agent@^4.0.1: 499 | version "4.0.1" 500 | resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" 501 | integrity sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw== 502 | dependencies: 503 | agent-base "~4.2.0" 504 | socks "~2.2.0" 505 | 506 | socks@~2.2.0: 507 | version "2.2.2" 508 | resolved "https://registry.yarnpkg.com/socks/-/socks-2.2.2.tgz#f061219fc2d4d332afb4af93e865c84d3fa26e2b" 509 | integrity sha512-g6wjBnnMOZpE0ym6e0uHSddz9p3a+WsBaaYQaBaSCJYvrC4IXykQR9MNGjLQf38e9iIIhp3b1/Zk8YZI3KGJ0Q== 510 | dependencies: 511 | ip "^1.1.5" 512 | smart-buffer "^4.0.1" 513 | 514 | source-map@~0.6.1: 515 | version "0.6.1" 516 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 517 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 518 | 519 | "statuses@>= 1.4.0 < 2": 520 | version "1.5.0" 521 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 522 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 523 | 524 | string_decoder@~0.10.x: 525 | version "0.10.31" 526 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 527 | integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= 528 | 529 | string_decoder@~1.1.1: 530 | version "1.1.1" 531 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 532 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 533 | dependencies: 534 | safe-buffer "~5.1.0" 535 | 536 | thunkify@^2.1.2: 537 | version "2.1.2" 538 | resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" 539 | integrity sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0= 540 | 541 | tslib@1.9.3: 542 | version "1.9.3" 543 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 544 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 545 | 546 | type-check@~0.3.2: 547 | version "0.3.2" 548 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 549 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 550 | dependencies: 551 | prelude-ls "~1.1.2" 552 | 553 | unpipe@1.0.0: 554 | version "1.0.0" 555 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 556 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 557 | 558 | util-deprecate@~1.0.1: 559 | version "1.0.2" 560 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 561 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 562 | 563 | uuid@^3.0.1: 564 | version "3.3.2" 565 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 566 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 567 | 568 | vxx@1.2.2: 569 | version "1.2.2" 570 | resolved "https://registry.yarnpkg.com/vxx/-/vxx-1.2.2.tgz#741fb51c6f11d3383da6f9b92018a5d7ba807611" 571 | integrity sha1-dB+1HG8R0zg9pvm5IBil17qAdhE= 572 | dependencies: 573 | continuation-local-storage "^3.1.4" 574 | debug "^2.6.3" 575 | extend "^3.0.0" 576 | is "^3.2.0" 577 | lodash.findindex "^4.4.0" 578 | lodash.isequal "^4.0.0" 579 | lodash.merge "^4.6.0" 580 | methods "^1.1.1" 581 | semver "^5.0.1" 582 | shimmer "^1.0.0" 583 | uuid "^3.0.1" 584 | 585 | wordwrap@~1.0.0: 586 | version "1.0.0" 587 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 588 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 589 | 590 | ws@^6.0.0: 591 | version "6.1.2" 592 | resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.2.tgz#3cc7462e98792f0ac679424148903ded3b9c3ad8" 593 | integrity sha512-rfUqzvz0WxmSXtJpPMX2EeASXabOrSMk1ruMOV3JBTBjo4ac2lDjGGsbQSyxj8Odhw5fBib8ZKEjDNvgouNKYw== 594 | dependencies: 595 | async-limiter "~1.0.0" 596 | 597 | xregexp@2.0.0: 598 | version "2.0.0" 599 | resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" 600 | integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= 601 | 602 | yallist@^2.1.2: 603 | version "2.1.2" 604 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 605 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 606 | --------------------------------------------------------------------------------