diff --git a/config/config.exs b/config/config.exs
index 4cf6ba116..deb39dbe7 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -9,6 +9,16 @@ use Mix.Config
config :eventos,
ecto_repos: [Eventos.Repo]
+config :eventos, :instance,
+ name: "Localhost",
+ version: "1.0.0-dev",
+ registrations_open: true
+
+config :mime, :types, %{
+ "application/activity+json" => ["activity-json"],
+ "application/jrd+json" => ["jrd-json"]
+}
+
# Configures the endpoint
config :eventos, EventosWeb.Endpoint,
url: [host: "localhost"],
diff --git a/config/dev.exs b/config/dev.exs
index 14b0774c0..c2c41044c 100644
--- a/config/dev.exs
+++ b/config/dev.exs
@@ -7,7 +7,7 @@ use Mix.Config
# watchers to your application. For example, we use it
# with brunch.io to recompile .js and .css sources.
config :eventos, EventosWeb.Endpoint,
- http: [port: 4000],
+ http: [port: 4001],
debug_errors: true,
code_reloader: true,
check_origin: false,
diff --git a/js/.babelrc b/js/.babelrc
index c06df4d53..a736dde9b 100644
--- a/js/.babelrc
+++ b/js/.babelrc
@@ -1,18 +1,5 @@
{
"presets": [
- ["env", {
- "modules": false,
- "targets": {
- "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
- }
- }],
- "stage-2"
- ],
- "plugins": ["transform-runtime"],
- "env": {
- "test": {
- "presets": ["env", "stage-2"],
- "plugins": ["istanbul"]
- }
- }
-}
+ "@vue/app"
+ ]
+}
\ No newline at end of file
diff --git a/js/.editorconfig b/js/.editorconfig
deleted file mode 100644
index 9d08a1a82..000000000
--- a/js/.editorconfig
+++ /dev/null
@@ -1,9 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 2
-end_of_line = lf
-insert_final_newline = true
-trim_trailing_whitespace = true
diff --git a/js/.env b/js/.env
new file mode 100644
index 000000000..01866b3c9
--- /dev/null
+++ b/js/.env
@@ -0,0 +1,3 @@
+API_HOST=localhost
+API_ORIGIN=http://localhost:4001
+API_PATH=/api/v1
diff --git a/js/.env.dist b/js/.env.dist
new file mode 100644
index 000000000..30dde71ce
--- /dev/null
+++ b/js/.env.dist
@@ -0,0 +1,3 @@
+API_HOST=event.tcit.fr
+API_ORIGIN=https://event.tcit.fr
+API_PATH=/api/v1
diff --git a/js/.eslintignore b/js/.eslintignore
deleted file mode 100644
index 34af3774f..000000000
--- a/js/.eslintignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build/*.js
-config/*.js
diff --git a/js/.eslintrc.js b/js/.eslintrc.js
index ffe2d211a..7d28e5d9e 100644
--- a/js/.eslintrc.js
+++ b/js/.eslintrc.js
@@ -1,22 +1,7 @@
-// http://eslint.org/docs/user-guide/configuring
-
module.exports = {
root: true,
- parserOptions: {
- parser: 'babel-eslint',
- sourceType: 'module'
- },
- env: {
- browser: true,
- },
- extends: [
- 'eslint:recommended',
- 'plugin:vue/recommended' // or 'plugin:vue/base'
- ],
-
- // add your custom rules here
- 'rules': {
- // don't require .vue extension when importing
- 'no-console': [0],
- },
-}
+ 'extends': [
+ 'plugin:vue/essential',
+ '@vue/airbnb'
+ ]
+}
\ No newline at end of file
diff --git a/js/.gitignore b/js/.gitignore
index 4105b1408..03808dce1 100644
--- a/js/.gitignore
+++ b/js/.gitignore
@@ -1,16 +1,26 @@
.DS_Store
-node_modules/
-dist/
+node_modules
+/dist
+
+/tests/e2e/reports/
+selenium-debug.log
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
-test/unit/coverage
-test/e2e/reports
-selenium-debug.log
# Editor directories and files
.idea
+.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
+*.sw*
+
+.env
diff --git a/js/.postcssrc.js b/js/.postcssrc.js
index 09948d63e..100cc0124 100644
--- a/js/.postcssrc.js
+++ b/js/.postcssrc.js
@@ -1,8 +1,5 @@
-// https://github.com/michael-ciniawsky/postcss-load-config
-
module.exports = {
- "plugins": {
- // to edit target browsers: use "browserslist" field in package.json
- "autoprefixer": {}
+ plugins: {
+ autoprefixer: {}
}
-}
+}
\ No newline at end of file
diff --git a/js/README.md b/js/README.md
deleted file mode 100644
index c6938072f..000000000
--- a/js/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# libre-event
-
-> A Vue.js project
-
-## Build Setup
-
-``` bash
-# install dependencies
-npm install
-
-# serve with hot reload at localhost:8080
-npm run dev
-
-# build for production with minification
-npm run build
-
-# build for production and view the bundle analyzer report
-npm run build --report
-
-# run unit tests
-npm run unit
-
-# run e2e tests
-npm run e2e
-
-# run all tests
-npm test
-```
-
-For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
diff --git a/js/build/build.js b/js/build/build.js
deleted file mode 100644
index a64501161..000000000
--- a/js/build/build.js
+++ /dev/null
@@ -1,40 +0,0 @@
-require('./check-versions')()
-
-process.env.NODE_ENV = 'production'
-
-var ora = require('ora')
-var rm = require('rimraf')
-var path = require('path')
-var chalk = require('chalk')
-var webpack = require('webpack')
-var config = require('../config')
-var webpackConfig = require('./webpack.prod.conf')
-
-var spinner = ora('building for production...')
-spinner.start()
-
-rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
- if (err) throw err
- webpack(webpackConfig, function (err, stats) {
- spinner.stop()
- if (err) throw err
- process.stdout.write(stats.toString({
- colors: true,
- modules: false,
- children: false,
- chunks: false,
- chunkModules: false
- }) + '\n\n')
-
- if (stats.hasErrors()) {
- console.log(chalk.red(' Build failed with errors.\n'))
- process.exit(1)
- }
-
- console.log(chalk.cyan(' Build complete.\n'))
- console.log(chalk.yellow(
- ' Tip: built files are meant to be served over an HTTP server.\n' +
- ' Opening index.html over file:// won\'t work.\n'
- ))
- })
-})
diff --git a/js/build/check-versions.js b/js/build/check-versions.js
deleted file mode 100644
index b3e7e17e3..000000000
--- a/js/build/check-versions.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var chalk = require('chalk')
-var semver = require('semver')
-var packageConfig = require('../package.json')
-var shell = require('shelljs')
-function exec (cmd) {
- return require('child_process').execSync(cmd).toString().trim()
-}
-
-var versionRequirements = [
- {
- name: 'node',
- currentVersion: semver.clean(process.version),
- versionRequirement: packageConfig.engines.node
- }
-]
-
-if (shell.which('npm')) {
- versionRequirements.push({
- name: 'npm',
- currentVersion: exec('npm --version'),
- versionRequirement: packageConfig.engines.npm
- })
-}
-
-module.exports = function () {
- var warnings = []
- for (var i = 0; i < versionRequirements.length; i++) {
- var mod = versionRequirements[i]
- if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
- warnings.push(mod.name + ': ' +
- chalk.red(mod.currentVersion) + ' should be ' +
- chalk.green(mod.versionRequirement)
- )
- }
- }
-
- if (warnings.length) {
- console.log('')
- console.log(chalk.yellow('To use this template, you must update following to modules:'))
- console.log()
- for (var i = 0; i < warnings.length; i++) {
- var warning = warnings[i]
- console.log(' ' + warning)
- }
- console.log()
- process.exit(1)
- }
-}
diff --git a/js/build/dev-client.js b/js/build/dev-client.js
deleted file mode 100644
index 18aa1e219..000000000
--- a/js/build/dev-client.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/* eslint-disable */
-require('eventsource-polyfill')
-var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
-
-hotClient.subscribe(function (event) {
- if (event.action === 'reload') {
- window.location.reload()
- }
-})
diff --git a/js/build/dev-server.js b/js/build/dev-server.js
deleted file mode 100644
index 2e27cae27..000000000
--- a/js/build/dev-server.js
+++ /dev/null
@@ -1,92 +0,0 @@
-require('./check-versions')()
-
-var config = require('../config')
-if (!process.env.NODE_ENV) {
- process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
-}
-
-var opn = require('opn')
-var path = require('path')
-var express = require('express')
-var webpack = require('webpack')
-var proxyMiddleware = require('http-proxy-middleware')
-var webpackConfig = (process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
- ? require('./webpack.prod.conf')
- : require('./webpack.dev.conf')
-
-// default port where dev server listens for incoming traffic
-var port = process.env.PORT || config.dev.port
-// automatically open browser, if not set will be false
-var autoOpenBrowser = !!config.dev.autoOpenBrowser
-// Define HTTP proxies to your custom API backend
-// https://github.com/chimurai/http-proxy-middleware
-var proxyTable = config.dev.proxyTable
-
-var app = express()
-var compiler = webpack(webpackConfig)
-
-var devMiddleware = require('webpack-dev-middleware')(compiler, {
- publicPath: webpackConfig.output.publicPath,
- quiet: true
-})
-
-var hotMiddleware = require('webpack-hot-middleware')(compiler, {
- log: false,
- heartbeat: 2000
-})
-// force page reload when html-webpack-plugin template changes
-compiler.plugin('compilation', function (compilation) {
- compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
- hotMiddleware.publish({ action: 'reload' })
- cb()
- })
-})
-
-// proxy api requests
-Object.keys(proxyTable).forEach(function (context) {
- var options = proxyTable[context]
- if (typeof options === 'string') {
- options = { target: options }
- }
- app.use(proxyMiddleware(options.filter || context, options))
-})
-
-// handle fallback for HTML5 history API
-app.use(require('connect-history-api-fallback')())
-
-// serve webpack bundle output
-app.use(devMiddleware)
-
-// enable hot-reload and state-preserving
-// compilation error display
-app.use(hotMiddleware)
-
-// serve pure static assets
-var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
-app.use(staticPath, express.static('./static'))
-
-var uri = 'http://localhost:' + port
-
-var _resolve
-var readyPromise = new Promise(resolve => {
- _resolve = resolve
-})
-
-console.log('> Starting dev server...')
-devMiddleware.waitUntilValid(() => {
- console.log('> Listening at ' + uri + '\n')
- // when env is testing, don't need open it
- if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
- opn(uri)
- }
- _resolve()
-})
-
-var server = app.listen(port)
-
-module.exports = {
- ready: readyPromise,
- close: () => {
- server.close()
- }
-}
diff --git a/js/build/utils.js b/js/build/utils.js
deleted file mode 100644
index b1d54b4d6..000000000
--- a/js/build/utils.js
+++ /dev/null
@@ -1,71 +0,0 @@
-var path = require('path')
-var config = require('../config')
-var ExtractTextPlugin = require('extract-text-webpack-plugin')
-
-exports.assetsPath = function (_path) {
- var assetsSubDirectory = process.env.NODE_ENV === 'production'
- ? config.build.assetsSubDirectory
- : config.dev.assetsSubDirectory
- return path.posix.join(assetsSubDirectory, _path)
-}
-
-exports.cssLoaders = function (options) {
- options = options || {}
-
- var cssLoader = {
- loader: 'css-loader',
- options: {
- minimize: process.env.NODE_ENV === 'production',
- sourceMap: options.sourceMap
- }
- }
-
- // generate loader string to be used with extract text plugin
- function generateLoaders (loader, loaderOptions) {
- var loaders = [cssLoader]
- if (loader) {
- loaders.push({
- loader: loader + '-loader',
- options: Object.assign({}, loaderOptions, {
- sourceMap: options.sourceMap
- })
- })
- }
-
- // Extract CSS when that option is specified
- // (which is the case during production build)
- if (options.extract) {
- return ExtractTextPlugin.extract({
- use: loaders,
- fallback: 'vue-style-loader'
- })
- } else {
- return ['vue-style-loader'].concat(loaders)
- }
- }
-
- // https://vue-loader.vuejs.org/en/configurations/extract-css.html
- return {
- css: generateLoaders(),
- postcss: generateLoaders(),
- less: generateLoaders('less'),
- sass: generateLoaders('sass', { indentedSyntax: true }),
- scss: generateLoaders('sass'),
- stylus: generateLoaders('stylus'),
- styl: generateLoaders('stylus')
- }
-}
-
-// Generate loaders for standalone style files (outside of .vue)
-exports.styleLoaders = function (options) {
- var output = []
- var loaders = exports.cssLoaders(options)
- for (var extension in loaders) {
- var loader = loaders[extension]
- output.push({
- test: new RegExp('\\.' + extension + '$'),
- use: loader
- })
- }
- return output
-}
diff --git a/js/build/vue-loader.conf.js b/js/build/vue-loader.conf.js
deleted file mode 100644
index 8a346d522..000000000
--- a/js/build/vue-loader.conf.js
+++ /dev/null
@@ -1,18 +0,0 @@
-var utils = require('./utils')
-var config = require('../config')
-var isProduction = process.env.NODE_ENV === 'production'
-
-module.exports = {
- loaders: utils.cssLoaders({
- sourceMap: isProduction
- ? config.build.productionSourceMap
- : config.dev.cssSourceMap,
- extract: isProduction
- }),
- transformToRequire: {
- video: 'src',
- source: 'src',
- img: 'src',
- image: 'xlink:href'
- }
-}
diff --git a/js/build/webpack.base.conf.js b/js/build/webpack.base.conf.js
deleted file mode 100644
index 1c99c4eb3..000000000
--- a/js/build/webpack.base.conf.js
+++ /dev/null
@@ -1,75 +0,0 @@
-var path = require('path')
-var utils = require('./utils')
-var config = require('../config')
-var vueLoaderConfig = require('./vue-loader.conf')
-
-function resolve (dir) {
- return path.join(__dirname, '..', dir)
-}
-
-module.exports = {
- entry: {
- app: './src/main.js'
- },
- output: {
- path: config.build.assetsRoot,
- filename: '[name].js',
- publicPath: process.env.NODE_ENV === 'production'
- ? config.build.assetsPublicPath
- : config.dev.assetsPublicPath
- },
- resolve: {
- extensions: ['.js', '.vue', '.json'],
- alias: {
- 'vue$': 'vue/dist/vue.esm.js',
- '@': resolve('src'),
- }
- },
- module: {
- rules: [
- {
- test: /\.(js|vue)$/,
- loader: 'eslint-loader',
- enforce: 'pre',
- include: [resolve('src'), resolve('test')],
- options: {
- formatter: require('eslint-friendly-formatter')
- }
- },
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: vueLoaderConfig
- },
- {
- test: /\.js$/,
- loader: 'babel-loader',
- include: [resolve('src'), resolve('test')]
- },
- {
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: utils.assetsPath('img/[name].[hash:7].[ext]')
- }
- },
- {
- test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: utils.assetsPath('media/[name].[hash:7].[ext]')
- }
- },
- {
- test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
- loader: 'url-loader',
- options: {
- limit: 10000,
- name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
- }
- }
- ]
- }
-}
diff --git a/js/build/webpack.dev.conf.js b/js/build/webpack.dev.conf.js
deleted file mode 100644
index 5470402d0..000000000
--- a/js/build/webpack.dev.conf.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var utils = require('./utils')
-var webpack = require('webpack')
-var config = require('../config')
-var merge = require('webpack-merge')
-var baseWebpackConfig = require('./webpack.base.conf')
-var HtmlWebpackPlugin = require('html-webpack-plugin')
-var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
-
-// add hot-reload related code to entry chunks
-Object.keys(baseWebpackConfig.entry).forEach(function (name) {
- baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
-})
-
-module.exports = merge(baseWebpackConfig, {
- module: {
- rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
- },
- // cheap-module-eval-source-map is faster for development
- devtool: '#cheap-module-eval-source-map',
- plugins: [
- new webpack.DefinePlugin({
- 'process.env': config.dev.env
- }),
- // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
- new webpack.HotModuleReplacementPlugin(),
- new webpack.NoEmitOnErrorsPlugin(),
- // https://github.com/ampedandwired/html-webpack-plugin
- new HtmlWebpackPlugin({
- filename: 'index.html',
- template: 'index.html',
- inject: true
- }),
- new FriendlyErrorsPlugin()
- ]
-})
diff --git a/js/build/webpack.prod.conf.js b/js/build/webpack.prod.conf.js
deleted file mode 100644
index 8d4bce7be..000000000
--- a/js/build/webpack.prod.conf.js
+++ /dev/null
@@ -1,126 +0,0 @@
-var path = require('path')
-var utils = require('./utils')
-var webpack = require('webpack')
-var config = require('../config')
-var merge = require('webpack-merge')
-var baseWebpackConfig = require('./webpack.base.conf')
-var CopyWebpackPlugin = require('copy-webpack-plugin')
-var HtmlWebpackPlugin = require('html-webpack-plugin')
-var ExtractTextPlugin = require('extract-text-webpack-plugin')
-var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
-
-var env = process.env.NODE_ENV === 'testing'
- ? require('../config/test.env')
- : config.build.env
-
-var webpackConfig = merge(baseWebpackConfig, {
- module: {
- rules: utils.styleLoaders({
- sourceMap: config.build.productionSourceMap,
- extract: true
- })
- },
- devtool: config.build.productionSourceMap ? '#source-map' : false,
- output: {
- path: config.build.assetsRoot,
- filename: utils.assetsPath('js/[name].[chunkhash].js'),
- chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
- },
- plugins: [
- // http://vuejs.github.io/vue-loader/en/workflow/production.html
- new webpack.DefinePlugin({
- 'process.env': env
- }),
- new webpack.optimize.UglifyJsPlugin({
- compress: {
- warnings: false
- },
- sourceMap: true
- }),
- // extract css into its own file
- new ExtractTextPlugin({
- filename: utils.assetsPath('css/[name].[contenthash].css')
- }),
- // Compress extracted CSS. We are using this plugin so that possible
- // duplicated CSS from different components can be deduped.
- new OptimizeCSSPlugin({
- cssProcessorOptions: {
- safe: true
- }
- }),
- // generate dist index.html with correct asset hash for caching.
- // you can customize output by editing /index.html
- // see https://github.com/ampedandwired/html-webpack-plugin
- new HtmlWebpackPlugin({
- filename: process.env.NODE_ENV === 'testing'
- ? 'index.html'
- : config.build.index,
- template: 'index.html',
- inject: true,
- minify: {
- removeComments: true,
- collapseWhitespace: true,
- removeAttributeQuotes: true
- // more options:
- // https://github.com/kangax/html-minifier#options-quick-reference
- },
- // necessary to consistently work with multiple chunks via CommonsChunkPlugin
- chunksSortMode: 'dependency'
- }),
- // keep module.id stable when vender modules does not change
- new webpack.HashedModuleIdsPlugin(),
- // split vendor js into its own file
- new webpack.optimize.CommonsChunkPlugin({
- name: 'vendor',
- minChunks: function (module, count) {
- // any required modules inside node_modules are extracted to vendor
- return (
- module.resource &&
- /\.js$/.test(module.resource) &&
- module.resource.indexOf(
- path.join(__dirname, '../node_modules')
- ) === 0
- )
- }
- }),
- // extract webpack runtime and module manifest to its own file in order to
- // prevent vendor hash from being updated whenever app bundle is updated
- new webpack.optimize.CommonsChunkPlugin({
- name: 'manifest',
- chunks: ['vendor']
- }),
- // copy custom static assets
- new CopyWebpackPlugin([
- {
- from: path.resolve(__dirname, '../static'),
- to: config.build.assetsSubDirectory,
- ignore: ['.*']
- }
- ])
- ]
-})
-
-if (config.build.productionGzip) {
- var CompressionWebpackPlugin = require('compression-webpack-plugin')
-
- webpackConfig.plugins.push(
- new CompressionWebpackPlugin({
- asset: '[path].gz[query]',
- algorithm: 'gzip',
- test: new RegExp(
- '\\.(' +
- config.build.productionGzipExtensions.join('|') +
- ')$'
- ),
- threshold: 10240,
- minRatio: 0.8
- })
- )
-}
-
-if (config.build.bundleAnalyzerReport) {
- var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
- webpackConfig.plugins.push(new BundleAnalyzerPlugin())
-}
-
-module.exports = webpackConfig
diff --git a/js/build/webpack.test.conf.js b/js/build/webpack.test.conf.js
deleted file mode 100644
index 48f64cc31..000000000
--- a/js/build/webpack.test.conf.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// This is the webpack config used for unit tests.
-
-var utils = require('./utils')
-var webpack = require('webpack')
-var merge = require('webpack-merge')
-var baseConfig = require('./webpack.base.conf')
-
-var webpackConfig = merge(baseConfig, {
- // use inline sourcemap for karma-sourcemap-loader
- module: {
- rules: utils.styleLoaders()
- },
- devtool: '#inline-source-map',
- resolveLoader: {
- alias: {
- // necessary to to make lang="scss" work in test when using vue-loader's ?inject option
- // see discussion at https://github.com/vuejs/vue-loader/issues/724
- 'scss-loader': 'sass-loader'
- }
- },
- plugins: [
- new webpack.DefinePlugin({
- 'process.env': require('../config/test.env')
- })
- ]
-})
-
-// no need for app entry during tests
-delete webpackConfig.entry
-
-module.exports = webpackConfig
diff --git a/js/config/dev.env.js b/js/config/dev.env.js
deleted file mode 100644
index efead7c84..000000000
--- a/js/config/dev.env.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var merge = require('webpack-merge')
-var prodEnv = require('./prod.env')
-
-module.exports = merge(prodEnv, {
- NODE_ENV: '"development"'
-})
diff --git a/js/config/index.js b/js/config/index.js
deleted file mode 100644
index 38ec7a8d0..000000000
--- a/js/config/index.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// see http://vuejs-templates.github.io/webpack for documentation.
-var path = require('path')
-
-module.exports = {
- build: {
- env: require('./prod.env'),
- index: path.resolve(__dirname, '../../lib/eventos_web/templates/page/index.html.eex'),
- assetsRoot: path.resolve(__dirname, '../../priv/static'),
- assetsSubDirectory: '',
- assetsPublicPath: '/',
- productionSourceMap: true,
- // Gzip off by default as many popular static hosts such as
- // Surge or Netlify already gzip all static assets for you.
- // Before setting to `true`, make sure to:
- // npm install --save-dev compression-webpack-plugin
- productionGzip: false,
- productionGzipExtensions: ['js', 'css'],
- // Run the build command with an extra argument to
- // View the bundle analyzer report after build finishes:
- // `npm run build --report`
- // Set to `true` or `false` to always turn it on or off
- bundleAnalyzerReport: process.env.npm_config_report
- },
- dev: {
- env: require('./dev.env'),
- port: 8080,
- autoOpenBrowser: true,
- assetsSubDirectory: 'static',
- assetsPublicPath: '/',
- proxyTable: {},
- // CSS Sourcemaps off by default because relative paths are "buggy"
- // with this option, according to the CSS-Loader README
- // (https://github.com/webpack/css-loader#sourcemaps)
- // In our experience, they generally work as expected,
- // just be aware of this issue when enabling this option.
- cssSourceMap: false
- }
-}
diff --git a/js/config/prod.env.js b/js/config/prod.env.js
deleted file mode 100644
index 773d263d3..000000000
--- a/js/config/prod.env.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- NODE_ENV: '"production"'
-}
diff --git a/js/config/test.env.js b/js/config/test.env.js
deleted file mode 100644
index 89f90deb2..000000000
--- a/js/config/test.env.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var merge = require('webpack-merge')
-var devEnv = require('./dev.env')
-
-module.exports = merge(devEnv, {
- NODE_ENV: '"testing"'
-})
diff --git a/js/index.html b/js/index.html
deleted file mode 100644
index 4bdf60b4d..000000000
--- a/js/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- Eventos
-
-
-
-
-
-
-
diff --git a/js/package-lock.json b/js/package-lock.json
index 172fe0caf..0e03b5410 100644
--- a/js/package-lock.json
+++ b/js/package-lock.json
@@ -1,46 +1,1452 @@
{
- "name": "libre-event",
- "version": "1.0.0",
+ "name": "eventos",
+ "version": "0.1.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.46.tgz",
+ "integrity": "sha512-7BKRkmYaPZm3Yff5HGZJKCz7RqZ5jUjknsXT6Gz5YKG23J3uq9hAj0epncCB0rlqmnZ8Q+UUpQB2tCR5mT37vw==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.46"
+ }
+ },
+ "@babel/core": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.0.0-beta.46.tgz",
+ "integrity": "sha512-lCDbBSAhNAt+nL98xbgWmuhgrIxKvbvFHf73zlNCuXCHJkdlo7qzTofYK0ZWb+OVce8fQ17fC7DwTIhAwowzMw==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.46",
+ "@babel/generator": "7.0.0-beta.46",
+ "@babel/helpers": "7.0.0-beta.46",
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "babylon": "7.0.0-beta.46",
+ "convert-source-map": "1.5.1",
+ "debug": "3.1.0",
+ "json5": "0.5.1",
+ "lodash": "4.17.10",
+ "micromatch": "2.3.11",
+ "resolve": "1.7.1",
+ "semver": "5.5.0",
+ "source-map": "0.5.7"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-5VfaEVkPG0gpNSTcf70jvV+MjbMoNn4g2iluwM7MhciedkolEtmG7PcdoUj5W1EmMfngz5cF65V7UMZXJO6y8Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46",
+ "jsesc": "2.5.1",
+ "lodash": "4.17.10",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.46.tgz",
+ "integrity": "sha512-ej5W347ghJF1p2TM3VcEyds1+o1uy1apaQcHrYFJPus2xCgn5KkHPkBGf+6euLfFaQDtB+eWPVKjiZx/hpYXvA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.46.tgz",
+ "integrity": "sha512-ZCQ62KqFC5R3NPe5ug9pVqIHYJNup8UdEbE4IXw+s7zr4D/7AsKSt3pXA+FbML5AnQXeCSOuUWioggGmKuDV5g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-call-delegate": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.46.tgz",
+ "integrity": "sha512-7nhBu/MBlpvZLQsmw/C7VxN14wph+yp+1yxzPEd2oTsHg3oA73tHyguQ6wbtkw+9f1AZtP7ZJCLQ+nGLprF4Fw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-define-map": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.46.tgz",
+ "integrity": "sha512-rhi59ZVj+bhrgxqLi9VQmQOadcK9rLCArY8zqyjPNjDIsCurCwtQztRWhlz6CwBEhE9FO/KbSa9OFQm7Kobk+w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.46.tgz",
+ "integrity": "sha512-SW1OUmx2fC2SqL7+vF1N72FITbPuEWGdr/Gm7I3Vqs8p8T1dfGwB9YFsD+tTpfagKXVMiCCuQ06+G0FB8uxg6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.46.tgz",
+ "integrity": "sha512-zm4Kc5XB2njGs8PkmjV1zE/g1hBuphbh+VcDyFLaQsxkxSFSUtCbKwFL8AQpL/qPIcGbvX1MBt50a/3ZZH2CQA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.46",
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.46.tgz",
+ "integrity": "sha512-dPrTb7QHVx44xJLjUl3LGAc13iS7hdXdO0fiOxdRN1suIS91yGGgeuwiQBlrw5SxbFchYtwenhlKbqHdVfGyVA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.46.tgz",
+ "integrity": "sha512-9xDHLfaVA445mcHU2OEPwEddiyS0Zxao2WObFR2L/SK5MNOPj2VqVCvivYrO2OpzhnLLCTbOfXRmrwrc9WYN6Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-Xb5iVUHXY8yz4pgGBvtuS1kxZH1oUYcxTcbIW8NFRvgpeH3Zcv4me02bbixsk7nhn8ttE79Lr1g4vrem4k5Z3Q==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.46.tgz",
+ "integrity": "sha512-xjgpwrqHiKCZgAcqsNIpZ9kOCC5Ty/VYN1H07v21HbAf/dl0/HeUA0taz3EFv6/7lRgS3qThawTSG0POJQX9vQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.46.tgz",
+ "integrity": "sha512-IckoWSub3PHNvkWcUEWfKBe8pFUdMhsZMFDcaovcLb+gfxL/zZhQYwedKKKwbzVGIk9k44yjeMQ/OJd4yt4FGQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.46",
+ "@babel/helper-simple-access": "7.0.0-beta.46",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.46",
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.46.tgz",
+ "integrity": "sha512-PVd7/PGxi82pEKyuDcEpMmlenMLhJCII3lIK4MhXGWrT/6cNMpY6ob5rWOarpXgZjy+JNI5uLPOce28bqq0Wtw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.46.tgz",
+ "integrity": "sha512-eRTFH+/1rqDfzx+Z//CYk4TNwhfPQpM/TCs4CmHu2DwCPrqFnKUZLI1KgStfLf//c8FdOqx/U9EPec7s8CbUIA==",
+ "dev": true
+ },
+ "@babel/helper-regex": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.46.tgz",
+ "integrity": "sha512-sPDHBt8Y4i6y9rwtxWMvcprlVHAZOOQK5xpS2Nw2q9QEDHRHwVbEpE6EejoUStSclnfJpPK/7ijFgypwc6rXlA==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-YrqQ98z8AMZx8f2PGJ4YV1MkXtj+qbwbFV7MOLTiavGSFY7UrN4uQfhKEJ/4GUf4QZdTr5NEmRt0AJrWno8y8w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.46",
+ "@babel/helper-wrap-function": "7.0.0-beta.46",
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.46.tgz",
+ "integrity": "sha512-FSpK3QKzb58oMEccanHzg1djsYHhGARl08i8BQGBoOyHS6Df+4/8bsQiTnc59Dz5sJoZdb67nKKFjgMsMYi6Kg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "7.0.0-beta.46",
+ "@babel/helper-optimise-call-expression": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.46.tgz",
+ "integrity": "sha512-1OEjV/Qnl4u8Dg+jQIYf1TgnfdrYIrdrF7yZwp9mSgsVX2PCyLe7JNTqZ/5v/5RzlF6S+GTe9agkj+EFFTcZUw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.46.tgz",
+ "integrity": "sha512-UT7acgV7wsnBPwnqslqcnUFvsPBP4TtVaYM82xPGA7+evAa8q8HXOmFk08qsMK/pX/yy4+51gJJwyw2zofnacA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0-beta.46.tgz",
+ "integrity": "sha512-W87M4bP6veTKK66OjzV/rU47tjsWmKj9J0J5BDmxq5BIJB1M13ouQ2FAURa4jGHwjPFWN3D5njBrsrifSOHzbQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.0.0-beta.46.tgz",
+ "integrity": "sha512-mbpH9pM3pJzo/tBr75U+zva3pqpyivogt1aofgEoD7bWFAYSuqOudRuz+m4XP6VPxxLoxcA4SFPGkuLRt9+7nQ==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "7.0.0-beta.46",
+ "@babel/traverse": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.46.tgz",
+ "integrity": "sha512-r4snW6Q8ICL3Y8hGzYJRvyG/+sc+kvkewXNedG9tQjoHmUFMwMSv/o45GWQUQswevGnWghiGkpRPivFfOuMsOA==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-htHMsLBYkM89CplqHTbbemVvzTXXyXkpihetJZUTPpSayfxEd6oIH5uSM91efcf5Rog+1SC0Oq32q9yF/4W3ig==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-remap-async-to-generator": "7.0.0-beta.46",
+ "@babel/plugin-syntax-async-generators": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.46.tgz",
+ "integrity": "sha512-kWp3bKibdSeSEvEQWcEcs345KPQYT39uM2edFS78NH3Gu6O9mBcnXh5E2BJ1sbE+jJ6jYPOZz4BK/LR7BiF0jA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-replace-supers": "7.0.0-beta.46",
+ "@babel/plugin-syntax-class-properties": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-decorators": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.0.0-beta.46.tgz",
+ "integrity": "sha512-2z+ayU1saRWfvHGE9uU+275EGSDQlGf37U2Vs2F9BjN0eUC+JAC96ncq2FuwLLRR8d6rfckzBJNqDNuW8Azaeg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-decorators": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.0.0-beta.46.tgz",
+ "integrity": "sha512-9B7d8NfGZ3F1aKQgINmpc1SAphVgGvKEyw1ppetMpThT6EFWAdW6p1/K6QT7kI+hOo6iKUmUo8sOwD30nWVr9w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-export-namespace-from": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-function-sent": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.0.0-beta.46.tgz",
+ "integrity": "sha512-mRkAbYO+uW70bXstzChyf3Tj+39CO4X/+FoPVG7Tb2CmvX5/m4+WPi/5DhW27Gc4zGk6hd90bV6n485JwQYsRw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-wrap-function": "7.0.0-beta.46",
+ "@babel/plugin-syntax-function-sent": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-GlT+pFmvWeyiVc05anxwPtewl7P7eBK7x6z9HEBVyzD/vPtsHexN1qwwZmwHBiTkS/1/QXCFr5aPyCgcyUzn9Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-numeric-separator": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.46.tgz",
+ "integrity": "sha512-viGuWOgFT/Tbnn3sYi3g9iJcC3ql7bSjxDs+d+GFgyf3eV2qNIKO/6I+PJAD35fGqDGGBrQhlA6HvW0FzQVtoA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0-beta.46.tgz",
+ "integrity": "sha512-ZorB1i84PiVCFmrxglRaDDepmIknWgt8k5jA+IHmPd0/8UN5iMz2RLdIgIhyl92091DgsNxnVI50KLvGNK3++Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-throw-expressions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-l+YsUx/q/Cigmpy78KD7hLdymt0/jDtHpES2tDX0Af7wMq4Gdi6Ar59Hou/QyP1iG4vV4LvzNa5ieOKTQwm/7w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-syntax-throw-expressions": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0-beta.46.tgz",
+ "integrity": "sha512-H1F53Sc7mvVxAGzs1nH7IVs4Gh6tYx9azyaMzv92RUvLYQsRm6pKaX1dQtOHJMLMgY61i65y29fQ40mvwIhfFA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-regex": "7.0.0-beta.46",
+ "regexpu-core": "4.1.5"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0-beta.46.tgz",
+ "integrity": "sha512-igLQzZYcSrY/W3eACq6Nrf9u9mfw7m5G6+JeTZlyI7w0z+upGvWvrpTaAP1Gni6MckQkx5q+pspgpV+/5ioPXg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.46.tgz",
+ "integrity": "sha512-NwtgTQ+I8B2eo5h1mZF64nloLaGQuPM4M/c/swvyvqHoWLissHhm94rOE2Ghte8WMgQ/Nw3bqJd59kpbckqmdQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-decorators": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.0.0-beta.46.tgz",
+ "integrity": "sha512-yfgDxx6Vlm/gVGqHtW/rAL5gl8DuNtUqGYAdPaHl5B4GwmqhR/TNmL0mGuovky8Pruh5qTWLxK/NeCzs+p7LpA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0-beta.46.tgz",
+ "integrity": "sha512-D4ek6tZa80NgaTSprPOVxj8vxjChh6UCWgCT/ZvCwAa6CBe3iqUCuOwZQLjU41aDdeuR7C02wxl3rcb25wCRLA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.0.0-beta.46.tgz",
+ "integrity": "sha512-g2opDn12R9HhFHq/S6J8qixDNb29WNXNC+kj6Gpk4n3ZX1OCk7qBiyiFplnHUvrPrRA18IcKyPoC2SirLs15vg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-function-sent": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.0.0-beta.46.tgz",
+ "integrity": "sha512-8XBmvwHwskrIslqqbuwlqcMxWjZlW4E643nM7V5YLECB9EB6ouaifQPK7mUg0R08YzeQpHj+wtR1bwtt845LEg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.0.0-beta.46.tgz",
+ "integrity": "sha512-/vOa4lDBN8CpJr9MwdavcZKwqX7ueul5KwSWrxhY6rwkpq0z50vlNoWWShzDMOmQ0VWV8B6T/mV3GEOofUzh/g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.46.tgz",
+ "integrity": "sha512-aYN4vmO4nMux1W36F6/YP2ugNQ0cilrs1eU4jClLrlIouxqd9hqBloWtlGmGlyDxIRV5kzr+UWwridLDb+cN5g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-xLcA7vqeCFDQbpbo0rrJvrTMjnjx2i9WwOkSbw+zXy9M/bmVwGAgLGROVxeuWq1Ou8Ku827DuhCzXgyf5dWvoQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.46.tgz",
+ "integrity": "sha512-MMv6WG69jmcSLXdUeHvoev5RkuP/QuJZwCB4jXp2gtss//avs4Sns+t0VpGKTf9umhvRq44HFO6PVjVG85F+/Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0-beta.46.tgz",
+ "integrity": "sha512-BRutzJrTLEPUidyRP1n4O2ySAww0wuJw2gIoT4iJ8Pm6qx4fqm/DM0+++TB8nR3/Tp456pHRm0bVOqpkMJdJbg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-syntax-throw-expressions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-JLRBrAfQNxFZrv1K1X9SHwgj+NGDnlaFusKzdxt8E5eraIkujUNu7dVrOJ0Y7silPG3s+47fYxTzxSlRstW9fg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-GgeFCCMHXWRkPDXWKin76qiZh+DAYdQShmk8SmzDj6IAgPHyNqkxHN/8gsmNe5/7IWFFOKUuM9TNU7fgY7z7Gg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-obykYLqAd3tujTjHYE+dln5+nDhm+R5FmUcxXFr/Mx6LK1NgrTQ9TdPPOcMCD08r8SDljFpMopuz9upN/xJlbw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-remap-async-to-generator": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0-beta.46.tgz",
+ "integrity": "sha512-0paq0AtTp3TXbXdzWwsL8ddacmo/g/14IgIZgs5BzUTrfROKQThYVccEBPqRnprTgvM0JXyDVfNSgLB4akCTjg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.46.tgz",
+ "integrity": "sha512-7OwS0ObI6nLacEKP1HCdnoIQnHBqOV6IgtKGiPO+Nj03OnZ1Yo2aeK9sfOtwL43aNztnKqFVt2L5PfZg4VGidA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.46.tgz",
+ "integrity": "sha512-EDp/qQAURfrX6hNM+VrLSSA+cGiwDeZL0ZTTt6a7PNSFABCw4qwKJHx3Q7me1oV7q3U/GJwPS4Aym2QTDmNGvg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.46",
+ "@babel/helper-define-map": "7.0.0-beta.46",
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/helper-optimise-call-expression": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-replace-supers": "7.0.0-beta.46",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.46",
+ "globals": "11.5.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.46.tgz",
+ "integrity": "sha512-0ne9TL53fXH+cBI591R1JSpPhu0d2Wd9dbD8jLCJFV4tlMfqQ+Rcm65RhWWqjEBZfGv2+FuOnwB4HJRHakdW+Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.46.tgz",
+ "integrity": "sha512-l9x0+T29Njwp6smLbTIU2HG2s4ROd9DAIQcfciEfpjAqscXEst0M4X9+UvjQsuaOgPFmQTdAn9xOwNFXnRP7Tg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0-beta.46.tgz",
+ "integrity": "sha512-5bO0XvTP+2LFDQ9qT/WaXfyieLtqz1yGsfOuq86VXmwX9tDnBnNS6pCHEGFQ866c1HmlNBWtaXttTTnvWkFBkw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-regex": "7.0.0-beta.46",
+ "regexpu-core": "4.1.5"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0-beta.46.tgz",
+ "integrity": "sha512-mP2+3QQ+ArIMX98zVYSC9XBzV7A/Pxbz+2hPcEAGVeakFYm5AeTkcVHRQzzA21v4ecl0L5LE1XWX9yeK643CWw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-acomgoNW/fwWSmBlhH22C9Eyl1Y/vADBSqzyIRWJGpm4frLhd49QQgKXbRGRHUDxyifXuZDF9+3pRhEmi7/HXA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.46.tgz",
+ "integrity": "sha512-a1gpwuO26szyz5K2FrRrI5nUDgvkaJfZ7GeDtFAH8XyrK/pNdtpW/7DFCf1PdQc6SbEMM/1QXsH7Y2YRkWoTeA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.46.tgz",
+ "integrity": "sha512-XyxSW1jm7WKOoPYHUJA0mbOkDFdlHzGR4DzlWAEwXrzEI5ep0ZP1AttAbVkxsF63XG8p2t9VtKlgbyBq4Tyr7A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.46.tgz",
+ "integrity": "sha512-Uuo7pRsBkrLrDg6XpOAMfwhKw56SB5qVBniUVM04uf8wf92S2Z5tSPNNfn1iTgphuckAO9vg86l2XJ0Y/QD4YQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0-beta.46.tgz",
+ "integrity": "sha512-GNp7F3EqJlQIMY9sfoDS03P7EHa/+Bdy6PUugTIo1TjZQUnCy3JbeL2YGI4tU8XOHJGHiBKRjFMpeOsjOSmMtw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.46.tgz",
+ "integrity": "sha512-3wLCWVkEhhQiVqqml4y9G6GJT6WA/mkxQ6TRy+4I46z00WWbEDENJcRTS14oNKzeRIo4yJylbVB1wUCW7HuJ9A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-simple-access": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0-beta.46.tgz",
+ "integrity": "sha512-dCIuCGaE4UyM6cYC/a2veO0vKT/iSjBZ6ux4v/LePXA/N6v9648nwE6CRmCK1/LtRw+eU0sCo+c0TPeALCszYA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-hoist-variables": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0-beta.46.tgz",
+ "integrity": "sha512-t54bMSIY5xtb8uK8aM61xZmpjQ7FJ0M/8EiCFDdx7rHff5O9eJUNEGqGaly8ZTbdp80RqbzMkyiD1V+TXYQW/Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-transforms": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0-beta.46.tgz",
+ "integrity": "sha512-VSuIdVFUhlqADj/ymm7NG4BVjGD0sBWWN5sONTLAYzKScGZA58Ys8jSkl1dxeqWnMOEjzo8lTRWxRVvz8HIaMg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0-beta.46.tgz",
+ "integrity": "sha512-T+TV4rRuTubvjqEwBF5xib3vnfJgjQ62qJqHprTaJDBtF0ofpbv/A6x86EEr51iPymHc84eM+F1zyFEtJvKYwQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-replace-supers": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.46.tgz",
+ "integrity": "sha512-RnkdYrayTlQ0VFoyIjvY/cCp/1lJJkYE2lFcRNg6+Skd3g41PnocsHhQ5NUQjMNogL+RnNan3S/2S/i7S4zm+Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-call-delegate": "7.0.0-beta.46",
+ "@babel/helper-get-function-arity": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.46.tgz",
+ "integrity": "sha512-P6d8ckSjKlbr/1SL1NBO6ieFxSebTiRWd2R8/styUIizJWQlEB0ITQ7l8vv3jXGjJ0mh7lxBTegXejRkTGKKgw==",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "0.12.3"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0-beta.46.tgz",
+ "integrity": "sha512-mdgrBPXF+7cl+Y8dBynUxK90U17fQdH4zBsNxV6GYyI35WiUUZYFiXG2wKZN+1LClhavD9cOnOLpCxaNQy7g2A==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.46.tgz",
+ "integrity": "sha512-1QkKFWPsjrvMppycLwjPBXF+usSnGvbTxGe0Q+eIzcZyhabwGCsCgkmDIKMisPSAi6F7bM5H1S8VbE85IW3oRg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.46.tgz",
+ "integrity": "sha512-R0GvFdJnFrgTlmZfFtCXk81uvq5S3FuY38FnRsxDt6Yx/sE8jCmmrRe7XHZOnXXGP3ZWY9icILUmzWHOf91jbA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.46.tgz",
+ "integrity": "sha512-goMgOLODjG1cgFHlKACh/NT/wrnmuRi2CpXsjOan10eZce0fk9kahYz/04cqhppmwtV/vQWwH2ikAHODSD8r5w==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-regex": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.46.tgz",
+ "integrity": "sha512-2iGMsHWVAQq9X6p3VNjktJCH6ZXHQHi3NTPLKh5d4bEW8+M3H7LXLNqk1yUm/Uwt0tzh1FUfb/EU2sEPbrBrVA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-annotate-as-pure": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0-beta.46.tgz",
+ "integrity": "sha512-l+CfLR2c5KzZ/uZlkflNe7nK2hiEahc/FeiUCTd5Krj4aCKDdLLSdb4Lowf5hdZbqIPQc9TdL9SZt80YhUlmFw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.46.tgz",
+ "integrity": "sha512-XWQ7uJ0HL/xdMesKzt1uq5CmZPBqDiEno+FBeYuOJu1IWjpr3yXfEzH/nW17KESXGRv68mLTr+fIeSwcC+qVFg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/helper-regex": "7.0.0-beta.46",
+ "regexpu-core": "4.1.5"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.0.0-beta.46.tgz",
+ "integrity": "sha512-zC+QsTmteh2c1CtjeskvUKsqvRpgwBZxOxTk6p+F3gL6uJszP4OWzffgPrsV2wo9vccppTaCzYMFeiJscnne6g==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.0.0-beta.46",
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.46",
+ "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.46",
+ "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.46",
+ "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.46",
+ "@babel/plugin-syntax-async-generators": "7.0.0-beta.46",
+ "@babel/plugin-syntax-object-rest-spread": "7.0.0-beta.46",
+ "@babel/plugin-syntax-optional-catch-binding": "7.0.0-beta.46",
+ "@babel/plugin-transform-arrow-functions": "7.0.0-beta.46",
+ "@babel/plugin-transform-async-to-generator": "7.0.0-beta.46",
+ "@babel/plugin-transform-block-scoped-functions": "7.0.0-beta.46",
+ "@babel/plugin-transform-block-scoping": "7.0.0-beta.46",
+ "@babel/plugin-transform-classes": "7.0.0-beta.46",
+ "@babel/plugin-transform-computed-properties": "7.0.0-beta.46",
+ "@babel/plugin-transform-destructuring": "7.0.0-beta.46",
+ "@babel/plugin-transform-dotall-regex": "7.0.0-beta.46",
+ "@babel/plugin-transform-duplicate-keys": "7.0.0-beta.46",
+ "@babel/plugin-transform-exponentiation-operator": "7.0.0-beta.46",
+ "@babel/plugin-transform-for-of": "7.0.0-beta.46",
+ "@babel/plugin-transform-function-name": "7.0.0-beta.46",
+ "@babel/plugin-transform-literals": "7.0.0-beta.46",
+ "@babel/plugin-transform-modules-amd": "7.0.0-beta.46",
+ "@babel/plugin-transform-modules-commonjs": "7.0.0-beta.46",
+ "@babel/plugin-transform-modules-systemjs": "7.0.0-beta.46",
+ "@babel/plugin-transform-modules-umd": "7.0.0-beta.46",
+ "@babel/plugin-transform-new-target": "7.0.0-beta.46",
+ "@babel/plugin-transform-object-super": "7.0.0-beta.46",
+ "@babel/plugin-transform-parameters": "7.0.0-beta.46",
+ "@babel/plugin-transform-regenerator": "7.0.0-beta.46",
+ "@babel/plugin-transform-shorthand-properties": "7.0.0-beta.46",
+ "@babel/plugin-transform-spread": "7.0.0-beta.46",
+ "@babel/plugin-transform-sticky-regex": "7.0.0-beta.46",
+ "@babel/plugin-transform-template-literals": "7.0.0-beta.46",
+ "@babel/plugin-transform-typeof-symbol": "7.0.0-beta.46",
+ "@babel/plugin-transform-unicode-regex": "7.0.0-beta.46",
+ "browserslist": "3.2.7",
+ "invariant": "2.2.4",
+ "semver": "5.5.0"
+ }
+ },
+ "@babel/preset-stage-2": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/preset-stage-2/-/preset-stage-2-7.0.0-beta.46.tgz",
+ "integrity": "sha512-Lebdh+/WyFdT+G9LaSUpcXb3ZhvQfSxd/UqjQw4iaHS1j8nKWblTZBTp6ZGHjtfvbO64ERu8EtkYJ+WelzUK7Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-proposal-decorators": "7.0.0-beta.46",
+ "@babel/plugin-proposal-export-namespace-from": "7.0.0-beta.46",
+ "@babel/plugin-proposal-function-sent": "7.0.0-beta.46",
+ "@babel/plugin-proposal-numeric-separator": "7.0.0-beta.46",
+ "@babel/plugin-proposal-throw-expressions": "7.0.0-beta.46",
+ "@babel/preset-stage-3": "7.0.0-beta.46"
+ }
+ },
+ "@babel/preset-stage-3": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/preset-stage-3/-/preset-stage-3-7.0.0-beta.46.tgz",
+ "integrity": "sha512-YE5ZHOIycLjdmuzvyunyj7ZmCYfUjpDbMU+FQ2OIgWkneGUtoa2CIQTZxQp4gVUxsnXkfFTqCqmuYLJQHyY78Q==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "7.0.0-beta.46",
+ "@babel/plugin-proposal-async-generator-functions": "7.0.0-beta.46",
+ "@babel/plugin-proposal-class-properties": "7.0.0-beta.46",
+ "@babel/plugin-proposal-object-rest-spread": "7.0.0-beta.46",
+ "@babel/plugin-proposal-optional-catch-binding": "7.0.0-beta.46",
+ "@babel/plugin-proposal-unicode-property-regex": "7.0.0-beta.46",
+ "@babel/plugin-syntax-dynamic-import": "7.0.0-beta.46",
+ "@babel/plugin-syntax-import-meta": "7.0.0-beta.46"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.46.tgz",
+ "integrity": "sha512-/3a3USMKk54BEHhDgY8rtxtaQOs4bp4aQwo6SDtdwmrXmgSgEusWuXNX5oIs/nwzmTD9o8wz2EyAjA+uHDMmJA==",
+ "dev": true,
+ "requires": {
+ "core-js": "2.5.6",
+ "regenerator-runtime": "0.11.1"
+ }
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.46.tgz",
+ "integrity": "sha512-3/qi4m0l6G/vZbEwtqfzJk73mYtuE7nvAO1zT3/ZrTAHy4sHf2vaF9Eh1w+Tau263Yrkh0bjVQPb9zw6G+GeMQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "babylon": "7.0.0-beta.46",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.46.tgz",
+ "integrity": "sha512-IU7MTGbcjpfhf5tyCu3sDB7sWYainZQcT+CqOBdVZXZfq5MMr130R7aiZBI2g5dJYUaW1PS81DVNpd0/Sq/Gzg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.46",
+ "@babel/generator": "7.0.0-beta.46",
+ "@babel/helper-function-name": "7.0.0-beta.46",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.46",
+ "@babel/types": "7.0.0-beta.46",
+ "babylon": "7.0.0-beta.46",
+ "debug": "3.1.0",
+ "globals": "11.5.0",
+ "invariant": "2.2.4",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.46.tgz",
+ "integrity": "sha512-uA5aruF2KKsJxToWdDpftsrPOIQtoGrGno2hiaeO9JRvfT9xZdK11nPoC+/RF9emNzmNbWn4HCRdCY+McT5Nbw==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "lodash": "4.17.10",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "requires": {
+ "call-me-maybe": "1.0.1",
+ "glob-to-regexp": "0.3.0"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.0.2.tgz",
+ "integrity": "sha512-vCpf75JDcdomXvUd7Rn6DfYAVqPAFI66FVjxiWGwh85OLdvfo3paBoPJaam5keIYRyUolnS7SleS/ZPCidCvzw==",
+ "dev": true
+ },
+ "@vue/babel-preset-app": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.0.0-beta.10.tgz",
+ "integrity": "sha1-BkD5BnfS5ierPl45odm/Aed+jEs=",
+ "dev": true,
+ "requires": {
+ "@babel/plugin-syntax-jsx": "7.0.0-beta.46",
+ "@babel/plugin-transform-runtime": "7.0.0-beta.46",
+ "@babel/preset-env": "7.0.0-beta.46",
+ "@babel/preset-stage-2": "7.0.0-beta.46",
+ "@babel/runtime": "7.0.0-beta.46",
+ "babel-helper-vue-jsx-merge-props": "2.0.3",
+ "babel-plugin-dynamic-import-node": "1.2.0",
+ "babel-plugin-transform-vue-jsx": "4.0.1"
+ }
+ },
+ "@vue/cli-overlay": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.0.0-beta.10.tgz",
+ "integrity": "sha1-iKZGNfQ7wDBLW5D4MMzWVAMfO7k=",
+ "dev": true
+ },
+ "@vue/cli-plugin-babel": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.0.0-beta.10.tgz",
+ "integrity": "sha1-W3ogOrC1tOAEma2/S7SHrVW7JSw=",
+ "dev": true,
+ "requires": {
+ "@babel/core": "7.0.0-beta.46",
+ "@vue/babel-preset-app": "3.0.0-beta.10",
+ "babel-loader": "8.0.0-beta.3"
+ }
+ },
+ "@vue/cli-plugin-e2e-nightwatch": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-e2e-nightwatch/-/cli-plugin-e2e-nightwatch-3.0.0-beta.10.tgz",
+ "integrity": "sha1-jokqmhkEvCOa9ZoExbsHBMq3pIs=",
+ "dev": true,
+ "requires": {
+ "chromedriver": "2.38.3",
+ "deepmerge": "2.1.0",
+ "execa": "0.10.0",
+ "nightwatch": "0.9.21",
+ "selenium-server": "3.12.0"
+ }
+ },
+ "@vue/cli-plugin-eslint": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.0.0-beta.10.tgz",
+ "integrity": "sha1-qmvMm8vP5y2DUXap4Y7lRn0REM4=",
+ "dev": true,
+ "requires": {
+ "babel-eslint": "8.2.3",
+ "eslint": "4.19.1",
+ "eslint-loader": "2.0.0",
+ "eslint-plugin-vue": "4.5.0"
+ }
+ },
+ "@vue/cli-plugin-pwa": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-pwa/-/cli-plugin-pwa-3.0.0-beta.10.tgz",
+ "integrity": "sha1-6+WytzWvWWnoibvXs/z7i4hDTP0=",
+ "dev": true,
+ "requires": {
+ "workbox-webpack-plugin": "3.2.0"
+ }
+ },
+ "@vue/cli-plugin-unit-mocha": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-3.0.0-beta.10.tgz",
+ "integrity": "sha1-f4+dDz5n++oO2kjAxJWSjGZlkCQ=",
+ "dev": true,
+ "requires": {
+ "execa": "0.10.0",
+ "jsdom": "11.10.0",
+ "jsdom-global": "3.0.2",
+ "mocha": "5.1.1",
+ "mocha-webpack": "2.0.0-beta.0",
+ "webpack-node-externals": "1.7.2"
+ }
+ },
+ "@vue/cli-service": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.0.0-beta.10.tgz",
+ "integrity": "sha1-E7P2aew7CCnz6dImSJ0WHN5sivA=",
+ "dev": true,
+ "requires": {
+ "@vue/cli-overlay": "3.0.0-beta.10",
+ "@vue/cli-shared-utils": "3.0.0-beta.10",
+ "@vue/web-component-wrapper": "1.2.0",
+ "address": "1.0.3",
+ "autoprefixer": "8.5.0",
+ "cache-loader": "1.2.2",
+ "case-sensitive-paths-webpack-plugin": "2.1.2",
+ "chalk": "2.4.1",
+ "cliui": "4.1.0",
+ "copy-webpack-plugin": "4.5.1",
+ "css-loader": "0.28.11",
+ "escape-string-regexp": "1.0.5",
+ "file-loader": "1.1.11",
+ "friendly-errors-webpack-plugin": "1.7.0",
+ "fs-extra": "6.0.1",
+ "get-value": "3.0.1",
+ "globby": "8.0.1",
+ "html-webpack-plugin": "3.2.0",
+ "javascript-stringify": "1.6.0",
+ "launch-editor-middleware": "2.2.1",
+ "lodash.defaultsdeep": "4.6.0",
+ "mini-css-extract-plugin": "0.4.0",
+ "minimist": "1.2.0",
+ "optimize-css-assets-webpack-plugin": "4.0.1",
+ "ora": "2.1.0",
+ "portfinder": "1.0.13",
+ "postcss-loader": "2.1.5",
+ "preload-webpack-plugin": "3.0.0-alpha.3",
+ "read-pkg": "3.0.0",
+ "semver": "5.5.0",
+ "slash": "2.0.0",
+ "source-map-url": "0.4.0",
+ "string.prototype.padend": "3.0.0",
+ "thread-loader": "1.1.5",
+ "uglifyjs-webpack-plugin": "1.2.5",
+ "url-loader": "1.0.1",
+ "vue-loader": "15.0.11",
+ "vue-template-compiler": "2.5.16",
+ "webpack": "4.8.3",
+ "webpack-chain": "4.8.0",
+ "webpack-dev-server": "3.1.4",
+ "webpack-merge": "4.1.2",
+ "yorkie": "1.0.3"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+ "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
+ }
+ },
+ "get-value": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-3.0.1.tgz",
+ "integrity": "sha512-mKZj9JLQrwMBtj5wxi6MH8Z5eSKaERpAwjg43dPtlGI1ZVEgH/qC7T8/6R2OBSUA+zzHBZgICsVJaEIV2tKTDA==",
+ "dev": true,
+ "requires": {
+ "isobject": "3.0.1"
+ }
+ },
+ "globby": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz",
+ "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "dir-glob": "2.0.0",
+ "fast-glob": "2.2.2",
+ "glob": "7.1.2",
+ "ignore": "3.3.8",
+ "pify": "3.0.0",
+ "slash": "1.0.0"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "lodash.defaultsdeep": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz",
+ "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=",
+ "dev": true
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true
+ }
+ }
+ },
+ "@vue/cli-shared-utils": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.0.0-beta.10.tgz",
+ "integrity": "sha1-NwUneEO9I5B2mnEVcbJGOHj7CUA=",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "cmd-shim": "2.0.2",
+ "execa": "0.9.0",
+ "joi": "12.0.0",
+ "opn": "5.3.0",
+ "ora": "1.4.0",
+ "string.prototype.padstart": "3.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "execa": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz",
+ "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "joi": {
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-12.0.0.tgz",
+ "integrity": "sha512-z0FNlV4NGgjQN1fdtHYXf5kmgludM65fG/JlXzU6+rwkt9U5UWuXVYnXa2FpK0u6+qBuCmrm5byPNuiiddAHvQ==",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.1",
+ "isemail": "3.1.2",
+ "topo": "2.0.2"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "ora": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
+ "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "cli-cursor": "2.1.0",
+ "cli-spinners": "1.3.1",
+ "log-symbols": "2.2.0"
+ }
+ }
+ }
+ },
+ "@vue/component-compiler-utils": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-1.2.1.tgz",
+ "integrity": "sha512-l3GdahBgXlp/SoY5KU7mqMqg/BNiJAndpw/6nMfGzFooCGUkq49CT3pCMiSYy0g/2a6iBD37cHBYlsg4nulIwQ==",
+ "dev": true,
+ "requires": {
+ "consolidate": "0.15.1",
+ "hash-sum": "1.0.2",
+ "lru-cache": "4.1.3",
+ "merge-source-map": "1.1.0",
+ "postcss": "6.0.22",
+ "postcss-selector-parser": "3.1.1",
+ "prettier": "1.12.1",
+ "source-map": "0.5.7",
+ "vue-template-es2015-compiler": "1.6.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "4.2.0",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
+ }
+ }
+ }
+ },
+ "@vue/eslint-config-airbnb": {
+ "version": "3.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/@vue/eslint-config-airbnb/-/eslint-config-airbnb-3.0.0-beta.10.tgz",
+ "integrity": "sha1-ziv8zYCsYN+CSVD6gZAM96GtJgg=",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "12.1.0",
+ "eslint-import-resolver-webpack": "0.9.0",
+ "eslint-plugin-import": "2.12.0"
+ }
+ },
+ "@vue/test-utils": {
+ "version": "1.0.0-beta.16",
+ "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.16.tgz",
+ "integrity": "sha512-TF9ae3zhs8qBN98Bix2Bh3IrwkhscEV3HRthPgtzJPNG0YHUyNTlZNXH36vbP0nuSAs9Om8XjVd8/MDj8ehpEA==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.10"
+ }
+ },
+ "@vue/web-component-wrapper": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz",
+ "integrity": "sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw==",
+ "dev": true
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz",
+ "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/helper-wasm-bytecode": "1.4.3",
+ "@webassemblyjs/wast-parser": "1.4.3",
+ "debug": "3.1.0",
+ "webassemblyjs": "1.4.3"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz",
+ "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz",
+ "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==",
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0"
+ }
+ },
+ "@webassemblyjs/helper-code-frame": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz",
+ "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/wast-printer": "1.4.3"
+ }
+ },
+ "@webassemblyjs/helper-fsm": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz",
+ "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz",
+ "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==",
+ "dev": true
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz",
+ "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/helper-buffer": "1.4.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.4.3",
+ "@webassemblyjs/wasm-gen": "1.4.3",
+ "debug": "3.1.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz",
+ "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==",
+ "dev": true,
+ "requires": {
+ "leb": "0.3.0"
+ }
+ },
+ "@webassemblyjs/validation": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz",
+ "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3"
+ }
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz",
+ "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/helper-buffer": "1.4.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.4.3",
+ "@webassemblyjs/helper-wasm-section": "1.4.3",
+ "@webassemblyjs/wasm-gen": "1.4.3",
+ "@webassemblyjs/wasm-opt": "1.4.3",
+ "@webassemblyjs/wasm-parser": "1.4.3",
+ "@webassemblyjs/wast-printer": "1.4.3",
+ "debug": "3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz",
+ "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.4.3",
+ "@webassemblyjs/leb128": "1.4.3"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz",
+ "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/helper-buffer": "1.4.3",
+ "@webassemblyjs/wasm-gen": "1.4.3",
+ "@webassemblyjs/wasm-parser": "1.4.3",
+ "debug": "3.1.0"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz",
+ "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/helper-wasm-bytecode": "1.4.3",
+ "@webassemblyjs/leb128": "1.4.3",
+ "@webassemblyjs/wasm-parser": "1.4.3",
+ "webassemblyjs": "1.4.3"
+ }
+ },
+ "@webassemblyjs/wast-parser": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz",
+ "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/floating-point-hex-parser": "1.4.3",
+ "@webassemblyjs/helper-code-frame": "1.4.3",
+ "@webassemblyjs/helper-fsm": "1.4.3",
+ "long": "3.2.0",
+ "webassemblyjs": "1.4.3"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz",
+ "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/wast-parser": "1.4.3",
+ "long": "3.2.0"
+ }
+ },
+ "abab": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "dev": true
+ },
"abbrev": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
- "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"accepts": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
- "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
+ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
"dev": true,
"requires": {
- "mime-types": "2.1.17",
+ "mime-types": "2.1.18",
"negotiator": "0.6.1"
}
},
"acorn": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz",
- "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug==",
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz",
+ "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==",
"dev": true
},
"acorn-dynamic-import": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
- "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz",
+ "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==",
"dev": true,
"requires": {
- "acorn": "4.0.13"
- },
- "dependencies": {
- "acorn": {
- "version": "4.0.13",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
- "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "dev": true
- }
+ "acorn": "5.5.3"
+ }
+ },
+ "acorn-globals": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz",
+ "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.5.3"
}
},
"acorn-jsx": {
@@ -60,10 +1466,10 @@
}
}
},
- "after": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
- "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
+ "address": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz",
+ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==",
"dev": true
},
"agent-base": {
@@ -85,13 +1491,13 @@
}
},
"ajv": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz",
- "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"dev": true,
"requires": {
"co": "4.6.0",
- "fast-deep-equal": "1.0.0",
+ "fast-deep-equal": "1.1.0",
"fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1"
}
@@ -102,17 +1508,6 @@
"integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
"dev": true
},
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2",
- "longest": "1.0.1",
- "repeat-string": "1.6.1"
- }
- },
"alphanum-sort": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
@@ -126,9 +1521,9 @@
"dev": true
},
"ansi-escapes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
- "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"dev": true
},
"ansi-html": {
@@ -144,22 +1539,307 @@
"dev": true
},
"ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
- "color-convert": "1.9.0"
+ "color-convert": "1.9.1"
}
},
"anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dev": true,
"requires": {
- "micromatch": "2.3.11",
+ "micromatch": "3.1.10",
"normalize-path": "2.1.1"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
}
},
"aproba": {
@@ -168,10 +1848,20 @@
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
+ "are-we-there-yet": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "dev": true,
+ "requires": {
+ "delegates": "1.0.0",
+ "readable-stream": "2.3.6"
+ }
+ },
"argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
"sprintf-js": "1.0.3"
}
@@ -197,6 +1887,18 @@
"integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
"dev": true
},
+ "array-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
+ "dev": true
+ },
+ "array-filter": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
+ "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=",
+ "dev": true
+ },
"array-find": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz",
@@ -210,9 +1912,9 @@
"dev": true
},
"array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
+ "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
"dev": true
},
"array-includes": {
@@ -222,13 +1924,19 @@
"dev": true,
"requires": {
"define-properties": "1.1.2",
- "es-abstract": "1.10.0"
+ "es-abstract": "1.11.0"
}
},
- "array-slice": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz",
- "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=",
+ "array-map": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
+ "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=",
+ "dev": true
+ },
+ "array-reduce": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
+ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=",
"dev": true
},
"array-union": {
@@ -252,12 +1960,6 @@
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
"dev": true
},
- "arraybuffer.slice": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz",
- "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=",
- "dev": true
- },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
@@ -271,14 +1973,14 @@
"dev": true
},
"asn1.js": {
- "version": "4.9.2",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.2.tgz",
- "integrity": "sha512-b/OsSjvWEo8Pi8H0zsDd2P6Uqo2TK2pH8gNLSJtNLM2Db0v2QaAZ0pBQJXVjAn4gBuugeVDr7s63ZogpUIwWDg==",
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
"dev": true,
"requires": {
"bn.js": "4.11.8",
"inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
+ "minimalistic-assert": "1.0.1"
}
},
"assert": {
@@ -297,9 +1999,9 @@
"dev": true
},
"assertion-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz",
- "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
+ "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=",
"dev": true
},
"assign-symbols": {
@@ -309,19 +2011,16 @@
"dev": true
},
"ast-types": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz",
- "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==",
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.4.tgz",
+ "integrity": "sha512-RbY3UMcOcGhc3pOfQ6sliVjt3lqGib9lRjfH1UXJ8YfBFWbcWSJ8jr/VB2W6ulCzTSO/DSnCASqsHYuqa8O7yw==",
"dev": true
},
"async": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
- "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
- "dev": true,
- "requires": {
- "lodash": "4.17.4"
- }
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
+ "dev": true
},
"async-each": {
"version": "1.0.1",
@@ -329,6 +2028,18 @@
"integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
"dev": true
},
+ "async-foreach": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
+ "dev": true
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
+ },
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -336,60 +2047,23 @@
"dev": true
},
"atob": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz",
- "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz",
+ "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=",
"dev": true
},
"autoprefixer": {
- "version": "7.2.4",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.4.tgz",
- "integrity": "sha512-am8jJ7Rbh1sy7FvLvNxxQScWvhv2FwLAS3bIhvrZpx9HbX5PEcc/7v6ecgpWuiu0Dwlj+p/z/1boHd8x60JFwA==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.5.0.tgz",
+ "integrity": "sha512-buY1XxFoBrXvLsoFb0jP+niSu1tCj2RwMwHj96+RfQ8DJTgb0vUhh0dg6wjJT3JzsFYBrkSj8/sGtarNdlxTFw==",
"dev": true,
"requires": {
- "browserslist": "2.11.0",
- "caniuse-lite": "1.0.30000789",
+ "browserslist": "3.2.7",
+ "caniuse-lite": "1.0.30000843",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "6.0.16",
+ "postcss": "6.0.22",
"postcss-value-parser": "3.3.0"
- },
- "dependencies": {
- "browserslist": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.0.tgz",
- "integrity": "sha512-mNYp0RNeu1xueGuJFSXkU+K0nH+dBE/gcjtyhtNKfU8hwdrVIfoA7i5iFSjOmzkGdL2QaO7YX9ExiVPE7AY9JA==",
- "dev": true,
- "requires": {
- "caniuse-lite": "1.0.30000789",
- "electron-to-chromium": "1.3.30"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30000789",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000789.tgz",
- "integrity": "sha1-Lj2TeyZxM/Y2Ne9/RB+sZjYPyIk=",
- "dev": true
- },
- "electron-to-chromium": {
- "version": "1.3.30",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.30.tgz",
- "integrity": "sha512-zx1Prv7kYLfc4OA60FhxGbSo4qrEjgSzpo1/37i7l9ltXPYOoQBtjQxY9KmsgfHnBxHlBGXwLlsbt/gub1w5lw==",
- "dev": true,
- "requires": {
- "electron-releases": "2.1.0"
- }
- }
- }
- },
- "avoriaz": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/avoriaz/-/avoriaz-6.3.0.tgz",
- "integrity": "sha512-NjqjZ7hj5DZx5tQ1aZ6Fot9F1kQCNHdNQcdnaKR1CbRwPR2k4ntQrp06Wc9ScfB6EGl+NDEk0Lh1WTZ8Me/9Zw==",
- "dev": true,
- "requires": {
- "lodash": "4.17.4",
- "vue-add-globals": "2.0.1"
}
},
"aws-sign2": {
@@ -399,9 +2073,9 @@
"dev": true
},
"aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
+ "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==",
"dev": true
},
"babel-code-frame": {
@@ -434,6 +2108,15 @@
"supports-color": "2.0.0"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -442,781 +2125,194 @@
}
}
},
- "babel-core": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
- "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
- "dev": true,
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-generator": "6.26.0",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "convert-source-map": "1.5.0",
- "debug": "2.6.8",
- "json5": "0.5.1",
- "lodash": "4.17.4",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.7",
- "slash": "1.0.0",
- "source-map": "0.5.7"
- }
- },
"babel-eslint": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
- "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.3.tgz",
+ "integrity": "sha512-0HeSTtaXg/Em7FCUWxwOT+KeFSO1O7LuRuzhk7g+1BjwdlQGlHq4OyMi3GqGxrNfEq8jEi6Hmt5ylEQUhurgiQ==",
"dev": true,
"requires": {
- "babel-code-frame": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0"
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/traverse": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "eslint-scope": "3.7.1",
+ "eslint-visitor-keys": "1.0.0"
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz",
+ "integrity": "sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.0.0-beta.44"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44",
+ "jsesc": "2.5.1",
+ "lodash": "4.17.10",
+ "source-map": "0.5.7",
+ "trim-right": "1.0.1"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz",
+ "integrity": "sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.0.0-beta.44",
+ "@babel/template": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/helper-get-function-arity": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz",
+ "integrity": "sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz",
+ "integrity": "sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.0.0-beta.44"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz",
+ "integrity": "sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "esutils": "2.0.2",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "@babel/template": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz",
+ "integrity": "sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz",
+ "integrity": "sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.0.0-beta.44",
+ "@babel/generator": "7.0.0-beta.44",
+ "@babel/helper-function-name": "7.0.0-beta.44",
+ "@babel/helper-split-export-declaration": "7.0.0-beta.44",
+ "@babel/types": "7.0.0-beta.44",
+ "babylon": "7.0.0-beta.44",
+ "debug": "3.1.0",
+ "globals": "11.5.0",
+ "invariant": "2.2.4",
+ "lodash": "4.17.10"
+ }
+ },
+ "@babel/types": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ==",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "lodash": "4.17.10",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "babylon": {
+ "version": "7.0.0-beta.44",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz",
+ "integrity": "sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g==",
+ "dev": true
+ }
}
},
- "babel-generator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
- "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
- "dev": true,
- "requires": {
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "detect-indent": "4.0.0",
- "jsesc": "1.3.0",
- "lodash": "4.17.4",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
- }
- },
- "babel-helper-bindify-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
- "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-builder-binary-assignment-operator-visitor": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
- "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
- "dev": true,
- "requires": {
- "babel-helper-explode-assignable-expression": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-call-delegate": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-define-map": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-helper-explode-assignable-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
- "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-explode-class": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
- "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
- "dev": true,
- "requires": {
- "babel-helper-bindify-decorators": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "dev": true,
- "requires": {
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-get-function-arity": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
- "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-hoist-variables": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
- "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-optimise-call-expression": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
- "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-regex": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
- "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-helper-remap-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helper-replace-supers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "dev": true,
- "requires": {
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-helpers": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
+ "babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==",
+ "dev": true
},
"babel-loader": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz",
- "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==",
+ "version": "8.0.0-beta.3",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.0-beta.3.tgz",
+ "integrity": "sha512-yvaAx7cBEjh+R2oGL2vIPmveO6daS5TYP2FSPq4b6CUYjU/ilD4HHyfLIa9KUj6OKBcR9fQcl1NvUOTWNaJ6mw==",
"dev": true,
"requires": {
"find-cache-dir": "1.0.0",
"loader-utils": "1.1.0",
- "mkdirp": "0.5.1"
+ "mkdirp": "0.5.1",
+ "util.promisify": "1.0.0"
}
},
- "babel-messages": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
- "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "babel-plugin-dynamic-import-node": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.2.0.tgz",
+ "integrity": "sha512-yeDwKaLgGdTpXL7RgGt5r6T4LmnTza/hUn5Ul8uZSGGMtEjYo13Nxai7SQaGCTEzUtg9Zq9qJn0EjEr7SeSlTQ==",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-plugin-syntax-dynamic-import": "6.18.0"
}
},
- "babel-plugin-check-es2015-constants": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
- "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-lodash": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-3.2.11.tgz",
- "integrity": "sha1-Icj97J/hg176pzeHPjkCvdZtVwE=",
- "requires": {
- "glob": "7.1.2",
- "lodash": "4.17.4"
- }
- },
- "babel-plugin-syntax-async-functions": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
- "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
- "dev": true
- },
- "babel-plugin-syntax-async-generators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
- "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
- "dev": true
- },
- "babel-plugin-syntax-class-properties": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
- "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
- "dev": true
- },
- "babel-plugin-syntax-decorators": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
- "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
- "dev": true
- },
"babel-plugin-syntax-dynamic-import": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
"integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
"dev": true
},
- "babel-plugin-syntax-exponentiation-operator": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
- "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
- "dev": true
- },
- "babel-plugin-syntax-object-rest-spread": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
- "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
- "dev": true
- },
- "babel-plugin-syntax-trailing-function-commas": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
- "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
- "dev": true
- },
- "babel-plugin-transform-async-generator-functions": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
- "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
+ "babel-plugin-transform-vue-jsx": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz",
+ "integrity": "sha512-wbOz7ITB5cloLSjKUU1hWn8zhR+Dwah/RZiTiJY/CQliCwhowmzu6m7NEF+y5EJX/blDzGjRtZvC10Vdb3Q7vw==",
"dev": true,
"requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-generators": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-async-to-generator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
- "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
- "dev": true,
- "requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-functions": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-class-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
- "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-plugin-syntax-class-properties": "6.13.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-decorators": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
- "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
- "dev": true,
- "requires": {
- "babel-helper-explode-class": "6.24.1",
- "babel-plugin-syntax-decorators": "6.13.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-arrow-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
- "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoped-functions": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
- "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-block-scoping": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.4"
- }
- },
- "babel-plugin-transform-es2015-classes": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "dev": true,
- "requires": {
- "babel-helper-define-map": "6.26.0",
- "babel-helper-function-name": "6.24.1",
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-helper-replace-supers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-computed-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-destructuring": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
- "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-duplicate-keys": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
- "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-for-of": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
- "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-function-name": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "dev": true,
- "requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
- "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-amd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
- "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-strict-mode": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-systemjs": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
- "dev": true,
- "requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-modules-umd": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "dev": true,
- "requires": {
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-object-super": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "dev": true,
- "requires": {
- "babel-helper-replace-supers": "6.24.1",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-parameters": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "dev": true,
- "requires": {
- "babel-helper-call-delegate": "6.24.1",
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-shorthand-properties": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
- "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-spread": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
- "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-sticky-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
- "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-template-literals": {
- "version": "6.22.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
- "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-typeof-symbol": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
- "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-es2015-unicode-regex": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
- "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "dev": true,
- "requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "regexpu-core": "2.0.0"
- }
- },
- "babel-plugin-transform-exponentiation-operator": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
- "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
- "dev": true,
- "requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-object-rest-spread": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
- "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-object-rest-spread": "6.13.0",
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-regenerator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
- "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "dev": true,
- "requires": {
- "regenerator-transform": "0.10.1"
- }
- },
- "babel-plugin-transform-runtime": {
- "version": "6.23.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
- "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
- "requires": {
- "babel-runtime": "6.26.0"
- }
- },
- "babel-plugin-transform-strict-mode": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
- "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
- }
- },
- "babel-preset-env": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz",
- "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==",
- "dev": true,
- "requires": {
- "babel-plugin-check-es2015-constants": "6.22.0",
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
- "babel-plugin-transform-es2015-classes": "6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
- "babel-plugin-transform-es2015-for-of": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-literals": "6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.0",
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
- "babel-plugin-transform-es2015-object-super": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-regenerator": "6.26.0",
- "browserslist": "2.5.1",
- "invariant": "2.2.2",
- "semver": "5.4.1"
- }
- },
- "babel-preset-stage-2": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
- "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-dynamic-import": "6.18.0",
- "babel-plugin-transform-class-properties": "6.24.1",
- "babel-plugin-transform-decorators": "6.24.1",
- "babel-preset-stage-3": "6.24.1"
- }
- },
- "babel-preset-stage-3": {
- "version": "6.24.1",
- "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
- "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
- "dev": true,
- "requires": {
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-generator-functions": "6.24.1",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-object-rest-spread": "6.26.0"
- }
- },
- "babel-register": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
- "dev": true,
- "requires": {
- "babel-core": "6.26.0",
- "babel-runtime": "6.26.0",
- "core-js": "2.5.1",
- "home-or-tmp": "2.0.0",
- "lodash": "4.17.4",
- "mkdirp": "0.5.1",
- "source-map-support": "0.4.17"
+ "esutils": "2.0.2"
}
},
"babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
- "core-js": "2.5.1",
- "regenerator-runtime": "0.11.0"
- }
- },
- "babel-template": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash": "4.17.4"
- }
- },
- "babel-traverse": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "dev": true,
- "requires": {
- "babel-code-frame": "6.26.0",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "debug": "2.6.8",
- "globals": "9.18.0",
- "invariant": "2.2.2",
- "lodash": "4.17.4"
- }
- },
- "babel-types": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
- "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "dev": true,
- "requires": {
- "babel-runtime": "6.26.0",
- "esutils": "2.0.2",
- "lodash": "4.17.4",
- "to-fast-properties": "1.0.3"
+ "core-js": "2.5.6",
+ "regenerator-runtime": "0.11.1"
}
},
"babylon": {
- "version": "6.18.0",
- "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
- "dev": true
- },
- "backo2": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",
- "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",
+ "version": "7.0.0-beta.46",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.46.tgz",
+ "integrity": "sha512-WFJlg2WatdkXRFMpk7BN/Uzzkjkcjk+WaqnrSCpay+RYl4ypW9ZetZyT9kNt22IH/BQNst3M6PaaBn9IXsUNrg==",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
},
"base": {
"version": "0.11.2",
@@ -1225,44 +2321,70 @@
"dev": true,
"requires": {
"cache-base": "1.0.1",
- "class-utils": "0.3.5",
+ "class-utils": "0.3.6",
"component-emitter": "1.2.1",
"define-property": "1.0.0",
"isobject": "3.0.1",
- "mixin-deep": "1.3.0",
+ "mixin-deep": "1.3.1",
"pascalcase": "0.1.1"
},
"dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
},
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
}
}
},
- "base64-arraybuffer": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
- "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",
- "dev": true
- },
"base64-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz",
- "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==",
- "dev": true
- },
- "base64id": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz",
- "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
"dev": true
},
"batch": {
@@ -1281,32 +2403,26 @@
"tweetnacl": "0.14.5"
}
},
- "better-assert": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
- "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
- "dev": true,
- "requires": {
- "callsite": "1.0.0"
- }
- },
"big.js": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz",
- "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
"binary-extensions": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz",
- "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
"dev": true
},
- "blob": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
- "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=",
- "dev": true
+ "block-stream": {
+ "version": "0.0.9",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ }
},
"bluebird": {
"version": "3.5.1",
@@ -1321,31 +2437,81 @@
"dev": true
},
"body-parser": {
- "version": "1.17.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz",
- "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=",
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
+ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
"dev": true,
"requires": {
- "bytes": "2.4.0",
- "content-type": "1.0.2",
- "debug": "2.6.7",
- "depd": "1.1.1",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.15",
+ "bytes": "3.0.0",
+ "content-type": "1.0.4",
+ "debug": "2.6.9",
+ "depd": "1.1.2",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.19",
"on-finished": "2.3.0",
- "qs": "6.4.0",
- "raw-body": "2.2.0",
- "type-is": "1.6.15"
+ "qs": "6.5.1",
+ "raw-body": "2.3.2",
+ "type-is": "1.6.16"
},
"dependencies": {
"debug": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz",
- "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
+ },
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
+ "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
+ "dev": true,
+ "requires": {
+ "bytes": "3.0.0",
+ "http-errors": "1.6.2",
+ "iconv-lite": "0.4.19",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
+ "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
+ "dev": true
+ },
+ "http-errors": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
+ "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "dev": true,
+ "requires": {
+ "depd": "1.1.1",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.0.3",
+ "statuses": "1.5.0"
+ }
+ }
+ }
+ },
+ "setprototypeof": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
+ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "dev": true
}
}
},
@@ -1359,16 +2525,8 @@
"deep-equal": "1.0.1",
"dns-equal": "1.0.0",
"dns-txt": "2.0.2",
- "multicast-dns": "6.2.1",
+ "multicast-dns": "6.2.3",
"multicast-dns-service-types": "1.1.0"
- },
- "dependencies": {
- "array-flatten": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
- "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=",
- "dev": true
- }
}
},
"boolbase": {
@@ -1383,13 +2541,14 @@
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
"dev": true,
"requires": {
- "hoek": "4.2.0"
+ "hoek": "4.2.1"
}
},
"brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
@@ -1412,6 +2571,12 @@
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
"dev": true
},
+ "browser-process-hrtime": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz",
+ "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=",
+ "dev": true
+ },
"browser-stdout": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
@@ -1419,34 +2584,34 @@
"dev": true
},
"browserify-aes": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz",
- "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
"dev": true,
"requires": {
"buffer-xor": "1.0.3",
"cipher-base": "1.0.4",
- "create-hash": "1.1.3",
+ "create-hash": "1.2.0",
"evp_bytestokey": "1.0.3",
"inherits": "2.0.3",
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"browserify-cipher": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz",
- "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
"dev": true,
"requires": {
- "browserify-aes": "1.1.1",
- "browserify-des": "1.0.0",
+ "browserify-aes": "1.2.0",
+ "browserify-des": "1.0.1",
"evp_bytestokey": "1.0.3"
}
},
"browserify-des": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz",
- "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz",
+ "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==",
"dev": true,
"requires": {
"cipher-base": "1.0.4",
@@ -1461,7 +2626,7 @@
"dev": true,
"requires": {
"bn.js": "4.11.8",
- "randombytes": "2.0.5"
+ "randombytes": "2.0.6"
}
},
"browserify-sign": {
@@ -1472,11 +2637,11 @@
"requires": {
"bn.js": "4.11.8",
"browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
"elliptic": "6.4.0",
"inherits": "2.0.3",
- "parse-asn1": "5.1.0"
+ "parse-asn1": "5.1.1"
}
},
"browserify-zlib": {
@@ -1489,21 +2654,13 @@
}
},
"browserslist": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.5.1.tgz",
- "integrity": "sha512-jAvM2ku7YDJ+leAq3bFH1DE0Ylw+F+EQDq4GkqZfgPEqpWYw9ofQH85uKSB9r3Tv7XDbfqVtE+sdvKJW7IlPJA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz",
+ "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000748",
- "electron-to-chromium": "1.3.27"
- },
- "dependencies": {
- "electron-to-chromium": {
- "version": "1.3.27",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz",
- "integrity": "sha1-eOy4o5kGYYe7N07t412ccFZagD0=",
- "dev": true
- }
+ "caniuse-lite": "1.0.30000843",
+ "electron-to-chromium": "1.3.47"
}
},
"buffer": {
@@ -1512,11 +2669,17 @@
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
"dev": true,
"requires": {
- "base64-js": "1.2.1",
- "ieee754": "1.1.8",
+ "base64-js": "1.3.0",
+ "ieee754": "1.1.11",
"isarray": "1.0.0"
}
},
+ "buffer-from": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
+ "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==",
+ "dev": true
+ },
"buffer-indexof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
@@ -1542,30 +2705,48 @@
"dev": true
},
"bytes": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
- "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
"dev": true
},
"cacache": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.2.tgz",
- "integrity": "sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==",
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
"dev": true,
"requires": {
"bluebird": "3.5.1",
"chownr": "1.0.1",
"glob": "7.1.2",
"graceful-fs": "4.1.11",
- "lru-cache": "4.1.1",
- "mississippi": "1.3.0",
+ "lru-cache": "4.1.3",
+ "mississippi": "2.0.0",
"mkdirp": "0.5.1",
"move-concurrently": "1.0.1",
"promise-inflight": "1.0.1",
"rimraf": "2.6.2",
- "ssri": "5.0.0",
+ "ssri": "5.3.0",
"unique-filename": "1.1.0",
- "y18n": "3.2.1"
+ "y18n": "4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ }
}
},
"cache-base": {
@@ -1585,12 +2766,6 @@
"unset-value": "1.0.0"
},
"dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
@@ -1599,6 +2774,24 @@
}
}
},
+ "cache-loader": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz",
+ "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "mkdirp": "0.5.1",
+ "neo-async": "2.5.1",
+ "schema-utils": "0.4.5"
+ }
+ },
+ "call-me-maybe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
+ "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=",
+ "dev": true
+ },
"caller-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
@@ -1608,12 +2801,6 @@
"callsites": "0.2.0"
}
},
- "callsite": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
- "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
- "dev": true
- },
"callsites": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
@@ -1626,14 +2813,14 @@
"integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"dev": true,
"requires": {
- "no-case": "2.3.1",
+ "no-case": "2.3.2",
"upper-case": "1.1.3"
}
},
"camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
"dev": true
},
"camelcase-keys": {
@@ -1644,6 +2831,14 @@
"requires": {
"camelcase": "2.1.1",
"map-obj": "1.0.1"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+ "dev": true
+ }
}
},
"caniuse-api": {
@@ -1653,7 +2848,7 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000726",
+ "caniuse-db": "1.0.30000843",
"lodash.memoize": "4.1.2",
"lodash.uniq": "4.5.0"
},
@@ -1664,22 +2859,28 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000726",
- "electron-to-chromium": "1.3.21"
+ "caniuse-db": "1.0.30000843",
+ "electron-to-chromium": "1.3.47"
}
}
}
},
"caniuse-db": {
- "version": "1.0.30000726",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000726.tgz",
- "integrity": "sha1-m7dC+NAmpi34c7wDwGhD0iVbYNc=",
+ "version": "1.0.30000843",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000843.tgz",
+ "integrity": "sha1-T36FAfVX3JvNN90zrIWQXHZe/sI=",
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000748",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000748.tgz",
- "integrity": "sha1-RMjW2lKtZaXXudyk7+vQvdmCugk=",
+ "version": "1.0.30000843",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000843.tgz",
+ "integrity": "sha512-1ntiW826MhRBmM0CeI7w1cQr16gxwOoM8doJWh3BFalPZoKWdZXs27Bc04xth/3NR1/wNXn9cpP4F92lVenCvg==",
+ "dev": true
+ },
+ "case-sensitive-paths-webpack-plugin": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz",
+ "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==",
"dev": true
},
"caseless": {
@@ -1688,38 +2889,40 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "dev": true,
- "requires": {
- "align-text": "0.1.4",
- "lazy-cache": "1.0.4"
- }
- },
"chai": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
"integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
"dev": true,
"requires": {
- "assertion-error": "1.0.2",
+ "assertion-error": "1.1.0",
"check-error": "1.0.2",
"deep-eql": "3.0.1",
"get-func-name": "2.0.0",
"pathval": "1.1.0",
- "type-detect": "4.0.3"
+ "type-detect": "4.0.8"
},
"dependencies": {
+ "assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true
+ },
"deep-eql": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
"dev": true,
"requires": {
- "type-detect": "4.0.3"
+ "type-detect": "4.0.8"
}
+ },
+ "type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true
}
}
},
@@ -1731,25 +2934,17 @@
"requires": {
"assertion-error": "1.0.0",
"deep-eql": "0.1.3"
- },
- "dependencies": {
- "assertion-error": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
- "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=",
- "dev": true
- }
}
},
"chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"dev": true,
"requires": {
- "ansi-styles": "3.2.0",
+ "ansi-styles": "3.2.1",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.4.0"
+ "supports-color": "5.4.0"
}
},
"chardet": {
@@ -1765,20 +2960,121 @@
"dev": true
},
"chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz",
+ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==",
"dev": true,
"requires": {
- "anymatch": "1.3.2",
+ "anymatch": "2.0.0",
"async-each": "1.0.1",
- "fsevents": "1.1.3",
- "glob-parent": "2.0.0",
+ "braces": "2.3.2",
+ "fsevents": "1.2.4",
+ "glob-parent": "3.1.0",
"inherits": "2.0.3",
"is-binary-path": "1.0.1",
- "is-glob": "2.0.1",
+ "is-glob": "4.0.0",
+ "normalize-path": "2.1.1",
"path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
+ "readdirp": "2.1.0",
+ "upath": "1.1.0"
+ },
+ "dependencies": {
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "3.1.0",
+ "path-dirname": "1.0.2"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ }
}
},
"chownr": {
@@ -1787,19 +3083,31 @@
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
"dev": true
},
+ "chrome-trace-event": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz",
+ "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==",
+ "dev": true
+ },
"chromedriver": {
- "version": "2.34.1",
- "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.34.1.tgz",
- "integrity": "sha512-ivXrPKKtnX442J8Lkbhb8hJ5+lelzAqrAI9VjVs3/iujm396JnJYXGGGjniPXvQeLVE3HDIWwsHu8goIUq3rMQ==",
+ "version": "2.38.3",
+ "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.38.3.tgz",
+ "integrity": "sha512-tczy6RHl0LOVA4p+xezcu3NRjr9A1iLyyfjP9yPIUynvV28YSKH/Ll1iw0jMCjN9jwtaB2HB4aPjv0Uuw2VARw==",
"dev": true,
"requires": {
"del": "3.0.0",
- "extract-zip": "1.6.5",
+ "extract-zip": "1.6.6",
"kew": "0.7.0",
"mkdirp": "0.5.1",
- "request": "2.83.0"
+ "request": "2.86.0"
}
},
+ "ci-info": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
+ "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
+ "dev": true
+ },
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
@@ -1807,7 +3115,7 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"circular-json": {
@@ -1817,9 +3125,9 @@
"dev": true
},
"clap": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz",
- "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
"dev": true,
"requires": {
"chalk": "1.1.3"
@@ -1844,6 +3152,15 @@
"supports-color": "2.0.0"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -1853,15 +3170,14 @@
}
},
"class-utils": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz",
- "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dev": true,
"requires": {
"arr-union": "3.1.0",
"define-property": "0.2.5",
"isobject": "3.0.1",
- "lazy-cache": "2.0.2",
"static-extend": "0.1.2"
},
"dependencies": {
@@ -1874,84 +3190,18 @@
"is-descriptor": "0.1.6"
}
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- }
- },
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- },
- "lazy-cache": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
- "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=",
- "dev": true,
- "requires": {
- "set-getter": "0.1.0"
- }
}
}
},
"clean-css": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.8.tgz",
- "integrity": "sha1-BhRVsklKdQrJj0bY1euxfGeeqdE=",
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
+ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
"dev": true,
"requires": {
"source-map": "0.5.7"
@@ -1967,9 +3217,9 @@
}
},
"cli-spinners": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.0.tgz",
- "integrity": "sha1-75h+09SDkaw9q5GAtAanQhgNbmo=",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
+ "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
"dev": true
},
"cli-width": {
@@ -1979,29 +3229,60 @@
"dev": true
},
"cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
"dev": true,
"requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "clone-deep": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+ "dev": true,
+ "requires": {
+ "for-own": "1.0.0",
+ "is-plain-object": "2.0.4",
+ "kind-of": "6.0.2",
+ "shallow-clone": "1.0.0"
},
"dependencies": {
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "dev": true,
+ "requires": {
+ "for-in": "1.0.2"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
}
}
},
- "clone": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
- "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
- "dev": true
+ "cmd-shim": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz",
+ "integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1"
+ }
},
"co": {
"version": "4.6.0",
@@ -2015,15 +3296,9 @@
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
"dev": true,
"requires": {
- "q": "1.5.0"
+ "q": "1.4.1"
}
},
- "coalescy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/coalescy/-/coalescy-1.0.0.tgz",
- "integrity": "sha1-SwZYRrg2NhrabEtKSr9LwcrDG/E=",
- "dev": true
- },
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -2046,15 +3321,15 @@
"integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
"dev": true,
"requires": {
- "clone": "1.0.2",
- "color-convert": "1.9.0",
+ "clone": "1.0.4",
+ "color-convert": "1.9.1",
"color-string": "0.3.0"
}
},
"color-convert": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
- "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
"dev": true,
"requires": {
"color-name": "1.1.3"
@@ -2092,29 +3367,32 @@
"integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
"dev": true
},
- "combine-lists": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz",
- "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=",
- "dev": true,
- "requires": {
- "lodash": "4.17.4"
- }
- },
"combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"dev": true,
"requires": {
"delayed-stream": "1.0.0"
}
},
"commander": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
- "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
- "dev": true
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "dev": true,
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "common-tags": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz",
+ "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
},
"commondir": {
"version": "1.0.1",
@@ -2122,54 +3400,36 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
- "component-bind": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
- "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",
- "dev": true
- },
"component-emitter": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
- "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=",
- "dev": true
- },
- "component-inherit": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
- "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
},
"compressible": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz",
- "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=",
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz",
+ "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=",
"dev": true,
"requires": {
- "mime-db": "1.30.0"
+ "mime-db": "1.33.0"
}
},
"compression": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz",
- "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=",
+ "version": "1.7.2",
+ "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz",
+ "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=",
"dev": true,
"requires": {
- "accepts": "1.3.4",
+ "accepts": "1.3.5",
"bytes": "3.0.0",
- "compressible": "2.0.12",
+ "compressible": "2.0.13",
"debug": "2.6.9",
"on-headers": "1.0.1",
"safe-buffer": "5.1.1",
"vary": "1.1.2"
},
"dependencies": {
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
- "dev": true
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -2178,13 +3438,20 @@
"requires": {
"ms": "2.0.0"
}
+ },
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "dev": true
}
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
},
"concat-stream": {
"version": "1.6.0",
@@ -2193,22 +3460,10 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"typedarray": "0.0.6"
}
},
- "connect": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz",
- "integrity": "sha512-GLSZqgjVxPvGYVD/2vz//gS201MEXk4b7t3nHV6OVnTdDNWi/Gm7Rpxs/ybvljPWvULys/wrzIV3jB3YvEc3nQ==",
- "dev": true,
- "requires": {
- "debug": "2.6.8",
- "finalhandler": "1.0.4",
- "parseurl": "1.3.1",
- "utils-merge": "1.0.0"
- }
- },
"connect-history-api-fallback": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
@@ -2224,10 +3479,16 @@
"date-now": "0.1.4"
}
},
+ "console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true
+ },
"consolidate": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz",
- "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=",
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
"dev": true,
"requires": {
"bluebird": "3.5.1"
@@ -2252,15 +3513,15 @@
"dev": true
},
"content-type": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
- "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"dev": true
},
"convert-source-map": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
- "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
+ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
"dev": true
},
"cookie": {
@@ -2296,21 +3557,19 @@
"dev": true
},
"copy-webpack-plugin": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.3.1.tgz",
- "integrity": "sha512-xlcFiW/U7KrpS6dFuWq3r8Wb7koJx7QVc7LDFCosqkikaVSxkaYOnwDLwilbjrszZ0LYZXThDAJKcQCSrvdShQ==",
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz",
+ "integrity": "sha512-OlTo6DYg0XfTKOF8eLf79wcHm4Ut10xU2cRBRPMW/NA5F9VMjZGTfRHWDIYC3s+1kObGYrBLshXWU1K0hILkNQ==",
"dev": true,
"requires": {
- "cacache": "10.0.2",
+ "cacache": "10.0.4",
"find-cache-dir": "1.0.0",
"globby": "7.1.1",
"is-glob": "4.0.0",
- "loader-utils": "0.2.17",
- "lodash": "4.17.4",
+ "loader-utils": "1.1.0",
"minimatch": "3.0.4",
- "p-limit": "1.1.0",
- "pify": "3.0.0",
- "serialize-javascript": "1.4.0"
+ "p-limit": "1.2.0",
+ "serialize-javascript": "1.5.0"
},
"dependencies": {
"globby": {
@@ -2322,7 +3581,7 @@
"array-union": "1.0.2",
"dir-glob": "2.0.0",
"glob": "7.1.2",
- "ignore": "3.3.7",
+ "ignore": "3.3.8",
"pify": "3.0.0",
"slash": "1.0.0"
}
@@ -2341,31 +3600,14 @@
"requires": {
"is-extglob": "2.1.1"
}
- },
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
- "dev": true,
- "requires": {
- "big.js": "3.1.3",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
}
}
},
"core-js": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
- "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
+ "version": "2.5.6",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz",
+ "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==",
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
@@ -2380,7 +3622,7 @@
"dev": true,
"requires": {
"is-directory": "0.3.1",
- "js-yaml": "3.7.0",
+ "js-yaml": "3.11.0",
"minimist": "1.2.0",
"object-assign": "4.1.1",
"os-homedir": "1.0.2",
@@ -2397,9 +3639,9 @@
}
},
"create-ecdh": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
- "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
"dev": true,
"requires": {
"bn.js": "4.11.8",
@@ -2407,48 +3649,41 @@
}
},
"create-hash": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz",
- "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
"dev": true,
"requires": {
"cipher-base": "1.0.4",
"inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "sha.js": "2.4.9"
+ "md5.js": "1.3.4",
+ "ripemd160": "2.0.2",
+ "sha.js": "2.4.11"
}
},
"create-hmac": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz",
- "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=",
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
"dev": true,
"requires": {
"cipher-base": "1.0.4",
- "create-hash": "1.1.3",
+ "create-hash": "1.2.0",
"inherits": "2.0.3",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
- }
- },
- "cross-env": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz",
- "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==",
- "dev": true,
- "requires": {
- "cross-spawn": "5.1.0",
- "is-windows": "1.0.1"
+ "ripemd160": "2.0.2",
+ "safe-buffer": "5.1.2",
+ "sha.js": "2.4.11"
}
},
"cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
- "lru-cache": "4.1.1",
+ "nice-try": "1.0.4",
+ "path-key": "2.0.1",
+ "semver": "5.5.0",
"shebang-command": "1.2.0",
"which": "1.3.0"
}
@@ -2468,7 +3703,7 @@
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
"dev": true,
"requires": {
- "hoek": "4.2.0"
+ "hoek": "4.2.1"
}
}
}
@@ -2479,17 +3714,17 @@
"integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
"dev": true,
"requires": {
- "browserify-cipher": "1.0.0",
+ "browserify-cipher": "1.0.1",
"browserify-sign": "4.0.4",
- "create-ecdh": "4.0.0",
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "diffie-hellman": "5.0.2",
+ "create-ecdh": "4.0.3",
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
+ "diffie-hellman": "5.0.3",
"inherits": "2.0.3",
- "pbkdf2": "3.0.14",
- "public-encrypt": "4.0.0",
- "randombytes": "2.0.5",
- "randomfill": "1.0.3"
+ "pbkdf2": "3.0.16",
+ "public-encrypt": "4.0.2",
+ "randombytes": "2.0.6",
+ "randomfill": "1.0.4"
}
},
"css-color-names": {
@@ -2499,9 +3734,9 @@
"dev": true
},
"css-loader": {
- "version": "0.28.8",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.8.tgz",
- "integrity": "sha512-4jGj7Ag6WUZ5lQyE4te9sJLn0lgkz6HI3WDE4aw98AkW1IAKXPP4blTpPeorlLDpNsYvojo0SYgRJOdz2KbuAw==",
+ "version": "0.28.11",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
+ "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==",
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
@@ -2512,7 +3747,7 @@
"lodash.camelcase": "4.3.0",
"object-assign": "4.1.1",
"postcss": "5.2.18",
- "postcss-modules-extract-imports": "1.1.0",
+ "postcss-modules-extract-imports": "1.2.0",
"postcss-modules-local-by-default": "1.2.0",
"postcss-modules-scope": "1.1.0",
"postcss-modules-values": "1.3.0",
@@ -2560,11 +3795,20 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -2586,18 +3830,6 @@
"css-what": "2.1.0",
"domutils": "1.5.1",
"nth-check": "1.0.1"
- },
- "dependencies": {
- "domutils": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
- "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
- "dev": true,
- "requires": {
- "dom-serializer": "0.1.0",
- "domelementtype": "1.3.0"
- }
- }
}
},
"css-selector-tokenizer": {
@@ -2611,16 +3843,37 @@
"regexpu-core": "1.0.0"
},
"dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
"regexpu-core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.4.0",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
}
}
},
@@ -2647,7 +3900,7 @@
"defined": "1.0.0",
"has": "1.0.1",
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-calc": "5.3.1",
"postcss-colormin": "2.2.2",
"postcss-convert-values": "2.6.1",
@@ -2689,10 +3942,10 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000726",
+ "caniuse-db": "1.0.30000843",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
}
},
@@ -2702,8 +3955,8 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000726",
- "electron-to-chromium": "1.3.21"
+ "caniuse-db": "1.0.30000843",
+ "electron-to-chromium": "1.3.47"
}
},
"chalk": {
@@ -2734,17 +3987,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -2762,10 +4024,25 @@
"integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
"dev": true,
"requires": {
- "clap": "1.2.0",
+ "clap": "1.2.3",
"source-map": "0.5.7"
}
},
+ "cssom": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
+ "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
+ "dev": true
+ },
+ "cssstyle": {
+ "version": "0.2.37",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+ "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+ "dev": true,
+ "requires": {
+ "cssom": "0.3.2"
+ }
+ },
"currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -2775,12 +4052,6 @@
"array-find-index": "1.0.2"
}
},
- "custom-event": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz",
- "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=",
- "dev": true
- },
"cyclist": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
@@ -2793,7 +4064,7 @@
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"dev": true,
"requires": {
- "es5-ext": "0.10.37"
+ "es5-ext": "0.10.42"
}
},
"dashdash": {
@@ -2803,14 +4074,6 @@
"dev": true,
"requires": {
"assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"data-uri-to-buffer": {
@@ -2819,22 +4082,23 @@
"integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==",
"dev": true
},
+ "data-urls": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.0.tgz",
+ "integrity": "sha512-ai40PPQR0Fn1lD2PPie79CibnlMN2AYiDhwFX/rZHVsxbs5kNJSjegqXIprhouGXlRdEnfybva7kqRGnB6mypA==",
+ "dev": true,
+ "requires": {
+ "abab": "1.0.4",
+ "whatwg-mimetype": "2.1.0",
+ "whatwg-url": "6.4.1"
+ }
+ },
"date-now": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
"dev": true
},
- "dateformat": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
- "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1",
- "meow": "3.7.0"
- }
- },
"de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
@@ -2842,9 +4106,9 @@
"dev": true
},
"debug": {
- "version": "2.6.8",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
@@ -2869,14 +4133,6 @@
"dev": true,
"requires": {
"type-detect": "0.1.1"
- },
- "dependencies": {
- "type-detect": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
- "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
- "dev": true
- }
}
},
"deep-equal": {
@@ -2891,6 +4147,21 @@
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
},
+ "deepmerge": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.1.0.tgz",
+ "integrity": "sha512-Q89Z26KAfA3lpPGhbF6XMfYAm3jIV3avViy6KOJ2JLzFbeWHOvPQUu5aSJIWXap3gDZC2y1eF5HXEPI2wGqgvw==",
+ "dev": true
+ },
+ "defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dev": true,
+ "requires": {
+ "clone": "1.0.4"
+ }
+ },
"define-properties": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
@@ -2902,12 +4173,56 @@
}
},
"define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dev": true,
"requires": {
- "is-descriptor": "1.0.2"
+ "is-descriptor": "1.0.2",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ }
}
},
"defined": {
@@ -2922,17 +4237,9 @@
"integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=",
"dev": true,
"requires": {
- "ast-types": "0.10.1",
- "escodegen": "1.8.1",
+ "ast-types": "0.11.4",
+ "escodegen": "1.9.1",
"esprima": "3.1.3"
- },
- "dependencies": {
- "esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
- "dev": true
- }
}
},
"del": {
@@ -2943,18 +4250,10 @@
"requires": {
"globby": "6.1.0",
"is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.1",
"p-map": "1.2.0",
"pify": "3.0.0",
"rimraf": "2.6.2"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
}
},
"delayed-stream": {
@@ -2963,10 +4262,16 @@
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
},
+ "delegates": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "dev": true
+ },
"depd": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
- "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
"dev": true
},
"des.js": {
@@ -2976,7 +4281,7 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
+ "minimalistic-assert": "1.0.1"
}
},
"destroy": {
@@ -2985,42 +4290,27 @@
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
"dev": true
},
- "detect-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
- "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
- "dev": true,
- "requires": {
- "repeating": "2.0.1"
- }
- },
"detect-node": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
"integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=",
"dev": true
},
- "di": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz",
- "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
- "dev": true
- },
"diff": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
- "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
"dev": true
},
"diffie-hellman": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz",
- "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
"dev": true,
"requires": {
"bn.js": "4.11.8",
"miller-rabin": "4.0.1",
- "randombytes": "2.0.5"
+ "randombytes": "2.0.6"
}
},
"dir-glob": {
@@ -3031,23 +4321,6 @@
"requires": {
"arrify": "1.0.1",
"path-type": "3.0.0"
- },
- "dependencies": {
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "3.0.0"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true
- }
}
},
"dns-equal": {
@@ -3057,13 +4330,13 @@
"dev": true
},
"dns-packet": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz",
- "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
+ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
"dev": true,
"requires": {
"ip": "1.1.5",
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
},
"dependencies": {
"ip": {
@@ -3109,18 +4382,6 @@
}
}
},
- "dom-serialize": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz",
- "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=",
- "dev": true,
- "requires": {
- "custom-event": "1.0.1",
- "ent": "2.2.0",
- "extend": "3.0.1",
- "void-elements": "2.0.1"
- }
- },
"dom-serializer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
@@ -3140,9 +4401,9 @@
}
},
"domain-browser": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
"dev": true
},
"domelementtype": {
@@ -3151,34 +4412,67 @@
"integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
"dev": true
},
+ "domexception": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
+ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
+ "dev": true,
+ "requires": {
+ "webidl-conversions": "4.0.2"
+ }
+ },
"domhandler": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
- "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
+ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
"dev": true,
"requires": {
"domelementtype": "1.3.0"
}
},
"domutils": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz",
- "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"dev": true,
"requires": {
"dom-serializer": "0.1.0",
"domelementtype": "1.3.0"
}
},
- "duplexify": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
- "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.0",
+ "is-obj": "1.0.1"
+ }
+ },
+ "dotenv": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
+ "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
+ "dev": true
+ },
+ "dotenv-webpack": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.5.5.tgz",
+ "integrity": "sha1-NEEJTwTTBLYRnmtyUk5i+zJS9fI=",
+ "dev": true,
+ "requires": {
+ "dotenv": "5.0.1"
+ }
+ },
+ "duplexify": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
+ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "1.4.1",
"inherits": "2.0.3",
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"stream-shift": "1.0.0"
}
},
@@ -3204,16 +4498,10 @@
"integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=",
"dev": true
},
- "electron-releases": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/electron-releases/-/electron-releases-2.1.0.tgz",
- "integrity": "sha512-cyKFD1bTE/UgULXfaueIN1k5EPFzs+FRc/rvCY5tIynefAPqopQEgjr0EzY+U3Dqrk/G4m9tXSPuZ77v6dL/Rw==",
- "dev": true
- },
"electron-to-chromium": {
- "version": "1.3.21",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz",
- "integrity": "sha1-qWfr3P6O0Ag/wkTRiUAiqOgRPqI=",
+ "version": "1.3.47",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.47.tgz",
+ "integrity": "sha1-dk6IfKkQTQGgrI6r7n38DizhQQQ=",
"dev": true
},
"elliptic": {
@@ -3227,7 +4515,7 @@
"hash.js": "1.1.3",
"hmac-drbg": "1.0.1",
"inherits": "2.0.3",
- "minimalistic-assert": "1.0.0",
+ "minimalistic-assert": "1.0.1",
"minimalistic-crypto-utils": "1.0.1"
}
},
@@ -3238,144 +4526,40 @@
"dev": true
},
"encodeurl": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
- "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
"dev": true
},
"end-of-stream": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
- "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
"dev": true,
"requires": {
"once": "1.4.0"
}
},
- "engine.io": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz",
- "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=",
- "dev": true,
- "requires": {
- "accepts": "1.3.3",
- "base64id": "1.0.0",
- "cookie": "0.3.1",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.2",
- "ws": "1.1.2"
- },
- "dependencies": {
- "accepts": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
- "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=",
- "dev": true,
- "requires": {
- "mime-types": "2.1.17",
- "negotiator": "0.6.1"
- }
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "engine.io-client": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz",
- "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=",
- "dev": true,
- "requires": {
- "component-emitter": "1.2.1",
- "component-inherit": "0.0.3",
- "debug": "2.3.3",
- "engine.io-parser": "1.3.2",
- "has-cors": "1.1.0",
- "indexof": "0.0.1",
- "parsejson": "0.0.3",
- "parseqs": "0.0.5",
- "parseuri": "0.0.5",
- "ws": "1.1.2",
- "xmlhttprequest-ssl": "1.5.3",
- "yeast": "0.1.2"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "engine.io-parser": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz",
- "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=",
- "dev": true,
- "requires": {
- "after": "0.8.2",
- "arraybuffer.slice": "0.0.6",
- "base64-arraybuffer": "0.1.5",
- "blob": "0.0.4",
- "has-binary": "0.1.7",
- "wtf-8": "1.0.0"
- }
- },
"enhanced-resolve": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz",
+ "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "memory-fs": "0.2.0",
- "tapable": "0.1.10"
+ "memory-fs": "0.4.1",
+ "tapable": "1.0.0"
}
},
- "ent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz",
- "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=",
- "dev": true
- },
"entities": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA="
},
"errno": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.6.tgz",
- "integrity": "sha512-IsORQDpaaSwcDP4ZZnHxgE85werpo34VYn1Ud3mq+eUsF593faR8oCZNXrROVkpFu2TsbrNhHin0aUrTsQ9vNw==",
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
"dev": true,
"requires": {
"prr": "1.0.1"
@@ -3400,9 +4584,9 @@
}
},
"es-abstract": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz",
- "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==",
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz",
+ "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==",
"dev": true,
"requires": {
"es-to-primitive": "1.1.1",
@@ -3424,13 +4608,14 @@
}
},
"es5-ext": {
- "version": "0.10.37",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz",
- "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=",
+ "version": "0.10.42",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz",
+ "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==",
"dev": true,
"requires": {
"es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1"
+ "es6-symbol": "3.1.1",
+ "next-tick": "1.0.0"
}
},
"es6-iterator": {
@@ -3440,43 +4625,10 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.37",
+ "es5-ext": "0.10.42",
"es6-symbol": "3.1.1"
}
},
- "es6-map": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
- "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-set": "0.1.5",
- "es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
- }
- },
- "es6-promise": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "dev": true
- },
- "es6-set": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
- "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
- }
- },
"es6-symbol": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
@@ -3484,19 +4636,7 @@
"dev": true,
"requires": {
"d": "1.0.0",
- "es5-ext": "0.10.37"
- }
- },
- "es6-weak-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
- "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37",
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1"
+ "es5-ext": "0.10.42"
}
},
"escape-html": {
@@ -3512,78 +4652,57 @@
"dev": true
},
"escodegen": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
- "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
+ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
"dev": true,
"requires": {
- "esprima": "2.7.3",
- "estraverse": "1.9.3",
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
"esutils": "2.0.2",
"optionator": "0.8.2",
- "source-map": "0.2.0"
+ "source-map": "0.6.1"
},
"dependencies": {
- "estraverse": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
- "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
- "dev": true
- },
"source-map": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
- "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
- "optional": true,
- "requires": {
- "amdefine": "1.0.1"
- }
+ "optional": true
}
}
},
- "escope": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
- "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
- "dev": true,
- "requires": {
- "es6-map": "0.1.5",
- "es6-weak-map": "2.0.2",
- "esrecurse": "4.2.0",
- "estraverse": "4.2.0"
- }
- },
"eslint": {
- "version": "4.15.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.15.0.tgz",
- "integrity": "sha512-zEO/Z1ZUxIQ+MhDVKkVTUYpIPDTEJLXGMrkID+5v1NeQHtCz6FZikWuFRgxE1Q/RV2V4zVl1u3xmpPADHhMZ6A==",
+ "version": "4.19.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz",
+ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==",
"dev": true,
"requires": {
- "ajv": "5.3.0",
+ "ajv": "5.5.2",
"babel-code-frame": "6.26.0",
- "chalk": "2.3.0",
+ "chalk": "2.4.1",
"concat-stream": "1.6.0",
"cross-spawn": "5.1.0",
"debug": "3.1.0",
"doctrine": "2.1.0",
"eslint-scope": "3.7.1",
"eslint-visitor-keys": "1.0.0",
- "espree": "3.5.2",
- "esquery": "1.0.0",
+ "espree": "3.5.4",
+ "esquery": "1.0.1",
"esutils": "2.0.2",
"file-entry-cache": "2.0.0",
"functional-red-black-tree": "1.0.1",
"glob": "7.1.2",
- "globals": "11.1.0",
- "ignore": "3.3.7",
+ "globals": "11.5.0",
+ "ignore": "3.3.8",
"imurmurhash": "0.1.4",
"inquirer": "3.3.0",
- "is-resolvable": "1.0.1",
- "js-yaml": "3.10.0",
+ "is-resolvable": "1.1.0",
+ "js-yaml": "3.11.0",
"json-stable-stringify-without-jsonify": "1.0.1",
"levn": "0.3.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.10",
"minimatch": "3.0.4",
"mkdirp": "0.5.1",
"natural-compare": "1.4.0",
@@ -3591,160 +4710,153 @@
"path-is-inside": "1.0.2",
"pluralize": "7.0.0",
"progress": "2.0.0",
+ "regexpp": "1.1.0",
"require-uncached": "1.0.3",
- "semver": "5.4.1",
+ "semver": "5.5.0",
"strip-ansi": "4.0.0",
"strip-json-comments": "2.0.1",
"table": "4.0.2",
"text-table": "0.2.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
},
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz",
+ "integrity": "sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA==",
+ "dev": true,
+ "requires": {
+ "eslint-restricted-globals": "0.1.1"
+ }
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
+ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "resolve": "1.7.1"
+ },
+ "dependencies": {
"debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
+ }
+ },
+ "eslint-import-resolver-webpack": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.9.0.tgz",
+ "integrity": "sha1-IxzhV4rVEk2leZ8Cm9M9KBN2I+M=",
+ "dev": true,
+ "requires": {
+ "array-find": "1.0.0",
+ "debug": "2.6.9",
+ "enhanced-resolve": "0.9.1",
+ "find-root": "1.1.0",
+ "has": "1.0.1",
+ "interpret": "1.1.0",
+ "is-absolute": "0.2.6",
+ "lodash.get": "4.4.2",
+ "node-libs-browser": "2.1.0",
+ "resolve": "1.7.1",
+ "semver": "5.5.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
- "esprima": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
- "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
- "dev": true
- },
- "globals": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.1.0.tgz",
- "integrity": "sha512-uEuWt9mqTlPDwSqi+sHjD4nWU/1N+q0fiWI9T1mZpD2UENqX20CFD5T/ziLZvztPaBKl7ZylUi1q6Qfm7E2CiQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
- "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "enhanced-resolve": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
+ "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
"dev": true,
"requires": {
- "argparse": "1.0.9",
- "esprima": "4.0.0"
+ "graceful-fs": "4.1.11",
+ "memory-fs": "0.2.0",
+ "tapable": "0.1.10"
}
},
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
- }
- },
- "eslint-friendly-formatter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-friendly-formatter/-/eslint-friendly-formatter-3.0.0.tgz",
- "integrity": "sha1-J4h0Q1psRuwdlPoLH/SU4w7wQpA=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "coalescy": "1.0.0",
- "extend": "3.0.1",
- "minimist": "1.2.0",
- "text-table": "0.2.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "memory-fs": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
+ "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
"dev": true
},
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "tapable": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
+ "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
"dev": true
}
}
},
- "eslint-import-resolver-node": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.1.tgz",
- "integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==",
- "dev": true,
- "requires": {
- "debug": "2.6.8",
- "resolve": "1.4.0"
- }
- },
- "eslint-import-resolver-webpack": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.8.4.tgz",
- "integrity": "sha512-b6JxR57ruiMxq2tIu4T/SrYED5RKJfeBEs8u3+JWF+O2RxDmFpUH84c5uS1T5qiP0K4r0SL7CXhvd41hXdDlAg==",
- "dev": true,
- "requires": {
- "array-find": "1.0.0",
- "debug": "2.6.8",
- "enhanced-resolve": "0.9.1",
- "find-root": "0.1.2",
- "has": "1.0.1",
- "interpret": "1.0.3",
- "is-absolute": "0.2.6",
- "lodash.get": "3.7.0",
- "node-libs-browser": "2.1.0",
- "resolve": "1.4.0",
- "semver": "5.4.1"
- }
- },
"eslint-loader": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz",
- "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.0.0.tgz",
+ "integrity": "sha512-VxxGDI4bXzLk0+/jMt/0EkGMRKS9ox6Czx+yapMb9WJmcS/ZHhlhqcVUNgUjFBNp02j/2pZLdGOrG7EXyjoz/g==",
"dev": true,
"requires": {
"loader-fs-cache": "1.0.1",
"loader-utils": "1.1.0",
"object-assign": "4.1.1",
- "object-hash": "1.1.8",
+ "object-hash": "1.3.0",
"rimraf": "2.6.2"
}
},
"eslint-module-utils": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
- "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
+ "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"pkg-dir": "1.0.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
@@ -3775,34 +4887,33 @@
}
}
},
- "eslint-plugin-html": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-3.2.2.tgz",
- "integrity": "sha512-sSuafathF6ImPrzF2vUKEJY6Llq06d/riMTMzlsruDRDhNsQMYp2viUKo+jx+JRr1QevskeUpQcuptp2gN1XVQ==",
- "dev": true,
- "requires": {
- "htmlparser2": "3.9.2",
- "semver": "5.4.1"
- }
- },
"eslint-plugin-import": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz",
- "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.12.0.tgz",
+ "integrity": "sha1-2tMXgSktZmSyUxf9BJ0uKy8CIF0=",
"dev": true,
"requires": {
- "builtin-modules": "1.1.1",
"contains-path": "0.1.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"doctrine": "1.5.0",
- "eslint-import-resolver-node": "0.3.1",
- "eslint-module-utils": "2.1.1",
+ "eslint-import-resolver-node": "0.3.2",
+ "eslint-module-utils": "2.2.0",
"has": "1.0.1",
- "lodash.cond": "4.5.2",
+ "lodash": "4.17.10",
"minimatch": "3.0.4",
- "read-pkg-up": "2.0.0"
+ "read-pkg-up": "2.0.0",
+ "resolve": "1.7.1"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"doctrine": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
@@ -3834,6 +4945,12 @@
"pify": "2.3.0"
}
},
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
"read-pkg": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
@@ -3854,32 +4971,31 @@
"find-up": "2.1.0",
"read-pkg": "2.0.0"
}
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
}
}
},
"eslint-plugin-vue": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-3.14.0.tgz",
- "integrity": "sha1-jSRit9z4QKNTt+takuY5RYHV1pc=",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.5.0.tgz",
+ "integrity": "sha512-2CDidjAZ875tbJgtjKihIQRkqxgk3gVUDOAW2e9dP+Kf39jhCwKy6aMXIsHRKCPjRqQhDWF0jtVRNcywBFWTZA==",
"dev": true,
"requires": {
- "requireindex": "1.1.0",
- "vue-eslint-parser": "2.0.2"
+ "vue-eslint-parser": "2.0.3"
}
},
+ "eslint-restricted-globals": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
+ "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
+ "dev": true
+ },
"eslint-scope": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
"integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
"dev": true,
"requires": {
- "esrecurse": "4.2.0",
+ "esrecurse": "4.2.1",
"estraverse": "4.2.0"
}
},
@@ -3890,38 +5006,37 @@
"dev": true
},
"espree": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz",
- "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==",
+ "version": "3.5.4",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
+ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
- "acorn": "5.3.0",
+ "acorn": "5.5.3",
"acorn-jsx": "3.0.1"
}
},
"esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
"dev": true
},
"esquery": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
- "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
+ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
"dev": true,
"requires": {
"estraverse": "4.2.0"
}
},
"esrecurse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
- "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"dev": true,
"requires": {
- "estraverse": "4.2.0",
- "object-assign": "4.1.1"
+ "estraverse": "4.2.0"
}
},
"estraverse": {
@@ -3942,20 +5057,10 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"dev": true
},
- "event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
- "dev": true,
- "requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.37"
- }
- },
"eventemitter3": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz",
- "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
+ "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==",
"dev": true
},
"events": {
@@ -3970,15 +5075,9 @@
"integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
"dev": true,
"requires": {
- "original": "1.0.0"
+ "original": "1.0.1"
}
},
- "eventsource-polyfill": {
- "version": "0.9.6",
- "resolved": "https://registry.npmjs.org/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz",
- "integrity": "sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw=",
- "dev": true
- },
"evp_bytestokey": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
@@ -3986,16 +5085,16 @@
"dev": true,
"requires": {
"md5.js": "1.3.4",
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz",
+ "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==",
"dev": true,
"requires": {
- "cross-spawn": "5.1.0",
+ "cross-spawn": "6.0.5",
"get-stream": "3.0.0",
"is-stream": "1.1.0",
"npm-run-path": "2.0.2",
@@ -4004,50 +5103,6 @@
"strip-eof": "1.0.0"
}
},
- "expand-braces": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz",
- "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=",
- "dev": true,
- "requires": {
- "array-slice": "0.2.3",
- "array-unique": "0.2.1",
- "braces": "0.1.5"
- },
- "dependencies": {
- "braces": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz",
- "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=",
- "dev": true,
- "requires": {
- "expand-range": "0.1.1"
- }
- },
- "expand-range": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz",
- "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=",
- "dev": true,
- "requires": {
- "is-number": "0.1.1",
- "repeat-string": "0.2.2"
- }
- },
- "is-number": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz",
- "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=",
- "dev": true
- },
- "repeat-string": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz",
- "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=",
- "dev": true
- }
- }
- },
"expand-brackets": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
@@ -4063,16 +5118,16 @@
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
"requires": {
- "fill-range": "2.2.3"
+ "fill-range": "2.2.4"
}
},
"express": {
- "version": "4.16.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
- "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
+ "version": "4.16.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
+ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
"dev": true,
"requires": {
- "accepts": "1.3.4",
+ "accepts": "1.3.5",
"array-flatten": "1.1.1",
"body-parser": "1.18.2",
"content-disposition": "0.5.2",
@@ -4080,58 +5135,34 @@
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "1.1.1",
- "encodeurl": "1.0.1",
+ "depd": "1.1.2",
+ "encodeurl": "1.0.2",
"escape-html": "1.0.3",
"etag": "1.8.1",
- "finalhandler": "1.1.0",
+ "finalhandler": "1.1.1",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "1.1.2",
"on-finished": "2.3.0",
"parseurl": "1.3.2",
"path-to-regexp": "0.1.7",
- "proxy-addr": "2.0.2",
+ "proxy-addr": "2.0.3",
"qs": "6.5.1",
"range-parser": "1.2.0",
"safe-buffer": "5.1.1",
- "send": "0.16.1",
- "serve-static": "1.13.1",
+ "send": "0.16.2",
+ "serve-static": "1.13.2",
"setprototypeof": "1.1.0",
- "statuses": "1.3.1",
- "type-is": "1.6.15",
+ "statuses": "1.4.0",
+ "type-is": "1.6.16",
"utils-merge": "1.0.1",
"vary": "1.1.2"
},
"dependencies": {
- "body-parser": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
- "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
- "dev": true,
- "requires": {
- "bytes": "3.0.0",
- "content-type": "1.0.4",
- "debug": "2.6.9",
- "depd": "1.1.1",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "on-finished": "2.3.0",
- "qs": "6.5.1",
- "raw-body": "2.3.2",
- "type-is": "1.6.15"
- }
- },
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
- "dev": true
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
"dev": true
},
"debug": {
@@ -4143,61 +5174,22 @@
"ms": "2.0.0"
}
},
- "finalhandler": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
- "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
- "dev": true,
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "1.0.1",
- "escape-html": "1.0.3",
- "on-finished": "2.3.0",
- "parseurl": "1.3.2",
- "statuses": "1.3.1",
- "unpipe": "1.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "dev": true
- },
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
- "dev": true
- },
"qs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
"dev": true
},
- "raw-body": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
- "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
- "dev": true,
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "unpipe": "1.0.0"
- }
- },
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "safe-buffer": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
+ "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
"dev": true
},
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
"dev": true
}
}
@@ -4209,40 +5201,35 @@
"dev": true
},
"extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
"dev": true,
"requires": {
- "is-extendable": "0.1.1"
+ "assign-symbols": "1.0.0",
+ "is-extendable": "1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "2.0.4"
+ }
+ }
}
},
"external-editor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
- "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
+ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
"dev": true,
"requires": {
"chardet": "0.4.2",
- "iconv-lite": "0.4.19",
+ "iconv-lite": "0.4.23",
"tmp": "0.0.33"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "dev": true
- },
- "tmp": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
- "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
- "requires": {
- "os-tmpdir": "1.0.2"
- }
- }
}
},
"extglob": {
@@ -4254,37 +5241,25 @@
"is-extglob": "1.0.0"
}
},
- "extract-text-webpack-plugin": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz",
- "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==",
- "dev": true,
- "requires": {
- "async": "2.5.0",
- "loader-utils": "1.1.0",
- "schema-utils": "0.3.0",
- "webpack-sources": "1.0.1"
- }
- },
"extract-zip": {
- "version": "1.6.5",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz",
- "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=",
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz",
+ "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=",
"dev": true,
"requires": {
"concat-stream": "1.6.0",
- "debug": "2.2.0",
+ "debug": "2.6.9",
"mkdirp": "0.5.0",
"yauzl": "2.4.1"
},
"dependencies": {
"debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
- "ms": "0.7.1"
+ "ms": "2.0.0"
}
},
"mkdirp": {
@@ -4295,12 +5270,6 @@
"requires": {
"minimist": "0.0.8"
}
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
}
}
},
@@ -4311,11 +5280,346 @@
"dev": true
},
"fast-deep-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
"dev": true
},
+ "fast-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz",
+ "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==",
+ "dev": true,
+ "requires": {
+ "@mrmlnc/readdir-enhanced": "2.2.1",
+ "@nodelib/fs.stat": "1.0.2",
+ "glob-parent": "3.1.0",
+ "is-glob": "4.0.0",
+ "merge2": "1.2.2",
+ "micromatch": "3.1.10"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "3.1.0",
+ "path-dirname": "1.0.2"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
+ }
+ }
+ },
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
@@ -4372,13 +5676,13 @@
}
},
"file-loader": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz",
- "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz",
+ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
"dev": true,
"requires": {
"loader-utils": "1.1.0",
- "schema-utils": "0.3.0"
+ "schema-utils": "0.4.5"
}
},
"file-uri-to-path": {
@@ -4394,31 +5698,48 @@
"dev": true
},
"fill-range": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
- "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"dev": true,
"requires": {
"is-number": "2.1.0",
"isobject": "2.1.0",
- "randomatic": "1.1.7",
+ "randomatic": "3.0.0",
"repeat-element": "1.1.2",
"repeat-string": "1.6.1"
}
},
"finalhandler": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz",
- "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
+ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"dev": true,
"requires": {
- "debug": "2.6.8",
- "encodeurl": "1.0.1",
+ "debug": "2.6.9",
+ "encodeurl": "1.0.2",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
- "parseurl": "1.3.1",
- "statuses": "1.3.1",
+ "parseurl": "1.3.2",
+ "statuses": "1.4.0",
"unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
+ }
}
},
"find-cache-dir": {
@@ -4428,14 +5749,14 @@
"dev": true,
"requires": {
"commondir": "1.0.1",
- "make-dir": "1.0.0",
+ "make-dir": "1.3.0",
"pkg-dir": "2.0.0"
}
},
"find-root": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz",
- "integrity": "sha1-mNImfP8ZFsyvJ0OzoO6oHXnX3NE=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
"dev": true
},
"find-up": {
@@ -4467,7 +5788,7 @@
"requires": {
"globby": "5.0.0",
"is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.0",
+ "is-path-in-cwd": "1.0.1",
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
@@ -4487,6 +5808,12 @@
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
}
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
}
}
},
@@ -4497,13 +5824,22 @@
"dev": true
},
"flush-write-stream": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz",
- "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
"dev": true,
"requires": {
"inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz",
+ "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==",
+ "dev": true,
+ "requires": {
+ "debug": "3.1.0"
}
},
"for-in": {
@@ -4534,23 +5870,14 @@
"dev": true
},
"form-data": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
- "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"dev": true,
"requires": {
"asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.17"
- }
- },
- "formatio": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
- "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
- "dev": true,
- "requires": {
- "samsam": "1.3.0"
+ "combined-stream": "1.0.6",
+ "mime-types": "2.1.18"
}
},
"forwarded": {
@@ -4575,14 +5902,14 @@
"dev": true
},
"friendly-errors-webpack-plugin": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.6.1.tgz",
- "integrity": "sha1-4yeBxHIvVGoGqbXXp8+ihSA3XXA=",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==",
"dev": true,
"requires": {
"chalk": "1.1.3",
"error-stack-parser": "2.0.1",
- "string-length": "1.0.1"
+ "string-width": "2.1.1"
},
"dependencies": {
"ansi-styles": {
@@ -4604,6 +5931,15 @@
"supports-color": "2.0.0"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
@@ -4619,7 +5955,18 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
+ }
+ },
+ "fs-extra": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
+ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "jsonfile": "4.0.0",
+ "universalify": "0.1.1"
}
},
"fs-write-stream-atomic": {
@@ -4631,48 +5978,39 @@
"graceful-fs": "4.1.11",
"iferr": "0.1.5",
"imurmurhash": "0.1.4",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
},
"fsevents": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz",
- "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
"dev": true,
"optional": true,
"requires": {
- "nan": "2.8.0",
- "node-pre-gyp": "0.6.39"
+ "nan": "2.10.0",
+ "node-pre-gyp": "0.10.0"
},
"dependencies": {
"abbrev": {
- "version": "1.1.0",
+ "version": "1.1.1",
"bundled": true,
"dev": true,
"optional": true
},
- "ajv": {
- "version": "4.11.8",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
},
"aproba": {
- "version": "1.1.1",
+ "version": "1.2.0",
"bundled": true,
"dev": true,
"optional": true
@@ -4684,91 +6022,25 @@
"optional": true,
"requires": {
"delegates": "1.0.0",
- "readable-stream": "2.2.9"
+ "readable-stream": "2.3.6"
}
},
- "asn1": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "assert-plus": {
- "version": "0.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "asynckit": {
- "version": "0.4.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws-sign2": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "aws4": {
- "version": "1.6.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"balanced-match": {
- "version": "0.4.2",
- "bundled": true,
- "dev": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "tweetnacl": "0.14.5"
- }
- },
- "block-stream": {
- "version": "0.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "inherits": "2.0.3"
- }
- },
- "boom": {
- "version": "2.10.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "brace-expansion": {
- "version": "1.1.7",
- "bundled": true,
- "dev": true,
- "requires": {
- "balanced-match": "0.4.2",
- "concat-map": "0.0.1"
- }
- },
- "buffer-shims": {
"version": "1.0.0",
"bundled": true,
"dev": true
},
- "caseless": {
- "version": "0.12.0",
+ "brace-expansion": {
+ "version": "1.1.11",
"bundled": true,
"dev": true,
- "optional": true
+ "requires": {
+ "balanced-match": "1.0.0",
+ "concat-map": "0.0.1"
+ }
},
- "co": {
- "version": "4.6.0",
+ "chownr": {
+ "version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
@@ -4778,14 +6050,6 @@
"bundled": true,
"dev": true
},
- "combined-stream": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "requires": {
- "delayed-stream": "1.0.0"
- }
- },
"concat-map": {
"version": "0.0.1",
"bundled": true,
@@ -4799,35 +6063,11 @@
"core-util-is": {
"version": "1.0.2",
"bundled": true,
- "dev": true
- },
- "cryptiles": {
- "version": "2.0.5",
- "bundled": true,
"dev": true,
- "requires": {
- "boom": "2.10.1"
- }
- },
- "dashdash": {
- "version": "1.14.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
+ "optional": true
},
"debug": {
- "version": "2.6.8",
+ "version": "2.6.9",
"bundled": true,
"dev": true,
"optional": true,
@@ -4836,16 +6076,11 @@
}
},
"deep-extend": {
- "version": "0.4.2",
+ "version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true
},
- "delayed-stream": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true
- },
"delegates": {
"version": "1.0.0",
"bundled": true,
@@ -4853,74 +6088,25 @@
"optional": true
},
"detect-libc": {
- "version": "1.0.2",
+ "version": "1.0.3",
"bundled": true,
"dev": true,
"optional": true
},
- "ecc-jsbn": {
- "version": "0.1.1",
+ "fs-minipass": {
+ "version": "1.2.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "jsbn": "0.1.1"
- }
- },
- "extend": {
- "version": "3.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "extsprintf": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true
- },
- "forever-agent": {
- "version": "0.6.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "form-data": {
- "version": "2.1.4",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.15"
+ "minipass": "2.2.4"
}
},
"fs.realpath": {
"version": "1.0.0",
"bundled": true,
- "dev": true
- },
- "fstream": {
- "version": "1.0.11",
- "bundled": true,
"dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.1"
- }
- },
- "fstream-ignore": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "fstream": "1.0.11",
- "inherits": "2.0.3",
- "minimatch": "3.0.4"
- }
+ "optional": true
},
"gauge": {
"version": "2.7.4",
@@ -4928,7 +6114,7 @@
"dev": true,
"optional": true,
"requires": {
- "aproba": "1.1.1",
+ "aproba": "1.2.0",
"console-control-strings": "1.1.0",
"has-unicode": "2.0.1",
"object-assign": "4.1.1",
@@ -4938,27 +6124,11 @@
"wide-align": "1.1.2"
}
},
- "getpass": {
- "version": "0.1.7",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
"glob": {
"version": "7.1.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
@@ -4968,64 +6138,35 @@
"path-is-absolute": "1.0.1"
}
},
- "graceful-fs": {
- "version": "4.1.11",
- "bundled": true,
- "dev": true
- },
- "har-schema": {
- "version": "1.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "har-validator": {
- "version": "4.2.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
- }
- },
"has-unicode": {
"version": "2.0.1",
"bundled": true,
"dev": true,
"optional": true
},
- "hawk": {
- "version": "3.1.3",
- "bundled": true,
- "dev": true,
- "requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
- }
- },
- "hoek": {
- "version": "2.16.3",
- "bundled": true,
- "dev": true
- },
- "http-signature": {
- "version": "1.1.1",
+ "iconv-lite": {
+ "version": "0.4.21",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.0",
- "sshpk": "1.13.0"
+ "safer-buffer": "2.1.2"
+ }
+ },
+ "ignore-walk": {
+ "version": "3.0.1",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minimatch": "3.0.4"
}
},
"inflight": {
"version": "1.0.6",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
@@ -5037,7 +6178,7 @@
"dev": true
},
"ini": {
- "version": "1.3.4",
+ "version": "1.3.5",
"bundled": true,
"dev": true,
"optional": true
@@ -5050,104 +6191,18 @@
"number-is-nan": "1.0.1"
}
},
- "is-typedarray": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"isarray": {
"version": "1.0.0",
"bundled": true,
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "bundled": true,
"dev": true,
"optional": true
},
- "jodid25519": {
- "version": "1.0.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsbn": "0.1.1"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-schema": {
- "version": "0.2.3",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "json-stable-stringify": {
- "version": "1.0.1",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "jsonify": "0.0.0"
- }
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsonify": {
- "version": "0.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "jsprim": {
- "version": "1.4.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.0.2",
- "json-schema": "0.2.3",
- "verror": "1.3.6"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
- "mime-db": {
- "version": "1.27.0",
- "bundled": true,
- "dev": true
- },
- "mime-types": {
- "version": "2.1.15",
- "bundled": true,
- "dev": true,
- "requires": {
- "mime-db": "1.27.0"
- }
- },
"minimatch": {
"version": "3.0.4",
"bundled": true,
"dev": true,
"requires": {
- "brace-expansion": "1.1.7"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -5155,6 +6210,24 @@
"bundled": true,
"dev": true
},
+ "minipass": {
+ "version": "2.2.4",
+ "bundled": true,
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
+ }
+ },
+ "minizlib": {
+ "version": "1.1.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "minipass": "2.2.4"
+ }
+ },
"mkdirp": {
"version": "0.5.1",
"bundled": true,
@@ -5169,23 +6242,33 @@
"dev": true,
"optional": true
},
- "node-pre-gyp": {
- "version": "0.6.39",
+ "needle": {
+ "version": "2.2.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "1.0.2",
- "hawk": "3.1.3",
+ "debug": "2.6.9",
+ "iconv-lite": "0.4.21",
+ "sax": "1.2.4"
+ }
+ },
+ "node-pre-gyp": {
+ "version": "0.10.0",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "detect-libc": "1.0.3",
"mkdirp": "0.5.1",
+ "needle": "2.2.0",
"nopt": "4.0.1",
- "npmlog": "4.1.0",
- "rc": "1.2.1",
- "request": "2.81.0",
- "rimraf": "2.6.1",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "tar-pack": "3.4.0"
+ "npm-packlist": "1.1.10",
+ "npmlog": "4.1.2",
+ "rc": "1.2.7",
+ "rimraf": "2.6.2",
+ "semver": "5.5.0",
+ "tar": "4.4.1"
}
},
"nopt": {
@@ -5194,12 +6277,28 @@
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1.1.0",
- "osenv": "0.1.4"
+ "abbrev": "1.1.1",
+ "osenv": "0.1.5"
+ }
+ },
+ "npm-bundled": {
+ "version": "1.0.3",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "npm-packlist": {
+ "version": "1.1.10",
+ "bundled": true,
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ignore-walk": "3.0.1",
+ "npm-bundled": "1.0.3"
}
},
"npmlog": {
- "version": "4.1.0",
+ "version": "4.1.2",
"bundled": true,
"dev": true,
"optional": true,
@@ -5215,12 +6314,6 @@
"bundled": true,
"dev": true
},
- "oauth-sign": {
- "version": "0.8.2",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"object-assign": {
"version": "4.1.1",
"bundled": true,
@@ -5248,7 +6341,7 @@
"optional": true
},
"osenv": {
- "version": "0.1.4",
+ "version": "0.1.5",
"bundled": true,
"dev": true,
"optional": true,
@@ -5260,39 +6353,23 @@
"path-is-absolute": {
"version": "1.0.1",
"bundled": true,
- "dev": true
- },
- "performance-now": {
- "version": "0.2.0",
- "bundled": true,
"dev": true,
"optional": true
},
"process-nextick-args": {
- "version": "1.0.7",
- "bundled": true,
- "dev": true
- },
- "punycode": {
- "version": "1.4.1",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "qs": {
- "version": "6.4.0",
+ "version": "2.0.0",
"bundled": true,
"dev": true,
"optional": true
},
"rc": {
- "version": "1.2.1",
+ "version": "1.2.7",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "0.4.2",
- "ini": "1.3.4",
+ "deep-extend": "0.5.1",
+ "ini": "1.3.5",
"minimist": "1.2.0",
"strip-json-comments": "2.0.1"
},
@@ -5306,64 +6383,48 @@
}
},
"readable-stream": {
- "version": "2.2.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "buffer-shims": "1.0.0",
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "1.0.1",
- "util-deprecate": "1.0.2"
- }
- },
- "request": {
- "version": "2.81.0",
+ "version": "2.3.6",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.6.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.5",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.15",
- "oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
- "safe-buffer": "5.0.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
- "tunnel-agent": "0.6.0",
- "uuid": "3.0.1"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.1.1",
+ "util-deprecate": "1.0.2"
}
},
"rimraf": {
- "version": "2.6.1",
+ "version": "2.6.2",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
"glob": "7.1.2"
}
},
"safe-buffer": {
- "version": "5.0.1",
+ "version": "5.1.1",
"bundled": true,
"dev": true
},
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "bundled": true,
+ "dev": true,
+ "optional": true
+ },
"semver": {
- "version": "5.3.0",
+ "version": "5.5.0",
"bundled": true,
"dev": true,
"optional": true
@@ -5380,39 +6441,6 @@
"dev": true,
"optional": true
},
- "sntp": {
- "version": "1.0.9",
- "bundled": true,
- "dev": true,
- "requires": {
- "hoek": "2.16.3"
- }
- },
- "sshpk": {
- "version": "1.13.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.1",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jodid25519": "1.0.2",
- "jsbn": "0.1.1",
- "tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
- }
- },
"string-width": {
"version": "1.0.2",
"bundled": true,
@@ -5424,19 +6452,14 @@
}
},
"string_decoder": {
- "version": "1.0.1",
+ "version": "1.1.1",
"bundled": true,
"dev": true,
+ "optional": true,
"requires": {
- "safe-buffer": "5.0.1"
+ "safe-buffer": "5.1.1"
}
},
- "stringstream": {
- "version": "0.0.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
@@ -5452,81 +6475,26 @@
"optional": true
},
"tar": {
- "version": "2.2.1",
- "bundled": true,
- "dev": true,
- "requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "tar-pack": {
- "version": "3.4.0",
+ "version": "4.4.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
- "debug": "2.6.8",
- "fstream": "1.0.11",
- "fstream-ignore": "1.0.5",
- "once": "1.4.0",
- "readable-stream": "2.2.9",
- "rimraf": "2.6.1",
- "tar": "2.2.1",
- "uid-number": "0.0.6"
+ "chownr": "1.0.1",
+ "fs-minipass": "1.2.5",
+ "minipass": "2.2.4",
+ "minizlib": "1.1.0",
+ "mkdirp": "0.5.1",
+ "safe-buffer": "5.1.1",
+ "yallist": "3.0.2"
}
},
- "tough-cookie": {
- "version": "2.3.2",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "punycode": "1.4.1"
- }
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "safe-buffer": "5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "bundled": true,
- "dev": true,
- "optional": true
- },
- "uid-number": {
- "version": "0.0.6",
- "bundled": true,
- "dev": true,
- "optional": true
- },
"util-deprecate": {
"version": "1.0.2",
"bundled": true,
- "dev": true
- },
- "uuid": {
- "version": "3.0.1",
- "bundled": true,
"dev": true,
"optional": true
},
- "verror": {
- "version": "1.3.6",
- "bundled": true,
- "dev": true,
- "optional": true,
- "requires": {
- "extsprintf": "1.0.2"
- }
- },
"wide-align": {
"version": "1.1.2",
"bundled": true,
@@ -5540,9 +6508,26 @@
"version": "1.0.2",
"bundled": true,
"dev": true
+ },
+ "yallist": {
+ "version": "3.0.2",
+ "bundled": true,
+ "dev": true
}
}
},
+ "fstream": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "inherits": "2.0.3",
+ "mkdirp": "0.5.1",
+ "rimraf": "2.6.2"
+ }
+ },
"ftp": {
"version": "0.3.10",
"resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
@@ -5591,6 +6576,77 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
+ "gauge": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "dev": true,
+ "requires": {
+ "aproba": "1.2.0",
+ "console-control-strings": "1.1.0",
+ "has-unicode": "2.0.1",
+ "object-assign": "4.1.1",
+ "signal-exit": "3.0.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wide-align": "1.1.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "gaze": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
+ "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
+ "dev": true,
+ "requires": {
+ "globule": "1.2.0"
+ }
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "1.0.2"
+ }
+ },
"get-caller-file": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
@@ -5616,17 +6672,28 @@
"dev": true
},
"get-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz",
- "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz",
+ "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==",
"dev": true,
"requires": {
"data-uri-to-buffer": "1.2.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"extend": "3.0.1",
"file-uri-to-path": "1.0.0",
"ftp": "0.3.10",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"get-value": {
@@ -5642,20 +6709,13 @@
"dev": true,
"requires": {
"assert-plus": "1.0.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
@@ -5684,10 +6744,16 @@
"is-glob": "2.0.1"
}
},
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
"globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "version": "11.5.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.5.0.tgz",
+ "integrity": "sha512-hYyf+kI8dm3nORsiiXUQigOU62hDLfJ9G01uyGMxhc6BKsircrUhC4uJPQPUSuq2GrTmiiEt7ewxlMdBewfmKQ==",
"dev": true
},
"globby": {
@@ -5701,6 +6767,25 @@
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "globule": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
+ "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.10",
+ "minimatch": "3.0.4"
}
},
"graceful-fs": {
@@ -5716,9 +6801,9 @@
"dev": true
},
"growl": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
- "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
"dev": true
},
"handle-thing": {
@@ -5727,56 +6812,6 @@
"integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=",
"dev": true
},
- "handlebars": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz",
- "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=",
- "dev": true,
- "requires": {
- "async": "1.5.2",
- "optimist": "0.6.1",
- "source-map": "0.4.4",
- "uglify-js": "2.8.29"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
- },
- "source-map": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
- "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
- "dev": true,
- "requires": {
- "amdefine": "1.0.1"
- }
- },
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "dev": true,
- "optional": true,
- "requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
- "optional": true
- }
- }
- }
- }
- },
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -5789,7 +6824,7 @@
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"dev": true,
"requires": {
- "ajv": "5.3.0",
+ "ajv": "5.5.2",
"har-schema": "2.0.0"
}
},
@@ -5811,33 +6846,22 @@
"ansi-regex": "2.1.1"
}
},
- "has-binary": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz",
- "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- }
- }
- },
- "has-cors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
- "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true
},
"has-value": {
@@ -5884,7 +6908,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -5895,18 +6919,19 @@
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
},
"hash-base": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz",
- "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=",
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
"dev": true,
"requires": {
- "inherits": "2.0.3"
+ "inherits": "2.0.3",
+ "safe-buffer": "5.1.2"
}
},
"hash-sum": {
@@ -5922,17 +6947,7 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "minimalistic-assert": "1.0.0"
- }
- },
- "hasha": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
- "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
- "dev": true,
- "requires": {
- "is-stream": "1.1.0",
- "pinkie-promise": "2.0.1"
+ "minimalistic-assert": "1.0.1"
}
},
"hawk": {
@@ -5943,7 +6958,7 @@
"requires": {
"boom": "4.3.1",
"cryptiles": "3.1.2",
- "hoek": "4.2.0",
+ "hoek": "4.2.1",
"sntp": "2.1.0"
}
},
@@ -5965,30 +6980,20 @@
"dev": true,
"requires": {
"hash.js": "1.1.3",
- "minimalistic-assert": "1.0.0",
+ "minimalistic-assert": "1.0.1",
"minimalistic-crypto-utils": "1.0.1"
}
},
"hoek": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
- "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+ "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
"dev": true
},
- "home-or-tmp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
- "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
- }
- },
"hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz",
+ "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==",
"dev": true
},
"hpack.js": {
@@ -5998,9 +7003,9 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "obuf": "1.1.1",
- "readable-stream": "2.3.3",
- "wbuf": "1.7.2"
+ "obuf": "1.1.2",
+ "readable-stream": "2.3.6",
+ "wbuf": "1.7.3"
}
},
"html-comment-regex": {
@@ -6009,6 +7014,15 @@
"integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=",
"dev": true
},
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "dev": true,
+ "requires": {
+ "whatwg-encoding": "1.0.3"
+ }
+ },
"html-entities": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
@@ -6016,48 +7030,50 @@
"dev": true
},
"html-minifier": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.3.tgz",
- "integrity": "sha512-iKRzQQDuTCsq0Ultbi/mfJJnR0D3AdZKTq966Gsp92xkmAPCV4Xi08qhJ0Dl3ZAWemSgJ7qZK+UsZc0gFqK6wg==",
+ "version": "3.5.15",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz",
+ "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==",
"dev": true,
"requires": {
"camel-case": "3.0.0",
- "clean-css": "4.1.8",
- "commander": "2.11.0",
+ "clean-css": "4.1.11",
+ "commander": "2.15.1",
"he": "1.1.1",
- "ncname": "1.0.0",
"param-case": "2.1.1",
"relateurl": "0.2.7",
- "uglify-js": "3.0.28"
+ "uglify-js": "3.3.25"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ }
}
},
"html-webpack-plugin": {
- "version": "2.30.1",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz",
- "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=",
"dev": true,
"requires": {
- "bluebird": "3.5.0",
- "html-minifier": "3.5.3",
+ "html-minifier": "3.5.15",
"loader-utils": "0.2.17",
- "lodash": "4.17.4",
+ "lodash": "4.17.10",
"pretty-error": "2.1.1",
- "toposort": "1.0.3"
+ "tapable": "1.0.0",
+ "toposort": "1.0.7",
+ "util.promisify": "1.0.0"
},
"dependencies": {
- "bluebird": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
- "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
- "dev": true
- },
"loader-utils": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
"integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
"dev": true,
"requires": {
- "big.js": "3.1.3",
+ "big.js": "3.2.0",
"emojis-list": "2.1.0",
"json5": "0.5.1",
"object-assign": "4.1.1"
@@ -6066,17 +7082,50 @@
}
},
"htmlparser2": {
- "version": "3.9.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
- "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
+ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
"dev": true,
"requires": {
"domelementtype": "1.3.0",
- "domhandler": "2.4.1",
- "domutils": "1.6.2",
- "entities": "1.1.1",
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "domhandler": "2.1.0",
+ "domutils": "1.1.6",
+ "readable-stream": "1.0.34"
+ },
+ "dependencies": {
+ "domutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
+ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.3.0"
+ }
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "0.0.1",
+ "string_decoder": "0.10.31"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ }
}
},
"http-deceiver": {
@@ -6086,30 +7135,31 @@
"dev": true
},
"http-errors": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
- "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"dev": true,
"requires": {
- "depd": "1.1.1",
+ "depd": "1.1.2",
"inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": "1.3.1"
+ "setprototypeof": "1.1.0",
+ "statuses": "1.5.0"
}
},
"http-parser-js": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
- "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.12.tgz",
+ "integrity": "sha1-uc+/Sizybw/DSxDKFImid3HjR08=",
"dev": true
},
"http-proxy": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz",
- "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
+ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
"dev": true,
"requires": {
- "eventemitter3": "1.2.0",
+ "eventemitter3": "3.1.0",
+ "follow-redirects": "1.4.1",
"requires-port": "1.0.0"
}
},
@@ -6120,22 +7170,263 @@
"dev": true,
"requires": {
"agent-base": "2.1.1",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"extend": "3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"http-proxy-middleware": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
- "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz",
+ "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==",
"dev": true,
"requires": {
- "http-proxy": "1.16.2",
- "is-glob": "3.1.0",
- "lodash": "4.17.4",
- "micromatch": "2.3.11"
+ "http-proxy": "1.17.0",
+ "is-glob": "4.0.0",
+ "lodash": "4.17.10",
+ "micromatch": "3.1.10"
},
"dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "1.1.0",
+ "array-unique": "0.3.2",
+ "extend-shallow": "2.0.1",
+ "fill-range": "4.0.0",
+ "isobject": "3.0.1",
+ "repeat-element": "1.1.2",
+ "snapdragon": "0.8.2",
+ "snapdragon-node": "2.1.1",
+ "split-string": "3.1.0",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "define-property": "0.2.5",
+ "extend-shallow": "2.0.1",
+ "posix-character-classes": "0.1.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "0.1.6"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "requires": {
+ "array-unique": "0.3.2",
+ "define-property": "1.0.0",
+ "expand-brackets": "2.1.4",
+ "extend-shallow": "2.0.1",
+ "fragment-cache": "0.2.1",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "requires": {
+ "extend-shallow": "2.0.1",
+ "is-number": "3.0.0",
+ "repeat-string": "1.6.1",
+ "to-regex-range": "2.1.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -6143,13 +7434,66 @@
"dev": true
},
"is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
"dev": true,
"requires": {
"is-extglob": "2.1.1"
}
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "requires": {
+ "arr-diff": "4.0.0",
+ "array-unique": "0.3.2",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
+ "fragment-cache": "0.2.1",
+ "kind-of": "6.0.2",
+ "nanomatch": "1.2.9",
+ "object.pick": "1.3.0",
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ }
}
}
},
@@ -6161,7 +7505,7 @@
"requires": {
"assert-plus": "1.0.0",
"jsprim": "1.4.1",
- "sshpk": "1.13.1"
+ "sshpk": "1.14.1"
}
},
"https-browserify": {
@@ -6177,15 +7521,29 @@
"dev": true,
"requires": {
"agent-base": "2.1.1",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"extend": "3.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"iconv-lite": {
- "version": "0.4.15",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
- "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=",
- "dev": true
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": "2.1.2"
+ }
},
"icss-replace-symbols": {
"version": "1.1.0",
@@ -6199,13 +7557,13 @@
"integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
"dev": true,
"requires": {
- "postcss": "6.0.16"
+ "postcss": "6.0.22"
}
},
"ieee754": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz",
- "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=",
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz",
+ "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==",
"dev": true
},
"iferr": {
@@ -6215,9 +7573,9 @@
"dev": true
},
"ignore": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
- "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==",
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz",
+ "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==",
"dev": true
},
"import-local": {
@@ -6236,6 +7594,12 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
+ "in-publish": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "dev": true
+ },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
@@ -6261,6 +7625,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
@@ -6269,16 +7634,8 @@
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "inject-loader": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/inject-loader/-/inject-loader-3.0.1.tgz",
- "integrity": "sha512-0Kd4NqMJUhknG4ECiJ/mgyHJBpfBBWZ3IKHl2BLNQiFtMO7/xiv9mmHl7mGvE0iKrBeQAZdMcQP3sMXZN0cqeg==",
- "dev": true,
- "requires": {
- "babel-core": "6.26.0"
- }
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
},
"inquirer": {
"version": "3.3.0",
@@ -6286,13 +7643,13 @@
"integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
- "ansi-escapes": "3.0.0",
- "chalk": "2.3.0",
+ "ansi-escapes": "3.1.0",
+ "chalk": "2.4.1",
"cli-cursor": "2.1.0",
"cli-width": "2.2.0",
- "external-editor": "2.1.0",
+ "external-editor": "2.2.0",
"figures": "2.0.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.10",
"mute-stream": "0.0.7",
"run-async": "2.3.0",
"rx-lite": "4.0.8",
@@ -6300,23 +7657,6 @@
"string-width": "2.1.1",
"strip-ansi": "4.0.0",
"through": "2.3.8"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
}
},
"internal-ip": {
@@ -6329,15 +7669,15 @@
}
},
"interpret": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
- "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
"dev": true
},
"invariant": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
- "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"dev": true,
"requires": {
"loose-envify": "1.3.1"
@@ -6356,9 +7696,9 @@
"dev": true
},
"ipaddr.js": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
- "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
+ "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=",
"dev": true
},
"is-absolute": {
@@ -6386,20 +7726,12 @@
"dev": true
},
"is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- }
+ "kind-of": "3.2.2"
}
},
"is-arrayish": {
@@ -6414,13 +7746,13 @@
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"dev": true,
"requires": {
- "binary-extensions": "1.10.0"
+ "binary-extensions": "1.11.0"
}
},
"is-buffer": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
- "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
"is-builtin-module": {
@@ -6438,21 +7770,22 @@
"integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
"dev": true
},
- "is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "is-ci": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
+ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
- "dev": true
- }
+ "ci-info": "1.1.3"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
}
},
"is-date-object": {
@@ -6462,20 +7795,20 @@
"dev": true
},
"is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "1.0.0",
- "is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
},
"dependencies": {
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"dev": true
}
}
@@ -6537,6 +7870,25 @@
"is-extglob": "1.0.0"
}
},
+ "is-my-ip-valid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
+ "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==",
+ "dev": true
+ },
+ "is-my-json-valid": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz",
+ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==",
+ "dev": true,
+ "requires": {
+ "generate-function": "2.0.0",
+ "generate-object-property": "1.2.0",
+ "is-my-ip-valid": "1.0.0",
+ "jsonpointer": "4.0.1",
+ "xtend": "4.0.1"
+ }
+ },
"is-number": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
@@ -6546,23 +7898,26 @@
"kind-of": "3.2.2"
}
},
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
"is-odd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz",
- "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz",
+ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==",
"dev": true,
"requires": {
- "is-number": "3.0.0"
+ "is-number": "4.0.0"
},
"dependencies": {
"is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- }
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
}
}
},
@@ -6573,9 +7928,9 @@
"dev": true
},
"is-path-in-cwd": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
- "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
+ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
"dev": true,
"requires": {
"is-path-inside": "1.0.1"
@@ -6631,6 +7986,12 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
"dev": true
},
+ "is-property": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
"is-regex": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
@@ -6650,9 +8011,9 @@
}
},
"is-resolvable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.1.tgz",
- "integrity": "sha512-y5CXYbzvB3jTnWAZH1Nl7ykUWb6T3BcTs56HUruwBf8MhF56n1HWqhDWnVFo8GHrUPDgvUUNVhrc2U8W7iqz5g==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
"dev": true
},
"is-stream": {
@@ -6698,9 +8059,9 @@
"dev": true
},
"is-windows": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz",
- "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"dev": true
},
"is-wsl": {
@@ -6715,11 +8076,22 @@
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true
},
- "isbinaryfile": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz",
- "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=",
- "dev": true
+ "isemail": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.1.2.tgz",
+ "integrity": "sha512-zfRhJn9rFSGhzU5tGZqepRSAj3+g6oTOHxMGGriWNJZzyLPUK8H7VHpqKntegnW8KLyGA9zwuNaCoopl40LTpg==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true
+ }
+ }
},
"isexe": {
"version": "2.0.0",
@@ -6742,74 +8114,27 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
- "istanbul": {
- "version": "0.4.5",
- "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
- "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
+ "javascript-stringify": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz",
+ "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=",
+ "dev": true
+ },
+ "joi": {
+ "version": "11.4.0",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz",
+ "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==",
"dev": true,
"requires": {
- "abbrev": "1.0.9",
- "async": "1.5.2",
- "escodegen": "1.8.1",
- "esprima": "2.7.3",
- "glob": "5.0.15",
- "handlebars": "4.0.10",
- "js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "once": "1.4.0",
- "resolve": "1.1.7",
- "supports-color": "3.2.3",
- "which": "1.3.0",
- "wordwrap": "1.0.0"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
- },
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
- }
- },
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
- },
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true,
- "requires": {
- "has-flag": "1.0.0"
- }
- }
+ "hoek": "4.2.1",
+ "isemail": "3.1.2",
+ "topo": "2.0.2"
}
},
"js-base64": {
- "version": "2.1.9",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
- "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=",
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz",
+ "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==",
"dev": true
},
"js-tokens": {
@@ -6819,13 +8144,21 @@
"dev": true
},
"js-yaml": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
- "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
+ "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"dev": true,
"requires": {
- "argparse": "1.0.9",
- "esprima": "2.7.3"
+ "argparse": "1.0.10",
+ "esprima": "4.0.0"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ }
}
},
"jsbn": {
@@ -6835,16 +8168,56 @@
"dev": true,
"optional": true
},
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "jsdom": {
+ "version": "11.10.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.10.0.tgz",
+ "integrity": "sha512-x5No5FpJgBg3j5aBwA8ka6eGuS5IxbC8FOkmyccKvObtFT0bDMict/LOxINZsZGZSfGdNomLZ/qRV9Bpq/GIBA==",
+ "dev": true,
+ "requires": {
+ "abab": "1.0.4",
+ "acorn": "5.5.3",
+ "acorn-globals": "4.1.0",
+ "array-equal": "1.0.0",
+ "cssom": "0.3.2",
+ "cssstyle": "0.2.37",
+ "data-urls": "1.0.0",
+ "domexception": "1.0.1",
+ "escodegen": "1.9.1",
+ "html-encoding-sniffer": "1.0.2",
+ "left-pad": "1.3.0",
+ "nwmatcher": "1.4.4",
+ "parse5": "4.0.0",
+ "pn": "1.1.0",
+ "request": "2.86.0",
+ "request-promise-native": "1.0.5",
+ "sax": "1.2.4",
+ "symbol-tree": "3.2.2",
+ "tough-cookie": "2.3.4",
+ "w3c-hr-time": "1.0.1",
+ "webidl-conversions": "4.0.2",
+ "whatwg-encoding": "1.0.3",
+ "whatwg-mimetype": "2.1.0",
+ "whatwg-url": "6.4.1",
+ "ws": "4.1.0",
+ "xml-name-validator": "3.0.0"
+ }
+ },
+ "jsdom-global": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz",
+ "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=",
"dev": true
},
- "json-loader": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
- "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "jsesc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz",
+ "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=",
+ "dev": true
+ },
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
"dev": true
},
"json-schema": {
@@ -6893,9 +8266,9 @@
"dev": true
},
"jsonfile": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
- "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11"
@@ -6907,6 +8280,12 @@
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
"dev": true
},
+ "jsonpointer": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -6917,194 +8296,6 @@
"extsprintf": "1.3.0",
"json-schema": "0.2.3",
"verror": "1.10.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
- }
- },
- "just-extend": {
- "version": "1.1.27",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz",
- "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==",
- "dev": true
- },
- "jwt-decode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz",
- "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk="
- },
- "karma": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz",
- "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==",
- "dev": true,
- "requires": {
- "bluebird": "3.5.0",
- "body-parser": "1.17.2",
- "chokidar": "1.7.0",
- "colors": "1.1.2",
- "combine-lists": "1.0.1",
- "connect": "3.6.3",
- "core-js": "2.5.1",
- "di": "0.0.1",
- "dom-serialize": "2.2.1",
- "expand-braces": "0.1.2",
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "http-proxy": "1.16.2",
- "isbinaryfile": "3.0.2",
- "lodash": "3.10.1",
- "log4js": "0.6.38",
- "mime": "1.3.4",
- "minimatch": "3.0.4",
- "optimist": "0.6.1",
- "qjobs": "1.1.5",
- "range-parser": "1.2.0",
- "rimraf": "2.6.2",
- "safe-buffer": "5.1.1",
- "socket.io": "1.7.3",
- "source-map": "0.5.7",
- "tmp": "0.0.31",
- "useragent": "2.2.1"
- },
- "dependencies": {
- "bluebird": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
- "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=",
- "dev": true
- },
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
- }
- }
- },
- "karma-coverage": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-1.1.1.tgz",
- "integrity": "sha1-Wv+LOc9plNwi3kyENix2ABtjfPY=",
- "dev": true,
- "requires": {
- "dateformat": "1.0.12",
- "istanbul": "0.4.5",
- "lodash": "3.10.1",
- "minimatch": "3.0.4",
- "source-map": "0.5.7"
- },
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
- }
- }
- },
- "karma-mocha": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-1.3.0.tgz",
- "integrity": "sha1-7qrH/8DiAetjxGdEDStpx883eL8=",
- "dev": true,
- "requires": {
- "minimist": "1.2.0"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
- }
- },
- "karma-phantomjs-launcher": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz",
- "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=",
- "dev": true,
- "requires": {
- "lodash": "4.17.4",
- "phantomjs-prebuilt": "2.1.16"
- }
- },
- "karma-phantomjs-shim": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/karma-phantomjs-shim/-/karma-phantomjs-shim-1.5.0.tgz",
- "integrity": "sha512-t0h1x7btXROaGElv36TLpuoWqTnVZ/f+GJHH/qVerjbX6AENoM5brQoB9ISO3hQ6zO1k9rDSRLrY5ZZb83ANdg==",
- "dev": true
- },
- "karma-sinon-chai": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/karma-sinon-chai/-/karma-sinon-chai-1.3.3.tgz",
- "integrity": "sha1-pZfltKE2n+ez19dsCe0gYaOOdH8=",
- "dev": true,
- "requires": {
- "lolex": "1.6.0"
- }
- },
- "karma-sourcemap-loader": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz",
- "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11"
- }
- },
- "karma-spec-reporter": {
- "version": "0.0.31",
- "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.31.tgz",
- "integrity": "sha1-SDDccUihVcfXoYbmMjOaDYD63sM=",
- "dev": true,
- "requires": {
- "colors": "1.1.2"
- }
- },
- "karma-webpack": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-2.0.9.tgz",
- "integrity": "sha512-F1j3IG/XhiMzcunAXbWXH95uizjzr3WdTzmVWlta8xqxcCtAu9FByCb4sccIMxaVFAefpgnUW9KlCo0oLvIX6A==",
- "dev": true,
- "requires": {
- "async": "0.9.2",
- "loader-utils": "0.2.17",
- "lodash": "3.10.1",
- "source-map": "0.5.7",
- "webpack-dev-middleware": "1.12.2"
- },
- "dependencies": {
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
- "dev": true
- },
- "loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
- "dev": true,
- "requires": {
- "big.js": "3.1.3",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
- }
- },
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "dev": true
- }
}
},
"katex": {
@@ -7133,33 +8324,37 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
- }
- },
- "klaw": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
- "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11"
+ "is-buffer": "1.1.6"
}
},
"last-call-webpack-plugin": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.2.tgz",
- "integrity": "sha512-CZc+m2xZm51J8qSwdODeiiNeqh8CYkKEq6Rw8IkE4i/4yqf2cJhjQPsA6BtAV970ePRNhwEOXhy2U5xc5Jwh9Q==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
+ "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==",
"dev": true,
"requires": {
- "lodash": "4.17.4",
- "webpack-sources": "1.0.1"
+ "lodash": "4.17.10",
+ "webpack-sources": "1.1.0"
}
},
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true
+ "launch-editor": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz",
+ "integrity": "sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "shell-quote": "1.6.1"
+ }
+ },
+ "launch-editor-middleware": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz",
+ "integrity": "sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg==",
+ "dev": true,
+ "requires": {
+ "launch-editor": "2.2.1"
+ }
},
"lcid": {
"version": "1.0.0",
@@ -7170,6 +8365,18 @@
"invert-kv": "1.0.0"
}
},
+ "leb": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz",
+ "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=",
+ "dev": true
+ },
+ "left-pad": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
+ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==",
+ "dev": true
+ },
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -7185,20 +8392,31 @@
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-1.2.4.tgz",
"integrity": "sha1-B3NSbDF8j9E71TTuHRgP+Iq/iBo=",
"requires": {
- "uc.micro": "1.0.3"
+ "uc.micro": "1.0.5"
}
},
"load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
+ },
+ "dependencies": {
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.2"
+ }
+ }
}
},
"loader-fs-cache": {
@@ -7264,7 +8482,7 @@
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"dev": true,
"requires": {
- "big.js": "3.1.3",
+ "big.js": "3.2.0",
"emojis-list": "2.1.0",
"json5": "0.5.1"
}
@@ -7280,9 +8498,10 @@
}
},
"lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ "version": "4.17.10",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
+ "dev": true
},
"lodash._arraycopy": {
"version": "3.0.0",
@@ -7338,12 +8557,6 @@
"integrity": "sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI=",
"dev": true
},
- "lodash._baseget": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/lodash._baseget/-/lodash._baseget-3.7.2.tgz",
- "integrity": "sha1-G2rh1frPPCVTI1ChPBGXy4u2dPQ=",
- "dev": true
- },
"lodash._bindcallback": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
@@ -7362,20 +8575,23 @@
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
"dev": true
},
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
+ "dev": true
+ },
"lodash._stack": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/lodash._stack/-/lodash._stack-4.1.3.tgz",
"integrity": "sha1-dRqnbBuWSwR+dtFPxyoJP8teLdA=",
"dev": true
},
- "lodash._topath": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/lodash._topath/-/lodash._topath-3.8.1.tgz",
- "integrity": "sha1-PsXiYGAU9MuX91X+aRTt2L/ADqw=",
- "dev": true,
- "requires": {
- "lodash.isarray": "3.0.4"
- }
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
+ "dev": true
},
"lodash.camelcase": {
"version": "4.3.0",
@@ -7394,10 +8610,10 @@
"lodash._isiterateecall": "3.0.9"
}
},
- "lodash.cond": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
- "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true
},
"lodash.create": {
@@ -7421,7 +8637,7 @@
"lodash._stack": "4.1.3",
"lodash.isplainobject": "4.0.6",
"lodash.keysin": "4.2.0",
- "lodash.mergewith": "4.6.0",
+ "lodash.mergewith": "4.6.1",
"lodash.rest": "4.0.5"
},
"dependencies": {
@@ -7434,14 +8650,10 @@
}
},
"lodash.get": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-3.7.0.tgz",
- "integrity": "sha1-POaK4skWg7KBzFOUEoMDy/deaR8=",
- "dev": true,
- "requires": {
- "lodash._baseget": "3.7.2",
- "lodash._topath": "3.8.1"
- }
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
},
"lodash.isarguments": {
"version": "3.1.0",
@@ -7485,9 +8697,9 @@
"dev": true
},
"lodash.mergewith": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
- "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
+ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
"dev": true
},
"lodash.rest": {
@@ -7496,6 +8708,37 @@
"integrity": "sha1-lU73UEkmIDjJbR/Jiyj9r58Hcqo=",
"dev": true
},
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
+ "dev": true
+ },
+ "lodash.tail": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+ "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=",
+ "dev": true
+ },
+ "lodash.template": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
+ "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0",
+ "lodash.templatesettings": "4.1.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
+ "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "dev": true,
+ "requires": {
+ "lodash._reinterpolate": "3.0.0"
+ }
+ },
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -7503,99 +8746,34 @@
"dev": true
},
"log-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
- "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
"dev": true,
"requires": {
- "chalk": "1.1.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
- "dev": true
- }
- }
- },
- "log4js": {
- "version": "0.6.38",
- "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz",
- "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=",
- "dev": true,
- "requires": {
- "readable-stream": "1.0.34",
- "semver": "4.3.6"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
- "dev": true
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
+ "chalk": "2.4.1"
}
},
"loglevel": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.0.tgz",
- "integrity": "sha1-rgyqVhERSYxboTcj1vtjHSQAOTQ=",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
+ "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=",
"dev": true
},
- "lolex": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz",
- "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=",
- "dev": true
+ "loglevelnext": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz",
+ "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==",
+ "dev": true,
+ "requires": {
+ "es6-symbol": "3.1.1",
+ "object.assign": "4.1.0"
+ }
},
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "long": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
+ "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=",
"dev": true
},
"loose-envify": {
@@ -7624,14 +8802,10 @@
"dev": true
},
"lru-cache": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
- "dev": true,
- "requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
- }
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz",
+ "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=",
+ "dev": true
},
"macaddress": {
"version": "0.2.8",
@@ -7640,12 +8814,12 @@
"dev": true
},
"make-dir": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
- "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dev": true,
"requires": {
- "pify": "2.3.0"
+ "pify": "3.0.0"
}
},
"map-cache": {
@@ -7674,11 +8848,11 @@
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-6.1.1.tgz",
"integrity": "sha1-ztA39Ec+6fUVOsQU933IPJG6knw=",
"requires": {
- "argparse": "1.0.9",
+ "argparse": "1.0.10",
"entities": "1.1.1",
"linkify-it": "1.2.4",
"mdurl": "1.0.1",
- "uc.micro": "1.0.3"
+ "uc.micro": "1.0.5"
}
},
"markdown-it-abbr": {
@@ -7730,9 +8904,9 @@
"integrity": "sha1-y5yf+RpSVawI8/09YyhuFd8KH8M="
},
"markdown-it-task-lists": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.0.1.tgz",
- "integrity": "sha1-qc5/Vc3p9F4PymKQcdEdP9WmlBY="
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz",
+ "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA=="
},
"markdown-it-toc-and-anchor": {
"version": "4.1.2",
@@ -7750,22 +8924,28 @@
}
}
},
- "marker-clusterer-plus": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/marker-clusterer-plus/-/marker-clusterer-plus-2.1.4.tgz",
- "integrity": "sha1-+O/3TVmdqzt9Dj/tUmTqDnBPXWc="
- },
"match-at": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/match-at/-/match-at-0.1.1.tgz",
"integrity": "sha512-h4Yd392z9mST+dzc+yjuybOGFNOZjmXIPKWjxBd1Bb23r4SmDOsk2NYCU2BMUBGbSpZqwVsZYNq26QS3xfaT3Q=="
},
+ "material-design-icons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz",
+ "integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78="
+ },
"math-expression-evaluator": {
"version": "1.2.17",
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
"integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
"dev": true
},
+ "math-random": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
+ "dev": true
+ },
"md5.js": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
@@ -7774,18 +8954,6 @@
"requires": {
"hash-base": "3.0.4",
"inherits": "2.0.3"
- },
- "dependencies": {
- "hash-base": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
- "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
- "dev": true,
- "requires": {
- "inherits": "2.0.3",
- "safe-buffer": "5.1.1"
- }
- }
}
},
"mdurl": {
@@ -7805,14 +8973,18 @@
"integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "mimic-fn": "1.1.0"
+ "mimic-fn": "1.2.0"
}
},
"memory-fs": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
- "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
- "dev": true
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.7",
+ "readable-stream": "2.3.6"
+ }
},
"meow": {
"version": "3.7.0",
@@ -7846,6 +9018,29 @@
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
"dev": true
},
+ "merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "requires": {
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "merge2": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz",
+ "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==",
+ "dev": true
+ },
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -7884,36 +9079,46 @@
}
},
"mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
- "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz",
+ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==",
"dev": true
},
"mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
"dev": true
},
"mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
+ "version": "2.1.18",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
"dev": true,
"requires": {
- "mime-db": "1.30.0"
+ "mime-db": "1.33.0"
}
},
"mimic-fn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
- "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
+ "mini-css-extract-plugin": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.0.tgz",
+ "integrity": "sha512-2Zik6PhUZ/MbiboG6SDS9UTPL4XXy4qnyGjSdCIWRrr8xb6PwLtHE+AYOjkXJWdF0OG8vo/yrJ8CgS5WbMpzIg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "webpack-sources": "1.1.0"
+ }
+ },
"minimalistic-assert": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz",
- "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
"dev": true
},
"minimalistic-crypto-utils": {
@@ -7926,8 +9131,9 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
"requires": {
- "brace-expansion": "1.1.8"
+ "brace-expansion": "1.1.11"
}
},
"minimist": {
@@ -7937,27 +9143,27 @@
"dev": true
},
"mississippi": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz",
- "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
"dev": true,
"requires": {
"concat-stream": "1.6.0",
- "duplexify": "3.5.1",
- "end-of-stream": "1.4.0",
- "flush-write-stream": "1.0.2",
+ "duplexify": "3.6.0",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
"from2": "2.3.0",
"parallel-transform": "1.1.0",
- "pump": "1.0.3",
- "pumpify": "1.3.5",
+ "pump": "2.0.1",
+ "pumpify": "1.5.1",
"stream-each": "1.2.2",
"through2": "2.0.3"
}
},
"mixin-deep": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz",
- "integrity": "sha512-dgaCvoh6i1nosAUBKb0l0pfJ78K8+S9fluyIR2YvAeUD/QuMahnFnF3xYty5eYXMjhGSsB0DsW6A0uAZyetoAg==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
"dev": true,
"requires": {
"for-in": "1.0.2",
@@ -7975,6 +9181,24 @@
}
}
},
+ "mixin-object": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+ "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=",
+ "dev": true,
+ "requires": {
+ "for-in": "0.1.8",
+ "is-extendable": "0.1.1"
+ },
+ "dependencies": {
+ "for-in": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+ "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=",
+ "dev": true
+ }
+ }
+ },
"mkdirp": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
@@ -7991,30 +9215,61 @@
"dev": true
},
"mocha": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
- "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.1.1.tgz",
+ "integrity": "sha512-kKKs/H1KrMMQIEsWNxGmb4/BGsmj0dkeyotEvbrAuQ01FcWRLssUNXCEUZk6SZtyJBi6EE7SL0zDDtItw1rGhw==",
"dev": true,
"requires": {
- "browser-stdout": "1.3.0",
+ "browser-stdout": "1.3.1",
"commander": "2.11.0",
"debug": "3.1.0",
- "diff": "3.3.1",
+ "diff": "3.5.0",
"escape-string-regexp": "1.0.5",
"glob": "7.1.2",
"growl": "1.10.3",
"he": "1.1.1",
+ "minimatch": "3.0.4",
"mkdirp": "0.5.1",
"supports-color": "4.4.0"
},
"dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
+ "dev": true
+ },
+ "diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "has-flag": "2.0.0"
}
}
}
@@ -8038,15 +9293,6 @@
"supports-color": "3.1.2"
},
"dependencies": {
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "dev": true,
- "requires": {
- "graceful-readlink": "1.0.1"
- }
- },
"debug": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
@@ -8056,12 +9302,6 @@
"ms": "0.7.1"
}
},
- "diff": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
- "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
- "dev": true
- },
"glob": {
"version": "7.0.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz",
@@ -8076,12 +9316,6 @@
"path-is-absolute": "1.0.1"
}
},
- "growl": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
- "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
- "dev": true
- },
"has-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
@@ -8105,10 +9339,87 @@
}
}
},
+ "mocha-webpack": {
+ "version": "2.0.0-beta.0",
+ "resolved": "https://registry.npmjs.org/mocha-webpack/-/mocha-webpack-2.0.0-beta.0.tgz",
+ "integrity": "sha512-2ezbW0h5cYWr874F/hzytQCqINxk+GVelMY4xWTSHwwH1LrPAOzjlUljZ+/PhpaP6QeqYbL5x5vK/bnaXqkfEw==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "chalk": "2.4.1",
+ "chokidar": "2.0.3",
+ "glob-parent": "3.1.0",
+ "globby": "7.1.1",
+ "interpret": "1.1.0",
+ "is-glob": "4.0.0",
+ "loader-utils": "1.1.0",
+ "lodash": "4.17.10",
+ "memory-fs": "0.4.1",
+ "nodent-runtime": "3.2.1",
+ "normalize-path": "2.1.1",
+ "progress": "2.0.0",
+ "source-map-support": "0.5.6",
+ "strip-ansi": "4.0.0",
+ "toposort": "1.0.7",
+ "yargs": "11.0.0"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "requires": {
+ "is-glob": "3.1.0",
+ "path-dirname": "1.0.2"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "dir-glob": "2.0.0",
+ "glob": "7.1.2",
+ "ignore": "3.3.8",
+ "pify": "3.0.0",
+ "slash": "1.0.0"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "2.1.1"
+ }
+ }
+ }
+ },
"moment": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz",
- "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg=="
+ "version": "2.22.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz",
+ "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ=="
},
"move-concurrently": {
"version": "1.0.1",
@@ -8131,13 +9442,13 @@
"dev": true
},
"multicast-dns": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.1.tgz",
- "integrity": "sha512-uV3/ckdsffHx9IrGQrx613mturMdMqQ06WTq+C09NsStJ9iNG6RcUWgPKs1Rfjy+idZT6tfQoXEusGNnEZhT3w==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
"dev": true,
"requires": {
- "dns-packet": "1.2.2",
- "thunky": "0.1.0"
+ "dns-packet": "1.3.1",
+ "thunky": "1.0.2"
}
},
"multicast-dns-service-types": {
@@ -8153,29 +9464,29 @@
"dev": true
},
"nan": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
- "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=",
- "dev": true,
- "optional": true
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
+ "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==",
+ "dev": true
},
"nanomatch": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz",
- "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==",
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz",
+ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==",
"dev": true,
"requires": {
"arr-diff": "4.0.0",
"array-unique": "0.3.2",
- "define-property": "1.0.0",
- "extend-shallow": "2.0.1",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
"fragment-cache": "0.2.1",
- "is-odd": "1.0.0",
- "kind-of": "5.1.0",
+ "is-odd": "2.0.0",
+ "is-windows": "1.0.2",
+ "kind-of": "6.0.2",
"object.pick": "1.3.0",
- "regex-not": "1.0.0",
- "snapdragon": "0.8.1",
- "to-regex": "3.0.1"
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
"arr-diff": {
@@ -8191,9 +9502,9 @@
"dev": true
},
"kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
}
}
@@ -8204,36 +9515,45 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
- "ncname": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
- "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
- "dev": true,
- "requires": {
- "xml-char-classes": "1.0.0"
- }
- },
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
"dev": true
},
+ "neo-async": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
+ "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==",
+ "dev": true
+ },
"netmask": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz",
"integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=",
"dev": true
},
+ "next-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
+ "dev": true
+ },
"ngeohash": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/ngeohash/-/ngeohash-0.6.0.tgz",
"integrity": "sha1-MpcT6ec9HxpG2SqrC5StuUUz9oc="
},
+ "nice-try": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz",
+ "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==",
+ "dev": true
+ },
"nightwatch": {
- "version": "0.9.19",
- "resolved": "https://registry.npmjs.org/nightwatch/-/nightwatch-0.9.19.tgz",
- "integrity": "sha1-S9l1cnPTC4RfBIR6mLcb6bt8Szs=",
+ "version": "0.9.21",
+ "resolved": "https://registry.npmjs.org/nightwatch/-/nightwatch-0.9.21.tgz",
+ "integrity": "sha1-nnlKdRS0/V9GYC02jlBRUjKrnpA=",
"dev": true,
"requires": {
"chai-nightwatch": "0.1.1",
@@ -8254,62 +9574,55 @@
"integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
"dev": true,
"requires": {
- "brace-expansion": "1.1.8"
- }
- },
- "q": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
- "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
- "dev": true
- }
- }
- },
- "nise": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz",
- "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==",
- "dev": true,
- "requires": {
- "formatio": "1.2.0",
- "just-extend": "1.1.27",
- "lolex": "1.6.0",
- "path-to-regexp": "1.7.0",
- "text-encoding": "0.6.4"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "path-to-regexp": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
- "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
+ "brace-expansion": "1.1.11"
}
}
}
},
"no-case": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz",
- "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"dev": true,
"requires": {
"lower-case": "1.1.4"
}
},
"node-forge": {
- "version": "0.6.33",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz",
- "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=",
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
+ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==",
"dev": true
},
+ "node-gyp": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
+ "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
+ "dev": true,
+ "requires": {
+ "fstream": "1.0.11",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "nopt": "3.0.6",
+ "npmlog": "4.1.2",
+ "osenv": "0.1.5",
+ "request": "2.86.0",
+ "rimraf": "2.6.2",
+ "semver": "5.3.0",
+ "tar": "2.2.1",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
"node-libs-browser": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
@@ -8322,7 +9635,7 @@
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
"crypto-browserify": "3.12.0",
- "domain-browser": "1.1.7",
+ "domain-browser": "1.2.0",
"events": "1.1.1",
"https-browserify": "1.0.0",
"os-browserify": "0.3.0",
@@ -8330,24 +9643,250 @@
"process": "0.11.10",
"punycode": "1.4.1",
"querystring-es3": "0.2.1",
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"stream-browserify": "2.0.1",
- "stream-http": "2.7.2",
- "string_decoder": "1.0.3",
- "timers-browserify": "2.0.4",
+ "stream-http": "2.8.2",
+ "string_decoder": "1.1.1",
+ "timers-browserify": "2.0.10",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
"vm-browserify": "0.0.4"
}
},
+ "node-sass": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz",
+ "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==",
+ "dev": true,
+ "requires": {
+ "async-foreach": "0.1.3",
+ "chalk": "1.1.3",
+ "cross-spawn": "3.0.1",
+ "gaze": "1.1.2",
+ "get-stdin": "4.0.1",
+ "glob": "7.1.2",
+ "in-publish": "2.0.0",
+ "lodash.assign": "4.2.0",
+ "lodash.clonedeep": "4.5.0",
+ "lodash.mergewith": "4.6.1",
+ "meow": "3.7.0",
+ "mkdirp": "0.5.1",
+ "nan": "2.10.0",
+ "node-gyp": "3.6.2",
+ "npmlog": "4.1.2",
+ "request": "2.79.0",
+ "sass-graph": "2.2.4",
+ "stdout-stream": "1.4.0",
+ "true-case-path": "1.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=",
+ "dev": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=",
+ "dev": true
+ },
+ "boom": {
+ "version": "2.10.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
+ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "cross-spawn": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "which": "1.3.0"
+ }
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1"
+ }
+ },
+ "form-data": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
+ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "dev": true,
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "2.1.18"
+ }
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "commander": "2.9.0",
+ "is-my-json-valid": "2.17.2",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "dev": true,
+ "requires": {
+ "boom": "2.10.1",
+ "cryptiles": "2.0.5",
+ "hoek": "2.16.3",
+ "sntp": "1.0.9"
+ }
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
+ "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
+ "dev": true
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "dev": true,
+ "requires": {
+ "assert-plus": "0.2.0",
+ "jsprim": "1.4.1",
+ "sshpk": "1.14.1"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "qs": {
+ "version": "6.3.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
+ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=",
+ "dev": true
+ },
+ "request": {
+ "version": "2.79.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=",
+ "dev": true,
+ "requires": {
+ "aws-sign2": "0.6.0",
+ "aws4": "1.7.0",
+ "caseless": "0.11.0",
+ "combined-stream": "1.0.6",
+ "extend": "3.0.1",
+ "forever-agent": "0.6.1",
+ "form-data": "2.1.4",
+ "har-validator": "2.0.6",
+ "hawk": "3.1.3",
+ "http-signature": "1.1.1",
+ "is-typedarray": "1.0.0",
+ "isstream": "0.1.2",
+ "json-stringify-safe": "5.0.1",
+ "mime-types": "2.1.18",
+ "oauth-sign": "0.8.2",
+ "qs": "6.3.2",
+ "stringstream": "0.0.6",
+ "tough-cookie": "2.3.4",
+ "tunnel-agent": "0.4.3",
+ "uuid": "3.2.1"
+ }
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "dev": true,
+ "requires": {
+ "hoek": "2.16.3"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
+ "dev": true
+ }
+ }
+ },
+ "nodent-runtime": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/nodent-runtime/-/nodent-runtime-3.2.1.tgz",
+ "integrity": "sha512-7Ws63oC+215smeKJQCxzrK21VFVlCFBkwl0MOObt0HOpVQXs3u483sAmtkF33nNqZ5rSOQjB76fgyPBmAUrtCA==",
+ "dev": true
+ },
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
"requires": {
- "abbrev": "1.0.9"
+ "abbrev": "1.1.1"
}
},
"normalize-package-data": {
@@ -8356,10 +9895,10 @@
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"dev": true,
"requires": {
- "hosted-git-info": "2.5.0",
+ "hosted-git-info": "2.6.0",
"is-builtin-module": "1.0.0",
- "semver": "5.4.1",
- "validate-npm-package-license": "3.0.1"
+ "semver": "5.5.0",
+ "validate-npm-package-license": "3.0.3"
}
},
"normalize-path": {
@@ -8398,6 +9937,18 @@
"path-key": "2.0.1"
}
},
+ "npmlog": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "dev": true,
+ "requires": {
+ "are-we-there-yet": "1.1.4",
+ "console-control-strings": "1.1.0",
+ "gauge": "2.7.4",
+ "set-blocking": "2.0.0"
+ }
+ },
"nth-check": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
@@ -8419,6 +9970,12 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"dev": true
},
+ "nwmatcher": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+ "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+ "dev": true
+ },
"oauth-sign": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
@@ -8431,12 +9988,6 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "object-component": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
- "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
- "dev": true
- },
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -8456,50 +10007,13 @@
"requires": {
"is-descriptor": "0.1.6"
}
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
}
}
},
"object-hash": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.1.8.tgz",
- "integrity": "sha1-KKZZz5h9lqTavnhgKJ87UybEoDw=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz",
+ "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==",
"dev": true
},
"object-keys": {
@@ -8525,6 +10039,28 @@
}
}
},
+ "object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "function-bind": "1.1.1",
+ "has-symbols": "1.0.0",
+ "object-keys": "1.0.11"
+ }
+ },
+ "object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.11.0"
+ }
+ },
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
@@ -8553,9 +10089,9 @@
}
},
"obuf": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz",
- "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
"dev": true
},
"on-finished": {
@@ -8577,6 +10113,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
"requires": {
"wrappy": "1.0.2"
}
@@ -8587,13 +10124,13 @@
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
- "mimic-fn": "1.1.0"
+ "mimic-fn": "1.2.0"
}
},
"opn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz",
- "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz",
+ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==",
"dev": true,
"requires": {
"is-wsl": "1.1.0"
@@ -8607,24 +10144,16 @@
"requires": {
"minimist": "0.0.8",
"wordwrap": "0.0.3"
- },
- "dependencies": {
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
- "dev": true
- }
}
},
"optimize-css-assets-webpack-plugin": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-3.2.0.tgz",
- "integrity": "sha512-Fjn7wyyadPAriuH2DHamDQw5B8GohEWbroBkKoPeP+vSF2PIAPI7WDihi8WieMRb/At4q7Ea7zTKaMDuSoIAAg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-4.0.1.tgz",
+ "integrity": "sha512-2pIcqmQDEBvVKt5Bt+Nj8wMNvotfaklYRTd/zRJakZradPS0/xhj1hM1mdydyA4utygTmjPZCuOa+Dl5TjtxWw==",
"dev": true,
"requires": {
"cssnano": "3.10.0",
- "last-call-webpack-plugin": "2.1.2"
+ "last-call-webpack-plugin": "3.0.0"
}
},
"optionator": {
@@ -8639,100 +10168,37 @@
"prelude-ls": "1.1.2",
"type-check": "0.3.2",
"wordwrap": "1.0.0"
- }
- },
- "options": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
- "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=",
- "dev": true
- },
- "ora": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/ora/-/ora-1.3.0.tgz",
- "integrity": "sha1-gAeN0rkqk0r2ajrXKluRBpTt5Ro=",
- "dev": true,
- "requires": {
- "chalk": "1.1.3",
- "cli-cursor": "2.1.0",
- "cli-spinners": "1.0.0",
- "log-symbols": "1.0.2"
},
"dependencies": {
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
- },
- "chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "dev": true,
- "requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "cli-cursor": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
- "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "dev": true,
- "requires": {
- "restore-cursor": "2.0.0"
- }
- },
- "onetime": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
- "requires": {
- "mimic-fn": "1.1.0"
- }
- },
- "restore-cursor": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
- "requires": {
- "onetime": "2.0.1",
- "signal-exit": "3.0.2"
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
}
}
},
+ "ora": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz",
+ "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "cli-cursor": "2.1.0",
+ "cli-spinners": "1.3.1",
+ "log-symbols": "2.2.0",
+ "strip-ansi": "4.0.0",
+ "wcwidth": "1.0.1"
+ }
+ },
"original": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz",
- "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz",
+ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==",
"dev": true,
"requires": {
- "url-parse": "1.0.5"
- },
- "dependencies": {
- "url-parse": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz",
- "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=",
- "dev": true,
- "requires": {
- "querystringify": "0.0.4",
- "requires-port": "1.0.0"
- }
- }
+ "url-parse": "1.4.0"
}
},
"os-browserify": {
@@ -8756,6 +10222,44 @@
"execa": "0.7.0",
"lcid": "1.0.0",
"mem": "1.1.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ }
}
},
"os-tmpdir": {
@@ -8764,6 +10268,16 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
+ "osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "dev": true,
+ "requires": {
+ "os-homedir": "1.0.2",
+ "os-tmpdir": "1.0.2"
+ }
+ },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@@ -8771,10 +10285,13 @@
"dev": true
},
"p-limit": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
- "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
- "dev": true
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
+ "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+ "dev": true,
+ "requires": {
+ "p-try": "1.0.0"
+ }
},
"p-locate": {
"version": "2.0.0",
@@ -8782,7 +10299,7 @@
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"dev": true,
"requires": {
- "p-limit": "1.1.0"
+ "p-limit": "1.2.0"
}
},
"p-map": {
@@ -8791,6 +10308,12 @@
"integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==",
"dev": true
},
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
"pac-proxy-agent": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz",
@@ -8798,14 +10321,25 @@
"dev": true,
"requires": {
"agent-base": "2.1.1",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"extend": "3.0.1",
- "get-uri": "2.0.1",
+ "get-uri": "2.0.2",
"http-proxy-agent": "1.0.0",
"https-proxy-agent": "1.0.0",
"pac-resolver": "2.0.0",
- "raw-body": "2.2.0",
+ "raw-body": "2.3.3",
"socks-proxy-agent": "2.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"pac-resolver": {
@@ -8843,7 +10377,7 @@
"requires": {
"cyclist": "0.2.2",
"inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
}
},
"param-case": {
@@ -8852,20 +10386,20 @@
"integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"dev": true,
"requires": {
- "no-case": "2.3.1"
+ "no-case": "2.3.2"
}
},
"parse-asn1": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
- "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
"dev": true,
"requires": {
- "asn1.js": "4.9.2",
- "browserify-aes": "1.1.1",
- "create-hash": "1.1.3",
+ "asn1.js": "4.10.1",
+ "browserify-aes": "1.2.0",
+ "create-hash": "1.2.0",
"evp_bytestokey": "1.0.3",
- "pbkdf2": "3.0.14"
+ "pbkdf2": "3.0.16"
}
},
"parse-glob": {
@@ -8889,37 +10423,16 @@
"error-ex": "1.3.1"
}
},
- "parsejson": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz",
- "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "parseqs": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
- "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
- },
- "parseuri": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
- "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
- "dev": true,
- "requires": {
- "better-assert": "1.0.2"
- }
+ "parse5": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+ "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==",
+ "dev": true
},
"parseurl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
"dev": true
},
"pascalcase": {
@@ -8949,7 +10462,8 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
},
"path-is-inside": {
"version": "1.0.2",
@@ -8976,14 +10490,12 @@
"dev": true
},
"path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "pify": "3.0.0"
}
},
"pathval": {
@@ -8993,16 +10505,16 @@
"dev": true
},
"pbkdf2": {
- "version": "3.0.14",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
- "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==",
+ "version": "3.0.16",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
+ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==",
"dev": true,
"requires": {
- "create-hash": "1.1.3",
- "create-hmac": "1.1.6",
- "ripemd160": "2.0.1",
- "safe-buffer": "5.1.1",
- "sha.js": "2.4.9"
+ "create-hash": "1.2.0",
+ "create-hmac": "1.1.7",
+ "ripemd160": "2.0.2",
+ "safe-buffer": "5.1.2",
+ "sha.js": "2.4.11"
}
},
"pend": {
@@ -9017,46 +10529,10 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
- "phantomjs-prebuilt": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
- "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
- "dev": true,
- "requires": {
- "es6-promise": "4.1.1",
- "extract-zip": "1.6.5",
- "fs-extra": "1.0.0",
- "hasha": "2.2.0",
- "kew": "0.7.0",
- "progress": "1.1.8",
- "request": "2.83.0",
- "request-progress": "2.0.1",
- "which": "1.3.0"
- },
- "dependencies": {
- "fs-extra": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
- "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "jsonfile": "2.4.0",
- "klaw": "1.3.1"
- }
- },
- "progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
- "dev": true
- }
- }
- },
"pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
"dev": true
},
"pinkie": {
@@ -9089,6 +10565,12 @@
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
+ "pn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
+ "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
+ "dev": true
+ },
"portfinder": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
@@ -9096,15 +10578,18 @@
"dev": true,
"requires": {
"async": "1.5.2",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"mkdirp": "0.5.1"
},
"dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
- "dev": true
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
}
}
},
@@ -9115,14 +10600,14 @@
"dev": true
},
"postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
+ "version": "6.0.22",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz",
+ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==",
"dev": true,
"requires": {
- "chalk": "2.3.0",
+ "chalk": "2.4.1",
"source-map": "0.6.1",
- "supports-color": "5.1.0"
+ "supports-color": "5.4.0"
},
"dependencies": {
"source-map": {
@@ -9130,15 +10615,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
- },
- "supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
}
}
},
@@ -9148,7 +10624,7 @@
"integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-message-helpers": "2.0.0",
"reduce-css-calc": "1.3.0"
},
@@ -9187,17 +10663,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9216,7 +10701,7 @@
"dev": true,
"requires": {
"colormin": "1.1.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -9254,17 +10739,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9282,7 +10776,7 @@
"integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -9320,17 +10814,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9348,7 +10851,7 @@
"integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -9385,17 +10888,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9413,7 +10925,7 @@
"integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -9450,17 +10962,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9478,7 +10999,7 @@
"integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -9515,17 +11036,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9543,7 +11073,7 @@
"integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -9580,17 +11110,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9608,7 +11147,7 @@
"integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
},
"dependencies": {
@@ -9646,17 +11185,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9674,7 +11222,7 @@
"integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqid": "4.1.1"
},
"dependencies": {
@@ -9712,17 +11260,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9766,6 +11323,18 @@
"object-assign": "4.1.1"
}
},
+ "postcss-loader": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz",
+ "integrity": "sha512-pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "postcss": "6.0.22",
+ "postcss-load-config": "1.2.0",
+ "schema-utils": "0.4.5"
+ }
+ },
"postcss-merge-idents": {
"version": "2.1.7",
"resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
@@ -9773,7 +11342,7 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -9811,17 +11380,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9839,7 +11417,7 @@
"integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -9876,17 +11454,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9906,9 +11493,9 @@
"requires": {
"browserslist": "1.7.7",
"caniuse-api": "1.6.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3",
- "vendors": "1.0.1"
+ "vendors": "1.0.2"
},
"dependencies": {
"ansi-styles": {
@@ -9923,8 +11510,8 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000726",
- "electron-to-chromium": "1.3.21"
+ "caniuse-db": "1.0.30000843",
+ "electron-to-chromium": "1.3.47"
}
},
"chalk": {
@@ -9955,17 +11542,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -9990,7 +11586,7 @@
"dev": true,
"requires": {
"object-assign": "4.1.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10028,17 +11624,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10056,7 +11661,7 @@
"integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10094,17 +11699,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10123,7 +11737,7 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"uniqs": "2.0.0"
},
@@ -10162,17 +11776,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10192,7 +11815,7 @@
"requires": {
"alphanum-sort": "1.0.2",
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-selector-parser": "2.2.3"
},
"dependencies": {
@@ -10230,17 +11853,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10253,12 +11885,12 @@
}
},
"postcss-modules-extract-imports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
- "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
"dev": true,
"requires": {
- "postcss": "6.0.16"
+ "postcss": "6.0.22"
}
},
"postcss-modules-local-by-default": {
@@ -10268,7 +11900,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.16"
+ "postcss": "6.0.22"
}
},
"postcss-modules-scope": {
@@ -10278,7 +11910,7 @@
"dev": true,
"requires": {
"css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.16"
+ "postcss": "6.0.22"
}
},
"postcss-modules-values": {
@@ -10288,7 +11920,7 @@
"dev": true,
"requires": {
"icss-replace-symbols": "1.1.0",
- "postcss": "6.0.16"
+ "postcss": "6.0.22"
}
},
"postcss-normalize-charset": {
@@ -10297,7 +11929,7 @@
"integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -10334,17 +11966,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10364,7 +12005,7 @@
"requires": {
"is-absolute-url": "2.1.0",
"normalize-url": "1.9.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10402,17 +12043,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10430,7 +12080,7 @@
"integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10468,17 +12118,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10496,7 +12155,7 @@
"integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
"dev": true,
"requires": {
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10534,17 +12193,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10562,7 +12230,7 @@
"integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
"dev": true,
"requires": {
- "postcss": "5.2.17"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
@@ -10599,17 +12267,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10628,7 +12305,7 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
},
"dependencies": {
@@ -10666,17 +12343,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10706,7 +12392,7 @@
"dev": true,
"requires": {
"is-svg": "2.1.0",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"svgo": "0.7.2"
},
@@ -10745,17 +12431,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10774,7 +12469,7 @@
"dev": true,
"requires": {
"alphanum-sort": "1.0.2",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
},
"dependencies": {
@@ -10812,17 +12507,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10847,7 +12551,7 @@
"dev": true,
"requires": {
"has": "1.0.1",
- "postcss": "5.2.17",
+ "postcss": "5.2.18",
"uniqs": "2.0.0"
},
"dependencies": {
@@ -10885,17 +12589,26 @@
"dev": true
},
"postcss": {
- "version": "5.2.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
- "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.1.9",
+ "js-base64": "2.4.5",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
},
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -10907,6 +12620,15 @@
}
}
},
+ "preload-webpack-plugin": {
+ "version": "3.0.0-alpha.3",
+ "resolved": "https://registry.npmjs.org/preload-webpack-plugin/-/preload-webpack-plugin-3.0.0-alpha.3.tgz",
+ "integrity": "sha512-sl0xCvUfw6Qrd2WTo3NzavRFUaui4SknwxkubG6s5yQ1i1NLnnKrzJS5sYrhVZgxK+M9UsXMKUrF5hAYTnRZEw==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "7.0.0-beta.46"
+ }
+ },
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@@ -10926,9 +12648,15 @@
"dev": true
},
"prettier": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.9.2.tgz",
- "integrity": "sha512-piXx9N2WT8hWb7PBbX1glAuJVIkEyUV9F5fMXFINpZ0x3otVOFKKeGmeuiclFJlP/UrgTckyV606VjH2rNK4bw==",
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz",
+ "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=",
+ "dev": true
+ },
+ "pretty-bytes": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
"dev": true
},
"pretty-error": {
@@ -10942,9 +12670,9 @@
}
},
"private": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz",
- "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=",
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"dev": true
},
"process": {
@@ -10954,9 +12682,9 @@
"dev": true
},
"process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"dev": true
},
"progress": {
@@ -10972,13 +12700,13 @@
"dev": true
},
"proxy-addr": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
- "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
+ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
"dev": true,
"requires": {
"forwarded": "0.1.2",
- "ipaddr.js": "1.5.2"
+ "ipaddr.js": "1.6.0"
}
},
"proxy-agent": {
@@ -10988,7 +12716,7 @@
"dev": true,
"requires": {
"agent-base": "2.1.1",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"extend": "3.0.1",
"http-proxy-agent": "1.0.0",
"https-proxy-agent": "1.0.0",
@@ -10997,11 +12725,14 @@
"socks-proxy-agent": "2.1.1"
},
"dependencies": {
- "lru-cache": {
- "version": "2.6.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz",
- "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=",
- "dev": true
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
}
}
},
@@ -11018,37 +12749,37 @@
"dev": true
},
"public-encrypt": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
- "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
+ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
"dev": true,
"requires": {
"bn.js": "4.11.8",
"browserify-rsa": "4.0.1",
- "create-hash": "1.1.3",
- "parse-asn1": "5.1.0",
- "randombytes": "2.0.5"
+ "create-hash": "1.2.0",
+ "parse-asn1": "5.1.1",
+ "randombytes": "2.0.6"
}
},
"pump": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
- "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.0",
+ "end-of-stream": "1.4.1",
"once": "1.4.0"
}
},
"pumpify": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz",
- "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
"dev": true,
"requires": {
- "duplexify": "3.5.1",
+ "duplexify": "3.6.0",
"inherits": "2.0.3",
- "pump": "1.0.3"
+ "pump": "2.0.1"
}
},
"punycode": {
@@ -11058,21 +12789,15 @@
"dev": true
},
"q": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
- "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
- "dev": true
- },
- "qjobs": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz",
- "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
+ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
"dev": true
},
"qs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
"query-string": {
@@ -11098,69 +12823,53 @@
"dev": true
},
"querystringify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz",
- "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
+ "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==",
"dev": true
},
"randomatic": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
- "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
+ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
"dev": true,
"requires": {
- "is-number": "3.0.0",
- "kind-of": "4.0.0"
+ "is-number": "4.0.0",
+ "kind-of": "6.0.2",
+ "math-random": "1.0.1"
},
"dependencies": {
"is-number": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
- "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
},
"kind-of": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
- "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
}
}
},
"randombytes": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz",
- "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"randomfill": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz",
- "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
"dev": true,
"requires": {
- "randombytes": "2.0.5",
- "safe-buffer": "5.1.1"
+ "randombytes": "2.0.6",
+ "safe-buffer": "5.1.2"
}
},
"range-parser": {
@@ -11170,25 +12879,26 @@
"dev": true
},
"raw-body": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz",
- "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
+ "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
"dev": true,
"requires": {
- "bytes": "2.4.0",
- "iconv-lite": "0.4.15",
+ "bytes": "3.0.0",
+ "http-errors": "1.6.3",
+ "iconv-lite": "0.4.23",
"unpipe": "1.0.0"
}
},
"read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
"dev": true,
"requires": {
- "load-json-file": "1.1.0",
+ "load-json-file": "4.0.0",
"normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "path-type": "3.0.0"
}
},
"read-pkg-up": {
@@ -11211,6 +12921,19 @@
"pinkie-promise": "2.0.1"
}
},
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
"path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
@@ -11219,21 +12942,58 @@
"requires": {
"pinkie-promise": "2.0.1"
}
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
}
}
},
"readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"dev": true,
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
+ "process-nextick-args": "2.0.0",
+ "safe-buffer": "5.1.2",
+ "string_decoder": "1.1.1",
"util-deprecate": "1.0.2"
}
},
@@ -11245,19 +13005,10 @@
"requires": {
"graceful-fs": "4.1.11",
"minimatch": "3.0.4",
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"set-immediate-shim": "1.0.1"
}
},
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dev": true,
- "requires": {
- "resolve": "1.4.0"
- }
- },
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
@@ -11305,25 +13056,33 @@
}
},
"regenerate": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
- "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
"dev": true
},
- "regenerator-runtime": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
- "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A=="
- },
- "regenerator-transform": {
- "version": "0.10.1",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
- "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "regenerate-unicode-properties": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-6.0.0.tgz",
+ "integrity": "sha512-BvXxRS7RfVWxtm7vrq+0I0j7sqZ1zeSC+yzf5HS0qLnKcZPX541gFEGB39LvGuKHrkyKXrzXug+oC7xkM1Zovw==",
"dev": true,
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "private": "0.1.7"
+ "regenerate": "1.4.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.3.tgz",
+ "integrity": "sha512-y2uxO/6u+tVmtEDIKo+tLCtI0GcbQr0OreosKgCd7HP4VypGjtTrw79DezuwT+W5QX0YWuvpeBOgumrepwM1kA==",
+ "dev": true,
+ "requires": {
+ "private": "0.1.8"
}
},
"regex-cache": {
@@ -11336,35 +13095,50 @@
}
},
"regex-not": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz",
- "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dev": true,
"requires": {
- "extend-shallow": "2.0.1"
+ "extend-shallow": "3.0.2",
+ "safe-regex": "1.1.0"
}
},
+ "regexpp": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
+ "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==",
+ "dev": true
+ },
"regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.1.5.tgz",
+ "integrity": "sha512-3xo5pFze1F8oR4F9x3aFbdtdxAxQ9WBX6gXfLgeBt7KpDI0+oDF7WVntnhsPKqobU/GAYc2pmx+y3z0JI1+z3w==",
"dev": true,
"requires": {
- "regenerate": "1.3.2",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
+ "regenerate": "1.4.0",
+ "regenerate-unicode-properties": "6.0.0",
+ "regjsgen": "0.4.0",
+ "regjsparser": "0.3.0",
+ "unicode-match-property-ecmascript": "1.0.3",
+ "unicode-match-property-value-ecmascript": "1.0.1"
}
},
+ "register-service-worker": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.2.0.tgz",
+ "integrity": "sha512-/tcOB4bsMaJVyJiRcUQV9l0ZMw+/jESov20EGet3RcBI8JJhBmFMi2kCRSxcbdFeOqFFKORDpxhe1pU4YJ0Rhg=="
+ },
"regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz",
+ "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==",
"dev": true
},
"regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz",
+ "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==",
"dev": true,
"requires": {
"jsesc": "0.5.0"
@@ -11403,60 +13177,15 @@
"utila": "0.3.3"
},
"dependencies": {
- "domhandler": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
- "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "domelementtype": "1.3.0"
+ "ansi-regex": "2.1.1"
}
},
- "domutils": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
- "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
- "dev": true,
- "requires": {
- "domelementtype": "1.3.0"
- }
- },
- "htmlparser2": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
- "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
- "dev": true,
- "requires": {
- "domelementtype": "1.3.0",
- "domhandler": "2.1.0",
- "domutils": "1.1.6",
- "readable-stream": "1.0.34"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "dev": true,
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "0.0.1",
- "string_decoder": "0.10.31"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- },
"utila": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz",
@@ -11487,50 +13216,52 @@
}
},
"request": {
- "version": "2.83.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
- "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
+ "version": "2.86.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz",
+ "integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==",
"dev": true,
"requires": {
"aws-sign2": "0.7.0",
- "aws4": "1.6.0",
+ "aws4": "1.7.0",
"caseless": "0.12.0",
- "combined-stream": "1.0.5",
+ "combined-stream": "1.0.6",
"extend": "3.0.1",
"forever-agent": "0.6.1",
- "form-data": "2.3.1",
+ "form-data": "2.3.2",
"har-validator": "5.0.3",
"hawk": "6.0.2",
"http-signature": "1.2.0",
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
- "mime-types": "2.1.17",
+ "mime-types": "2.1.18",
"oauth-sign": "0.8.2",
"performance-now": "2.1.0",
- "qs": "6.5.1",
- "safe-buffer": "5.1.1",
- "stringstream": "0.0.5",
- "tough-cookie": "2.3.3",
+ "qs": "6.5.2",
+ "safe-buffer": "5.1.2",
+ "tough-cookie": "2.3.4",
"tunnel-agent": "0.6.0",
- "uuid": "3.1.0"
- },
- "dependencies": {
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
- "dev": true
- }
+ "uuid": "3.2.1"
}
},
- "request-progress": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
- "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
+ "request-promise-core": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz",
+ "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=",
"dev": true,
"requires": {
- "throttleit": "1.0.0"
+ "lodash": "4.17.10"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz",
+ "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=",
+ "dev": true,
+ "requires": {
+ "request-promise-core": "1.1.1",
+ "stealthy-require": "1.1.1",
+ "tough-cookie": "2.3.4"
}
},
"require-directory": {
@@ -11561,12 +13292,6 @@
"resolve-from": "1.0.1"
}
},
- "requireindex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
- "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI=",
- "dev": true
- },
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -11574,9 +13299,9 @@
"dev": true
},
"resolve": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz",
- "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
+ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
"dev": true,
"requires": {
"path-parse": "1.0.5"
@@ -11621,14 +13346,11 @@
"signal-exit": "3.0.2"
}
},
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "dev": true,
- "requires": {
- "align-text": "0.1.4"
- }
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true
},
"rimraf": {
"version": "2.6.2",
@@ -11640,12 +13362,12 @@
}
},
"ripemd160": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz",
- "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
"dev": true,
"requires": {
- "hash-base": "2.0.2",
+ "hash-base": "3.0.4",
"inherits": "2.0.3"
}
},
@@ -11683,17 +13405,144 @@
}
},
"safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"dev": true
},
- "samsam": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz",
- "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==",
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "requires": {
+ "ret": "0.1.15"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
+ "sass-graph": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
+ "dev": true,
+ "requires": {
+ "glob": "7.1.2",
+ "lodash": "4.17.10",
+ "scss-tokenizer": "0.2.3",
+ "yargs": "7.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "wrap-ansi": "2.1.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0",
+ "cliui": "3.2.0",
+ "decamelize": "1.2.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "1.4.0",
+ "read-pkg-up": "1.0.1",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "1.0.2",
+ "which-module": "1.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "5.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "dev": true,
+ "requires": {
+ "camelcase": "3.0.0"
+ }
+ }
+ }
+ },
+ "sass-loader": {
+ "version": "6.0.7",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz",
+ "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==",
+ "dev": true,
+ "requires": {
+ "clone-deep": "2.0.2",
+ "loader-utils": "1.1.0",
+ "lodash.tail": "4.1.1",
+ "neo-async": "2.5.1",
+ "pify": "3.0.0"
+ }
+ },
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
@@ -11701,24 +13550,58 @@
"dev": true
},
"schema-utils": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
- "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz",
+ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==",
"dev": true,
"requires": {
- "ajv": "5.2.3"
+ "ajv": "6.5.0",
+ "ajv-keywords": "3.2.0"
},
"dependencies": {
"ajv": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
- "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",
+ "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==",
"dev": true,
"requires": {
- "co": "4.6.0",
- "fast-deep-equal": "1.0.0",
+ "fast-deep-equal": "2.0.1",
+ "fast-json-stable-stringify": "2.0.0",
"json-schema-traverse": "0.3.1",
- "json-stable-stringify": "1.0.1"
+ "uri-js": "4.2.1"
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ }
+ }
+ },
+ "scss-tokenizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+ "dev": true,
+ "requires": {
+ "js-base64": "2.4.5",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "dev": true,
+ "requires": {
+ "amdefine": "1.0.1"
}
}
}
@@ -11730,45 +13613,45 @@
"dev": true
},
"selenium-server": {
- "version": "3.8.1",
- "resolved": "https://registry.npmjs.org/selenium-server/-/selenium-server-3.8.1.tgz",
- "integrity": "sha512-Ym66mGUUFN0YUceazRQldtxm6mMmcvFY/XAX/FI+wxAPF3692W/lu1HKB7AMb1MK0s+qWYjtiXrT4eFjtNIekg==",
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/selenium-server/-/selenium-server-3.12.0.tgz",
+ "integrity": "sha512-2qFVvAhn6JwsJ/UnYJjISJq7flIssDMVgaYLoh24SkZJ8YEdjSbMWEK5LTpN1stma5HPHSknaXBe38trf0NUww==",
"dev": true
},
"selfsigned": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz",
- "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",
+ "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==",
"dev": true,
"requires": {
- "node-forge": "0.6.33"
+ "node-forge": "0.7.5"
}
},
"semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
"dev": true
},
"send": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
- "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
+ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
"dev": true,
"requires": {
"debug": "2.6.9",
- "depd": "1.1.1",
+ "depd": "1.1.2",
"destroy": "1.0.4",
- "encodeurl": "1.0.1",
+ "encodeurl": "1.0.2",
"escape-html": "1.0.3",
"etag": "1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.6.2",
+ "http-errors": "1.6.3",
"mime": "1.4.1",
"ms": "2.0.0",
"on-finished": "2.3.0",
"range-parser": "1.2.0",
- "statuses": "1.3.1"
+ "statuses": "1.4.0"
},
"dependencies": {
"debug": {
@@ -11785,13 +13668,19 @@
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
"dev": true
+ },
+ "statuses": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
+ "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
+ "dev": true
}
}
},
"serialize-javascript": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz",
- "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz",
+ "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==",
"dev": true
},
"serve-index": {
@@ -11800,12 +13689,12 @@
"integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
"dev": true,
"requires": {
- "accepts": "1.3.4",
+ "accepts": "1.3.5",
"batch": "0.6.1",
"debug": "2.6.9",
"escape-html": "1.0.3",
- "http-errors": "1.6.2",
- "mime-types": "2.1.17",
+ "http-errors": "1.6.3",
+ "mime-types": "2.1.18",
"parseurl": "1.3.2"
},
"dependencies": {
@@ -11817,33 +13706,19 @@
"requires": {
"ms": "2.0.0"
}
- },
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
- "dev": true
}
}
},
"serve-static": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
- "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
+ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
"dev": true,
"requires": {
- "encodeurl": "1.0.1",
+ "encodeurl": "1.0.2",
"escape-html": "1.0.3",
"parseurl": "1.3.2",
- "send": "0.16.1"
- },
- "dependencies": {
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
- "dev": true
- }
+ "send": "0.16.2"
}
},
"set-blocking": {
@@ -11852,15 +13727,6 @@
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true
},
- "set-getter": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz",
- "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=",
- "dev": true,
- "requires": {
- "to-object-path": "0.3.0"
- }
- },
"set-immediate-shim": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
@@ -11877,6 +13743,17 @@
"is-extendable": "0.1.1",
"is-plain-object": "2.0.4",
"split-string": "3.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
}
},
"setimmediate": {
@@ -11886,19 +13763,38 @@
"dev": true
},
"setprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
- "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
"dev": true
},
"sha.js": {
- "version": "2.4.9",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz",
- "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==",
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dev": true,
"requires": {
"inherits": "2.0.3",
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "shallow-clone": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1",
+ "kind-of": "5.1.0",
+ "mixin-object": "2.0.1"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
}
},
"shebang-command": {
@@ -11916,15 +13812,16 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "shelljs": {
- "version": "0.7.8",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
- "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+ "shell-quote": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
+ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=",
"dev": true,
"requires": {
- "glob": "7.1.2",
- "interpret": "1.0.3",
- "rechoir": "0.6.2"
+ "array-filter": "0.0.1",
+ "array-map": "0.0.0",
+ "array-reduce": "0.0.0",
+ "jsonify": "0.0.0"
}
},
"signal-exit": {
@@ -11933,47 +13830,6 @@
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
- "sinon": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.4.tgz",
- "integrity": "sha512-ISJZDPf8RS2z4/LAgy1gIimAvF9zg9C9ClQhLTWYWm4HBZjo1WELXlVfkudjdYeN+GtQ2uVBe52m0npIV0gDow==",
- "dev": true,
- "requires": {
- "diff": "3.3.1",
- "formatio": "1.2.0",
- "lodash.get": "4.4.2",
- "lolex": "2.3.1",
- "nise": "1.2.0",
- "supports-color": "4.4.0",
- "type-detect": "4.0.5"
- },
- "dependencies": {
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
- "dev": true
- },
- "lolex": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz",
- "integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==",
- "dev": true
- },
- "type-detect": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz",
- "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==",
- "dev": true
- }
- }
- },
- "sinon-chai": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz",
- "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==",
- "dev": true
- },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -11996,21 +13852,30 @@
"dev": true
},
"snapdragon": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz",
- "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=",
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dev": true,
"requires": {
"base": "0.11.2",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"define-property": "0.2.5",
"extend-shallow": "2.0.1",
"map-cache": "0.2.2",
"source-map": "0.5.7",
- "source-map-resolve": "0.5.1",
- "use": "2.0.2"
+ "source-map-resolve": "0.5.2",
+ "use": "3.1.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
@@ -12020,62 +13885,14 @@
"is-descriptor": "0.1.6"
}
},
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
+ "is-extendable": "0.1.1"
}
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
}
}
},
@@ -12090,11 +13907,55 @@
"snapdragon-util": "3.0.1"
},
"dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "requires": {
+ "kind-of": "6.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
+ }
+ },
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
"integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
"dev": true
+ },
+ "kind-of": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "dev": true
}
}
},
@@ -12113,149 +13974,7 @@
"integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
"dev": true,
"requires": {
- "hoek": "4.2.0"
- }
- },
- "socket.io": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz",
- "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=",
- "dev": true,
- "requires": {
- "debug": "2.3.3",
- "engine.io": "1.8.3",
- "has-binary": "0.1.7",
- "object-assign": "4.1.0",
- "socket.io-adapter": "0.5.0",
- "socket.io-client": "1.7.3",
- "socket.io-parser": "2.3.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- },
- "object-assign": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz",
- "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=",
- "dev": true
- }
- }
- },
- "socket.io-adapter": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz",
- "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=",
- "dev": true,
- "requires": {
- "debug": "2.3.3",
- "socket.io-parser": "2.3.1"
- },
- "dependencies": {
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "socket.io-client": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz",
- "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=",
- "dev": true,
- "requires": {
- "backo2": "1.0.2",
- "component-bind": "1.0.0",
- "component-emitter": "1.2.1",
- "debug": "2.3.3",
- "engine.io-client": "1.8.3",
- "has-binary": "0.1.7",
- "indexof": "0.0.1",
- "object-component": "0.0.3",
- "parseuri": "0.0.5",
- "socket.io-parser": "2.3.1",
- "to-array": "0.1.4"
- },
- "dependencies": {
- "component-emitter": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
- "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
- "dev": true
- },
- "debug": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
- "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
- "dev": true,
- "requires": {
- "ms": "0.7.2"
- }
- },
- "ms": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
- "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
- "dev": true
- }
- }
- },
- "socket.io-parser": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz",
- "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=",
- "dev": true,
- "requires": {
- "component-emitter": "1.1.2",
- "debug": "2.2.0",
- "isarray": "0.0.1",
- "json3": "3.3.2"
- },
- "dependencies": {
- "debug": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
- "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
- "dev": true,
- "requires": {
- "ms": "0.7.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- },
- "ms": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
- "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
- "dev": true
- }
+ "hoek": "4.2.1"
}
},
"sockjs": {
@@ -12265,7 +13984,7 @@
"dev": true,
"requires": {
"faye-websocket": "0.10.0",
- "uuid": "3.1.0"
+ "uuid": "3.2.1"
}
},
"sockjs-client": {
@@ -12274,14 +13993,23 @@
"integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"eventsource": "0.1.6",
"faye-websocket": "0.11.1",
"inherits": "2.0.3",
"json3": "3.3.2",
- "url-parse": "1.2.0"
+ "url-parse": "1.4.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"faye-websocket": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
@@ -12344,12 +14072,12 @@
"dev": true
},
"source-map-resolve": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz",
- "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
"dev": true,
"requires": {
- "atob": "2.0.3",
+ "atob": "2.1.1",
"decode-uri-component": "0.2.0",
"resolve-url": "0.2.1",
"source-map-url": "0.4.0",
@@ -12357,12 +14085,21 @@
}
},
"source-map-support": {
- "version": "0.4.17",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.17.tgz",
- "integrity": "sha512-30c1Ch8FSjV0FwC253iftbbj0dU/OXoSg1LAEGZJUlGgjTNj6cu+DVqJWWIZJY5RXLWV4eFtR+4ouo0VIOYOTg==",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz",
+ "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==",
"dev": true,
"requires": {
- "source-map": "0.5.7"
+ "buffer-from": "1.0.0",
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
}
},
"source-map-url": {
@@ -12372,24 +14109,35 @@
"dev": true
},
"spdx-correct": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
+ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"dev": true,
"requires": {
- "spdx-license-ids": "1.2.2"
+ "spdx-expression-parse": "3.0.0",
+ "spdx-license-ids": "3.0.0"
}
},
- "spdx-expression-parse": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
+ "spdx-exceptions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
+ "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
"dev": true
},
+ "spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "2.1.0",
+ "spdx-license-ids": "3.0.0"
+ }
+ },
"spdx-license-ids": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
+ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
"dev": true
},
"spdy": {
@@ -12398,27 +14146,49 @@
"integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"handle-thing": "1.2.5",
"http-deceiver": "1.2.7",
- "safe-buffer": "5.1.1",
+ "safe-buffer": "5.1.2",
"select-hose": "2.0.0",
- "spdy-transport": "2.0.20"
+ "spdy-transport": "2.1.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"spdy-transport": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz",
- "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz",
+ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"detect-node": "2.0.3",
"hpack.js": "2.1.6",
- "obuf": "1.1.1",
- "readable-stream": "2.3.3",
- "safe-buffer": "5.1.1",
- "wbuf": "1.7.2"
+ "obuf": "1.1.2",
+ "readable-stream": "2.3.6",
+ "safe-buffer": "5.1.2",
+ "wbuf": "1.7.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ }
}
},
"split-string": {
@@ -12428,27 +14198,6 @@
"dev": true,
"requires": {
"extend-shallow": "3.0.2"
- },
- "dependencies": {
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dev": true,
- "requires": {
- "assign-symbols": "1.0.0",
- "is-extendable": "1.0.1"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dev": true,
- "requires": {
- "is-plain-object": "2.0.4"
- }
- }
}
},
"sprintf-js": {
@@ -12457,9 +14206,9 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
},
"sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
+ "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
"dev": true,
"requires": {
"asn1": "0.2.3",
@@ -12470,23 +14219,15 @@
"getpass": "0.1.7",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"ssri": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.0.0.tgz",
- "integrity": "sha512-728D4yoQcQm1ooZvSbywLkV1RjfITZXh0oWrhM/lnsx3nAHx7LsRGJWB/YyvoceAYRq98xqbstiN4JBv1/wNHg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"stackframe": {
@@ -12513,70 +14254,28 @@
"requires": {
"is-descriptor": "0.1.6"
}
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
}
}
},
"statuses": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stdout-stream": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
+ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.3.6"
+ }
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
"dev": true
},
"stream-browserify": {
@@ -12586,7 +14285,7 @@
"dev": true,
"requires": {
"inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "readable-stream": "2.3.6"
}
},
"stream-each": {
@@ -12595,19 +14294,19 @@
"integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.0",
+ "end-of-stream": "1.4.1",
"stream-shift": "1.0.0"
}
},
"stream-http": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
- "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==",
+ "version": "2.8.2",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz",
+ "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==",
"dev": true,
"requires": {
"builtin-status-codes": "3.0.0",
"inherits": "2.0.3",
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"to-arraybuffer": "1.0.1",
"xtend": "4.0.1"
}
@@ -12624,15 +14323,6 @@
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
"dev": true
},
- "string-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz",
- "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=",
- "dev": true,
- "requires": {
- "strip-ansi": "3.0.1"
- }
- },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
@@ -12641,6 +14331,52 @@
"requires": {
"is-fullwidth-code-point": "2.0.0",
"strip-ansi": "4.0.0"
+ }
+ },
+ "string.prototype.padend": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
+ "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.11.0",
+ "function-bind": "1.1.1"
+ }
+ },
+ "string.prototype.padstart": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz",
+ "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.11.0",
+ "function-bind": "1.1.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz",
+ "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -12648,50 +14384,14 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
}
}
},
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "5.1.1"
- }
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
"strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
},
"strip-eof": {
"version": "1.0.0",
@@ -12715,12 +14415,12 @@
"dev": true
},
"supports-color": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "has-flag": "3.0.0"
}
},
"svgo": {
@@ -12736,33 +14436,62 @@
"mkdirp": "0.5.1",
"sax": "1.2.4",
"whet.extend": "0.9.9"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.10",
+ "esprima": "2.7.3"
+ }
+ }
}
},
+ "symbol-tree": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
+ "dev": true
+ },
"table": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
"integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
- "ajv": "5.3.0",
+ "ajv": "5.5.2",
"ajv-keywords": "2.1.1",
- "chalk": "2.3.0",
- "lodash": "4.17.4",
+ "chalk": "2.4.1",
+ "lodash": "4.17.10",
"slice-ansi": "1.0.0",
"string-width": "2.1.1"
}
},
"tapable": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
- "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz",
+ "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
"dev": true
},
- "text-encoding": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
- "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=",
- "dev": true
+ "tar": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
+ "dev": true,
+ "requires": {
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
+ }
},
"text-table": {
"version": "0.2.0",
@@ -12770,11 +14499,27 @@
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"dev": true
},
- "throttleit": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
- "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
- "dev": true
+ "thread-loader": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-1.1.5.tgz",
+ "integrity": "sha512-BklxWyBW9EsRC6neZPuwwV6L1iRkGwe8sFWUcI1g+3DS3JajW/zJKo2t6j2a72bXngv9a4xyDHpn1EpXM9VWDw==",
+ "dev": true,
+ "requires": {
+ "async": "2.6.0",
+ "loader-runner": "2.3.0",
+ "loader-utils": "1.1.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
+ "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.10"
+ }
+ }
+ }
},
"through": {
"version": "2.3.8",
@@ -12788,7 +14533,7 @@
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
"dev": true,
"requires": {
- "readable-stream": "2.3.3",
+ "readable-stream": "2.3.6",
"xtend": "4.0.1"
}
},
@@ -12799,41 +14544,29 @@
"dev": true
},
"thunky": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
- "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=",
- "dev": true
- },
- "time-stamp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
- "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
+ "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=",
"dev": true
},
"timers-browserify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
- "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
+ "version": "2.0.10",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
"dev": true,
"requires": {
"setimmediate": "1.0.5"
}
},
"tmp": {
- "version": "0.0.31",
- "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
- "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=",
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": {
"os-tmpdir": "1.0.2"
}
},
- "to-array": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
- "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
- "dev": true
- },
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -12841,9 +14574,9 @@
"dev": true
},
"to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"dev": true
},
"to-object-path": {
@@ -12856,82 +14589,15 @@
}
},
"to-regex": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz",
- "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dev": true,
"requires": {
- "define-property": "0.2.5",
- "extend-shallow": "2.0.1",
- "regex-not": "1.0.0"
- },
- "dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "0.1.6"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- }
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "regex-not": "1.0.2",
+ "safe-regex": "1.1.0"
}
},
"to-regex-range": {
@@ -12955,21 +14621,47 @@
}
}
},
+ "topo": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz",
+ "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
+ "dev": true,
+ "requires": {
+ "hoek": "4.2.1"
+ }
+ },
"toposort": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz",
- "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
"dev": true
},
"tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"dev": true,
"requires": {
"punycode": "1.4.1"
}
},
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "dev": true,
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true
+ }
+ }
+ },
"trim-newlines": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
@@ -12982,6 +14674,30 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
+ "true-case-path": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
+ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=",
+ "dev": true,
+ "requires": {
+ "glob": "6.0.4"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "dev": true,
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.3",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
+ },
"tty-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
@@ -12994,7 +14710,7 @@
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "safe-buffer": "5.1.2"
}
},
"tweetnacl": {
@@ -13014,19 +14730,19 @@
}
},
"type-detect": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz",
- "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=",
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
"dev": true
},
"type-is": {
- "version": "1.6.15",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
- "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
+ "version": "1.6.16",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"dev": true,
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.17"
+ "mime-types": "2.1.18"
}
},
"typedarray": {
@@ -13036,56 +14752,73 @@
"dev": true
},
"uc.micro": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
- "integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI="
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
+ "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg=="
},
"uglify-js": {
- "version": "3.0.28",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz",
- "integrity": "sha512-0h/qGay016GG2lVav3Kz174F3T2Vjlz2v6HCt+WDQpoXfco0hWwF5gHK9yh88mUYvIC+N7Z8NT8WpjSp1yoqGA==",
+ "version": "3.3.25",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.25.tgz",
+ "integrity": "sha512-hobogryjDV36VrLK3Y69ou4REyrTApzUblVFmdQOYRe8cYaSmFJXMb4dR9McdvYDSbeNdzUgYr2YVukJaErJcA==",
"dev": true,
"requires": {
- "commander": "2.11.0",
- "source-map": "0.5.7"
- }
- },
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
- "dev": true,
- "optional": true
- },
- "uglifyjs-webpack-plugin": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
- "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
- "dev": true,
- "requires": {
- "source-map": "0.5.7",
- "uglify-js": "2.8.29",
- "webpack-sources": "1.0.1"
+ "commander": "2.15.1",
+ "source-map": "0.6.1"
},
"dependencies": {
- "uglify-js": {
- "version": "2.8.29",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
- "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
- "dev": true,
- "requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- }
+ "commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
}
}
},
- "ultron": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
- "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=",
- "dev": true
+ "uglifyjs-webpack-plugin": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz",
+ "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==",
+ "dev": true,
+ "requires": {
+ "cacache": "10.0.4",
+ "find-cache-dir": "1.0.0",
+ "schema-utils": "0.4.5",
+ "serialize-javascript": "1.5.0",
+ "source-map": "0.6.1",
+ "uglify-es": "3.3.9",
+ "webpack-sources": "1.1.0",
+ "worker-farm": "1.6.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "uglify-es": {
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
+ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
+ "dev": true,
+ "requires": {
+ "commander": "2.13.0",
+ "source-map": "0.6.1"
+ }
+ }
+ }
},
"unc-path-regex": {
"version": "0.1.2",
@@ -13093,6 +14826,34 @@
"integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
"dev": true
},
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.3.tgz",
+ "integrity": "sha512-iG/2t0F2LAU8aZYPkX5gi7ebukHnr3sWFESpb+zPQeeaQwOkfoO6ZW17YX7MdRPNG9pCy+tjzGill+Ah0Em0HA==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.3.tgz",
+ "integrity": "sha512-nFcaBFcr08UQNF15ZgI5ISh3yUnQm7SJRRxwYrL5VYX46pS+6Q7TCTv4zbK+j6/l7rQt0mMiTL2zpmeygny6rA==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "1.0.3",
+ "unicode-property-aliases-ecmascript": "1.0.3"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.1.tgz",
+ "integrity": "sha512-lM8B0FDZQh9yYGgiabRQcyWicB27VLOolSBRIxsO7FeQPtg+79Oe7sC8Mzr8BObDs+G9CeYmC/shHo6OggNEog==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.3.tgz",
+ "integrity": "sha512-TdDmDOTxEf2ad1g3ZBpM6cqKIb2nJpVlz1Q++casDryKz18tpeMBhSng9hjC1CTQCkOV9Rw2knlSB6iRo7ad1w==",
+ "dev": true
+ },
"union-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
@@ -13105,6 +14866,15 @@
"set-value": "0.4.3"
},
"dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
"set-value": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
@@ -13158,6 +14928,12 @@
"imurmurhash": "0.1.4"
}
},
+ "universalify": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
+ "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
+ "dev": true
+ },
"unorm": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz",
@@ -13215,12 +14991,35 @@
}
}
},
+ "upath": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
+ "dev": true
+ },
"upper-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
"integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
"dev": true
},
+ "uri-js": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz",
+ "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==",
+ "dev": true,
+ "requires": {
+ "punycode": "2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
+ "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "dev": true
+ }
+ }
+ },
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
@@ -13245,151 +15044,46 @@
}
}
},
+ "url-join": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz",
+ "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=",
+ "dev": true
+ },
"url-loader": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz",
- "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.0.1.tgz",
+ "integrity": "sha512-rAonpHy7231fmweBKUFe0bYnlGDty77E+fm53NZdij7j/YOpyGzc7ttqG1nAXl3aRs0k41o0PC3TvGXQiw2Zvw==",
"dev": true,
"requires": {
"loader-utils": "1.1.0",
- "mime": "1.4.1",
- "schema-utils": "0.3.0"
- },
- "dependencies": {
- "mime": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
- "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
- "dev": true
- }
+ "mime": "2.3.1",
+ "schema-utils": "0.4.5"
}
},
"url-parse": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
- "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.0.tgz",
+ "integrity": "sha512-ERuGxDiQ6Xw/agN4tuoCRbmwRuZP0cJ1lJxJubXr5Q/5cDa78+Dc4wfvtxzhzhkm5VvmW6Mf8EVj9SPGN4l8Lg==",
"dev": true,
"requires": {
- "querystringify": "1.0.0",
+ "querystringify": "2.0.0",
"requires-port": "1.0.0"
- },
- "dependencies": {
- "querystringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
- "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=",
- "dev": true
- }
}
},
"use": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz",
- "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz",
+ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==",
"dev": true,
"requires": {
- "define-property": "0.2.5",
- "isobject": "3.0.1",
- "lazy-cache": "2.0.2"
+ "kind-of": "6.0.2"
},
"dependencies": {
- "define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "requires": {
- "is-descriptor": "0.1.6"
- }
- },
- "is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
- "dev": true,
- "requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
- }
- },
- "is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
- "dev": true,
- "requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
"kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- },
- "lazy-cache": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz",
- "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=",
- "dev": true,
- "requires": {
- "set-getter": "0.1.0"
- }
- }
- }
- },
- "useragent": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz",
- "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=",
- "dev": true,
- "requires": {
- "lru-cache": "2.2.4",
- "tmp": "0.0.31"
- },
- "dependencies": {
- "lru-cache": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz",
- "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
}
}
@@ -13425,6 +15119,16 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true
},
+ "util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "object.getownpropertydescriptors": "2.0.3"
+ }
+ },
"utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
@@ -13432,25 +15136,25 @@
"dev": true
},
"utils-merge": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
- "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true
},
"uuid": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
"dev": true
},
"validate-npm-package-license": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
+ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"dev": true,
"requires": {
- "spdx-correct": "1.0.2",
- "spdx-expression-parse": "1.0.4"
+ "spdx-correct": "3.0.0",
+ "spdx-expression-parse": "3.0.0"
}
},
"vary": {
@@ -13460,9 +15164,9 @@
"dev": true
},
"vendors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
- "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
+ "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==",
"dev": true
},
"verror": {
@@ -13474,14 +15178,6 @@
"assert-plus": "1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "1.3.0"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
- }
}
},
"vm-browserify": {
@@ -13493,81 +15189,42 @@
"indexof": "0.0.1"
}
},
- "void-elements": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
- "dev": true
- },
"vue": {
- "version": "2.5.13",
- "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.13.tgz",
- "integrity": "sha512-3D+lY7HTkKbtswDM4BBHgqyq+qo8IAEE8lz8va1dz3LLmttjgo0FxairO4r1iN2OBqk8o1FyL4hvzzTFEdQSEw=="
- },
- "vue-add-globals": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/vue-add-globals/-/vue-add-globals-2.0.1.tgz",
- "integrity": "sha512-NvpO+te1DsZfZq9ecPR6lJrsVm+d+R2yTgQZUEme9zS23Q+wfGYojIPgBkr7Z0ZCv3OpbEG+xd/3KSiB856QOg==",
- "dev": true
+ "version": "2.5.16",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.16.tgz",
+ "integrity": "sha512-/ffmsiVuPC8PsWcFkZngdpas19ABm5mh2wA7iDqcltyCTwlgZjHGeJYOXkBMo422iPwIcviOtrTCUpSfXmToLQ=="
},
"vue-eslint-parser": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.2.tgz",
- "integrity": "sha512-MQE1Tl4kYhp51opFMtRcZuyrFru/erpRI82w96tPiSnhcwK3QjJejAEJ5RlLcLU07Ua7A1WvhXG3i2KFveeGsA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz",
+ "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==",
"dev": true,
"requires": {
"debug": "3.1.0",
"eslint-scope": "3.7.1",
"eslint-visitor-keys": "1.0.0",
- "espree": "3.5.2",
- "esquery": "1.0.0",
- "lodash": "4.17.4"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
+ "espree": "3.5.4",
+ "esquery": "1.0.1",
+ "lodash": "4.17.10"
}
},
"vue-hot-reload-api": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.2.4.tgz",
- "integrity": "sha512-e+ThJMYmZg4D9UnrLcr6LQxGu6YlcxkrmZGPCyIN4malcNhdeGGKxmFuM5y6ICMJJxQywLfT8MM1rYZr4LpeLw==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.0.tgz",
+ "integrity": "sha512-2j/t+wIbyVMP5NvctQoSUvLkYKoWAAk2QlQiilrM2a6/ulzFgdcLUJfTvs4XQ/3eZhHiBmmEojbjmM4AzZj8JA==",
"dev": true
},
"vue-loader": {
- "version": "13.7.0",
- "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.0.tgz",
- "integrity": "sha512-kDXRgglOOltghngrDFS/YfFew7e0d8fkvPHLYAfLgur7GW0cBt+J0fpBReWY2pixA09dL13abfE4fECyRH4HGg==",
+ "version": "15.0.11",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.0.11.tgz",
+ "integrity": "sha512-wyCwG/mbMWfW4hIYJbUWEkfPTVj4aMp/8G8qqnbnIsEZJqqCVBQ+pOO59NPQWjub8VAYMBeIB7crHlWsWS2Ufw==",
"dev": true,
"requires": {
- "consolidate": "0.14.5",
+ "@vue/component-compiler-utils": "1.2.1",
"hash-sum": "1.0.2",
"loader-utils": "1.1.0",
- "lru-cache": "4.1.1",
- "postcss": "6.0.16",
- "postcss-load-config": "1.2.0",
- "postcss-selector-parser": "2.2.3",
- "prettier": "1.9.2",
- "resolve": "1.4.0",
- "source-map": "0.6.1",
- "vue-hot-reload-api": "2.2.4",
- "vue-style-loader": "3.0.3",
- "vue-template-es2015-compiler": "1.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
+ "vue-hot-reload-api": "2.3.0",
+ "vue-style-loader": "4.1.0"
}
},
"vue-markdown": {
@@ -13586,7 +15243,7 @@
"markdown-it-mark": "2.0.0",
"markdown-it-sub": "1.0.0",
"markdown-it-sup": "1.0.0",
- "markdown-it-task-lists": "2.0.1",
+ "markdown-it-task-lists": "2.1.1",
"markdown-it-toc-and-anchor": "4.1.2"
}
},
@@ -13596,9 +15253,9 @@
"integrity": "sha512-vLLoY452L+JBpALMP5UHum9+7nzR9PeIBCghU9ZtJ1eWm6ieUI8Zb/DI3MYxH32bxkjzYV1LRjNv4qr8d+uX/w=="
},
"vue-style-loader": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.0.3.tgz",
- "integrity": "sha512-P/ihpaZKU23T1kq3E0y4c+F8sbm1HQO69EFYoLoGMSGVAHroHsGir/WQ9qUavP8dyFYHmXenzHaJ/nqd8vfaxw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.0.tgz",
+ "integrity": "sha512-IsSiXDrLW2QIjyBsCqa35e45l5AceMbJ2jO8DxoEQv75xu/UmtXkSC0ybESq/LpbmmIW47MAWDQvErUw+Hrz/A==",
"dev": true,
"requires": {
"hash-sum": "1.0.2",
@@ -13606,9 +15263,9 @@
}
},
"vue-template-compiler": {
- "version": "2.5.13",
- "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.13.tgz",
- "integrity": "sha512-15HWSgIxrGUcV0v7QRen2Y3fQsbgxXwMvjT/5XKMO0ANmaCcNh7y2OeIDTAuSGeosjb9+E1Pn2PHZ61VQWEgBQ==",
+ "version": "2.5.16",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.16.tgz",
+ "integrity": "sha512-ZbuhCcF/hTYmldoUOVcu2fcbeSAZnfzwDskGduOrnjBiIWHgELAd+R8nAtX80aZkceWDKGQ6N9/0/EUpt+l22A==",
"dev": true,
"requires": {
"de-indent": "1.0.2",
@@ -13621,333 +15278,131 @@
"integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==",
"dev": true
},
- "vue2-google-maps": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/vue2-google-maps/-/vue2-google-maps-0.8.4.tgz",
- "integrity": "sha1-TFIB+PeaVKjnxWhBZ3+j87sWAMo=",
- "requires": {
- "babel-plugin-lodash": "3.2.11",
- "babel-plugin-transform-runtime": "6.23.0",
- "babel-runtime": "5.8.38",
- "marker-clusterer-plus": "2.1.4"
- },
- "dependencies": {
- "babel-runtime": {
- "version": "5.8.38",
- "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz",
- "integrity": "sha1-HAsC62MxL18If/IEUIJ7QlydTBk=",
- "requires": {
- "core-js": "1.2.7"
- }
- },
- "core-js": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
- "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
- }
- }
- },
"vuetify": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.0.0-beta.2.tgz",
- "integrity": "sha512-eM61PPNwM0lXYaUzY0MXA7sp/N4wqxlEMcALsOBneLObVS+OgpX4Zszb7HqAOSVXipNRSP8X5ZV5TgbZscly1Q=="
+ "version": "1.0.18",
+ "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-1.0.18.tgz",
+ "integrity": "sha512-adOZaSCgoeGgyL3bgm0bpAfbUJWQ9WVD6CBpJriQJ6JUMaKNoEvKnuhY5LGRlR209QOx4LB8e6HBlKtGwbFtIA=="
},
"vuetify-google-autocomplete": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/vuetify-google-autocomplete/-/vuetify-google-autocomplete-1.1.0.tgz",
- "integrity": "sha512-kOFW/zakvqkIIZNI9D83qq4I03p99bPCL6LPpyDQDRjifRxU0cIObgOvqlOh8DfFDLOk8cf79hyFnY905ldbow==",
- "requires": {
- "vue": "2.5.13",
- "vuetify": "0.16.9"
- },
- "dependencies": {
- "vuetify": {
- "version": "0.16.9",
- "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-0.16.9.tgz",
- "integrity": "sha512-HVzdKnMETHINURJhGCMGT3wFw6R8eEHCVcqdC6o/z+eAWNQH7xg1k2hCsKo680lkjiL7tp3vRd9lF+3DpLm/+g=="
- }
- }
+ "version": "2.0.0-Alpha.9",
+ "resolved": "https://registry.npmjs.org/vuetify-google-autocomplete/-/vuetify-google-autocomplete-2.0.0-Alpha.9.tgz",
+ "integrity": "sha512-saTdMTUvIjCHMrlNjeGu3fkyRfQkEHHg6kzZ1V5Kkv5L/AwZSltOAZnwTljgGETtXBhi/RCalsPanSTPn8iSBA=="
},
"vuex": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz",
- "integrity": "sha512-5oJPOJySBgSgSzoeO+gZB/BbN/XsapgIF6tz34UwJqnGZMQurzIO3B4KIBf862gfc9ya+oduY5sSkq+5/oOilQ=="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.0.1.tgz",
+ "integrity": "sha512-wLoqz0B7DSZtgbWL1ShIBBCjv22GV5U+vcBFox658g6V0s4wZV9P4YjCNyoHSyIBpj1f29JBoNQIqD82cR4O3w=="
},
"vuex-i18n": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/vuex-i18n/-/vuex-i18n-1.8.0.tgz",
- "integrity": "sha1-mhOYP9btiPHYUQgxNksjAIPB33I="
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/vuex-i18n/-/vuex-i18n-1.10.5.tgz",
+ "integrity": "sha1-Y16iIE4Ko/j9US8Pq39rmU0/Zmw="
},
- "watchpack": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz",
- "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=",
+ "w3c-hr-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
+ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
"dev": true,
"requires": {
- "async": "2.5.0",
- "chokidar": "1.7.0",
- "graceful-fs": "4.1.11"
+ "browser-process-hrtime": "0.1.2"
+ }
+ },
+ "watchpack": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "dev": true,
+ "requires": {
+ "chokidar": "2.0.3",
+ "graceful-fs": "4.1.11",
+ "neo-async": "2.5.1"
}
},
"wbuf": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz",
- "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
"dev": true,
"requires": {
- "minimalistic-assert": "1.0.0"
+ "minimalistic-assert": "1.0.1"
}
},
- "webpack": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.10.0.tgz",
- "integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==",
+ "wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
"dev": true,
"requires": {
- "acorn": "5.3.0",
- "acorn-dynamic-import": "2.0.2",
- "ajv": "5.3.0",
- "ajv-keywords": "2.1.1",
- "async": "2.5.0",
- "enhanced-resolve": "3.4.1",
- "escope": "3.6.0",
- "interpret": "1.0.3",
- "json-loader": "0.5.7",
- "json5": "0.5.1",
+ "defaults": "1.0.3"
+ }
+ },
+ "webassemblyjs": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz",
+ "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/validation": "1.4.3",
+ "@webassemblyjs/wasm-parser": "1.4.3",
+ "@webassemblyjs/wast-parser": "1.4.3",
+ "long": "3.2.0"
+ }
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
+ "dev": true
+ },
+ "webpack": {
+ "version": "4.8.3",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz",
+ "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==",
+ "dev": true,
+ "requires": {
+ "@webassemblyjs/ast": "1.4.3",
+ "@webassemblyjs/wasm-edit": "1.4.3",
+ "@webassemblyjs/wasm-parser": "1.4.3",
+ "acorn": "5.5.3",
+ "acorn-dynamic-import": "3.0.0",
+ "ajv": "6.5.0",
+ "ajv-keywords": "3.2.0",
+ "chrome-trace-event": "0.1.3",
+ "enhanced-resolve": "4.0.0",
+ "eslint-scope": "3.7.1",
"loader-runner": "2.3.0",
"loader-utils": "1.1.0",
"memory-fs": "0.4.1",
+ "micromatch": "3.1.10",
"mkdirp": "0.5.1",
+ "neo-async": "2.5.1",
"node-libs-browser": "2.1.0",
- "source-map": "0.5.7",
- "supports-color": "4.4.0",
- "tapable": "0.2.8",
- "uglifyjs-webpack-plugin": "0.4.6",
- "watchpack": "1.4.0",
- "webpack-sources": "1.0.1",
- "yargs": "8.0.2"
+ "schema-utils": "0.4.5",
+ "tapable": "1.0.0",
+ "uglifyjs-webpack-plugin": "1.2.5",
+ "watchpack": "1.6.0",
+ "webpack-sources": "1.1.0"
},
"dependencies": {
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "dev": true
+ "ajv": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz",
+ "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "2.0.1",
+ "fast-json-stable-stringify": "2.0.0",
+ "json-schema-traverse": "0.3.1",
+ "uri-js": "4.2.1"
+ }
},
- "cliui": {
+ "ajv-keywords": {
"version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
- },
- "dependencies": {
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- }
- }
- },
- "enhanced-resolve": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
- "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "memory-fs": "0.4.1",
- "object-assign": "4.1.1",
- "tapable": "0.2.8"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "dev": true,
- "requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
- }
- },
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "dev": true,
- "requires": {
- "errno": "0.1.6",
- "readable-stream": "2.3.3"
- }
- },
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "2.3.0"
- }
- },
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
"dev": true
},
- "tapable": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
- "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
- "dev": true
- },
- "yargs": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "dev": true,
- "requires": {
- "camelcase": "4.1.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "2.1.0",
- "read-pkg-up": "2.0.0",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "2.1.1",
- "which-module": "2.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "7.0.0"
- }
- }
- }
- },
- "webpack-dev-middleware": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
- "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
- "dev": true,
- "requires": {
- "memory-fs": "0.4.1",
- "mime": "1.6.0",
- "path-is-absolute": "1.0.1",
- "range-parser": "1.2.0",
- "time-stamp": "2.0.0"
- },
- "dependencies": {
- "memory-fs": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
- "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
- "dev": true,
- "requires": {
- "errno": "0.1.6",
- "readable-stream": "2.3.3"
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true
- }
- }
- },
- "webpack-dev-server": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.10.1.tgz",
- "integrity": "sha512-R9iZOrbIIsP2mw2j172HVjf479Zb9kcG0chjzHRrE/4M333NZ+3jOWRWJMGEQXwJzUtRNvVKzX2o27qM59TIhQ==",
- "dev": true,
- "requires": {
- "ansi-html": "0.0.7",
- "array-includes": "3.0.3",
- "bonjour": "3.5.0",
- "chokidar": "2.0.0",
- "compression": "1.7.1",
- "connect-history-api-fallback": "1.5.0",
- "debug": "3.1.0",
- "del": "3.0.0",
- "express": "4.16.2",
- "html-entities": "1.2.1",
- "http-proxy-middleware": "0.17.4",
- "import-local": "1.0.0",
- "internal-ip": "1.2.0",
- "ip": "1.1.5",
- "killable": "1.0.0",
- "loglevel": "1.6.0",
- "opn": "5.1.0",
- "portfinder": "1.0.13",
- "selfsigned": "1.10.1",
- "serve-index": "1.9.1",
- "sockjs": "0.3.19",
- "sockjs-client": "1.1.4",
- "spdy": "3.4.7",
- "strip-ansi": "4.0.0",
- "supports-color": "5.1.0",
- "webpack-dev-middleware": "1.12.2",
- "yargs": "6.6.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "anymatch": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
- "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
- "dev": true,
- "requires": {
- "micromatch": "3.1.5",
- "normalize-path": "2.1.1"
- }
- },
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -13961,81 +15416,38 @@
"dev": true
},
"braces": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz",
- "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dev": true,
"requires": {
"arr-flatten": "1.1.0",
"array-unique": "0.3.2",
- "define-property": "1.0.0",
"extend-shallow": "2.0.1",
"fill-range": "4.0.0",
"isobject": "3.0.1",
"repeat-element": "1.1.2",
- "snapdragon": "0.8.1",
+ "snapdragon": "0.8.2",
"snapdragon-node": "2.1.1",
"split-string": "3.1.0",
- "to-regex": "3.0.1"
- }
- },
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
- "dev": true
- },
- "chokidar": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.0.tgz",
- "integrity": "sha512-OgXCNv2U6TnG04D3tth0gsvdbV4zdbxFG3sYUqcoQMoEFVd1j1pZR6TZ8iknC45o9IJ6PeQI/J6wT/+cHcniAw==",
- "dev": true,
- "requires": {
- "anymatch": "2.0.0",
- "async-each": "1.0.1",
- "braces": "2.3.0",
- "fsevents": "1.1.3",
- "glob-parent": "3.1.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "4.0.0",
- "normalize-path": "2.1.1",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
- }
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "dev": true,
- "requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
+ "to-regex": "3.0.2"
},
"dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "is-extendable": "0.1.1"
}
}
}
},
"debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
@@ -14051,20 +15463,11 @@
"define-property": "0.2.5",
"extend-shallow": "2.0.1",
"posix-character-classes": "0.1.1",
- "regex-not": "1.0.0",
- "snapdragon": "0.8.1",
- "to-regex": "3.0.1"
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- },
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
@@ -14073,13 +15476,79 @@
"requires": {
"is-descriptor": "0.1.6"
}
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "requires": {
+ "kind-of": "3.2.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "requires": {
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
}
}
},
"extglob": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.3.tgz",
- "integrity": "sha512-AyptZexgu7qppEPq59DtN/XJGZDrLcVxSHai+4hdgMMS9EpF4GBvygcWWApno8lL9qSjVpYt7Raao28qzJX1ww==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"requires": {
"array-unique": "0.3.2",
@@ -14087,11 +15556,37 @@
"expand-brackets": "2.1.4",
"extend-shallow": "2.0.1",
"fragment-cache": "0.2.1",
- "regex-not": "1.0.0",
- "snapdragon": "0.8.1",
- "to-regex": "3.0.1"
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "requires": {
+ "is-descriptor": "1.0.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "requires": {
+ "is-extendable": "0.1.1"
+ }
+ }
}
},
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
+ "dev": true
+ },
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
@@ -14102,116 +15597,46 @@
"is-number": "3.0.0",
"repeat-string": "1.6.1",
"to-regex-range": "2.1.1"
- }
- },
- "glob-parent": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
- "dev": true,
- "requires": {
- "is-glob": "3.1.0",
- "path-dirname": "1.0.2"
},
"dependencies": {
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
- "is-extglob": "2.1.1"
+ "is-extendable": "0.1.1"
}
}
}
},
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
- "dev": true
- },
"is-accessor-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
- "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
+ "kind-of": "6.0.2"
}
},
"is-data-descriptor": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
- "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "3.2.2"
- },
- "dependencies": {
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
- "requires": {
- "is-buffer": "1.1.5"
- }
- }
+ "kind-of": "6.0.2"
}
},
"is-descriptor": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
- "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
- },
- "dependencies": {
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
- }
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
- },
- "is-glob": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
- "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
- "dev": true,
- "requires": {
- "is-extglob": "2.1.1"
+ "is-accessor-descriptor": "1.0.0",
+ "is-data-descriptor": "1.0.0",
+ "kind-of": "6.0.2"
}
},
"is-number": {
@@ -14229,7 +15654,7 @@
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {
- "is-buffer": "1.1.5"
+ "is-buffer": "1.1.6"
}
}
}
@@ -14247,148 +15672,157 @@
"dev": true
},
"micromatch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz",
- "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dev": true,
"requires": {
"arr-diff": "4.0.0",
"array-unique": "0.3.2",
- "braces": "2.3.0",
- "define-property": "1.0.0",
- "extend-shallow": "2.0.1",
- "extglob": "2.0.3",
+ "braces": "2.3.2",
+ "define-property": "2.0.2",
+ "extend-shallow": "3.0.2",
+ "extglob": "2.0.4",
"fragment-cache": "0.2.1",
"kind-of": "6.0.2",
- "nanomatch": "1.2.7",
+ "nanomatch": "1.2.9",
"object.pick": "1.3.0",
- "regex-not": "1.0.0",
- "snapdragon": "0.8.1",
- "to-regex": "3.0.1"
- }
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "dev": true,
- "requires": {
- "lcid": "1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
- "requires": {
- "ansi-regex": "2.1.1"
- }
- }
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- },
- "supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- },
- "which-module": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
- "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
- "dev": true
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "dev": true,
- "requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "4.2.1"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "dev": true,
- "requires": {
- "camelcase": "3.0.0"
+ "regex-not": "1.0.2",
+ "snapdragon": "0.8.2",
+ "to-regex": "3.0.2"
}
}
}
},
- "webpack-hot-middleware": {
- "version": "2.21.0",
- "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz",
- "integrity": "sha512-P6xiOLy10QlSVSO7GanU9PLxN6zLLQ7RG16MPTvmFwf2KUG7jMp6m+fmdgsR7xoaVVLA7OlX3YO6JjoZEKjCuA==",
+ "webpack-chain": {
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.8.0.tgz",
+ "integrity": "sha512-aaQCcpt8muEeDLD+su3Xdm+GY/TzbszmTQ1atMT+xe5zXuXBX9UWp7lKVWqDrV1urs32bjECGX2EQ9Qx/NIO7A==",
+ "dev": true,
+ "requires": {
+ "deepmerge": "1.5.2",
+ "javascript-stringify": "1.6.0"
+ },
+ "dependencies": {
+ "deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+ "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+ "dev": true
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz",
+ "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==",
+ "dev": true,
+ "requires": {
+ "loud-rejection": "1.6.0",
+ "memory-fs": "0.4.1",
+ "mime": "2.3.1",
+ "path-is-absolute": "1.0.1",
+ "range-parser": "1.2.0",
+ "url-join": "4.0.0",
+ "webpack-log": "1.2.0"
+ }
+ },
+ "webpack-dev-server": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz",
+ "integrity": "sha512-itcIUDFkHuj1/QQxzUFOEXXmxOj5bku2ScLEsOFPapnq2JRTm58gPdtnBphBJOKL2+M3p6+xygL64bI+3eyzzw==",
"dev": true,
"requires": {
"ansi-html": "0.0.7",
+ "array-includes": "3.0.3",
+ "bonjour": "3.5.0",
+ "chokidar": "2.0.3",
+ "compression": "1.7.2",
+ "connect-history-api-fallback": "1.5.0",
+ "debug": "3.1.0",
+ "del": "3.0.0",
+ "express": "4.16.3",
"html-entities": "1.2.1",
- "querystring": "0.2.0",
- "strip-ansi": "3.0.1"
+ "http-proxy-middleware": "0.18.0",
+ "import-local": "1.0.0",
+ "internal-ip": "1.2.0",
+ "ip": "1.1.5",
+ "killable": "1.0.0",
+ "loglevel": "1.6.1",
+ "opn": "5.3.0",
+ "portfinder": "1.0.13",
+ "selfsigned": "1.10.3",
+ "serve-index": "1.9.1",
+ "sockjs": "0.3.19",
+ "sockjs-client": "1.1.4",
+ "spdy": "3.4.7",
+ "strip-ansi": "3.0.1",
+ "supports-color": "5.4.0",
+ "webpack-dev-middleware": "3.1.3",
+ "webpack-log": "1.2.0",
+ "yargs": "11.0.0"
+ },
+ "dependencies": {
+ "ip": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
+ },
+ "webpack-log": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz",
+ "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.4.1",
+ "log-symbols": "2.2.0",
+ "loglevelnext": "1.0.5",
+ "uuid": "3.2.1"
}
},
"webpack-merge": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.1.tgz",
- "integrity": "sha512-geQsZ86YkXOVOjvPC5yv3JSNnL6/X3Kzh935AQ/gJNEYXEfJDQFu/sdFuktS9OW2JcH/SJec8TGfRdrpHshH7A==",
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz",
+ "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.10"
}
},
+ "webpack-node-externals": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz",
+ "integrity": "sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg==",
+ "dev": true
+ },
"webpack-sources": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz",
- "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
+ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==",
"dev": true,
"requires": {
"source-list-map": "2.0.0",
- "source-map": "0.5.7"
+ "source-map": "0.6.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
}
},
"websocket-driver": {
@@ -14397,7 +15831,7 @@
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
"requires": {
- "http-parser-js": "0.4.9",
+ "http-parser-js": "0.4.12",
"websocket-extensions": "0.1.3"
}
},
@@ -14407,6 +15841,40 @@
"integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
"dev": true
},
+ "whatwg-encoding": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
+ "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
+ "dev": true,
+ "requires": {
+ "iconv-lite": "0.4.19"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true
+ }
+ }
+ },
+ "whatwg-mimetype": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz",
+ "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==",
+ "dev": true
+ },
+ "whatwg-url": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.1.tgz",
+ "integrity": "sha512-FwygsxsXx27x6XXuExA/ox3Ktwcbf+OAvrKmLulotDAiO1Q6ixchPFaHYsis2zZBZSJTR0+dR+JVtf7MlbqZjw==",
+ "dev": true,
+ "requires": {
+ "lodash.sortby": "4.7.0",
+ "tr46": "1.0.1",
+ "webidl-conversions": "4.0.2"
+ }
+ },
"whet.extend": {
"version": "0.9.9",
"resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
@@ -14428,18 +15896,203 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true
+ "wide-align": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
+ "dev": true,
+ "requires": {
+ "string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
+ }
+ }
},
"wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
},
+ "workbox-background-sync": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-3.2.0.tgz",
+ "integrity": "sha512-j8tQCot2RQFMroCyhDkX06093RIqkcAfSXE+8IXYgcnc7IVG9USf4GuWRR0GQUSgiEN9OtWx5QnltgXEmpqIDQ==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-broadcast-cache-update": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.2.0.tgz",
+ "integrity": "sha512-3dgfx7blGdZfwFZ+VJmG12qa4R8o1LkB57RsEqDz3coUINAh1+e34y/ckHpvC+gYlXpNoSMf/WqYwQp9UhtJgQ==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-build": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-3.2.0.tgz",
+ "integrity": "sha512-4UQdrMuUfM0FJTR9mRf4bFvM+l/1oWpOAlDMsZ3dkClxu3hKiJ30aat48DSAh0yQeQESu4cH+h2nmtOXEDG9Tw==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "common-tags": "1.7.2",
+ "fs-extra": "4.0.3",
+ "glob": "7.1.2",
+ "joi": "11.4.0",
+ "lodash.template": "4.4.0",
+ "pretty-bytes": "4.0.2",
+ "workbox-background-sync": "3.2.0",
+ "workbox-broadcast-cache-update": "3.2.0",
+ "workbox-cache-expiration": "3.2.0",
+ "workbox-cacheable-response": "3.2.0",
+ "workbox-core": "3.2.0",
+ "workbox-google-analytics": "3.2.0",
+ "workbox-precaching": "3.2.0",
+ "workbox-range-requests": "3.2.0",
+ "workbox-routing": "3.2.0",
+ "workbox-strategies": "3.2.0",
+ "workbox-streams": "3.2.0",
+ "workbox-sw": "3.2.0"
+ }
+ },
+ "workbox-cache-expiration": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-cache-expiration/-/workbox-cache-expiration-3.2.0.tgz",
+ "integrity": "sha512-CjVhf7vSO2wgnlsrLTEHszNS0jbxu37ZDn/2YP0tOqrfpEUan+TP80gxKnqTxs4L4lddV4L0y0fspLzCUu2AWQ==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-cacheable-response": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-3.2.0.tgz",
+ "integrity": "sha512-Xb6WT4e3p8H8Mp6q6RRQCuyCWdmLcx/QvKaOjv+RO/Mh0lf5K3eICXHV8pqYRy/vlo8i2vmccZWWgKDqTiemdw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.2.0.tgz",
+ "integrity": "sha512-r0TggwtndOuQrgyIwtZwinWgsISvHyQloHOSbPxX/jKI8grIZHmoF9ynQ3yDG6ZmZM/pgMDefsn+EkZkwTppTw==",
+ "dev": true
+ },
+ "workbox-google-analytics": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-3.2.0.tgz",
+ "integrity": "sha512-61JQ6bb5kpoRdlALgkveNTK0xaLzDJYHY+WOj0wCKXcsjag7Z6ISHoBeCbT89bnreBb9gSozlGqV/3Q1keMdyw==",
+ "dev": true,
+ "requires": {
+ "workbox-background-sync": "3.2.0",
+ "workbox-core": "3.2.0",
+ "workbox-routing": "3.2.0",
+ "workbox-strategies": "3.2.0"
+ }
+ },
+ "workbox-precaching": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-3.2.0.tgz",
+ "integrity": "sha512-5dDDgIH6aDFd2eRw1LsF7QOiArB/9/neQsRmLn3fftr4uVQ6uKN7f+SccgxOarqF8bZmumSH6J0LF6wD9SCOQg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-range-requests": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-3.2.0.tgz",
+ "integrity": "sha512-5bJcON1wg4Y3ZcG8fX9u0vyRNpt45JhCq1gUylOjOoUIEg3cCWUCT/ZoVoysuPj0w/2RxXWQ17FD5u5Y+Cq6qg==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-routing": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-3.2.0.tgz",
+ "integrity": "sha512-rL8RqXeIvWaprp/m3wj/wxiFoyWQzz1LI41y5YYa1d2Xz4/c6I91HMdbTxOgOkBcQpT7Q8Ot539iLk9MIM2Rxw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-strategies": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.2.0.tgz",
+ "integrity": "sha512-7Qey+xrrSXf+wEaLpHsmPywXaqYdtQ82Bi/w9S/V9oIX5rSdgKEW56jqBSu9E1C6vzO3abXKiZ7PwhZPxCiYSw==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-streams": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-3.2.0.tgz",
+ "integrity": "sha512-ABDWDxaT90GEh06FnqZh4scq9WogjyrMVPnd8TuiFaOuDVwBLm+vyg3McdoQYpo4i1qEgpZ+i1c+7bskZUFx6w==",
+ "dev": true,
+ "requires": {
+ "workbox-core": "3.2.0"
+ }
+ },
+ "workbox-sw": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-3.2.0.tgz",
+ "integrity": "sha512-UsPzNCpwcZ1K7ekxVhvUDvAIgoh/f65t1a42NxT+Us2HDrGtduVvFSMB9NCt2wnXhsW5PvEo5LccK/1lBsggtg==",
+ "dev": true
+ },
+ "workbox-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha512-zl1/2ChVhwcpSumDd3jSUfbDIk5MtTSW5xc/h/WPkBpYi4dwvfwmQ8KAXc1qBIEoDz++R483zwYTyJQJ0g6f3w==",
+ "dev": true,
+ "requires": {
+ "json-stable-stringify": "1.0.1",
+ "workbox-build": "3.2.0"
+ }
+ },
+ "worker-farm": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.7"
+ }
+ },
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
@@ -14469,13 +16122,23 @@
"is-fullwidth-code-point": "1.0.0",
"strip-ansi": "3.0.1"
}
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "2.1.1"
+ }
}
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
},
"write": {
"version": "0.2.1",
@@ -14487,31 +16150,19 @@
}
},
"ws": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz",
- "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
+ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
"dev": true,
"requires": {
- "options": "0.0.6",
- "ultron": "1.0.2"
+ "async-limiter": "1.0.0",
+ "safe-buffer": "5.1.2"
}
},
- "wtf-8": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz",
- "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=",
- "dev": true
- },
- "xml-char-classes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
- "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=",
- "dev": true
- },
- "xmlhttprequest-ssl": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz",
- "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=",
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true
},
"xregexp": {
@@ -14539,40 +16190,32 @@
"dev": true
},
"yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz",
+ "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==",
"dev": true,
"requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
+ "cliui": "4.1.0",
"decamelize": "1.2.0",
- "window-size": "0.1.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
- }
+ "find-up": "2.1.0",
+ "get-caller-file": "1.0.2",
+ "os-locale": "2.1.0",
+ "require-directory": "2.1.1",
+ "require-main-filename": "1.0.1",
+ "set-blocking": "2.0.0",
+ "string-width": "2.1.1",
+ "which-module": "2.0.0",
+ "y18n": "3.2.1",
+ "yargs-parser": "9.0.2"
}
},
"yargs-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
"dev": true,
"requires": {
"camelcase": "4.1.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "dev": true
- }
}
},
"yauzl": {
@@ -14584,11 +16227,67 @@
"fd-slicer": "1.0.1"
}
},
- "yeast": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",
- "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
- "dev": true
+ "yorkie": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-1.0.3.tgz",
+ "integrity": "sha512-D6MU1N72vv/as9VvDBS8syz8FS9gDPUwP6ILp/vU/PYnTdHrK4qeC7qNabc/CrEtI4mNpWX2dxVvzktQBh8BAA==",
+ "dev": true,
+ "requires": {
+ "execa": "0.8.0",
+ "is-ci": "1.1.0",
+ "normalize-path": "1.0.0",
+ "strip-indent": "2.0.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.3",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "5.1.0",
+ "get-stream": "3.0.0",
+ "is-stream": "1.1.0",
+ "npm-run-path": "2.0.2",
+ "p-finally": "1.0.0",
+ "signal-exit": "3.0.2",
+ "strip-eof": "1.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "1.0.2",
+ "yallist": "2.1.2"
+ }
+ },
+ "normalize-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz",
+ "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ }
+ }
}
}
}
diff --git a/js/package.json b/js/package.json
index 3e6d6a32c..da53c0783 100644
--- a/js/package.json
+++ b/js/package.json
@@ -1,99 +1,41 @@
{
- "name": "libre-event",
- "version": "1.0.0",
- "description": "A Vue.js project",
- "author": "Thomas Citharel ",
+ "name": "eventos",
+ "version": "0.1.0",
"private": true,
"scripts": {
- "dev": "node build/dev-server.js",
- "start": "node build/dev-server.js",
- "build": "node build/build.js",
- "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
- "e2e": "node test/e2e/runner.js",
- "test": "npm run unit && npm run e2e",
- "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
+ "serve": "vue-cli-service serve",
+ "build": "vue-cli-service build",
+ "lint": "vue-cli-service lint",
+ "test:unit": "vue-cli-service test:unit",
+ "test:e2e": "vue-cli-service test:e2e"
},
"dependencies": {
- "jwt-decode": "^2.2.0",
- "moment": "^2.20.1",
+ "material-design-icons": "^3.0.1",
+ "moment": "^2.22.1",
"ngeohash": "^0.6.0",
- "vue": "^2.5.13",
+ "register-service-worker": "^1.0.0",
+ "vue": "^2.5.16",
"vue-markdown": "^2.2.4",
"vue-router": "^3.0.1",
- "vue2-google-maps": "^0.8.4",
- "vuetify": "^1.0.0-beta.2",
- "vuetify-google-autocomplete": "^1.1.0",
- "vuex": "^2.5.0",
- "vuex-i18n": "1.8.0"
+ "vuetify": "^1.0.18",
+ "vuetify-google-autocomplete": "^2.0.0-Alpha.9",
+ "vuex": "^3.0.1",
+ "vuex-i18n": "^1.10.5"
},
"devDependencies": {
- "autoprefixer": "^7.2.4",
- "avoriaz": "^6.3.0",
- "babel-eslint": "^7.1.1",
- "babel-loader": "^7.1.1",
- "babel-plugin-transform-runtime": "^6.22.0",
- "babel-preset-env": "^1.3.2",
- "babel-preset-stage-2": "^6.22.0",
- "babel-register": "^6.22.0",
+ "dotenv-webpack": "^1.5.5",
+ "@vue/cli-plugin-babel": "^3.0.0-beta.10",
+ "@vue/cli-plugin-e2e-nightwatch": "^3.0.0-beta.10",
+ "@vue/cli-plugin-eslint": "^3.0.0-beta.10",
+ "@vue/cli-plugin-pwa": "^3.0.0-beta.10",
+ "@vue/cli-plugin-unit-mocha": "^3.0.0-beta.10",
+ "@vue/cli-service": "^3.0.0-beta.10",
+ "@vue/eslint-config-airbnb": "^3.0.0-beta.10",
+ "@vue/test-utils": "^1.0.0-beta.10",
"chai": "^4.1.2",
- "chalk": "^2.3.0",
- "chromedriver": "^2.34.1",
- "connect-history-api-fallback": "^1.5.0",
- "copy-webpack-plugin": "^4.3.1",
- "cross-env": "^5.1.3",
- "cross-spawn": "^5.0.1",
- "css-loader": "^0.28.8",
- "cssnano": "^3.10.0",
- "eslint": "^4.15.0",
- "eslint-friendly-formatter": "^3.0.0",
- "eslint-import-resolver-webpack": "^0.8.4",
- "eslint-loader": "^1.7.1",
- "eslint-plugin-html": "^3.2.2",
- "eslint-plugin-import": "^2.8.0",
- "eslint-plugin-vue": "^3.14.0",
- "eventsource-polyfill": "^0.9.6",
- "express": "^4.16.2",
- "extract-text-webpack-plugin": "^3.0.2",
- "file-loader": "^1.1.6",
- "friendly-errors-webpack-plugin": "^1.1.3",
- "html-webpack-plugin": "^2.28.0",
- "http-proxy-middleware": "^0.17.3",
- "inject-loader": "^3.0.0",
- "karma": "^1.4.1",
- "karma-coverage": "^1.1.1",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-phantomjs-shim": "^1.5.0",
- "karma-sinon-chai": "^1.3.3",
- "karma-sourcemap-loader": "^0.3.7",
- "karma-spec-reporter": "0.0.31",
- "karma-webpack": "^2.0.9",
- "mocha": "^4.1.0",
- "nightwatch": "^0.9.19",
- "opn": "^5.1.0",
- "optimize-css-assets-webpack-plugin": "^3.2.0",
- "ora": "^1.2.0",
- "phantomjs-prebuilt": "^2.1.16",
- "portfinder": "^1.0.13",
- "rimraf": "^2.6.2",
- "selenium-server": "^3.8.1",
- "semver": "^5.3.0",
- "shelljs": "^0.7.6",
- "sinon": "^4.1.4",
- "sinon-chai": "^2.14.0",
- "url-loader": "^0.6.2",
- "vue-loader": "^13.7.0",
- "vue-style-loader": "^3.0.3",
- "vue-template-compiler": "^2.5.13",
- "webpack": "^3.10.0",
- "webpack-dev-middleware": "^1.12.2",
- "webpack-dev-server": "^2.10.1",
- "webpack-hot-middleware": "^2.21.0",
- "webpack-merge": "^4.1.1"
- },
- "engines": {
- "node": ">= 4.0.0",
- "npm": ">= 3.0.0"
+ "node-sass": "^4.7.2",
+ "sass-loader": "^6.0.6",
+ "vue-template-compiler": "^2.5.13"
},
"browserslist": [
"> 1%",
diff --git a/js/public/favicon.ico b/js/public/favicon.ico
new file mode 100644
index 000000000..c7b9a43c8
Binary files /dev/null and b/js/public/favicon.ico differ
diff --git a/js/public/img/icons/android-chrome-192x192.png b/js/public/img/icons/android-chrome-192x192.png
new file mode 100644
index 000000000..b02aa64d9
Binary files /dev/null and b/js/public/img/icons/android-chrome-192x192.png differ
diff --git a/js/public/img/icons/android-chrome-512x512.png b/js/public/img/icons/android-chrome-512x512.png
new file mode 100644
index 000000000..06088b011
Binary files /dev/null and b/js/public/img/icons/android-chrome-512x512.png differ
diff --git a/js/public/img/icons/apple-touch-icon-120x120.png b/js/public/img/icons/apple-touch-icon-120x120.png
new file mode 100644
index 000000000..1427cf627
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon-120x120.png differ
diff --git a/js/public/img/icons/apple-touch-icon-152x152.png b/js/public/img/icons/apple-touch-icon-152x152.png
new file mode 100644
index 000000000..f24d454a2
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon-152x152.png differ
diff --git a/js/public/img/icons/apple-touch-icon-180x180.png b/js/public/img/icons/apple-touch-icon-180x180.png
new file mode 100644
index 000000000..404e192a9
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon-180x180.png differ
diff --git a/js/public/img/icons/apple-touch-icon-60x60.png b/js/public/img/icons/apple-touch-icon-60x60.png
new file mode 100644
index 000000000..cf10a5602
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon-60x60.png differ
diff --git a/js/public/img/icons/apple-touch-icon-76x76.png b/js/public/img/icons/apple-touch-icon-76x76.png
new file mode 100644
index 000000000..c500769e3
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon-76x76.png differ
diff --git a/js/public/img/icons/apple-touch-icon.png b/js/public/img/icons/apple-touch-icon.png
new file mode 100644
index 000000000..03c0c5d5e
Binary files /dev/null and b/js/public/img/icons/apple-touch-icon.png differ
diff --git a/js/public/img/icons/favicon-16x16.png b/js/public/img/icons/favicon-16x16.png
new file mode 100644
index 000000000..42af00963
Binary files /dev/null and b/js/public/img/icons/favicon-16x16.png differ
diff --git a/js/public/img/icons/favicon-32x32.png b/js/public/img/icons/favicon-32x32.png
new file mode 100644
index 000000000..46ca04dee
Binary files /dev/null and b/js/public/img/icons/favicon-32x32.png differ
diff --git a/js/public/img/icons/msapplication-icon-144x144.png b/js/public/img/icons/msapplication-icon-144x144.png
new file mode 100644
index 000000000..7808237a1
Binary files /dev/null and b/js/public/img/icons/msapplication-icon-144x144.png differ
diff --git a/js/public/img/icons/mstile-150x150.png b/js/public/img/icons/mstile-150x150.png
new file mode 100644
index 000000000..3b37a43ae
Binary files /dev/null and b/js/public/img/icons/mstile-150x150.png differ
diff --git a/js/public/img/icons/safari-pinned-tab.svg b/js/public/img/icons/safari-pinned-tab.svg
new file mode 100644
index 000000000..732afd8eb
--- /dev/null
+++ b/js/public/img/icons/safari-pinned-tab.svg
@@ -0,0 +1,149 @@
+
+
+
diff --git a/js/public/index.html b/js/public/index.html
new file mode 100644
index 000000000..d71e5fbbd
--- /dev/null
+++ b/js/public/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ eventos
+
+
+
+
+
+
+
diff --git a/js/public/manifest.json b/js/public/manifest.json
new file mode 100644
index 000000000..6635eec2d
--- /dev/null
+++ b/js/public/manifest.json
@@ -0,0 +1,20 @@
+{
+ "name": "eventos",
+ "short_name": "eventos",
+ "icons": [
+ {
+ "src": "/img/icons/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/img/icons/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "start_url": "/index.html",
+ "display": "standalone",
+ "background_color": "#000000",
+ "theme_color": "#4DBA87"
+}
diff --git a/js/src/App.vue b/js/src/App.vue
index 29a117912..5460d0431 100644
--- a/js/src/App.vue
+++ b/js/src/App.vue
@@ -61,7 +61,7 @@
add
- © Thomas Citharel {{ new Date().getFullYear() }} - Made with API Platform & VueJS & Vuetify with some love and some weeks
+ © Thomas Citharel {{ new Date().getFullYear() }} - Made with Elixir, Phoenix & VueJS & Vuetify with some love and some weeks
{
if (response.ok) return response;
diff --git a/js/static/oh_no.jpg b/js/src/assets/oh_no.jpg
similarity index 100%
rename from js/static/oh_no.jpg
rename to js/src/assets/oh_no.jpg
diff --git a/js/src/auth/index.js b/js/src/auth/index.js
index 98a064f35..b6a8d8eff 100644
--- a/js/src/auth/index.js
+++ b/js/src/auth/index.js
@@ -1,10 +1,10 @@
-import { API_HOST, API_PATH } from '../api/_entrypoint';
+import { API_ORIGIN, API_PATH } from '../api/_entrypoint';
// URL and endpoint constants
-const LOGIN_URL = `${API_HOST}${API_PATH}/login`;
-const SIGNUP_URL = `${API_HOST}${API_PATH}/users/`;
-const CHECK_AUTH = `${API_HOST}${API_PATH}/user/`;
-const REFRESH_TOKEN = `${API_HOST}${API_PATH}/token/refresh`;
+const LOGIN_URL = `${API_ORIGIN}${API_PATH}/login`;
+const SIGNUP_URL = `${API_ORIGIN}${API_PATH}/users/`;
+const CHECK_AUTH = `${API_ORIGIN}${API_PATH}/user/`;
+const REFRESH_TOKEN = `${API_ORIGIN}${API_PATH}/token/refresh`;
export default {
diff --git a/js/src/components/Account/Account.vue b/js/src/components/Account/Account.vue
index f320450e6..bf6d37afa 100644
--- a/js/src/components/Account/Account.vue
+++ b/js/src/components/Account/Account.vue
@@ -4,13 +4,14 @@
+
chevron_left
-
+
edit
@@ -22,7 +23,7 @@
- {{ account.display_name }}
- @{{ account.username }}@{{ account.server.address }}
-
+ {{ actor.display_name }}
+ @{{ actor.username }}@{{ actor.domain }}
+
+
@@ -74,15 +76,15 @@
-
+
Participated at
-
+
@@ -115,15 +117,15 @@
-
+
Organized events
-
+
@@ -169,12 +171,17 @@ export default {
name: 'Account',
data() {
return {
- account: null,
- loading: true,
+ actor: null,
+ loading: true,
}
},
- props: ['id'],
- mounted() {
+ props: {
+ name: {
+ type: String,
+ required: true,
+ }
+ },
+ created() {
this.fetchData();
},
watch: {
@@ -183,12 +190,12 @@ export default {
},
methods: {
fetchData() {
- eventFetch(`/accounts/${this.id}`, this.$store)
+ eventFetch(`/actors/${this.name}`, this.$store)
.then(response => response.json())
.then((response) => {
- this.account = response.data;
+ this.actor = response.data;
this.loading = false;
- console.log(this.account);
+ console.log(this.actor);
})
}
}
diff --git a/js/src/components/Event/Create.vue b/js/src/components/Event/Create.vue
index 3a19af925..bc9eadf09 100644
--- a/js/src/components/Event/Create.vue
+++ b/js/src/components/Event/Create.vue
@@ -1,194 +1,201 @@
-
+
Create a new event
-
- Basic Informations
- Title and description
-
-
-
-
-
-
-
+
+
+ Basic Informations
+ Title and description
+
+
+ Date and place
+
+ Extra informations
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- Next
-
- Date and place
-
- Event starts at:
-
-
- Event ends at:
-
-
+
+
+
+
+
+
+
+
+ Next
+
+
+ Event starts at:
+
+
+ Event ends at:
+
+
-
-
- Next
-
- Extra informations
-
-
-
-
+
+
+ Next
+
+
+
+
+
+
Create event
@@ -197,7 +204,6 @@
diff --git a/js/src/components/Group/GroupList.vue b/js/src/components/Group/GroupList.vue
index 2fa196244..c9151a916 100644
--- a/js/src/components/Group/GroupList.vue
+++ b/js/src/components/Group/GroupList.vue
@@ -9,27 +9,26 @@
- {{ group.title }}
+ {{ group.username }}
-
{{ group.startDate | formatDate }} Ã {{ group.location }}
-
{{ group.description }}
+
{{ group.summary }}
Organisé par {{ group.organizer.username }}
- lockJoin
- Explore
- Delete
+ lockJoin
+ Explore
+ Delete
@@ -53,28 +52,32 @@
this.fetchData();
},
methods: {
+ username_with_domain(actor) {
+ return actor.username + (actor.domain === null ? '' : `@${actor.domain}`)
+ },
fetchData() {
eventFetch('/groups', this.$store)
.then(response => response.json())
.then((data) => {
+ console.log(data);
this.loading = false;
this.groups = data.data;
});
},
- deleteEvent(id) {
+ deleteGroup(group) {
const router = this.$router;
- eventFetch('/groups/' + id, this.$store, {'method': 'DELETE'})
+ eventFetch(`/groups/${this.username_with_domain(group)}`, this.$store, {'method': 'DELETE'})
.then(response => response.json())
.then(() => router.push('/groups'));
},
- viewEvent(id) {
- this.$router.push({ name: 'Group', params: { id } })
+ viewActor(actor) {
+ this.$router.push({ name: 'Group', params: { name: this.username_with_domain(actor) } })
},
- joinGroup(id) {
+ joinGroup(group) {
const router = this.$router;
- eventFetch('/groups/' + id + '/join', this.$store)
+ eventFetch(`/groups/${this.username_with_domain(group)}/join`, this.$store, { method: 'POST' })
.then(response => response.json())
- .then(() => router.push('/group/' + id))
+ .then(() => router.push({ name: 'Group', params: { name: this.username_with_domain(group) } }));
}
},
};
diff --git a/js/src/components/Home.vue b/js/src/components/Home.vue
index f8afcf142..8cec05007 100644
--- a/js/src/components/Home.vue
+++ b/js/src/components/Home.vue
@@ -1,10 +1,59 @@
- {{ $t("home.welcome", { 'username': this.displayed_name }) }}
- {{ $t("home.welcome_off", { 'username': $store.state.user.username}) }}
- {{ $t('home.events') }}
- {{ $t('home.login') }}
- {{ $t('home.register') }}
+
+
+
+
+ Find events you like
+ Share it with Eventos
+ {{ $t("home.register") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ event.title }}
+
+
+
+
+
+
+
{{ event.begins_on | formatDate }}
+
+
+
+
+
+
Organisé par {{ event.organizer.display_name }}
+
+
+
+
+
+
+
+
my_locationMe géolocaliser
@@ -36,6 +85,7 @@ export default {
name: 'Home',
data() {
return {
+ gradient: 'to top right, rgba(63,81,181, .7), rgba(25,32,72, .7)',
user: null,
searchTerm: null,
location_field: {
@@ -43,14 +93,15 @@ export default {
search: null,
},
locations: [],
+ events: [],
};
},
- mounted() {
- // this.fetchLocations();
+ created() {
+ this.fetchData();
},
computed: {
displayed_name: function() {
- return this.$store.state.user.account.display_name === null ? this.$store.state.user.account.username : this.$store.state.user.account.display_name
+ return this.$store.state.user.actor.display_name === null ? this.$store.state.user.actor.username : this.$store.state.user.actor.display_name
},
},
methods: {
@@ -61,6 +112,14 @@ export default {
this.locations = response;
});
},
+ fetchData() {
+ eventFetch('/events', this.$store)
+ .then(response => response.json())
+ .then((response) => {
+ this.loading = false;
+ this.events = response.data;
+ });
+ },
geoLocalize() {
const router = this.$router;
if (sessionStorage.getItem('City')) {
@@ -85,6 +144,9 @@ export default {
sessionStorage.setItem('City', geohash);
this.$router.push({name: 'EventList', params: {location: geohash}});
},
+ viewEvent(event) {
+ this.$router.push({ name: 'Event', params: { uuid: event.uuid } })
+ },
},
};
diff --git a/js/src/components/NavBar.vue b/js/src/components/NavBar.vue
index cdc74fa10..c6b098051 100644
--- a/js/src/components/NavBar.vue
+++ b/js/src/components/NavBar.vue
@@ -9,7 +9,7 @@
- Libre-Event
+ Eventos
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{ this.displayed_name }}
+ {{ this.displayed_name }}
@@ -88,48 +103,62 @@
},
searchSelect(val) {
console.log(val);
- if (val.hasOwnProperty('addressLocality')) {
+ if (val.type === 'Event') {
+ this.$router.push({name: 'Event', params: { name: val.organizer.username, slug: val.slug }});
+ } else if (val.type === 'Locality') {
this.$router.push({name: 'EventList', params: {location: val.geohash}});
} else {
- this.$router.push({name: 'Account', params: {id: val.id}});
+ this.$router.push({name: 'Account', params: { name : this.username_with_domain(val) }});
}
}
},
computed: {
displayed_name: function() {
- return this.$store.state.user.account.display_name === null ? this.$store.state.user.account.username : this.$store.state.user.account.display_name
+ return this.$store.state.user.actor.display_name === null ? this.$store.state.user.actor.username : this.$store.state.user.actor.display_name
},
},
methods: {
+ username_with_domain(actor) {
+ if (actor.type !== 'Event') {
+ return actor.username + (actor.domain === null ? '' : `@${actor.domain}`)
+ }
+ return actor.title;
+ },
getUser() {
return this.$store.state.user === undefined ? false : this.$store.state.user;
},
querySelections(searchTerm) {
this.searchElement.loading = true;
- eventFetch('/find/', this.$store, {method: 'POST', body: JSON.stringify({search: searchTerm})})
+ eventFetch(`/search/${searchTerm}`, this.$store)
.then(response => response.json())
.then((results) => {
+ console.log('results');
console.log(results);
- const accountResults = results.accounts.map((result) => {
- if (result.server) {
- result.displayedText = `${result.username}@${result.server.address}`;
+ const accountResults = results.data.actors.map((result) => {
+ if (result.domain) {
+ result.displayedText = `${result.username}@${result.domain}`;
} else {
result.displayedText = result.username;
}
return result;
});
- const cities = new Set();
- const placeResults = results.places.map((result) => {
- result.displayedText = result.addressLocality;
- return result;
- }).filter((result) => {
- if (cities.has(result.addressLocality)) {
- return false;
- }
- cities.add(result.addressLocality);
- return true;
+
+ const eventsResults = results.data.events.map((result) => {
+ result.displayedText = result.title;
+ return result;
});
- this.searchElement.items = accountResults.concat(placeResults);
+ // const cities = new Set();
+ // const placeResults = results.places.map((result) => {
+ // result.displayedText = result.addressLocality;
+ // return result;
+ // }).filter((result) => {
+ // if (cities.has(result.addressLocality)) {
+ // return false;
+ // }
+ // cities.add(result.addressLocality);
+ // return true;
+ // });
+ this.searchElement.items = accountResults.concat(eventsResults);
this.searchElement.loading = false;
});
}
diff --git a/js/src/components/PageNotFound.vue b/js/src/components/PageNotFound.vue
index 7e2196e7f..037ee27a3 100644
--- a/js/src/components/PageNotFound.vue
+++ b/js/src/components/PageNotFound.vue
@@ -3,7 +3,7 @@
404 !
-
+
diff --git a/js/src/i18n/en.js b/js/src/i18n/en.js
index b04cdf18f..593c3815c 100644
--- a/js/src/i18n/en.js
+++ b/js/src/i18n/en.js
@@ -1,7 +1,7 @@
export default {
home: {
- welcome: 'Welcome on Libre-Event, {username}',
- welcome_off: 'Welcome on Libre-Event',
+ welcome: 'Welcome on Eventos, {username}',
+ welcome_off: 'Welcome on Eventos',
events: 'Events',
groups: 'Groups',
login: 'Login',
diff --git a/js/src/i18n/fr.js b/js/src/i18n/fr.js
index 08dda4648..60a89e81d 100644
--- a/js/src/i18n/fr.js
+++ b/js/src/i18n/fr.js
@@ -1,7 +1,7 @@
export default {
home: {
- welcome: 'Bienvenue sur Libre-Event, {username}!',
- welcome_off: 'Bienvenue sur Libre-Event',
+ welcome: 'Bienvenue sur Eventos, {username}!',
+ welcome_off: 'Bienvenue sur Eventos',
events: 'Événements',
groups: 'Groupes',
login: 'Se connecter',
diff --git a/js/src/main.js b/js/src/main.js
index a8efa3c1f..0cc6e7f3e 100644
--- a/js/src/main.js
+++ b/js/src/main.js
@@ -3,10 +3,12 @@
import Vue from 'vue';
// import * as VueGoogleMaps from 'vue2-google-maps';
import VueMarkdown from 'vue-markdown';
+import VuetifyGoogleAutocomplete from 'vuetify-google-autocomplete';
import Vuetify from 'vuetify';
import Vuex from 'vuex';
import moment from 'moment';
import VuexI18n from 'vuex-i18n';
+import 'material-design-icons/iconfont/material-icons.css';
import 'vuetify/dist/vuetify.min.css';
import App from '@/App';
import router from '@/router';
@@ -16,6 +18,10 @@ import auth from '@/auth';
Vue.config.productionTip = false;
+Vue.use(VuetifyGoogleAutocomplete, {
+ apiKey: 'AIzaSyBF37pw38j0giICt73TCAPNogc07Upe_Q4', // Can also be an object. E.g, for Google Maps Premium API, pass `{ client: }`
+});
+
/*Vue.use(VueGoogleMaps, {
load: {
key: 'AIzaSyBF37pw38j0giICt73TCAPNogc07Upe_Q4',
@@ -31,6 +37,7 @@ let language = window.navigator.userLanguage || window.navigator.language;
moment.locale(language);
Vue.filter('formatDate', value => (value ? moment(String(value)).format('LLLL') : null));
+Vue.filter('formatDay', value => (value ? moment(String(value)).format('LL') : null));
if (!(language in translations)) {
[language] = language.split('-', 1);
diff --git a/js/src/registerServiceWorker.js b/js/src/registerServiceWorker.js
new file mode 100644
index 000000000..fbf9078f9
--- /dev/null
+++ b/js/src/registerServiceWorker.js
@@ -0,0 +1,24 @@
+/* eslint-disable no-console */
+
+import { register } from 'register-service-worker';
+
+if (process.env.NODE_ENV === 'production') {
+ register(`${process.env.BASE_URL}service-worker.js`, {
+ ready() {
+ console.log('App is being served from cache by a service worker.\n' +
+ 'For more details, visit https://goo.gl/AFskqB');
+ },
+ cached() {
+ console.log('Content has been cached for offline use.');
+ },
+ updated() {
+ console.log('New content is available; please refresh.');
+ },
+ offline() {
+ console.log('No internet connection found. App is running in offline mode.');
+ },
+ error(error) {
+ console.error('Error during service worker registration:', error);
+ },
+ });
+}
diff --git a/js/src/router/index.js b/js/src/router/index.js
index 02e0be052..f48b22fe6 100644
--- a/js/src/router/index.js
+++ b/js/src/router/index.js
@@ -33,13 +33,6 @@ const router = new Router({
component: EventList,
meta: { requiredAuth: false },
},
- {
- path: '/events/:id(\\d+)',
- name: 'Event',
- component: Event,
- props: true,
- meta: { requiredAuth: false },
- },
{
path: '/events/create',
name: 'CreateEvent',
@@ -84,14 +77,7 @@ const router = new Router({
meta: { requiredAuth: false },
},
{
- path: '/accounts/:id(\\d+)',
- name: 'Account',
- component: Account,
- props: true,
- meta: { requiredAuth: false },
- },
- {
- path: '/group',
+ path: '/groups',
name: 'GroupList',
component: GroupList,
meta: { requiredAuth: false },
@@ -103,12 +89,26 @@ const router = new Router({
meta: { requiredAuth: true },
},
{
- path: '/group/:id',
+ path: '/~:name',
name: 'Group',
component: Group,
props: true,
meta: { requiredAuth: false },
},
+ {
+ path: '/@:name',
+ name: 'Account',
+ component: Account,
+ props: true,
+ meta: { requiredAuth: false },
+ },
+ {
+ path: '/events/:uuid',
+ name: 'Event',
+ component: Event,
+ props: true,
+ meta: { requiredAuth: false },
+ },
{ path: "*",
name: 'PageNotFound',
component: PageNotFound,
diff --git a/js/static/.gitkeep b/js/static/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/js/test/e2e/custom-assertions/elementCount.js b/js/test/e2e/custom-assertions/elementCount.js
deleted file mode 100644
index 696a36719..000000000
--- a/js/test/e2e/custom-assertions/elementCount.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// A custom Nightwatch assertion.
-// the name of the method is the filename.
-// can be used in tests like this:
-//
-// browser.assert.elementCount(selector, count)
-//
-// for how to write custom assertions see
-// http://nightwatchjs.org/guide#writing-custom-assertions
-exports.assertion = function (selector, count) {
- this.message = 'Testing if element <' + selector + '> has count: ' + count;
- this.expected = count;
- this.pass = function (val) {
- return val === this.expected;
- }
- this.value = function (res) {
- return res.value;
- }
- this.command = function (cb) {
- var self = this;
- return this.api.execute(function (selector) {
- return document.querySelectorAll(selector).length;
- }, [selector], function (res) {
- cb.call(self, res);
- });
- }
-}
diff --git a/js/test/e2e/nightwatch.conf.js b/js/test/e2e/nightwatch.conf.js
deleted file mode 100644
index f019c0ac4..000000000
--- a/js/test/e2e/nightwatch.conf.js
+++ /dev/null
@@ -1,46 +0,0 @@
-require('babel-register')
-var config = require('../../config')
-
-// http://nightwatchjs.org/gettingstarted#settings-file
-module.exports = {
- src_folders: ['test/e2e/specs'],
- output_folder: 'test/e2e/reports',
- custom_assertions_path: ['test/e2e/custom-assertions'],
-
- selenium: {
- start_process: true,
- server_path: require('selenium-server').path,
- host: '127.0.0.1',
- port: 4444,
- cli_args: {
- 'webdriver.chrome.driver': require('chromedriver').path
- }
- },
-
- test_settings: {
- default: {
- selenium_port: 4444,
- selenium_host: 'localhost',
- silent: true,
- globals: {
- devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
- }
- },
-
- chrome: {
- desiredCapabilities: {
- browserName: 'chrome',
- javascriptEnabled: true,
- acceptSslCerts: true
- }
- },
-
- firefox: {
- desiredCapabilities: {
- browserName: 'firefox',
- javascriptEnabled: true,
- acceptSslCerts: true
- }
- }
- }
-}
diff --git a/js/test/e2e/runner.js b/js/test/e2e/runner.js
deleted file mode 100644
index 2702f5077..000000000
--- a/js/test/e2e/runner.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// 1. start the dev server using production config
-process.env.NODE_ENV = 'testing';
-var server = require('../../build/dev-server.js');
-
-server.ready.then(() => {
- // 2. run the nightwatch test suite against it
- // to run in additional browsers:
- // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings"
- // 2. add it to the --env flag below
- // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
- // For more information on Nightwatch's config file, see
- // http://nightwatchjs.org/guide#settings-file
- var opts = process.argv.slice(2);
- if (opts.indexOf('--config') === -1) {
- opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']);
- }
- if (opts.indexOf('--env') === -1) {
- opts = opts.concat(['--env', 'chrome']);
- }
-
- var spawn = require('cross-spawn');
- var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' });
-
- runner.on('exit', function (code) {
- server.close();
- process.exit(code);
- });
-
- runner.on('error', function (err) {
- server.close();
- throw err;
- });
-});
diff --git a/js/test/unit/.eslintrc b/js/test/unit/.eslintrc
deleted file mode 100644
index 959a4f4b5..000000000
--- a/js/test/unit/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "env": {
- "mocha": true
- },
- "globals": {
- "expect": true,
- "sinon": true
- }
-}
diff --git a/js/test/unit/index.js b/js/test/unit/index.js
deleted file mode 100644
index b31d3a068..000000000
--- a/js/test/unit/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import Vue from 'vue';
-
-Vue.config.productionTip = false;
-
-// require all test files (files that ends with .spec.js)
-const testsContext = require.context('./specs', true, /\.spec$/);
-testsContext.keys().forEach(testsContext);
-
-// require all src files except main.js for coverage.
-// you can also change this to match only the subset of files that
-// you want coverage for.
-const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/);
-srcContext.keys().forEach(srcContext);
diff --git a/js/test/unit/karma.conf.js b/js/test/unit/karma.conf.js
deleted file mode 100644
index ec3379c59..000000000
--- a/js/test/unit/karma.conf.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// This is a karma config file. For more details see
-// http://karma-runner.github.io/0.13/config/configuration-file.html
-// we are also using it with karma-webpack
-// https://github.com/webpack/karma-webpack
-
-var webpackConfig = require('../../build/webpack.test.conf');
-
-module.exports = function (config) {
- config.set({
- // to run in additional browsers:
- // 1. install corresponding karma launcher
- // http://karma-runner.github.io/0.13/config/browsers.html
- // 2. add it to the `browsers` array below.
- browsers: ['PhantomJS'],
- frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'],
- reporters: ['spec', 'coverage'],
- files: ['./index.js'],
- preprocessors: {
- './index.js': ['webpack', 'sourcemap']
- },
- webpack: webpackConfig,
- webpackMiddleware: {
- noInfo: true,
- },
- coverageReporter: {
- dir: './coverage',
- reporters: [
- { type: 'lcov', subdir: '.' },
- { type: 'text-summary' },
- ]
- },
- });
-};
diff --git a/js/test/unit/specs/Hello.spec.js b/js/test/unit/specs/Hello.spec.js
deleted file mode 100644
index 43830f45e..000000000
--- a/js/test/unit/specs/Hello.spec.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import Vue from 'vue';
-import Hello from '@/components/Home';
-
-describe('Hello.vue', () => {
- it('should render correct contents', () => {
- const Constructor = Vue.extend(Hello);
- const vm = new Constructor().$mount();
- expect(vm.$el.querySelector('.hello h1').textContent)
- .to.equal('Welcome to Your Vue.js App');
- });
-});
diff --git a/js/tests/e2e/custom-assertions/elementCount.js b/js/tests/e2e/custom-assertions/elementCount.js
new file mode 100644
index 000000000..6fb13ff69
--- /dev/null
+++ b/js/tests/e2e/custom-assertions/elementCount.js
@@ -0,0 +1,19 @@
+// A custom Nightwatch assertion.
+// The assertion name is the filename.
+// Example usage:
+//
+// browser.assert.elementCount(selector, count)
+//
+// For more information on custom assertions see:
+// http://nightwatchjs.org/guide#writing-custom-assertions
+
+exports.assertion = function elementCount(selector, count) {
+ this.message = `Testing if element <${selector}> has count: ${count}`;
+ this.expected = count;
+ this.pass = val => val === count;
+ this.value = res => res.value;
+ function evaluator(_selector) {
+ return document.querySelectorAll(_selector).length;
+ }
+ this.command = cb => this.api.execute(evaluator, [selector], cb);
+};
diff --git a/js/test/e2e/specs/test.js b/js/tests/e2e/specs/test.js
similarity index 55%
rename from js/test/e2e/specs/test.js
rename to js/tests/e2e/specs/test.js
index ee3514ee6..5814ea049 100644
--- a/js/test/e2e/specs/test.js
+++ b/js/tests/e2e/specs/test.js
@@ -2,14 +2,9 @@
// http://nightwatchjs.org/guide#usage
module.exports = {
- 'default e2e tests': function test(browser) {
- // automatically uses dev Server port from /config.index.js
- // default: http://localhost:8080
- // see nightwatch.conf.js
- const devServer = browser.globals.devServerURL;
-
+ 'default e2e tests': (browser) => {
browser
- .url(devServer)
+ .url(process.env.VUE_DEV_SERVER_URL)
.waitForElementVisible('#app', 5000)
.assert.elementPresent('.hello')
.assert.containsText('h1', 'Welcome to Your Vue.js App')
diff --git a/js/tests/unit/.eslintrc.js b/js/tests/unit/.eslintrc.js
new file mode 100644
index 000000000..74fe62701
--- /dev/null
+++ b/js/tests/unit/.eslintrc.js
@@ -0,0 +1,8 @@
+module.exports = {
+ env: {
+ mocha: true
+ },
+ rules: {
+ 'import/no-extraneous-dependencies': 'off'
+ }
+}
\ No newline at end of file
diff --git a/js/tests/unit/HelloWorld.spec.js b/js/tests/unit/HelloWorld.spec.js
new file mode 100644
index 000000000..7527955b9
--- /dev/null
+++ b/js/tests/unit/HelloWorld.spec.js
@@ -0,0 +1,13 @@
+import { expect } from 'chai';
+import { shallow } from '@vue/test-utils';
+import HelloWorld from '@/components/HelloWorld.vue';
+
+describe('HelloWorld.vue', () => {
+ it('renders props.msg when passed', () => {
+ const msg = 'new message';
+ const wrapper = shallow(HelloWorld, {
+ propsData: { msg },
+ });
+ expect(wrapper.text()).to.include(msg);
+ });
+});
diff --git a/js/vue.config.js b/js/vue.config.js
new file mode 100644
index 000000000..e0f24a3cd
--- /dev/null
+++ b/js/vue.config.js
@@ -0,0 +1,11 @@
+const Dotenv = require('dotenv-webpack');
+
+module.exports = {
+ lintOnSave: false,
+ compiler: true,
+ configureWebpack: {
+ plugins: [
+ new Dotenv(),
+ ],
+ },
+};
diff --git a/lib/eventos/accounts/account.ex b/lib/eventos/accounts/account.ex
deleted file mode 100644
index 70a85a5a7..000000000
--- a/lib/eventos/accounts/account.ex
+++ /dev/null
@@ -1,45 +0,0 @@
-defmodule Eventos.Accounts.Account do
- @moduledoc """
- Represents an account (local and remote users)
- """
- use Ecto.Schema
- import Ecto.Changeset
- alias Eventos.Accounts.{Account, User}
- alias Eventos.Groups.{Group, Member, Request}
- alias Eventos.Events.Event
-
- schema "accounts" do
- field :description, :string
- field :display_name, :string
- field :domain, :string
- field :private_key, :string
- field :public_key, :string
- field :suspended, :boolean, default: false
- field :uri, :string
- field :url, :string
- field :username, :string
- field :avatar_url, :string
- field :banner_url, :string
- has_many :organized_events, Event, [foreign_key: :organizer_account_id]
- many_to_many :groups, Group, join_through: Member
- has_many :group_request, Request
- has_one :user, User
-
- timestamps()
- end
-
- @doc false
- def changeset(%Account{} = account, attrs) do
- account
- |> cast(attrs, [:username, :domain, :display_name, :description, :private_key, :public_key, :suspended, :uri, :url, :avatar_url, :banner_url])
- |> validate_required([:username, :public_key, :suspended, :uri, :url])
- |> unique_constraint(:username, name: :accounts_username_domain_index)
- end
-
- def registration_changeset(%Account{} = account, attrs) do
- account
- |> cast(attrs, [:username, :domain, :display_name, :description, :private_key, :public_key, :suspended, :uri, :url, :avatar_url, :banner_url])
- |> validate_required([:username, :public_key, :suspended, :uri, :url])
- |> unique_constraint(:username)
- end
-end
diff --git a/lib/eventos/accounts/accounts.ex b/lib/eventos/accounts/accounts.ex
deleted file mode 100644
index 2a5e39096..000000000
--- a/lib/eventos/accounts/accounts.ex
+++ /dev/null
@@ -1,290 +0,0 @@
-defmodule Eventos.Accounts do
- @moduledoc """
- The Accounts context.
- """
-
- import Ecto.Query, warn: false
- import Exgravatar
-
- alias Eventos.Repo
- alias Eventos.Accounts.Account
-
- @doc """
- Returns the list of accounts.
-
- ## Examples
-
- iex> list_accounts()
- [%Account{}, ...]
-
- """
- def list_accounts do
- Repo.all(Account)
- end
-
- @doc """
- Gets a single account.
-
- Raises `Ecto.NoResultsError` if the Account does not exist.
-
- ## Examples
-
- iex> get_account!(123)
- %Account{}
-
- iex> get_account!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_account!(id) do
- Repo.get!(Account, id)
- end
-
- def get_account_with_everything!(id) do
- account = Repo.get!(Account, id)
- Repo.preload(account, :organized_events)
- end
-
- @doc """
- Creates a account.
-
- ## Examples
-
- iex> create_account(%{field: value})
- {:ok, %Account{}}
-
- iex> create_account(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_account(attrs \\ %{}) do
- %Account{}
- |> Account.changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a account.
-
- ## Examples
-
- iex> update_account(account, %{field: new_value})
- {:ok, %Account{}}
-
- iex> update_account(account, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_account(%Account{} = account, attrs) do
- account
- |> Account.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a Account.
-
- ## Examples
-
- iex> delete_account(account)
- {:ok, %Account{}}
-
- iex> delete_account(account)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_account(%Account{} = account) do
- Repo.delete(account)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking account changes.
-
- ## Examples
-
- iex> change_account(account)
- %Ecto.Changeset{source: %Account{}}
-
- """
- def change_account(%Account{} = account) do
- Account.changeset(account, %{})
- end
-
- alias Eventos.Accounts.User
-
- @doc """
- Returns the list of users.
-
- ## Examples
-
- iex> list_users()
- [%User{}, ...]
-
- """
- def list_users do
- Repo.all(User)
- end
-
- def list_users_with_accounts do
- users = Repo.all(User)
- Repo.preload(users, :account)
- end
-
- @doc """
- Gets a single user.
-
- Raises `Ecto.NoResultsError` if the User does not exist.
-
- ## Examples
-
- iex> get_user!(123)
- %User{}
-
- iex> get_user!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_user!(id), do: Repo.get!(User, id)
-
- def get_user_with_account!(id) do
- user = Repo.get!(User, id)
- Repo.preload(user, :account)
- end
-
- @doc """
- Get an user by email
- """
- def find_by_email(email) do
- user = Repo.get_by(User, email: email)
- Repo.preload(user, :account)
- end
-
- @doc """
- Authenticate user
- """
- def authenticate(%{user: user, password: password}) do
- # Does password match the one stored in the database?
- case Comeonin.Argon2.checkpw(password, user.password_hash) do
- true ->
- # Yes, create and return the token
- EventosWeb.Guardian.encode_and_sign(user)
- _ ->
- # No, return an error
- {:error, :unauthorized}
- end
- end
-
- @doc """
- Fetch gravatar url for email and set it as avatar if it exists
- """
- defp gravatar(email) do
- url = gravatar_url(email, default: "404")
- case HTTPoison.get(url, [], [ssl: [{:versions, [:'tlsv1.2']}]]) do # See https://github.com/edgurgel/httpoison#note-about-broken-ssl-in-erlang-19
- {:ok, %HTTPoison.Response{status_code: 200}} ->
- url
- _ -> # User doesn't have a gravatar email, or other issues
- nil
- end
- end
-
- @doc """
- Register user
- """
- def register(%{email: email, password: password, username: username}) do
- {:ok, {privkey, pubkey}} = RsaEx.generate_keypair("4096")
-
-
- avatar = gravatar(email)
- account = Eventos.Accounts.Account.registration_changeset(%Eventos.Accounts.Account{}, %{
- username: username,
- domain: nil,
- private_key: privkey,
- public_key: pubkey,
- uri: "h",
- url: "h",
- avatar_url: avatar,
- })
-
- user = Eventos.Accounts.User.registration_changeset(%Eventos.Accounts.User{}, %{
- email: email,
- password: password
- })
-
-
- account_with_user = Ecto.Changeset.put_assoc(account, :user, user)
-
- try do
- Eventos.Repo.insert!(account_with_user)
- user = find_by_email(email)
- {:ok, user}
- rescue
- e in Ecto.InvalidChangesetError ->
- {:error, e.changeset.changes.user.errors}
- end
- end
-
- @doc """
- Creates a user.
-
- ## Examples
-
- iex> create_user(%{field: value})
- {:ok, %User{}}
-
- iex> create_user(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_user(attrs \\ %{}) do
- %User{}
- |> User.registration_changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a user.
-
- ## Examples
-
- iex> update_user(user, %{field: new_value})
- {:ok, %User{}}
-
- iex> update_user(user, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_user(%User{} = user, attrs) do
- user
- |> User.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a User.
-
- ## Examples
-
- iex> delete_user(user)
- {:ok, %User{}}
-
- iex> delete_user(user)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_user(%User{} = user) do
- Repo.delete(user)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking user changes.
-
- ## Examples
-
- iex> change_user(user)
- %Ecto.Changeset{source: %User{}}
-
- """
- def change_user(%User{} = user) do
- User.changeset(user, %{})
- end
-end
diff --git a/lib/eventos/activity.ex b/lib/eventos/activity.ex
new file mode 100644
index 000000000..b28d5b615
--- /dev/null
+++ b/lib/eventos/activity.ex
@@ -0,0 +1,7 @@
+defmodule Eventos.Activity do
+ @moduledoc """
+ Represents an activity
+ """
+
+ defstruct [:id, :data, :local, :actor, :recipients, :notifications]
+end
diff --git a/lib/eventos/actors/actor.ex b/lib/eventos/actors/actor.ex
new file mode 100644
index 000000000..92f3acce3
--- /dev/null
+++ b/lib/eventos/actors/actor.ex
@@ -0,0 +1,169 @@
+defmodule Eventos.Actors.Actor.TitleSlug do
+ @moduledoc """
+ Slug generation for groups
+ """
+ alias Eventos.Actors.Actor
+ import Ecto.Query
+ alias Eventos.Repo
+ use EctoAutoslugField.Slug, from: :title, to: :slug
+
+ def build_slug(sources, changeset) do
+ slug = super(sources, changeset)
+ build_unique_slug(slug, changeset)
+ end
+
+ defp build_unique_slug(slug, changeset) do
+ query = from a in Actor,
+ where: a.slug == ^slug
+
+ case Repo.one(query) do
+ nil -> slug
+ _story ->
+ slug
+ |> Eventos.Slug.increment_slug()
+ |> build_unique_slug(changeset)
+ end
+ end
+end
+
+import EctoEnum
+defenum Eventos.Actors.ActorTypeEnum, :actor_type, [:Person, :Application, :Group, :Organization, :Service]
+
+
+defmodule Eventos.Actors.Actor do
+ @moduledoc """
+ Represents an actor (local and remote actors)
+ """
+ use Ecto.Schema
+ import Ecto.Changeset
+ alias Eventos.Actors
+ alias Eventos.Actors.{Actor, User, Follower, Member}
+ alias Eventos.Events.Event
+ alias Eventos.Service.ActivityPub
+
+ import Ecto.Query
+ alias Eventos.Repo
+
+ import Logger
+
+# @type t :: %Actor{description: String.t, id: integer(), inserted_at: DateTime.t, updated_at: DateTime.t, display_name: String.t, domain: String.t, private_key: String.t, public_key: String.t, suspended: boolean(), url: String.t, username: String.t, organized_events: list(), groups: list(), group_request: list(), user: User.t, field: ActorTypeEnum.t}
+
+ schema "actors" do
+ field :url, :string
+ field :outbox_url, :string
+ field :inbox_url, :string
+ field :following_url, :string
+ field :followers_url, :string
+ field :shared_inbox_url, :string
+ field :type, Eventos.Actors.ActorTypeEnum
+ field :name, :string
+ field :domain, :string
+ field :summary, :string
+ field :preferred_username, :string
+ field :public_key, :string
+ field :private_key, :string
+ field :manually_approves_followers, :boolean, default: false
+ field :suspended, :boolean, default: false
+ field :avatar_url, :string
+ field :banner_url, :string
+ many_to_many :followers, Actor, join_through: Follower
+ has_many :organized_events, Event, [foreign_key: :organizer_actor_id]
+ many_to_many :memberships, Actor, join_through: Member
+ has_one :user, User
+
+ timestamps()
+ end
+
+ @doc false
+ def changeset(%Actor{} = actor, attrs) do
+ actor
+ |> Ecto.Changeset.cast(attrs, [:url, :outbox_url, :inbox_url, :shared_inbox_url, :following_url, :followers_url, :type, :name, :domain, :summary, :preferred_username, :public_key, :private_key, :manually_approves_followers, :suspended, :avatar_url, :banner_url])
+ |> validate_required([:preferred_username, :public_key, :suspended, :url])
+ |> unique_constraint(:prefered_username, name: :actors_preferred_username_domain_index)
+ end
+
+ def registration_changeset(%Actor{} = actor, attrs) do
+ actor
+ |> Ecto.Changeset.cast(attrs, [:preferred_username, :domain, :name, :summary, :private_key, :public_key, :suspended, :url, :type])
+ |> validate_required([:preferred_username, :public_key, :suspended, :url, :type])
+ |> unique_constraint(:prefered_username, name: :actors_preferred_username_domain_index)
+ end
+
+ @email_regex ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
+ def remote_actor_creation(params) do
+ changes =
+ %Actor{}
+ |> Ecto.Changeset.cast(params, [:url, :outbox_url, :inbox_url, :shared_inbox_url, :following_url, :followers_url, :type, :name, :domain, :summary, :preferred_username, :public_key, :manually_approves_followers, :avatar_url, :banner_url])
+ |> validate_required([:url, :outbox_url, :inbox_url, :type, :name, :domain, :preferred_username, :public_key])
+ |> unique_constraint(:preferred_username, name: :actors_preferred_username_domain_index)
+ |> validate_length(:summary, max: 5000)
+ |> validate_length(:preferred_username, max: 100)
+ |> put_change(:local, false)
+
+ Logger.debug("Remote actor creation")
+ Logger.debug(inspect changes)
+ changes
+ end
+
+ def group_creation(%Actor{} = actor, params) do
+ actor
+ |> Ecto.Changeset.cast(params, [:url, :outbox_url, :inbox_url, :shared_inbox_url, :type, :name, :domain, :summary, :preferred_username, :avatar_url, :banner_url])
+ |> put_change(:outbox_url, "#{EventosWeb.Endpoint.url()}/@#{params["prefered_username"]}/outbox")
+ |> put_change(:inbox_url, "#{EventosWeb.Endpoint.url()}/@#{params["prefered_username"]}/inbox")
+ |> put_change(:shared_inbox_url, "#{EventosWeb.Endpoint.url()}/inbox")
+ |> put_change(:url, "#{EventosWeb.Endpoint.url()}/@#{params["prefered_username"]}")
+ |> put_change(:domain, nil)
+ |> put_change(:type, "Group")
+ |> validate_required([:url, :outbox_url, :inbox_url, :type, :name, :preferred_username])
+ |> validate_length(:summary, max: 5000)
+ |> validate_length(:preferred_username, max: 100)
+ |> put_change(:local, true)
+ end
+
+ def get_or_fetch_by_url(url) do
+ if user = Actors.get_actor_by_url(url) do
+ user
+ else
+ case ActivityPub.make_actor_from_url(url) do
+ {:ok, user} ->
+ user
+ _ -> {:error, "Could not fetch by AP id"}
+ end
+ end
+ end
+
+ #@spec get_public_key_for_url(Actor.t) :: {:ok, String.t}
+ def get_public_key_for_url(url) do
+ with %Actor{} = actor <- get_or_fetch_by_url(url) do
+ get_public_key_for_actor(actor)
+ else
+ _ -> :error
+ end
+ end
+
+ #@spec get_public_key_for_actor(Actor.t) :: {:ok, String.t}
+ def get_public_key_for_actor(%Actor{} = actor) do
+ {:ok, actor.public_key}
+ end
+
+ #@spec get_private_key_for_actor(Actor.t) :: {:ok, String.t}
+ def get_private_key_for_actor(%Actor{} = actor) do
+ actor.private_key
+ end
+
+ def get_followers(%Actor{id: actor_id} = actor) do
+ Repo.all(
+ from a in Actor,
+ join: f in Follower, on: a.id == f.actor_id,
+ where: f.target_actor_id == ^actor_id
+ )
+ end
+
+ def get_followings(%Actor{id: actor_id} = actor) do
+ Repo.all(
+ from a in Actor,
+ join: f in Follower, on: a.id == f.target_actor_id,
+ where: f.actor_id == ^actor_id
+ )
+ end
+end
diff --git a/lib/eventos/actors/actors.ex b/lib/eventos/actors/actors.ex
new file mode 100644
index 000000000..f8373fb1e
--- /dev/null
+++ b/lib/eventos/actors/actors.ex
@@ -0,0 +1,674 @@
+defmodule Eventos.Actors do
+ @moduledoc """
+ The Actors context.
+ """
+
+ import Ecto.Query, warn: false
+ alias Eventos.Repo
+
+ alias Eventos.Actors.Actor
+ alias Eventos.Actors
+
+ alias Eventos.Service.ActivityPub
+
+ @doc """
+ Returns the list of actors.
+
+ ## Examples
+
+ iex> list_actors()
+ [%Actor{}, ...]
+
+ """
+ def list_actors do
+ Repo.all(Actor)
+ end
+
+ @doc """
+ Gets a single actor.
+
+ Raises `Ecto.NoResultsError` if the Actor does not exist.
+
+ ## Examples
+
+ iex> get_actor!(123)
+ %Actor{}
+
+ iex> get_actor!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_actor!(id) do
+ Repo.get!(Actor, id)
+ end
+
+ def get_actor_with_everything!(id) do
+ actor = Repo.get!(Actor, id)
+ Repo.preload(actor, :organized_events)
+ end
+
+ @doc """
+ Creates a actor.
+
+ ## Examples
+
+ iex> create_actor(%{field: value})
+ {:ok, %Actor{}}
+
+ iex> create_actor(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_actor(attrs \\ %{}) do
+ %Actor{}
+ |> Actor.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a actor.
+
+ ## Examples
+
+ iex> update_actor(actor, %{field: new_value})
+ {:ok, %Actor{}}
+
+ iex> update_actor(actor, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_actor(%Actor{} = actor, attrs) do
+ actor
+ |> Actor.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a Actor.
+
+ ## Examples
+
+ iex> delete_actor(actor)
+ {:ok, %Actor{}}
+
+ iex> delete_actor(actor)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_actor(%Actor{} = actor) do
+ Repo.delete(actor)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking actor changes.
+
+ ## Examples
+
+ iex> change_actor(actor)
+ %Ecto.Changeset{source: %Actor{}}
+
+ """
+ def change_actor(%Actor{} = actor) do
+ Actor.changeset(actor, %{})
+ end
+
+ @doc """
+ Returns a text representation of a local actor like user@domain.tld
+ """
+ def actor_to_local_name_and_domain(actor) do
+ "#{actor.preferred_username}@#{Application.get_env(:my, EventosWeb.Endpoint)[:url][:host]}"
+ end
+
+ @doc """
+ Returns a webfinger representation of an actor
+ """
+ def actor_to_webfinger_s(actor) do
+ "acct:#{actor_to_local_name_and_domain(actor)}"
+ end
+
+ @doc """
+ List the groups
+ """
+ def list_groups do
+ Repo.all(from a in Actor, where: a.type == "Group")
+ end
+
+ def get_group_by_name(name) do
+ actor = case String.split(name, "@") do
+ [name] ->
+ Repo.get_by(Actor, preferred_username: name, type: :Group)
+ [name, domain] ->
+ Repo.get_by(Actor, preferred_username: name, domain: domain, type: :Group)
+ end
+ end
+
+ @doc """
+ Creates a group.
+
+ ## Examples
+
+ iex> create_group(%{field: value})
+ {:ok, %Actor{}}
+
+ iex> create_group(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_group(attrs \\ %{}) do
+ %Actor{}
+ |> Actor.group_creation(attrs)
+ |> Repo.insert()
+ end
+
+ alias Eventos.Actors.User
+
+ @doc """
+ Returns the list of users.
+
+ ## Examples
+
+ iex> list_users()
+ [%User{}, ...]
+
+ """
+ def list_users do
+ Repo.all(User)
+ end
+
+ def list_users_with_actors do
+ users = Repo.all(User)
+ Repo.preload(users, :actor)
+ end
+
+ defp blank?(""), do: nil
+ defp blank?(n), do: n
+
+ def insert_or_update_actor(data) do
+ cs = Actor.remote_actor_creation(data)
+ Repo.insert(cs, on_conflict: [set: [public_key: data.public_key, avatar_url: data.avatar_url, banner_url: data.banner_url, name: data.name]], conflict_target: [:preferred_username, :domain])
+ end
+
+# def increase_event_count(%Actor{} = actor) do
+# event_count = (actor.info["event_count"] || 0) + 1
+# new_info = Map.put(actor.info, "note_count", note_count)
+#
+# cs = info_changeset(actor, %{info: new_info})
+#
+# update_and_set_cache(cs)
+# end
+
+ def count_users() do
+ Repo.one(
+ from u in User,
+ select: count(u.id)
+ )
+ end
+
+ @doc """
+ Gets a single user.
+
+ Raises `Ecto.NoResultsError` if the User does not exist.
+
+ ## Examples
+
+ iex> get_user!(123)
+ %User{}
+
+ iex> get_user!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_user!(id), do: Repo.get!(User, id)
+
+ def get_user_with_actor!(id) do
+ user = Repo.get!(User, id)
+ Repo.preload(user, :actor)
+ end
+
+ def get_actor_by_url(url) do
+ Repo.get_by(Actor, url: url)
+ end
+
+ def get_actor_by_name(name) do
+ actor = case String.split(name, "@") do
+ [name] ->
+ Repo.get_by(Actor, preferred_username: name)
+ [name, domain] ->
+ Repo.get_by(Actor, preferred_username: name, domain: domain)
+ end
+ end
+
+ def get_local_actor_by_name(name) do
+ Repo.one from a in Actor, where: a.preferred_username == ^name and is_nil(a.domain)
+ end
+
+ def get_local_actor_by_name_with_everything(name) do
+ actor = Repo.one from a in Actor, where: a.preferred_username == ^name and is_nil(a.domain)
+ Repo.preload(actor, :organized_events)
+ end
+
+ def get_actor_by_name_with_everything(name) do
+ actor = case String.split(name, "@") do
+ [name] -> Repo.one from a in Actor, where: a.preferred_username == ^name and is_nil(a.domain)
+ [name, domain] -> Repo.one from a in Actor, where: a.preferred_username == ^name and a.domain == ^domain
+ end
+ Repo.preload(actor, :organized_events)
+ end
+
+ def get_or_fetch_by_url(url) do
+ if actor = get_actor_by_url(url) do
+ actor
+ else
+ ap_try = ActivityPub.make_actor_from_url(url)
+
+ case ap_try do
+ {:ok, actor} ->
+ actor
+
+ _ -> {:error, "Could not fetch by AP id"}
+ end
+ end
+ end
+
+ @doc """
+ Find local users by it's username
+ """
+ def find_local_by_username(username) do
+ actors = Repo.all from a in Actor, where: (ilike(a.preferred_username, ^like_sanitize(username)) or ilike(a.name, ^like_sanitize(username))) and is_nil(a.domain)
+ Repo.preload(actors, :organized_events)
+ end
+
+ @doc """
+ Find actors by their name or displayed name
+ """
+ def find_actors_by_username(username) do
+ Repo.all from a in Actor, where: ilike(a.preferred_username, ^like_sanitize(username)) or ilike(a.name, ^like_sanitize(username))
+ end
+
+ @doc """
+ Sanitize the LIKE queries
+ """
+ defp like_sanitize(value) do
+ "%" <> String.replace(value, ~r/([\\%_])/, "\\1") <> "%"
+ end
+
+ @email_regex ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
+ def search(name) do
+ case find_actors_by_username(name) do # find already saved accounts
+ [] ->
+ with true <- Regex.match?(@email_regex, name), # no accounts found, let's test if it's an username@domain.tld
+ {:ok, actor} <- ActivityPub.find_or_make_actor_from_nickname(name) do # creating the actor in that case
+ {:ok, [actor]}
+ else
+ false -> {:ok, []}
+ {:error, err} -> {:error, err} # error fingering the actor
+ end
+ actors = [_|_] ->
+ {:ok, actors} # actors already saved found !
+ end
+ end
+
+ @doc """
+ Get an user by email
+ """
+ def find_by_email(email) do
+ user = Repo.get_by(User, email: email)
+ Repo.preload(user, :actor)
+ end
+
+ @doc """
+ Authenticate user
+ """
+ def authenticate(%{user: user, password: password}) do
+ # Does password match the one stored in the database?
+ case Comeonin.Argon2.checkpw(password, user.password_hash) do
+ true ->
+ # Yes, create and return the token
+ EventosWeb.Guardian.encode_and_sign(user)
+ _ ->
+ # No, return an error
+ {:error, :unauthorized}
+ end
+ end
+
+ @doc """
+ Register user
+ """
+ def register(%{email: email, password: password, username: username}) do
+ #{:ok, {privkey, pubkey}} = RsaEx.generate_keypair("4096")
+ {:ok, rsa_priv_key} = ExPublicKey.generate_key()
+ {:ok, rsa_pub_key} = ExPublicKey.public_key_from_private_key(rsa_priv_key)
+
+ actor = Eventos.Actors.Actor.registration_changeset(%Eventos.Actors.Actor{}, %{
+ preferred_username: username,
+ domain: nil,
+ private_key: rsa_priv_key |> ExPublicKey.pem_encode(),
+ public_key: rsa_pub_key |> ExPublicKey.pem_encode(),
+ url: EventosWeb.Endpoint.url() <> "/@" <> username,
+ })
+
+ user = Eventos.Actors.User.registration_changeset(%Eventos.Actors.User{}, %{
+ email: email,
+ password: password
+ })
+
+
+ actor_with_user = Ecto.Changeset.put_assoc(actor, :user, user)
+
+ try do
+ Eventos.Repo.insert!(actor_with_user)
+ user = find_by_email(email)
+ {:ok, user}
+ rescue
+ e in Ecto.InvalidChangesetError ->
+ {:error, e.changeset.changes.user.errors}
+ end
+ end
+
+ def register_bot_account(%{name: name, summary: summary}) do
+ key = :public_key.generate_key({:rsa, 2048, 65537})
+ entry = :public_key.pem_entry_encode(:RSAPrivateKey, key)
+ pem = :public_key.pem_encode([entry]) |> String.trim_trailing()
+
+ {:ok, rsa_priv_key} = ExPublicKey.generate_key()
+ {:ok, rsa_pub_key} = ExPublicKey.public_key_from_private_key(rsa_priv_key)
+
+ actor = Eventos.Actors.Actor.registration_changeset(%Eventos.Actors.Actor{}, %{
+ preferred_username: name,
+ domain: nil,
+ private_key: pem,
+ public_key: "toto",
+ url: EventosWeb.Endpoint.url() <> "/@" <> name,
+ summary: summary,
+ type: :Service
+ })
+
+ try do
+ Eventos.Repo.insert!(actor)
+ rescue
+ e in Ecto.InvalidChangesetError ->
+ {:error, e}
+ end
+ end
+
+
+ @doc """
+ Creates a user.
+
+ ## Examples
+
+ iex> create_user(%{field: value})
+ {:ok, %User{}}
+
+ iex> create_user(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_user(attrs \\ %{}) do
+ %User{}
+ |> User.registration_changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a user.
+
+ ## Examples
+
+ iex> update_user(user, %{field: new_value})
+ {:ok, %User{}}
+
+ iex> update_user(user, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_user(%User{} = user, attrs) do
+ user
+ |> User.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a User.
+
+ ## Examples
+
+ iex> delete_user(user)
+ {:ok, %User{}}
+
+ iex> delete_user(user)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_user(%User{} = user) do
+ Repo.delete(user)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking user changes.
+
+ ## Examples
+
+ iex> change_user(user)
+ %Ecto.Changeset{source: %User{}}
+
+ """
+ def change_user(%User{} = user) do
+ User.changeset(user, %{})
+ end
+
+ alias Eventos.Actors.Member
+
+ @doc """
+ Returns the list of members.
+
+ ## Examples
+
+ iex> list_members()
+ [%Member{}, ...]
+
+ """
+ def list_members do
+ Repo.all(Member)
+ end
+
+ @doc """
+ Gets a single member.
+
+ Raises `Ecto.NoResultsError` if the Member does not exist.
+
+ ## Examples
+
+ iex> get_member!(123)
+ %Member{}
+
+ iex> get_member!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_member!(id), do: Repo.get!(Member, id)
+
+ @doc """
+ Creates a member.
+
+ ## Examples
+
+ iex> create_member(%{field: value})
+ {:ok, %Member{}}
+
+ iex> create_member(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_member(attrs \\ %{}) do
+ %Member{}
+ |> Member.changeset(attrs)
+ |> Repo.insert!()
+ |> Repo.preload([:actor, :parent])
+ end
+
+ @doc """
+ Updates a member.
+
+ ## Examples
+
+ iex> update_member(member, %{field: new_value})
+ {:ok, %Member{}}
+
+ iex> update_member(member, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_member(%Member{} = member, attrs) do
+ member
+ |> Member.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a Member.
+
+ ## Examples
+
+ iex> delete_member(member)
+ {:ok, %Member{}}
+
+ iex> delete_member(member)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_member(%Member{} = member) do
+ Repo.delete(member)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking member changes.
+
+ ## Examples
+
+ iex> change_member(member)
+ %Ecto.Changeset{source: %Member{}}
+
+ """
+ def change_member(%Member{} = member) do
+ Member.changeset(member, %{})
+ end
+
+ def groups_for_actor(%Actor{id: id} = _actor) do
+ Repo.all(
+ from m in Member,
+ where: m.actor_id == ^id,
+ preload: [:parent]
+ )
+ end
+
+ def members_for_group(%Actor{type: :Group, id: id} = _group) do
+ Repo.all(
+ from m in Member,
+ where: m.parent_id == ^id,
+ preload: [:parent, :actor]
+ )
+ end
+
+
+ alias Eventos.Actors.Bot
+
+ @doc """
+ Returns the list of bots.
+
+ ## Examples
+
+ iex> list_bots()
+ [%Bot{}, ...]
+
+ """
+ def list_bots do
+ Repo.all(Bot)
+ end
+
+ @doc """
+ Gets a single bot.
+
+ Raises `Ecto.NoResultsError` if the Bot does not exist.
+
+ ## Examples
+
+ iex> get_bot!(123)
+ %Bot{}
+
+ iex> get_bot!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_bot!(id), do: Repo.get!(Bot, id)
+
+ @spec get_bot_by_actor(Actor.t) :: Bot.t
+ def get_bot_by_actor(%Actor{} = actor) do
+ Repo.get_by!(Bot, actor_id: actor.id)
+ end
+
+ @doc """
+ Creates a bot.
+
+ ## Examples
+
+ iex> create_bot(%{field: value})
+ {:ok, %Bot{}}
+
+ iex> create_bot(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_bot(attrs \\ %{}) do
+ %Bot{}
+ |> Bot.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a bot.
+
+ ## Examples
+
+ iex> update_bot(bot, %{field: new_value})
+ {:ok, %Bot{}}
+
+ iex> update_bot(bot, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_bot(%Bot{} = bot, attrs) do
+ bot
+ |> Bot.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a Bot.
+
+ ## Examples
+
+ iex> delete_bot(bot)
+ {:ok, %Bot{}}
+
+ iex> delete_bot(bot)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_bot(%Bot{} = bot) do
+ Repo.delete(bot)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking bot changes.
+
+ ## Examples
+
+ iex> change_bot(bot)
+ %Ecto.Changeset{source: %Bot{}}
+
+ """
+ def change_bot(%Bot{} = bot) do
+ Bot.changeset(bot, %{})
+ end
+end
diff --git a/lib/eventos/actors/bot.ex b/lib/eventos/actors/bot.ex
new file mode 100644
index 000000000..702b47942
--- /dev/null
+++ b/lib/eventos/actors/bot.ex
@@ -0,0 +1,25 @@
+defmodule Eventos.Actors.Bot do
+ @moduledoc """
+ Represents a local bot
+ """
+ use Ecto.Schema
+ import Ecto.Changeset
+ alias Eventos.Actors.{Actor, User, Bot}
+
+
+ schema "bots" do
+ field :source, :string
+ field :type, :string, default: :ics
+ belongs_to :actor, Actor
+ belongs_to :user, User
+
+ timestamps()
+ end
+
+ @doc false
+ def changeset(bot, attrs) do
+ bot
+ |> cast(attrs, [:source, :type, :actor_id, :user_id])
+ |> validate_required([:source])
+ end
+end
diff --git a/lib/eventos/actors/follower.ex b/lib/eventos/actors/follower.ex
new file mode 100644
index 000000000..5c63098ca
--- /dev/null
+++ b/lib/eventos/actors/follower.ex
@@ -0,0 +1,26 @@
+defmodule Eventos.Actors.Follower do
+ @moduledoc """
+ Represents the following of an actor to another actor
+ """
+ use Ecto.Schema
+ import Ecto.Changeset
+ alias Eventos.Actors.Follower
+ alias Eventos.Actors.Actor
+
+
+ schema "followers" do
+ field :approved, :boolean, default: false
+ field :score, :integer, default: 1000
+ belongs_to :target_actor, Actor
+ belongs_to :actor, Actor
+
+ timestamps()
+ end
+
+ @doc false
+ def changeset(%Follower{} = member, attrs) do
+ member
+ |> cast(attrs, [:role, :approved, :target_actor_id, :actor_id])
+ |> validate_required([:role, :approved, :target_actor_id, :actor_id])
+ end
+end
diff --git a/lib/eventos/actors/member.ex b/lib/eventos/actors/member.ex
new file mode 100644
index 000000000..7cd020105
--- /dev/null
+++ b/lib/eventos/actors/member.ex
@@ -0,0 +1,26 @@
+defmodule Eventos.Actors.Member do
+ @moduledoc """
+ Represents the membership of an actor to a group
+ """
+ use Ecto.Schema
+ import Ecto.Changeset
+ alias Eventos.Actors.Member
+ alias Eventos.Actors.Actor
+
+ @primary_key false
+ schema "members" do
+ field :approved, :boolean, default: true
+ field :role, :integer, default: 0 # 0 : Member, 1 : Moderator, 2 : Admin
+ belongs_to :parent, Actor
+ belongs_to :actor, Actor
+
+ timestamps()
+ end
+
+ @doc false
+ def changeset(%Member{} = member, attrs) do
+ member
+ |> cast(attrs, [:role, :approved, :parent_id, :actor_id])
+ |> validate_required([:parent_id, :actor_id])
+ end
+end
diff --git a/lib/eventos/accounts/user.ex b/lib/eventos/actors/user.ex
similarity index 85%
rename from lib/eventos/accounts/user.ex
rename to lib/eventos/actors/user.ex
index 1c39d77f1..dd166b8ca 100644
--- a/lib/eventos/accounts/user.ex
+++ b/lib/eventos/actors/user.ex
@@ -1,17 +1,17 @@
-defmodule Eventos.Accounts.User do
+defmodule Eventos.Actors.User do
@moduledoc """
Represents a local user
"""
use Ecto.Schema
import Ecto.Changeset
- alias Eventos.Accounts.{Account, User}
+ alias Eventos.Actors.{Actor, User}
schema "users" do
field :email, :string
field :password_hash, :string
field :password, :string, virtual: true
field :role, :integer, default: 0
- belongs_to :account, Account
+ belongs_to :actor, Actor
timestamps()
end
@@ -19,7 +19,7 @@ defmodule Eventos.Accounts.User do
@doc false
def changeset(%User{} = user, attrs) do
user
- |> cast(attrs, [:email, :role, :password_hash, :account_id])
+ |> cast(attrs, [:email, :role, :password_hash, :actor_id])
|> validate_required([:email])
|> unique_constraint(:email)
|> validate_format(:email, ~r/@/)
diff --git a/lib/eventos/addresses/address.ex b/lib/eventos/addresses/address.ex
index 8db3c4739..97737722f 100644
--- a/lib/eventos/addresses/address.ex
+++ b/lib/eventos/addresses/address.ex
@@ -26,6 +26,5 @@ defmodule Eventos.Addresses.Address do
def changeset(%Address{} = address, attrs) do
address
|> cast(attrs, [:description, :floor, :geom, :addressCountry, :addressLocality, :addressRegion, :postalCode, :streetAddress])
- |> validate_required([:geom])
end
end
diff --git a/lib/eventos/application.ex b/lib/eventos/application.ex
index 6dfadb8c0..e17b7a559 100644
--- a/lib/eventos/application.ex
+++ b/lib/eventos/application.ex
@@ -17,7 +17,8 @@ defmodule Eventos.Application do
supervisor(EventosWeb.Endpoint, []),
# Start your own worker by calling: Eventos.Worker.start_link(arg1, arg2, arg3)
# worker(Eventos.Worker, [arg1, arg2, arg3]),
- worker(Guardian.DB.Token.SweeperServer, [])
+ worker(Guardian.DB.Token.SweeperServer, []),
+ worker(Eventos.Service.Federator, []),
]
# See https://hexdocs.pm/elixir/Supervisor.html
diff --git a/lib/eventos/events/comment.ex b/lib/eventos/events/comment.ex
new file mode 100644
index 000000000..0422a452c
--- /dev/null
+++ b/lib/eventos/events/comment.ex
@@ -0,0 +1,27 @@
+defmodule Eventos.Events.Comment do
+ use Ecto.Schema
+ import Ecto.Changeset
+
+ alias Eventos.Events.Event
+ alias Eventos.Actors.Actor
+ alias Eventos.Actors.Comment
+
+ schema "comments" do
+ field :text, :string
+ field :url, :string
+ field :local, :boolean, default: true
+ belongs_to :actor, Actor, [foreign_key: :actor_id]
+ belongs_to :event, Event, [foreign_key: :event_id]
+ belongs_to :in_reply_to_comment, Comment, [foreign_key: :in_reply_to_comment_id]
+ belongs_to :origin_comment, Comment, [foreign_key: :origin_comment_id]
+
+ timestamps()
+ end
+
+ @doc false
+ def changeset(comment, attrs) do
+ comment
+ |> cast(attrs, [:url, :text, :actor_id, :event_id, :in_reply_to_comment_id])
+ |> validate_required([:url, :text, :actor_id])
+ end
+end
diff --git a/lib/eventos/events/event.ex b/lib/eventos/events/event.ex
index 91143c735..3a98a9bfd 100644
--- a/lib/eventos/events/event.ex
+++ b/lib/eventos/events/event.ex
@@ -32,13 +32,14 @@ defmodule Eventos.Events.Event do
"""
use Ecto.Schema
import Ecto.Changeset
- alias Eventos.Events.{Event, Participant, Request, Tag, Category, Session, Track}
+ alias Eventos.Events.{Event, Participant, Tag, Category, Session, Track}
alias Eventos.Events.Event.TitleSlug
- alias Eventos.Accounts.Account
- alias Eventos.Groups.Group
+ alias Eventos.Actors.Actor
alias Eventos.Addresses.Address
schema "events" do
+ field :url, :string
+ field :local, :boolean, default: true
field :begins_on, Timex.Ecto.DateTimeWithTimezone
field :description, :string
field :ends_on, Timex.Ecto.DateTimeWithTimezone
@@ -50,27 +51,31 @@ defmodule Eventos.Events.Event do
field :thumbnail, :string
field :large_image, :string
field :publish_at, Timex.Ecto.DateTimeWithTimezone
- belongs_to :organizer_account, Account, [foreign_key: :organizer_account_id]
- belongs_to :organizer_group, Group, [foreign_key: :organizer_group_id]
+ field :uuid, Ecto.UUID, default: Ecto.UUID.generate()
+ belongs_to :organizer_actor, Actor, [foreign_key: :organizer_actor_id]
many_to_many :tags, Tag, join_through: "events_tags"
belongs_to :category, Category
- many_to_many :participants, Account, join_through: Participant
- has_many :event_request, Request
+ many_to_many :participants, Actor, join_through: Participant
has_many :tracks, Track
has_many :sessions, Session
belongs_to :address, Address
- timestamps()
+ timestamps(type: :utc_datetime)
end
@doc false
def changeset(%Event{} = event, attrs) do
- event
- |> cast(attrs, [:title, :description, :begins_on, :ends_on, :organizer_account_id, :organizer_group_id, :category_id, :state, :status, :public, :thumbnail, :large_image, :publish_at])
+ changeset = event
+ |> cast(attrs, [:title, :description, :url, :begins_on, :ends_on, :organizer_actor_id, :category_id, :state, :status, :public, :thumbnail, :large_image, :publish_at])
|> cast_assoc(:tags)
|> cast_assoc(:address)
- |> validate_required([:title, :description, :begins_on, :ends_on, :organizer_account_id, :category_id])
+ |> validate_required([:title, :description, :begins_on, :ends_on, :organizer_actor_id, :category_id])
|> TitleSlug.maybe_generate_slug()
|> TitleSlug.unique_constraint()
+ |> put_change(:uuid, Ecto.UUID.generate())
+
+ import Logger
+ Logger.debug(inspect changeset)
+ changeset
end
end
diff --git a/lib/eventos/events/events.ex b/lib/eventos/events/events.ex
index e29a7eacc..32f6a9729 100644
--- a/lib/eventos/events/events.ex
+++ b/lib/eventos/events/events.ex
@@ -7,7 +7,8 @@ defmodule Eventos.Events do
alias Eventos.Repo
alias Eventos.Events.Event
- alias Eventos.Accounts.Account
+ alias Eventos.Events.Comment
+ alias Eventos.Actors.Actor
@doc """
Returns the list of events.
@@ -19,7 +20,38 @@ defmodule Eventos.Events do
"""
def list_events do
- Repo.all(Event)
+ events = Repo.all(Event)
+ Repo.preload(events, [:organizer_actor])
+ end
+
+ def get_events_for_actor(%Actor{id: actor_id} = _actor, page \\ 1, limit \\ 10) do
+ start = (page - 1) * limit
+
+ query = from e in Event,
+ where: e.organizer_actor_id == ^actor_id,
+ limit: ^limit,
+ order_by: [desc: :id],
+ offset: ^start,
+ preload: [:organizer_actor, :category, :sessions, :tracks, :tags, :participants, :address]
+ events = Repo.all(query)
+ count_events = Repo.one(from e in Event, select: count(e.id), where: e.organizer_actor_id == ^actor_id)
+ {:ok, events, count_events}
+ end
+
+ def count_local_events do
+ Repo.one(
+ from e in Event,
+ select: count(e.id),
+ where: e.local == ^true
+ )
+ end
+
+ def count_local_comments do
+ Repo.one(
+ from c in Comment,
+ select: count(c.id),
+ where: c.local == ^true
+ )
end
@doc """
@@ -38,12 +70,73 @@ defmodule Eventos.Events do
"""
def get_event!(id), do: Repo.get!(Event, id)
+ @doc """
+ Gets an event by it's URL
+ """
+ def get_event_by_url!(url) do
+ Repo.get_by(Event, url: url)
+ end
+
+ @doc """
+ Gets an event by it's UUID
+ """
+ def get_event_by_uuid(uuid) do
+ Repo.get_by(Event, uuid: uuid)
+ end
+
@doc """
Gets a single event, with all associations loaded.
"""
def get_event_full!(id) do
event = Repo.get!(Event, id)
- Repo.preload(event, [:organizer_account, :organizer_group, :category, :sessions, :tracks, :tags, :participants, :address])
+ Repo.preload(event, [:organizer_actor, :category, :sessions, :tracks, :tags, :participants, :address])
+ end
+
+ @doc """
+ Gets an event by it's URL
+ """
+ def get_event_full_by_url!(url) do
+ event = Repo.get_by(Event, url: url)
+ Repo.preload(event, [:organizer_actor, :category, :sessions, :tracks, :tags, :participants, :address])
+ end
+
+ @doc """
+ Gets a full event by it's UUID
+ """
+ def get_event_full_by_uuid(uuid) do
+ event = Repo.get_by(Event, uuid: uuid)
+ Repo.preload(event, [:organizer_actor, :category, :sessions, :tracks, :tags, :participants, :address])
+ end
+
+ @spec get_event_full_by_name_and_slug!(String.t, String.t) :: Event.t
+ def get_event_full_by_name_and_slug!(name, slug) do
+ query = case String.split(name, "@") do
+ [name, domain] -> from e in Event,
+ join: a in Actor,
+ on: a.id == e.organizer_actor_id and a.preferred_username == ^name and a.domain == ^domain,
+ where: e.slug == ^slug
+ [name] -> from e in Event,
+ join: a in Actor,
+ on: a.id == e.organizer_actor_id and a.preferred_username == ^name and is_nil(a.domain),
+ where: e.slug == ^slug
+ end
+ event = Repo.one(query)
+ Repo.preload(event, [:organizer_actor, :category, :sessions, :tracks, :tags, :participants, :address])
+ end
+
+ @doc """
+ Find events by name
+ """
+ def find_events_by_name(name) do
+ events = Repo.all from a in Event, where: ilike(a.title, ^like_sanitize(name))
+ Repo.preload(events, [:organizer_actor])
+ end
+
+ @doc """
+ Sanitize the LIKE queries
+ """
+ defp like_sanitize(value) do
+ "%" <> String.replace(value, ~r/([\\%_])/, "\\1") <> "%"
end
@doc """
@@ -61,7 +154,8 @@ defmodule Eventos.Events do
def create_event(attrs \\ %{}) do
%Event{}
|> Event.changeset(attrs)
- |> Repo.insert()
+ |> Repo.insert!()
+ |> Repo.preload([:organizer_actor])
end
@doc """
@@ -142,6 +236,11 @@ defmodule Eventos.Events do
"""
def get_category!(id), do: Repo.get!(Category, id)
+ @spec get_category_by_title(String.t) :: tuple()
+ def get_category_by_title(title) when is_binary(title) do
+ Repo.get_by(Category, title: title)
+ end
+
@doc """
Creates a category.
@@ -332,8 +431,8 @@ defmodule Eventos.Events do
** (Ecto.NoResultsError)
"""
- def get_participant!(event_id, account_id) do
- Repo.get_by!(Participant, [event_id: event_id, account_id: account_id])
+ def get_participant!(event_id, actor_id) do
+ Repo.get_by!(Participant, [event_id: event_id, actor_id: actor_id])
end
@doc """
@@ -401,104 +500,8 @@ defmodule Eventos.Events do
Participant.changeset(participant, %{})
end
- alias Eventos.Events.Request
-
- @doc """
- Returns the list of requests.
-
- ## Examples
-
- iex> list_requests()
- [%Request{}, ...]
-
- """
- def list_requests do
- Repo.all(Request)
- end
-
- def list_requests_for_account(%Account{} = account) do
- Repo.all(from r in Request, where: r.account_id == ^account.id)
- end
-
- @doc """
- Gets a single request.
-
- Raises `Ecto.NoResultsError` if the Request does not exist.
-
- ## Examples
-
- iex> get_request!(123)
- %Request{}
-
- iex> get_request!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_request!(id), do: Repo.get!(Request, id)
-
- @doc """
- Creates a request.
-
- ## Examples
-
- iex> create_request(%{field: value})
- {:ok, %Request{}}
-
- iex> create_request(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_request(attrs \\ %{}) do
- %Request{}
- |> Request.changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a request.
-
- ## Examples
-
- iex> update_request(request, %{field: new_value})
- {:ok, %Request{}}
-
- iex> update_request(request, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_request(%Request{} = request, attrs) do
- request
- |> Request.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a Request.
-
- ## Examples
-
- iex> delete_request(request)
- {:ok, %Request{}}
-
- iex> delete_request(request)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_request(%Request{} = request) do
- Repo.delete(request)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking request changes.
-
- ## Examples
-
- iex> change_request(request)
- %Ecto.Changeset{source: %Request{}}
-
- """
- def change_request(%Request{} = request) do
- Request.changeset(request, %{})
+ def list_requests_for_actor(%Actor{} = actor) do
+ Repo.all(from p in Participant, where: p.actor_id == ^actor.id and p.approved == false)
end
alias Eventos.Events.Session
@@ -706,4 +709,100 @@ defmodule Eventos.Events do
def change_track(%Track{} = track) do
Track.changeset(track, %{})
end
+
+ alias Eventos.Events.Comment
+
+ @doc """
+ Returns the list of comments.
+
+ ## Examples
+
+ iex> list_comments()
+ [%Comment{}, ...]
+
+ """
+ def list_comments do
+ Repo.all(Comment)
+ end
+
+ @doc """
+ Gets a single comment.
+
+ Raises `Ecto.NoResultsError` if the Comment does not exist.
+
+ ## Examples
+
+ iex> get_comment!(123)
+ %Comment{}
+
+ iex> get_comment!(456)
+ ** (Ecto.NoResultsError)
+
+ """
+ def get_comment!(id), do: Repo.get!(Comment, id)
+
+ @doc """
+ Creates a comment.
+
+ ## Examples
+
+ iex> create_comment(%{field: value})
+ {:ok, %Comment{}}
+
+ iex> create_comment(%{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def create_comment(attrs \\ %{}) do
+ %Comment{}
+ |> Comment.changeset(attrs)
+ |> Repo.insert()
+ end
+
+ @doc """
+ Updates a comment.
+
+ ## Examples
+
+ iex> update_comment(comment, %{field: new_value})
+ {:ok, %Comment{}}
+
+ iex> update_comment(comment, %{field: bad_value})
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def update_comment(%Comment{} = comment, attrs) do
+ comment
+ |> Comment.changeset(attrs)
+ |> Repo.update()
+ end
+
+ @doc """
+ Deletes a Comment.
+
+ ## Examples
+
+ iex> delete_comment(comment)
+ {:ok, %Comment{}}
+
+ iex> delete_comment(comment)
+ {:error, %Ecto.Changeset{}}
+
+ """
+ def delete_comment(%Comment{} = comment) do
+ Repo.delete(comment)
+ end
+
+ @doc """
+ Returns an `%Ecto.Changeset{}` for tracking comment changes.
+
+ ## Examples
+
+ iex> change_comment(comment)
+ %Ecto.Changeset{source: %Comment{}}
+
+ """
+ def change_comment(%Comment{} = comment) do
+ Comment.changeset(comment, %{})
+ end
end
diff --git a/lib/eventos/events/participant.ex b/lib/eventos/events/participant.ex
index f1cfed17c..16c3f6cf5 100644
--- a/lib/eventos/events/participant.ex
+++ b/lib/eventos/events/participant.ex
@@ -1,17 +1,18 @@
defmodule Eventos.Events.Participant do
@moduledoc """
- Represents a participant, an account participating to an event
+ Represents a participant, an actor participating to an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Participant, Event}
- alias Eventos.Accounts.Account
+ alias Eventos.Actors.Actor
@primary_key false
schema "participants" do
- field :role, :integer
+ field :role, :integer, default: 0 # 0 : participant, 1 : moderator, 2 : administrator, 3 : creator
+ field :approved, :boolean
belongs_to :event, Event, primary_key: true
- belongs_to :account, Account, primary_key: true
+ belongs_to :actor, Actor, primary_key: true
timestamps()
end
@@ -19,7 +20,7 @@ defmodule Eventos.Events.Participant do
@doc false
def changeset(%Participant{} = participant, attrs) do
participant
- |> cast(attrs, [:role, :event_id, :account_id])
- |> validate_required([:role, :event_id, :account_id])
+ |> cast(attrs, [:role, :event_id, :actor_id])
+ |> validate_required([:role, :event_id, :actor_id])
end
end
diff --git a/lib/eventos/events/request.ex b/lib/eventos/events/request.ex
deleted file mode 100644
index 1bfd77a95..000000000
--- a/lib/eventos/events/request.ex
+++ /dev/null
@@ -1,24 +0,0 @@
-defmodule Eventos.Events.Request do
- @moduledoc """
- Represents an account request to join an event
- """
- use Ecto.Schema
- import Ecto.Changeset
- alias Eventos.Events.{Request, Event}
- alias Eventos.Accounts.Account
-
- schema "event_requests" do
- field :state, :integer
- belongs_to :event, Event
- belongs_to :account, Account
-
- timestamps()
- end
-
- @doc false
- def changeset(%Request{} = request, attrs) do
- request
- |> cast(attrs, [:state])
- |> validate_required([:state])
- end
-end
diff --git a/lib/eventos/export/icalendar.ex b/lib/eventos/export/icalendar.ex
index a492e382d..b22505c0c 100644
--- a/lib/eventos/export/icalendar.ex
+++ b/lib/eventos/export/icalendar.ex
@@ -11,7 +11,8 @@ defmodule Eventos.Export.ICalendar do
summary: event.title,
dtstart: event.begins_on,
dtend: event.ends_on,
- description: event.description
+ description: event.description,
+ uid: event.uuid
}]
%ICalendar{events: events}
|> ICalendar.to_ics()
diff --git a/lib/eventos/groups/group.ex b/lib/eventos/groups/group.ex
deleted file mode 100644
index 3043386a9..000000000
--- a/lib/eventos/groups/group.ex
+++ /dev/null
@@ -1,64 +0,0 @@
-defmodule Eventos.Groups.Group.TitleSlug do
- @moduledoc """
- Slug generation for groups
- """
- alias Eventos.Groups.Group
- import Ecto.Query
- alias Eventos.Repo
- use EctoAutoslugField.Slug, from: :title, to: :slug
-
- def build_slug(sources, changeset) do
- slug = super(sources, changeset)
- build_unique_slug(slug, changeset)
- end
-
- defp build_unique_slug(slug, changeset) do
- query = from g in Group,
- where: g.slug == ^slug
-
- case Repo.one(query) do
- nil -> slug
- _story ->
- slug
- |> Eventos.Slug.increment_slug()
- |> build_unique_slug(changeset)
- end
- end
-end
-
-defmodule Eventos.Groups.Group do
- @moduledoc """
- Represents a group
- """
- use Ecto.Schema
- import Ecto.Changeset
- alias Eventos.Events.Event
- alias Eventos.Groups.{Group, Member, Request}
- alias Eventos.Accounts.Account
- alias Eventos.Groups.Group.TitleSlug
- alias Eventos.Addresses.Address
-
- schema "groups" do
- field :description, :string
- field :suspended, :boolean, default: false
- field :title, :string
- field :slug, TitleSlug.Type
- field :uri, :string
- field :url, :string
- many_to_many :members, Account, join_through: Member
- has_many :organized_events, Event, [foreign_key: :organizer_group_id]
- has_many :requests, Request
- belongs_to :address, Address
-
- timestamps()
- end
-
- @doc false
- def changeset(%Group{} = group, attrs) do
- group
- |> cast(attrs, [:title, :description, :suspended, :url, :uri, :address_id])
- |> validate_required([:title, :description, :suspended, :url, :uri])
- |> TitleSlug.maybe_generate_slug()
- |> TitleSlug.unique_constraint()
- end
-end
diff --git a/lib/eventos/groups/groups.ex b/lib/eventos/groups/groups.ex
deleted file mode 100644
index 925b33aa0..000000000
--- a/lib/eventos/groups/groups.ex
+++ /dev/null
@@ -1,304 +0,0 @@
-defmodule Eventos.Groups do
- @moduledoc """
- The Groups context.
- """
-
- import Ecto.Query, warn: false
- alias Eventos.Repo
-
- alias Eventos.Groups.Group
-
- @doc """
- Returns the list of groups.
-
- ## Examples
-
- iex> list_groups()
- [%Group{}, ...]
-
- """
- def list_groups do
- Repo.all(Group)
- end
-
- @doc """
- Gets a single group.
-
- Raises `Ecto.NoResultsError` if the Group does not exist.
-
- ## Examples
-
- iex> get_group!(123)
- %Group{}
-
- iex> get_group!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_group!(id), do: Repo.get!(Group, id)
-
- @doc """
- Gets a single group, with all associations loaded.
- """
- def get_group_full!(id) do
- group = Repo.get!(Group, id)
- Repo.preload(group, [:members, :organized_events])
- end
-
- @doc """
- Creates a group.
-
- ## Examples
-
- iex> create_group(%{field: value})
- {:ok, %Group{}}
-
- iex> create_group(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_group(attrs \\ %{}) do
- %Group{}
- |> Group.changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a group.
-
- ## Examples
-
- iex> update_group(group, %{field: new_value})
- {:ok, %Group{}}
-
- iex> update_group(group, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_group(%Group{} = group, attrs) do
- group
- |> Group.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a Group.
-
- ## Examples
-
- iex> delete_group(group)
- {:ok, %Group{}}
-
- iex> delete_group(group)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_group(%Group{} = group) do
- Repo.delete(group)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking group changes.
-
- ## Examples
-
- iex> change_group(group)
- %Ecto.Changeset{source: %Group{}}
-
- """
- def change_group(%Group{} = group) do
- Group.changeset(group, %{})
- end
-
- alias Eventos.Groups.Member
-
- @doc """
- Returns the list of members.
-
- ## Examples
-
- iex> list_members()
- [%Member{}, ...]
-
- """
- def list_members do
- Repo.all(Member)
- end
-
- @doc """
- Gets a single member.
-
- Raises `Ecto.NoResultsError` if the Member does not exist.
-
- ## Examples
-
- iex> get_member!(123)
- %Member{}
-
- iex> get_member!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_member!(id), do: Repo.get!(Member, id)
-
- @doc """
- Creates a member.
-
- ## Examples
-
- iex> create_member(%{field: value})
- {:ok, %Member{}}
-
- iex> create_member(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_member(attrs \\ %{}) do
- %Member{}
- |> Member.changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a member.
-
- ## Examples
-
- iex> update_member(member, %{field: new_value})
- {:ok, %Member{}}
-
- iex> update_member(member, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_member(%Member{} = member, attrs) do
- member
- |> Member.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a Member.
-
- ## Examples
-
- iex> delete_member(member)
- {:ok, %Member{}}
-
- iex> delete_member(member)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_member(%Member{} = member) do
- Repo.delete(member)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking member changes.
-
- ## Examples
-
- iex> change_member(member)
- %Ecto.Changeset{source: %Member{}}
-
- """
- def change_member(%Member{} = member) do
- Member.changeset(member, %{})
- end
-
- alias Eventos.Groups.Request
-
- @doc """
- Returns the list of requests.
-
- ## Examples
-
- iex> list_requests()
- [%Request{}, ...]
-
- """
- def list_requests do
- Repo.all(Request)
- end
-
- @doc """
- Gets a single request.
-
- Raises `Ecto.NoResultsError` if the Request does not exist.
-
- ## Examples
-
- iex> get_request!(123)
- %Request{}
-
- iex> get_request!(456)
- ** (Ecto.NoResultsError)
-
- """
- def get_request!(id), do: Repo.get!(Request, id)
-
- @doc """
- Creates a request.
-
- ## Examples
-
- iex> create_request(%{field: value})
- {:ok, %Request{}}
-
- iex> create_request(%{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def create_request(attrs \\ %{}) do
- %Request{}
- |> Request.changeset(attrs)
- |> Repo.insert()
- end
-
- @doc """
- Updates a request.
-
- ## Examples
-
- iex> update_request(request, %{field: new_value})
- {:ok, %Request{}}
-
- iex> update_request(request, %{field: bad_value})
- {:error, %Ecto.Changeset{}}
-
- """
- def update_request(%Request{} = request, attrs) do
- request
- |> Request.changeset(attrs)
- |> Repo.update()
- end
-
- @doc """
- Deletes a Request.
-
- ## Examples
-
- iex> delete_request(request)
- {:ok, %Request{}}
-
- iex> delete_request(request)
- {:error, %Ecto.Changeset{}}
-
- """
- def delete_request(%Request{} = request) do
- Repo.delete(request)
- end
-
- @doc """
- Returns an `%Ecto.Changeset{}` for tracking request changes.
-
- ## Examples
-
- iex> change_request(request)
- %Ecto.Changeset{source: %Request{}}
-
- """
- def change_request(%Request{} = request) do
- Request.changeset(request, %{})
- end
-end
diff --git a/lib/eventos/groups/member.ex b/lib/eventos/groups/member.ex
deleted file mode 100644
index f9ec58cbd..000000000
--- a/lib/eventos/groups/member.ex
+++ /dev/null
@@ -1,25 +0,0 @@
-defmodule Eventos.Groups.Member do
- @moduledoc """
- Represents the membership of an account to a group
- """
- use Ecto.Schema
- import Ecto.Changeset
- alias Eventos.Groups.{Member, Group}
- alias Eventos.Accounts.Account
-
-
- schema "members" do
- field :role, :integer
- belongs_to :group, Group
- belongs_to :account, Account
-
- timestamps()
- end
-
- @doc false
- def changeset(%Member{} = member, attrs) do
- member
- |> cast(attrs, [:role])
- |> validate_required([:role])
- end
-end
diff --git a/lib/eventos/groups/request.ex b/lib/eventos/groups/request.ex
deleted file mode 100644
index b4cf994a6..000000000
--- a/lib/eventos/groups/request.ex
+++ /dev/null
@@ -1,24 +0,0 @@
-defmodule Eventos.Groups.Request do
- @moduledoc """
- Represents a group request, when an user wants to be member of a group
- """
- use Ecto.Schema
- import Ecto.Changeset
- alias Eventos.Groups.Request
-
-
- schema "group_requests" do
- field :state, :integer
- field :group_id, :integer
- field :account_id, :integer
-
- timestamps()
- end
-
- @doc false
- def changeset(%Request{} = request, attrs) do
- request
- |> cast(attrs, [:state])
- |> validate_required([:state])
- end
-end
diff --git a/lib/eventos_web/controllers/account_controller.ex b/lib/eventos_web/controllers/account_controller.ex
deleted file mode 100644
index 420c48bc9..000000000
--- a/lib/eventos_web/controllers/account_controller.ex
+++ /dev/null
@@ -1,41 +0,0 @@
-defmodule EventosWeb.AccountController do
- @moduledoc """
- Controller for Accounts
- """
- use EventosWeb, :controller
-
- alias Eventos.Accounts
- alias Eventos.Accounts.Account
-
- action_fallback EventosWeb.FallbackController
-
- def index(conn, _params) do
- accounts = Accounts.list_accounts()
- render(conn, "index.json", accounts: accounts)
- end
-
- def show(conn, %{"id" => id}) do
- account = Accounts.get_account_with_everything!(id)
- render(conn, "show.json", account: account)
- end
-
- def update(conn, %{"id" => id, "account" => account_params}) do
- account = Accounts.get_account!(id)
-
- with {:ok, %Account{} = account} <- Accounts.update_account(account, account_params) do
- render(conn, "show.json", account: account)
- end
- end
-
- def delete(conn, %{"id" => id_str}) do
- {id, _} = Integer.parse(id_str)
- if Guardian.Plug.current_resource(conn).account.id == id do
- account = Accounts.get_account!(id)
- with {:ok, %Account{}} <- Accounts.delete_account(account) do
- send_resp(conn, :no_content, "")
- end
- else
- send_resp(conn, 401, "")
- end
- end
-end
diff --git a/lib/eventos_web/controllers/activity_pub_controller.ex b/lib/eventos_web/controllers/activity_pub_controller.ex
new file mode 100644
index 000000000..6f079054d
--- /dev/null
+++ b/lib/eventos_web/controllers/activity_pub_controller.ex
@@ -0,0 +1,103 @@
+defmodule EventosWeb.ActivityPubController do
+ use EventosWeb, :controller
+ alias Eventos.{Actors, Actors.Actor, Events, Events.Event}
+ alias EventosWeb.ActivityPub.{ObjectView, ActorView}
+ alias Eventos.Service.ActivityPub
+ alias Eventos.Service.Federator
+
+ require Logger
+
+ action_fallback(:errors)
+
+ def actor(conn, %{"name" => name}) do
+ with %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("actor.json", %{actor: actor}))
+ end
+ end
+
+ def event(conn, %{"name" => name, "slug" => slug}) do
+ with %Event{} = event <- Events.get_event_full_by_name_and_slug!(name, slug) do
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ObjectView.render("event.json", %{event: event}))
+ end
+ end
+
+ def following(conn, %{"name" => name, "page" => page}) do
+ with %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ {page, _} = Integer.parse(page)
+
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("following.json", %{actor: actor, page: page}))
+ end
+ end
+
+ def following(conn, %{"name" => name}) do
+ with %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("following.json", %{actor: actor}))
+ end
+ end
+
+ def followers(conn, %{"name" => name, "page" => page}) do
+ with %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ {page, _} = Integer.parse(page)
+
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("followers.json", %{actor: actor, page: page}))
+ end
+ end
+
+ def followers(conn, %{"name" => name}) do
+ with %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("followers.json", %{actor: actor}))
+ end
+ end
+
+ def outbox(conn, %{"name" => name, "page" => page}) do
+ with {page, ""} = Integer.parse(page),
+ %Actor{} = actor <- Actors.get_local_actor_by_name(name) do
+ conn
+ |> put_resp_header("content-type", "application/activity+json")
+ |> json(ActorView.render("outbox.json", %{actor: actor, page: page}))
+ end
+ end
+
+ def outbox(conn, %{"name" => username}) do
+ outbox(conn, %{"name" => username, "page" => "0"})
+ end
+
+ # TODO: Ensure that this inbox is a recipient of the message
+ def inbox(%{assigns: %{valid_signature: true}} = conn, params) do
+ Federator.enqueue(:incoming_ap_doc, params)
+ json(conn, "ok")
+ end
+
+ def inbox(conn, params) do
+ headers = Enum.into(conn.req_headers, %{})
+
+ if !String.contains?(headers["signature"] || "", params["actor"]) do
+ Logger.info("Signature not from author, relayed message, fetching from source")
+ ActivityPub.fetch_event_from_url(params["object"]["id"])
+ else
+ Logger.info("Signature error")
+ Logger.info("Could not validate #{params["actor"]}")
+ Logger.info(inspect(conn.req_headers))
+ end
+
+ json(conn, "ok")
+ end
+
+ def errors(conn, _e) do
+ conn
+ |> put_status(500)
+ |> json("error")
+ end
+end
diff --git a/lib/eventos_web/controllers/actor_controller.ex b/lib/eventos_web/controllers/actor_controller.ex
new file mode 100644
index 000000000..67aded7a7
--- /dev/null
+++ b/lib/eventos_web/controllers/actor_controller.ex
@@ -0,0 +1,51 @@
+defmodule EventosWeb.ActorController do
+ @moduledoc """
+ Controller for Actors
+ """
+ use EventosWeb, :controller
+
+ alias Eventos.Actors
+ alias Eventos.Actors.Actor
+ alias Eventos.Service.ActivityPub
+
+ action_fallback EventosWeb.FallbackController
+
+ def index(conn, _params) do
+ actors = Actors.list_actors()
+ render(conn, "index.json", actors: actors)
+ end
+
+ def show(conn, %{"name" => name}) do
+ actor = Actors.get_actor_by_name_with_everything(name)
+ render(conn, "show.json", actor: actor)
+ end
+
+ @email_regex ~r/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
+ def search(conn, %{"name" => name}) do
+ case Actors.search(name) do # find already saved accounts
+ {:ok, actors} ->
+ render(conn, "index.json", actors: actors)
+ {:error, err} -> json(conn, err)
+ end
+ end
+
+ def update(conn, %{"name" => name, "actor" => actor_params}) do
+ actor = Actors.get_local_actor_by_name(name)
+
+ with {:ok, %Actor{} = actor} <- Actors.update_actor(actor, actor_params) do
+ render(conn, "show.json", actor: actor)
+ end
+ end
+
+# def delete(conn, %{"id" => id_str}) do
+# {id, _} = Integer.parse(id_str)
+# if Guardian.Plug.current_resource(conn).actor.id == id do
+# actor = Actors.get_actor!(id)
+# with {:ok, %Actor{}} <- Actors.delete_actor(actor) do
+# send_resp(conn, :no_content, "")
+# end
+# else
+# send_resp(conn, 401, "")
+# end
+# end
+end
diff --git a/lib/eventos_web/controllers/address_controller.ex b/lib/eventos_web/controllers/address_controller.ex
index 51c12762a..4dbbe4493 100644
--- a/lib/eventos_web/controllers/address_controller.ex
+++ b/lib/eventos_web/controllers/address_controller.ex
@@ -27,6 +27,27 @@ defmodule EventosWeb.AddressController do
end
end
+ def process_geom(%{"type" => type, "data" => data}) do
+ import Logger
+ Logger.debug("Process geom")
+ Logger.debug(inspect data)
+ Logger.debug(inspect type)
+ types = [:point]
+ unless is_atom(type) do
+ type = String.to_existing_atom(type)
+ end
+ case type do
+ :point ->
+ %Geo.Point{coordinates: {data["latitude"], data["longitude"]}, srid: 4326}
+ nil ->
+ nil
+ end
+ end
+
+ def process_geom(nil) do
+ nil
+ end
+
def show(conn, %{"id" => id}) do
address = Addresses.get_address!(id)
render(conn, "show.json", address: address)
diff --git a/lib/eventos_web/controllers/bot_controller.ex b/lib/eventos_web/controllers/bot_controller.ex
new file mode 100644
index 000000000..5181a2744
--- /dev/null
+++ b/lib/eventos_web/controllers/bot_controller.ex
@@ -0,0 +1,46 @@
+defmodule EventosWeb.BotController do
+ use EventosWeb, :controller
+
+ alias Eventos.Actors
+ alias Eventos.Actors.Bot
+
+ action_fallback EventosWeb.FallbackController
+
+ def index(conn, _params) do
+ bots = Actors.list_bots()
+ render(conn, "index.json", bots: bots)
+ end
+
+ def create(conn, %{"bot" => bot_params}) do
+ with user <- Guardian.Plug.current_resource,
+ bot_params <- Map.put(bot_params, "user_id", user.id),
+ {:ok, actor} <- Actors.register_bot_account(%{name: bot_params["name"], summary: bot_params["summary"]}),
+ bot_params <- Map.put(bot_params, "actor_id", actor.id),
+ {:ok, %Bot{} = bot} <- Actors.create_bot(bot_params) do
+ conn
+ |> put_status(:created)
+ |> put_resp_header("location", bot_path(conn, :show, bot))
+ |> render("show.json", bot: bot)
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ bot = Actors.get_bot!(id)
+ render(conn, "show.json", bot: bot)
+ end
+
+ def update(conn, %{"id" => id, "bot" => bot_params}) do
+ bot = Actors.get_bot!(id)
+
+ with {:ok, %Bot{} = bot} <- Actors.update_bot(bot, bot_params) do
+ render(conn, "show.json", bot: bot)
+ end
+ end
+
+ def delete(conn, %{"id" => id}) do
+ bot = Actors.get_bot!(id)
+ with {:ok, %Bot{}} <- Actors.delete_bot(bot) do
+ send_resp(conn, :no_content, "")
+ end
+ end
+end
diff --git a/lib/eventos_web/controllers/comment_controller.ex b/lib/eventos_web/controllers/comment_controller.ex
new file mode 100644
index 000000000..af0560ab6
--- /dev/null
+++ b/lib/eventos_web/controllers/comment_controller.ex
@@ -0,0 +1,42 @@
+defmodule EventosWeb.CommentController do
+ use EventosWeb, :controller
+
+ alias Eventos.Events
+ alias Eventos.Events.Comment
+
+ action_fallback EventosWeb.FallbackController
+
+ def index(conn, _params) do
+ comments = Events.list_comments()
+ render(conn, "index.json", comments: comments)
+ end
+
+ def create(conn, %{"comment" => comment_params}) do
+ with {:ok, %Comment{} = comment} <- Events.create_comment(comment_params) do
+ conn
+ |> put_status(:created)
+ |> put_resp_header("location", comment_path(conn, :show, comment))
+ |> render("show.json", comment: comment)
+ end
+ end
+
+ def show(conn, %{"id" => id}) do
+ comment = Events.get_comment!(id)
+ render(conn, "show.json", comment: comment)
+ end
+
+ def update(conn, %{"id" => id, "comment" => comment_params}) do
+ comment = Events.get_comment!(id)
+
+ with {:ok, %Comment{} = comment} <- Events.update_comment(comment, comment_params) do
+ render(conn, "show.json", comment: comment)
+ end
+ end
+
+ def delete(conn, %{"id" => id}) do
+ comment = Events.get_comment!(id)
+ with {:ok, %Comment{}} <- Events.delete_comment(comment) do
+ send_resp(conn, :no_content, "")
+ end
+ end
+end
diff --git a/lib/eventos_web/controllers/event_controller.ex b/lib/eventos_web/controllers/event_controller.ex
index 1da9ba84a..93e6c80f7 100644
--- a/lib/eventos_web/controllers/event_controller.ex
+++ b/lib/eventos_web/controllers/event_controller.ex
@@ -17,46 +17,61 @@ defmodule EventosWeb.EventController do
end
def create(conn, %{"event" => event_params}) do
- event_params = %{event_params | "address" => process_address(event_params["address"])}
+ address = process_address(event_params["address"])
+ event_params = if is_nil address do
+ event_params
+ else
+ %{event_params | "address" => address}
+ end
with {:ok, %Event{} = event} <- Events.create_event(event_params) do
conn
|> put_status(:created)
- |> put_resp_header("location", event_path(conn, :show, event))
+ |> put_resp_header("location", event_path(conn, :show, event.uuid))
|> render("show_simple.json", event: event)
end
end
defp process_address(address) do
- case Addresses.process_geom(address["geom"]) do
- {:ok, geom} ->
+ import Logger
+ Logger.debug("process address")
+ Logger.debug(inspect address)
+ geom = EventosWeb.AddressController.process_geom(address["geom"])
+ Logger.debug(inspect geom)
+ case geom do
+ nil ->
+ address
+ _ ->
%{address | "geom" => geom}
_ ->
address
end
end
- def show(conn, %{"id" => id}) do
- event = Events.get_event_full!(id)
+ def search(conn, %{"name" => name}) do
+ events = Events.find_events_by_name(name)
+ render(conn, "index.json", events: events)
+ end
+
+ def show(conn, %{"uuid" => uuid}) do
+ event = Events.get_event_full_by_uuid(uuid)
render(conn, "show.json", event: event)
end
- def export_to_ics(conn, %{"id" => id}) do
- event = id
- |> Events.get_event!()
- |> ICalendar.export_event()
+ def export_to_ics(conn, %{"uuid" => uuid}) do
+ event = Events.get_event_full_by_uuid(uuid) |> ICalendar.export_event()
send_resp(conn, 200, event)
end
- def update(conn, %{"id" => id, "event" => event_params}) do
- event = Events.get_event!(id)
+ def update(conn, %{"uuid" => uuid, "event" => event_params}) do
+ event = Events.get_event_full_by_uuid(uuid)
with {:ok, %Event{} = event} <- Events.update_event(event, event_params) do
render(conn, "show_simple.json", event: event)
end
end
- def delete(conn, %{"id" => id}) do
- event = Events.get_event!(id)
+ def delete(conn, %{"uuid" => uuid}) do
+ event = Events.get_event_by_uuid(uuid)
with {:ok, %Event{}} <- Events.delete_event(event) do
send_resp(conn, :no_content, "")
end
diff --git a/lib/eventos_web/controllers/event_request_controller.ex b/lib/eventos_web/controllers/event_request_controller.ex
index b8d30fb24..9e25c95e7 100644
--- a/lib/eventos_web/controllers/event_request_controller.ex
+++ b/lib/eventos_web/controllers/event_request_controller.ex
@@ -1,52 +1,52 @@
-defmodule EventosWeb.EventRequestController do
- @moduledoc """
- Controller for Event requests
- """
- use EventosWeb, :controller
-
- alias Eventos.Events
- alias Eventos.Events.Request
-
- action_fallback EventosWeb.FallbackController
-
- def index_for_user(conn, _params) do
- account = Guardian.Plug.current_resource(conn).account
- requests = Events.list_requests_for_account(account)
- render(conn, "index.json", requests: requests)
- end
-
- def create(conn, %{"request" => request_params}) do
- request_params = Map.put(request_params, "account_id", Guardian.Plug.current_resource(conn).account.id)
- with {:ok, %Request{} = request} <- Events.create_request(request_params) do
- conn
- |> put_status(:created)
- |> put_resp_header("location", event_request_path(conn, :show, request))
- |> render("show.json", request: request)
- end
- end
-
- def create_for_event(conn, %{"request" => request_params, "id" => event_id}) do
- request_params = Map.put(request_params, "event_id", event_id)
- create(conn, request_params)
- end
-
- def show(conn, %{"id" => id}) do
- request = Events.get_request!(id)
- render(conn, "show.json", request: request)
- end
-
- def update(conn, %{"id" => id, "request" => request_params}) do
- request = Events.get_request!(id)
-
- with {:ok, %Request{} = request} <- Events.update_request(request, request_params) do
- render(conn, "show.json", request: request)
- end
- end
-
- def delete(conn, %{"id" => id}) do
- request = Events.get_request!(id)
- with {:ok, %Request{}} <- Events.delete_request(request) do
- send_resp(conn, :no_content, "")
- end
- end
-end
+#defmodule EventosWeb.EventRequestController do
+# @moduledoc """
+# Controller for Event requests
+# """
+# use EventosWeb, :controller
+#
+# alias Eventos.Events
+# alias Eventos.Events.{Event, Request}
+#
+# action_fallback EventosWeb.FallbackController
+#
+# def index_for_user(conn, _params) do
+# actor = Guardian.Plug.current_resource(conn).actor
+# requests = Events.list_requests_for_actor(actor)
+# render(conn, "index.json", requests: requests)
+# end
+#
+# def create(conn, %{"request" => request_params}) do
+# request_params = Map.put(request_params, "actor_id", Guardian.Plug.current_resource(conn).actor.id)
+# with {:ok, %Request{} = request} <- Events.create_request(request_params) do
+# conn
+# |> put_status(:created)
+# |> put_resp_header("location", event_request_path(conn, :show, request))
+# |> render("show.json", request: request)
+# end
+# end
+#
+# def create_for_event(conn, %{"request" => request_params, "id" => event_id}) do
+# request_params = Map.put(request_params, "event_id", event_id)
+# create(conn, request_params)
+# end
+#
+# def show(conn, %{"id" => id}) do
+# request = Events.get_request!(id)
+# render(conn, "show.json", request: request)
+# end
+#
+# def update(conn, %{"id" => id, "request" => request_params}) do
+# request = Events.get_request!(id)
+#
+# with {:ok, %Request{} = request} <- Events.update_request(request, request_params) do
+# render(conn, "show.json", request: request)
+# end
+# end
+#
+# def delete(conn, %{"id" => id}) do
+# request = Events.get_request!(id)
+# with {:ok, %Request{}} <- Events.delete_request(request) do
+# send_resp(conn, :no_content, "")
+# end
+# end
+#end
diff --git a/lib/eventos_web/controllers/group_controller.ex b/lib/eventos_web/controllers/group_controller.ex
index a3a060b18..6d8b43822 100644
--- a/lib/eventos_web/controllers/group_controller.ex
+++ b/lib/eventos_web/controllers/group_controller.ex
@@ -4,44 +4,37 @@ defmodule EventosWeb.GroupController do
"""
use EventosWeb, :controller
- alias Eventos.Groups
- alias Eventos.Groups.Group
+ alias Eventos.Actors
+ alias Eventos.Actors.{Actor, Member}
action_fallback EventosWeb.FallbackController
def index(conn, _params) do
- groups = Groups.list_groups()
- render(conn, "index.json", groups: groups)
+ groups = Actors.list_groups()
+ render(conn, EventosWeb.ActorView, "index.json", actors: groups)
end
def create(conn, %{"group" => group_params}) do
- group_params = Map.put(group_params, "uri", "h")
- group_params = Map.put(group_params, "url", "h")
- with {:ok, %Group{} = group} <- Groups.create_group(group_params) do
+ with actor_admin = Guardian.Plug.current_resource(conn).actor,
+ {:ok, %Actor{} = group} <- Actors.create_group(group_params) do
conn
|> put_status(:created)
- |> put_resp_header("location", group_path(conn, :show, group))
- |> render("show_simple.json", group: group)
+ |> put_resp_header("location", actor_path(conn, :show, group))
+ |> render(EventosWeb.ActorView, "acccount_basic.json", actor: group)
end
end
- def show(conn, %{"id" => id}) do
- group = Groups.get_group_full!(id)
- render(conn, "show.json", group: group)
- end
-
- def update(conn, %{"id" => id, "group" => group_params}) do
- group = Groups.get_group!(id)
-
- with {:ok, %Group{} = group} <- Groups.update_group(group, group_params) do
- render(conn, "show_simple.json", group: group)
- end
- end
-
- def delete(conn, %{"id" => id}) do
- group = Groups.get_group!(id)
- with {:ok, %Group{}} <- Groups.delete_group(group) do
- send_resp(conn, :no_content, "")
+ def join(conn, %{"name" => group_name}) do
+ with actor = Guardian.Plug.current_resource(conn).actor,
+ group <- Actors.get_group_by_name(group_name),
+ %Member{} = member <- Actors.create_member(%{"parent_id" => group.id, "actor_id" => actor.id}) do
+ conn
+ |> put_status(:created)
+ |> render(EventosWeb.MemberView, "member.json", member: member)
+ else
+ err ->
+ import Logger
+ Logger.debug(inspect err)
end
end
end
diff --git a/lib/eventos_web/controllers/inboxes_controller.ex b/lib/eventos_web/controllers/inboxes_controller.ex
new file mode 100644
index 000000000..89060f24d
--- /dev/null
+++ b/lib/eventos_web/controllers/inboxes_controller.ex
@@ -0,0 +1,8 @@
+defmodule EventosWeb.InboxesController do
+
+ use EventosWeb, :controller
+
+ def create(conn) do
+
+ end
+end
diff --git a/lib/eventos_web/controllers/nodeinfo_controller.ex b/lib/eventos_web/controllers/nodeinfo_controller.ex
new file mode 100644
index 000000000..c00584bc0
--- /dev/null
+++ b/lib/eventos_web/controllers/nodeinfo_controller.ex
@@ -0,0 +1,67 @@
+defmodule EventosWeb.NodeinfoController do
+ use EventosWeb, :controller
+
+ alias EventosWeb
+ alias Eventos.{Actors, Events}
+
+ @instance Application.get_env(:eventos, :instance)
+
+ def schemas(conn, _params) do
+ response = %{
+ links: [
+ %{
+ rel: "http://nodeinfo.diaspora.software/ns/schema/2.0",
+ href: EventosWeb.Endpoint.url() <> "/nodeinfo/2.0.json"
+ }
+ ]
+ }
+
+ json(conn, response)
+ end
+
+ # Schema definition: https://github.com/jhass/nodeinfo/blob/master/schemas/2.0/schema.json
+ def nodeinfo(conn, %{"version" => "2.0.json"}) do
+ import Logger
+ Logger.debug(inspect @instance)
+ #stats = Stats.get_stats()
+
+ response = %{
+ version: "2.0",
+ software: %{
+ name: "eventos",
+ version: Keyword.get(@instance, :version)
+ },
+ protocols: ["activitypub"],
+ services: %{
+ inbound: [],
+ outbound: []
+ },
+ openRegistrations: Keyword.get(@instance, :registrations_open),
+ usage: %{
+ users: %{
+ #total: stats.user_count || 0
+ total: Actors.count_users()
+ },
+ localPosts: Events.count_local_events(),
+ localComments: Events.count_local_comments(),
+ #localPosts: stats.status_count || 0
+ },
+ metadata: %{
+ nodeName: Keyword.get(@instance, :name)
+ }
+ }
+
+ conn
+ |> put_resp_header(
+ "content-type",
+ "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8"
+ )
+ |> json(response)
+ end
+
+ def nodeinfo(conn, _) do
+ conn
+ |> put_status(404)
+ |> json(%{error: "Nodeinfo schema version not handled"})
+ end
+end
diff --git a/lib/eventos_web/controllers/outboxes_controller.ex b/lib/eventos_web/controllers/outboxes_controller.ex
new file mode 100644
index 000000000..f2dd0125e
--- /dev/null
+++ b/lib/eventos_web/controllers/outboxes_controller.ex
@@ -0,0 +1,11 @@
+defmodule EventosWeb.OutboxesController do
+
+ use EventosWeb, :controller
+
+ def show(conn) do
+ actor = Guardian.Plug.current_resource(conn).actor
+ events = actor.events
+
+ render(conn, "index.json", events: events)
+ end
+end
diff --git a/lib/eventos_web/controllers/search_controller.ex b/lib/eventos_web/controllers/search_controller.ex
new file mode 100644
index 000000000..bfdd1409f
--- /dev/null
+++ b/lib/eventos_web/controllers/search_controller.ex
@@ -0,0 +1,20 @@
+defmodule EventosWeb.SearchController do
+ @moduledoc """
+ Controller for Search
+ """
+ use EventosWeb, :controller
+
+ alias Eventos.Events
+ alias Eventos.Actors
+
+ action_fallback EventosWeb.FallbackController
+
+ def search(conn, %{"name" => name}) do
+ events = Events.find_events_by_name(name)
+ case Actors.search(name) do # find already saved accounts
+ {:ok, actors} ->
+ render(conn, "search.json", events: events, actors: actors)
+ {:error, err} -> json(conn, err)
+ end
+ end
+end
diff --git a/lib/eventos_web/controllers/user_controller.ex b/lib/eventos_web/controllers/user_controller.ex
index a2982fb95..fbbe872fc 100644
--- a/lib/eventos_web/controllers/user_controller.ex
+++ b/lib/eventos_web/controllers/user_controller.ex
@@ -4,19 +4,19 @@ defmodule EventosWeb.UserController do
"""
use EventosWeb, :controller
- alias Eventos.Accounts
- alias Eventos.Accounts.User
+ alias Eventos.Actors
+ alias Eventos.Actors.User
alias Eventos.Repo
action_fallback EventosWeb.FallbackController
def index(conn, _params) do
- users = Accounts.list_users_with_accounts()
+ users = Actors.list_users_with_actors()
render(conn, "index.json", users: users)
end
def register(conn, %{"username" => username, "email" => email, "password" => password}) do
- case Accounts.register(%{email: email, password: password, username: username}) do
+ case Actors.register(%{email: email, password: password, username: username}) do
{:ok, %User{} = user} ->
{:ok, token, _claims} = EventosWeb.Guardian.encode_and_sign(user)
conn
@@ -29,10 +29,10 @@ defmodule EventosWeb.UserController do
end
end
- def show_current_account(conn, _params) do
+ def show_current_actor(conn, _params) do
user = Guardian.Plug.current_resource(conn)
user
- |> Repo.preload(:account)
+ |> Repo.preload(:actor)
render(conn, "show_simple.json", user: user)
end
@@ -56,16 +56,16 @@ defmodule EventosWeb.UserController do
end
def update(conn, %{"id" => id, "user" => user_params}) do
- user = Accounts.get_user!(id)
+ user = Actors.get_user!(id)
- with {:ok, %User{} = user} <- Accounts.update_user(user, user_params) do
+ with {:ok, %User{} = user} <- Actors.update_user(user, user_params) do
render(conn, "show.json", user: user)
end
end
def delete(conn, %{"id" => id}) do
- user = Accounts.get_user!(id)
- with {:ok, %User{}} <- Accounts.delete_user(user) do
+ user = Actors.get_user!(id)
+ with {:ok, %User{}} <- Actors.delete_user(user) do
send_resp(conn, :no_content, "")
end
end
diff --git a/lib/eventos_web/controllers/user_session_controller.ex b/lib/eventos_web/controllers/user_session_controller.ex
index 0858606a8..8cfe3d755 100644
--- a/lib/eventos_web/controllers/user_session_controller.ex
+++ b/lib/eventos_web/controllers/user_session_controller.ex
@@ -3,14 +3,14 @@ defmodule EventosWeb.UserSessionController do
Controller for user sessions
"""
use EventosWeb, :controller
- alias Eventos.Accounts.User
- alias Eventos.Accounts
+ alias Eventos.Actors.User
+ alias Eventos.Actors
def sign_in(conn, %{"email" => email, "password" => password}) do
- case Accounts.find_by_email(email) do
+ case Actors.find_by_email(email) do
%User{} = user ->
# Attempt to authenticate the user
- case Accounts.authenticate(%{user: user, password: password}) do
+ case Actors.authenticate(%{user: user, password: password}) do
{:ok, token, _claims} ->
# Render the token
render conn, "token.json", %{token: token, user: user}
diff --git a/lib/eventos_web/controllers/web_finger_controller.ex b/lib/eventos_web/controllers/web_finger_controller.ex
new file mode 100644
index 000000000..5a63403a5
--- /dev/null
+++ b/lib/eventos_web/controllers/web_finger_controller.ex
@@ -0,0 +1,21 @@
+defmodule EventosWeb.WebFingerController do
+ use EventosWeb, :controller
+
+ alias Eventos.Service.WebFinger
+
+ def host_meta(conn, _params) do
+ xml = WebFinger.host_meta()
+
+ conn
+ |> put_resp_content_type("application/xrd+xml")
+ |> send_resp(200, xml)
+ end
+
+ def webfinger(conn, %{"resource" => resource}) do
+ with {:ok, response} <- WebFinger.webfinger(resource, "JSON") do
+ json(conn, response)
+ else
+ _e -> send_resp(conn, 404, "Couldn't find user")
+ end
+ end
+end
diff --git a/lib/eventos_web/guardian.ex b/lib/eventos_web/guardian.ex
index dcb3840ee..590678ce8 100644
--- a/lib/eventos_web/guardian.ex
+++ b/lib/eventos_web/guardian.ex
@@ -7,8 +7,8 @@ defmodule EventosWeb.Guardian do
user: [:base]
}
- alias Eventos.Accounts
- alias Eventos.Accounts.User
+ alias Eventos.Actors
+ alias Eventos.Actors.User
def subject_for_token(%User{} = user, _claims) do
{:ok, "User:" <> to_string(user.id)}
@@ -22,7 +22,7 @@ defmodule EventosWeb.Guardian do
try do
case Integer.parse(uid_str) do
{uid, ""} ->
- {:ok, Accounts.get_user_with_account!(uid)}
+ {:ok, Actors.get_user_with_actor!(uid)}
_ ->
{:error, :invalid_id}
end
diff --git a/lib/eventos_web/http_signature.ex b/lib/eventos_web/http_signature.ex
new file mode 100644
index 000000000..7d3b1725b
--- /dev/null
+++ b/lib/eventos_web/http_signature.ex
@@ -0,0 +1,43 @@
+defmodule EventosWeb.HTTPSignaturePlug do
+ alias Eventos.Service.HTTPSignatures
+ import Plug.Conn
+ require Logger
+
+ def init(options) do
+ options
+ end
+
+ def call(%{assigns: %{valid_signature: true}} = conn, _opts) do
+ conn
+ end
+
+ def call(conn, _opts) do
+ user = conn.params["actor"]
+ Logger.debug("Checking sig for #{user}")
+ with [signature | _] <- get_req_header(conn, "signature") do
+ cond do
+ signature && String.contains?(signature, user) ->
+ conn =
+ conn
+ |> put_req_header(
+ "(request-target)",
+ String.downcase("#{conn.method}") <> " #{conn.request_path}"
+ )
+
+ assign(conn, :valid_signature, HTTPSignatures.validate_conn(conn))
+
+ signature ->
+ Logger.debug("Signature not from actor")
+ assign(conn, :valid_signature, false)
+
+ true ->
+ Logger.debug("No signature header!")
+ conn
+ end
+ else
+ _ ->
+ Logger.debug("No signature header!")
+ conn
+ end
+ end
+end
diff --git a/lib/eventos_web/router.ex b/lib/eventos_web/router.ex
index 40e40dcda..b10693c30 100644
--- a/lib/eventos_web/router.ex
+++ b/lib/eventos_web/router.ex
@@ -8,6 +8,15 @@ defmodule EventosWeb.Router do
plug :accepts, ["json"]
end
+ pipeline :well_known do
+ plug :accepts, ["json/application", "jrd-json"]
+ end
+
+ pipeline :activity_pub do
+ plug :accepts, ["activity-json"]
+ plug(EventosWeb.HTTPSignaturePlug)
+ end
+
pipeline :api_auth do
plug :accepts, ["json"]
plug EventosWeb.AuthPipeline
@@ -24,43 +33,86 @@ defmodule EventosWeb.Router do
scope "/api", EventosWeb do
pipe_through :api
- post "/users", UserController, :register
- post "/login", UserSessionController, :sign_in
- resources "/groups", GroupController, only: [:index, :show]
- resources "/events", EventController, only: [:index, :show]
- get "/events/:id/ics", EventController, :export_to_ics
- get "/events/:id/tracks", TrackController, :show_tracks_for_event
- get "/events/:id/sessions", SessionController, :show_sessions_for_event
- resources "/accounts", AccountController, only: [:index, :show]
- resources "/tags", TagController, only: [:index, :show]
- resources "/categories", CategoryController, only: [:index, :show]
- resources "/sessions", SessionController, only: [:index, :show]
- resources "/tracks", TrackController, only: [:index, :show]
- resources "/addresses", AddressController, only: [:index, :show]
+ scope "/v1" do
+
+ post "/users", UserController, :register
+ post "/login", UserSessionController, :sign_in
+ get "/groups", GroupController, :index
+ get "/events", EventController, :index
+ get "/events/search/:name", EventController, :search
+ get "/events/:uuid/ics", EventController, :export_to_ics
+ get "/events/:uuid/tracks", TrackController, :show_tracks_for_event
+ get "/events/:uuid/sessions", SessionController, :show_sessions_for_event
+ get "/events/:uuid", EventController, :show
+ resources "/comments", CommentController, only: [:show]
+ get "/bots/:id", BotController, :view
+
+ get "/actors", ActorController, :index
+ get "/actors/search/:name", ActorController, :search
+ get "/actors/:name", ActorController, :show
+ resources "/tags", TagController, only: [:index, :show]
+ resources "/categories", CategoryController, only: [:index, :show]
+ resources "/sessions", SessionController, only: [:index, :show]
+ resources "/tracks", TrackController, only: [:index, :show]
+ resources "/addresses", AddressController, only: [:index, :show]
+
+ get "/search/:name", SearchController, :search
+ end
end
# Other scopes may use custom stacks.
scope "/api", EventosWeb do
pipe_through :api_auth
- get "/user", UserController, :show_current_account
- post "/sign-out", UserSessionController, :sign_out
- resources "/users", UserController, except: [:new, :edit, :show]
- resources "/accounts", AccountController, except: [:new, :edit]
- resources "/events", EventController
- post "/events/:id/request", EventRequestController, :create_for_event
- resources "/participants", ParticipantController
- resources "/requests", EventRequestController
- resources "/groups", GroupController, except: [:index, :show]
- post "/groups/:id/request", GroupRequestController, :create_for_group
- resources "/members", MemberController
- resources "/requests", GroupRequestController
- resources "/sessions", SessionController, except: [:index, :show]
- resources "/tracks", TrackController, except: [:index, :show]
- get "/tracks/:id/sessions", SessionController, :show_sessions_for_track
- resources "/categories", CategoryController
- resources "/tags", TagController
- resources "/addresses", AddressController, except: [:index, :show]
+ scope "/v1" do
+
+ get "/user", UserController, :show_current_actor
+ post "/sign-out", UserSessionController, :sign_out
+ resources "/users", UserController, except: [:new, :edit, :show]
+ patch "/actors/:name", ActorController, :update
+ post "/events", EventController, :create
+ patch "/events/:uuid", EventController, :update
+ put "/events/:uuid", EventController, :update
+ delete "/events/:uuid", EventController, :delete
+ resources "/comments", CommentController, except: [:new, :edit, :show]
+ #post "/events/:id/request", EventRequestController, :create_for_event
+ resources "/participant", ParticipantController
+ resources "/bots", BotController, except: [:new, :edit, :show]
+ #resources "/requests", EventRequestController
+ post "/groups", GroupController, :create
+ post "/groups/:name/join", GroupController, :join
+ resources "/members", MemberController
+ resources "/sessions", SessionController, except: [:index, :show]
+ resources "/tracks", TrackController, except: [:index, :show]
+ get "/tracks/:id/sessions", SessionController, :show_sessions_for_track
+ resources "/categories", CategoryController
+ resources "/tags", TagController
+ resources "/addresses", AddressController, except: [:index, :show]
+ end
+ end
+
+ scope "/.well-known", EventosWeb do
+ pipe_through :well_known
+
+ get "/host-meta", WebFingerController, :host_meta
+ get "/webfinger", WebFingerController, :webfinger
+ get "/nodeinfo", NodeinfoController, :schemas
+ end
+
+ scope "/nodeinfo", EventosWeb do
+ get("/:version", NodeinfoController, :nodeinfo)
+ end
+
+ scope "/", EventosWeb do
+ pipe_through :activity_pub
+
+ get "/@:name", ActivityPubController, :actor
+ get "/@:name/outbox", ActivityPubController, :outbox
+ get "/@:name/following", ActivityPubController, :following
+ get "/@:name/followers", ActivityPubController, :followers
+ get "/@:name/:slug", ActivityPubController, :event
+ post "/@:name/inbox", ActivityPubController, :inbox
+ post "/inbox", ActivityPubController, :inbox
end
scope "/", EventosWeb do
diff --git a/lib/eventos_web/views/account_view.ex b/lib/eventos_web/views/account_view.ex
deleted file mode 100644
index 30d44bcbb..000000000
--- a/lib/eventos_web/views/account_view.ex
+++ /dev/null
@@ -1,50 +0,0 @@
-defmodule EventosWeb.AccountView do
- @moduledoc """
- View for Accounts
- """
- use EventosWeb, :view
- alias EventosWeb.{AccountView, EventView}
-
- def render("index.json", %{accounts: accounts}) do
- %{data: render_many(accounts, AccountView, "acccount_basic.json")}
- end
-
- def render("show.json", %{account: account}) do
- %{data: render_one(account, AccountView, "account.json")}
- end
-
- def render("show_basic.json", %{account: account}) do
- %{data: render_one(account, AccountView, "account_basic.json")}
- end
-
- def render("acccount_basic.json", %{account: account}) do
- %{id: account.id,
- username: account.username,
- domain: account.domain,
- display_name: account.display_name,
- description: account.description,
- # public_key: account.public_key,
- suspended: account.suspended,
- uri: account.uri,
- url: account.url,
- avatar_url: account.avatar_url,
- banner_url: account.banner_url,
- }
- end
-
- def render("account.json", %{account: account}) do
- %{id: account.id,
- username: account.username,
- domain: account.domain,
- display_name: account.display_name,
- description: account.description,
- # public_key: account.public_key,
- suspended: account.suspended,
- uri: account.uri,
- url: account.url,
- avatar_url: account.avatar_url,
- banner_url: account.banner_url,
- organized_events: render_many(account.organized_events, EventView, "event_simple.json")
- }
- end
-end
diff --git a/lib/eventos_web/views/activity_pub/actor_view.ex b/lib/eventos_web/views/activity_pub/actor_view.ex
new file mode 100644
index 000000000..b2ea02f3c
--- /dev/null
+++ b/lib/eventos_web/views/activity_pub/actor_view.ex
@@ -0,0 +1,156 @@
+defmodule EventosWeb.ActivityPub.ActorView do
+ use EventosWeb, :view
+
+ alias EventosWeb.ActivityPub.ActorView
+ alias EventosWeb.ActivityPub.ObjectView
+ alias EventosWeb.WebFinger
+ alias Eventos.Actors.Actor
+ alias Eventos.Repo
+ alias Eventos.Service.ActivityPub
+ alias Eventos.Service.ActivityPub.Transmogrifier
+ alias Eventos.Service.ActivityPub.Utils
+ alias Eventos.Activity
+ import Ecto.Query
+
+ def render("actor.json", %{actor: actor}) do
+ {:ok, public_key} = Actor.get_public_key_for_actor(actor)
+
+ %{
+ "id" => actor.url,
+ "type" => "Person",
+ "following" => actor.following_url,
+ "followers" => actor.followers_url,
+ "inbox" => actor.inbox_url,
+ "outbox" => actor.outbox_url,
+ "preferredUsername" => actor.preferred_username,
+ "name" => actor.name,
+ "summary" => actor.summary,
+ "url" => actor.url,
+ "manuallyApprovesFollowers" => actor.manually_approves_followers,
+ "publicKey" => %{
+ "id" => "#{actor.url}#main-key",
+ "owner" => actor.url,
+ "publicKeyPem" => public_key
+ },
+ "endpoints" => %{
+ "sharedInbox" => actor.shared_inbox_url,
+ },
+# "icon" => %{
+# "type" => "Image",
+# "url" => User.avatar_url(actor)
+# },
+# "image" => %{
+# "type" => "Image",
+# "url" => User.banner_url(actor)
+# }
+ }
+ |> Map.merge(Utils.make_json_ld_header())
+ end
+
+ def render("following.json", %{actor: actor, page: page}) do
+ following = Actor.get_followings(actor)
+
+ collection(following, actor.following_url, page)
+ |> Map.merge(Utils.make_json_ld_header())
+ end
+
+ def render("following.json", %{actor: actor}) do
+ following = Actor.get_followings(actor)
+
+ %{
+ "id" => actor.following_url,
+ "type" => "OrderedCollection",
+ "totalItems" => length(following),
+ "first" => collection(following, actor.following_url, 1)
+ }
+ |> Map.merge(Utils.make_json_ld_header())
+ end
+
+ def render("followers.json", %{actor: actor, page: page}) do
+ followers = Actor.get_followers(actor)
+
+ collection(followers, actor.followers_url, page)
+ |> Map.merge(Utils.make_json_ld_header())
+ end
+
+ def render("followers.json", %{actor: actor}) do
+ followers = Actor.get_followers(actor)
+
+ %{
+ "id" => actor.followers_url,
+ "type" => "OrderedCollection",
+ "totalItems" => length(followers),
+ "first" => collection(followers, actor.followers_url, 1)
+ }
+ |> Map.merge(Utils.make_json_ld_header())
+ end
+
+ def render("outbox.json", %{actor: actor, page: page}) do
+ {page, no_page} = if page == 0 do
+ {1, true}
+ else
+ {page, false}
+ end
+
+ {activities, total} = ActivityPub.fetch_public_activities_for_actor(actor, page)
+
+ collection =
+ Enum.map(activities, fn act ->
+ {:ok, data} = Transmogrifier.prepare_outgoing(act.data)
+ data
+ end)
+
+ iri = "#{actor.url}/outbox"
+
+ page = %{
+ "id" => "#{iri}?page=#{page}",
+ "type" => "OrderedCollectionPage",
+ "partOf" => iri,
+ "totalItems" => total,
+ "orderedItems" => render_many(activities, ActorView, "activity.json", as: :activity),
+ "next" => "#{iri}?page=#{page + 1}"
+ }
+
+ if no_page do
+ %{
+ "id" => iri,
+ "type" => "OrderedCollection",
+ "totalItems" => total,
+ "first" => page
+ }
+ |> Map.merge(Utils.make_json_ld_header())
+ else
+ page |> Map.merge(Utils.make_json_ld_header())
+ end
+ end
+
+ def render("activity.json", %{activity: %Activity{local: local} = activity}) do
+ %{
+ "id" => activity.data.url <> "/activity",
+ "type" => if local do "Create" else "Announce" end,
+ "actor" => activity.data.organizer_actor.url,
+ "published" => Timex.now(),
+ "to" => ["https://www.w3.org/ns/activitystreams#Public"],
+ "object" => render_one(activity.data, ObjectView, "event.json", as: :event)
+ }
+ end
+
+ def collection(collection, iri, page, total \\ nil) do
+ offset = (page - 1) * 10
+ items = Enum.slice(collection, offset, 10)
+ items = Enum.map(items, fn account -> account.url end)
+ total = total || length(collection)
+
+ map = %{
+ "id" => "#{iri}?page=#{page}",
+ "type" => "OrderedCollectionPage",
+ "partOf" => iri,
+ "totalItems" => total,
+ "orderedItems" => items
+ }
+
+ if offset < total do
+ Map.put(map, "next", "#{iri}?page=#{page + 1}")
+ end
+ end
+end
diff --git a/lib/eventos_web/views/activity_pub/object_view.ex b/lib/eventos_web/views/activity_pub/object_view.ex
new file mode 100644
index 000000000..6073ef683
--- /dev/null
+++ b/lib/eventos_web/views/activity_pub/object_view.ex
@@ -0,0 +1,42 @@
+defmodule EventosWeb.ActivityPub.ObjectView do
+ use EventosWeb, :view
+ alias EventosWeb.ActivityPub.ObjectView
+ alias Eventos.Service.ActivityPub.Transmogrifier
+ @base %{
+ "@context" => [
+ "https://www.w3.org/ns/activitystreams",
+ "https://w3id.org/security/v1",
+ %{
+ "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers",
+ "sensitive" => "as:sensitive",
+ "Hashtag" => "as:Hashtag",
+ "toot" => "http://joinmastodon.org/ns#",
+ "Emoji" => "toot:Emoji"
+ }
+ ]
+ }
+
+ def render("event.json", %{event: event}) do
+
+
+ event = %{
+ "type" => "Event",
+ "id" => event.url,
+ "name" => event.title,
+ "category" => render_one(event.category, ObjectView, "category.json", as: :category),
+ "content" => event.description,
+ "mediaType" => "text/markdown",
+ "published" => Timex.format!(event.inserted_at, "{ISO:Extended}"),
+ "updated" => Timex.format!(event.updated_at, "{ISO:Extended}"),
+ }
+ Map.merge(event, @base)
+ end
+
+ def render("category.json", %{category: category}) do
+ %{"title" => category.title}
+ end
+
+ def render("category.json", %{category: nil}) do
+ nil
+ end
+end
diff --git a/lib/eventos_web/views/actor_view.ex b/lib/eventos_web/views/actor_view.ex
new file mode 100644
index 000000000..f0c599fdf
--- /dev/null
+++ b/lib/eventos_web/views/actor_view.ex
@@ -0,0 +1,59 @@
+defmodule EventosWeb.ActorView do
+ @moduledoc """
+ View for Actors
+ """
+ use EventosWeb, :view
+ alias EventosWeb.{ActorView, EventView, MemberView}
+ alias Eventos.Actors
+
+ def render("index.json", %{actors: actors}) do
+ %{data: render_many(actors, ActorView, "acccount_basic.json")}
+ end
+
+ def render("show.json", %{actor: actor}) do
+ %{data: render_one(actor, ActorView, "actor.json")}
+ end
+
+ def render("show_basic.json", %{actor: actor}) do
+ %{data: render_one(actor, ActorView, "actor_basic.json")}
+ end
+
+ def render("acccount_basic.json", %{actor: actor}) do
+ %{id: actor.id,
+ username: actor.preferred_username,
+ domain: actor.domain,
+ display_name: actor.name,
+ description: actor.summary,
+ type: actor.type,
+ # public_key: actor.public_key,
+ suspended: actor.suspended,
+ url: actor.url,
+ avatar: actor.avatar_url,
+ }
+ end
+
+ def render("actor.json", %{actor: actor}) do
+ output = %{id: actor.id,
+ username: actor.preferred_username,
+ domain: actor.domain,
+ display_name: actor.name,
+ description: actor.summary,
+ type: actor.type,
+ # public_key: actor.public_key,
+ suspended: actor.suspended,
+ url: actor.url,
+ avatar: actor.avatar_url,
+ banner: actor.banner_url,
+ organized_events: render_many(actor.organized_events, EventView, "event_for_actor.json")
+ }
+ import Logger
+ Logger.debug(inspect actor.type)
+ if actor.type == :Group do
+ Logger.debug("I'm a group !")
+ Map.put(output, :members, render_many(Actors.members_for_group(actor), MemberView, "member.json"))
+ else
+ Logger.debug("not a group")
+ output
+ end
+ end
+end
diff --git a/lib/eventos_web/views/bot_view.ex b/lib/eventos_web/views/bot_view.ex
new file mode 100644
index 000000000..4074279c8
--- /dev/null
+++ b/lib/eventos_web/views/bot_view.ex
@@ -0,0 +1,18 @@
+defmodule EventosWeb.BotView do
+ use EventosWeb, :view
+ alias EventosWeb.BotView
+
+ def render("index.json", %{bots: bots}) do
+ %{data: render_many(bots, BotView, "bot.json")}
+ end
+
+ def render("show.json", %{bot: bot}) do
+ %{data: render_one(bot, BotView, "bot.json")}
+ end
+
+ def render("bot.json", %{bot: bot}) do
+ %{id: bot.id,
+ source: bot.source,
+ type: bot.type}
+ end
+end
diff --git a/lib/eventos_web/views/comment_view.ex b/lib/eventos_web/views/comment_view.ex
new file mode 100644
index 000000000..4dd58edbd
--- /dev/null
+++ b/lib/eventos_web/views/comment_view.ex
@@ -0,0 +1,18 @@
+defmodule EventosWeb.CommentView do
+ use EventosWeb, :view
+ alias EventosWeb.CommentView
+
+ def render("index.json", %{comments: comments}) do
+ %{data: render_many(comments, CommentView, "comment.json")}
+ end
+
+ def render("show.json", %{comment: comment}) do
+ %{data: render_one(comment, CommentView, "comment.json")}
+ end
+
+ def render("comment.json", %{comment: comment}) do
+ %{id: comment.id,
+ url: comment.url,
+ text: comment.text}
+ end
+end
diff --git a/lib/eventos_web/views/event_view.ex b/lib/eventos_web/views/event_view.ex
index 771836f74..464a576a7 100644
--- a/lib/eventos_web/views/event_view.ex
+++ b/lib/eventos_web/views/event_view.ex
@@ -3,7 +3,7 @@ defmodule EventosWeb.EventView do
View for Events
"""
use EventosWeb, :view
- alias EventosWeb.{EventView, AccountView, GroupView, AddressView}
+ alias EventosWeb.{EventView, ActorView, GroupView, AddressView}
def render("index.json", %{events: events}) do
%{data: render_many(events, EventView, "event_simple.json")}
@@ -17,12 +17,28 @@ defmodule EventosWeb.EventView do
%{data: render_one(event, EventView, "event.json")}
end
+ def render("event_for_actor.json", %{event: event}) do
+ %{id: event.id,
+ title: event.title,
+ slug: event.slug,
+ uuid: event.uuid,
+ }
+ end
+
def render("event_simple.json", %{event: event}) do
%{id: event.id,
title: event.title,
+ slug: event.slug,
description: event.description,
begins_on: event.begins_on,
ends_on: event.ends_on,
+ uuid: event.uuid,
+ organizer: %{
+ username: event.organizer_actor.preferred_username,
+ display_name: event.organizer_actor.name,
+ avatar: event.organizer_actor.avatar_url,
+ },
+ type: "Event",
}
end
@@ -32,10 +48,11 @@ defmodule EventosWeb.EventView do
description: event.description,
begins_on: event.begins_on,
ends_on: event.ends_on,
- organizer: render_one(event.organizer_account, AccountView, "acccount_basic.json"),
- group: render_one(event.organizer_group, GroupView, "group_basic.json"),
- participants: render_many(event.participants, AccountView, "show_basic.json"),
+ uuid: event.uuid,
+ organizer: render_one(event.organizer_actor, ActorView, "acccount_basic.json"),
+ participants: render_many(event.participants, ActorView, "show_basic.json"),
address: render_one(event.address, AddressView, "address.json"),
+ type: "Event",
}
end
end
diff --git a/lib/eventos_web/views/group_view.ex b/lib/eventos_web/views/group_view.ex
index b00a7c725..132f91d3e 100644
--- a/lib/eventos_web/views/group_view.ex
+++ b/lib/eventos_web/views/group_view.ex
@@ -3,7 +3,7 @@ defmodule EventosWeb.GroupView do
View for Groups
"""
use EventosWeb, :view
- alias EventosWeb.{GroupView, AccountView}
+ alias EventosWeb.{GroupView, ActorView}
def render("index.json", %{groups: groups}) do
%{data: render_many(groups, GroupView, "group_simple.json")}
@@ -23,7 +23,6 @@ defmodule EventosWeb.GroupView do
description: group.description,
suspended: group.suspended,
url: group.url,
- uri: group.uri
}
end
@@ -33,8 +32,7 @@ defmodule EventosWeb.GroupView do
description: group.description,
suspended: group.suspended,
url: group.url,
- uri: group.uri,
- members: render_many(group.members, AccountView, "acccount_basic.json"),
+ members: render_many(group.members, ActorView, "acccount_basic.json"),
events: render_many(group.organized_events, EventView, "event_simple.json")
}
end
diff --git a/lib/eventos_web/views/member_view.ex b/lib/eventos_web/views/member_view.ex
index f1def8a22..48463da94 100644
--- a/lib/eventos_web/views/member_view.ex
+++ b/lib/eventos_web/views/member_view.ex
@@ -3,7 +3,7 @@ defmodule EventosWeb.MemberView do
View for Members
"""
use EventosWeb, :view
- alias EventosWeb.MemberView
+ alias EventosWeb.{MemberView, ActorView}
def render("index.json", %{members: members}) do
%{data: render_many(members, MemberView, "member.json")}
@@ -14,7 +14,10 @@ defmodule EventosWeb.MemberView do
end
def render("member.json", %{member: member}) do
- %{id: member.id,
- role: member.role}
+ %{
+ role: member.role,
+ actor: render_one(member.actor, ActorView, "acccount_basic.json"),
+ group: render_one(member.parent, ActorView, "acccount_basic.json")
+ }
end
end
diff --git a/lib/eventos_web/views/request_view.ex b/lib/eventos_web/views/request_view.ex
deleted file mode 100644
index fc7e3b1f9..000000000
--- a/lib/eventos_web/views/request_view.ex
+++ /dev/null
@@ -1,20 +0,0 @@
-defmodule EventosWeb.RequestView do
- @moduledoc """
- View for event request
- """
- use EventosWeb, :view
- alias EventosWeb.RequestView
-
- def render("index.json", %{requests: requests}) do
- %{data: render_many(requests, RequestView, "request.json")}
- end
-
- def render("show.json", %{request: request}) do
- %{data: render_one(request, RequestView, "request.json")}
- end
-
- def render("request.json", %{request: request}) do
- %{id: request.id,
- state: request.state}
- end
-end
diff --git a/lib/eventos_web/views/search_view.ex b/lib/eventos_web/views/search_view.ex
new file mode 100644
index 000000000..2946af4a7
--- /dev/null
+++ b/lib/eventos_web/views/search_view.ex
@@ -0,0 +1,16 @@
+defmodule EventosWeb.SearchView do
+ @moduledoc """
+ View for Events
+ """
+ use EventosWeb, :view
+ alias EventosWeb.{EventView, ActorView, GroupView, AddressView}
+
+ def render("search.json", %{events: events, actors: actors}) do
+ %{
+ data: %{
+ events: render_many(events, EventView, "event_simple.json"),
+ actors: render_many(actors, ActorView, "acccount_basic.json"),
+ }
+ }
+ end
+end
diff --git a/lib/eventos_web/views/user_view.ex b/lib/eventos_web/views/user_view.ex
index 9d7ac9d1f..600a3f07c 100644
--- a/lib/eventos_web/views/user_view.ex
+++ b/lib/eventos_web/views/user_view.ex
@@ -4,7 +4,7 @@ defmodule EventosWeb.UserView do
"""
use EventosWeb, :view
alias EventosWeb.UserView
- alias EventosWeb.AccountView
+ alias EventosWeb.ActorView
def render("index.json", %{users: users}) do
%{data: render_many(users, UserView, "user_simple.json")}
@@ -28,14 +28,14 @@ defmodule EventosWeb.UserView do
def render("user_simple.json", %{user: user}) do
%{id: user.id,
role: user.role,
- account: render_one(user.account, AccountView, "acccount_basic.json")
+ actor: render_one(user.actor, ActorView, "acccount_basic.json")
}
end
def render("user.json", %{user: user}) do
%{id: user.id,
role: user.role,
- account: render_one(user.account, AccountView, "account.json")
+ actor: render_one(user.actor, ActorView, "actor.json")
}
end
diff --git a/lib/mix/tasks/create_bot.ex b/lib/mix/tasks/create_bot.ex
new file mode 100644
index 000000000..a2d6aec31
--- /dev/null
+++ b/lib/mix/tasks/create_bot.ex
@@ -0,0 +1,21 @@
+defmodule Mix.Tasks.CreateBot do
+ use Mix.Task
+ alias Eventos.Actors
+ alias Eventos.Actors.Bot
+ alias Eventos.Repo
+ import Logger
+
+ @shortdoc "Register user"
+ def run([email, name, summary, type, url]) do
+ Mix.Task.run("app.start")
+
+ with user <- Actors.find_by_email(email),
+ actor <- Actors.register_bot_account(%{name: name, summary: summary}),
+ {:ok, %Bot{} = bot} <- Actors.create_bot(%{"type" => type, "source" => url, "actor_id" => actor.id, "user_id" => user.id}) do
+ bot
+
+ else
+ e -> Logger.error(inspect e)
+ end
+ end
+end
diff --git a/lib/service/activity_pub/activity_pub.ex b/lib/service/activity_pub/activity_pub.ex
new file mode 100644
index 000000000..bbbc456e1
--- /dev/null
+++ b/lib/service/activity_pub/activity_pub.ex
@@ -0,0 +1,369 @@
+defmodule Eventos.Service.ActivityPub do
+ alias Eventos.Events
+ alias Eventos.Events.{Event, Category}
+ alias Eventos.Service.ActivityPub.Transmogrifier
+ alias Eventos.Service.WebFinger
+ alias Eventos.Activity
+
+ alias Eventos.Actors
+ alias Eventos.Actors.Actor
+
+ alias Eventos.Service.Federator
+
+ import Logger
+ import Eventos.Service.ActivityPub.Utils
+
+ def get_recipients(data) do
+ (data["to"] || []) ++ (data["cc"] || [])
+ end
+
+ def insert(map, local \\ true) when is_map(map) do
+ with map <- lazy_put_activity_defaults(map),
+ :ok <- insert_full_object(map) do
+ map = Map.put(map, "id", Ecto.UUID.generate())
+ activity = %Activity{
+ data: map,
+ local: local,
+ actor: map["actor"],
+ recipients: get_recipients(map)
+ }
+
+ # Notification.create_notifications(activity)
+ # stream_out(activity)
+ {:ok, activity}
+ else
+ %Activity{} = activity -> {:ok, activity}
+ error -> {:error, error}
+ end
+ end
+
+# def stream_out(%Activity{} = activity) do
+# if activity.data["type"] in ["Create", "Announce"] do
+# Pleroma.Web.Streamer.stream("user", activity)
+#
+# if Enum.member?(activity.data["to"], "https://www.w3.org/ns/activitystreams#Public") do
+# Pleroma.Web.Streamer.stream("public", activity)
+#
+# if activity.local do
+# Pleroma.Web.Streamer.stream("public:local", activity)
+# end
+# end
+# end
+# end
+
+ def fetch_event_from_url(url) do
+ if object = Events.get_event_by_url!(url) do
+ {:ok, object}
+ else
+ Logger.info("Fetching #{url} via AP")
+
+ with true <- String.starts_with?(url, "http"),
+ {:ok, %{body: body, status_code: code}} when code in 200..299 <-
+ HTTPoison.get(
+ url,
+ [Accept: "application/activity+json"],
+ follow_redirect: true,
+ timeout: 10000,
+ recv_timeout: 20000
+ ),
+ {:ok, data} <- Jason.decode(body),
+ nil <- Events.get_event_by_url!(data["id"]),
+ params <- %{
+ "type" => "Create",
+ "to" => data["to"],
+ "cc" => data["cc"],
+ "actor" => data["attributedTo"],
+ "object" => data
+ },
+ {:ok, activity} <- Transmogrifier.handle_incoming(params) do
+ {:ok, Events.get_event_by_url!(activity.data["object"]["id"])}
+ else
+ object = %Event{} -> {:ok, object}
+ e -> e
+ end
+ end
+ end
+
+ def create(%{to: to, actor: actor, context: context, object: object} = params) do
+ additional = params[:additional] || %{}
+ # only accept false as false value
+ local = !(params[:local] == false)
+ published = params[:published]
+
+ with create_data <-
+ make_create_data(
+ %{to: to, actor: actor, published: published, context: context, object: object},
+ additional
+ ),
+ {:ok, activity} <- insert(create_data, local),
+ :ok <- maybe_federate(activity) do
+ # {:ok, actor} <- Actors.increase_event_count(actor) do
+ {:ok, activity}
+ else
+ err ->
+ Logger.debug("Something went wrong")
+ Logger.debug(inspect err)
+ end
+ end
+
+ def accept(%{to: to, actor: actor, object: object} = params) do
+ # only accept false as false value
+ local = !(params[:local] == false)
+
+ with data <- %{"to" => to, "type" => "Accept", "actor" => actor, "object" => object},
+ {:ok, activity} <- insert(data, local),
+ :ok <- maybe_federate(activity) do
+ {:ok, activity}
+ end
+ end
+
+ def update(%{to: to, cc: cc, actor: actor, object: object} = params) do
+ # only accept false as false value
+ local = !(params[:local] == false)
+
+ with data <- %{
+ "to" => to,
+ "cc" => cc,
+ "type" => "Update",
+ "actor" => actor,
+ "object" => object
+ },
+ {:ok, activity} <- insert(data, local),
+ :ok <- maybe_federate(activity) do
+ {:ok, activity}
+ end
+ end
+
+ def follow(follower, followed, activity_id \\ nil, local \\ true) do
+ with data <- make_follow_data(follower, followed, activity_id),
+ {:ok, activity} <- insert(data, local),
+ :ok <- maybe_federate(activity) do
+ {:ok, activity}
+ end
+ end
+
+ def delete(%Event{url: url, organizer_actor: actor} = event, local \\ true) do
+
+ data = %{
+ "type" => "Delete",
+ "actor" => actor.url,
+ "object" => url,
+ "to" => [actor.url <> "/followers", "https://www.w3.org/ns/activitystreams#Public"]
+ }
+
+ with Events.delete_event(event),
+ {:ok, activity} <- insert(data, local),
+ :ok <- maybe_federate(activity)
+ do
+ {:ok, activity}
+ end
+ end
+
+ def create_public_activities(%Actor{} = actor) do
+
+ end
+
+ def make_actor_from_url(url) do
+ with {:ok, data} <- fetch_and_prepare_user_from_url(url) do
+ Actors.insert_or_update_actor(data)
+ else
+ e ->
+ Logger.error("Failed to make actor from url")
+ Logger.error(inspect e)
+ {:error, e}
+ end
+ end
+
+ @spec find_or_make_actor_from_nickname(String.t) :: tuple()
+ def find_or_make_actor_from_nickname(nickname) do
+ with %Actor{} = actor <- Actors.get_actor_by_name(nickname) do
+ {:ok, actor}
+ else
+ nil -> make_actor_from_nickname(nickname)
+ end
+ end
+
+ def make_actor_from_nickname(nickname) do
+ with {:ok, %{"url" => url}} when not is_nil(url) <- WebFinger.finger(nickname) do
+ make_actor_from_url(url)
+ else
+ _e -> {:error, "No ActivityPub URL found in WebFinger"}
+ end
+ end
+
+ def publish(actor, activity) do
+ Logger.debug("Publishing an activity")
+ followers =
+ if actor.followers_url in activity.recipients do
+ {:ok, followers} = Actor.get_followers(actor)
+ followers |> Enum.filter(fn follower -> is_nil(follower.domain) end)
+ else
+ []
+ end
+
+ remote_inboxes =
+ followers
+ |> Enum.map(fn follower -> follower.shared_inbox_url end)
+ |> Enum.uniq()
+
+ {:ok, data} = Transmogrifier.prepare_outgoing(activity.data)
+ json = Jason.encode!(data)
+
+ Enum.each(remote_inboxes, fn inbox ->
+ Federator.enqueue(:publish_single_ap, %{
+ inbox: inbox,
+ json: json,
+ actor: actor,
+ id: activity.data["id"]
+ })
+ end)
+ end
+
+ def publish_one(%{inbox: inbox, json: json, actor: actor, id: id}) do
+ Logger.info("Federating #{id} to #{inbox}")
+ host = URI.parse(inbox).host
+
+ signature =
+ Eventos.Service.HTTPSignatures.sign(actor, %{host: host, "content-length": byte_size(json)})
+ Logger.debug("signature")
+ Logger.debug(inspect signature)
+
+ {:ok, response} = HTTPoison.post(
+ inbox,
+ json,
+ [{"Content-Type", "application/activity+json"}, {"signature", signature}],
+ hackney: [pool: :default]
+ )
+ Logger.debug(inspect response)
+ end
+
+ def fetch_and_prepare_user_from_url(url) do
+ Logger.debug("Fetching and preparing user from url")
+ with {:ok, %{status_code: 200, body: body}} <-
+ HTTPoison.get(url, [Accept: "application/activity+json"], [follow_redirect: true]),
+ {:ok, data} <- Jason.decode(body) do
+ user_data_from_user_object(data)
+ else
+ e -> Logger.error("Could not decode user at fetch #{url}, #{inspect(e)}")
+ end
+ end
+
+ def user_data_from_user_object(data) do
+ name = if String.trim(data["name"]) === "" do
+ data["preferredUsername"]
+ else
+ data["name"]
+ end
+
+ user_data = %{
+ url: data["id"],
+ info: %{
+ "ap_enabled" => true,
+ "source_data" => data,
+ },
+ avatar_url: data["icon"]["url"],
+ banner_url: data["image"]["url"],
+ name: name,
+ preferred_username: data["preferredUsername"],
+ follower_address: data["followers"],
+ summary: data["summary"],
+ public_key: data["publicKey"]["publicKeyPem"],
+ inbox_url: data["inbox"],
+ outbox_url: data["outbox"],
+ following_url: data["following"],
+ followers_url: data["followers"],
+ shared_inbox_url: data["endpoints"]["sharedInbox"],
+ domain: URI.parse(data["id"]).host,
+ manually_approves_followers: data["manuallyApprovesFollowers"],
+ type: data["type"],
+ }
+
+ Logger.debug("user_data_from_user_object")
+ Logger.debug(inspect user_data)
+
+ {:ok, user_data}
+ end
+
+ @spec fetch_public_activities_for_actor(Actor.t, integer(), integer()) :: list()
+ def fetch_public_activities_for_actor(%Actor{} = actor, page \\ 1, limit \\ 10) do
+ case actor.type do
+ :Person ->
+ {:ok, events, total} = Events.get_events_for_actor(actor, page, limit)
+ activities = Enum.map(events, fn event ->
+ {:ok, activity} = event_to_activity(event)
+ activity
+ end)
+ {activities, total}
+ :Service ->
+ bot = Actors.get_bot_by_actor(actor)
+ case bot.type do
+ "ics" ->
+ {:ok, %HTTPoison.Response{body: body} = _resp} = HTTPoison.get(bot.source)
+ ical_events = body
+ |> ExIcal.parse()
+ |> ExIcal.by_range(DateTime.utc_now(), DateTime.utc_now() |> Timex.shift(years: 1))
+ activities = ical_events
+ |> Enum.chunk_every(limit)
+ |> Enum.at(page - 1)
+ |> Enum.map(fn event ->
+ {:ok, activity} = ical_event_to_activity(event, actor, bot.source)
+ activity
+ end)
+ {activities, length(ical_events)}
+ end
+ end
+ end
+
+ defp event_to_activity(%Event{} = event, local \\ true) do
+ activity = %Activity{
+ data: event,
+ local: local,
+ actor: event.organizer_actor.url,
+ recipients: ["https://www.w3.org/ns/activitystreams#Public"]
+ }
+
+ # Notification.create_notifications(activity)
+ #stream_out(activity)
+ {:ok, activity}
+ end
+
+ defp ical_event_to_activity(%ExIcal.Event{} = ical_event, %Actor{} = actor, source) do
+ # Logger.debug(inspect ical_event)
+ # TODO : refactor me !
+ category = if is_nil ical_event.categories do
+ nil
+ else
+ ical_category = ical_event.categories |> hd() |> String.downcase()
+ case ical_category |> Events.get_category_by_title() do
+ nil -> case Events.create_category(%{"title" => ical_category}) do
+ {:ok, %Category{} = category} -> category
+ _ -> nil
+ end
+ category -> category
+ end
+ end
+
+ {:ok, event} = Events.create_event(%{
+ begins_on: ical_event.start,
+ ends_on: ical_event.end,
+ inserted_at: ical_event.stamp,
+ updated_at: ical_event.stamp,
+ description: ical_event.description |> sanitize_ical_event_strings,
+ title: ical_event.summary |> sanitize_ical_event_strings,
+ organizer_actor: actor,
+ category: category,
+ })
+
+ event_to_activity(event, false)
+ end
+
+ defp sanitize_ical_event_strings(string) when is_binary(string) do
+ string
+ |> String.replace(~s"\r\n", "")
+ |> String.replace(~s"\\,", ",")
+ end
+
+ defp sanitize_ical_event_strings(nil) do
+ nil
+ end
+end
diff --git a/lib/service/activity_pub/transmogrifier.ex b/lib/service/activity_pub/transmogrifier.ex
new file mode 100644
index 000000000..3954de89a
--- /dev/null
+++ b/lib/service/activity_pub/transmogrifier.ex
@@ -0,0 +1,483 @@
+defmodule Eventos.Service.ActivityPub.Transmogrifier do
+ @moduledoc """
+ A module to handle coding from internal to wire ActivityPub and back.
+ """
+ alias Eventos.Actors.Actor
+ alias Eventos.Actors
+ alias Eventos.Events.Event
+ alias Eventos.Service.ActivityPub
+
+ import Ecto.Query
+
+ require Logger
+
+ @doc """
+ Modifies an incoming AP object (mastodon format) to our internal format.
+ """
+ def fix_object(object) do
+ object
+ |> Map.put("actor", object["attributedTo"])
+ |> fix_attachments
+ |> fix_context
+ #|> fix_in_reply_to
+ |> fix_emoji
+ |> fix_tag
+ end
+
+# def fix_in_reply_to(%{"inReplyTo" => in_reply_to_id} = object)
+# when not is_nil(in_reply_to_id) do
+# case ActivityPub.fetch_object_from_id(in_reply_to_id) do
+# {:ok, replied_object} ->
+# activity = Activity.get_create_activity_by_object_ap_id(replied_object.data["id"])
+#
+# object
+# |> Map.put("inReplyTo", replied_object.data["id"])
+# |> Map.put("inReplyToAtomUri", object["inReplyToAtomUri"] || in_reply_to_id)
+# |> Map.put("inReplyToStatusId", activity.id)
+# |> Map.put("conversation", replied_object.data["context"] || object["conversation"])
+# |> Map.put("context", replied_object.data["context"] || object["conversation"])
+#
+# e ->
+# Logger.error("Couldn't fetch #{object["inReplyTo"]} #{inspect(e)}")
+# object
+# end
+# end
+
+ def fix_in_reply_to(object), do: object
+
+ def fix_context(object) do
+ object
+ |> Map.put("context", object["conversation"])
+ end
+
+ def fix_attachments(object) do
+ attachments =
+ (object["attachment"] || [])
+ |> Enum.map(fn data ->
+ url = [%{"type" => "Link", "mediaType" => data["mediaType"], "href" => data["url"]}]
+ Map.put(data, "url", url)
+ end)
+
+ object
+ |> Map.put("attachment", attachments)
+ end
+
+ def fix_emoji(object) do
+ tags = object["tag"] || []
+ emoji = tags |> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end)
+
+ emoji =
+ emoji
+ |> Enum.reduce(%{}, fn data, mapping ->
+ name = data["name"]
+
+ if String.starts_with?(name, ":") do
+ name = name |> String.slice(1..-2)
+ end
+
+ mapping |> Map.put(name, data["icon"]["url"])
+ end)
+
+ # we merge mastodon and pleroma emoji into a single mapping, to allow for both wire formats
+ emoji = Map.merge(object["emoji"] || %{}, emoji)
+
+ object
+ |> Map.put("emoji", emoji)
+ end
+
+ def fix_tag(object) do
+ tags =
+ (object["tag"] || [])
+ |> Enum.filter(fn data -> data["type"] == "Hashtag" and data["name"] end)
+ |> Enum.map(fn data -> String.slice(data["name"], 1..-1) end)
+
+ combined = (object["tag"] || []) ++ tags
+
+ object
+ |> Map.put("tag", combined)
+ end
+
+ # TODO: validate those with a Ecto scheme
+ # - tags
+ # - emoji
+ def handle_incoming(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
+ Logger.debug("Handle incoming to create notes")
+ with %Actor{} = actor <- Actor.get_or_fetch_by_url(data["actor"]) do
+ Logger.debug("found actor")
+ object = fix_object(data["object"])
+
+ params = %{
+ to: data["to"],
+ object: object,
+ actor: actor,
+ context: object["conversation"],
+ local: false,
+ published: data["published"],
+ additional:
+ Map.take(data, [
+ "cc",
+ "id"
+ ])
+ }
+
+ ActivityPub.create(params)
+ end
+ end
+
+ def handle_incoming(%{"type" => "Follow", "object" => followed, "actor" => follower, "id" => id} = data) do
+ with %Actor{} = followed <- Actors.get_actor_by_url(followed),
+ %Actor{} = follower <- Actors.get_or_fetch_by_url(follower),
+ {:ok, activity} <- ActivityPub.follow(follower, followed, id, false) do
+ ActivityPub.accept(%{to: [follower.url], actor: followed.url, object: data, local: true})
+
+ #Actors.follow(follower, followed)
+ {:ok, activity}
+ else
+ _e -> :error
+ end
+ end
+#
+# def handle_incoming(
+# %{"type" => "Like", "object" => object_id, "actor" => actor, "id" => id} = data
+# ) do
+# with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),
+# {:ok, object} <-
+# get_obj_helper(object_id) || ActivityPub.fetch_object_from_id(object_id),
+# {:ok, activity, object} <- ActivityPub.like(actor, object, id, false) do
+# {:ok, activity}
+# else
+# _e -> :error
+# end
+# end
+#
+ def handle_incoming(
+ %{"type" => "Announce", "object" => object_id, "actor" => actor, "id" => id} = data
+ ) do
+ with %Actor{} = actor <- Actors.get_or_fetch_by_url(actor),
+ {:ok, object} <-
+ get_obj_helper(object_id) || ActivityPub.fetch_event_from_url(object_id),
+ {:ok, activity, object} <- ActivityPub.announce(actor, object, id, false) do
+ {:ok, activity}
+ else
+ _e -> :error
+ end
+ end
+#
+# def handle_incoming(
+# %{"type" => "Update", "object" => %{"type" => "Person"} = object, "actor" => actor_id} =
+# data
+# ) do
+# with %User{ap_id: ^actor_id} = actor <- User.get_by_ap_id(object["id"]) do
+# {:ok, new_user_data} = ActivityPub.user_data_from_user_object(object)
+#
+# banner = new_user_data[:info]["banner"]
+#
+# update_data =
+# new_user_data
+# |> Map.take([:name, :bio, :avatar])
+# |> Map.put(:info, Map.merge(actor.info, %{"banner" => banner}))
+#
+# actor
+# |> User.upgrade_changeset(update_data)
+# |> User.update_and_set_cache()
+#
+# ActivityPub.update(%{
+# local: false,
+# to: data["to"] || [],
+# cc: data["cc"] || [],
+# object: object,
+# actor: actor_id
+# })
+# else
+# e ->
+# Logger.error(e)
+# :error
+# end
+# end
+#
+# # TODO: Make secure.
+# def handle_incoming(
+# %{"type" => "Delete", "object" => object_id, "actor" => actor, "id" => id} = data
+# ) do
+# object_id =
+# case object_id do
+# %{"id" => id} -> id
+# id -> id
+# end
+#
+# with %User{} = actor <- User.get_or_fetch_by_ap_id(actor),
+# {:ok, object} <-
+# get_obj_helper(object_id) || ActivityPub.fetch_object_from_id(object_id),
+# {:ok, activity} <- ActivityPub.delete(object, false) do
+# {:ok, activity}
+# else
+# e -> :error
+# end
+# end
+#
+# # TODO
+# # Accept
+# # Undo
+#
+ def handle_incoming(_), do: :error
+
+ def get_obj_helper(id) do
+ if object = Object.get_by_ap_id(id), do: {:ok, object}, else: nil
+ end
+
+ def set_reply_to_uri(%{"inReplyTo" => inReplyTo} = object) do
+ with false <- String.starts_with?(inReplyTo, "http"),
+ {:ok, %{data: replied_to_object}} <- get_obj_helper(inReplyTo) do
+ Map.put(object, "inReplyTo", replied_to_object["external_url"] || inReplyTo)
+ else
+ _e -> object
+ end
+ end
+
+ def set_reply_to_uri(obj), do: obj
+#
+# # Prepares the object of an outgoing create activity.
+ def prepare_object(object) do
+ object
+# |> set_sensitive
+# |> add_hashtags
+# |> add_mention_tags
+# |> add_emoji_tags
+ |> add_attributed_to
+# |> prepare_attachments
+ |> set_conversation
+ |> set_reply_to_uri
+ end
+
+ @doc
+ """
+ internal -> Mastodon
+ """
+
+ def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
+ object =
+ object
+ |> prepare_object
+
+ data =
+ data
+ |> Map.put("object", object)
+ |> Map.put("@context", "https://www.w3.org/ns/activitystreams")
+
+ {:ok, data}
+ end
+
+ def prepare_outgoing(%{"type" => type} = data) do
+ data =
+ data
+ #|> maybe_fix_object_url
+ |> Map.put("@context", "https://www.w3.org/ns/activitystreams")
+
+ {:ok, data}
+ end
+
+ def prepare_outgoing(%Event{} = event) do
+ event =
+ event
+ |> Map.from_struct
+ |> Map.drop([:"__meta__"])
+ |> Map.put(:"@context", "https://www.w3.org/ns/activitystreams")
+ |> prepare_object
+
+ {:ok, event}
+ end
+#
+# def maybe_fix_object_url(data) do
+# if is_binary(data["object"]) and not String.starts_with?(data["object"], "http") do
+# case ActivityPub.fetch_object_from_id(data["object"]) do
+# {:ok, relative_object} ->
+# if relative_object.data["external_url"] do
+# data =
+# data
+# |> Map.put("object", relative_object.data["external_url"])
+# else
+# data
+# end
+#
+# e ->
+# Logger.error("Couldn't fetch #{data["object"]} #{inspect(e)}")
+# data
+# end
+# else
+# data
+# end
+# end
+#
+# def add_hashtags(object) do
+# tags =
+# (object["tag"] || [])
+# |> Enum.map(fn tag ->
+# %{
+# "href" => Pleroma.Web.Endpoint.url() <> "/tags/#{tag}",
+# "name" => "##{tag}",
+# "type" => "Hashtag"
+# }
+# end)
+#
+# object
+# |> Map.put("tag", tags)
+# end
+#
+# def add_mention_tags(object) do
+# recipients = object["to"] ++ (object["cc"] || [])
+#
+# mentions =
+# recipients
+# |> Enum.map(fn ap_id -> User.get_cached_by_ap_id(ap_id) end)
+# |> Enum.filter(& &1)
+# |> Enum.map(fn user ->
+# %{"type" => "Mention", "href" => user.ap_id, "name" => "@#{user.nickname}"}
+# end)
+#
+# tags = object["tag"] || []
+#
+# object
+# |> Map.put("tag", tags ++ mentions)
+# end
+#
+# # TODO: we should probably send mtime instead of unix epoch time for updated
+# def add_emoji_tags(object) do
+# tags = object["tag"] || []
+# emoji = object["emoji"] || []
+#
+# out =
+# emoji
+# |> Enum.map(fn {name, url} ->
+# %{
+# "icon" => %{"url" => url, "type" => "Image"},
+# "name" => ":" <> name <> ":",
+# "type" => "Emoji",
+# "updated" => "1970-01-01T00:00:00Z",
+# "id" => url
+# }
+# end)
+#
+# object
+# |> Map.put("tag", tags ++ out)
+# end
+#
+ def set_conversation(object) do
+ Map.put(object, "conversation", object["context"])
+ end
+#
+# def set_sensitive(object) do
+# tags = object["tag"] || []
+# Map.put(object, "sensitive", "nsfw" in tags)
+# end
+#
+ def add_attributed_to(object) do
+ attributedTo = object["attributedTo"] || object["actor"]
+
+ object
+ |> Map.put("attributedTo", attributedTo)
+ end
+#
+# def prepare_attachments(object) do
+# attachments =
+# (object["attachment"] || [])
+# |> Enum.map(fn data ->
+# [%{"mediaType" => media_type, "href" => href} | _] = data["url"]
+# %{"url" => href, "mediaType" => media_type, "name" => data["name"], "type" => "Document"}
+# end)
+#
+# object
+# |> Map.put("attachment", attachments)
+# end
+#
+# defp user_upgrade_task(user) do
+# old_follower_address = User.ap_followers(user)
+#
+# q =
+# from(
+# u in User,
+# where: ^old_follower_address in u.following,
+# update: [
+# set: [
+# following:
+# fragment(
+# "array_replace(?,?,?)",
+# u.following,
+# ^old_follower_address,
+# ^user.follower_address
+# )
+# ]
+# ]
+# )
+#
+# Repo.update_all(q, [])
+#
+# maybe_retire_websub(user.ap_id)
+#
+# # Only do this for recent activties, don't go through the whole db.
+# # Only look at the last 1000 activities.
+# since = (Repo.aggregate(Activity, :max, :id) || 0) - 1_000
+#
+# q =
+# from(
+# a in Activity,
+# where: ^old_follower_address in a.recipients,
+# where: a.id > ^since,
+# update: [
+# set: [
+# recipients:
+# fragment(
+# "array_replace(?,?,?)",
+# a.recipients,
+# ^old_follower_address,
+# ^user.follower_address
+# )
+# ]
+# ]
+# )
+#
+# Repo.update_all(q, [])
+# end
+#
+# def upgrade_user_from_ap_id(ap_id, async \\ true) do
+# with %User{local: false} = user <- User.get_by_ap_id(ap_id),
+# {:ok, data} <- ActivityPub.fetch_and_prepare_user_from_ap_id(ap_id) do
+# data =
+# data
+# |> Map.put(:info, Map.merge(user.info, data[:info]))
+#
+# already_ap = User.ap_enabled?(user)
+#
+# {:ok, user} =
+# User.upgrade_changeset(user, data)
+# |> Repo.update()
+#
+# if !already_ap do
+# # This could potentially take a long time, do it in the background
+# if async do
+# Task.start(fn ->
+# user_upgrade_task(user)
+# end)
+# else
+# user_upgrade_task(user)
+# end
+# end
+#
+# {:ok, user}
+# else
+# e -> e
+# end
+# end
+#
+# def maybe_retire_websub(ap_id) do
+# # some sanity checks
+# if is_binary(ap_id) && String.length(ap_id) > 8 do
+# q =
+# from(
+# ws in Pleroma.Web.Websub.WebsubClientSubscription,
+# where: fragment("? like ?", ws.topic, ^"#{ap_id}%")
+# )
+#
+# Repo.delete_all(q)
+# end
+# end
+end
diff --git a/lib/service/activity_pub/utils.ex b/lib/service/activity_pub/utils.ex
new file mode 100644
index 000000000..087a64242
--- /dev/null
+++ b/lib/service/activity_pub/utils.ex
@@ -0,0 +1,307 @@
+defmodule Eventos.Service.ActivityPub.Utils do
+ alias Eventos.Repo
+ alias Eventos.Actors
+ alias Eventos.Actors.Actor
+ alias Eventos.Events.Event
+ alias Eventos.Events
+ alias Eventos.Activity
+ alias EventosWeb
+ alias EventosWeb.Router.Helpers
+ alias EventosWeb.Endpoint
+ alias Ecto.{Changeset, UUID}
+ import Ecto.Query
+
+ def make_json_ld_header do
+ %{
+ "@context" => [
+ "https://www.w3.org/ns/activitystreams",
+ %{
+ "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers",
+ "sensitive" => "as:sensitive",
+ "Hashtag" => "as:Hashtag",
+ "toot" => "http://joinmastodon.org/ns#",
+ "Emoji" => "toot:Emoji"
+ }
+ ]
+ }
+ end
+
+ def make_date do
+ DateTime.utc_now() |> DateTime.to_iso8601()
+ end
+
+ def generate_activity_id do
+ generate_id("activities")
+ end
+
+ def generate_context_id do
+ generate_id("contexts")
+ end
+
+# def generate_object_id do
+# Helpers.o_status_url(Endpoint, :object, UUID.generate())
+# end
+
+ def generate_id(type) do
+ "#{EventosWeb.Endpoint.url()}/#{type}/#{UUID.generate()}"
+ end
+
+# def create_context(context) do
+# context = context || generate_id("contexts")
+# changeset = Object.context_mapping(context)
+#
+# case Repo.insert(changeset) do
+# {:ok, object} ->
+# object
+#
+# # This should be solved by an upsert, but it seems ecto
+# # has problems accessing the constraint inside the jsonb.
+# {:error, _} ->
+# Events.get_cached_by_url(context)
+# end
+# end
+
+ @doc """
+ Enqueues an activity for federation if it's local
+ """
+ def maybe_federate(%Activity{local: true} = activity) do
+ priority =
+ case activity.data["type"] do
+ "Delete" -> 10
+ "Create" -> 1
+ _ -> 5
+ end
+
+ Eventos.Service.Federator.enqueue(:publish, activity, priority)
+ :ok
+ end
+
+ def maybe_federate(_), do: :ok
+
+ @doc """
+ Adds an id and a published data if they aren't there,
+ also adds it to an included object
+ """
+ def lazy_put_activity_defaults(map) do
+# %{data: %{"id" => context}, id: context_id} = create_context(map["context"])
+#
+# map =
+# map
+# |> Map.put_new_lazy("id", &generate_activity_id/0)
+# |> Map.put_new_lazy("published", &make_date/0)
+# |> Map.put_new("context", context)
+# |> Map.put_new("context_id", context_id)
+
+ if is_map(map["object"]) do
+ object = lazy_put_object_defaults(map["object"], map)
+ %{map | "object" => object}
+ else
+ map
+ end
+ end
+
+ @doc """
+ Adds an id and published date if they aren't there.
+ """
+ def lazy_put_object_defaults(map, activity \\ %{}) do
+ map
+ #|> Map.put_new_lazy("id", &generate_object_id/0)
+ |> Map.put_new_lazy("published", &make_date/0)
+ |> Map.put_new("context", activity["context"])
+ |> Map.put_new("context_id", activity["context_id"])
+ end
+
+ @doc """
+ Inserts a full object if it is contained in an activity.
+ """
+ def insert_full_object(%{"object" => %{"type" => type} = object_data})
+ when is_map(object_data) and type == "Event" do
+ with {:ok, _} <- Events.create_event(object_data) do
+ :ok
+ end
+ end
+
+ @doc """
+ Inserts a full object if it is contained in an activity.
+ """
+ def insert_full_object(%{"object" => %{"type" => type} = object_data})
+ when is_map(object_data) and type == "Note" do
+ import Logger
+ Logger.debug("insert full object")
+ Logger.debug(inspect object_data)
+ actor = Actors.get_actor_by_url(object_data["actor"])
+ data = %{"text" => object_data["content"], "url" => object_data["id"], "actor_id" => actor.id, "in_reply_to_comment_id" => object_data["inReplyTo"]}
+ with {:ok, _} <- Events.create_comment(data) do
+ :ok
+ end
+ end
+
+ def insert_full_object(_), do: :ok
+
+# def update_object_in_activities(%{data: %{"id" => id}} = object) do
+# # TODO
+# # Update activities that already had this. Could be done in a seperate process.
+# # Alternatively, just don't do this and fetch the current object each time. Most
+# # could probably be taken from cache.
+# relevant_activities = Activity.all_by_object_url(id)
+#
+# Enum.map(relevant_activities, fn activity ->
+# new_activity_data = activity.data |> Map.put("object", object.data)
+# changeset = Changeset.change(activity, data: new_activity_data)
+# Repo.update(changeset)
+# end)
+# end
+
+ #### Like-related helpers
+
+# @doc """
+# Returns an existing like if a user already liked an object
+# """
+# def get_existing_like(actor, %{data: %{"id" => id}}) do
+# query =
+# from(
+# activity in Activity,
+# where: fragment("(?)->>'actor' = ?", activity.data, ^actor),
+# # this is to use the index
+# where:
+# fragment(
+# "coalesce((?)->'object'->>'id', (?)->>'object') = ?",
+# activity.data,
+# activity.data,
+# ^id
+# ),
+# where: fragment("(?)->>'type' = 'Like'", activity.data)
+# )
+#
+# Repo.one(query)
+# end
+
+ def make_like_data(%Actor{url: url} = actor, %{data: %{"id" => id}} = object, activity_id) do
+ data = %{
+ "type" => "Like",
+ "actor" => url,
+ "object" => id,
+ "to" => [actor.follower_address, object.data["actor"]],
+ "cc" => ["https://www.w3.org/ns/activitystreams#Public"],
+ "context" => object.data["context"]
+ }
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
+ end
+
+ def update_element_in_object(property, element, object) do
+ with new_data <-
+ object.data
+ |> Map.put("#{property}_count", length(element))
+ |> Map.put("#{property}s", element),
+ changeset <- Changeset.change(object, data: new_data),
+ {:ok, object} <- Repo.update(changeset) do
+ {:ok, object}
+ end
+ end
+
+# def update_likes_in_object(likes, object) do
+# update_element_in_object("like", likes, object)
+# end
+#
+# def add_like_to_object(%Activity{data: %{"actor" => actor}}, object) do
+# with likes <- [actor | object.data["likes"] || []] |> Enum.uniq() do
+# update_likes_in_object(likes, object)
+# end
+# end
+#
+# def remove_like_from_object(%Activity{data: %{"actor" => actor}}, object) do
+# with likes <- (object.data["likes"] || []) |> List.delete(actor) do
+# update_likes_in_object(likes, object)
+# end
+# end
+
+ #### Follow-related helpers
+
+ @doc """
+ Makes a follow activity data for the given follower and followed
+ """
+ def make_follow_data(%Actor{url: follower_id}, %Actor{url: followed_id}, activity_id) do
+ data = %{
+ "type" => "Follow",
+ "actor" => follower_id,
+ "to" => [followed_id],
+ "cc" => ["https://www.w3.org/ns/activitystreams#Public"],
+ "object" => followed_id
+ }
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
+ end
+
+# def fetch_latest_follow(%Actor{url: follower_id}, %Actor{url: followed_id}) do
+# query =
+# from(
+# activity in Activity,
+# where:
+# fragment(
+# "? @> ?",
+# activity.data,
+# ^%{type: "Follow", actor: follower_id, object: followed_id}
+# ),
+# order_by: [desc: :id],
+# limit: 1
+# )
+#
+# Repo.one(query)
+# end
+
+ #### Announce-related helpers
+
+ @doc """
+ Make announce activity data for the given actor and object
+ """
+ def make_announce_data(
+ %Actor{url: url} = user,
+ %Event{id: id} = object,
+ activity_id
+ ) do
+ data = %{
+ "type" => "Announce",
+ "actor" => url,
+ "object" => id,
+ "to" => [user.follower_address, object.data["actor"]],
+ "cc" => ["https://www.w3.org/ns/activitystreams#Public"],
+ "context" => object.data["context"]
+ }
+
+ if activity_id, do: Map.put(data, "id", activity_id), else: data
+ end
+
+ def add_announce_to_object(%Activity{data: %{"actor" => actor}}, object) do
+ with announcements <- [actor | object.data["announcements"] || []] |> Enum.uniq() do
+ update_element_in_object("announcement", announcements, object)
+ end
+ end
+
+ #### Unfollow-related helpers
+
+ def make_unfollow_data(follower, followed, follow_activity) do
+ %{
+ "type" => "Undo",
+ "actor" => follower.url,
+ "to" => [followed.url],
+ "object" => follow_activity.data["id"]
+ }
+ end
+
+ #### Create-related helpers
+
+ def make_create_data(params, additional) do
+ published = params.published || make_date()
+
+ %{
+ "type" => "Create",
+ "to" => params.to |> Enum.uniq(),
+ "actor" => params.actor.url,
+ "object" => params.object,
+ "published" => published,
+ "context" => params.context
+ }
+ |> Map.merge(additional)
+ end
+end
diff --git a/lib/service/federator.ex b/lib/service/federator.ex
new file mode 100644
index 000000000..2065537af
--- /dev/null
+++ b/lib/service/federator.ex
@@ -0,0 +1,126 @@
+defmodule Eventos.Service.Federator do
+ use GenServer
+ alias Eventos.Actors
+ alias Eventos.Activity
+ alias Eventos.Service.ActivityPub
+ alias Eventos.Service.ActivityPub.Transmogrifier
+ require Logger
+
+ @max_jobs 20
+
+ def init(args) do
+ {:ok, args}
+ end
+
+ def start_link do
+
+ spawn(fn ->
+ # 1 minute
+ Process.sleep(1000 * 60 * 1)
+ end)
+
+ GenServer.start_link(
+ __MODULE__,
+ %{
+ in: {:sets.new(), []},
+ out: {:sets.new(), []}
+ },
+ name: __MODULE__
+ )
+ end
+
+ def handle(:publish, activity) do
+ Logger.debug(inspect activity)
+ Logger.debug(fn -> "Running publish for #{activity.data["id"]}" end)
+
+ with actor when not is_nil(actor) <- Actors.get_actor_by_url(activity.data["actor"]) do
+
+ Logger.info(fn -> "Sending #{activity.data["id"]} out via AP" end)
+ ActivityPub.publish(actor, activity)
+ end
+ end
+
+ def handle(:incoming_ap_doc, params) do
+ Logger.info("Handling incoming AP activity")
+ Logger.debug(inspect params)
+
+ with {:ok, _activity} <- Transmogrifier.handle_incoming(params) do
+ else
+ %Activity{} ->
+ Logger.info("Already had #{params["id"]}")
+
+ _e ->
+ # Just drop those for now
+ Logger.info("Unhandled activity")
+ Logger.info(Poison.encode!(params, pretty: 2))
+ end
+ end
+
+ def handle(:publish_single_ap, params) do
+ ActivityPub.publish_one(params)
+ end
+
+ def handle(type, _) do
+ Logger.debug(fn -> "Unknown task: #{type}" end)
+ {:error, "Don't know what to do with this"}
+ end
+
+ def enqueue(type, payload, priority \\ 1) do
+ Logger.debug("enqueue")
+ if Mix.env() == :test do
+ handle(type, payload)
+ else
+ GenServer.cast(__MODULE__, {:enqueue, type, payload, priority})
+ end
+ end
+
+ def maybe_start_job(running_jobs, queue) do
+ if :sets.size(running_jobs) < @max_jobs && queue != [] do
+ {{type, payload}, queue} = queue_pop(queue)
+ {:ok, pid} = Task.start(fn -> handle(type, payload) end)
+ mref = Process.monitor(pid)
+ {:sets.add_element(mref, running_jobs), queue}
+ else
+ {running_jobs, queue}
+ end
+ end
+
+ def handle_cast({:enqueue, type, payload, _priority}, state)
+ when type in [:incoming_doc, :incoming_ap_doc] do
+ %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}} = state
+ i_queue = enqueue_sorted(i_queue, {type, payload}, 1)
+ {i_running_jobs, i_queue} = maybe_start_job(i_running_jobs, i_queue)
+ {:noreply, %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}}}
+ end
+
+ def handle_cast({:enqueue, type, payload, _priority}, state) do
+ %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}} = state
+ o_queue = enqueue_sorted(o_queue, {type, payload}, 1)
+ {o_running_jobs, o_queue} = maybe_start_job(o_running_jobs, o_queue)
+ {:noreply, %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}}}
+ end
+
+ def handle_cast(m, state) do
+ IO.inspect("Unknown: #{inspect(m)}, #{inspect(state)}")
+ {:noreply, state}
+ end
+
+ def handle_info({:DOWN, ref, :process, _pid, _reason}, state) do
+ %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}} = state
+ i_running_jobs = :sets.del_element(ref, i_running_jobs)
+ o_running_jobs = :sets.del_element(ref, o_running_jobs)
+ {i_running_jobs, i_queue} = maybe_start_job(i_running_jobs, i_queue)
+ {o_running_jobs, o_queue} = maybe_start_job(o_running_jobs, o_queue)
+
+ {:noreply, %{in: {i_running_jobs, i_queue}, out: {o_running_jobs, o_queue}}}
+ end
+
+ def enqueue_sorted(queue, element, priority) do
+ [%{item: element, priority: priority} | queue]
+ |> Enum.sort_by(fn %{priority: priority} -> priority end)
+ end
+
+ def queue_pop([%{item: element} | queue]) do
+ {element, queue}
+ end
+end
diff --git a/lib/service/http_signatures/http_signatures.ex b/lib/service/http_signatures/http_signatures.ex
new file mode 100644
index 000000000..517f29650
--- /dev/null
+++ b/lib/service/http_signatures/http_signatures.ex
@@ -0,0 +1,93 @@
+# https://tools.ietf.org/html/draft-cavage-http-signatures-08
+defmodule Eventos.Service.HTTPSignatures do
+ alias Eventos.Actors.Actor
+ alias Eventos.Service.ActivityPub
+ require Logger
+
+ def split_signature(sig) do
+ default = %{"headers" => "date"}
+
+ sig =
+ sig
+ |> String.trim()
+ |> String.split(",")
+ |> Enum.reduce(default, fn part, acc ->
+ [key | rest] = String.split(part, "=")
+ value = Enum.join(rest, "=")
+ Map.put(acc, key, String.trim(value, "\""))
+ end)
+
+ Map.put(sig, "headers", String.split(sig["headers"], ~r/\s/))
+ end
+
+ def validate(headers, signature, public_key) do
+ sigstring = build_signing_string(headers, signature["headers"])
+ Logger.debug("Signature: #{signature["signature"]}")
+ Logger.debug("Sigstring: #{sigstring}")
+ {:ok, sig} = Base.decode64(signature["signature"])
+ :public_key.verify(sigstring, :sha256, sig, public_key)
+ end
+
+ def validate_conn(conn) do
+ # TODO: How to get the right key and see if it is actually valid for that request.
+ # For now, fetch the key for the actor.
+ with actor_id <- conn.params["actor"],
+ {:ok, public_key_code} <- Actor.get_public_key_for_url(actor_id),
+ [public_key] = :public_key.pem_decode(public_key_code),
+ public_key = :public_key.pem_entry_decode(public_key) do
+ if validate_conn(conn, public_key) do
+ true
+ else
+ Logger.info("Could not validate request, re-fetching user and trying one more time")
+ # Fetch user anew and try one more time
+ with actor_id <- conn.params["actor"],
+ {:ok, _actor} <- ActivityPub.make_actor_from_url(actor_id),
+ {:ok, public_key_code} <- Actor.get_public_key_for_url(actor_id),
+ [public_key] = :public_key.pem_decode(public_key_code),
+ public_key = :public_key.pem_entry_decode(public_key) do
+ validate_conn(conn, public_key)
+ end
+ end
+ else
+ e ->
+ Logger.debug("Could not found url for actor!")
+ Logger.debug(inspect e)
+ false
+ end
+ end
+
+ def validate_conn(conn, public_key) do
+ headers = Enum.into(conn.req_headers, %{})
+ [host_without_port, _] = String.split(headers["host"], ":")
+ headers = Map.put(headers, "host", host_without_port)
+ signature = split_signature(headers["signature"])
+ validate(headers, signature, public_key)
+ end
+
+ def build_signing_string(headers, used_headers) do
+ used_headers
+ |> Enum.map(fn header -> "#{header}: #{headers[header]}" end)
+ |> Enum.join("\n")
+ end
+
+ def sign(actor, headers) do
+ with {:ok, private_key_code} = Actor.get_private_key_for_actor(actor),
+ [private_key] = :public_key.pem_decode(private_key_code),
+ private_key = :public_key.pem_entry_decode(private_key) do
+ sigstring = build_signing_string(headers, Map.keys(headers))
+
+ signature =
+ :public_key.sign(sigstring, :sha256, private_key)
+ |> Base.encode64()
+
+ [
+ keyId: actor.url <> "#main-key",
+ algorithm: "rsa-sha256",
+ headers: Map.keys(headers) |> Enum.join(" "),
+ signature: signature
+ ]
+ |> Enum.map(fn {k, v} -> "#{k}=\"#{v}\"" end)
+ |> Enum.join(",")
+ end
+ end
+end
diff --git a/lib/service/streamer.ex b/lib/service/streamer.ex
new file mode 100644
index 000000000..2656e36ba
--- /dev/null
+++ b/lib/service/streamer.ex
@@ -0,0 +1,145 @@
+defmodule Eventos.Service.Streamer do
+ use GenServer
+ require Logger
+ alias Eventos.Accounts.Actor
+
+ def init(args) do
+ {:ok, args}
+ end
+
+ def start_link do
+ spawn(fn ->
+ # 30 seconds
+ Process.sleep(1000 * 30)
+ GenServer.cast(__MODULE__, %{action: :ping})
+ end)
+
+ GenServer.start_link(__MODULE__, %{}, name: __MODULE__)
+ end
+
+ def add_socket(topic, socket) do
+ GenServer.cast(__MODULE__, %{action: :add, socket: socket, topic: topic})
+ end
+
+ def remove_socket(topic, socket) do
+ GenServer.cast(__MODULE__, %{action: :remove, socket: socket, topic: topic})
+ end
+
+ def stream(topic, item) do
+ GenServer.cast(__MODULE__, %{action: :stream, topic: topic, item: item})
+ end
+
+ def handle_cast(%{action: :ping}, topics) do
+ Map.values(topics)
+ |> List.flatten()
+ |> Enum.each(fn socket ->
+ Logger.debug("Sending keepalive ping")
+ send(socket.transport_pid, {:text, ""})
+ end)
+
+ spawn(fn ->
+ # 30 seconds
+ Process.sleep(1000 * 30)
+ GenServer.cast(__MODULE__, %{action: :ping})
+ end)
+
+ {:noreply, topics}
+ end
+
+# def handle_cast(%{action: :stream, topic: "user", item: %Notification{} = item}, topics) do
+# topic = "user:#{item.user_id}"
+#
+# Enum.each(topics[topic] || [], fn socket ->
+# json =
+# %{
+# event: "notification",
+# payload:
+# Pleroma.Web.MastodonAPI.MastodonAPIController.render_notification(
+# socket.assigns["user"],
+# item
+# )
+# |> Jason.encode!()
+# }
+# |> Jason.encode!()
+#
+# send(socket.transport_pid, {:text, json})
+# end)
+#
+# {:noreply, topics}
+# end
+
+ def handle_cast(%{action: :stream, topic: "user", item: item}, topics) do
+ Logger.debug("Trying to push to users")
+
+ recipient_topics =
+ User.get_recipients_from_activity(item)
+ |> Enum.map(fn %{id: id} -> "user:#{id}" end)
+
+ Enum.each(recipient_topics, fn topic ->
+ push_to_socket(topics, topic, item)
+ end)
+
+ {:noreply, topics}
+ end
+
+ def handle_cast(%{action: :stream, topic: topic, item: item}, topics) do
+ Logger.debug("Trying to push to #{topic}")
+ Logger.debug("Pushing item to #{topic}")
+ push_to_socket(topics, topic, item)
+ {:noreply, topics}
+ end
+
+ def handle_cast(%{action: :add, topic: topic, socket: socket}, sockets) do
+ topic = internal_topic(topic, socket)
+ sockets_for_topic = sockets[topic] || []
+ sockets_for_topic = Enum.uniq([socket | sockets_for_topic])
+ sockets = Map.put(sockets, topic, sockets_for_topic)
+ Logger.debug("Got new conn for #{topic}")
+ {:noreply, sockets}
+ end
+
+ def handle_cast(%{action: :remove, topic: topic, socket: socket}, sockets) do
+ topic = internal_topic(topic, socket)
+ sockets_for_topic = sockets[topic] || []
+ sockets_for_topic = List.delete(sockets_for_topic, socket)
+ sockets = Map.put(sockets, topic, sockets_for_topic)
+ Logger.debug("Removed conn for #{topic}")
+ {:noreply, sockets}
+ end
+
+ def handle_cast(m, state) do
+ Logger.info("Unknown: #{inspect(m)}, #{inspect(state)}")
+ {:noreply, state}
+ end
+
+ def push_to_socket(topics, topic, item) do
+ Enum.each(topics[topic] || [], fn socket ->
+ # Get the current user so we have up-to-date blocks etc.
+ user = User.get_cached_by_ap_id(socket.assigns[:user].ap_id)
+ blocks = user.info["blocks"] || []
+
+ unless item.actor in blocks do
+ json =
+ %{
+ event: "update",
+ payload:
+ Pleroma.Web.MastodonAPI.StatusView.render(
+ "status.json",
+ activity: item,
+ for: user
+ )
+ |> Jason.encode!()
+ }
+ |> Jason.encode!()
+
+ send(socket.transport_pid, {:text, json})
+ end
+ end)
+ end
+
+ defp internal_topic("user", socket) do
+ "user:#{socket.assigns[:user].id}"
+ end
+
+ defp internal_topic(topic, _), do: topic
+end
diff --git a/lib/service/web_finger/web_finger.ex b/lib/service/web_finger/web_finger.ex
new file mode 100644
index 000000000..d518378e1
--- /dev/null
+++ b/lib/service/web_finger/web_finger.ex
@@ -0,0 +1,95 @@
+defmodule Eventos.Service.WebFinger do
+
+ alias Eventos.Actors
+ alias Eventos.Service.XmlBuilder
+ alias Eventos.Repo
+ require Jason
+ require Logger
+
+ def host_meta do
+ base_url = EventosWeb.Endpoint.url()
+
+ {
+ :XRD,
+ %{xmlns: "http://docs.oasis-open.org/ns/xri/xrd-1.0"},
+ {
+ :Link,
+ %{
+ rel: "lrdd",
+ type: "application/xrd+xml",
+ template: "#{base_url}/.well-known/webfinger?resource={uri}"
+ }
+ }
+ }
+ |> XmlBuilder.to_doc()
+ end
+
+ def webfinger(resource, "JSON") do
+ host = EventosWeb.Endpoint.host()
+ regex = ~r/(acct:)?(?\w+)@#{host}/
+
+ with %{"name" => name} <- Regex.named_captures(regex, resource) do
+ user = Actors.get_local_actor_by_name(name)
+ {:ok, represent_user(user, "JSON")}
+ else
+ _e ->
+ with user when not is_nil(user) <- Actors.get_actor_by_url(resource) do
+ {:ok, represent_user(user, "JSON")}
+ else
+ _e ->
+ {:error, "Couldn't find user"}
+ end
+ end
+ end
+
+ def represent_user(user, "JSON") do
+ %{
+ "subject" => "acct:#{user.preferred_username}@#{EventosWeb.Endpoint.host() <> ":4001"}",
+ "aliases" => [user.url],
+ "links" => [
+ %{"rel" => "self", "type" => "application/activity+json", "href" => user.url},
+ ]
+ }
+ end
+
+ defp webfinger_from_json(doc) do
+ data =
+ Enum.reduce(doc["links"], %{"subject" => doc["subject"]}, fn link, data ->
+ case {link["type"], link["rel"]} do
+ {"application/activity+json", "self"} ->
+ Map.put(data, "url", link["href"])
+ _ ->
+ Logger.debug("Unhandled type: #{inspect(link["type"])}")
+ data
+ end
+ end)
+
+ {:ok, data}
+ end
+
+ def finger(actor) do
+ actor = String.trim_leading(actor, "@")
+
+ domain =
+ with [_name, domain] <- String.split(actor, "@") do
+ domain
+ else
+ _e ->
+ URI.parse(actor).host
+ end
+
+ address = "http://#{domain}/.well-known/webfinger?resource=acct:#{actor}"
+
+ Logger.debug(inspect address)
+ with {:ok, %HTTPoison.Response{} = response} <- HTTPoison.get(address, [Accept: "application/json, application/activity+json, application/jrd+json"],follow_redirect: true),
+ %{status_code: status_code, body: body} when status_code in 200..299 <- response do
+ {:ok, doc} = Jason.decode(body)
+ webfinger_from_json(doc)
+ else
+ e ->
+ Logger.debug(fn -> "Couldn't finger #{actor}" end)
+ Logger.debug(fn -> inspect(e) end)
+ {:error, e}
+ end
+ end
+end
diff --git a/lib/service/xml_builder.ex b/lib/service/xml_builder.ex
new file mode 100644
index 000000000..4e884cead
--- /dev/null
+++ b/lib/service/xml_builder.ex
@@ -0,0 +1,44 @@
+defmodule Eventos.Service.XmlBuilder do
+ def to_xml({tag, attributes, content}) do
+ open_tag = make_open_tag(tag, attributes)
+
+ content_xml = to_xml(content)
+
+ "<#{open_tag}>#{content_xml}#{tag}>"
+ end
+
+ def to_xml({tag, %{} = attributes}) do
+ open_tag = make_open_tag(tag, attributes)
+
+ "<#{open_tag} />"
+ end
+
+ def to_xml({tag, content}), do: to_xml({tag, %{}, content})
+
+ def to_xml(content) when is_binary(content) do
+ to_string(content)
+ end
+
+ def to_xml(content) when is_list(content) do
+ for element <- content do
+ to_xml(element)
+ end
+ |> Enum.join()
+ end
+
+ def to_xml(%NaiveDateTime{} = time) do
+ NaiveDateTime.to_iso8601(time)
+ end
+
+ def to_doc(content), do: ~s() <> to_xml(content)
+
+ defp make_open_tag(tag, attributes) do
+ attributes_string =
+ for {attribute, value} <- attributes do
+ "#{attribute}=\"#{value}\""
+ end
+ |> Enum.join(" ")
+
+ [tag, attributes_string] |> Enum.join(" ") |> String.trim()
+ end
+end
diff --git a/mix.exs b/mix.exs
index ebaebac30..2ed6514be 100644
--- a/mix.exs
+++ b/mix.exs
@@ -59,7 +59,14 @@ defmodule Eventos.Mixfile do
{:timex_ecto, "~> 3.0"},
{:icalendar, "~> 0.6"},
{:exgravatar, "~> 2.0.1"},
+ {:littlefinger, "~> 0.1"},
{:httpoison, "~> 1.0"},
+ {:json_ld, "~> 0.2"},
+ {:jason, "~> 1.0"},
+ {:ex_crypto, "~> 0.9.0"},
+ {:http_sign, "~> 0.1.1"},
+ {:ecto_enum, "~> 1.0"},
+ {:ex_ical, github: "tcitworld/ex_ical", branch: "usable"},
# Dev and test dependencies
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:ex_machina, "~> 2.1", only: :test},
diff --git a/mix.lock b/mix.lock
index 2e7cc9ae5..7ce0c7032 100644
--- a/mix.lock
+++ b/mix.lock
@@ -1,64 +1,68 @@
%{
- "argon2_elixir": {:hex, :argon2_elixir, "1.2.14", "0fc4bfbc1b7e459954987d3d2f3836befd72d63f3a355e3978f5005dd6e80816", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"},
+ "argon2_elixir": {:hex, :argon2_elixir, "1.3.0", "fbc521ca54e8802eeaf571caf1cf385827db3b02cae30d9aa591b83ea79785c2", [:make, :mix], [{:elixir_make, "~> 0.4", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm"},
"base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm"},
- "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [], [], "hexpm"},
- "certifi": {:hex, :certifi, "2.0.0", "a0c0e475107135f76b8c1d5bc7efb33cd3815cb3cf3dea7aefdd174dabead064", [], [], "hexpm"},
- "coherence": {:hex, :coherence, "0.5.0", "aaa785aa29e47d140030502b66b08fb58ec84e8120acbfaa6e6a61d3322ffa76", [], [{:comeonin, "~> 3.0", [hex: :comeonin, repo: "hexpm", optional: false]}, {:ecto, "~> 2.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:gettext, "~> 0.13", [hex: :gettext, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.10", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_swoosh, "~> 0.2", [hex: :phoenix_swoosh, repo: "hexpm", optional: false]}, {:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: false]}, {:timex_ecto, "~> 3.1", [hex: :timex_ecto, repo: "hexpm", optional: false]}, {:uuid, "~> 1.0", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
- "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [], [], "hexpm"},
- "comeonin": {:hex, :comeonin, "4.0.3", "4e257dcb748ed1ca2651b7ba24fdbd1bd24efd12482accf8079141e3fda23a10", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm"},
+ "bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm"},
+ "certifi": {:hex, :certifi, "2.3.1", "d0f424232390bf47d82da8478022301c561cf6445b5b5fb6a84d49a9e76d2639", [:rebar3], [{:parse_trans, "3.2.0", [hex: :parse_trans, repo: "hexpm", optional: false]}], "hexpm"},
+ "combine": {:hex, :combine, "0.10.0", "eff8224eeb56498a2af13011d142c5e7997a80c8f5b97c499f84c841032e429f", [:mix], [], "hexpm"},
+ "comeonin": {:hex, :comeonin, "4.1.1", "c7304fc29b45b897b34142a91122bc72757bc0c295e9e824999d5179ffc08416", [:mix], [{:argon2_elixir, "~> 1.2", [hex: :argon2_elixir, repo: "hexpm", optional: true]}, {:bcrypt_elixir, "~> 0.12.1 or ~> 1.0", [hex: :bcrypt_elixir, repo: "hexpm", optional: true]}, {:pbkdf2_elixir, "~> 0.12", [hex: :pbkdf2_elixir, repo: "hexpm", optional: true]}], "hexpm"},
"connection": {:hex, :connection, "1.0.4", "a1cae72211f0eef17705aaededacac3eb30e6625b04a6117c1b2db6ace7d5976", [:mix], [], "hexpm"},
- "cors_plug": {:hex, :cors_plug, "1.5.0", "6311ea6ac9fb78b987df52a7654136626a7a0c3b77f83da265f952a24f2fc1b0", [:mix], [{:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
+ "cors_plug": {:hex, :cors_plug, "1.5.2", "72df63c87e4f94112f458ce9d25800900cc88608c1078f0e4faddf20933eda6e", [:mix], [{:plug, "~> 1.3 or ~> 1.4 or ~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
"cowboy": {:hex, :cowboy, "1.1.2", "61ac29ea970389a88eca5a65601460162d370a70018afe6f949a29dca91f3bb0", [:rebar3], [{:cowlib, "~> 1.0.2", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3.2", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm"},
"cowlib": {:hex, :cowlib, "1.0.2", "9d769a1d062c9c3ac753096f868ca121e2730b9a377de23dec0f7e08b1df84ee", [:make], [], "hexpm"},
- "credo": {:hex, :credo, "0.8.10", "261862bb7363247762e1063713bb85df2bbd84af8d8610d1272cd9c1943bba63", [], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}], "hexpm"},
- "db_connection": {:hex, :db_connection, "1.1.2", "2865c2a4bae0714e2213a0ce60a1b12d76a6efba0c51fbda59c9ab8d1accc7a8", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
- "decimal": {:hex, :decimal, "1.4.1", "ad9e501edf7322f122f7fc151cce7c2a0c9ada96f2b0155b8a09a795c2029770", [:mix], [], "hexpm"},
- "dogma": {:hex, :dogma, "0.1.15", "5bceba9054b2b97a4adcb2ab4948ca9245e5258b883946e82d32f785340fd411", [], [{:poison, ">= 2.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
- "earmark": {:hex, :earmark, "1.2.4", "99b637c62a4d65a20a9fb674b8cffb8baa771c04605a80c911c4418c69b75439", [], [], "hexpm"},
- "ecto": {:hex, :ecto, "2.2.7", "2074106ff4a5cd9cb2b54b12ca087c4b659ddb3f6b50be4562883c1d763fb031", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
- "ecto_autoslug_field": {:hex, :ecto_autoslug_field, "0.4.0", "f07db9ac545c7489b49ae77d0675a4a1635af821d3d4c95b8399edfa8f779deb", [], [{:ecto, ">= 2.1.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:slugger, ">= 0.2.0", [hex: :slugger, repo: "hexpm", optional: false]}], "hexpm"},
- "elixir_make": {:hex, :elixir_make, "0.4.0", "992f38fabe705bb45821a728f20914c554b276838433349d4f2341f7a687cddf", [:mix], [], "hexpm"},
- "ex_doc": {:hex, :ex_doc, "0.18.1", "37c69d2ef62f24928c1f4fdc7c724ea04aecfdf500c4329185f8e3649c915baf", [], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"},
- "ex_machina": {:hex, :ex_machina, "2.1.0", "4874dc9c78e7cf2d429f24dc3c4005674d4e4da6a08be961ffccc08fb528e28b", [], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"},
- "ex_unit_notifier": {:hex, :ex_unit_notifier, "0.1.4", "36a2dcab829f506e01bf17816590680dd1474407926d43e64c1263e627c364b8", [], [], "hexpm"},
- "excoveralls": {:hex, :excoveralls, "0.8.0", "99d2691d3edf8612f128be3f9869c4d44b91c67cec92186ce49470ae7a7404cf", [], [{:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
- "exgravatar": {:hex, :exgravatar, "2.0.1", "66d595c7d63dd6bbac442c5542a724375ae29144059c6fe093e61553850aace4", [], [], "hexpm"},
- "exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm"},
- "file_system": {:hex, :file_system, "0.2.2", "7f1e9de4746f4eb8a4ca8f2fbab582d84a4e40fa394cce7bfcb068b988625b06", [:mix], [], "hexpm"},
- "fs": {:hex, :fs, "0.9.2", "ed17036c26c3f70ac49781ed9220a50c36775c6ca2cf8182d123b6566e49ec59", [], [], "hexpm"},
- "geo": {:hex, :geo, "2.0.0", "4a847aa42fcfac5b9ea23f938e1f4bde1c39c240a5d54b52eb0456530a2d040a", [], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}, {:poison, "~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm"},
- "geo_postgis": {:hex, :geo_postgis, "1.0.0", "6556003ba92b18f4180cacdeaebf5d9c69c794ac395f2e1a4c15165d503815be", [], [{:geo, "~> 2.0", [hex: :geo, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm"},
- "gettext": {:hex, :gettext, "0.14.0", "1a019a2e51d5ad3d126efe166dcdf6563768e5d06c32a99ad2281a1fa94b4c72", [:mix], [], "hexpm"},
+ "credo": {:hex, :credo, "0.9.3", "76fa3e9e497ab282e0cf64b98a624aa11da702854c52c82db1bf24e54ab7c97a", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:poison, ">= 0.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
+ "db_connection": {:hex, :db_connection, "1.1.3", "89b30ca1ef0a3b469b1c779579590688561d586694a3ce8792985d4d7e575a61", [:mix], [{:connection, "~> 1.0.2", [hex: :connection, repo: "hexpm", optional: false]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
+ "decimal": {:hex, :decimal, "1.5.0", "b0433a36d0e2430e3d50291b1c65f53c37d56f83665b43d79963684865beab68", [:mix], [], "hexpm"},
+ "earmark": {:hex, :earmark, "1.2.5", "4d21980d5d2862a2e13ec3c49ad9ad783ffc7ca5769cf6ff891a4553fbaae761", [:mix], [], "hexpm"},
+ "ecto": {:hex, :ecto, "2.2.10", "e7366dc82f48f8dd78fcbf3ab50985ceeb11cb3dc93435147c6e13f2cda0992e", [:mix], [{:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: true]}, {:decimal, "~> 1.2", [hex: :decimal, repo: "hexpm", optional: false]}, {:mariaex, "~> 0.8.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}, {:poolboy, "~> 1.5", [hex: :poolboy, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:sbroker, "~> 1.0", [hex: :sbroker, repo: "hexpm", optional: true]}], "hexpm"},
+ "ecto_autoslug_field": {:hex, :ecto_autoslug_field, "0.5.1", "c8a160fa6e5e0002740fe1c500bcc27d10bdb073a93715ce8a01b7af8a290777", [:mix], [{:ecto, ">= 2.1.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:slugger, ">= 0.2.0", [hex: :slugger, repo: "hexpm", optional: false]}], "hexpm"},
+ "ecto_enum": {:hex, :ecto_enum, "1.1.0", "d44fe2ce6e1c0e907e7c3b6456a69e0f1d662348d8b4e2a662ba312223d8ff62", [:mix], [{:ecto, ">= 2.0.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:mariaex, ">= 0.0.0", [hex: :mariaex, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm"},
+ "elixir_make": {:hex, :elixir_make, "0.4.1", "6628b86053190a80b9072382bb9756a6c78624f208ec0ff22cb94c8977d80060", [:mix], [], "hexpm"},
+ "ex_crypto": {:hex, :ex_crypto, "0.9.0", "e04a831034c4d0a43fb2858f696d6b5ae0f87f07dedca3452912fd3cb5ee3ca2", [:mix], [{:poison, ">= 2.0.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
+ "ex_doc": {:hex, :ex_doc, "0.18.3", "f4b0e4a2ec6f333dccf761838a4b253d75e11f714b85ae271c9ae361367897b7", [:mix], [{:earmark, "~> 1.1", [hex: :earmark, repo: "hexpm", optional: false]}], "hexpm"},
+ "ex_ical": {:git, "https://github.com/tcitworld/ex_ical.git", "e2facc514ee2ce99331b6a351c00667a9b28dd01", [branch: "usable"]},
+ "ex_machina": {:hex, :ex_machina, "2.2.0", "fec496331e04fc2db2a1a24fe317c12c0c4a50d2beb8ebb3531ed1f0d84be0ed", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}], "hexpm"},
+ "ex_unit_notifier": {:hex, :ex_unit_notifier, "0.1.4", "36a2dcab829f506e01bf17816590680dd1474407926d43e64c1263e627c364b8", [:mix], [], "hexpm"},
+ "excoveralls": {:hex, :excoveralls, "0.8.2", "b941a08a1842d7aa629e0bbc969186a4cefdd035bad9fe15d43aaaaaeb8fae36", [:mix], [{:exjsx, ">= 3.0.0", [hex: :exjsx, repo: "hexpm", optional: false]}, {:hackney, ">= 0.12.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
+ "exgravatar": {:hex, :exgravatar, "2.0.1", "66d595c7d63dd6bbac442c5542a724375ae29144059c6fe093e61553850aace4", [:mix], [], "hexpm"},
+ "exjsx": {:hex, :exjsx, "4.0.0", "60548841e0212df401e38e63c0078ec57b33e7ea49b032c796ccad8cde794b5c", [:mix], [{:jsx, "~> 2.8.0", [hex: :jsx, repo: "hexpm", optional: false]}], "hexpm"},
+ "file_system": {:hex, :file_system, "0.2.5", "a3060f063b116daf56c044c273f65202e36f75ec42e678dc10653056d3366054", [:mix], [], "hexpm"},
+ "geo": {:hex, :geo, "2.1.0", "f9a7a1403dde669c4e3f1885aeb4f3b3fb4e51cd28ada6d9f97463e5da65c04a", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: true]}, {:poison, "~> 3.0", [hex: :poison, repo: "hexpm", optional: true]}], "hexpm"},
+ "geo_postgis": {:hex, :geo_postgis, "1.1.0", "4c9efc082a8b625c335967fec9f5671c2bc8a0a686f9c5130445ebbcca989740", [:mix], [{:geo, "~> 2.0", [hex: :geo, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm"},
+ "gettext": {:hex, :gettext, "0.15.0", "40a2b8ce33a80ced7727e36768499fc9286881c43ebafccae6bab731e2b2b8ce", [:mix], [], "hexpm"},
"guardian": {:hex, :guardian, "1.0.1", "db0fbaf571c3b874785818b7272eaf5f1ed97a2f9b1f8bc5dc8b0fb8f8f7bb06", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.0 or ~> 1.2 or ~> 1.3", [hex: :phoenix, repo: "hexpm", optional: true]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}, {:uuid, ">= 1.1.1", [hex: :uuid, repo: "hexpm", optional: false]}], "hexpm"},
- "guardian_db": {:hex, :guardian_db, "1.1.0", "45ab94206cce38f7443dc27de6dc52966ccbdeff65ca1b1f11a6d8f3daceb556", [], [{:ecto, "~> 2.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm"},
- "hackney": {:hex, :hackney, "1.10.1", "c38d0ca52ea80254936a32c45bb7eb414e7a96a521b4ce76d00a69753b157f21", [], [{:certifi, "2.0.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "5.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"},
- "httpoison": {:hex, :httpoison, "1.0.0", "1f02f827148d945d40b24f0b0a89afe40bfe037171a6cf70f2486976d86921cd", [], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
- "icalendar": {:hex, :icalendar, "0.6.0", "0e30054b234752fa1ec3e2b928101f8c98f70067766590360d7790b41faab315", [], [{:timex, "~> 3.0", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm"},
- "idna": {:hex, :idna, "5.1.0", "d72b4effeb324ad5da3cab1767cb16b17939004e789d8c0ad5b70f3cea20c89a", [], [{:unicode_util_compat, "0.3.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"},
+ "guardian_db": {:hex, :guardian_db, "1.1.0", "45ab94206cce38f7443dc27de6dc52966ccbdeff65ca1b1f11a6d8f3daceb556", [:mix], [{:ecto, "~> 2.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm"},
+ "hackney": {:hex, :hackney, "1.12.1", "8bf2d0e11e722e533903fe126e14d6e7e94d9b7983ced595b75f532e04b7fdc7", [:rebar3], [{:certifi, "2.3.1", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "5.1.1", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "1.0.1", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "1.0.2", [hex: :mimerl, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "1.1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm"},
+ "http_sign": {:hex, :http_sign, "0.1.1", "b16edb83aa282892f3271f9a048c155e772bf36e15700ab93901484c55f8dd10", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
+ "httpoison": {:hex, :httpoison, "1.1.1", "96ed7ab79f78a31081bb523eefec205fd2900a02cda6dbc2300e7a1226219566", [:mix], [{:hackney, "~> 1.8", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
+ "icalendar": {:hex, :icalendar, "0.7.0", "6acf28c7e38ad1c4515c59e336878fb78bb646c8aa70d2ee3786ea194711a7b7", [:mix], [{:timex, "~> 3.0", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm"},
+ "idna": {:hex, :idna, "5.1.1", "cbc3b2fa1645113267cc59c760bafa64b2ea0334635ef06dbac8801e42f7279c", [:rebar3], [{:unicode_util_compat, "0.3.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm"},
+ "jason": {:hex, :jason, "1.0.0", "0f7cfa9bdb23fed721ec05419bcee2b2c21a77e926bce0deda029b5adc716fe2", [:mix], [{:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm"},
"jose": {:hex, :jose, "1.8.4", "7946d1e5c03a76ac9ef42a6e6a20001d35987afd68c2107bcd8f01a84e75aa73", [:mix, :rebar3], [{:base64url, "~> 0.0.1", [hex: :base64url, repo: "hexpm", optional: false]}], "hexpm"},
- "jsx": {:hex, :jsx, "2.8.3", "a05252d381885240744d955fbe3cf810504eb2567164824e19303ea59eef62cf", [], [], "hexpm"},
- "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [], [], "hexpm"},
- "mime": {:hex, :mime, "1.2.0", "78adaa84832b3680de06f88f0997e3ead3b451a440d183d688085be2d709b534", [:mix], [], "hexpm"},
- "mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [], [], "hexpm"},
- "mix_test_watch": {:hex, :mix_test_watch, "0.5.0", "2c322d119a4795c3431380fca2bca5afa4dc07324bd3c0b9f6b2efbdd99f5ed3", [], [{:fs, "~> 0.9.1", [hex: :fs, repo: "hexpm", optional: false]}], "hexpm"},
- "phoenix": {:hex, :phoenix, "1.3.0", "1c01124caa1b4a7af46f2050ff11b267baa3edb441b45dbf243e979cd4c5891b", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
+ "json_ld": {:hex, :json_ld, "0.2.2", "d21845319a45fd474c161f534e3b430eebc11840e7be97750c3a2a717549895c", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:rdf, "~> 0.4", [hex: :rdf, repo: "hexpm", optional: false]}], "hexpm"},
+ "jsx": {:hex, :jsx, "2.8.3", "a05252d381885240744d955fbe3cf810504eb2567164824e19303ea59eef62cf", [:mix, :rebar3], [], "hexpm"},
+ "littlefinger": {:hex, :littlefinger, "0.1.0", "5d3720bebd65d6a2051c31ca45f28b2d452d25aeeb8adb0a8f87013868bb0e7e", [:mix], [{:httpoison, "~> 1.0", [hex: :httpoison, repo: "hexpm", optional: false]}, {:poison, "~> 3.1", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
+ "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm"},
+ "mime": {:hex, :mime, "1.3.0", "5e8d45a39e95c650900d03f897fbf99ae04f60ab1daa4a34c7a20a5151b7a5fe", [:mix], [], "hexpm"},
+ "mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], [], "hexpm"},
+ "mix_test_watch": {:hex, :mix_test_watch, "0.6.0", "5e206ed04860555a455de2983937efd3ce79f42bd8536fc6b900cc286f5bb830", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}], "hexpm"},
+ "parse_trans": {:hex, :parse_trans, "3.2.0", "2adfa4daf80c14dc36f522cf190eb5c4ee3e28008fc6394397c16f62a26258c2", [:rebar3], [], "hexpm"},
+ "phoenix": {:hex, :phoenix, "1.3.2", "2a00d751f51670ea6bc3f2ba4e6eb27ecb8a2c71e7978d9cd3e5de5ccf7378bd", [:mix], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 1.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}, {:poison, "~> 2.2 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix_ecto": {:hex, :phoenix_ecto, "3.3.0", "702f6e164512853d29f9d20763493f2b3bcfcb44f118af2bc37bb95d0801b480", [:mix], [{:ecto, "~> 2.1", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.9", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
- "phoenix_html": {:hex, :phoenix_html, "2.10.5", "4f9df6b0fb7422a9440a73182a566cb9cbe0e3ffe8884ef9337ccf284fc1ef0a", [:mix], [{:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
- "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.1.3", "1d178429fc8950b12457d09c6afec247bfe1fcb6f36209e18fbb0221bdfe4d41", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.0 or ~> 1.2 or ~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm"},
+ "phoenix_html": {:hex, :phoenix_html, "2.11.2", "86ebd768258ba60a27f5578bec83095bdb93485d646fc4111db8844c316602d6", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm"},
+ "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.1.5", "8d4c9b1ef9ca82deee6deb5a038d6d8d7b34b9bb909d99784a49332e0d15b3dc", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.0 or ~> 1.2 or ~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm"},
"phoenix_pubsub": {:hex, :phoenix_pubsub, "1.0.2", "bfa7fd52788b5eaa09cb51ff9fcad1d9edfeb68251add458523f839392f034c1", [:mix], [], "hexpm"},
- "phoenix_swoosh": {:hex, :phoenix_swoosh, "0.2.0", "a7e0b32077cd6d2323ae15198839b05d9caddfa20663fd85787479e81f89520e", [], [{:phoenix, "~> 1.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.2", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:swoosh, "~> 0.1", [hex: :swoosh, repo: "hexpm", optional: false]}], "hexpm"},
- "plug": {:hex, :plug, "1.4.3", "236d77ce7bf3e3a2668dc0d32a9b6f1f9b1f05361019946aae49874904be4aed", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"},
+ "plug": {:hex, :plug, "1.5.1", "1ff35bdecfb616f1a2b1c935ab5e4c47303f866cb929d2a76f0541e553a58165", [:mix], [{:cowboy, "~> 1.0.1 or ~> 1.1 or ~> 2.3", [hex: :cowboy, repo: "hexpm", optional: true]}, {:mime, "~> 1.0", [hex: :mime, repo: "hexpm", optional: false]}], "hexpm"},
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"},
"poolboy": {:hex, :poolboy, "1.5.1", "6b46163901cfd0a1b43d692657ed9d7e599853b3b21b95ae5ae0a777cf9b6ca8", [:rebar], [], "hexpm"},
- "postgrex": {:hex, :postgrex, "0.13.3", "c277cfb2a9c5034d445a722494c13359e361d344ef6f25d604c2353185682bfc", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
+ "postgrex": {:hex, :postgrex, "0.13.5", "3d931aba29363e1443da167a4b12f06dcd171103c424de15e5f3fc2ba3e6d9c5", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 1.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm"},
"ranch": {:hex, :ranch, "1.3.2", "e4965a144dc9fbe70e5c077c65e73c57165416a901bd02ea899cfd95aa890986", [:rebar3], [], "hexpm"},
+ "rdf": {:hex, :rdf, "0.4.1", "8c879a091cc2a6035cc6e955186948a15477c9cce4a7ca61a54f38f7259ff396", [:mix], [], "hexpm"},
"rsa_ex": {:hex, :rsa_ex, "0.2.1", "5c2c278270ba2bc7beeb268cc9f6e37f976b81011631a5111b86fb8528785a3f", [:mix], [], "hexpm"},
- "slugger": {:hex, :slugger, "0.2.0", "7c609e6eee6dbb44e7b0db07982932356cab476f00fc8d73320cdc50d7efa18e", [], [], "hexpm"},
- "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [], [], "hexpm"},
- "swoosh": {:hex, :swoosh, "0.11.0", "5317c3df2708d14f6ce53aa96b38233aa73ff67c41fac26d8aacc733c116d7a4", [], [{:cowboy, "~> 1.0", [hex: :cowboy, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.12", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: false]}, {:mime, "~> 1.1", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}, {:poison, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :poison, repo: "hexpm", optional: false]}], "hexpm"},
- "timex": {:hex, :timex, "3.1.24", "d198ae9783ac807721cca0c5535384ebdf99da4976be8cefb9665a9262a1e9e3", [], [{:combine, "~> 0.7", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"},
- "timex_ecto": {:hex, :timex_ecto, "3.2.1", "461140751026e1ca03298fab628f78ab189e78784175f5e301eefa034ee530aa", [], [{:ecto, "~> 2.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm"},
- "tzdata": {:hex, :tzdata, "0.5.14", "56f05ea3dd87db946966ab3c7168c0b35025c7ee0e9b4fc130a04631f5611eb1", [], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
- "unicode_util_compat": {:hex, :unicode_util_compat, "0.3.1", "a1f612a7b512638634a603c8f401892afbf99b8ce93a45041f8aaca99cadb85e", [], [], "hexpm"},
+ "slugger": {:hex, :slugger, "0.2.0", "7c609e6eee6dbb44e7b0db07982932356cab476f00fc8d73320cdc50d7efa18e", [:mix], [], "hexpm"},
+ "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.1", "28a4d65b7f59893bc2c7de786dec1e1555bd742d336043fe644ae956c3497fbe", [:make, :rebar], [], "hexpm"},
+ "timex": {:hex, :timex, "3.3.0", "e0695aa0ddb37d460d93a2db34d332c2c95a40c27edf22fbfea22eb8910a9c8d", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.10", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 0.1.8 or ~> 0.5", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm"},
+ "timex_ecto": {:hex, :timex_ecto, "3.3.0", "d5bdef09928e7a60f10a0baa47ce653f29b43d6fee87b30b236b216d0e36b98d", [:mix], [{:ecto, "~> 2.2", [hex: :ecto, repo: "hexpm", optional: false]}, {:timex, "~> 3.1", [hex: :timex, repo: "hexpm", optional: false]}], "hexpm"},
+ "tzdata": {:hex, :tzdata, "0.5.16", "13424d3afc76c68ff607f2df966c0ab4f3258859bbe3c979c9ed1606135e7352", [:mix], [{:hackney, "~> 1.0", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm"},
+ "unicode_util_compat": {:hex, :unicode_util_compat, "0.3.1", "a1f612a7b512638634a603c8f401892afbf99b8ce93a45041f8aaca99cadb85e", [:rebar3], [], "hexpm"},
"uuid": {:hex, :uuid, "1.1.8", "e22fc04499de0de3ed1116b770c7737779f226ceefa0badb3592e64d5cfb4eb9", [:mix], [], "hexpm"},
}
diff --git a/priv/repo/migrations/20180126094416_add_avatar_and_banner_to_account.exs b/priv/repo/migrations/20180126094416_add_avatar_and_banner_to_account.exs
deleted file mode 100644
index b0ddf1d18..000000000
--- a/priv/repo/migrations/20180126094416_add_avatar_and_banner_to_account.exs
+++ /dev/null
@@ -1,10 +0,0 @@
-defmodule Eventos.Repo.Migrations.AddAvatarAndBannerToAccount do
- use Ecto.Migration
-
- def change do
- alter table(:accounts) do
- add :avatar_url, :string, null: true
- add :banner_url, :string, null: true
- end
- end
-end
diff --git a/priv/repo/migrations/20180430071244_remove_uri.exs b/priv/repo/migrations/20180430071244_remove_uri.exs
new file mode 100644
index 000000000..32c8a9a3d
--- /dev/null
+++ b/priv/repo/migrations/20180430071244_remove_uri.exs
@@ -0,0 +1,23 @@
+defmodule Eventos.Repo.Migrations.RemoveUri do
+ use Ecto.Migration
+
+ def up do
+ alter table("accounts") do
+ remove :uri
+ end
+
+ alter table("groups") do
+ remove :uri
+ end
+ end
+
+ def down do
+ alter table("accounts") do
+ add :uri, :string, null: false, default: "https://"
+ end
+
+ alter table("groups") do
+ add :uri, :string, null: false, default: "https://"
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180515091106_add_url_field_to_events.exs b/priv/repo/migrations/20180515091106_add_url_field_to_events.exs
new file mode 100644
index 000000000..f7a3f16bc
--- /dev/null
+++ b/priv/repo/migrations/20180515091106_add_url_field_to_events.exs
@@ -0,0 +1,15 @@
+defmodule Eventos.Repo.Migrations.AddUrlFieldToEvents do
+ use Ecto.Migration
+
+ def up do
+ alter table("events") do
+ add :url, :string, null: false, default: "https://"
+ end
+ end
+
+ def down do
+ alter table("events") do
+ remove :url
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180515100237_create_comments.exs b/priv/repo/migrations/20180515100237_create_comments.exs
new file mode 100644
index 000000000..c33ca55a4
--- /dev/null
+++ b/priv/repo/migrations/20180515100237_create_comments.exs
@@ -0,0 +1,17 @@
+defmodule Eventos.Repo.Migrations.CreateComments do
+ use Ecto.Migration
+
+ def change do
+ create table(:comments) do
+ add :url, :string
+ add :text, :text
+
+ add :account_id, references(:accounts, on_delete: :nothing), null: false
+ add :event_id, references(:events, on_delete: :nothing)
+ add :in_reply_to_comment_id, references(:categories, on_delete: :nothing)
+ add :origin_comment_id, references(:addresses, on_delete: :delete_all)
+
+ timestamps()
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180515142835_alter_event_timestamps_to_date_time_with_time_zone.exs b/priv/repo/migrations/20180515142835_alter_event_timestamps_to_date_time_with_time_zone.exs
new file mode 100644
index 000000000..2f5ce1c08
--- /dev/null
+++ b/priv/repo/migrations/20180515142835_alter_event_timestamps_to_date_time_with_time_zone.exs
@@ -0,0 +1,17 @@
+defmodule Eventos.Repo.Migrations.AlterEventTimestampsToDateTimeWithTimeZone do
+ use Ecto.Migration
+
+ def up do
+ alter table("events") do
+ modify :inserted_at, :utc_datetime
+ modify :updated_at, :utc_datetime
+ end
+ end
+
+ def down do
+ alter table("events") do
+ modify :inserted_at, :naive_datetime
+ modify :updated_at, :naive_datetime
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180515145438_add_local_attribute_to_events_and_comments.exs b/priv/repo/migrations/20180515145438_add_local_attribute_to_events_and_comments.exs
new file mode 100644
index 000000000..3555b2c54
--- /dev/null
+++ b/priv/repo/migrations/20180515145438_add_local_attribute_to_events_and_comments.exs
@@ -0,0 +1,23 @@
+defmodule Eventos.Repo.Migrations.AddLocalAttributeToEventsAndComments do
+ use Ecto.Migration
+
+ def up do
+ alter table("events") do
+ add :local, :boolean, null: false, default: true
+ end
+
+ alter table("comments") do
+ add :local, :boolean, null: false, default: true
+ end
+ end
+
+ def down do
+ alter table("events") do
+ remove :local
+ end
+
+ alter table("comments") do
+ remove :local
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180517100700_move_from_account_to_actor.exs b/priv/repo/migrations/20180517100700_move_from_account_to_actor.exs
new file mode 100644
index 000000000..81b4822af
--- /dev/null
+++ b/priv/repo/migrations/20180517100700_move_from_account_to_actor.exs
@@ -0,0 +1,102 @@
+defmodule Eventos.Repo.Migrations.MoveFromAccountToActor do
+ use Ecto.Migration
+
+ def up do
+ drop table("event_requests")
+ drop table("group_requests")
+
+
+ alter table("events") do
+ remove :organizer_group_id
+ end
+
+ rename table("members"), :account_id, to: :actor_id
+
+ alter table("members") do
+ remove :group_id
+ add :parent_id, references(:accounts, on_delete: :nothing)
+ end
+
+ drop table("groups")
+ rename table("accounts"), to: table("actors")
+ Eventos.Actors.ActorTypeEnum.create_type
+ rename table("actors"), :username, to: :name
+ rename table("actors"), :description, to: :summary
+ rename table("actors"), :display_name, to: :preferred_username
+ alter table("actors") do
+ add :inbox_url, :string
+ add :outbox_url, :string
+ add :following_url, :string, null: true
+ add :followers_url, :string, null: true
+ add :shared_inbox_url, :string, null: false, default: ""
+ add :type, :actor_type
+ add :manually_approves_followers, :boolean, default: false
+ modify :name, :string, null: true
+ modify :preferred_username, :string, null: false
+ end
+
+ create unique_index(:actors, [:preferred_username, :domain])
+
+ rename table("events"), :organizer_account_id, to: :organizer_actor_id
+
+ rename table("participants"), :account_id, to: :actor_id
+
+ create table("followers") do
+ add :approved, :boolean, default: false
+ add :score, :integer, default: 1000
+ add :actor_id, references(:actors, on_delete: :nothing)
+ add :target_actor_id, references(:actors, on_delete: :nothing)
+ end
+
+ rename table("comments"), :account_id, to: :actor_id
+
+ rename table("users"), :account_id, to: :actor_id
+ end
+
+ def down do
+ create table("event_requests")
+ create table("group_requests")
+
+
+ alter table("events") do
+ add :organizer_group_id, :integer
+ end
+
+ rename table("members"), :actor_id, to: :account_id
+
+ alter table("members") do
+ add :group_id, :integer
+ remove :parent_id
+ end
+
+ create table("groups")
+ rename table("actors"), to: table("accounts")
+ rename table("accounts"), :name, to: :username
+ rename table("accounts"), :summary, to: :description
+ rename table("accounts"), :preferred_username, to: :display_name
+ alter table("accounts") do
+ remove :inbox_url
+ remove :outbox_url
+ remove :following_url
+ remove :followers_url
+ remove :shared_inbox_url
+ remove :type
+ remove :manually_approves_followers
+ modify :username, :string, null: false
+ modify :display_name, :string, null: true
+ end
+ Eventos.Actors.ActorTypeEnum.drop_type()
+
+ rename table("events"), :organizer_actor_id, to: :organizer_account_id
+
+ rename table("participants"), :actor_id, to: :account_id
+
+ rename table("comments"), :actor_id, to: :account_id
+
+ rename table("users"), :actor_id, to: :account_id
+
+ drop index("accounts", [:preferred_username, :domain], name: :actors_preferred_username_domain_index)
+
+ drop table("followers")
+ end
+end
diff --git a/priv/repo/migrations/20180522133844_add_bots_table.exs b/priv/repo/migrations/20180522133844_add_bots_table.exs
new file mode 100644
index 000000000..234f01a54
--- /dev/null
+++ b/priv/repo/migrations/20180522133844_add_bots_table.exs
@@ -0,0 +1,18 @@
+defmodule Eventos.Repo.Migrations.AddBotsTable do
+ use Ecto.Migration
+
+ def up do
+ create table(:bots) do
+ add :source, :string, null: false
+ add :type, :string, default: "ics"
+ add :actor_id, references(:actors, on_delete: :delete_all), null: false
+ add :user_id, references(:users, on_delete: :delete_all), null: false
+
+ timestamps()
+ end
+ end
+
+ def down do
+ drop table(:bots)
+ end
+end
diff --git a/priv/repo/migrations/20180530125159_add_avatar_and_banner_to_actor.exs b/priv/repo/migrations/20180530125159_add_avatar_and_banner_to_actor.exs
new file mode 100644
index 000000000..27ce9b36a
--- /dev/null
+++ b/priv/repo/migrations/20180530125159_add_avatar_and_banner_to_actor.exs
@@ -0,0 +1,17 @@
+defmodule Eventos.Repo.Migrations.AddAvatarAndBannerToActor do
+ use Ecto.Migration
+
+ def up do
+ alter table(:actors) do
+ add :avatar_url, :string
+ add :banner_url, :string
+ end
+ end
+
+ def down do
+ alter table(:actors) do
+ remove :avatar_url
+ remove :banner_url
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180530152323_make_actor_public_key_nullable.exs b/priv/repo/migrations/20180530152323_make_actor_public_key_nullable.exs
new file mode 100644
index 000000000..645715b08
--- /dev/null
+++ b/priv/repo/migrations/20180530152323_make_actor_public_key_nullable.exs
@@ -0,0 +1,15 @@
+defmodule Eventos.Repo.Migrations.MakeActorPublicKeyNullable do
+ use Ecto.Migration
+
+ def up do
+ alter table(:actors) do
+ modify :public_key, :text, null: true
+ end
+ end
+
+ def down do
+ alter table(:actors) do
+ modify :public_key, :text, null: false
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180530170808_add_uuid_id_to_events.exs b/priv/repo/migrations/20180530170808_add_uuid_id_to_events.exs
new file mode 100644
index 000000000..5d83adb94
--- /dev/null
+++ b/priv/repo/migrations/20180530170808_add_uuid_id_to_events.exs
@@ -0,0 +1,15 @@
+defmodule Eventos.Repo.Migrations.AddUUIDIdToEvents do
+ use Ecto.Migration
+
+ def up do
+ alter table(:events) do
+ add :uuid, :uuid
+ end
+ end
+
+ def down do
+ alter table(:events) do
+ remove :uuid
+ end
+ end
+end
diff --git a/priv/repo/migrations/20180531162301_add_approved_status_to_member.exs b/priv/repo/migrations/20180531162301_add_approved_status_to_member.exs
new file mode 100644
index 000000000..3200484d2
--- /dev/null
+++ b/priv/repo/migrations/20180531162301_add_approved_status_to_member.exs
@@ -0,0 +1,15 @@
+defmodule Eventos.Repo.Migrations.AddApprovedStatusToMember do
+ use Ecto.Migration
+
+ def up do
+ alter table(:members) do
+ add :approved, :boolean, default: true
+ end
+ end
+
+ def down do
+ alter table(:members) do
+ remove :approved
+ end
+ end
+end
diff --git a/test/eventos/accounts/accounts_test.exs b/test/eventos/accounts/accounts_test.exs
deleted file mode 100644
index fcfc4bde0..000000000
--- a/test/eventos/accounts/accounts_test.exs
+++ /dev/null
@@ -1,153 +0,0 @@
-defmodule Eventos.AccountsTest do
- use Eventos.DataCase
-
- alias Eventos.Accounts
-
- describe "accounts" do
- alias Eventos.Accounts.Account
-
- @valid_attrs %{description: "some description", display_name: "some display_name", domain: "some domain", private_key: "some private_key", public_key: "some public_key", suspended: true, uri: "some uri", url: "some url", username: "some username"}
- @update_attrs %{description: "some updated description", display_name: "some updated display_name", domain: "some updated domain", private_key: "some updated private_key", public_key: "some updated public_key", suspended: false, uri: "some updated uri", url: "some updated url", username: "some updated username"}
- @invalid_attrs %{description: nil, display_name: nil, domain: nil, private_key: nil, public_key: nil, suspended: nil, uri: nil, url: nil, username: nil}
-
- def account_fixture(attrs \\ %{}) do
- {:ok, account} =
- attrs
- |> Enum.into(@valid_attrs)
- |> Accounts.create_account()
-
- account
- end
-
- test "list_accounts/0 returns all accounts" do
- account = account_fixture()
- assert Accounts.list_accounts() == [account]
- end
-
- test "get_account!/1 returns the account with given id" do
- account = account_fixture()
- assert Accounts.get_account!(account.id) == account
- end
-
- test "create_account/1 with valid data creates a account" do
- assert {:ok, %Account{} = account} = Accounts.create_account(@valid_attrs)
- assert account.description == "some description"
- assert account.display_name == "some display_name"
- assert account.domain == "some domain"
- assert account.private_key == "some private_key"
- assert account.public_key == "some public_key"
- assert account.suspended
- assert account.uri == "some uri"
- assert account.url == "some url"
- assert account.username == "some username"
- end
-
- test "create_account/1 with invalid data returns error changeset" do
- assert {:error, %Ecto.Changeset{}} = Accounts.create_account(@invalid_attrs)
- end
-
- test "update_account/2 with valid data updates the account" do
- account = account_fixture()
- assert {:ok, account} = Accounts.update_account(account, @update_attrs)
- assert %Account{} = account
- assert account.description == "some updated description"
- assert account.display_name == "some updated display_name"
- assert account.domain == "some updated domain"
- assert account.private_key == "some updated private_key"
- assert account.public_key == "some updated public_key"
- refute account.suspended
- assert account.uri == "some updated uri"
- assert account.url == "some updated url"
- assert account.username == "some updated username"
- end
-
- test "update_account/2 with invalid data returns error changeset" do
- account = account_fixture()
- assert {:error, %Ecto.Changeset{}} = Accounts.update_account(account, @invalid_attrs)
- assert account == Accounts.get_account!(account.id)
- end
-
- test "delete_account/1 deletes the account" do
- account = account_fixture()
- assert {:ok, %Account{}} = Accounts.delete_account(account)
- assert_raise Ecto.NoResultsError, fn -> Accounts.get_account!(account.id) end
- end
-
- test "change_account/1 returns a account changeset" do
- account = account_fixture()
- assert %Ecto.Changeset{} = Accounts.change_account(account)
- end
- end
-
- describe "users" do
- alias Eventos.Accounts.{User, Account}
-
- @account_valid_attrs %{description: "some description", display_name: "some display_name", domain: "some domain", private_key: "some private_key", public_key: "some public_key", suspended: true, uri: "some uri", url: "some url", username: "some username"}
- @valid_attrs %{email: "foo@bar.tld", password_hash: "some password_hash", role: 42}
- @update_attrs %{email: "foo@fighters.tld", password_hash: "some updated password_hash", role: 43}
- @invalid_attrs %{email: nil, password_hash: nil, role: nil}
-
- def user_fixture(attrs \\ %{}) do
- {:ok, account} =
- attrs
- |> Enum.into(@account_valid_attrs)
- |> Accounts.create_account()
- valid_attrs_with_account_id = Map.put(@valid_attrs, :account_id, account.id)
- {:ok, user} =
- attrs
- |> Enum.into(valid_attrs_with_account_id)
- |> Accounts.create_user()
-
- user
- end
-
- test "list_users/0 returns all users" do
- user = user_fixture()
- assert Accounts.list_users() == [user]
- end
-
- test "get_user!/1 returns the user with given id" do
- user = user_fixture()
- assert Accounts.get_user!(user.id) == user
- end
-
- test "create_user/1 with valid data creates a user" do
- {:ok, %Account{} = account} = Accounts.create_account(@account_valid_attrs)
- attrs = Map.put(@valid_attrs, :account_id, account.id)
- assert {:ok, %User{} = user} = Accounts.create_user(attrs)
- assert user.email == "foo@bar.tld"
- assert user.password_hash == "some password_hash"
- assert user.role == 42
- end
-
- test "create_user/1 with invalid data returns error changeset" do
- assert {:error, %Ecto.Changeset{}} = Accounts.create_user(@invalid_attrs)
- end
-
- test "update_user/2 with valid data updates the user" do
- user = user_fixture()
- assert {:ok, user} = Accounts.update_user(user, @update_attrs)
- assert %User{} = user
- assert user.email == "foo@fighters.tld"
- assert user.password_hash == "some updated password_hash"
- assert user.role == 43
- end
-
- test "update_user/2 with invalid data returns error changeset" do
- user = user_fixture()
- assert {:error, %Ecto.Changeset{}} = Accounts.update_user(user, @invalid_attrs)
- assert user == Accounts.get_user!(user.id)
- end
-
- test "delete_user/1 deletes the user" do
- user = user_fixture()
- assert {:ok, %User{}} = Accounts.delete_user(user)
- assert_raise Ecto.NoResultsError, fn -> Accounts.get_user!(user.id) end
- end
-
- test "change_user/1 returns a user changeset" do
- user = user_fixture()
- assert %Ecto.Changeset{} = Accounts.change_user(user)
- end
- end
-end
diff --git a/test/eventos/actors/actors_test.exs b/test/eventos/actors/actors_test.exs
new file mode 100644
index 000000000..048b9b7c2
--- /dev/null
+++ b/test/eventos/actors/actors_test.exs
@@ -0,0 +1,238 @@
+defmodule Eventos.ActorsTest do
+ use Eventos.DataCase
+
+ alias Eventos.Actors
+
+ describe "actors" do
+ alias Eventos.Actors.Actor
+
+ @valid_attrs %{description: "some description", display_name: "some display_name", domain: "some domain", private_key: "some private_key", public_key: "some public_key", suspended: true, uri: "some uri", url: "some url", username: "some username"}
+ @update_attrs %{description: "some updated description", display_name: "some updated display_name", domain: "some updated domain", private_key: "some updated private_key", public_key: "some updated public_key", suspended: false, uri: "some updated uri", url: "some updated url", username: "some updated username"}
+ @invalid_attrs %{description: nil, display_name: nil, domain: nil, private_key: nil, public_key: nil, suspended: nil, uri: nil, url: nil, username: nil}
+
+ def actor_fixture(attrs \\ %{}) do
+ {:ok, actor} =
+ attrs
+ |> Enum.into(@valid_attrs)
+ |> Actors.create_actor()
+
+ actor
+ end
+
+ test "list_actors/0 returns all actors" do
+ actor = actor_fixture()
+ assert Actors.list_actors() == [actor]
+ end
+
+ test "get_actor!/1 returns the actor with given id" do
+ actor = actor_fixture()
+ assert Actors.get_actor!(actor.id) == actor
+ end
+
+ test "create_actor/1 with valid data creates a actor" do
+ assert {:ok, %Actor{} = actor} = Actors.create_actor(@valid_attrs)
+ assert actor.description == "some description"
+ assert actor.display_name == "some display_name"
+ assert actor.domain == "some domain"
+ assert actor.private_key == "some private_key"
+ assert actor.public_key == "some public_key"
+ assert actor.suspended
+ assert actor.uri == "some uri"
+ assert actor.url == "some url"
+ assert actor.username == "some username"
+ end
+
+ test "create_actor/1 with invalid data returns error changeset" do
+ assert {:error, %Ecto.Changeset{}} = Actors.create_actor(@invalid_attrs)
+ end
+
+ test "update_actor/2 with valid data updates the actor" do
+ actor = actor_fixture()
+ assert {:ok, actor} = Actors.update_actor(actor, @update_attrs)
+ assert %Actor{} = actor
+ assert actor.description == "some updated description"
+ assert actor.display_name == "some updated display_name"
+ assert actor.domain == "some updated domain"
+ assert actor.private_key == "some updated private_key"
+ assert actor.public_key == "some updated public_key"
+ refute actor.suspended
+ assert actor.uri == "some updated uri"
+ assert actor.url == "some updated url"
+ assert actor.username == "some updated username"
+ end
+
+ test "update_actor/2 with invalid data returns error changeset" do
+ actor = actor_fixture()
+ assert {:error, %Ecto.Changeset{}} = Actors.update_actor(actor, @invalid_attrs)
+ assert actor == Actors.get_actor!(actor.id)
+ end
+
+ test "delete_actor/1 deletes the actor" do
+ actor = actor_fixture()
+ assert {:ok, %Actor{}} = Actors.delete_actor(actor)
+ assert_raise Ecto.NoResultsError, fn -> Actors.get_actor!(actor.id) end
+ end
+
+ test "change_actor/1 returns a actor changeset" do
+ actor = actor_fixture()
+ assert %Ecto.Changeset{} = Actors.change_actor(actor)
+ end
+ end
+
+ describe "users" do
+ alias Eventos.Actors.{User, Actor}
+
+ @actor_valid_attrs %{description: "some description", display_name: "some display_name", domain: "some domain", private_key: "some private_key", public_key: "some public_key", suspended: true, uri: "some uri", url: "some url", username: "some username"}
+ @valid_attrs %{email: "foo@bar.tld", password_hash: "some password_hash", role: 42}
+ @update_attrs %{email: "foo@fighters.tld", password_hash: "some updated password_hash", role: 43}
+ @invalid_attrs %{email: nil, password_hash: nil, role: nil}
+
+ def user_fixture(attrs \\ %{}) do
+ {:ok, actor} =
+ attrs
+ |> Enum.into(@actor_valid_attrs)
+ |> Actors.create_actor()
+ valid_attrs_with_actor_id = Map.put(@valid_attrs, :actor_id, actor.id)
+ {:ok, user} =
+ attrs
+ |> Enum.into(valid_attrs_with_actor_id)
+ |> Actors.create_user()
+
+ user
+ end
+
+ test "list_users/0 returns all users" do
+ user = user_fixture()
+ assert Actors.list_users() == [user]
+ end
+
+ test "get_user!/1 returns the user with given id" do
+ user = user_fixture()
+ assert Actors.get_user!(user.id) == user
+ end
+
+ test "create_user/1 with valid data creates a user" do
+ {:ok, %Actor{} = actor} = Actors.create_actor(@actor_valid_attrs)
+ attrs = Map.put(@valid_attrs, :actor_id, actor.id)
+ assert {:ok, %User{} = user} = Actors.create_user(attrs)
+ assert user.email == "foo@bar.tld"
+ assert user.password_hash == "some password_hash"
+ assert user.role == 42
+ end
+
+ test "create_user/1 with invalid data returns error changeset" do
+ assert {:error, %Ecto.Changeset{}} = Actors.create_user(@invalid_attrs)
+ end
+
+ test "update_user/2 with valid data updates the user" do
+ user = user_fixture()
+ assert {:ok, user} = Actors.update_user(user, @update_attrs)
+ assert %User{} = user
+ assert user.email == "foo@fighters.tld"
+ assert user.password_hash == "some updated password_hash"
+ assert user.role == 43
+ end
+
+ test "update_user/2 with invalid data returns error changeset" do
+ user = user_fixture()
+ assert {:error, %Ecto.Changeset{}} = Actors.update_user(user, @invalid_attrs)
+ assert user == Actors.get_user!(user.id)
+ end
+
+ test "delete_user/1 deletes the user" do
+ user = user_fixture()
+ assert {:ok, %User{}} = Actors.delete_user(user)
+ assert_raise Ecto.NoResultsError, fn -> Actors.get_user!(user.id) end
+ end
+
+ test "change_user/1 returns a user changeset" do
+ user = user_fixture()
+ assert %Ecto.Changeset{} = Actors.change_user(user)
+ end
+ end
+
+ describe "groups" do
+
+ alias Eventos.Actors
+ alias Eventos.Actors.Actor
+
+ @valid_attrs %{summary: "some description", suspended: true, preferred_username: "some-title", name: "Some Title"}
+ @update_attrs %{summary: "some updated description", suspended: false, preferred_username: "some-updated-title", name: "Some Updated Title"}
+ @invalid_attrs %{summary: nil, suspended: nil, preferred_username: nil, name: nil}
+
+ test "create_group/1 with valid data creates a group" do
+ assert {:ok, %Actor{} = group} = Actors.create_group(@valid_attrs)
+ assert group.summary == "some description"
+ refute group.suspended
+ assert group.preferred_username == "some-title"
+ end
+
+ test "create_group/1 with invalid data returns error changeset" do
+ assert {:error, %Ecto.Changeset{}} = Actors.create_group(@invalid_attrs)
+ end
+ end
+
+ alias Eventos.Actors
+
+ describe "bots" do
+ alias Eventos.Actors.Bot
+
+ @valid_attrs %{source: "some source", type: "some type"}
+ @update_attrs %{source: "some updated source", type: "some updated type"}
+ @invalid_attrs %{source: nil, type: nil}
+
+ def bot_fixture(attrs \\ %{}) do
+ {:ok, bot} =
+ attrs
+ |> Enum.into(@valid_attrs)
+ |> Actors.create_bot()
+
+ bot
+ end
+
+ test "list_bots/0 returns all bots" do
+ bot = bot_fixture()
+ assert Actors.list_bots() == [bot]
+ end
+
+ test "get_bot!/1 returns the bot with given id" do
+ bot = bot_fixture()
+ assert Actors.get_bot!(bot.id) == bot
+ end
+
+ test "create_bot/1 with valid data creates a bot" do
+ assert {:ok, %Bot{} = bot} = Actors.create_bot(@valid_attrs)
+ assert bot.source == "some source"
+ assert bot.type == "some type"
+ end
+
+ test "create_bot/1 with invalid data returns error changeset" do
+ assert {:error, %Ecto.Changeset{}} = Actors.create_bot(@invalid_attrs)
+ end
+
+ test "update_bot/2 with valid data updates the bot" do
+ bot = bot_fixture()
+ assert {:ok, bot} = Actors.update_bot(bot, @update_attrs)
+ assert %Bot{} = bot
+ assert bot.source == "some updated source"
+ assert bot.type == "some updated type"
+ end
+
+ test "update_bot/2 with invalid data returns error changeset" do
+ bot = bot_fixture()
+ assert {:error, %Ecto.Changeset{}} = Actors.update_bot(bot, @invalid_attrs)
+ assert bot == Actors.get_bot!(bot.id)
+ end
+
+ test "delete_bot/1 deletes the bot" do
+ bot = bot_fixture()
+ assert {:ok, %Bot{}} = Actors.delete_bot(bot)
+ assert_raise Ecto.NoResultsError, fn -> Actors.get_bot!(bot.id) end
+ end
+
+ test "change_bot/1 returns a bot changeset" do
+ bot = bot_fixture()
+ assert %Ecto.Changeset{} = Actors.change_bot(bot)
+ end
+ end
+end
diff --git a/test/eventos/events/events_test.exs b/test/eventos/events/events_test.exs
index 7a052bed3..4ee82cf36 100644
--- a/test/eventos/events/events_test.exs
+++ b/test/eventos/events/events_test.exs
@@ -540,4 +540,66 @@ defmodule Eventos.EventsTest do
assert %Ecto.Changeset{} = Events.change_track(track)
end
end
+
+ describe "comments" do
+ alias Eventos.Events.Comment
+
+ @valid_attrs %{text: "some text", url: "some url"}
+ @update_attrs %{text: "some updated text", url: "some updated url"}
+ @invalid_attrs %{text: nil, url: nil}
+
+ def comment_fixture(attrs \\ %{}) do
+ {:ok, comment} =
+ attrs
+ |> Enum.into(@valid_attrs)
+ |> Events.create_comment()
+
+ comment
+ end
+
+ test "list_comments/0 returns all comments" do
+ comment = comment_fixture()
+ assert Events.list_comments() == [comment]
+ end
+
+ test "get_comment!/1 returns the comment with given id" do
+ comment = comment_fixture()
+ assert Events.get_comment!(comment.id) == comment
+ end
+
+ test "create_comment/1 with valid data creates a comment" do
+ assert {:ok, %Comment{} = comment} = Events.create_comment(@valid_attrs)
+ assert comment.text == "some text"
+ assert comment.url == "some url"
+ end
+
+ test "create_comment/1 with invalid data returns error changeset" do
+ assert {:error, %Ecto.Changeset{}} = Events.create_comment(@invalid_attrs)
+ end
+
+ test "update_comment/2 with valid data updates the comment" do
+ comment = comment_fixture()
+ assert {:ok, comment} = Events.update_comment(comment, @update_attrs)
+ assert %Comment{} = comment
+ assert comment.text == "some updated text"
+ assert comment.url == "some updated url"
+ end
+
+ test "update_comment/2 with invalid data returns error changeset" do
+ comment = comment_fixture()
+ assert {:error, %Ecto.Changeset{}} = Events.update_comment(comment, @invalid_attrs)
+ assert comment == Events.get_comment!(comment.id)
+ end
+
+ test "delete_comment/1 deletes the comment" do
+ comment = comment_fixture()
+ assert {:ok, %Comment{}} = Events.delete_comment(comment)
+ assert_raise Ecto.NoResultsError, fn -> Events.get_comment!(comment.id) end
+ end
+
+ test "change_comment/1 returns a comment changeset" do
+ comment = comment_fixture()
+ assert %Ecto.Changeset{} = Events.change_comment(comment)
+ end
+ end
end
diff --git a/test/eventos/groups/groups_test.exs b/test/eventos/groups/groups_test.exs
deleted file mode 100644
index 03cd64255..000000000
--- a/test/eventos/groups/groups_test.exs
+++ /dev/null
@@ -1,193 +0,0 @@
-defmodule Eventos.GroupsTest do
- use Eventos.DataCase
-
- alias Eventos.Groups
-
- describe "groups" do
- alias Eventos.Groups.Group
-
- @valid_attrs %{description: "some description", suspended: true, title: "some title", uri: "some uri", url: "some url"}
- @update_attrs %{description: "some updated description", suspended: false, title: "some updated title", uri: "some updated uri", url: "some updated url"}
- @invalid_attrs %{description: nil, suspended: nil, title: nil, uri: nil, url: nil}
-
- def group_fixture(attrs \\ %{}) do
- {:ok, group} =
- attrs
- |> Enum.into(@valid_attrs)
- |> Groups.create_group()
-
- group
- end
-
- test "list_groups/0 returns all groups" do
- group = group_fixture()
- assert Groups.list_groups() == [group]
- end
-
- test "get_group!/1 returns the group with given id" do
- group = group_fixture()
- assert Groups.get_group!(group.id) == group
- end
-
- test "create_group/1 with valid data creates a group" do
- assert {:ok, %Group{} = group} = Groups.create_group(@valid_attrs)
- assert group.description == "some description"
- assert group.suspended
- assert group.title == "some title"
- assert group.uri == "some uri"
- assert group.url == "some url"
- end
-
- test "create_group/1 with invalid data returns error changeset" do
- assert {:error, %Ecto.Changeset{}} = Groups.create_group(@invalid_attrs)
- end
-
- test "update_group/2 with valid data updates the group" do
- group = group_fixture()
- assert {:ok, group} = Groups.update_group(group, @update_attrs)
- assert %Group{} = group
- assert group.description == "some updated description"
- refute group.suspended
- assert group.title == "some updated title"
- assert group.uri == "some updated uri"
- assert group.url == "some updated url"
- end
-
- test "update_group/2 with invalid data returns error changeset" do
- group = group_fixture()
- assert {:error, %Ecto.Changeset{}} = Groups.update_group(group, @invalid_attrs)
- assert group == Groups.get_group!(group.id)
- end
-
- test "delete_group/1 deletes the group" do
- group = group_fixture()
- assert {:ok, %Group{}} = Groups.delete_group(group)
- assert_raise Ecto.NoResultsError, fn -> Groups.get_group!(group.id) end
- end
-
- test "change_group/1 returns a group changeset" do
- group = group_fixture()
- assert %Ecto.Changeset{} = Groups.change_group(group)
- end
- end
-#
-# describe "members" do
-# alias Eventos.Groups.Member
-#
-# @valid_attrs %{role: 42}
-# @update_attrs %{role: 43}
-# @invalid_attrs %{role: nil}
-#
-# def member_fixture(attrs \\ %{}) do
-# {:ok, member} =
-# attrs
-# |> Enum.into(@valid_attrs)
-# |> Groups.create_member()
-#
-# member
-# end
-#
-# test "list_members/0 returns all members" do
-# member = member_fixture()
-# assert Groups.list_members() == [member]
-# end
-#
-# test "get_member!/1 returns the member with given id" do
-# member = member_fixture()
-# assert Groups.get_member!(member.id) == member
-# end
-#
-# test "create_member/1 with valid data creates a member" do
-# assert {:ok, %Member{} = member} = Groups.create_member(@valid_attrs)
-# assert member.role == 42
-# end
-#
-# test "create_member/1 with invalid data returns error changeset" do
-# assert {:error, %Ecto.Changeset{}} = Groups.create_member(@invalid_attrs)
-# end
-#
-# test "update_member/2 with valid data updates the member" do
-# member = member_fixture()
-# assert {:ok, member} = Groups.update_member(member, @update_attrs)
-# assert %Member{} = member
-# assert member.role == 43
-# end
-#
-# test "update_member/2 with invalid data returns error changeset" do
-# member = member_fixture()
-# assert {:error, %Ecto.Changeset{}} = Groups.update_member(member, @invalid_attrs)
-# assert member == Groups.get_member!(member.id)
-# end
-#
-# test "delete_member/1 deletes the member" do
-# member = member_fixture()
-# assert {:ok, %Member{}} = Groups.delete_member(member)
-# assert_raise Ecto.NoResultsError, fn -> Groups.get_member!(member.id) end
-# end
-#
-# test "change_member/1 returns a member changeset" do
-# member = member_fixture()
-# assert %Ecto.Changeset{} = Groups.change_member(member)
-# end
-# end
-#
-# describe "requests" do
-# alias Eventos.Groups.Request
-#
-# @valid_attrs %{state: 42}
-# @update_attrs %{state: 43}
-# @invalid_attrs %{state: nil}
-#
-# def request_fixture(attrs \\ %{}) do
-# {:ok, request} =
-# attrs
-# |> Enum.into(@valid_attrs)
-# |> Groups.create_request()
-#
-# request
-# end
-#
-# test "list_requests/0 returns all requests" do
-# request = request_fixture()
-# assert Groups.list_requests() == [request]
-# end
-#
-# test "get_request!/1 returns the request with given id" do
-# request = request_fixture()
-# assert Groups.get_request!(request.id) == request
-# end
-#
-# test "create_request/1 with valid data creates a request" do
-# assert {:ok, %Request{} = request} = Groups.create_request(@valid_attrs)
-# assert request.state == 42
-# end
-#
-# test "create_request/1 with invalid data returns error changeset" do
-# assert {:error, %Ecto.Changeset{}} = Groups.create_request(@invalid_attrs)
-# end
-#
-# test "update_request/2 with valid data updates the request" do
-# request = request_fixture()
-# assert {:ok, request} = Groups.update_request(request, @update_attrs)
-# assert %Request{} = request
-# assert request.state == 43
-# end
-#
-# test "update_request/2 with invalid data returns error changeset" do
-# request = request_fixture()
-# assert {:error, %Ecto.Changeset{}} = Groups.update_request(request, @invalid_attrs)
-# assert request == Groups.get_request!(request.id)
-# end
-#
-# test "delete_request/1 deletes the request" do
-# request = request_fixture()
-# assert {:ok, %Request{}} = Groups.delete_request(request)
-# assert_raise Ecto.NoResultsError, fn -> Groups.get_request!(request.id) end
-# end
-#
-# test "change_request/1 returns a request changeset" do
-# request = request_fixture()
-# assert %Ecto.Changeset{} = Groups.change_request(request)
-# end
-# end
-end
diff --git a/test/eventos/service/activitypub/activitypub_test.exs b/test/eventos/service/activitypub/activitypub_test.exs
new file mode 100644
index 000000000..6b480d9eb
--- /dev/null
+++ b/test/eventos/service/activitypub/activitypub_test.exs
@@ -0,0 +1,81 @@
+defmodule Eventos.Service.Activitypub.ActivitypubTest do
+
+ use Eventos.DataCase
+
+ import Eventos.Factory
+
+ alias Eventos.Events
+ alias Eventos.Accounts.Account
+ alias Eventos.Service.ActivityPub
+ alias Eventos.Activity
+
+ describe "fetching account from it's url" do
+ test "returns an account" do
+ assert {:ok, %Account{username: "tcit@framapiaf.org"} = account} = ActivityPub.make_account_from_nickname("tcit@framapiaf.org")
+ end
+ end
+
+ describe "create activities" do
+ test "removes doubled 'to' recipients" do
+ account = insert(:account)
+
+ {:ok, activity} =
+ ActivityPub.create(%{
+ to: ["user1", "user1", "user2"],
+ actor: account,
+ context: "",
+ object: %{}
+ })
+
+ assert activity.data["to"] == ["user1", "user2"]
+ assert activity.actor == account.url
+ assert activity.recipients == ["user1", "user2"]
+ end
+ end
+
+ describe "fetching an object" do
+ test "it fetches an object" do
+ {:ok, object} =
+ ActivityPub.fetch_event_from_url("https://social.tcit.fr/@tcit/99908779444618462")
+
+ {:ok, object_again} =
+ ActivityPub.fetch_event_from_url("https://social.tcit.fr/@tcit/99908779444618462")
+
+ assert object == object_again
+ end
+ end
+
+ describe "deletion" do
+ test "it creates a delete activity and deletes the original event" do
+ event = insert(:event)
+ event = Events.get_event_full_by_url!(event.url)
+ {:ok, delete} = ActivityPub.delete(event)
+
+ assert delete.data["type"] == "Delete"
+ assert delete.data["actor"] == event.organizer_account.url
+ assert delete.data["object"] == event.url
+
+ assert Events.get_event_by_url!(event.url) == nil
+ end
+ end
+
+ describe "update" do
+ test "it creates an update activity with the new user data" do
+ account = insert(:account)
+ account_data = EventosWeb.ActivityPub.UserView.render("account.json", %{account: account})
+
+ {:ok, update} =
+ ActivityPub.update(%{
+ actor: account_data["url"],
+ to: [account.url <> "/followers"],
+ cc: [],
+ object: account_data
+ })
+
+ assert update.data["actor"] == account.url
+ assert update.data["to"] == [account.url <> "/followers"]
+ assert update.data["object"]["id"] == account_data["id"]
+ assert update.data["object"]["type"] == account_data["type"]
+ end
+ end
+end
diff --git a/test/eventos/service/web_finger/web_finger_test.exs b/test/eventos/service/web_finger/web_finger_test.exs
new file mode 100644
index 000000000..5be1b3344
--- /dev/null
+++ b/test/eventos/service/web_finger/web_finger_test.exs
@@ -0,0 +1,59 @@
+defmodule Eventos.Service.WebFingerTest do
+ use Eventos.DataCase
+ alias Eventos.Service.WebFinger
+ import Eventos.Factory
+
+ describe "host meta" do
+ test "returns a link to the xml lrdd" do
+ host_info = WebFinger.host_meta()
+
+ assert String.contains?(host_info, EventosWeb.Endpoint.url())
+ end
+ end
+
+ describe "incoming webfinger request" do
+ test "works for fqns" do
+ account = insert(:account)
+
+ {:ok, result} =
+ WebFinger.webfinger("#{account.username}@#{EventosWeb.Endpoint.host()}", "JSON")
+ assert is_map(result)
+ end
+
+ test "works for urls" do
+ account = insert(:account)
+
+ {:ok, result} = WebFinger.webfinger(account.url, "JSON")
+ assert is_map(result)
+ end
+ end
+
+ describe "fingering" do
+
+ test "a mastodon account" do
+ account = "tcit@social.tcit.fr"
+
+ assert {:ok, %{"subject" => "acct:" <> account, "url" => "https://social.tcit.fr/users/tcit"}} = WebFinger.finger(account)
+ end
+
+ test "a pleroma account" do
+ account = "@lain@pleroma.soykaf.com"
+
+ assert {:ok, %{"subject" => "acct:" <> account, "url" => "https://pleroma.soykaf.com/users/lain"}} = WebFinger.finger(account)
+ end
+
+ test "a peertube account" do
+ account = "framasoft@framatube.org"
+
+ assert {:ok, %{"subject" => "acct:" <> account, "url" => "https://framatube.org/accounts/framasoft"}} = WebFinger.finger(account)
+ end
+
+ test "a friendica account" do
+ # Hasn't any ActivityPub
+ account = "lain@squeet.me"
+
+ assert {:ok, %{"subject" => "acct:" <> account} = data} = WebFinger.finger(account)
+ refute Map.has_key?(data, "url")
+ end
+ end
+end
diff --git a/test/eventos_web/controllers/activity_pub_controller_test.exs b/test/eventos_web/controllers/activity_pub_controller_test.exs
new file mode 100644
index 000000000..976a9191f
--- /dev/null
+++ b/test/eventos_web/controllers/activity_pub_controller_test.exs
@@ -0,0 +1,139 @@
+defmodule EventosWeb.ActivityPubControllerTest do
+ use EventosWeb.ConnCase
+ import Eventos.Factory
+ alias EventosWeb.ActivityPub.{AccountView, ObjectView}
+ alias Eventos.{Repo, Accounts, Accounts.Account}
+ alias Eventos.Activity
+ import Logger
+
+ describe "/@:username" do
+ test "it returns a json representation of the account", %{conn: conn} do
+ account = insert(:account)
+
+ conn =
+ conn
+ |> put_req_header("accept", "application/activity+json")
+ |> get("/@#{account.username}")
+
+ account = Accounts.get_account!(account.id)
+
+ assert json_response(conn, 200) == AccountView.render("account.json", %{account: account})
+ Logger.error(inspect AccountView.render("account.json", %{account: account}))
+ end
+ end
+
+ describe "/@username/slug" do
+ test "it returns a json representation of the object", %{conn: conn} do
+ event = insert(:event)
+ {slug, parts} = List.pop_at(String.split(event.url, "/"), -1)
+ "@" <> username = List.last(parts)
+
+ conn =
+ conn
+ |> put_req_header("accept", "application/activity+json")
+ |> get("/@#{username}/#{slug}")
+
+ assert json_response(conn, 200) == ObjectView.render("event.json", %{event: event})
+ Logger.error(inspect ObjectView.render("event.json", %{event: event}))
+ end
+ end
+
+# describe "/accounts/:username/inbox" do
+# test "it inserts an incoming activity into the database", %{conn: conn} do
+# data = File.read!("test/fixtures/mastodon-post-activity.json") |> Poison.decode!()
+#
+# conn =
+# conn
+# |> assign(:valid_signature, true)
+# |> put_req_header("content-type", "application/activity+json")
+# |> post("/inbox", data)
+#
+# assert "ok" == json_response(conn, 200)
+# :timer.sleep(500)
+# assert Activity.get_by_ap_id(data["id"])
+# end
+# end
+
+# describe "/accounts/:nickname/followers" do
+# test "it returns the followers in a collection", %{conn: conn} do
+# user = insert(:user)
+# user_two = insert(:user)
+# User.follow(user, user_two)
+#
+# result =
+# conn
+# |> get("/users/#{user_two.nickname}/followers")
+# |> json_response(200)
+#
+# assert result["first"]["orderedItems"] == [user.ap_id]
+# end
+#
+# test "it works for more than 10 users", %{conn: conn} do
+# user = insert(:user)
+#
+# Enum.each(1..15, fn _ ->
+# other_user = insert(:user)
+# User.follow(other_user, user)
+# end)
+#
+# result =
+# conn
+# |> get("/users/#{user.nickname}/followers")
+# |> json_response(200)
+#
+# assert length(result["first"]["orderedItems"]) == 10
+# assert result["first"]["totalItems"] == 15
+# assert result["totalItems"] == 15
+#
+# result =
+# conn
+# |> get("/users/#{user.nickname}/followers?page=2")
+# |> json_response(200)
+#
+# assert length(result["orderedItems"]) == 5
+# assert result["totalItems"] == 15
+# end
+# end
+#
+# describe "/users/:nickname/following" do
+# test "it returns the following in a collection", %{conn: conn} do
+# user = insert(:user)
+# user_two = insert(:user)
+# User.follow(user, user_two)
+#
+# result =
+# conn
+# |> get("/users/#{user.nickname}/following")
+# |> json_response(200)
+#
+# assert result["first"]["orderedItems"] == [user_two.ap_id]
+# end
+#
+# test "it works for more than 10 users", %{conn: conn} do
+# user = insert(:user)
+#
+# Enum.each(1..15, fn _ ->
+# user = Repo.get(User, user.id)
+# other_user = insert(:user)
+# User.follow(user, other_user)
+# end)
+#
+# result =
+# conn
+# |> get("/users/#{user.nickname}/following")
+# |> json_response(200)
+#
+# assert length(result["first"]["orderedItems"]) == 10
+# assert result["first"]["totalItems"] == 15
+# assert result["totalItems"] == 15
+#
+# result =
+# conn
+# |> get("/users/#{user.nickname}/following?page=2")
+# |> json_response(200)
+#
+# assert length(result["orderedItems"]) == 5
+# assert result["totalItems"] == 15
+# end
+# end
+end
diff --git a/test/eventos_web/controllers/bot_controller_test.exs b/test/eventos_web/controllers/bot_controller_test.exs
new file mode 100644
index 000000000..a3170c531
--- /dev/null
+++ b/test/eventos_web/controllers/bot_controller_test.exs
@@ -0,0 +1,81 @@
+defmodule EventosWeb.BotControllerTest do
+ use EventosWeb.ConnCase
+
+ alias Eventos.Actors
+ alias Eventos.Actors.Bot
+
+ @create_attrs %{source: "some source", type: "some type"}
+ @update_attrs %{source: "some updated source", type: "some updated type"}
+ @invalid_attrs %{source: nil, type: nil}
+
+ def fixture(:bot) do
+ {:ok, bot} = Actors.create_bot(@create_attrs)
+ bot
+ end
+
+ setup %{conn: conn} do
+ {:ok, conn: put_req_header(conn, "accept", "application/json")}
+ end
+
+ describe "index" do
+ test "lists all bots", %{conn: conn} do
+ conn = get conn, bot_path(conn, :index)
+ assert json_response(conn, 200)["data"] == []
+ end
+ end
+
+ describe "create bot" do
+ test "renders bot when data is valid", %{conn: conn} do
+ conn = post conn, bot_path(conn, :create), bot: @create_attrs
+ assert %{"id" => id} = json_response(conn, 201)["data"]
+
+ conn = get conn, bot_path(conn, :show, id)
+ assert json_response(conn, 200)["data"] == %{
+ "id" => id,
+ "source" => "some source",
+ "type" => "some type"}
+ end
+
+ test "renders errors when data is invalid", %{conn: conn} do
+ conn = post conn, bot_path(conn, :create), bot: @invalid_attrs
+ assert json_response(conn, 422)["errors"] != %{}
+ end
+ end
+
+ describe "update bot" do
+ setup [:create_bot]
+
+ test "renders bot when data is valid", %{conn: conn, bot: %Bot{id: id} = bot} do
+ conn = put conn, bot_path(conn, :update, bot), bot: @update_attrs
+ assert %{"id" => ^id} = json_response(conn, 200)["data"]
+
+ conn = get conn, bot_path(conn, :show, id)
+ assert json_response(conn, 200)["data"] == %{
+ "id" => id,
+ "source" => "some updated source",
+ "type" => "some updated type"}
+ end
+
+ test "renders errors when data is invalid", %{conn: conn, bot: bot} do
+ conn = put conn, bot_path(conn, :update, bot), bot: @invalid_attrs
+ assert json_response(conn, 422)["errors"] != %{}
+ end
+ end
+
+ describe "delete bot" do
+ setup [:create_bot]
+
+ test "deletes chosen bot", %{conn: conn, bot: bot} do
+ conn = delete conn, bot_path(conn, :delete, bot)
+ assert response(conn, 204)
+ assert_error_sent 404, fn ->
+ get conn, bot_path(conn, :show, bot)
+ end
+ end
+ end
+
+ defp create_bot(_) do
+ bot = fixture(:bot)
+ {:ok, bot: bot}
+ end
+end
diff --git a/test/eventos_web/controllers/comment_controller_test.exs b/test/eventos_web/controllers/comment_controller_test.exs
new file mode 100644
index 000000000..6b532d5ed
--- /dev/null
+++ b/test/eventos_web/controllers/comment_controller_test.exs
@@ -0,0 +1,81 @@
+defmodule EventosWeb.CommentControllerTest do
+ use EventosWeb.ConnCase
+
+ alias Eventos.Events
+ alias Eventos.Events.Comment
+
+ @create_attrs %{text: "some text", url: "some url"}
+ @update_attrs %{text: "some updated text", url: "some updated url"}
+ @invalid_attrs %{text: nil, url: nil}
+
+ def fixture(:comment) do
+ {:ok, comment} = Events.create_comment(@create_attrs)
+ comment
+ end
+
+ setup %{conn: conn} do
+ {:ok, conn: put_req_header(conn, "accept", "application/json")}
+ end
+
+ describe "index" do
+ test "lists all comments", %{conn: conn} do
+ conn = get conn, comment_path(conn, :index)
+ assert json_response(conn, 200)["data"] == []
+ end
+ end
+
+ describe "create comment" do
+ test "renders comment when data is valid", %{conn: conn} do
+ conn = post conn, comment_path(conn, :create), comment: @create_attrs
+ assert %{"id" => id} = json_response(conn, 201)["data"]
+
+ conn = get conn, comment_path(conn, :show, id)
+ assert json_response(conn, 200)["data"] == %{
+ "id" => id,
+ "text" => "some text",
+ "url" => "some url"}
+ end
+
+ test "renders errors when data is invalid", %{conn: conn} do
+ conn = post conn, comment_path(conn, :create), comment: @invalid_attrs
+ assert json_response(conn, 422)["errors"] != %{}
+ end
+ end
+
+ describe "update comment" do
+ setup [:create_comment]
+
+ test "renders comment when data is valid", %{conn: conn, comment: %Comment{id: id} = comment} do
+ conn = put conn, comment_path(conn, :update, comment), comment: @update_attrs
+ assert %{"id" => ^id} = json_response(conn, 200)["data"]
+
+ conn = get conn, comment_path(conn, :show, id)
+ assert json_response(conn, 200)["data"] == %{
+ "id" => id,
+ "text" => "some updated text",
+ "url" => "some updated url"}
+ end
+
+ test "renders errors when data is invalid", %{conn: conn, comment: comment} do
+ conn = put conn, comment_path(conn, :update, comment), comment: @invalid_attrs
+ assert json_response(conn, 422)["errors"] != %{}
+ end
+ end
+
+ describe "delete comment" do
+ setup [:create_comment]
+
+ test "deletes chosen comment", %{conn: conn, comment: comment} do
+ conn = delete conn, comment_path(conn, :delete, comment)
+ assert response(conn, 204)
+ assert_error_sent 404, fn ->
+ get conn, comment_path(conn, :show, comment)
+ end
+ end
+ end
+
+ defp create_comment(_) do
+ comment = fixture(:comment)
+ {:ok, comment: comment}
+ end
+end
diff --git a/test/support/factory.ex b/test/support/factory.ex
index 14a8d4a38..2d15551aa 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -6,22 +6,22 @@ defmodule Eventos.Factory do
use ExMachina.Ecto, repo: Eventos.Repo
def user_factory do
- %Eventos.Accounts.User{
+ %Eventos.Actors.User{
password_hash: "Jane Smith",
email: sequence(:email, &"email-#{&1}@example.com"),
role: 0,
- account: build(:account)
+ actor: build(:actor)
}
end
- def account_factory do
+ def actor_factory do
{:ok, {_, pubkey}} = RsaEx.generate_keypair("4096")
- %Eventos.Accounts.Account{
- username: sequence("Thomas"),
+ username = sequence("thomas")
+ %Eventos.Actors.Actor{
+ preferred_username: username,
domain: nil,
public_key: pubkey,
- uri: "https://",
- url: "https://"
+ url: EventosWeb.Endpoint.url() <> "/@#{username}"
}
end
@@ -46,15 +46,19 @@ defmodule Eventos.Factory do
end
def event_factory do
+ actor = build(:actor)
+ slug = sequence("my-event")
+
%Eventos.Events.Event{
title: sequence("MyEvent"),
- slug: sequence("my-event"),
+ slug: slug,
description: "My desc",
begins_on: nil,
ends_on: nil,
- organizer_account: build(:account),
+ organizer_actor: actor,
category: build(:category),
- address: build(:address)
+ address: build(:address),
+ url: EventosWeb.Endpoint.url() <> "/@" <> actor.username <> "/" <> slug
}
end
@@ -74,13 +78,13 @@ defmodule Eventos.Factory do
end
def group_factory do
- %Eventos.Groups.Group{
- title: sequence("My Group"),
- description: "My group",
+ username = sequence("My Group")
+ %Eventos.Actors.Actor{
+ preferred_username: username,
+ summary: "My group",
suspended: false,
- url: "https://",
- uri: "https://",
- address: build(:address)
+ url: EventosWeb.Endpoint.url() <> "/@#{username}",
+ type: "Group",
}
end
end