Merge pull request #2583 from balena-io/add-mixpanel-configs

Customize Mixpanel configs
This commit is contained in:
Lorenzo Alberto Maria Ambrosi 2018-12-18 15:13:16 +01:00 committed by GitHub
commit 9077c95cdd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 266 additions and 189 deletions

View File

@ -108,7 +108,7 @@ app.run(() => {
'\\____/ \\__\\___|_| |_|\\___|_|', '\\____/ \\__\\___|_| |_|\\___|_|',
'', '',
'Interested in joining the Etcher team?', 'Interested in joining the Etcher team?',
'Drop us a line at join+etcher@resin.io', 'Drop us a line at join+etcher@balena.io',
'', '',
`Version = ${packageJSON.version}, Type = ${packageJSON.packageType}` `Version = ${packageJSON.version}, Type = ${packageJSON.packageType}`
].join('\n')) ].join('\n'))

View File

@ -20,22 +20,81 @@ const _ = require('lodash')
const resinCorvus = require('resin-corvus/browser') const resinCorvus = require('resin-corvus/browser')
const packageJSON = require('../../../../package.json') const packageJSON = require('../../../../package.json')
const settings = require('../models/settings') const settings = require('../models/settings')
const { hasProps } = require('../../../shared/utils')
const Bluebird = require('bluebird')
const request = Bluebird.promisifyAll(require('request'))
const sentryToken = settings.get('analyticsSentryToken') ||
_.get(packageJSON, [ 'analytics', 'sentry', 'token' ])
const mixpanelToken = settings.get('analyticsMixpanelToken') ||
_.get(packageJSON, [ 'analytics', 'mixpanel', 'token' ])
const configUrl = settings.get('configUrl') || 'http://balena.io/etcher/static/config.json'
const DEFAULT_PROBABILITY = 1
const services = {
sentry: sentryToken,
mixpanel: mixpanelToken
}
resinCorvus.install({ resinCorvus.install({
services: { services,
sentry: settings.get('analyticsSentryToken') ||
_.get(packageJSON, [ 'analytics', 'sentry', 'token' ]),
mixpanel: settings.get('analyticsMixpanelToken') ||
_.get(packageJSON, [ 'analytics', 'mixpanel', 'token' ])
},
options: { options: {
release: packageJSON.version, release: packageJSON.version,
shouldReport: () => { shouldReport: () => {
return settings.get('errorReporting') return settings.get('errorReporting')
} },
mixpanelDeferred: true
} }
}) })
getConfig(configUrl)
.then((config) => {
resinCorvus.setConfigs({
mixpanel: getMixpanelConfig(config)
})
})
/**
* @summary Get etcher configs stored online
* @param {String} - url where config.json is stored
*/
// eslint-disable-next-line
function getConfig(url) {
return request.getAsync(url, { json: true })
.get('body')
}
/**
* @summary Check that the client is eligible for analytics
* @param {Object} - config
*/
// eslint-disable-next-line
function getMixpanelConfig(config) {
const probability = config.analytics.mixpanel.probability || DEFAULT_PROBABILITY
if (Math.random() > probability) {
return validateMixpanelConfig(config.analytics.mixpanel)
}
return null
}
/**
* @summary Check that config has at least HTTP_PROTOCOL and api_host
* @param {Object} - config
*/
// eslint-disable-next-line
function validateMixpanelConfig (config) {
/* eslint-disable camelcase */
const mixpanelConfig = {
api_host: 'https://api.mixpanel.com'
}
if (hasProps(config, [ 'HTTP_PROTOCOL', 'api_host' ])) {
mixpanelConfig.api_host = `${config.HTTP_PROTOCOL}://${config.api_host}`
}
return mixpanelConfig
/* eslint-enable camelcase */
}
/** /**
* @summary Log a debug message * @summary Log a debug message
* @function * @function

View File

@ -137,3 +137,22 @@ exports.memoize = (func, comparer) => {
return state return state
} }
} }
/**
* @summary Check if obj has one or many specific props
* @function
* @public
*
* @param {Object} obj - object
* @param {Array<String>} props - properties
*
* @returns {Boolean}
*
* @example
* const doesIt = hasProps({ foo: 'bar' }, [ 'foo' ]);
*/
exports.hasProps = (obj, props) => {
return _.every(props, (prop) => {
return _.has(obj, prop)
})
}

