diff --git a/.babelrc b/.babelrc index fd37f72076..5a84607b98 100644 --- a/.babelrc +++ b/.babelrc @@ -31,6 +31,7 @@ "babel-plugin-rewire", ["transform-define", { "__TEST__": "true", + "__VERSION_SHA__": "abcd", "__DEBUG__": false }] ] diff --git a/app/actions/sync.js b/app/actions/sync.js index 15e28e17c6..9ffdcc1768 100644 --- a/app/actions/sync.js +++ b/app/actions/sync.js @@ -17,6 +17,7 @@ import _ from 'lodash'; +import rollbar from '../utils/rollbar'; import * as actionTypes from '../constants/actionTypes'; import * as actionSources from '../constants/actionSources'; @@ -287,6 +288,14 @@ export function loginRequest() { export function loginSuccess(results) { const { user, profile, memberships } = results; const isClinicAccount = personUtils.userHasRole(user, 'clinic'); + rollbar.configure({ + payload: { + person: { + id: user.userid, + username: user.username, + } + } + }); return { type: actionTypes.LOGIN_SUCCESS, payload: { user, profile, memberships }, diff --git a/app/index.js b/app/index.js index 45668a988f..4030fcdaa4 100755 --- a/app/index.js +++ b/app/index.js @@ -1,3 +1,4 @@ +import rollbar from './utils/rollbar'; import _ from 'lodash'; import React from 'react'; import { render } from 'react-dom'; diff --git a/app/main.development.js b/app/main.development.js index a1033e0d93..e57e1548f9 100755 --- a/app/main.development.js +++ b/app/main.development.js @@ -1,10 +1,34 @@ -import { app, BrowserWindow, Menu, shell, ipcMain } from 'electron'; +/* global __ROLLBAR_POST_TOKEN__ */ +import { app, BrowserWindow, Menu, shell, ipcMain, crashReporter } from 'electron'; import os from 'os'; import open from 'open'; import { autoUpdater } from 'electron-updater'; import * as chromeFinder from 'chrome-launcher/chrome-finder'; import { sync as syncActions } from './actions'; import debugMode from '../app/utils/debugMode'; +import Rollbar from 'rollbar/src/server/rollbar'; + +let rollbar; +if(process.env.NODE_ENV === 'production') { + rollbar = new Rollbar({ + accessToken: __ROLLBAR_POST_TOKEN__, + captureUncaught: true, + captureUnhandledRejections: true, + payload: { + environment: 'electron_main_process' + } + }); +} + +crashReporter.start({ + productName: 'Uploader', + companyName: 'Tidepool', + submitURL: '', + uploadToServer: false +}); + +console.log('Crash logs can be found in:',crashReporter.getCrashesDirectory()); +console.log('Last crash report:', crashReporter.getLastCrashReport()); let menu; let template; diff --git a/app/utils/rollbar.js b/app/utils/rollbar.js new file mode 100644 index 0000000000..bddfda6860 --- /dev/null +++ b/app/utils/rollbar.js @@ -0,0 +1,33 @@ +/* global __VERSION_SHA__ */ + +import Rollbar from 'rollbar/dist/rollbar.umd'; + +let rollbar = new Rollbar({ + accessToken: '1843589282464f4facd43f794c8201a8', + captureUncaught: true, + payload: { + environment: 'electron_renderer', + client: { + javascript: { + code_version: __VERSION_SHA__, + guess_uncaught_frames: true + } + } + }, + // to deal with URI's as local filesystem paths, we use the "many domain" transform: + // https://rollbar.com/docs/source-maps/#using-source-maps-on-many-domains + transform: function(payload) { + var trace = payload.body.trace; + if (trace && trace.frames) { + for (var i = 0; i < trace.frames.length; i++) { + var filename = trace.frames[i].filename; + if (filename) { + trace.frames[i].filename = 'http://dynamichost/dist/bundle.js'; + } + } + } + } + } +); + +export default rollbar; diff --git a/package.json b/package.json index ab4ed355c4..707c5eaf55 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,8 @@ "redux": "3.6.0", "redux-form": "5.3.4", "redux-thunk": "2.2.0", + "rollbar": "2.2.8", + "rollbar-sourcemap-webpack-plugin": "2.2.0", "semver": "5.3.0", "source-map-support": "0.4.14", "stack-trace": "0.0.9", diff --git a/webpack.config.development.js b/webpack.config.development.js index 315cd780a4..be605b6024 100755 --- a/webpack.config.development.js +++ b/webpack.config.development.js @@ -8,6 +8,11 @@ import webpack from 'webpack'; import validate from 'webpack-validator'; import merge from 'webpack-merge'; import baseConfig from './webpack.config.base'; +import cp from 'child_process'; + +const VERSION_SHA = process.env.CIRCLE_SHA1 || + process.env.APPVEYOR_REPO_COMMIT || + cp.execSync('git rev-parse HEAD', { cwd: __dirname, encoding: 'utf8' }); const port = process.env.PORT || 3005; @@ -120,6 +125,7 @@ export default validate(merge(baseConfig, { __DEBUG__: JSON.stringify(JSON.parse(process.env.DEBUG_ERROR || 'false')), __REDUX_LOG__: JSON.stringify(JSON.parse(process.env.REDUX_LOG || 'false')), __TEST__: false, + __VERSION_SHA__: JSON.stringify(VERSION_SHA), 'global.GENTLY': false, // http://github.com/visionmedia/superagent/wiki/SuperAgent-for-Webpack for platform-client }) ], diff --git a/webpack.config.electron.js b/webpack.config.electron.js index e2399ed697..341a1a78f4 100755 --- a/webpack.config.electron.js +++ b/webpack.config.electron.js @@ -40,6 +40,7 @@ export default validate(merge(baseConfig, { new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify('production'), 'process.env.BUILD': JSON.stringify(process.env.BUILD) || '"prod"', + __ROLLBAR_POST_TOKEN__: JSON.stringify(process.env.ROLLBAR_POST_TOKEN), }) ], diff --git a/webpack.config.production.js b/webpack.config.production.js index dc7c318b76..a474b48744 100755 --- a/webpack.config.production.js +++ b/webpack.config.production.js @@ -10,6 +10,14 @@ import merge from 'webpack-merge'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import BabiliPlugin from 'babili-webpack-plugin'; import baseConfig from './webpack.config.base'; +import RollbarSourceMapPlugin from 'rollbar-sourcemap-webpack-plugin'; +import cp from 'child_process'; + +const VERSION_SHA = process.env.CIRCLE_SHA1 || + process.env.APPVEYOR_REPO_COMMIT || + cp.execSync('git rev-parse HEAD', {cwd: __dirname, encoding: 'utf8' }); + +const ROLLBAR_POST_TOKEN = process.env.ROLLBAR_POST_TOKEN; if (process.env.DEBUG_ERROR === 'true') { console.log('~ ~ ~ ~ ~ ~ ~ ~ ~ ~'); @@ -114,6 +122,8 @@ export default validate(merge(baseConfig, { __DEBUG__: JSON.stringify(JSON.parse(process.env.DEBUG_ERROR || 'false')), __REDUX_LOG__: JSON.stringify(JSON.parse(process.env.REDUX_LOG || 'false')), __TEST__: false, + __VERSION_SHA__: JSON.stringify(VERSION_SHA), + __ROLLBAR_POST_TOKEN__: JSON.stringify(ROLLBAR_POST_TOKEN), 'global.GENTLY': false, // http://github.com/visionmedia/superagent/wiki/SuperAgent-for-Webpack for platform-client }), @@ -134,6 +144,13 @@ export default validate(merge(baseConfig, { filename: '../app.html', template: 'app/app.html', inject: false + }), + + /** Upload sourcemap to Rollbar */ + new RollbarSourceMapPlugin({ + accessToken: ROLLBAR_POST_TOKEN, + version: VERSION_SHA, + publicPath: 'http://dynamichost/dist' }) ], diff --git a/yarn.lock b/yarn.lock index 39eed214cc..06fafb3f1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -151,10 +151,6 @@ ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" -ansi-regex@*, ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - ansi-regex@^0.2.0, ansi-regex@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" @@ -163,6 +159,10 @@ ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" @@ -395,7 +395,7 @@ async@^0.9.0, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^2.0.0, async@^2.0.1: +async@^2.0.0, async@^2.0.1, async@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" dependencies: @@ -405,6 +405,10 @@ async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" +async@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-1.2.1.tgz#a4816a17cd5ff516dfa2c7698a453369b9790de0" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1479,7 +1483,7 @@ babel-runtime@6.23.0, babel-runtime@~6.23.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1: +babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.6.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -1946,9 +1950,11 @@ char-spinner@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/char-spinner/-/char-spinner-1.0.1.tgz#e6ea67bd247e107112983b7ab0479ed362800081" -charm@0.1.x: - version "0.1.2" - resolved "https://registry.yarnpkg.com/charm/-/charm-0.1.2.tgz#06c21eed1a1b06aeb67553cdc53e23274bac2296" +charm@0.1.x, charm@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/charm/-/charm-1.0.1.tgz#68566a7a553d4fe91797030dd1852d0dd6efa82d" + dependencies: + inherits "^2.0.1" cheerio@^0.22.0: version "0.22.0" @@ -2291,6 +2297,10 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" +console-polyfill@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/console-polyfill/-/console-polyfill-0.3.0.tgz#84900902a18c47a5eba932be75fa44d23e8af861" + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -2647,10 +2657,16 @@ debug@2.6.4: dependencies: ms "0.7.3" -debuglog@*, debuglog@^1.0.1: +debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" +decache@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decache/-/decache-3.1.0.tgz#4f5036fbd6581fcc97237ac3954a244b9536c2da" + dependencies: + find "^0.2.4" + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2715,10 +2731,6 @@ decompress@4.2.0: pify "^2.3.0" strip-dirs "^2.0.0" -deep-diff@0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.4.tgz#aac5c39952236abe5f037a2349060ba01b00ae48" - deep-eql@0.1.3, deep-eql@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" @@ -3266,6 +3278,12 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +error-stack-parser@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.3.tgz#fada6e3a9cd2b0e080e6d6fc751418649734f35c" + dependencies: + stackframe "^0.3.1" + error-stack-parser@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" @@ -3670,6 +3688,10 @@ extend@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/extend/-/extend-1.2.1.tgz#a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c" +extend@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + extend@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" @@ -3874,6 +3896,12 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" +find@^0.2.4: + version "0.2.7" + resolved "https://registry.yarnpkg.com/find/-/find-0.2.7.tgz#7afbd00f8f08c5b622f97cda6f714173d547bb3f" + dependencies: + traverse-chain "~0.1.0" + findup-sync@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" @@ -4706,7 +4734,7 @@ import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" -imurmurhash@*, imurmurhash@^0.1.4: +imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -5055,6 +5083,10 @@ is-windows@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" +is_js@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/is_js/-/is_js-0.9.0.tgz#0ab94540502ba7afa24c856aa985561669e9c52d" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -5194,7 +5226,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -5407,10 +5439,6 @@ lodash._baseget@^3.0.0: version "3.7.2" resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" -lodash._baseindexof@*: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" - lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" @@ -5433,25 +5461,11 @@ lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" -lodash._bindcallback@*: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._cacheindexof@*: - version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" - -lodash._createcache@*: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" - dependencies: - lodash._getnative "^3.0.0" - lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@*, lodash._getnative@^3.0.0: +lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -5533,11 +5547,15 @@ lodash.filter@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" +lodash.find@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + lodash.flatten@^4.2.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" -lodash.foreach@^4.3.0: +lodash.foreach@^4.2.0, lodash.foreach@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" @@ -5612,7 +5630,7 @@ lodash.pick@^4.2.1: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" -lodash.reduce@^4.4.0: +lodash.reduce@^4.3.0, lodash.reduce@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" @@ -5624,7 +5642,7 @@ lodash.rest@^4.0.0: version "4.0.5" resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-4.0.5.tgz#954ef75049262038c96d1fc98b28fdaf9f0772aa" -lodash.restparam@*, lodash.restparam@^3.0.0: +lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -5752,6 +5770,10 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@~2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" + lru-cache@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" @@ -7707,7 +7729,7 @@ readable-stream@~2.1.4, readable-stream@~2.1.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -7782,12 +7804,6 @@ redux-form@5.3.4: is-promise "^2.1.0" react-lazy-cache "^3.0.1" -redux-logger@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-3.0.1.tgz#ae8ae4c3c55ed3dd7aa31509f0856c5d3751057a" - dependencies: - deep-diff "0.3.4" - redux-mock-store@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.2.3.tgz#1b3ad299da91cb41ba30d68e3b6f024475fb9e1b" @@ -7910,6 +7926,12 @@ replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" +request-ip@~2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/request-ip/-/request-ip-2.0.2.tgz#deeae6d4af21768497db8cd05fa37143f8f1257e" + dependencies: + is_js "^0.9.0" + request@2, request@^2.45.0, request@^2.47.0, request@^2.65.0, request@^2.72.0, request@^2.74.0, request@^2.75.0, request@^2.79.0, request@^2.81.0, request@~2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -8102,6 +8124,34 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^2.0.0" inherits "^2.0.1" +rollbar-sourcemap-webpack-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/rollbar-sourcemap-webpack-plugin/-/rollbar-sourcemap-webpack-plugin-2.2.0.tgz#37fc39e79a410efc3aa7095b0cde084452a789a6" + dependencies: + async "^2.1.4" + babel-runtime "^6.20.0" + lodash.find "^4.3.0" + lodash.foreach "^4.2.0" + lodash.reduce "^4.3.0" + request "^2.72.0" + verror "^1.6.1" + +rollbar@2.2.8: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rollbar/-/rollbar-2.2.8.tgz#83fa127eece554f945753bad6951d8d48b92f227" + dependencies: + async "~1.2.1" + console-polyfill "0.3.0" + debug "2.6.8" + error-stack-parser "1.3.3" + extend "3.0.0" + json-stringify-safe "~5.0.0" + lru-cache "~2.2.1" + request-ip "~2.0.1" + uuid "3.0.x" + optionalDependencies: + decache "^3.0.5" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -8633,12 +8683,6 @@ stringstream@~0.0.4: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" -strip-ansi@*, strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" @@ -8651,6 +8695,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1, strip-ansi@~3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -8995,6 +9045,10 @@ tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +traverse-chain@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" + traverse@0.6.6, traverse@0.6.x: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" @@ -9256,6 +9310,10 @@ uuid-1345@^0.99.6: dependencies: macaddress "^0.2.7" +uuid@3.0.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + uuid@3.1.0, uuid@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" @@ -9264,7 +9322,7 @@ uuid@^2.0.1, uuid@^2.0.2, uuid@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" -validate-npm-package-license@*, validate-npm-package-license@^3.0.1, validate-npm-package-license@~3.0.1: +validate-npm-package-license@^3.0.1, validate-npm-package-license@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" dependencies: @@ -9295,7 +9353,7 @@ vendors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" -verror@1.10.0: +verror@1.10.0, verror@^1.6.1: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: