From 7dc34fe9ef4c1805820da495bd9959bd8d32045d Mon Sep 17 00:00:00 2001 From: Muhammed Tas Date: Mon, 27 Aug 2018 12:55:36 +0300 Subject: [PATCH] First Mean Commit --- .editorconfig | 13 + .gitignore | 43 + README.md | 27 + angular.json | 128 + backend/Archive.zip | Bin 0 -> 209501 bytes backend/app.js | 48 + backend/controllers/posts.js | 115 + backend/controllers/user.js | 62 + backend/middleware/check-auth.js | 12 + backend/middleware/file.js | 28 + backend/models/post.js | 10 + backend/models/user.js | 11 + backend/package.json | 14 + backend/routes/posts.js | 20 + backend/routes/user.js | 11 + backend/server.js | 52 + e2e/protractor.conf.js | 28 + e2e/src/app.e2e-spec.ts | 14 + e2e/src/app.po.ts | 11 + e2e/tsconfig.e2e.json | 13 + nodemon.json | 6 + package-lock.json | 12264 ++++++++++++++++ package.json | 60 + src/app/angular-material.module.ts | 25 + src/app/app-routing.module.ts | 19 + src/app/app.component.css | 4 + src/app/app.component.html | 5 + src/app/app.component.spec.ts | 27 + src/app/app.component.ts | 31 + src/app/app.module.ts | 36 + src/app/auth/auth-data.model.ts | 4 + src/app/auth/auth-interceptor.ts | 21 + src/app/auth/auth-routing.module.ts | 18 + src/app/auth/auth.guard.ts | 26 + src/app/auth/auth.module.ts | 14 + src/app/auth/auth.service.ts | 139 + src/app/auth/login/login.component.css | 7 + src/app/auth/login/login.component.html | 14 + src/app/auth/login/login.component.ts | 36 + src/app/auth/signup/signup.component.css | 7 + src/app/auth/signup/signup.component.html | 14 + src/app/auth/signup/signup.component.ts | 36 + src/app/error-interceptor.ts | 33 + src/app/error/error.component.css | 9 + src/app/error/error.component.html | 7 + src/app/error/error.component.ts | 31 + src/app/error/error.service.ts | 19 + src/app/header/header.component.css | 18 + src/app/header/header.component.html | 20 + src/app/header/header.component.ts | 33 + .../posts/post-create/mime-type.validator.ts | 47 + .../post-create/post-create.component.css | 21 + .../post-create/post-create.component.html | 21 + .../post-create/post-create.component.ts | 112 + .../posts/post-list/post-list.component.css | 25 + .../posts/post-list/post-list.component.html | 19 + .../posts/post-list/post-list.component.ts | 76 + src/app/posts/post.model.ts | 7 + src/app/posts/posts.module.ts | 19 + src/app/posts/posts.service.ts | 106 + src/assets/.gitkeep | 0 src/browserslist | 9 + src/environments/environment.prod.ts | 4 + src/environments/environment.ts | 16 + src/favicon.ico | Bin 0 -> 5430 bytes src/index.html | 16 + src/karma.conf.js | 31 + src/main.ts | 12 + src/polyfills.ts | 80 + src/styles.css | 3 + src/test.ts | 20 + src/tsconfig.app.json | 12 + src/tsconfig.spec.json | 19 + src/tslint.json | 17 + tsconfig.json | 20 + tslint.json | 130 + 76 files changed, 14485 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 README.md create mode 100644 angular.json create mode 100644 backend/Archive.zip create mode 100644 backend/app.js create mode 100644 backend/controllers/posts.js create mode 100644 backend/controllers/user.js create mode 100644 backend/middleware/check-auth.js create mode 100644 backend/middleware/file.js create mode 100644 backend/models/post.js create mode 100644 backend/models/user.js create mode 100644 backend/package.json create mode 100644 backend/routes/posts.js create mode 100644 backend/routes/user.js create mode 100644 backend/server.js create mode 100644 e2e/protractor.conf.js create mode 100644 e2e/src/app.e2e-spec.ts create mode 100644 e2e/src/app.po.ts create mode 100644 e2e/tsconfig.e2e.json create mode 100644 nodemon.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/app/angular-material.module.ts create mode 100644 src/app/app-routing.module.ts create mode 100644 src/app/app.component.css create mode 100644 src/app/app.component.html create mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.module.ts create mode 100644 src/app/auth/auth-data.model.ts create mode 100644 src/app/auth/auth-interceptor.ts create mode 100644 src/app/auth/auth-routing.module.ts create mode 100644 src/app/auth/auth.guard.ts create mode 100644 src/app/auth/auth.module.ts create mode 100644 src/app/auth/auth.service.ts create mode 100644 src/app/auth/login/login.component.css create mode 100644 src/app/auth/login/login.component.html create mode 100644 src/app/auth/login/login.component.ts create mode 100644 src/app/auth/signup/signup.component.css create mode 100644 src/app/auth/signup/signup.component.html create mode 100644 src/app/auth/signup/signup.component.ts create mode 100644 src/app/error-interceptor.ts create mode 100644 src/app/error/error.component.css create mode 100644 src/app/error/error.component.html create mode 100644 src/app/error/error.component.ts create mode 100644 src/app/error/error.service.ts create mode 100644 src/app/header/header.component.css create mode 100644 src/app/header/header.component.html create mode 100644 src/app/header/header.component.ts create mode 100644 src/app/posts/post-create/mime-type.validator.ts create mode 100644 src/app/posts/post-create/post-create.component.css create mode 100644 src/app/posts/post-create/post-create.component.html create mode 100644 src/app/posts/post-create/post-create.component.ts create mode 100644 src/app/posts/post-list/post-list.component.css create mode 100644 src/app/posts/post-list/post-list.component.html create mode 100644 src/app/posts/post-list/post-list.component.ts create mode 100644 src/app/posts/post.model.ts create mode 100644 src/app/posts/posts.module.ts create mode 100644 src/app/posts/posts.service.ts create mode 100644 src/assets/.gitkeep create mode 100644 src/browserslist create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts create mode 100644 src/favicon.ico create mode 100644 src/index.html create mode 100644 src/karma.conf.js create mode 100644 src/main.ts create mode 100644 src/polyfills.ts create mode 100644 src/styles.css create mode 100644 src/test.ts create mode 100644 src/tsconfig.app.json create mode 100644 src/tsconfig.spec.json create mode 100644 src/tslint.json create mode 100644 tsconfig.json create mode 100644 tslint.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e87a00 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e762f47 --- /dev/null +++ b/.gitignore @@ -0,0 +1,43 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db + + +backend/images +backend/angular diff --git a/README.md b/README.md new file mode 100644 index 0000000..6c7bd1f --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# MeanCourse + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 6.0.1. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..86a74cc --- /dev/null +++ b/angular.json @@ -0,0 +1,128 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "mean-course": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "backend/angular", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.app.json", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + { + "input": "node_modules/@angular/material/prebuilt-themes/indigo-pink.css" + }, + "src/styles.css" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "mean-course:build" + }, + "configurations": { + "production": { + "browserTarget": "mean-course:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "mean-course:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "src/tsconfig.spec.json", + "karmaConfig": "src/karma.conf.js", + "styles": [ + { + "input": "node_modules/@angular/material/prebuilt-themes/indigo-pink.css" + }, + "src/styles.css" + ], + "scripts": [], + "assets": [ + "src/favicon.ico", + "src/assets" + ] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "src/tsconfig.app.json", + "src/tsconfig.spec.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, + "mean-course-e2e": { + "root": "e2e/", + "projectType": "application", + "architect": { + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "mean-course:serve" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "e2e/tsconfig.e2e.json", + "exclude": [ + "**/node_modules/**" + ] + } + } + } + } + }, + "defaultProject": "mean-course" +} diff --git a/backend/Archive.zip b/backend/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..fb5106162d2c795b343deab0ff5e92773c660175 GIT binary patch literal 209501 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

t6Xv1@gd12!nwIA&8;kc3UnS69 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 { + console.log("Connected to database!"); + }) + .catch(() => { + console.log("Connection failed!"); + }); + +app.use(bodyParser.json()); +app.use(bodyParser.urlencoded({ extended: false })); +app.use("/images", express.static(path.join(__dirname, "images"))); +app.use("/", express.static(path.join(__dirname, "angular"))); + +// app.use((req, res, next) => { +// res.setHeader("Access-Control-Allow-Origin", "*"); +// res.setHeader( +// "Access-Control-Allow-Headers", +// "Origin, X-Requested-With, Content-Type, Accept, Authorization" +// ); +// res.setHeader( +// "Access-Control-Allow-Methods", +// "GET, POST, PATCH, PUT, DELETE, OPTIONS" +// ); +// next(); +// }); + +app.use("/api/posts", postsRoutes); +app.use("/api/user", userRoutes); +app.use((req, res, next) => { + res.sendFile(path.join(__dirname, "angular", "index.html")); +}); + +module.exports = app; diff --git a/backend/controllers/posts.js b/backend/controllers/posts.js new file mode 100644 index 0000000..cd29adf --- /dev/null +++ b/backend/controllers/posts.js @@ -0,0 +1,115 @@ +const Post = require("../models/post"); + +exports.createPost = (req, res, next) => { + const url = req.protocol + "://" + req.get("host"); + const post = new Post({ + title: req.body.title, + content: req.body.content, + imagePath: url + "/images/" + req.file.filename, + creator: req.userData.userId + }); + post + .save() + .then(createdPost => { + res.status(201).json({ + message: "Post added successfully", + post: { + ...createdPost, + id: createdPost._id + } + }); + }) + .catch(error => { + res.status(500).json({ + message: "Creating a post failed!" + }); + }); +}; + +exports.updatePost = (req, res, next) => { + let imagePath = req.body.imagePath; + if (req.file) { + const url = req.protocol + "://" + req.get("host"); + imagePath = url + "/images/" + req.file.filename; + } + const post = new Post({ + _id: req.body.id, + title: req.body.title, + content: req.body.content, + imagePath: imagePath, + creator: req.userData.userId + }); + Post.updateOne({ _id: req.params.id, creator: req.userData.userId }, post) + .then(result => { + if (result.n > 0) { + res.status(200).json({ message: "Update successful!" }); + } else { + res.status(401).json({ message: "Not authorized!" }); + } + }) + .catch(error => { + res.status(500).json({ + message: "Couldn't udpate post!" + }); + }); +}; + +exports.getPosts = (req, res, next) => { + const pageSize = +req.query.pagesize; + const currentPage = +req.query.page; + const postQuery = Post.find(); + let fetchedPosts; + if (pageSize && currentPage) { + postQuery.skip(pageSize * (currentPage - 1)).limit(pageSize); + } + postQuery + .then(documents => { + fetchedPosts = documents; + return Post.count(); + }) + .then(count => { + res.status(200).json({ + message: "Posts fetched successfully!", + posts: fetchedPosts, + maxPosts: count + }); + }) + .catch(error => { + res.status(500).json({ + message: "Fetching posts failed!" + }); + }); +}; + +exports.getPost = (req, res, next) => { + Post.findById(req.params.id) + .then(post => { + if (post) { + res.status(200).json(post); + } else { + res.status(404).json({ message: "Post not found!" }); + } + }) + .catch(error => { + res.status(500).json({ + message: "Fetching post failed!" + }); + }); +}; + +exports.deletePost = (req, res, next) => { + Post.deleteOne({ _id: req.params.id, creator: req.userData.userId }) + .then(result => { + console.log(result); + if (result.n > 0) { + res.status(200).json({ message: "Deletion successful!" }); + } else { + res.status(401).json({ message: "Not authorized!" }); + } + }) + .catch(error => { + res.status(500).json({ + message: "Deleting posts failed!" + }); + }); +}; diff --git a/backend/controllers/user.js b/backend/controllers/user.js new file mode 100644 index 0000000..e474838 --- /dev/null +++ b/backend/controllers/user.js @@ -0,0 +1,62 @@ +const bcrypt = require("bcryptjs"); +const jwt = require("jsonwebtoken"); + +const User = require("../models/user"); + +exports.createUser = (req, res, next) => { + bcrypt.hash(req.body.password, 10).then(hash => { + const user = new User({ + email: req.body.email, + password: hash + }); + user + .save() + .then(result => { + res.status(201).json({ + message: "User created!", + result: result + }); + }) + .catch(err => { + res.status(500).json({ + message: "Invalid authentication credentials!" + }); + }); + }); +} + +exports.userLogin = (req, res, next) => { + let fetchedUser; + User.findOne({ email: req.body.email }) + .then(user => { + if (!user) { + return res.status(401).json({ + message: "Auth failed" + }); + } + fetchedUser = user; + return bcrypt.compare(req.body.password, user.password); + }) + .then(result => { + if (!result) { + return res.status(401).json({ + message: "Auth failed" + }); + } + const token = jwt.sign( + { email: fetchedUser.email, userId: fetchedUser._id }, + process.env.JWT_KEY, + { expiresIn: "1h" } + ); + res.status(200).json({ + token: token, + expiresIn: 3600, + userId: fetchedUser._id + }); + }) + .catch(err => { + return res.status(401).json({ + message: "Invalid authentication credentials!" + }); + }); +} diff --git a/backend/middleware/check-auth.js b/backend/middleware/check-auth.js new file mode 100644 index 0000000..9caf676 --- /dev/null +++ b/backend/middleware/check-auth.js @@ -0,0 +1,12 @@ +const jwt = require("jsonwebtoken"); + +module.exports = (req, res, next) => { + try { + const token = req.headers.authorization.split(" ")[1]; + const decodedToken = jwt.verify(token, process.env.JWT_KEY); + req.userData = { email: decodedToken.email, userId: decodedToken.userId }; + next(); + } catch (error) { + res.status(401).json({ message: "You are not authenticated!" }); + } +}; diff --git a/backend/middleware/file.js b/backend/middleware/file.js new file mode 100644 index 0000000..9d8162e --- /dev/null +++ b/backend/middleware/file.js @@ -0,0 +1,28 @@ +const multer = require("multer"); + +const MIME_TYPE_MAP = { + "image/png": "png", + "image/jpeg": "jpg", + "image/jpg": "jpg" +}; + +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + const isValid = MIME_TYPE_MAP[file.mimetype]; + let error = new Error("Invalid mime type"); + if (isValid) { + error = null; + } + cb(error, "images"); + }, + filename: (req, file, cb) => { + const name = file.originalname + .toLowerCase() + .split(" ") + .join("-"); + const ext = MIME_TYPE_MAP[file.mimetype]; + cb(null, name + "-" + Date.now() + "." + ext); + } +}); + +module.exports = multer({ storage: storage }).single("image"); diff --git a/backend/models/post.js b/backend/models/post.js new file mode 100644 index 0000000..57ce34a --- /dev/null +++ b/backend/models/post.js @@ -0,0 +1,10 @@ +const mongoose = require("mongoose"); + +const postSchema = mongoose.Schema({ + title: { type: String, required: true }, + content: { type: String, required: true }, + imagePath: { type: String, required: true }, + creator: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true } +}); + +module.exports = mongoose.model("Post", postSchema); diff --git a/backend/models/user.js b/backend/models/user.js new file mode 100644 index 0000000..c1d7d98 --- /dev/null +++ b/backend/models/user.js @@ -0,0 +1,11 @@ +const mongoose = require("mongoose"); +const uniqueValidator = require("mongoose-unique-validator"); + +const userSchema = mongoose.Schema({ + email: { type: String, required: true, unique: true }, + password: { type: String, required: true } +}); + +userSchema.plugin(uniqueValidator); + +module.exports = mongoose.model("User", userSchema); diff --git a/backend/package.json b/backend/package.json new file mode 100644 index 0000000..3a04277 --- /dev/null +++ b/backend/package.json @@ -0,0 +1,14 @@ +{ + "name": "mean-course", + "version": "0.0.0", + "private": true, + "dependencies": { + "bcryptjs": "^2.4.3", + "body-parser": "^1.18.3", + "express": "^4.16.3", + "jsonwebtoken": "^8.2.1", + "mongoose": "^5.1.2", + "mongoose-unique-validator": "^2.0.1", + "multer": "^1.3.0" + } +} diff --git a/backend/routes/posts.js b/backend/routes/posts.js new file mode 100644 index 0000000..bc87cf4 --- /dev/null +++ b/backend/routes/posts.js @@ -0,0 +1,20 @@ +const express = require("express"); + +const PostController = require("../controllers/posts"); + +const checkAuth = require("../middleware/check-auth"); +const extractFile = require("../middleware/file"); + +const router = express.Router(); + +router.post("", checkAuth, extractFile, PostController.createPost); + +router.put("/:id", checkAuth, extractFile, PostController.updatePost); + +router.get("", PostController.getPosts); + +router.get("/:id", PostController.getPost); + +router.delete("/:id", checkAuth, PostController.deletePost); + +module.exports = router; diff --git a/backend/routes/user.js b/backend/routes/user.js new file mode 100644 index 0000000..931435c --- /dev/null +++ b/backend/routes/user.js @@ -0,0 +1,11 @@ +const express = require("express"); + +const UserController = require("../controllers/user"); + +const router = express.Router(); + +router.post("/signup", UserController.createUser); + +router.post("/login", UserController.userLogin); + +module.exports = router; diff --git a/backend/server.js b/backend/server.js new file mode 100644 index 0000000..98faa0c --- /dev/null +++ b/backend/server.js @@ -0,0 +1,52 @@ +const app = require("./app"); +const debug = require("debug")("node-angular"); +const http = require("http"); + +const normalizePort = val => { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +}; + +const onError = error => { + if (error.syscall !== "listen") { + throw error; + } + const bind = typeof addr === "string" ? "pipe " + addr : "port " + port; + switch (error.code) { + case "EACCES": + console.error(bind + " requires elevated privileges"); + process.exit(1); + break; + case "EADDRINUSE": + console.error(bind + " is already in use"); + process.exit(1); + break; + default: + throw error; + } +}; + +const onListening = () => { + const addr = server.address(); + const bind = typeof addr === "string" ? "pipe " + addr : "port " + port; + debug("Listening on " + bind); +}; + +const port = normalizePort(process.env.PORT || "3000"); +app.set("port", port); + +const server = http.createServer(app); +server.on("error", onError); +server.on("listening", onListening); +server.listen(port); diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js new file mode 100644 index 0000000..86776a3 --- /dev/null +++ b/e2e/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.e2e.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; \ No newline at end of file diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..e42d1f9 --- /dev/null +++ b/e2e/src/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { AppPage } from './app.po'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('Welcome to app!'); + }); +}); diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts new file mode 100644 index 0000000..82ea75b --- /dev/null +++ b/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json new file mode 100644 index 0000000..a6dd622 --- /dev/null +++ b/e2e/tsconfig.e2e.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} \ No newline at end of file diff --git a/nodemon.json b/nodemon.json new file mode 100644 index 0000000..d4ea5b5 --- /dev/null +++ b/nodemon.json @@ -0,0 +1,6 @@ +{ + "env": { + "MONGO_ATLAS_PW": "QuBqs0T45GDKPlIG", + "JWT_KEY": "secret_this_should_be_longer" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7bd47d4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12264 @@ +{ + "name": "mean-course", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.6.8.tgz", + "integrity": "sha512-ZKTm/zC61iY9IBHOEAKoMSzZpvhkmv+1O/HHzpHEuR551jCzu6vSyCmMY9Z7GBcccscCV+hjeSMwgFrFRcqlkw==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "rxjs": "6.2.2" + } + }, + "@angular-devkit/build-angular": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.6.8.tgz", + "integrity": "sha512-VGqYAk8jpISraz2UHfsDre270NOUmV0CTSZw2p9sm5g/XIr5m+IHetFZz3gpoAr9+If2aFTs8Rt3sGdCRzwBqA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.6.8", + "@angular-devkit/build-optimizer": "0.6.8", + "@angular-devkit/core": "0.6.8", + "@ngtools/webpack": "6.0.8", + "ajv": "6.4.0", + "autoprefixer": "8.6.5", + "cache-loader": "1.2.2", + "chalk": "2.2.2", + "circular-dependency-plugin": "5.0.2", + "clean-css": "4.2.1", + "copy-webpack-plugin": "4.5.2", + "file-loader": "1.1.11", + "glob": "7.1.3", + "html-webpack-plugin": "3.2.0", + "istanbul": "0.4.5", + "istanbul-instrumenter-loader": "3.0.1", + "karma-source-map-support": "1.3.0", + "less": "3.8.1", + "less-loader": "4.1.0", + "license-webpack-plugin": "1.4.0", + "lodash": "4.17.10", + "memory-fs": "0.4.1", + "mini-css-extract-plugin": "0.4.2", + "minimatch": "3.0.4", + "node-sass": "4.9.3", + "opn": "5.3.0", + "parse5": "4.0.0", + "portfinder": "1.0.17", + "postcss": "6.0.23", + "postcss-import": "11.1.0", + "postcss-loader": "2.1.6", + "postcss-url": "7.3.2", + "raw-loader": "0.5.1", + "resolve": "1.8.1", + "rxjs": "6.2.2", + "sass-loader": "7.1.0", + "silent-error": "1.1.0", + "source-map-support": "0.5.9", + "stats-webpack-plugin": "0.6.2", + "style-loader": "0.21.0", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "tree-kill": "1.2.0", + "uglifyjs-webpack-plugin": "1.3.0", + "url-loader": "1.1.1", + "webpack": "4.8.3", + "webpack-dev-middleware": "3.2.0", + "webpack-dev-server": "3.1.6", + "webpack-merge": "4.1.4", + "webpack-sources": "1.1.0", + "webpack-subresource-integrity": "1.1.0-rc.4" + }, + "dependencies": { + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.6.8.tgz", + "integrity": "sha512-of5syQbv3uNPp4AQkfRecfnp8AE8kvffbfYi+FFPZ6OGr7e59T1fGwk6+Zgb2qQFQg8HO2tzWI/uygtLIqmbmw==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7", + "typescript": "2.9.2", + "webpack-sources": "1.1.0" + }, + "dependencies": { + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.6.8.tgz", + "integrity": "sha512-rkIa1OSVWTt4g9leLSK/PsqOj3HZbDKHbZjqlslyfVa3AyCeiumFoOgViOVXlYgPX3HHDbE5uH24nyUWSD8uww==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" + } + }, + "@angular-devkit/schematics": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.6.8.tgz", + "integrity": "sha512-R4YqAUdo62wtrhX/5HSRGSKXNTWqfQb66ZE6m8jj6GEJNFKdNXMdxOchxr07LCiKTxfh1w6G3nGzxIsu/+D4KA==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "rxjs": "6.2.2" + } + }, + "@angular/animations": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.4.tgz", + "integrity": "sha512-R+akCyIneyqJ5wAf9VaymvxbxM4Iw3YsUdylO9rrr9wAUhzmzWhCSGK9bncwL4+d5rbd0n1u+8A8Gm0dZe1P1A==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/cdk": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-6.4.6.tgz", + "integrity": "sha512-XKSoeSP4htpOq2UIyF9KDhIJtEQ3wyhZRjDxyRSNmJ9OsuRZxJAGCAzOX5RpMszOyFZgUNVycOi+1lHDe0JrZg==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/cli": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.0.8.tgz", + "integrity": "sha512-DhH1Zq5Yonthw6zh6W07fhf+9XrAZbD1fcQ0MrmbxlieCfLlTAdBqyK2LavFCKwSZkUMLF6UHM3+jiNRVZSSIg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.6.8", + "@angular-devkit/core": "0.6.8", + "@angular-devkit/schematics": "0.6.8", + "@schematics/angular": "0.6.8", + "@schematics/update": "0.6.8", + "opn": "5.3.0", + "resolve": "1.8.1", + "rxjs": "6.2.2", + "semver": "5.5.1", + "silent-error": "1.1.0", + "symbol-observable": "1.2.0", + "yargs-parser": "10.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 + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "@angular/common": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.4.tgz", + "integrity": "sha512-vpedSD5Rbuj9kLq9W/aeQBVugplimTJPPeuW/zUXHWVOOOk4Y7KBw5g4JdYw2ocSoY3z+dRl/6fR0JTi9+muaA==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/compiler": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.4.tgz", + "integrity": "sha512-HjSK9Jjx6f1jpXy2TALKp2ByAXycZKKD39M9K2g+feTTrpUtd3iDEDLG4S/yok9qs4e1k3L8fxr/qBngQuv23A==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/compiler-cli": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.4.tgz", + "integrity": "sha512-ueTe5THcPIKjXOb1+LvqEqh35QPihEGObvJIpudMTqkJHguOr2WXKbbgxzF8QWuIBhOHR9fjtaSgNY5Kk2mfTg==", + "dev": true, + "requires": { + "chokidar": "1.7.0", + "minimist": "1.2.0", + "reflect-metadata": "0.1.12", + "tsickle": "0.32.1" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "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" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "@angular/core": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.4.tgz", + "integrity": "sha512-8r2LpD4MR0hAYjWkElD/I6iXcugMK/HrpdtopDlRcxW2f6XuMN4mu8eS3g2fu72PwdGhtMcqDDFlbeJ8k599lw==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/forms": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.4.tgz", + "integrity": "sha512-O/rYF36zM15fbXPv4Tj7NlYiCazko6+Eb4o9Ls0nJXMOxt8pRwdYjgGMaOtYprtbH89YlnmJU/gav5Z58JG7sw==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/http": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.1.4.tgz", + "integrity": "sha512-HD3+ouMAqsgA6hFUS8AQDVlZTbkuNuyomGY1I85IpqXmO7GneszN6y5xIf8XO5ke4UYgvk5UhRrKJ9UG9VtUOw==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/language-service": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-6.1.4.tgz", + "integrity": "sha512-kvnAphJ7VrKJpm1gN3sFjGp/5gQxu/FAw03yD1f1z+C+aHrNKoxaS9pp9NdOIT/DWlxR/BcEDF4gzMNMTJ9/wA==", + "dev": true + }, + "@angular/material": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-6.4.6.tgz", + "integrity": "sha512-SUSg9MhLv4IZj6Nh8qoCLDImZugCQ+Jvvt+/cDIaTn6TrT6ZenDHc6jOhbGFesU6FuBDBFIXMiuBPD9kBr7vaA==", + "requires": { + "parse5": "5.1.0", + "tslib": "1.9.3" + } + }, + "@angular/platform-browser": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.4.tgz", + "integrity": "sha512-46UPtC360+3E4eeOQk45qp+r+d0Qnsujyot+XtVKQmTSHTInDlwfIGA9TBTw8GyAs3O65i80LRkDHFz9BM2pmw==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/platform-browser-dynamic": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.4.tgz", + "integrity": "sha512-a/WVCsAa0qdtLNuK6h8q+nwtXmJqOlc+dJrBK3vz1umhc80nFZeaUPMTnkRwphk6WVE8xHvjb41PZsI8jF9CBQ==", + "requires": { + "tslib": "1.9.3" + } + }, + "@angular/router": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.1.4.tgz", + "integrity": "sha512-ANdJmpPkr4BMW3/ixJ/qSbsQk4CwR3BPDJp3Iua/xLy7i+9h0bcs11Lpdyo5U3esPYpcpc6TE3ofptyD6xpyGg==", + "requires": { + "tslib": "1.9.3" + } + }, + "@ngtools/webpack": { + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-6.0.8.tgz", + "integrity": "sha512-jorGpTd82ILbyUwg4JQekovHFaYwSMlZan4f7x+sd3+2WgyL3Z1+ZbVSGKvXZWKS/mAVx7eLkRikzJkuC4FgHw==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "tree-kill": "1.2.0", + "webpack-sources": "1.1.0" + } + }, + "@schematics/angular": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.6.8.tgz", + "integrity": "sha512-9kRphqTYG5Df/I8fvnT1zMsw0YNDPO9tl18tQZXj4am4raT7l9UCr+WkwJdlBoA5pwG6baWE9sL0iGWV/bzF/g==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "@angular-devkit/schematics": "0.6.8", + "typescript": "2.7.2" + } + }, + "@schematics/update": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.6.8.tgz", + "integrity": "sha512-1Uq7LYnwL2wBwGVCgNz76QAR13ghAk+2vDDHOi+VX5+usHManxydrpoMGeX66OBPd+y5D3D2MFb+8mYHE7mygg==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.6.8", + "@angular-devkit/schematics": "0.6.8", + "npm-registry-client": "8.6.0", + "rxjs": "6.2.2", + "semver": "5.5.1", + "semver-intersect": "1.4.0" + } + }, + "@types/jasmine": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.8.tgz", + "integrity": "sha512-OJSUxLaxXsjjhob2DBzqzgrkLmukM3+JMpRp0r0E4HTdT1nwDCWhaswjYxazPij6uOdzHCJfNbDjmQ1/rnNbCg==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.3.tgz", + "integrity": "sha512-hYDVmQZT5VA2kigd4H4bv7vl/OhlympwREUemqBdOqtrYTo5Ytm12a5W5/nGgGYdanGVxj0x/VhZ7J3hOg/YKg==", + "dev": true, + "requires": { + "@types/jasmine": "2.8.8" + } + }, + "@types/node": { + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "2.53.43", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.43.tgz", + "integrity": "sha512-UBYHWph6P3tutkbXpW6XYg9ZPbTKjw/YC2hGG1/GEvWwTbvezBUv3h+mmUFw79T3RFPnmedpiXdOBbXX+4l0jg==", + "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" + }, + "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" + } + } + } + }, + "@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" + }, + "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" + } + } + } + }, + "@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" + }, + "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" + } + } + } + }, + "@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" + }, + "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" + } + } + } + }, + "@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" + }, + "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" + } + } + } + }, + "@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" + } + }, + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.20", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", + "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==", + "dev": true + }, + "acorn-dynamic-import": { + "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": "5.7.2" + } + }, + "adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "5.0.0" + } + }, + "ajv": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", + "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", + "dev": true, + "requires": { + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1", + "uri-js": "3.0.2" + } + }, + "ajv-errors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", + "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", + "dev": true + }, + "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 + }, + "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" + }, + "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" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "2.1.1" + }, + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "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" + } + } + } + }, + "ansi-colors": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.0.5.tgz", + "integrity": "sha512-VVjWpkfaphxUBFarydrQ3n26zX5nIK7hcbT3/ielrvwDDyBBjuh2vuSw1P9zkPq0cfqvdw7lkYHnu+OLSfIBsg==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "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.2" + } + }, + "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.10", + "normalize-path": "2.1.1" + } + }, + "app-root-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", + "dev": true + }, + "append-field": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-0.1.0.tgz", + "integrity": "sha1-bdxY+gg8e8VF08WZWygwzCNm1Eo=" + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "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 + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "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 + }, + "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", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "asn1.js": { + "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.1" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "requires": { + "lodash": "4.17.10" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "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, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", + "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", + "dev": true, + "requires": { + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000878", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.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" + } + }, + "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 + } + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "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.10", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "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=", + "dev": true, + "requires": { + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" + } + }, + "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.10" + } + }, + "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.9", + "globals": "9.18.0", + "invariant": "2.2.4", + "lodash": "4.17.10" + } + }, + "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.10", + "to-fast-properties": "1.0.3" + } + }, + "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=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.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" + } + } + } + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-2.0.1.tgz", + "integrity": "sha512-DwB7WgJPdskbR+9Y3OTJtwRq09Lmm7Na6b+4ewvXjkD0nfNRi1OozxljHm5ETlDCBq9DTy04lQz+rj+T2ztIJg==", + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.9.1" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.5" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "gauge": { + "version": "2.7.4", + "bundled": 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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.9.1", + "bundled": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.6", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "rc": { + "version": "1.2.6", + "bundled": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true + } + } + }, + "readable-stream": { + "version": "2.3.5", + "bundled": true, + "requires": { + "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.0.3", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, + "sax": { + "version": "1.2.4", + "bundled": true + }, + "semver": { + "version": "5.5.0", + "bundled": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.3", + "bundled": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "requires": { + "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" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "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.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.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, + "optional": true, + "requires": { + "inherits": "2.0.3" + } + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "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 + } + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "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.23", + "on-finished": "2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "1.6.16" + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "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": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.2.2", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.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 + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "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" + } + } + } + }, + "brace-expansion": { + "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" + } + }, + "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.3", + "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" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "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.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "browserify-cipher": { + "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.2.0", + "browserify-des": "1.0.2", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "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 + } + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "elliptic": "6.4.1", + "inherits": "2.0.3", + "parse-asn1": "5.1.1" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "1.0.6" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000878", + "electron-to-chromium": "1.3.61" + } + }, + "bson": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", + "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12", + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "1.1.0", + "buffer-fill": "1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "busboy": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", + "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", + "requires": { + "dicer": "0.2.5", + "readable-stream": "1.1.14" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "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.3", + "graceful-fs": "4.1.11", + "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.3.0", + "unique-filename": "1.1.0", + "y18n": "4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + } + }, + "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.2", + "schema-utils": "0.4.7" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.2", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "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-lite": { + "version": "1.0.30000878", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000878.tgz", + "integrity": "sha512-/dCGTdLCnjVJno1mFRn7Y6eit3AYaeFzSrMQHCoK0LEQaWl5snuLex1Ky4b8/Qu2ig5NgTX4cJx65hH9546puA==", + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "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, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.2.2.tgz", + "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "4.5.0" + }, + "dependencies": { + "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.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "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": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "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 + }, + "ci-info": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.4.0.tgz", + "integrity": "sha512-Oqmw2pVfCl8sCL+1QgMywPfdxPJPkC51y4usw0iiE2S9qnEOAqXy8bwl1CpMpnoU39g4iKJTz6QZj+28FvOnjQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "circular-dependency-plugin": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.0.2.tgz", + "integrity": "sha512-oC7/DVAyfcY3UWKm0sN/oVoDedQDQiw/vIiAnuTWTpE5s0zWf7l3WY417Xw/Fbi/QbAjctAkxgMiS9P0s3zkmA==", + "dev": true + }, + "class-utils": { + "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", + "static-extend": "0.1.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" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "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 + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "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" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-4.2.1.tgz", + "integrity": "sha512-CKwfgpfkqi9dyzy4s6ELaxJ54QgJ6A8iTSsM4bzHbLuTpbKncvNc3DUlCvpnkHBhK47gEf4qFsWoYqLrJPhy6g==", + "dev": true, + "requires": { + "app-root-path": "2.1.0", + "css-selector-tokenizer": "0.7.0", + "cssauron": "1.4.0", + "semver-dsl": "1.0.1", + "source-map": "0.5.7", + "sprintf-js": "1.0.3" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, + "color-convert": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", + "dev": true, + "requires": { + "color-name": "1.1.1" + } + }, + "color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "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.10" + } + }, + "combined-stream": { + "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.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-versions": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.1.tgz", + "integrity": "sha512-GkIcfJ9sDt4+gS+RWH3X+kR7ezuKdu3fg2oA9nRA8HZoqZwAKv3ml3TyfB9OyV2iFXxCw7q5XfV6SyPbSCT2pw==", + "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.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "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=", + "dev": true + }, + "compressible": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", + "dev": true, + "requires": { + "mime-db": "1.36.0" + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "dev": true, + "requires": { + "accepts": "1.3.5", + "bytes": "3.0.0", + "compressible": "2.0.14", + "debug": "2.6.9", + "on-headers": "1.0.1", + "safe-buffer": "5.1.2", + "vary": "1.1.2" + }, + "dependencies": { + "safe-buffer": { + "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 + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.3.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, + "connect": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", + "integrity": "sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ=", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.0", + "parseurl": "1.3.2", + "utils-merge": "1.0.1" + }, + "dependencies": { + "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.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "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", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "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 + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "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==" + }, + "convert-source-map": { + "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": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", + "dev": true, + "requires": { + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "globby": "7.1.1", + "is-glob": "4.0.0", + "loader-utils": "1.1.0", + "minimatch": "3.0.4", + "p-limit": "1.3.0", + "serialize-javascript": "1.5.0" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0", + "require-from-string": "2.0.2" + }, + "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.2", + "json-parse-better-errors": "1.0.2" + } + } + } + }, + "create-ecdh": { + "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", + "elliptic": "6.4.1" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "1.0.0" + } + }, + "create-hash": { + "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", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" + } + }, + "create-hmac": { + "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.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.1", + "sha.js": "2.4.11" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "4.1.3", + "which": "1.3.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.1", + "browserify-sign": "4.0.4", + "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.16", + "public-encrypt": "4.0.2", + "randombytes": "2.0.6", + "randomfill": "1.0.4" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "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", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "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 + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "1.0.12" + } + }, + "define-property": { + "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", + "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" + } + } + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-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": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.3", + "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 + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "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.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "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 + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "requires": { + "readable-stream": "1.1.14", + "streamsearch": "0.1.2" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "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.6" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "path-type": "3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "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" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "1.1.1" + } + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, + "requires": { + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "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.2", + "void-elements": "2.0.1" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "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": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "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.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" + } + }, + "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": { + "is-obj": "1.0.1" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "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.6", + "stream-shift": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", + "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.61", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.61.tgz", + "integrity": "sha512-XjTdsm6x71Y48lF9EEvGciwXD70b20g0t+3YbrE+0fPFutqV08DSNrZXkoXAp3QuzX7TpL/OW+/VsNoR9GkuNg==", + "dev": true + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "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.20", + "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": { + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "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=", + "dev": true + }, + "errno": { + "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" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es6-promise": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "4.2.4" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "requires": { + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "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" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-stream": { + "version": "3.3.4", + "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "0.1.1", + "from": "0.1.7", + "map-stream": "0.1.0", + "pause-stream": "0.0.11", + "split": "0.3.3", + "stream-combiner": "0.0.4", + "through": "2.3.8" + } + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": "1.0.2" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "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" + }, + "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.1" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "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": { + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "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": "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" + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.4" + }, + "dependencies": { + "fill-range": { + "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": "3.1.0", + "repeat-element": "1.1.3", + "repeat-string": "1.6.1" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "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" + } + } + } + }, + "express": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "requires": { + "accepts": "1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "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.4", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "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=", + "requires": { + "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.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + } + }, + "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==" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "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=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "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" + }, + "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" + } + } + } + }, + "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" + } + }, + "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" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "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-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + }, + "file-loader": { + "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.4.7" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.3", + "minimatch": "3.0.4" + } + }, + "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" + } + } + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flush-write-stream": { + "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.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "follow-redirects": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.7.tgz", + "integrity": "sha512-NONJVIFiX7Z8k2WxfqBjtwqMifx7X42ORLFrOZ2LTKGj71G3C0kfdyTqGqr8fx5zSX6Foo/D95dgGWbPUiwnew==", + "dev": true, + "requires": { + "debug": "3.1.0" + }, + "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" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "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" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "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.6", + "mime-types": "2.1.20" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "1.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "1.1.14" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "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.10.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": 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" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "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, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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", + "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": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "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.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "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" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "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.3" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "optional": true, + "requires": { + "globule": "1.2.1" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "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" + } + } + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "1.3.5" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "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.3", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.3", + "lodash": "4.17.10", + "minimatch": "3.0.4" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.1", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "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", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + }, + "dependencies": { + "ajv": { + "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.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + } + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "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" + } + }, + "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=", + "dev": true + }, + "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-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": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "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.6" + } + } + } + }, + "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" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", + "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.2.1", + "commander": "2.17.1", + "he": "1.1.1", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.4.8" + } + }, + "html-webpack-plugin": { + "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": { + "html-minifier": "3.5.20", + "loader-utils": "0.2.17", + "lodash": "4.17.10", + "pretty-error": "2.1.1", + "tapable": "1.0.0", + "toposort": "1.0.7", + "util.promisify": "1.0.0" + }, + "dependencies": { + "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.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "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" + }, + "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" + } + }, + "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" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": "1.5.0" + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "dev": true + }, + "http-proxy": { + "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": "3.1.0", + "follow-redirects": "1.5.7", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "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.17.0", + "is-glob": "4.0.0", + "lodash": "4.17.10", + "micromatch": "3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "4.2.1", + "debug": "3.1.0" + }, + "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" + } + } + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "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, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "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" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "3.7.0" + } + }, + "invariant": { + "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.4.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.11.0" + } + }, + "is-buffer": { + "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": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.0.tgz", + "integrity": "sha512-plgvKjQtalH2P3Gytb7L61Lmz95g2DlpzFiQyRSFew8WoJKxtKRzrZMeyRN2supblm3Psc8OQGy7Xjb6XG11jw==", + "dev": true, + "requires": { + "ci-info": "1.4.0" + } + }, + "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-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "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 + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "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-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "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-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "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" + } + } + } + }, + "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-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "1.0.1" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.3" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "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": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "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=", + "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.11", + "js-yaml": "3.12.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.1", + "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" + } + } + } + }, + "istanbul-api": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.1.tgz", + "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", + "dev": true, + "requires": { + "async": "2.6.1", + "compare-versions": "3.3.1", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.2.0", + "istanbul-lib-hook": "1.2.1", + "istanbul-lib-instrument": "1.10.1", + "istanbul-lib-report": "1.1.4", + "istanbul-lib-source-maps": "1.2.5", + "istanbul-reports": "1.3.0", + "js-yaml": "3.12.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz", + "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", + "dev": true, + "requires": { + "convert-source-map": "1.5.1", + "istanbul-lib-instrument": "1.10.1", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0" + }, + "dependencies": { + "ajv": { + "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.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.5.2" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", + "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", + "dev": true, + "requires": { + "append-transform": "1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "dev": true, + "requires": { + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz", + "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "path-parse": "1.0.6", + "supports-color": "3.2.3" + }, + "dependencies": { + "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 + }, + "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" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.2.0", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "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" + } + } + } + }, + "istanbul-reports": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.3.0.tgz", + "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.3", + "jasmine-core": "2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jasmine-diff": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/jasmine-diff/-/jasmine-diff-0.1.3.tgz", + "integrity": "sha1-k8zC3MQQKMXd1GBlWAdIOfLe6qg=", + "dev": true, + "requires": { + "diff": "3.5.0" + } + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "js-base64": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.8.tgz", + "integrity": "sha512-hm2nYpDrwoO/OzBhdcqs/XGT6XjSuSSCVEpia+Kl2J6x4CYt5hISlVL/AYU1khoDXv0AQVgxtdJySb9gjAn56Q==", + "dev": true, + "optional": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "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": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonwebtoken": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", + "integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==", + "requires": { + "jws": "3.1.5", + "lodash.includes": "4.3.0", + "lodash.isboolean": "3.0.3", + "lodash.isinteger": "4.0.4", + "lodash.isnumber": "3.0.3", + "lodash.isplainobject": "4.0.6", + "lodash.isstring": "4.0.1", + "lodash.once": "4.1.1", + "ms": "2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "dev": true, + "requires": { + "core-js": "2.3.0", + "es6-promise": "3.0.2", + "lie": "3.1.1", + "pako": "1.0.6", + "readable-stream": "2.0.6" + }, + "dependencies": { + "core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", + "dev": true + }, + "es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "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=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "0.10.31", + "util-deprecate": "1.0.2" + } + } + } + }, + "jwa": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", + "integrity": "sha512-tBO/cf++BUsJkYql/kBbJroKOgHWEigTKBAjjBEmrMGYd1QMBC74Hr4Wo2zCZw6ZrVhlJPvoMrkcOnlWR/DJfw==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.10", + "safe-buffer": "5.1.1" + } + }, + "jws": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", + "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", + "requires": { + "jwa": "1.1.6", + "safe-buffer": "5.1.1" + } + }, + "kareem": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.2.1.tgz", + "integrity": "sha512-xpDFy8OxkFM+vK6pXy6JmH92ibeEFUuDWzas5M9L7MzVmHW3jzwAHxodCPV/BYkf4A31bVDLyonrMfp9RXb/oA==" + }, + "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.1", + "body-parser": "1.18.3", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.6", + "core-js": "2.5.7", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.3", + "graceful-fs": "4.1.11", + "http-proxy": "1.17.0", + "isbinaryfile": "3.0.3", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.4.1", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.2.0", + "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.3.0" + }, + "dependencies": { + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.3" + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.2.4", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "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" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.3.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", + "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", + "dev": true, + "requires": { + "istanbul-api": "1.3.1", + "minimatch": "3.0.4" + } + }, + "karma-jasmine": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "1.1.2" + } + }, + "karma-source-map-support": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", + "dev": true, + "requires": { + "source-map-support": "0.5.9" + } + }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "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 + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "4.0.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "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 + }, + "less": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "dev": true, + "requires": { + "clone": "2.1.2", + "errno": "0.1.7", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.4.1", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.88.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, + "optional": true + } + } + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", + "dev": true, + "requires": { + "clone": "2.1.2", + "loader-utils": "1.1.0", + "pify": "3.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "license-webpack-plugin": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.4.0.tgz", + "integrity": "sha512-iwuNFMWbXS76WiQXJBTs8/7Tby4NQnY8AIkBMuJG5El79UT8zWrJQMfpW+KRXt4Y2Bs5uk+Myg/MO7ROSF8jzA==", + "dev": true, + "requires": { + "ejs": "2.6.1" + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "dev": true, + "requires": { + "immediate": "3.0.6" + } + }, + "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" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true, + "optional": true + }, + "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.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, + "lodash.mergewith": { + "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, + "optional": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "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": { + "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 + } + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", + "dev": true + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "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" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==", + "dev": true + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, + "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", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.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.7", + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "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.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "1.36.0" + } + }, + "mimic-fn": { + "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.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz", + "integrity": "sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "1.0.0", + "webpack-sources": "1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" + } + } + } + }, + "minimalistic-assert": { + "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": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "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.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mississippi": { + "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.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": "2.0.1", + "pumpify": "1.5.1", + "stream-each": "1.2.3", + "through2": "2.0.3" + } + }, + "mixin-deep": { + "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", + "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" + } + } + } + }, + "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", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mongodb": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.3.tgz", + "integrity": "sha512-hfzI54/fe+604w5gP+i9aJ5GGVxnquxZ09ZN1cyLTbpnBfDRpj78lN59SBdDRkF1VNTzmM2KcgDWhHHDHcsJxw==", + "requires": { + "mongodb-core": "3.1.2" + } + }, + "mongodb-core": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.2.tgz", + "integrity": "sha512-R2XxGzsmhlUeOK2jKATj1TWn3q3qNcJpKrSh0rhaBSHxJmV7WZ+ikjocdY8VdJxUkKqOxM8rxMqOAEzeJ3p1ww==", + "requires": { + "bson": "1.1.0", + "require_optional": "1.0.1", + "saslprep": "1.0.1" + }, + "dependencies": { + "bson": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", + "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" + } + } + }, + "mongoose": { + "version": "5.2.9", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.2.9.tgz", + "integrity": "sha512-PqXYKtXq5VPJDf7pUuCfTjN5MVEE0Dyia+YrqkI/FU8kk7YmZbGIedbvw7HHn+EKFSD2N137djhbH0NJ7FNA5Q==", + "requires": { + "async": "2.6.1", + "bson": "1.0.9", + "kareem": "2.2.1", + "lodash.get": "4.4.2", + "mongodb": "3.1.3", + "mongodb-core": "3.1.2", + "mongoose-legacy-pluralize": "1.0.2", + "mpath": "0.4.1", + "mquery": "3.1.2", + "ms": "2.0.0", + "regexp-clone": "0.0.1", + "safe-buffer": "5.1.2", + "sliced": "1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "mongoose-legacy-pluralize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==" + }, + "mongoose-unique-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mongoose-unique-validator/-/mongoose-unique-validator-2.0.1.tgz", + "integrity": "sha512-Eqq7lZMy0nPSojG8UyDZvlBie1aBZJXk68GDMBXXQH0TAi0hZHf76nCrwuipReNK1jLkjyKzV7eIZotja5eEBw==", + "requires": { + "lodash.foreach": "4.5.0", + "lodash.get": "4.4.2" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "mpath": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.4.1.tgz", + "integrity": "sha512-NNY/MpBkALb9jJmjpBlIi6GRoLveLUM0pJzgbp9vY9F7IQEb/HREC/nxrixechcQwd1NevOhJnWWV8QQQRE+OA==" + }, + "mquery": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.1.2.tgz", + "integrity": "sha512-rBo2+eShI/Ko/GFzXMvJvYjzeLRW3P7E4NllAGRyNO90Xw5awo5RI3zCqzuJWe1NSvdL7cGu3RPLuGjZ1TmnmA==", + "requires": { + "bluebird": "3.5.1", + "debug": "3.1.0", + "regexp-clone": "0.0.1", + "sliced": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.3.1.tgz", + "integrity": "sha512-JHdEoxkA/5NgZRo91RNn4UT+HdcJV9XUo01DTkKC7vo1erNIngtuaw9Y0WI8RdTlyi+wMIbunflhghzVLuGJyw==", + "requires": { + "append-field": "0.1.0", + "busboy": "0.2.14", + "concat-stream": "1.6.2", + "mkdirp": "0.5.1", + "object-assign": "3.0.0", + "on-finished": "2.3.0", + "type-is": "1.6.16", + "xtend": "4.0.1" + } + }, + "multicast-dns": { + "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.3.1", + "thunky": "1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "neo-async": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", + "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", + "dev": true + }, + "no-case": { + "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.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.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.3", + "graceful-fs": "4.1.11", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.5", + "request": "2.88.0", + "rimraf": "2.6.2", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.2.0", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "1.1.1", + "https-browserify": "1.0.0", + "os-browserify": "0.3.0", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.6", + "stream-browserify": "2.0.1", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.4", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "node-sass": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", + "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "dev": true, + "optional": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.3", + "get-stdin": "4.0.1", + "glob": "7.1.3", + "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.8.0", + "npmlog": "4.1.2", + "request": "2.87.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.1", + "true-case-path": "1.0.3" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "optional": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": 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" + } + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "optional": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.1", + "tough-cookie": "2.3.4", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" + } + }, + "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, + "optional": true + }, + "tough-cookie": { + "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, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + } + } + }, + "nodemon": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.3.tgz", + "integrity": "sha512-XdVfAjGlDKU2nqoGgycxTndkJ5fdwvWJ/tlMGk2vHxMZBrSPVh86OM6z7viAv8BBJWjMgeuYQBofzr6LUoi+7g==", + "dev": true, + "requires": { + "chokidar": "2.0.4", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.5.1", + "supports-color": "5.5.0", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.5.0" + }, + "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" + } + } + } + }, + "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" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.5.1", + "validate-npm-package-license": "3.0.4" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "2.7.1", + "osenv": "0.1.5", + "semver": "5.5.1", + "validate-npm-package-name": "3.0.0" + } + }, + "npm-registry-client": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", + "integrity": "sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "graceful-fs": "4.1.11", + "normalize-package-data": "2.4.0", + "npm-package-arg": "6.1.0", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.88.0", + "retry": "0.10.1", + "safe-buffer": "5.1.1", + "semver": "5.5.1", + "slide": "1.1.6", + "ssri": "5.3.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "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.5", + "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", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" + }, + "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", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.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" + } + }, + "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" + } + } + } + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "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.3", + "es-abstract": "1.12.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "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" + } + }, + "opn": { + "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" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "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 + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "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 + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "optional": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "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", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.3.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "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 + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0", + "semver": "5.5.1" + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "2.3.2" + } + }, + "parse-asn1": { + "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.10.1", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.16" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.2" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "optional": true + }, + "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" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "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=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "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" + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "pbkdf2": { + "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.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.1", + "sha.js": "2.4.11" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "portfinder": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", + "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "dev": true, + "requires": { + "async": "1.5.2", + "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 + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.5.0" + }, + "dependencies": { + "chalk": { + "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.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + }, + "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 + } + } + }, + "postcss-import": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", + "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0", + "read-cache": "1.0.0", + "resolve": "1.8.1" + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "4.0.0", + "import-cwd": "2.1.0" + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "postcss": "6.0.23", + "postcss-load-config": "2.0.0", + "schema-utils": "0.4.7" + } + }, + "postcss-url": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-7.3.2.tgz", + "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", + "dev": true, + "requires": { + "mime": "1.4.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "postcss": "6.0.23", + "xxhashjs": "0.2.2" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "2.0.1", + "utila": "0.4.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "2.0.6" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "protractor": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.3.2.tgz", + "integrity": "sha512-pw4uwwiy5lHZjIguxNpkEwJJa7hVz+bJsvaTI+IbXlfn2qXwzbF8eghW/RmrZwE2sGx82I8etb8lVjQ+JrjejA==", + "dev": true, + "requires": { + "@types/node": "6.0.116", + "@types/q": "0.0.32", + "@types/selenium-webdriver": "2.53.43", + "blocking-proxy": "1.0.1", + "chalk": "1.1.3", + "glob": "7.1.3", + "jasmine": "2.8.0", + "jasminewd2": "2.2.0", + "optimist": "0.6.1", + "q": "1.4.1", + "saucelabs": "1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "0.4.18", + "webdriver-js-extender": "1.0.0", + "webdriver-manager": "12.1.0" + }, + "dependencies": { + "@types/node": { + "version": "6.0.116", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.116.tgz", + "integrity": "sha512-vToa8YEeulfyYg1gSOeHjvvIRqrokng62VMSj2hoZrwZNcYrp2h3AWo6KeBVuymIklQUaY5zgVJvVsC4KiiLkQ==", + "dev": true + }, + "adm-zip": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", + "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", + "dev": true + }, + "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" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-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", + "rimraf": "2.6.2" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "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 + }, + "webdriver-manager": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.0.tgz", + "integrity": "sha512-oEc5fmkpz6Yh6udhwir5m0eN5mgRPq9P/NU5YWuT3Up5slt6Zz+znhLU7q4+8rwCZz/Qq3Fgpr/4oao7NPCm2A==", + "dev": true, + "requires": { + "adm-zip": "0.4.11", + "chalk": "1.1.3", + "del": "2.2.2", + "glob": "7.1.3", + "ini": "1.3.5", + "minimist": "1.2.0", + "q": "1.4.1", + "request": "2.88.0", + "rimraf": "2.6.2", + "semver": "5.5.1", + "xml2js": "0.4.19" + } + } + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "ps-tree": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", + "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", + "dev": true, + "requires": { + "event-stream": "3.3.4" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", + "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", + "dev": true, + "requires": { + "ps-tree": "1.1.0" + } + }, + "public-encrypt": { + "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.2.0", + "parse-asn1": "5.1.1", + "randombytes": "2.0.6" + } + }, + "pump": { + "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.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "3.6.0", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "dev": true, + "requires": { + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" + }, + "dependencies": { + "is-number": { + "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 + } + } + }, + "randombytes": { + "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" + } + }, + "randomfill": { + "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.6", + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "2.3.0" + }, + "dependencies": { + "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" + }, + "dependencies": { + "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-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reflect-metadata": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", + "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "dev": true + }, + "regenerate": { + "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.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "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": "3.0.2", + "safe-regex": "1.1.0" + } + }, + "regexp-clone": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk=" + }, + "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.4.0", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "1.2.8", + "safe-buffer": "5.1.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "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" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-converter": "0.1.4", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.20", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" + }, + "dependencies": { + "safe-buffer": { + "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 + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require_optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", + "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", + "requires": { + "resolve-from": "2.0.0", + "semver": "5.5.1" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dev": true, + "requires": { + "path-parse": "1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "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 + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "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, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "1.2.0" + } + }, + "rxjs": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", + "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", + "requires": { + "tslib": "1.9.3" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "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==" + }, + "saslprep": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.1.tgz", + "integrity": "sha512-ntN6SbE3hRqd45PKKadRPgA+xHPWg5lPSj2JWJdJvjTwXDDfkPVtXWvP8jJojvnm+rAsZ2b299C5NwZqq818EA==", + "optional": 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, + "optional": true, + "requires": { + "glob": "7.1.3", + "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, + "optional": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "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" + } + } + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dev": true, + "requires": { + "clone-deep": "2.0.2", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "neo-async": "2.5.2", + "pify": "3.0.0", + "semver": "5.5.1" + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "2.2.1" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "ajv-keywords": "3.2.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "optional": true, + "requires": { + "js-base64": "2.4.8", + "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, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "3.1.5", + "rimraf": "2.6.2", + "tmp": "0.0.30", + "xml2js": "0.4.19" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + } + } + }, + "selfsigned": { + "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.7.5" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "5.5.1" + } + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "5.5.1" + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "5.5.1" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.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.4.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "serialize-javascript": { + "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": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "1.3.5", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "1.0.3", + "http-errors": "1.6.3", + "mime-types": "2.1.20", + "parseurl": "1.3.2" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "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": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "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" + } + }, + "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": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "silent-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", + "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "dev": true, + "requires": { + "debug": "2.6.9" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "snapdragon": { + "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.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.2", + "use": "3.1.1" + }, + "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" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "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" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "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" + } + } + } + }, + "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": { + "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": { + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "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" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.3.2" + } + }, + "sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "dev": true, + "requires": { + "debug": "2.6.9", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.4.3" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + } + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "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.1.2", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "1.1.1", + "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": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "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-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" + } + }, + "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": "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": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" + } + }, + "spdy-transport": { + "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.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.1", + "wbuf": "1.7.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" + } + }, + "ssri": { + "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" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.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" + } + } + } + }, + "stats-webpack-plugin": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/stats-webpack-plugin/-/stats-webpack-plugin-0.6.2.tgz", + "integrity": "sha1-LFlJtTHgf4eojm6k3PrFOqjHWis=", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "readable-stream": { + "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, + "optional": true, + "requires": { + "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" + } + }, + "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, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "0.1.1" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "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" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "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" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz", + "integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "schema-utils": "0.4.7" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.0", + "debug": "2.6.9", + "glob": "7.0.6", + "mkdirp": "0.5.1", + "sax": "0.5.8", + "source-map": "0.1.43" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "lodash.clonedeep": "4.5.0", + "when": "3.6.4" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "optional": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "0.7.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "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": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "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.1" + } + } + } + }, + "thunky": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "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=", + "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", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "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=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "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" + } + } + } + }, + "to-regex": { + "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": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + } + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.0.9" + } + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "1.1.29", + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tree-kill": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", + "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.3" + } + }, + "ts-node": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-5.0.1.tgz", + "integrity": "sha512-XK7QmDcNHVmZkVtkiwNDWiERRHPyU8nBqZB1+iv2UhOG0q3RQ9HsZ2CMqISlFbxjrYFGfG2mX7bW4dAyxBVzUw==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "chalk": "2.4.1", + "diff": "3.5.0", + "make-error": "1.3.4", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.5.9", + "yn": "2.0.0" + }, + "dependencies": { + "chalk": { + "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.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "tsickle": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.32.1.tgz", + "integrity": "sha512-JW9j+W0SaMSZGejIFZBk0AiPfnhljK3oLx5SaqxrJhjlvzFyPml5zqG1/PuScUj6yTe1muEqwk5CnDK0cOZmKw==", + "dev": true, + "requires": { + "jasmine-diff": "0.1.3", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.6.1", + "source-map-support": "0.5.9" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "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 + } + } + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" + }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.1", + "commander": "2.17.1", + "diff": "3.5.0", + "glob": "7.1.3", + "js-yaml": "3.12.0", + "minimatch": "3.0.4", + "resolve": "1.8.1", + "semver": "5.5.1", + "tslib": "1.9.3", + "tsutils": "2.29.0" + }, + "dependencies": { + "chalk": { + "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.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.20" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "dev": true + }, + "uglify-js": { + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.8.tgz", + "integrity": "sha512-WatYTD84gP/867bELqI2F/2xC9PQBETn/L+7RGq9MQOA/7yFBNvY1UwXqvtILeE6n0ITwBXxp34M0/o70dzj6A==", + "dev": true, + "requires": { + "commander": "2.17.1", + "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 + } + } + }, + "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": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "requires": { + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.7", + "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" + } + } + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "requires": { + "debug": "2.6.9" + } + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "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", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "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 + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "1.3.0", + "chalk": "2.2.2", + "configstore": "3.1.2", + "import-lazy": "2.1.0", + "is-ci": "1.2.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + } + }, + "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": "3.0.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", + "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", + "dev": true, + "requires": { + "punycode": "2.1.1" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "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": "1.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", + "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "mime": "2.3.1", + "schema-utils": "1.0.0" + }, + "dependencies": { + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "ajv-errors": "1.0.0", + "ajv-keywords": "3.2.0" + } + } + } + }, + "url-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "dev": true, + "requires": { + "querystringify": "2.0.0", + "requires-port": "1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "1.0.4" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.3", + "tmp": "0.0.31" + } + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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.3", + "object.getownpropertydescriptors": "2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "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 + }, + "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.4", + "graceful-fs": "4.1.11", + "neo-async": "2.5.2" + } + }, + "wbuf": { + "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.1" + } + }, + "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" + } + }, + "webdriver-js-extender": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", + "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", + "dev": true, + "requires": { + "@types/selenium-webdriver": "2.53.43", + "selenium-webdriver": "2.53.3" + }, + "dependencies": { + "sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + }, + "selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "requires": { + "adm-zip": "0.4.4", + "rimraf": "2.6.2", + "tmp": "0.0.24", + "ws": "1.1.2", + "xml2js": "0.4.4" + } + }, + "tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true + }, + "xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "requires": { + "sax": "0.6.1", + "xmlbuilder": "9.0.7" + } + } + } + }, + "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.7.2", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.4.0", + "ajv-keywords": "3.2.0", + "chrome-trace-event": "0.1.3", + "enhanced-resolve": "4.1.0", + "eslint-scope": "3.7.3", + "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.2", + "node-libs-browser": "2.1.0", + "schema-utils": "0.4.7", + "tapable": "1.0.0", + "uglifyjs-webpack-plugin": "1.3.0", + "watchpack": "1.6.0", + "webpack-sources": "1.1.0" + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "0.1.8", + "source-map": "0.4.4" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "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" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz", + "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==", + "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": "2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.6.tgz", + "integrity": "sha512-uc6YP0DzzW4870TDKoK73uONytLgu27h+x6XfgSvERRChkpd5Ils7US6d5k22LBoh0sDkmPZ6ERHSsrkwtkFFQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "3.5.0", + "chokidar": "2.0.4", + "compression": "1.7.3", + "connect-history-api-fallback": "1.5.0", + "debug": "3.1.0", + "del": "3.0.0", + "express": "4.16.3", + "html-entities": "1.2.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.17", + "selfsigned": "1.10.3", + "serve-index": "1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "5.5.0", + "webpack-dev-middleware": "3.2.0", + "webpack-log": "2.0.0", + "yargs": "12.0.1" + }, + "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 + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "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": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "3.0.0", + "path-exists": "3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", + "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "2.0.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "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": "4.0.0", + "yargs-parser": "10.1.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "3.0.5", + "uuid": "3.3.2" + } + }, + "webpack-merge": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", + "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + }, + "webpack-sources": { + "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.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 + } + } + }, + "webpack-subresource-integrity": { + "version": "1.1.0-rc.4", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.4.tgz", + "integrity": "sha1-xcTj1pD50vZKlVDgeodn+Xlqpdg=", + "dev": true, + "requires": { + "webpack-core": "0.6.9" + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": "0.4.13", + "websocket-extensions": "0.1.3" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "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, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "1.0.2" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "2.1.1" + }, + "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 + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "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" + } + } + } + }, + "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, + "optional": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "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", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "ws": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "dev": true, + "requires": { + "options": "0.0.6", + "ultron": "1.0.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 + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": "1.2.4", + "xmlbuilder": "9.0.7" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "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=", + "dev": true + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dev": true, + "requires": { + "cuint": "0.2.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 + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.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, + "optional": true, + "requires": { + "camelcase": "3.0.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, + "optional": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", + "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..9cde1a5 --- /dev/null +++ b/package.json @@ -0,0 +1,60 @@ +{ + "name": "mean-course", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e", + "start:server": "nodemon ./backend/server.js" + }, + "private": true, + "dependencies": { + "@angular/animations": "^6.0.0", + "@angular/cdk": "^6.0.0", + "@angular/common": "^6.0.0", + "@angular/compiler": "^6.0.0", + "@angular/core": "^6.0.0", + "@angular/forms": "^6.0.0", + "@angular/http": "^6.0.0", + "@angular/material": "^6.0.2", + "@angular/platform-browser": "^6.0.0", + "@angular/platform-browser-dynamic": "^6.0.0", + "@angular/router": "^6.0.0", + "bcrypt": "^2.0.1", + "bcryptjs": "^2.4.3", + "body-parser": "^1.18.3", + "core-js": "^2.5.4", + "express": "^4.16.3", + "jsonwebtoken": "^8.2.1", + "mongoose": "^5.1.2", + "mongoose-unique-validator": "^2.0.1", + "multer": "^1.3.0", + "rxjs": "^6.0.0", + "zone.js": "^0.8.26" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.6.1", + "@angular/cli": "~6.0.1", + "@angular/compiler-cli": "^6.0.0", + "@angular/language-service": "^6.0.0", + "@types/jasmine": "~2.8.6", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "~4.2.1", + "jasmine-core": "~2.99.1", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~1.7.1", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~1.4.2", + "karma-jasmine": "~1.1.1", + "karma-jasmine-html-reporter": "^0.2.2", + "nodemon": "^1.17.4", + "protractor": "~5.3.0", + "ts-node": "~5.0.1", + "tslint": "~5.9.1", + "typescript": "~2.7.2" + } +} diff --git a/src/app/angular-material.module.ts b/src/app/angular-material.module.ts new file mode 100644 index 0000000..11cba08 --- /dev/null +++ b/src/app/angular-material.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from "@angular/core"; +import { + MatInputModule, + MatCardModule, + MatButtonModule, + MatToolbarModule, + MatExpansionModule, + MatProgressSpinnerModule, + MatPaginatorModule, + MatDialogModule +} from "@angular/material"; + +@NgModule({ + exports: [ + MatInputModule, + MatCardModule, + MatButtonModule, + MatToolbarModule, + MatExpansionModule, + MatProgressSpinnerModule, + MatPaginatorModule, + MatDialogModule, + ] +}) +export class AngularMaterialModule {} diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100644 index 0000000..cb91901 --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; +import { PostListComponent } from "./posts/post-list/post-list.component"; +import { PostCreateComponent } from "./posts/post-create/post-create.component"; +import { AuthGuard } from "./auth/auth.guard"; + +const routes: Routes = [ + { path: "", component: PostListComponent }, + { path: "create", component: PostCreateComponent, canActivate: [AuthGuard] }, + { path: "edit/:postId", component: PostCreateComponent, canActivate: [AuthGuard] }, + { path: "auth", loadChildren: "./auth/auth.module#AuthModule"} +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule], + providers: [AuthGuard] +}) +export class AppRoutingModule {} diff --git a/src/app/app.component.css b/src/app/app.component.css new file mode 100644 index 0000000..ae08457 --- /dev/null +++ b/src/app/app.component.css @@ -0,0 +1,4 @@ +main { + width: 80%; + margin: 1rem auto; +} diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..1a88844 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,5 @@ + +
+ +
+ diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 0000000..bcbdf36 --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,27 @@ +import { TestBed, async } from '@angular/core/testing'; +import { AppComponent } from './app.component'; +describe('AppComponent', () => { + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ + AppComponent + ], + }).compileComponents(); + })); + it('should create the app', async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + })); + it(`should have as title 'app'`, async(() => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('app'); + })); + it('should render title in a h1 tag', async(() => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.debugElement.nativeElement; + expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!'); + })); +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..f81a824 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,31 @@ +import { Component, OnInit, } from "@angular/core"; +// import { Subscription } from "rxjs"; + +import { AuthService } from "./auth/auth.service"; +// import { ErrorService } from "./error/error.service"; + +@Component({ + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"] +}) +export class AppComponent implements OnInit { + // hasError = false; + // private errorSub: Subscription; + + constructor( + private authService: AuthService, + // private errorService: ErrorService + ) {} + + ngOnInit() { + this.authService.autoAuthUser(); + // this.errorSub = this.errorService.getErrorListener().subscribe( + // message => this.hasError = message !== null + // ); + } + + // ngOnDestroy() { + // this.errorSub.unsubscribe(); + // } +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 0000000..0268a76 --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,36 @@ +import { BrowserModule } from "@angular/platform-browser"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { NgModule } from "@angular/core"; +import { HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http"; + +import { AppComponent } from "./app.component"; +import { HeaderComponent } from "./header/header.component"; +import { AppRoutingModule } from "./app-routing.module"; +import { AuthInterceptor } from "./auth/auth-interceptor"; +import { ErrorInterceptor } from "./error-interceptor"; +import { ErrorComponent } from "./error/error.component"; +import { AngularMaterialModule } from "./angular-material.module"; +import { PostsModule } from "./posts/posts.module"; + +@NgModule({ + declarations: [ + AppComponent, + HeaderComponent, + ErrorComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + HttpClientModule, + AngularMaterialModule, + PostsModule + ], + providers: [ + { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, + { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true } + ], + bootstrap: [AppComponent], + entryComponents: [ErrorComponent] +}) +export class AppModule {} diff --git a/src/app/auth/auth-data.model.ts b/src/app/auth/auth-data.model.ts new file mode 100644 index 0000000..fbeaa94 --- /dev/null +++ b/src/app/auth/auth-data.model.ts @@ -0,0 +1,4 @@ +export interface AuthData { + email: string; + password: string; +} diff --git a/src/app/auth/auth-interceptor.ts b/src/app/auth/auth-interceptor.ts new file mode 100644 index 0000000..0b22511 --- /dev/null +++ b/src/app/auth/auth-interceptor.ts @@ -0,0 +1,21 @@ +import { + HttpInterceptor, + HttpRequest, + HttpHandler +} from "@angular/common/http"; +import { Injectable } from "@angular/core"; + +import { AuthService } from "./auth.service"; + +@Injectable() +export class AuthInterceptor implements HttpInterceptor { + constructor(private authService: AuthService) {} + + intercept(req: HttpRequest, next: HttpHandler) { + const authToken = this.authService.getToken(); + const authRequest = req.clone({ + headers: req.headers.set("Authorization", "Bearer " + authToken) + }); + return next.handle(authRequest); + } +} diff --git a/src/app/auth/auth-routing.module.ts b/src/app/auth/auth-routing.module.ts new file mode 100644 index 0000000..61e95b2 --- /dev/null +++ b/src/app/auth/auth-routing.module.ts @@ -0,0 +1,18 @@ +import { NgModule } from "@angular/core"; +import { Routes, RouterModule } from "@angular/router"; + +import { LoginComponent } from "./login/login.component"; +import { SignupComponent } from "./signup/signup.component"; + +const routes: Routes = [ + { path: "login", component: LoginComponent }, + { path: "signup", component: SignupComponent }, +] + +@NgModule({ + imports: [ + RouterModule.forChild(routes) + ], + exports: [RouterModule] +}) +export class AuthRoutingModule {} diff --git a/src/app/auth/auth.guard.ts b/src/app/auth/auth.guard.ts new file mode 100644 index 0000000..5b2c029 --- /dev/null +++ b/src/app/auth/auth.guard.ts @@ -0,0 +1,26 @@ +import { + CanActivate, + ActivatedRouteSnapshot, + RouterStateSnapshot, + Router +} from "@angular/router"; +import { Injectable } from "@angular/core"; +import { Observable } from "rxjs"; + +import { AuthService } from "./auth.service"; + +@Injectable() +export class AuthGuard implements CanActivate { + constructor(private authService: AuthService, private router: Router) {} + + canActivate( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ): boolean | Observable | Promise { + const isAuth = this.authService.getIsAuth(); + if (!isAuth) { + this.router.navigate(['/login']); + } + return isAuth; + } +} diff --git a/src/app/auth/auth.module.ts b/src/app/auth/auth.module.ts new file mode 100644 index 0000000..7a76d11 --- /dev/null +++ b/src/app/auth/auth.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from "@angular/core"; +import { CommonModule } from "@angular/common"; +import { FormsModule } from "@angular/forms"; + +import { LoginComponent } from "./login/login.component"; +import { SignupComponent } from "./signup/signup.component"; +import { AngularMaterialModule } from "../angular-material.module"; +import { AuthRoutingModule } from "./auth-routing.module"; + +@NgModule({ + declarations: [LoginComponent, SignupComponent], + imports: [CommonModule, AngularMaterialModule, FormsModule, AuthRoutingModule] +}) +export class AuthModule {} diff --git a/src/app/auth/auth.service.ts b/src/app/auth/auth.service.ts new file mode 100644 index 0000000..37de27b --- /dev/null +++ b/src/app/auth/auth.service.ts @@ -0,0 +1,139 @@ +import { Injectable } from "@angular/core"; +import { HttpClient } from "@angular/common/http"; +import { Router } from "@angular/router"; +import { Subject } from "rxjs"; + +import { environment } from "../../environments/environment"; +import { AuthData } from "./auth-data.model"; + +const BACKEND_URL = environment.apiUrl + "/user/"; + +@Injectable({ providedIn: "root" }) +export class AuthService { + private isAuthenticated = false; + private token: string; + private tokenTimer: any; + private userId: string; + private authStatusListener = new Subject(); + + constructor(private http: HttpClient, private router: Router) {} + + getToken() { + return this.token; + } + + getIsAuth() { + return this.isAuthenticated; + } + + getUserId() { + return this.userId; + } + + getAuthStatusListener() { + return this.authStatusListener.asObservable(); + } + + createUser(email: string, password: string) { + const authData: AuthData = { email: email, password: password }; + this.http.post(BACKEND_URL + "/signup", authData).subscribe( + () => { + this.router.navigate(["/"]); + }, + error => { + this.authStatusListener.next(false); + } + ); + } + + login(email: string, password: string) { + const authData: AuthData = { email: email, password: password }; + this.http + .post<{ token: string; expiresIn: number; userId: string }>( + BACKEND_URL + "/login", + authData + ) + .subscribe( + response => { + const token = response.token; + this.token = token; + if (token) { + const expiresInDuration = response.expiresIn; + this.setAuthTimer(expiresInDuration); + this.isAuthenticated = true; + this.userId = response.userId; + this.authStatusListener.next(true); + const now = new Date(); + const expirationDate = new Date( + now.getTime() + expiresInDuration * 1000 + ); + console.log(expirationDate); + this.saveAuthData(token, expirationDate, this.userId); + this.router.navigate(["/"]); + } + }, + error => { + this.authStatusListener.next(false); + } + ); + } + + autoAuthUser() { + const authInformation = this.getAuthData(); + if (!authInformation) { + return; + } + const now = new Date(); + const expiresIn = authInformation.expirationDate.getTime() - now.getTime(); + if (expiresIn > 0) { + this.token = authInformation.token; + this.isAuthenticated = true; + this.userId = authInformation.userId; + this.setAuthTimer(expiresIn / 1000); + this.authStatusListener.next(true); + } + } + + logout() { + this.token = null; + this.isAuthenticated = false; + this.authStatusListener.next(false); + this.userId = null; + clearTimeout(this.tokenTimer); + this.clearAuthData(); + this.router.navigate(["/"]); + } + + private setAuthTimer(duration: number) { + console.log("Setting timer: " + duration); + this.tokenTimer = setTimeout(() => { + this.logout(); + }, duration * 1000); + } + + private saveAuthData(token: string, expirationDate: Date, userId: string) { + localStorage.setItem("token", token); + localStorage.setItem("expiration", expirationDate.toISOString()); + localStorage.setItem("userId", userId); + } + + private clearAuthData() { + localStorage.removeItem("token"); + localStorage.removeItem("expiration"); + localStorage.removeItem("userId"); + } + + private getAuthData() { + const token = localStorage.getItem("token"); + const expirationDate = localStorage.getItem("expiration"); + const userId = localStorage.getItem("userId"); + if (!token || !expirationDate) { + return; + } + return { + token: token, + expirationDate: new Date(expirationDate), + userId: userId + }; + } +} diff --git a/src/app/auth/login/login.component.css b/src/app/auth/login/login.component.css new file mode 100644 index 0000000..20a1703 --- /dev/null +++ b/src/app/auth/login/login.component.css @@ -0,0 +1,7 @@ +mat-form-field { + width: 100%; +} + +mat-spinner { + margin: auto; +} diff --git a/src/app/auth/login/login.component.html b/src/app/auth/login/login.component.html new file mode 100644 index 0000000..37b3198 --- /dev/null +++ b/src/app/auth/login/login.component.html @@ -0,0 +1,14 @@ + + +
+ + + Please enter a valid email. + + + + Please enter a valid password. + + +
+
diff --git a/src/app/auth/login/login.component.ts b/src/app/auth/login/login.component.ts new file mode 100644 index 0000000..b38a443 --- /dev/null +++ b/src/app/auth/login/login.component.ts @@ -0,0 +1,36 @@ +import { Component, OnInit, OnDestroy } from "@angular/core"; +import { NgForm } from "@angular/forms"; +import { Subscription } from "rxjs"; + +import { AuthService } from "../auth.service"; + +@Component({ + templateUrl: "./login.component.html", + styleUrls: ["./login.component.css"] +}) +export class LoginComponent implements OnInit, OnDestroy { + isLoading = false; + private authStatusSub: Subscription; + + constructor(public authService: AuthService) {} + + ngOnInit() { + this.authStatusSub = this.authService.getAuthStatusListener().subscribe( + authStatus => { + this.isLoading = false; + } + ); + } + + onLogin(form: NgForm) { + if (form.invalid) { + return; + } + this.isLoading = true; + this.authService.login(form.value.email, form.value.password); + } + + ngOnDestroy() { + this.authStatusSub.unsubscribe(); + } +} diff --git a/src/app/auth/signup/signup.component.css b/src/app/auth/signup/signup.component.css new file mode 100644 index 0000000..20a1703 --- /dev/null +++ b/src/app/auth/signup/signup.component.css @@ -0,0 +1,7 @@ +mat-form-field { + width: 100%; +} + +mat-spinner { + margin: auto; +} diff --git a/src/app/auth/signup/signup.component.html b/src/app/auth/signup/signup.component.html new file mode 100644 index 0000000..ec38212 --- /dev/null +++ b/src/app/auth/signup/signup.component.html @@ -0,0 +1,14 @@ + + +
+ + + Please enter a valid email. + + + + Please enter a valid password. + + +
+
diff --git a/src/app/auth/signup/signup.component.ts b/src/app/auth/signup/signup.component.ts new file mode 100644 index 0000000..c5425ba --- /dev/null +++ b/src/app/auth/signup/signup.component.ts @@ -0,0 +1,36 @@ +import { Component, OnInit, OnDestroy } from "@angular/core"; +import { NgForm } from "@angular/forms"; +import { Subscription } from "rxjs"; + +import { AuthService } from "../auth.service"; + +@Component({ + templateUrl: "./signup.component.html", + styleUrls: ["./signup.component.css"] +}) +export class SignupComponent implements OnInit, OnDestroy { + isLoading = false; + private authStatusSub: Subscription; + + constructor(public authService: AuthService) {} + + ngOnInit() { + this.authStatusSub = this.authService.getAuthStatusListener().subscribe( + authStatus => { + this.isLoading = false; + } + ); + } + + onSignup(form: NgForm) { + if (form.invalid) { + return; + } + this.isLoading = true; + this.authService.createUser(form.value.email, form.value.password); + } + + ngOnDestroy() { + this.authStatusSub.unsubscribe(); + } +} diff --git a/src/app/error-interceptor.ts b/src/app/error-interceptor.ts new file mode 100644 index 0000000..2b4e763 --- /dev/null +++ b/src/app/error-interceptor.ts @@ -0,0 +1,33 @@ +import { + HttpInterceptor, + HttpRequest, + HttpHandler, + HttpErrorResponse +} from '@angular/common/http'; +import { catchError } from 'rxjs/operators'; +import { throwError } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { MatDialog } from '@angular/material'; + +import { ErrorComponent } from './error/error.component'; +import { ErrorService } from './error/error.service'; + +@Injectable() +export class ErrorInterceptor implements HttpInterceptor { + + constructor(private dialog: MatDialog, private errorService: ErrorService) {} + + intercept(req: HttpRequest, next: HttpHandler) { + return next.handle(req).pipe( + catchError((error: HttpErrorResponse) => { + let errorMessage = 'An unknown error occurred!'; + if (error.error.message) { + errorMessage = error.error.message; + } + this.dialog.open(ErrorComponent, {data: {message: errorMessage}}); + // this.errorService.throwError(errorMessage); + return throwError(error); + }) + ); + } +} diff --git a/src/app/error/error.component.css b/src/app/error/error.component.css new file mode 100644 index 0000000..5eecf60 --- /dev/null +++ b/src/app/error/error.component.css @@ -0,0 +1,9 @@ +:host { + position: fixed; + top: 150px; + left: 40%; + width: 20%; + background: white; + padding: 0.5rem; + box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); +} diff --git a/src/app/error/error.component.html b/src/app/error/error.component.html new file mode 100644 index 0000000..9f21a3f --- /dev/null +++ b/src/app/error/error.component.html @@ -0,0 +1,7 @@ +

An Error Occurred!

+
+

{{ data?.message }}

+
+
+ +
diff --git a/src/app/error/error.component.ts b/src/app/error/error.component.ts new file mode 100644 index 0000000..3aec276 --- /dev/null +++ b/src/app/error/error.component.ts @@ -0,0 +1,31 @@ +import { Component, Inject } from "@angular/core"; +import { MAT_DIALOG_DATA } from "@angular/material"; +// import { Subscription } from "rxjs"; + +// import { ErrorService } from "./error.service"; + +@Component({ + templateUrl: "./error.component.html", + selector: "app-error", + // styleUrls: ["./error.component.css"] +}) +export class ErrorComponent { + // data: { message: string }; + // private errorSub: Subscription; + constructor(@Inject(MAT_DIALOG_DATA) public data: { message: string }) {} + // constructor(private errorService: ErrorService) {} + + // ngOnInit() { + // this.errorSub = this.errorService.getErrorListener().subscribe(message => { + // this.data = { message: message }; + // }); + // } + + // onHandleError() { + // this.errorService.handleError(); + // } + + // ngOnDestroy() { + // this.errorSub.unsubscribe(); + // } +} diff --git a/src/app/error/error.service.ts b/src/app/error/error.service.ts new file mode 100644 index 0000000..68c00c2 --- /dev/null +++ b/src/app/error/error.service.ts @@ -0,0 +1,19 @@ +import { Subject } from "rxjs"; +import { Injectable } from "@angular/core"; + +@Injectable({ providedIn: "root" }) +export class ErrorService { + private errorListener = new Subject(); + + getErrorListener() { + return this.errorListener.asObservable(); + } + + throwError(message: string) { + this.errorListener.next(message); + } + + handleError() { + this.errorListener.next(null); + } +} diff --git a/src/app/header/header.component.css b/src/app/header/header.component.css new file mode 100644 index 0000000..0ff0458 --- /dev/null +++ b/src/app/header/header.component.css @@ -0,0 +1,18 @@ +ul { + list-style: none; + padding: 0; + margin: 0; +} + +a { + text-decoration: none; + color: white; +} + +ul { + display: flex; +} + +.spacer { + flex: 1 1 auto; +} diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html new file mode 100644 index 0000000..6907abc --- /dev/null +++ b/src/app/header/header.component.html @@ -0,0 +1,20 @@ + + +
MyMessages + + + + diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts new file mode 100644 index 0000000..d910205 --- /dev/null +++ b/src/app/header/header.component.ts @@ -0,0 +1,33 @@ +import { Component, OnInit, OnDestroy } from "@angular/core"; +import { Subscription } from "rxjs"; + +import { AuthService } from "../auth/auth.service"; + +@Component({ + selector: "app-header", + templateUrl: "./header.component.html", + styleUrls: ["./header.component.css"] +}) +export class HeaderComponent implements OnInit, OnDestroy { + userIsAuthenticated = false; + private authListenerSubs: Subscription; + + constructor(private authService: AuthService) {} + + ngOnInit() { + this.userIsAuthenticated = this.authService.getIsAuth(); + this.authListenerSubs = this.authService + .getAuthStatusListener() + .subscribe(isAuthenticated => { + this.userIsAuthenticated = isAuthenticated; + }); + } + + onLogout() { + this.authService.logout(); + } + + ngOnDestroy() { + this.authListenerSubs.unsubscribe(); + } +} diff --git a/src/app/posts/post-create/mime-type.validator.ts b/src/app/posts/post-create/mime-type.validator.ts new file mode 100644 index 0000000..87992e8 --- /dev/null +++ b/src/app/posts/post-create/mime-type.validator.ts @@ -0,0 +1,47 @@ +import { AbstractControl } from "@angular/forms"; +import { Observable, Observer, of } from "rxjs"; + +export const mimeType = ( + control: AbstractControl +): Promise<{ [key: string]: any }> | Observable<{ [key: string]: any }> => { + if (typeof(control.value) === 'string') { + return of(null); + } + const file = control.value as File; + const fileReader = new FileReader(); + const frObs = Observable.create( + (observer: Observer<{ [key: string]: any }>) => { + fileReader.addEventListener("loadend", () => { + const arr = new Uint8Array(fileReader.result).subarray(0, 4); + let header = ""; + let isValid = false; + for (let i = 0; i < arr.length; i++) { + header += arr[i].toString(16); + } + switch (header) { + case "89504e47": + isValid = true; + break; + case "ffd8ffe0": + case "ffd8ffe1": + case "ffd8ffe2": + case "ffd8ffe3": + case "ffd8ffe8": + isValid = true; + break; + default: + isValid = false; // Or you can use the blob.type as fallback + break; + } + if (isValid) { + observer.next(null); + } else { + observer.next({ invalidMimeType: true }); + } + observer.complete(); + }); + fileReader.readAsArrayBuffer(file); + } + ); + return frObs; +}; diff --git a/src/app/posts/post-create/post-create.component.css b/src/app/posts/post-create/post-create.component.css new file mode 100644 index 0000000..e2edccb --- /dev/null +++ b/src/app/posts/post-create/post-create.component.css @@ -0,0 +1,21 @@ +mat-form-field, +textarea { + width: 100%; +} + +mat-spinner { + margin: auto; +} + +input[type="file"] { + visibility: hidden; +} + +.image-preview { + height: 5rem; + margin: 1rem 0; +} + +.image-preview img { + height: 100%; +} diff --git a/src/app/posts/post-create/post-create.component.html b/src/app/posts/post-create/post-create.component.html new file mode 100644 index 0000000..67b8fed --- /dev/null +++ b/src/app/posts/post-create/post-create.component.html @@ -0,0 +1,21 @@ + + +
+ + + Please enter a post title. + +
+ + +
+
+ +
+ + + Please enter a post title. + + +
+
diff --git a/src/app/posts/post-create/post-create.component.ts b/src/app/posts/post-create/post-create.component.ts new file mode 100644 index 0000000..e6306e0 --- /dev/null +++ b/src/app/posts/post-create/post-create.component.ts @@ -0,0 +1,112 @@ +import { Component, OnInit, OnDestroy } from "@angular/core"; +import { FormGroup, FormControl, Validators } from "@angular/forms"; +import { ActivatedRoute, ParamMap } from "@angular/router"; +import { Subscription } from "rxjs"; + +import { PostsService } from "../posts.service"; +import { Post } from "../post.model"; +import { mimeType } from "./mime-type.validator"; +import { AuthService } from "../../auth/auth.service"; + +@Component({ + selector: "app-post-create", + templateUrl: "./post-create.component.html", + styleUrls: ["./post-create.component.css"] +}) +export class PostCreateComponent implements OnInit, OnDestroy { + enteredTitle = ""; + enteredContent = ""; + post: Post; + isLoading = false; + form: FormGroup; + imagePreview: string; + private mode = "create"; + private postId: string; + private authStatusSub: Subscription; + + constructor( + public postsService: PostsService, + public route: ActivatedRoute, + private authService: AuthService + ) {} + + ngOnInit() { + this.authStatusSub = this.authService + .getAuthStatusListener() + .subscribe(authStatus => { + this.isLoading = false; + }); + this.form = new FormGroup({ + title: new FormControl(null, { + validators: [Validators.required, Validators.minLength(3)] + }), + content: new FormControl(null, { validators: [Validators.required] }), + image: new FormControl(null, { + validators: [Validators.required], + asyncValidators: [mimeType] + }) + }); + this.route.paramMap.subscribe((paramMap: ParamMap) => { + if (paramMap.has("postId")) { + this.mode = "edit"; + this.postId = paramMap.get("postId"); + this.isLoading = true; + this.postsService.getPost(this.postId).subscribe(postData => { + this.isLoading = false; + this.post = { + id: postData._id, + title: postData.title, + content: postData.content, + imagePath: postData.imagePath, + creator: postData.creator + }; + this.form.setValue({ + title: this.post.title, + content: this.post.content, + image: this.post.imagePath + }); + }); + } else { + this.mode = "create"; + this.postId = null; + } + }); + } + + onImagePicked(event: Event) { + const file = (event.target as HTMLInputElement).files[0]; + this.form.patchValue({ image: file }); + this.form.get("image").updateValueAndValidity(); + const reader = new FileReader(); + reader.onload = () => { + this.imagePreview = reader.result; + }; + reader.readAsDataURL(file); + } + + onSavePost() { + if (this.form.invalid) { + return; + } + this.isLoading = true; + if (this.mode === "create") { + this.postsService.addPost( + this.form.value.title, + this.form.value.content, + this.form.value.image + ); + } else { + this.postsService.updatePost( + this.postId, + this.form.value.title, + this.form.value.content, + this.form.value.image + ); + } + this.form.reset(); + } + + ngOnDestroy() { + this.authStatusSub.unsubscribe(); + } +} diff --git a/src/app/posts/post-list/post-list.component.css b/src/app/posts/post-list/post-list.component.css new file mode 100644 index 0000000..78bafb7 --- /dev/null +++ b/src/app/posts/post-list/post-list.component.css @@ -0,0 +1,25 @@ +:host { + display: block; + margin-top: 1rem; +} + +mat-spinner { + margin: auto; +} + +mat-paginator { + margin-top: 1rem; +} + +.info-text { + text-align: center; +} + +.post-image { + width: 100%; +} + +.post-image img { + width: 100%; + box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); +} diff --git a/src/app/posts/post-list/post-list.component.html b/src/app/posts/post-list/post-list.component.html new file mode 100644 index 0000000..15ea629 --- /dev/null +++ b/src/app/posts/post-list/post-list.component.html @@ -0,0 +1,19 @@ + + + + + {{ post.title }} + +
+ +
+

{{ post.content }}

+ + EDIT + + +
+
+ +

No posts added yet!

diff --git a/src/app/posts/post-list/post-list.component.ts b/src/app/posts/post-list/post-list.component.ts new file mode 100644 index 0000000..3328187 --- /dev/null +++ b/src/app/posts/post-list/post-list.component.ts @@ -0,0 +1,76 @@ +import { Component, OnInit, OnDestroy } from "@angular/core"; +import { PageEvent } from "@angular/material"; +import { Subscription } from "rxjs"; + +import { Post } from "../post.model"; +import { PostsService } from "../posts.service"; +import { AuthService } from "../../auth/auth.service"; + +@Component({ + selector: "app-post-list", + templateUrl: "./post-list.component.html", + styleUrls: ["./post-list.component.css"] +}) +export class PostListComponent implements OnInit, OnDestroy { + // posts = [ + // { title: "First Post", content: "This is the first post's content" }, + // { title: "Second Post", content: "This is the second post's content" }, + // { title: "Third Post", content: "This is the third post's content" } + // ]; + posts: Post[] = []; + isLoading = false; + totalPosts = 0; + postsPerPage = 2; + currentPage = 1; + pageSizeOptions = [1, 2, 5, 10]; + userIsAuthenticated = false; + userId: string; + private postsSub: Subscription; + private authStatusSub: Subscription; + + constructor( + public postsService: PostsService, + private authService: AuthService + ) {} + + ngOnInit() { + this.isLoading = true; + this.postsService.getPosts(this.postsPerPage, this.currentPage); + this.userId = this.authService.getUserId(); + this.postsSub = this.postsService + .getPostUpdateListener() + .subscribe((postData: { posts: Post[]; postCount: number }) => { + this.isLoading = false; + this.totalPosts = postData.postCount; + this.posts = postData.posts; + }); + this.userIsAuthenticated = this.authService.getIsAuth(); + this.authStatusSub = this.authService + .getAuthStatusListener() + .subscribe(isAuthenticated => { + this.userIsAuthenticated = isAuthenticated; + this.userId = this.authService.getUserId(); + }); + } + + onChangedPage(pageData: PageEvent) { + this.isLoading = true; + this.currentPage = pageData.pageIndex + 1; + this.postsPerPage = pageData.pageSize; + this.postsService.getPosts(this.postsPerPage, this.currentPage); + } + + onDelete(postId: string) { + this.isLoading = true; + this.postsService.deletePost(postId).subscribe(() => { + this.postsService.getPosts(this.postsPerPage, this.currentPage); + }, () => { + this.isLoading = false; + }); + } + + ngOnDestroy() { + this.postsSub.unsubscribe(); + this.authStatusSub.unsubscribe(); + } +} diff --git a/src/app/posts/post.model.ts b/src/app/posts/post.model.ts new file mode 100644 index 0000000..c59e3f4 --- /dev/null +++ b/src/app/posts/post.model.ts @@ -0,0 +1,7 @@ +export interface Post { + id: string; + title: string; + content: string; + imagePath: string; + creator: string; +} diff --git a/src/app/posts/posts.module.ts b/src/app/posts/posts.module.ts new file mode 100644 index 0000000..1aebd12 --- /dev/null +++ b/src/app/posts/posts.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from "@angular/core"; +import { ReactiveFormsModule } from "@angular/forms"; +import { CommonModule } from "@angular/common"; +import { RouterModule } from "@angular/router"; + +import { PostCreateComponent } from "./post-create/post-create.component"; +import { PostListComponent } from "./post-list/post-list.component"; +import { AngularMaterialModule } from "../angular-material.module"; + +@NgModule({ + declarations: [PostCreateComponent, PostListComponent], + imports: [ + CommonModule, + ReactiveFormsModule, + AngularMaterialModule, + RouterModule + ] +}) +export class PostsModule {} diff --git a/src/app/posts/posts.service.ts b/src/app/posts/posts.service.ts new file mode 100644 index 0000000..11f9f22 --- /dev/null +++ b/src/app/posts/posts.service.ts @@ -0,0 +1,106 @@ +import { Injectable } from "@angular/core"; +import { HttpClient } from "@angular/common/http"; +import { Subject } from "rxjs"; +import { map } from "rxjs/operators"; +import { Router } from "@angular/router"; + +import { environment } from "../../environments/environment"; +import { Post } from "./post.model"; + +const BACKEND_URL = environment.apiUrl + "/posts/"; + +@Injectable({ providedIn: "root" }) +export class PostsService { + private posts: Post[] = []; + private postsUpdated = new Subject<{ posts: Post[]; postCount: number }>(); + + constructor(private http: HttpClient, private router: Router) {} + + getPosts(postsPerPage: number, currentPage: number) { + const queryParams = `?pagesize=${postsPerPage}&page=${currentPage}`; + this.http + .get<{ message: string; posts: any; maxPosts: number }>( + BACKEND_URL + queryParams + ) + .pipe( + map(postData => { + return { + posts: postData.posts.map(post => { + return { + title: post.title, + content: post.content, + id: post._id, + imagePath: post.imagePath, + creator: post.creator + }; + }), + maxPosts: postData.maxPosts + }; + }) + ) + .subscribe(transformedPostData => { + this.posts = transformedPostData.posts; + this.postsUpdated.next({ + posts: [...this.posts], + postCount: transformedPostData.maxPosts + }); + }); + } + + getPostUpdateListener() { + return this.postsUpdated.asObservable(); + } + + getPost(id: string) { + return this.http.get<{ + _id: string; + title: string; + content: string; + imagePath: string; + creator: string; + }>(BACKEND_URL + id); + } + + addPost(title: string, content: string, image: File) { + const postData = new FormData(); + postData.append("title", title); + postData.append("content", content); + postData.append("image", image, title); + this.http + .post<{ message: string; post: Post }>( + BACKEND_URL, + postData + ) + .subscribe(responseData => { + this.router.navigate(["/"]); + }); + } + + updatePost(id: string, title: string, content: string, image: File | string) { + let postData: Post | FormData; + if (typeof image === "object") { + postData = new FormData(); + postData.append("id", id); + postData.append("title", title); + postData.append("content", content); + postData.append("image", image, title); + } else { + postData = { + id: id, + title: title, + content: content, + imagePath: image, + creator: null + }; + } + this.http + .put(BACKEND_URL + id, postData) + .subscribe(response => { + this.router.navigate(["/"]); + }); + } + + deletePost(postId: string) { + return this.http.delete(BACKEND_URL + postId); + } +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/browserslist b/src/browserslist new file mode 100644 index 0000000..8e09ab4 --- /dev/null +++ b/src/browserslist @@ -0,0 +1,9 @@ +# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries +# For IE 9-11 support, please uncomment the last line of the file and adjust as needed +> 0.5% +last 2 versions +Firefox ESR +not dead +# IE 9-11 \ No newline at end of file diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..4b8bf04 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,4 @@ +export const environment = { + production: true, + apiUrl: "http://nodeangular-env.kjipxmqrju.us-east-2.elasticbeanstalk.com/api" +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..79d35fd --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + apiUrl: "http://localhost:3000/api" +}; + +/* + * In development mode, to ignore zone related error stack frames such as + * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can + * import the following file, but please comment it out in production mode + * because it will have performance impact when throw error + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- + + + + + + MeanCourse + + + + + + + + + diff --git a/src/karma.conf.js b/src/karma.conf.js new file mode 100644 index 0000000..b6e0042 --- /dev/null +++ b/src/karma.conf.js @@ -0,0 +1,31 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../coverage'), + reports: ['html', 'lcovonly'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..91ec6da --- /dev/null +++ b/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 0000000..d310405 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,80 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/weak-map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following for the Reflect API. */ +// import 'core-js/es6/reflect'; + + +/** Evergreen browsers require these. **/ +// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove. +import 'core-js/es7/reflect'; + + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + */ + + // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + + /* + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + */ +// (window as any).__Zone_enable_cross_context_check = true; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..d53753a --- /dev/null +++ b/src/styles.css @@ -0,0 +1,3 @@ +/* You can add global styles to this file, and also import other style files */ + +body { margin: 0; } diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 0000000..1631789 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,20 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json new file mode 100644 index 0000000..722c370 --- /dev/null +++ b/src/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "types": [] + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 0000000..8f7cede --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,19 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts", + "polyfills.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/tslint.json b/src/tslint.json new file mode 100644 index 0000000..52e2c1a --- /dev/null +++ b/src/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ef44e28 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" + ] + } +} diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..3ea984c --- /dev/null +++ b/tslint.json @@ -0,0 +1,130 @@ +{ + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "deprecation": { + "severity": "warn" + }, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "no-output-on-prefix": true, + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true + } +}