357
npm-shrinkwrap.json generated
View File

@ -2,6 +2,10 @@
"name": "balena-etcher", "name": "balena-etcher",
"version": "1.4.8", "version": "1.4.8",
"dependencies": { "dependencies": {
"@balena/grid-styled": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@balena/grid-styled/-/grid-styled-3.1.1.tgz"
},
"@fortawesome/fontawesome-free-webfonts": { "@fortawesome/fontawesome-free-webfonts": {
"version": "1.0.9", "version": "1.0.9",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free-webfonts/-/fontawesome-free-webfonts-1.0.9.tgz" "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free-webfonts/-/fontawesome-free-webfonts-1.0.9.tgz"
@ -11,8 +15,8 @@
"resolved": "https://registry.npmjs.org/@types/angular/-/angular-1.6.51.tgz" "resolved": "https://registry.npmjs.org/@types/angular/-/angular-1.6.51.tgz"
}, },
"@types/chart.js": { "@types/chart.js": {
"version": "2.7.40", "version": "2.7.41",
"resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.7.40.tgz" "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.7.41.tgz"
}, },
"@types/color": { "@types/color": {
"version": "2.0.1", "version": "2.0.1",
@ -35,8 +39,8 @@
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-6.0.1.tgz" "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-6.0.1.tgz"
}, },
"@types/lodash": { "@types/lodash": {
"version": "4.14.117", "version": "4.14.119",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.117.tgz" "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.119.tgz"
}, },
"@types/lodash.frompairs": { "@types/lodash.frompairs": {
"version": "4.0.4", "version": "4.0.4",
@ -51,12 +55,12 @@
"resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz" "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.3.0.tgz"
}, },
"@types/node": { "@types/node": {
"version": "10.12.0", "version": "10.12.12",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz" "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.12.tgz"
}, },
"@types/prop-types": { "@types/prop-types": {
"version": "15.5.6", "version": "15.5.7",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.6.tgz" "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.7.tgz"
}, },
"@types/react": { "@types/react": {
"version": "16.3.14", "version": "16.3.14",
@ -75,8 +79,8 @@
"resolved": "https://registry.npmjs.org/@types/react-icons/-/react-icons-2.2.6.tgz" "resolved": "https://registry.npmjs.org/@types/react-icons/-/react-icons-2.2.6.tgz"
}, },
"@types/react-jsonschema-form": { "@types/react-jsonschema-form": {
"version": "1.0.10", "version": "1.0.12",
"resolved": "https://registry.npmjs.org/@types/react-jsonschema-form/-/react-jsonschema-form-1.0.10.tgz" "resolved": "https://registry.npmjs.org/@types/react-jsonschema-form/-/react-jsonschema-form-1.0.12.tgz"
}, },
"@types/recompose": { "@types/recompose": {
"version": "0.26.5", "version": "0.26.5",
@ -139,8 +143,8 @@
} }
}, },
"ajv": { "ajv": {
"version": "6.5.4", "version": "6.6.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz" "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz"
}, },
"ajv-keywords": { "ajv-keywords": {
"version": "3.2.0", "version": "3.2.0",
@ -523,11 +527,6 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
"dev": true "dev": true
}, },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"dev": true
},
"asap": { "asap": {
"version": "2.0.6", "version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz"
@ -595,8 +594,8 @@
"dev": true "dev": true
}, },
"ast-types": { "ast-types": {
"version": "0.11.6", "version": "0.11.7",
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.6.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.7.tgz",
"dev": true "dev": true
}, },
"async": { "async": {
@ -1023,8 +1022,8 @@
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz"
} }
} }
}, },
@ -1075,8 +1074,8 @@
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz"
} }
} }
}, },
@ -1085,8 +1084,8 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"dependencies": { "dependencies": {
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz"
}, },
"regenerator-runtime": { "regenerator-runtime": {
"version": "0.11.1", "version": "0.11.1",
@ -1190,6 +1189,10 @@
"readable-stream": { "readable-stream": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
} }
} }
}, },
@ -1211,13 +1214,13 @@
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.1.tgz" "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.1.tgz"
}, },
"bluebird-lst": { "bluebird-lst": {
"version": "1.0.5", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.5.tgz", "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.6.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"bluebird": { "bluebird": {
"version": "3.5.2", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
"dev": true "dev": true
} }
} }
@ -1475,8 +1478,8 @@
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz"
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30000898", "version": "1.0.30000918",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000898.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000918.tgz",
"dev": true "dev": true
}, },
"capture-stack-trace": { "capture-stack-trace": {
@ -1951,8 +1954,8 @@
"dev": true "dev": true
}, },
"csstype": { "csstype": {
"version": "2.5.7", "version": "2.5.8",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.7.tgz" "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.8.tgz"
}, },
"cuint": { "cuint": {
"version": "0.2.2", "version": "0.2.2",
@ -2246,11 +2249,6 @@
} }
} }
}, },
"del": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
"dev": true
},
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
@ -2326,8 +2324,8 @@
"dev": true "dev": true
}, },
"domelementtype": { "domelementtype": {
"version": "1.3.0", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz"
}, },
"domhandler": { "domhandler": {
"version": "2.4.2", "version": "2.4.2",
@ -2386,8 +2384,8 @@
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "7.10.0", "version": "7.10.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.2.tgz",
"dev": true "dev": true
} }
} }
@ -2579,8 +2577,8 @@
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"bluebird": { "bluebird": {
"version": "3.5.2", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz",
"dev": true "dev": true
}, },
"debug": { "debug": {
@ -2618,8 +2616,8 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.81", "version": "1.3.90",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.81.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.90.tgz",
"dev": true "dev": true
}, },
"electron-window": { "electron-window": {
@ -2652,8 +2650,8 @@
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"tapable": { "tapable": {
"version": "1.1.0", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz",
"dev": true "dev": true
} }
} }
@ -2800,8 +2798,8 @@
"dev": true "dev": true
}, },
"globals": { "globals": {
"version": "11.8.0", "version": "11.9.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz",
"dev": true "dev": true
}, },
"has-flag": { "has-flag": {
@ -3098,8 +3096,8 @@
"resolved": "https://registry.npmjs.org/fast-plist/-/fast-plist-0.1.2.tgz" "resolved": "https://registry.npmjs.org/fast-plist/-/fast-plist-0.1.2.tgz"
}, },
"fastparse": { "fastparse": {
"version": "1.1.1", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
"dev": true "dev": true
}, },
"fbjs": { "fbjs": {
@ -3129,9 +3127,24 @@
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz",
"dev": true "dev": true
}, },
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"dev": true
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"dev": true
},
"through2": { "through2": {
"version": "2.0.3", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"dev": true "dev": true
} }
} }
@ -3156,9 +3169,24 @@
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz",
"dev": true "dev": true
}, },
"process-nextick-args": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"dev": true
},
"readable-stream": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"dev": true
},
"through2": { "through2": {
"version": "2.0.3", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
"dev": true "dev": true
} }
} }
@ -3218,8 +3246,8 @@
"resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz" "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz"
}, },
"flat-cache": { "flat-cache": {
"version": "1.3.0", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz",
"dev": true "dev": true
}, },
"flexboxgrid": { "flexboxgrid": {
@ -3477,8 +3505,8 @@
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz"
}, },
"globby": { "globby": {
"version": "5.0.0", "version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"dev": true "dev": true
}, },
"globule": { "globule": {
@ -3508,8 +3536,8 @@
"resolved": "https://registry.npmjs.org/gpt/-/gpt-1.0.0.tgz" "resolved": "https://registry.npmjs.org/gpt/-/gpt-1.0.0.tgz"
}, },
"graceful-fs": { "graceful-fs": {
"version": "4.1.11", "version": "4.1.15",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz"
}, },
"graceful-readlink": { "graceful-readlink": {
"version": "1.0.1", "version": "1.0.1",
@ -3524,10 +3552,6 @@
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/graphlibrary/-/graphlibrary-2.2.0.tgz" "resolved": "https://registry.npmjs.org/graphlibrary/-/graphlibrary-2.2.0.tgz"
}, },
"grid-styled": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/grid-styled/-/grid-styled-3.1.1.tgz"
},
"growl": { "growl": {
"version": "1.10.3", "version": "1.10.3",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
@ -3631,8 +3655,8 @@
"dev": true "dev": true
}, },
"hash.js": { "hash.js": {
"version": "1.1.5", "version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"dev": true "dev": true
}, },
"hawk": { "hawk": {
@ -3714,19 +3738,14 @@
"dev": true "dev": true
}, },
"html-minifier": { "html-minifier": {
"version": "3.5.20", "version": "3.5.21",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"commander": { "commander": {
"version": "2.17.1", "version": "2.17.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
"dev": true "dev": true
},
"he": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
"dev": true
} }
} }
}, },
@ -4012,8 +4031,8 @@
"dev": true "dev": true
}, },
"is-electron": { "is-electron": {
"version": "2.1.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz" "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz"
}, },
"is-electron-renderer": { "is-electron-renderer": {
"version": "2.0.1", "version": "2.0.1",
@ -4095,16 +4114,6 @@
} }
} }
}, },
"is-path-cwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
"dev": true
},
"is-path-in-cwd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
"dev": true
},
"is-path-inside": { "is-path-inside": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
@ -4522,8 +4531,8 @@
"dev": true "dev": true
}, },
"lru-cache": { "lru-cache": {
"version": "4.1.3", "version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz" "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
}, },
"lzma-native": { "lzma-native": {
"version": "1.5.2", "version": "1.5.2",
@ -5109,8 +5118,8 @@
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
}, },
"merge": { "merge": {
"version": "1.2.0", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
"dev": true "dev": true
}, },
"mermaid": { "mermaid": {
@ -5133,8 +5142,8 @@
"dev": true "dev": true
}, },
"mime": { "mime": {
"version": "2.3.1", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz",
"dev": true "dev": true
}, },
"mime-db": { "mime-db": {
@ -5176,14 +5185,14 @@
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
"dependencies": { "dependencies": {
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz" "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz"
} }
} }
}, },
"minizlib": { "minizlib": {
"version": "1.1.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz" "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz"
}, },
"mixin-deep": { "mixin-deep": {
"version": "1.3.1", "version": "1.3.1",
@ -5207,8 +5216,8 @@
"resolved": "https://registry.npmjs.org/mixpanel/-/mixpanel-0.7.0.tgz" "resolved": "https://registry.npmjs.org/mixpanel/-/mixpanel-0.7.0.tgz"
}, },
"mixpanel-browser": { "mixpanel-browser": {
"version": "2.23.0", "version": "2.24.0",
"resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.23.0.tgz" "resolved": "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.24.0.tgz"
}, },
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
@ -5226,8 +5235,8 @@
"dev": true "dev": true
}, },
"mksnapshot": { "mksnapshot": {
"version": "0.3.1", "version": "0.3.4",
"resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz", "resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.4.tgz",
"dev": true "dev": true
}, },
"mocha": { "mocha": {
@ -5408,8 +5417,8 @@
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"qs": { "qs": {
"version": "6.5.2", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz",
"dev": true "dev": true
}, },
"semver": { "semver": {
@ -5420,8 +5429,8 @@
} }
}, },
"node-abi": { "node-abi": {
"version": "2.4.5", "version": "2.5.0",
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.5.tgz", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.5.0.tgz",
"dependencies": { "dependencies": {
"semver": { "semver": {
"version": "5.6.0", "version": "5.6.0",
@ -5528,8 +5537,8 @@
"resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.3.7.tgz" "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.3.7.tgz"
}, },
"node.extend": { "node.extend": {
"version": "2.0.0", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/node.extend/-/node.extend-2.0.0.tgz", "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-2.0.2.tgz",
"dev": true "dev": true
}, },
"noop-logger": { "noop-logger": {
@ -5733,8 +5742,8 @@
"dev": true "dev": true
}, },
"pako": { "pako": {
"version": "1.0.6", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz",
"dev": true "dev": true
}, },
"param-case": { "param-case": {
@ -5905,8 +5914,8 @@
"dev": true "dev": true
}, },
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz",
"dev": true "dev": true
}, },
"escodegen": { "escodegen": {
@ -5929,11 +5938,6 @@
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz",
"dev": true "dev": true
}, },
"globby": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
"dev": true
},
"has-flag": { "has-flag": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
@ -6000,8 +6004,8 @@
"dev": true "dev": true
}, },
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz",
"dev": true "dev": true
}, },
"expand-template": { "expand-template": {
@ -6102,8 +6106,8 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
}, },
"progress": { "progress": {
"version": "2.0.1", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"dev": true "dev": true
}, },
"progress-bar-formatter": { "progress-bar-formatter": {
@ -6172,8 +6176,8 @@
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
}, },
"psl": { "psl": {
"version": "1.1.29", "version": "1.1.31",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
"dev": true "dev": true
}, },
"public-encrypt": { "public-encrypt": {
@ -6306,16 +6310,16 @@
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-2.2.7.tgz" "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-2.2.7.tgz"
}, },
"react-jsonschema-form": { "react-jsonschema-form": {
"version": "1.0.5", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/react-jsonschema-form/-/react-jsonschema-form-1.0.5.tgz", "resolved": "https://registry.npmjs.org/react-jsonschema-form/-/react-jsonschema-form-1.0.6.tgz",
"dependencies": { "dependencies": {
"ajv": { "ajv": {
"version": "5.5.2", "version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz" "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz"
}, },
"core-js": { "core-js": {
"version": "2.5.7", "version": "2.6.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz" "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.0.tgz"
}, },
"fast-deep-equal": { "fast-deep-equal": {
"version": "1.1.0", "version": "1.1.0",
@ -6720,8 +6724,8 @@
"dev": true "dev": true
}, },
"rendition": { "rendition": {
"version": "4.27.3", "version": "4.41.1",
"resolved": "https://registry.npmjs.org/rendition/-/rendition-4.27.3.tgz", "resolved": "https://registry.npmjs.org/rendition/-/rendition-4.41.1.tgz",
"dependencies": { "dependencies": {
"uuid": { "uuid": {
"version": "3.3.2", "version": "3.3.2",
@ -6833,8 +6837,8 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
}, },
"bluebird": { "bluebird": {
"version": "3.5.2", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz" "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz"
}, },
"chalk": { "chalk": {
"version": "2.4.1", "version": "2.4.1",
@ -6897,8 +6901,8 @@
} }
}, },
"resin-corvus": { "resin-corvus": {
"version": "1.0.0-beta.31", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/resin-corvus/-/resin-corvus-1.0.0-beta.31.tgz" "resolved": "https://registry.npmjs.org/resin-corvus/-/resin-corvus-2.0.0.tgz"
}, },
"resin-device-status": { "resin-device-status": {
"version": "1.1.1", "version": "1.1.1",
@ -7252,8 +7256,8 @@
"dev": true "dev": true
}, },
"showdown": { "showdown": {
"version": "1.8.7", "version": "1.9.0",
"resolved": "https://registry.npmjs.org/showdown/-/showdown-1.8.7.tgz", "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.0.tgz",
"dependencies": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "3.0.0", "version": "3.0.0",
@ -7366,8 +7370,8 @@
} }
}, },
"slugify": { "slugify": {
"version": "1.3.1", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.1.tgz" "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.3.4.tgz"
}, },
"smart-buffer": { "smart-buffer": {
"version": "1.1.15", "version": "1.1.15",
@ -7468,8 +7472,8 @@
"dev": true "dev": true
}, },
"spdx-correct": { "spdx-correct": {
"version": "3.0.2", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz" "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"
}, },
"spdx-exceptions": { "spdx-exceptions": {
"version": "2.2.0", "version": "2.2.0",
@ -7480,8 +7484,8 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"
}, },
"spdx-license-ids": { "spdx-license-ids": {
"version": "3.0.1", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz" "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz"
}, },
"spectron": { "spectron": {
"version": "3.7.3", "version": "3.7.3",
@ -7515,12 +7519,12 @@
} }
}, },
"sprintf-js": { "sprintf-js": {
"version": "1.1.1", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz" "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz"
}, },
"sshpk": { "sshpk": {
"version": "1.15.1", "version": "1.15.2",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.1.tgz", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz",
"dependencies": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
@ -7571,6 +7575,11 @@
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"dev": true "dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"dev": true
} }
} }
}, },
@ -7580,8 +7589,8 @@
"dev": true "dev": true
}, },
"string_decoder": { "string_decoder": {
"version": "1.1.1", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz"
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
@ -7646,8 +7655,8 @@
} }
}, },
"stylis": { "stylis": {
"version": "3.5.3", "version": "3.5.4",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.3.tgz" "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz"
}, },
"stylis-rule-sheet": { "stylis-rule-sheet": {
"version": "0.0.10", "version": "0.0.10",
@ -7690,14 +7699,19 @@
"dev": true "dev": true
}, },
"qs": { "qs": {
"version": "6.5.2", "version": "6.6.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.6.0.tgz",
"dev": true "dev": true
}, },
"readable-stream": { "readable-stream": {
"version": "2.3.6", "version": "2.3.6",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"dev": true "dev": true
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"dev": true
} }
} }
}, },
@ -7766,17 +7780,17 @@
"resolved": "https://registry.npmjs.org/tag-hoc/-/tag-hoc-1.0.0.tgz" "resolved": "https://registry.npmjs.org/tag-hoc/-/tag-hoc-1.0.0.tgz"
}, },
"tapable": { "tapable": {
"version": "0.2.8", "version": "0.2.9",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
"dev": true "dev": true
}, },
"tar": { "tar": {
"version": "4.4.6", "version": "4.4.8",
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.6.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"dependencies": { "dependencies": {
"yallist": { "yallist": {
"version": "3.0.2", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz" "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz"
} }
} }
}, },
@ -8040,8 +8054,8 @@
"dev": true "dev": true
}, },
"ua-parser-js": { "ua-parser-js": {
"version": "0.7.18", "version": "0.7.19",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz" "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.19.tgz"
}, },
"udif": { "udif": {
"version": "0.13.0", "version": "0.13.0",
@ -8405,15 +8419,10 @@
"dev": true "dev": true
}, },
"webdriverio": { "webdriverio": {
"version": "4.14.0", "version": "4.14.1",
"resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.14.0.tgz", "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.14.1.tgz",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"dev": true
},
"ansi-escapes": { "ansi-escapes": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
@ -8456,11 +8465,6 @@
"resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.9.tgz", "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.9.tgz",
"dev": true "dev": true
}, },
"fast-deep-equal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"dev": true
},
"form-data": { "form-data": {
"version": "2.3.3", "version": "2.3.3",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
@ -8472,8 +8476,8 @@
"dev": true "dev": true
}, },
"har-validator": { "har-validator": {
"version": "5.1.0", "version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"dev": true "dev": true
}, },
"has-flag": { "has-flag": {
@ -8496,11 +8500,6 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"dev": true "dev": true
}, },
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"dev": true
},
"mime-db": { "mime-db": {
"version": "1.37.0", "version": "1.37.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
@ -8840,8 +8839,8 @@
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
}, },
"xterm": { "xterm": {
"version": "3.8.0", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/xterm/-/xterm-3.8.0.tgz" "resolved": "https://registry.npmjs.org/xterm/-/xterm-3.9.1.tgz"
}, },
"xxhash": { "xxhash": {
"version": "0.2.4", "version": "0.2.4",

View File

@ -83,11 +83,11 @@
"react2angular": "4.0.2", "react2angular": "4.0.2",
"readable-stream": "2.3.3", "readable-stream": "2.3.3",
"redux": "3.5.2", "redux": "3.5.2",
"rendition": "4.27.3", "rendition": "4.41.1",
"request": "2.81.0", "request": "2.81.0",
"resin-cli-form": "1.4.1", "resin-cli-form": "1.4.1",
"resin-cli-visuals": "1.4.1", "resin-cli-visuals": "1.4.1",
"resin-corvus": "1.0.0-beta.31", "resin-corvus": "2.0.0",
"roboto-fontface": "0.9.0", "roboto-fontface": "0.9.0",
"semver": "5.1.1", "semver": "5.1.1",
"speedometer": "1.0.0", "speedometer": "1.0.0",