├── .gitignore ├── client ├── .gitignore ├── README.md ├── config │ ├── webpack.common.ts │ ├── webpack.dev.ts │ └── webpack.prod.ts ├── package.json ├── src │ ├── app │ │ ├── App.scss │ │ ├── App.tsx │ │ ├── components │ │ │ ├── Hello │ │ │ │ ├── Hello.scss │ │ │ │ ├── Hello.tsx │ │ │ │ └── index.ts │ │ │ ├── Login │ │ │ │ ├── Login.scss │ │ │ │ ├── Login.tsx │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── pages │ │ │ ├── Home │ │ │ │ ├── Home.scss │ │ │ │ ├── Home.tsx │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ └── redux │ │ │ └── index.ts │ ├── index.html │ ├── index.tsx │ ├── scss │ │ └── _global.scss │ └── styles.scss ├── tsconfig.json ├── tslint.json └── yarn.lock ├── common ├── config │ ├── app.config.ts │ └── index.ts ├── entities │ ├── index.ts │ └── user │ │ ├── index.ts │ │ └── user.interface.ts ├── interfaces │ ├── entity.interface.ts │ └── index.ts └── models │ ├── endpoint.model.ts │ └── index.ts ├── package.json ├── server ├── .gitignore ├── README.md ├── index.js ├── nodemon.json ├── package-lock.json ├── package.json ├── src │ ├── filters │ │ ├── http-exception.filter.ts │ │ └── index.ts │ ├── interceptors │ │ ├── index.ts │ │ └── logger.interceptor.ts │ ├── modules │ │ ├── app.module.ts │ │ ├── auth │ │ │ ├── auth.controller.ts │ │ │ ├── auth.module.ts │ │ │ ├── auth.routes.ts │ │ │ ├── auth.service.ts │ │ │ └── passport │ │ │ │ └── jwt.strategy.ts │ │ ├── database │ │ │ ├── database.module.ts │ │ │ └── database.providers.ts │ │ └── user │ │ │ ├── user.controller.ts │ │ │ ├── user.module.ts │ │ │ ├── user.providers.ts │ │ │ ├── user.schema.ts │ │ │ └── user.service.ts │ └── server.ts ├── tsconfig.json ├── tslint.json └── yarn.lock └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | 3 | # IDE 4 | /.idea 5 | /.awcache 6 | /.vscode 7 | 8 | # misc 9 | npm-debug.log 10 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /dist 3 | -------------------------------------------------------------------------------- /client/README.md: -------------------------------------------------------------------------------- 1 | # react-starter-kit-ts 2 | -------------------------------------------------------------------------------- /client/config/webpack.common.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:object-literal-sort-keys */ 2 | /* tslint:disable:no-implicit-dependencies */ 3 | 4 | import * as CleanWebpackPlugin from 'clean-webpack-plugin'; 5 | import * as CopyWebpackPlugin from 'copy-webpack-plugin'; 6 | import * as HtmlWebpackPlugin from 'html-webpack-plugin'; 7 | import * as path from 'path'; 8 | import * as webpack from 'webpack'; 9 | 10 | import { AppConfig } from '../../common/config'; 11 | 12 | module.exports = { 13 | entry: [ 14 | 'react-hot-loader/patch', 15 | './src/index.tsx', 16 | ], 17 | 18 | output: { 19 | filename: 'bundle.js', 20 | path: path.resolve('dist'), 21 | }, 22 | 23 | // Enable sourcemaps for debugging webpack's output. 24 | devtool: 'source-map', 25 | 26 | resolve: { 27 | // Add '.ts' and '.tsx' as resolvable extensions. 28 | extensions: ['.ts', '.tsx', '.js', '.json'], 29 | }, 30 | 31 | module: { 32 | rules: [ 33 | // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'. 34 | { 35 | test: /\.tsx?$/, 36 | loaders: [ 37 | 'react-hot-loader/webpack', 38 | 'awesome-typescript-loader', 39 | ], 40 | exclude: path.resolve('node_modules'), 41 | include: path.resolve('src'), 42 | }, 43 | 44 | // All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'. 45 | { enforce: 'pre', test: /\.js$/, loader: 'source-map-loader' }, 46 | /** 47 | * File loader for supporting images, for example, in CSS files. 48 | */ 49 | { 50 | test: /\.(jpg|png|gif)$/, 51 | use: 'file-loader', 52 | }, 53 | 54 | /* File loader for supporting fonts, for example, in CSS files. 55 | */ 56 | { 57 | test: /\.(eot|woff2?|svg|ttf)([\?]?.*)$/, 58 | use: 'file-loader', 59 | }, 60 | ], 61 | }, 62 | 63 | plugins: [ 64 | new CleanWebpackPlugin([path.resolve('dist')]), 65 | new HtmlWebpackPlugin({ 66 | filename: 'index.html', 67 | inject: 'body', 68 | template: './src/index.html', 69 | chunksSortMode: 'dependency', 70 | title: AppConfig.APP_NAME, 71 | }), 72 | /** 73 | * Plugin: CopyWebpackPlugin 74 | * Description: Copy files and directories in webpack. 75 | * 76 | * Copies project static assets. 77 | * 78 | * See: https://www.npmjs.com/package/copy-webpack-plugin 79 | */ 80 | new CopyWebpackPlugin([{ from: path.resolve('src/assets'), to: path.resolve('dist/assets') }]), 81 | ], 82 | }; 83 | -------------------------------------------------------------------------------- /client/config/webpack.dev.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:object-literal-sort-keys */ 2 | /* tslint:disable:no-implicit-dependencies */ 3 | 4 | import * as ExtractTextPlugin from 'extract-text-webpack-plugin'; 5 | import * as path from 'path'; 6 | import * as webpack from 'webpack'; 7 | import * as merge from 'webpack-merge'; 8 | import * as common from './webpack.common'; 9 | 10 | import { AppConfig } from '../../common/config'; 11 | 12 | module.exports = merge(common, { 13 | devtool: 'eval', 14 | 15 | devServer: { 16 | hot: true, 17 | port: AppConfig.CLIENT_PORT, 18 | }, 19 | 20 | module: { 21 | rules: [ 22 | { 23 | test: /\.scss?$/, 24 | loader: ExtractTextPlugin.extract({ 25 | fallback: 'style-loader', 26 | use: ['css-loader', { 27 | loader: 'sass-loader', 28 | options: { 29 | includePaths: ['src/scss'], 30 | }, 31 | }], 32 | }), 33 | }, 34 | ], 35 | }, 36 | plugins: [ 37 | new ExtractTextPlugin({ 38 | allChunks: true, 39 | disable: true, 40 | filename: 'style.css', 41 | }), 42 | new webpack.HotModuleReplacementPlugin(), 43 | new webpack.NamedModulesPlugin(), 44 | ], 45 | }); 46 | -------------------------------------------------------------------------------- /client/config/webpack.prod.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:object-literal-sort-keys */ 2 | /* tslint:disable:no-implicit-dependencies */ 3 | 4 | import * as ExtractTextPlugin from 'extract-text-webpack-plugin'; 5 | import * as path from 'path'; 6 | import * as UglifyJsPlugin from 'uglifyjs-webpack-plugin'; 7 | import * as webpack from 'webpack'; 8 | import * as merge from 'webpack-merge'; 9 | 10 | import * as common from './webpack.common'; 11 | 12 | module.exports = merge(common, { 13 | module: { 14 | rules: [ 15 | { 16 | test: /\.scss?$/, 17 | loader: ExtractTextPlugin.extract({ 18 | fallback: 'style-loader', 19 | use: [ 20 | { 21 | loader: 'css-loader', 22 | options: { minimize: true }, 23 | }, 24 | 'sass-loader', 25 | ], 26 | }), 27 | }, 28 | ], 29 | }, 30 | plugins: [ 31 | new UglifyJsPlugin(), 32 | new ExtractTextPlugin('style.css'), 33 | new webpack.DefinePlugin({ 34 | 'process.env': 'production', 35 | }), 36 | ], 37 | }); 38 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-starter-kit-ts", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "webpack-dev-server --config ./config/webpack.dev.ts", 9 | "dist": "webpack --define process.env.NODE_ENV='\"production\"' --config ./config/webpack.prod.ts" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/romainbellande/react-starter-kit-ts.git" 14 | }, 15 | "author": "", 16 | "license": "ISC", 17 | "bugs": { 18 | "url": "https://github.com/romainbellande/react-starter-kit-ts/issues" 19 | }, 20 | "homepage": "https://github.com/romainbellande/react-starter-kit-ts#readme", 21 | "dependencies": { 22 | "@types/history": "^4.6.2", 23 | "@types/react": "^16.0.29", 24 | "@types/react-dom": "^16.0.3", 25 | "@types/react-hot-loader": "^3.0.5", 26 | "@types/react-redux": "^5.0.14", 27 | "@types/react-router": "^4.0.20", 28 | "@types/react-router-redux": "^5.0.10", 29 | "bootstrap": "4.0.0-beta.2", 30 | "history": "^4.7.2", 31 | "react": "^16.2.0", 32 | "react-dom": "^16.2.0", 33 | "react-hot-loader": "^3.1.3", 34 | "react-redux": "^5.0.6", 35 | "react-router": "^4.2.0", 36 | "react-router-redux": "^5.0.0-alpha.9", 37 | "redux": "^3.7.2", 38 | "redux-observable": "^0.17.0", 39 | "rxjs": "^5.5.5" 40 | }, 41 | "devDependencies": { 42 | "@types/copy-webpack-plugin": "^4.0.1", 43 | "@types/extract-text-webpack-plugin": "^3.0.0", 44 | "@types/node": "^8.5.2", 45 | "@types/webpack": "^3.8.1", 46 | "@types/webpack-env": "^1.13.3", 47 | "awesome-typescript-loader": "^3.4.1", 48 | "babel-polyfill": "^6.26.0", 49 | "clean-webpack-plugin": "^0.1.17", 50 | "copy-webpack-plugin": "^4.3.1", 51 | "css-loader": "^0.28.7", 52 | "extract-text-webpack-plugin": "^3.0.2", 53 | "file-loader": "^1.1.6", 54 | "html-webpack-plugin": "^2.30.1", 55 | "node-sass": "^4.7.2", 56 | "sass-loader": "^6.0.6", 57 | "source-map-loader": "^0.2.3", 58 | "style-loader": "^0.19.1", 59 | "ts-node": "^4.1.0", 60 | "tslint": "^5.8.0", 61 | "tslint-react": "^3.2.0", 62 | "typescript": "^2.6.2", 63 | "uglifyjs-webpack-plugin": "^1.1.3", 64 | "webpack": "^3.10.0", 65 | "webpack-dev-server": "^2.9.7", 66 | "webpack-merge": "^4.1.1" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /client/src/app/App.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romainbellande/react-nest-ts/f349062ae78e57bbc9710f2a9ae04f28b9f9ae03/client/src/app/App.scss -------------------------------------------------------------------------------- /client/src/app/App.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import { createBrowserHistory } from 'history'; 4 | import { Provider } from 'react-redux'; 5 | import { Route } from 'react-router'; 6 | import { 7 | ConnectedRouter, 8 | routerMiddleware } from 'react-router-redux'; 9 | import { Store } from 'redux'; 10 | 11 | import './App.scss'; 12 | import { Home } from './pages'; 13 | import { configureStore } from './redux'; 14 | 15 | const history = createBrowserHistory(); 16 | const middleware = routerMiddleware(history); 17 | 18 | export class App extends React.Component<{}, {}> { 19 | public render() { 20 | return ( 21 | 22 | 23 | 24 | 25 | 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /client/src/app/components/Hello/Hello.scss: -------------------------------------------------------------------------------- 1 | .Hello { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /client/src/app/components/Hello/Hello.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import './Hello.scss'; 3 | 4 | export class Hello extends React.Component<{}, {}> { 5 | public render() { 6 | return ( 7 |
8 | Hello you 9 |
10 | ); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /client/src/app/components/Hello/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Hello'; 2 | -------------------------------------------------------------------------------- /client/src/app/components/Login/Login.scss: -------------------------------------------------------------------------------- 1 | .Login { 2 | width: 100%; 3 | height: 100%; 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | 8 | &_form { 9 | box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2); 10 | width: 300px; 11 | padding: 15px; 12 | 13 | &_btn { 14 | width: 100%; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /client/src/app/components/Login/Login.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import './Login.scss'; 3 | 4 | 5 | export class Login extends React.Component<{}, {}> { 6 | public render() { 7 | return ( 8 |
9 |
10 |
11 | 12 | 13 |
14 |
15 | 16 | 17 |
18 | 19 |
20 |
21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /client/src/app/components/Login/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Login'; 2 | -------------------------------------------------------------------------------- /client/src/app/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Hello'; 2 | export * from './Login'; 3 | -------------------------------------------------------------------------------- /client/src/app/pages/Home/Home.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romainbellande/react-nest-ts/f349062ae78e57bbc9710f2a9ae04f28b9f9ae03/client/src/app/pages/Home/Home.scss -------------------------------------------------------------------------------- /client/src/app/pages/Home/Home.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import './Home.scss'; 3 | 4 | import { Login } from '../../components'; 5 | 6 | export class Home extends React.Component<{}, {}> { 7 | public render() { 8 | return ( 9 |
10 | 11 |
12 | ); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /client/src/app/pages/Home/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Home'; 2 | -------------------------------------------------------------------------------- /client/src/app/pages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Home'; 2 | -------------------------------------------------------------------------------- /client/src/app/redux/index.ts: -------------------------------------------------------------------------------- 1 | import { 2 | push, 3 | routerReducer } from 'react-router-redux'; 4 | import { applyMiddleware, combineReducers, createStore, Middleware } from 'redux'; 5 | 6 | export const configureStore = (middleware: Middleware) => { 7 | const store = createStore( 8 | combineReducers({ 9 | router: routerReducer, 10 | }), 11 | applyMiddleware(middleware), 12 | ); 13 | 14 | if (module.hot) { 15 | // Enable Webpack hot module replacement for reducers 16 | module.hot.accept('../App', () => { 17 | const nextRootReducer = require('../App'); 18 | store.replaceReducer(nextRootReducer); 19 | }); 20 | } 21 | 22 | return store; 23 | }; 24 | -------------------------------------------------------------------------------- /client/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello React! 6 | 7 | 8 |
9 | 10 | 11 | -------------------------------------------------------------------------------- /client/src/index.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import * as ReactDOM from 'react-dom'; 3 | import { AppContainer } from 'react-hot-loader'; 4 | 5 | import './styles.scss'; 6 | 7 | import { App } from './app/App'; 8 | 9 | const rootEl = document.getElementById('root'); 10 | 11 | const renderApp = () => { 12 | ReactDOM.render( 13 | 14 | 15 | , 16 | rootEl, 17 | ); 18 | }; 19 | 20 | // First initialization 21 | renderApp(); 22 | 23 | // Webpack Hot Module Replacement API 24 | if (module.hot) { 25 | module.hot.accept('./app/App', () => { 26 | const NextApp = require<{default: typeof App}>('./app/App').default; 27 | setImmediate(() => { 28 | ReactDOM.unmountComponentAtNode(rootEl); 29 | renderApp(); 30 | }); 31 | }); 32 | } 33 | -------------------------------------------------------------------------------- /client/src/scss/_global.scss: -------------------------------------------------------------------------------- 1 | html, body, #root, #root > * { 2 | width: 100%; 3 | height: 100%; 4 | background-color: #f5f5f5; 5 | } 6 | -------------------------------------------------------------------------------- /client/src/styles.scss: -------------------------------------------------------------------------------- 1 | @import '~bootstrap/scss/bootstrap.scss'; 2 | 3 | @import 'global'; 4 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "sourceMap": true, 5 | "noImplicitAny": true, 6 | "module": "commonjs", 7 | "target": "es5", 8 | "jsx": "react", 9 | "types": [ 10 | "webpack-env", 11 | "node" 12 | ] 13 | }, 14 | "include": [ 15 | "./src/**/*" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /client/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["tslint:latest", "tslint-react"], 3 | "rules": { 4 | "quotemark": [true, "single", "jsx-double"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /common/config/app.config.ts: -------------------------------------------------------------------------------- 1 | export class AppConfig { 2 | static readonly APP_NAME = 'user-manager'; 3 | static readonly PORT = 3000; 4 | 5 | static readonly API_VERSION = 1; 6 | static readonly API_URL = `/api/v${ AppConfig.API_VERSION }`; 7 | 8 | static readonly CLIENT_PORT = 8080; 9 | 10 | static readonly MONGO_DB_NAME = 'user-manager'; 11 | static readonly MONGO_PORT = 27017; 12 | static readonly MONGO_URL = `mongodb://localhost:${ AppConfig.MONGO_PORT }/${ AppConfig.MONGO_DB_NAME }`; 13 | } 14 | -------------------------------------------------------------------------------- /common/config/index.ts: -------------------------------------------------------------------------------- 1 | export * from './app.config'; 2 | -------------------------------------------------------------------------------- /common/entities/index.ts: -------------------------------------------------------------------------------- 1 | export * from './user'; 2 | -------------------------------------------------------------------------------- /common/entities/user/index.ts: -------------------------------------------------------------------------------- 1 | import { Endpoint } from '../../models'; 2 | 3 | export * from './user.interface'; 4 | export const UserEndpoint = new Endpoint('user'); 5 | -------------------------------------------------------------------------------- /common/entities/user/user.interface.ts: -------------------------------------------------------------------------------- 1 | import { Entity } from '../../interfaces'; 2 | 3 | export interface User extends Entity { 4 | readonly username: string; 5 | readonly email: string; 6 | readonly password?: string; 7 | } 8 | -------------------------------------------------------------------------------- /common/interfaces/entity.interface.ts: -------------------------------------------------------------------------------- 1 | import { Document } from 'mongoose'; 2 | 3 | export interface Entity extends Document { 4 | readonly _id: string; 5 | readonly __v: number; 6 | readonly createdAt: Date; 7 | readonly updatedAt: Date; 8 | } 9 | -------------------------------------------------------------------------------- /common/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | export * from './entity.interface'; 2 | -------------------------------------------------------------------------------- /common/models/endpoint.model.ts: -------------------------------------------------------------------------------- 1 | export class Endpoint { 2 | public readonly get: string 3 | public readonly getOne: string; 4 | public readonly param: string; 5 | public readonly id: string; 6 | 7 | constructor(singular: string, plural?: string) { 8 | this.get = plural || singular + 's'; 9 | this.id = `${ singular }Id`; 10 | this.param = `:${ this.id }`; 11 | this.getOne = `${ this.get }/${ this.param }` 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /common/models/index.ts: -------------------------------------------------------------------------------- 1 | export * from './endpoint.model'; 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vapox", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "dependencies": { 7 | "mongoose": "^4.12.2" 8 | }, 9 | "devDependencies": { 10 | "@types/mongoose": "^4.7.23" 11 | }, 12 | "scripts": { 13 | "test": "echo \"Error: no test specified\" && exit 1" 14 | }, 15 | "author": "", 16 | "license": "ISC" 17 | } 18 | -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | /node_modules 3 | 4 | # IDE 5 | /.idea 6 | /.awcache 7 | /.vscode 8 | 9 | # misc 10 | npm-debug.log 11 | 12 | # example 13 | /quick-start 14 | 15 | # tests 16 | /test 17 | /coverage 18 | /.nyc_output 19 | 20 | # dist 21 | /dist -------------------------------------------------------------------------------- /server/README.md: -------------------------------------------------------------------------------- 1 |

2 | Nest Logo 3 |

4 | 5 | [travis-image]: https://api.travis-ci.org/nestjs/nest.svg?branch=master 6 | [travis-url]: https://travis-ci.org/nestjs/nest 7 | [linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux 8 | [linux-url]: https://travis-ci.org/nestjs/nest 9 | 10 |

A progressive Node.js framework for building efficient and scalable web applications.

11 |

12 | NPM Version 13 | Package License 14 | NPM Downloads 15 | Travis 16 | Linux 17 | Coverage 18 | Gitter 19 | Backers on Open Collective 20 | Sponsors on Open Collective 21 |

22 | 24 | 25 | ## Description 26 | 27 | [Nest](https://github.com/nestjs/nest) framework **TypeScript** starter repository. 28 | 29 | ## Installation 30 | 31 | ```bash 32 | $ npm install 33 | ``` 34 | 35 | ## Start 36 | 37 | ``` 38 | $ npm run start 39 | ``` 40 | 41 | ## People 42 | 43 | - Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) 44 | - Website - [https://nestjs.com](https://nestjs.com/) 45 | 46 | ## Backers 47 | 48 | I am on a mission to provide an architecture to create truly flexible, scalable and loosely coupled systems using the Node.js platform. It takes a lot of time, so if you want to support me, please [become a backer / sponsor]((https://opencollective.com/nest#backer)). I appreciate your help. Thanks! :heart_eyes: 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /server/index.js: -------------------------------------------------------------------------------- 1 | require('ts-node/register'); 2 | require('./src/server'); 3 | -------------------------------------------------------------------------------- /server/nodemon.json: -------------------------------------------------------------------------------- 1 | { 2 | "watch": ["src"], 3 | "ext": "ts", 4 | "ignore": ["src/**/*.spec.ts"], 5 | "exec": "node ./index" 6 | } 7 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nest-typescript-starter", 3 | "version": "1.0.0", 4 | "description": "Nest TypeScript starter repository", 5 | "license": "MIT", 6 | "scripts": { 7 | "start": "nodemon", 8 | "prestart:prod": "tsc", 9 | "start:prod": "node dist/server.js" 10 | }, 11 | "dependencies": { 12 | "@nestjs/common": "^4.0.0", 13 | "@nestjs/core": "^4.0.0", 14 | "@nestjs/microservices": "^4.0.0", 15 | "@nestjs/testing": "^4.0.0", 16 | "@nestjs/websockets": "^4.0.0", 17 | "body-parser": "^1.18.2", 18 | "jsonwebtoken": "^8.1.0", 19 | "passport": "^0.4.0", 20 | "passport-jwt": "^3.0.0", 21 | "redis": "^2.7.1", 22 | "reflect-metadata": "^0.1.10", 23 | "rxjs": "^5.4.0", 24 | "typescript": "^2.5.2" 25 | }, 26 | "devDependencies": { 27 | "@types/body-parser": "^1.16.5", 28 | "@types/chalk": "^0.4.31", 29 | "@types/node": "^8.0.28", 30 | "chalk": "^2.1.0", 31 | "nodemon": "^1.12.1", 32 | "ts-node": "^3.3.0" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /server/src/filters/http-exception.filter.ts: -------------------------------------------------------------------------------- 1 | import { ExceptionFilter, Catch } from '@nestjs/common'; 2 | import { HttpException } from '@nestjs/core'; 3 | 4 | @Catch(HttpException) 5 | export class HttpExceptionFilter implements ExceptionFilter { 6 | catch(exception: HttpException, response) { 7 | const status = exception.getStatus(); 8 | 9 | response.status(status).json({ 10 | statusCode: status, 11 | message: `HTTP EXCEPTION`, 12 | }); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /server/src/filters/index.ts: -------------------------------------------------------------------------------- 1 | export * from './http-exception.filter'; 2 | -------------------------------------------------------------------------------- /server/src/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | export * from './logger.interceptor'; 2 | -------------------------------------------------------------------------------- /server/src/interceptors/logger.interceptor.ts: -------------------------------------------------------------------------------- 1 | import { Interceptor, NestInterceptor, ExecutionContext } from '@nestjs/common'; 2 | import chalk from 'chalk'; 3 | 4 | import { Observable } from 'rxjs/Observable'; 5 | import 'rxjs/add/operator/do'; 6 | 7 | @Interceptor() 8 | export class LoggingInterceptor implements NestInterceptor { 9 | intercept(req, context: ExecutionContext, stream$: Observable): Observable { 10 | const gid = this.gid(); 11 | console.info(`${ this.balise(req.method) + this.balise('START') } ${ chalk.cyan(req.originalUrl) } ${ gid }`); 12 | const now = Date.now(); 13 | 14 | return stream$.do( 15 | () => console.info(`${ this.balise(req.method) + this.balise('END') } ${ chalk.cyan(req.originalUrl) } ${ gid } ${chalk.green((Date.now() - now).toString() + 'ms')}`), 16 | ); 17 | } 18 | 19 | balise(val): string { 20 | return chalk.green('[') + chalk.blue(val) + chalk.green(']'); 21 | } 22 | 23 | gid(): string { 24 | let gid = ''; 25 | for (let i = 0; i < 8; i++) { 26 | gid += this.s4(); 27 | } 28 | return gid; 29 | } 30 | 31 | s4(): string { 32 | return Math.floor((1 + Math.random()) * 0x10000) 33 | .toString(16) 34 | .substring(1); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /server/src/modules/app.module.ts: -------------------------------------------------------------------------------- 1 | import { Module, MiddlewaresConsumer, RequestMethod } from '@nestjs/common'; 2 | 3 | import { UserModule } from './user/user.module'; 4 | import { AuthModule } from './auth/auth.module'; 5 | 6 | @Module({ 7 | modules: [ 8 | UserModule, 9 | AuthModule, 10 | ], 11 | }) 12 | export class ApplicationModule {} 13 | -------------------------------------------------------------------------------- /server/src/modules/auth/auth.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Post, HttpStatus, HttpCode, Get, Body } from '@nestjs/common'; 2 | import { AuthService } from './auth.service'; 3 | import { User } from '../../../../common/entities/user'; 4 | 5 | @Controller('auth') 6 | export class AuthController { 7 | constructor(private readonly authService: AuthService) {} 8 | 9 | @Post('token') 10 | @HttpCode(HttpStatus.OK) 11 | public async getToken(@Body() user: User) { 12 | return await this.authService.createToken(user); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /server/src/modules/auth/auth.module.ts: -------------------------------------------------------------------------------- 1 | import * as passport from 'passport'; 2 | import { 3 | Module, 4 | NestModule, 5 | MiddlewaresConsumer, 6 | RequestMethod, 7 | } from '@nestjs/common'; 8 | 9 | import { AuthService } from './auth.service'; 10 | import { JwtStrategy } from './passport/jwt.strategy'; 11 | import { AuthController } from './auth.controller'; 12 | import { userProviders } from '../user/user.providers'; 13 | import { DatabaseModule } from '../database/database.module'; 14 | import { authRoutes } from './auth.routes'; 15 | 16 | @Module({ 17 | modules: [ 18 | DatabaseModule, 19 | ], 20 | components: [ 21 | ...userProviders, 22 | AuthService, 23 | JwtStrategy, 24 | ], 25 | controllers: [AuthController], 26 | }) 27 | export class AuthModule implements NestModule { 28 | public configure(consumer: MiddlewaresConsumer) { 29 | consumer 30 | .apply(passport.authenticate('jwt', { session: false })) 31 | .forRoutes(...authRoutes); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /server/src/modules/auth/auth.routes.ts: -------------------------------------------------------------------------------- 1 | import { RequestMethod } from '@nestjs/common'; 2 | 3 | import { UserEndpoint } from '../../../../common/entities'; 4 | 5 | export const authRoutes = [ 6 | { path: `/${ UserEndpoint.get }`, method: RequestMethod.GET }, 7 | { path: `/${ UserEndpoint.get }`, method: RequestMethod.PUT }, 8 | { path: `/${ UserEndpoint.get }`, method: RequestMethod.PATCH }, 9 | { path: `/${ UserEndpoint.get }`, method: RequestMethod.DELETE }, 10 | { path: `/${ UserEndpoint.get }/me`, method: RequestMethod.ALL }, 11 | ]; 12 | -------------------------------------------------------------------------------- /server/src/modules/auth/auth.service.ts: -------------------------------------------------------------------------------- 1 | import { Model } from 'mongoose'; 2 | import { Component, Inject, Body, Param } from '@nestjs/common'; 3 | import * as jwt from 'jsonwebtoken'; 4 | 5 | import { User, UserEndpoint } from '../../../../common/entities/user'; 6 | 7 | @Component() 8 | export class AuthService { 9 | constructor( 10 | @Inject('UserModelToken') private readonly userModel: Model) {} 11 | 12 | async createToken(user: User) { 13 | return await this.userModel.findOne(user) 14 | .exec() 15 | .then((userDoc) => { 16 | const expiresIn = '360d', secretOrKey = 'Iet4weedEif0juer'; 17 | const token = jwt.sign({id: userDoc.id}, secretOrKey, { expiresIn }); 18 | return { 19 | expiresIn, 20 | token, 21 | }; 22 | }) 23 | .catch(console.error); 24 | } 25 | 26 | validateUser(userId: { id: string }): Promise { 27 | return this.userModel.findOne(userId) 28 | .exec() 29 | .then(() => true) 30 | .catch(() => false); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /server/src/modules/auth/passport/jwt.strategy.ts: -------------------------------------------------------------------------------- 1 | import * as passport from 'passport'; 2 | import { ExtractJwt, Strategy } from 'passport-jwt'; 3 | import { Component, Inject } from '@nestjs/common'; 4 | import { AuthService } from '../auth.service'; 5 | 6 | @Component() 7 | export class JwtStrategy extends Strategy { 8 | constructor(private readonly authService: AuthService) { 9 | super( 10 | { 11 | jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(), 12 | passReqToCallback: true, 13 | secretOrKey: 'Iet4weedEif0juer', 14 | }, 15 | async (req, payload, next) => await this.verify(req, payload, next), 16 | ); 17 | passport.use(this); 18 | } 19 | 20 | public async verify(req, payload, done) { 21 | try { 22 | const isValid = await this.authService.validateUser(payload); 23 | if (!isValid) { 24 | done('Unauthorized', false); 25 | } else { 26 | console.info('User connected: ' + payload.id); 27 | done(null, payload); 28 | } 29 | } catch (error) { 30 | console.error('error', error); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /server/src/modules/database/database.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | import { databaseProviders } from './database.providers'; 3 | 4 | @Module({ 5 | components: [...databaseProviders], 6 | exports: [...databaseProviders], 7 | }) 8 | export class DatabaseModule {} 9 | -------------------------------------------------------------------------------- /server/src/modules/database/database.providers.ts: -------------------------------------------------------------------------------- 1 | import * as mongoose from 'mongoose'; 2 | import chalk from 'chalk'; 3 | 4 | import { AppConfig } from '../../../../common/config'; 5 | 6 | export const databaseProviders = [ 7 | { 8 | provide: 'DbConnectionToken', 9 | useFactory: async () => { 10 | (mongoose as any).Promise = global.Promise; 11 | let db; 12 | try { 13 | db = await mongoose.connect(AppConfig.MONGO_URL, { 14 | useMongoClient: true, 15 | }); 16 | } catch (error) { 17 | console.error('Connection error: ' + chalk.red(error)); 18 | } 19 | console.info( 20 | chalk.cyan('Database') + 21 | chalk.green(' [') + 22 | chalk.blue(`${ AppConfig.MONGO_DB_NAME }`) + 23 | chalk.green('] connected on port'), 24 | chalk.green('[') + 25 | chalk.blue(AppConfig.MONGO_PORT.toString()) + 26 | chalk.green('] ') + 27 | AppConfig.MONGO_URL, 28 | ); 29 | 30 | return await db; 31 | }, 32 | }, 33 | ]; 34 | -------------------------------------------------------------------------------- /server/src/modules/user/user.controller.ts: -------------------------------------------------------------------------------- 1 | import { Controller, Get, Post, Body, Param, Req } from '@nestjs/common'; 2 | 3 | import { AppConfig } from '../../../../common/config'; 4 | import { User, UserEndpoint } from '../../../../common/entities/user'; 5 | import { UserService } from './user.service'; 6 | 7 | const endpoint = UserEndpoint.get; 8 | 9 | @Controller(endpoint) 10 | export class UserController { 11 | constructor(private readonly userService: UserService) { 12 | console.info(endpoint); 13 | } 14 | 15 | @Post() 16 | async create(@Body() user: User): Promise { 17 | return this.userService.create(user); 18 | } 19 | 20 | @Get('me') 21 | async find(@Req() req): Promise { 22 | return this.userService.findById(req.user.id); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server/src/modules/user/user.module.ts: -------------------------------------------------------------------------------- 1 | import { Module } from '@nestjs/common'; 2 | 3 | import { DatabaseModule } from '../database/database.module'; 4 | 5 | import { UserController } from './user.controller'; 6 | import { UserService } from './user.service'; 7 | import { userProviders } from './user.providers'; 8 | 9 | @Module({ 10 | modules: [ 11 | DatabaseModule, 12 | ], 13 | controllers: [UserController], 14 | components: [ 15 | UserService, 16 | ...userProviders, 17 | ], 18 | }) 19 | export class UserModule {} 20 | -------------------------------------------------------------------------------- /server/src/modules/user/user.providers.ts: -------------------------------------------------------------------------------- 1 | import { Connection } from 'mongoose'; 2 | import { UserSchema } from './user.schema'; 3 | 4 | export const userProviders = [ 5 | { 6 | provide: 'UserModelToken', 7 | useFactory: (connection: Connection) => connection.model('User', UserSchema), 8 | inject: ['DbConnectionToken'], 9 | }, 10 | ]; 11 | -------------------------------------------------------------------------------- /server/src/modules/user/user.schema.ts: -------------------------------------------------------------------------------- 1 | import * as mongoose from 'mongoose'; 2 | 3 | export const UserSchema = new mongoose.Schema({ 4 | username: { 5 | type: String, 6 | required: true, 7 | }, 8 | password: { 9 | type: String, 10 | required: true, 11 | }, 12 | email: { 13 | type: String, 14 | required: true, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /server/src/modules/user/user.service.ts: -------------------------------------------------------------------------------- 1 | import { Model } from 'mongoose'; 2 | import { Component, Inject, Body, Param } from '@nestjs/common'; 3 | 4 | import { User, UserEndpoint } from '../../../../common/entities'; 5 | 6 | @Component() 7 | export class UserService { 8 | constructor(@Inject('UserModelToken') private readonly userModel: Model) {} 9 | 10 | async create(user: User): Promise { 11 | const userInstance = new this.userModel(user); 12 | return await userInstance.save(); 13 | } 14 | 15 | async findById(userId: string): Promise { 16 | return await this.userModel.findById(userId, 'username email').exec(); 17 | } 18 | 19 | async findAll(): Promise { 20 | return await this.userModel.find().exec(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /server/src/server.ts: -------------------------------------------------------------------------------- 1 | import { NestFactory } from '@nestjs/core'; 2 | import * as bodyParser from 'body-parser'; 3 | import chalk from 'chalk'; 4 | 5 | import { AppConfig } from '../../common/config'; 6 | import { ApplicationModule } from './modules/app.module'; 7 | 8 | import { LoggingInterceptor } from './interceptors'; 9 | import { HttpExceptionFilter } from './filters'; 10 | 11 | async function bootstrap() { 12 | const app = await NestFactory.create(ApplicationModule); 13 | app.use(bodyParser.json()); 14 | app.setGlobalPrefix(AppConfig.API_URL); 15 | app.useGlobalInterceptors(new LoggingInterceptor()); 16 | app.useGlobalFilters(new HttpExceptionFilter()); 17 | app.use((err, req, res, next) => { 18 | res.status(err.status || 500); 19 | res.render('error', { 20 | message: err.message, 21 | error: err, 22 | }); 23 | }); 24 | 25 | await app.listen(AppConfig.PORT) 26 | .then(() => { 27 | console.info( 28 | chalk.cyan('App') + 29 | chalk.green(' [') + 30 | chalk.blue(`${ AppConfig.APP_NAME }`) + 31 | chalk.green('] started on port'), 32 | chalk.green('[') + 33 | chalk.blue(AppConfig.PORT.toString()) + 34 | chalk.green('] ') + 35 | `http://localhost:${ AppConfig.PORT }`, 36 | ); 37 | }) 38 | .catch(console.error); 39 | } 40 | bootstrap(); 41 | -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "declaration": false, 5 | "noImplicitAny": false, 6 | "removeComments": true, 7 | "noLib": false, 8 | "emitDecoratorMetadata": true, 9 | "experimentalDecorators": true, 10 | "target": "es6", 11 | "sourceMap": true, 12 | "allowJs": true, 13 | "outDir": "./dist" 14 | }, 15 | "include": [ 16 | "src/**/*" 17 | ], 18 | "exclude": [ 19 | "node_modules", 20 | "**/*.spec.ts" 21 | ] 22 | } -------------------------------------------------------------------------------- /server/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": { 7 | "no-unused-expression": true 8 | }, 9 | "rules": { 10 | "eofline": false, 11 | "no-console": [ 12 | true, 13 | "log" 14 | ], 15 | "quotemark": [ 16 | true, 17 | "single" 18 | ], 19 | "member-access": [ 20 | false 21 | ], 22 | "ordered-imports": [ 23 | false 24 | ], 25 | "max-line-length": [ 26 | 150 27 | ], 28 | "member-ordering": [ 29 | false 30 | ], 31 | "curly": false, 32 | "interface-name": [ 33 | false 34 | ], 35 | "array-type": [ 36 | false 37 | ], 38 | "no-empty-interface": false, 39 | "no-empty": false, 40 | "arrow-parens": false, 41 | "object-literal-sort-keys": false, 42 | "no-unused-expression": false, 43 | "max-classes-per-file": [ 44 | false 45 | ], 46 | "variable-name": [ 47 | false 48 | ], 49 | "one-line": [ 50 | false 51 | ], 52 | "one-variable-per-declaration": [ 53 | false 54 | ] 55 | }, 56 | "rulesDirectory": [] 57 | } 58 | -------------------------------------------------------------------------------- /server/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@nestjs/common@^4.0.0": 6 | version "4.5.2" 7 | resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-4.5.2.tgz#cbe6f97b8f2b74310fb8ead4311b8c5cf1bf00d4" 8 | dependencies: 9 | class-transformer "0.1.8" 10 | class-validator "0.7.3" 11 | cli-color "1.1.0" 12 | 13 | "@nestjs/core@^4.0.0": 14 | version "4.5.2" 15 | resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-4.5.2.tgz#5eff62117e30d9c5459d00377686ee15ad325894" 16 | dependencies: 17 | body-parser "1.17.2" 18 | express "4.16.2" 19 | iterare "0.0.8" 20 | optional "0.1.4" 21 | 22 | "@nestjs/microservices@^4.0.0": 23 | version "4.5.2" 24 | resolved "https://registry.yarnpkg.com/@nestjs/microservices/-/microservices-4.5.2.tgz#0426bf2d264963a5669e631da7ab295b40fd2c16" 25 | dependencies: 26 | iterare "0.0.8" 27 | json-socket "^0.2.1" 28 | optional "0.1.4" 29 | redis "^2.7.1" 30 | 31 | "@nestjs/testing@^4.0.0": 32 | version "4.5.2" 33 | resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-4.5.2.tgz#d174979f1c0b93378513dc7c753be84f602814bf" 34 | dependencies: 35 | optional "0.1.4" 36 | 37 | "@nestjs/websockets@^4.0.0": 38 | version "4.5.2" 39 | resolved "https://registry.yarnpkg.com/@nestjs/websockets/-/websockets-4.5.2.tgz#1a4254f027991592ee7a41cd586b7393a1bc0d1b" 40 | dependencies: 41 | iterare "0.0.8" 42 | socket.io "^2.0.3" 43 | 44 | "@types/body-parser@*", "@types/body-parser@^1.16.5": 45 | version "1.16.8" 46 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.16.8.tgz#687ec34140624a3bec2b1a8ea9268478ae8f3be3" 47 | dependencies: 48 | "@types/express" "*" 49 | "@types/node" "*" 50 | 51 | "@types/chalk@^0.4.31": 52 | version "0.4.31" 53 | resolved "https://registry.yarnpkg.com/@types/chalk/-/chalk-0.4.31.tgz#a31d74241a6b1edbb973cf36d97a2896834a51f9" 54 | 55 | "@types/express-serve-static-core@*": 56 | version "4.11.0" 57 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.11.0.tgz#aaaf472777191c3e56ec7aa160034c6b55ebdd59" 58 | dependencies: 59 | "@types/node" "*" 60 | 61 | "@types/express@*": 62 | version "4.11.0" 63 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.11.0.tgz#234d65280af917cb290634b7a8d6bcac24aecbad" 64 | dependencies: 65 | "@types/body-parser" "*" 66 | "@types/express-serve-static-core" "*" 67 | "@types/serve-static" "*" 68 | 69 | "@types/mime@*": 70 | version "2.0.0" 71 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" 72 | 73 | "@types/node@*", "@types/node@^8.0.28": 74 | version "8.5.2" 75 | resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5" 76 | 77 | "@types/serve-static@*": 78 | version "1.13.1" 79 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.1.tgz#1d2801fa635d274cd97d4ec07e26b21b44127492" 80 | dependencies: 81 | "@types/express-serve-static-core" "*" 82 | "@types/mime" "*" 83 | 84 | abbrev@1: 85 | version "1.1.1" 86 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 87 | 88 | accepts@1.3.3: 89 | version "1.3.3" 90 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" 91 | dependencies: 92 | mime-types "~2.1.11" 93 | negotiator "0.6.1" 94 | 95 | accepts@~1.3.4: 96 | version "1.3.4" 97 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" 98 | dependencies: 99 | mime-types "~2.1.16" 100 | negotiator "0.6.1" 101 | 102 | after@0.8.2: 103 | version "0.8.2" 104 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" 105 | 106 | ajv@^4.9.1: 107 | version "4.11.8" 108 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 109 | dependencies: 110 | co "^4.6.0" 111 | json-stable-stringify "^1.0.1" 112 | 113 | ansi-align@^2.0.0: 114 | version "2.0.0" 115 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 116 | dependencies: 117 | string-width "^2.0.0" 118 | 119 | ansi-regex@2, ansi-regex@^2.0.0: 120 | version "2.1.1" 121 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 122 | 123 | ansi-regex@^3.0.0: 124 | version "3.0.0" 125 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 126 | 127 | ansi-styles@^3.1.0: 128 | version "3.2.0" 129 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" 130 | dependencies: 131 | color-convert "^1.9.0" 132 | 133 | anymatch@^1.3.0: 134 | version "1.3.2" 135 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" 136 | dependencies: 137 | micromatch "^2.1.5" 138 | normalize-path "^2.0.0" 139 | 140 | aproba@^1.0.3: 141 | version "1.2.0" 142 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 143 | 144 | are-we-there-yet@~1.1.2: 145 | version "1.1.4" 146 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 147 | dependencies: 148 | delegates "^1.0.0" 149 | readable-stream "^2.0.6" 150 | 151 | arr-diff@^2.0.0: 152 | version "2.0.0" 153 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 154 | dependencies: 155 | arr-flatten "^1.0.1" 156 | 157 | arr-flatten@^1.0.1: 158 | version "1.1.0" 159 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 160 | 161 | array-flatten@1.1.1: 162 | version "1.1.1" 163 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 164 | 165 | array-unique@^0.2.1: 166 | version "0.2.1" 167 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 168 | 169 | arraybuffer.slice@0.0.6: 170 | version "0.0.6" 171 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" 172 | 173 | arrify@^1.0.0: 174 | version "1.0.1" 175 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 176 | 177 | asn1@~0.2.3: 178 | version "0.2.3" 179 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 180 | 181 | assert-plus@1.0.0, assert-plus@^1.0.0: 182 | version "1.0.0" 183 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 184 | 185 | assert-plus@^0.2.0: 186 | version "0.2.0" 187 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 188 | 189 | async-each@^1.0.0: 190 | version "1.0.1" 191 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 192 | 193 | async-limiter@~1.0.0: 194 | version "1.0.0" 195 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 196 | 197 | asynckit@^0.4.0: 198 | version "0.4.0" 199 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 200 | 201 | aws-sign2@~0.6.0: 202 | version "0.6.0" 203 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 204 | 205 | aws4@^1.2.1: 206 | version "1.6.0" 207 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 208 | 209 | backo2@1.0.2: 210 | version "1.0.2" 211 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 212 | 213 | balanced-match@^1.0.0: 214 | version "1.0.0" 215 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 216 | 217 | base64-arraybuffer@0.1.5: 218 | version "0.1.5" 219 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" 220 | 221 | base64id@1.0.0: 222 | version "1.0.0" 223 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" 224 | 225 | base64url@2.0.0, base64url@^2.0.0: 226 | version "2.0.0" 227 | resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" 228 | 229 | bcrypt-pbkdf@^1.0.0: 230 | version "1.0.1" 231 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 232 | dependencies: 233 | tweetnacl "^0.14.3" 234 | 235 | better-assert@~1.0.0: 236 | version "1.0.2" 237 | resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" 238 | dependencies: 239 | callsite "1.0.0" 240 | 241 | binary-extensions@^1.0.0: 242 | version "1.11.0" 243 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" 244 | 245 | blob@0.0.4: 246 | version "0.0.4" 247 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" 248 | 249 | block-stream@*: 250 | version "0.0.9" 251 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 252 | dependencies: 253 | inherits "~2.0.0" 254 | 255 | body-parser@1.17.2: 256 | version "1.17.2" 257 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.2.tgz#f8892abc8f9e627d42aedafbca66bf5ab99104ee" 258 | dependencies: 259 | bytes "2.4.0" 260 | content-type "~1.0.2" 261 | debug "2.6.7" 262 | depd "~1.1.0" 263 | http-errors "~1.6.1" 264 | iconv-lite "0.4.15" 265 | on-finished "~2.3.0" 266 | qs "6.4.0" 267 | raw-body "~2.2.0" 268 | type-is "~1.6.15" 269 | 270 | body-parser@1.18.2, body-parser@^1.18.2: 271 | version "1.18.2" 272 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" 273 | dependencies: 274 | bytes "3.0.0" 275 | content-type "~1.0.4" 276 | debug "2.6.9" 277 | depd "~1.1.1" 278 | http-errors "~1.6.2" 279 | iconv-lite "0.4.19" 280 | on-finished "~2.3.0" 281 | qs "6.5.1" 282 | raw-body "2.3.2" 283 | type-is "~1.6.15" 284 | 285 | boom@2.x.x: 286 | version "2.10.1" 287 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 288 | dependencies: 289 | hoek "2.x.x" 290 | 291 | boxen@^1.2.1: 292 | version "1.3.0" 293 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 294 | dependencies: 295 | ansi-align "^2.0.0" 296 | camelcase "^4.0.0" 297 | chalk "^2.0.1" 298 | cli-boxes "^1.0.0" 299 | string-width "^2.0.0" 300 | term-size "^1.2.0" 301 | widest-line "^2.0.0" 302 | 303 | brace-expansion@^1.1.7: 304 | version "1.1.8" 305 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" 306 | dependencies: 307 | balanced-match "^1.0.0" 308 | concat-map "0.0.1" 309 | 310 | braces@^1.8.2: 311 | version "1.8.5" 312 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 313 | dependencies: 314 | expand-range "^1.8.1" 315 | preserve "^0.2.0" 316 | repeat-element "^1.1.2" 317 | 318 | buffer-equal-constant-time@1.0.1: 319 | version "1.0.1" 320 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 321 | 322 | bytes@2.4.0: 323 | version "2.4.0" 324 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" 325 | 326 | bytes@3.0.0: 327 | version "3.0.0" 328 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" 329 | 330 | callsite@1.0.0: 331 | version "1.0.0" 332 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" 333 | 334 | camelcase@^4.0.0: 335 | version "4.1.0" 336 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 337 | 338 | capture-stack-trace@^1.0.0: 339 | version "1.0.0" 340 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 341 | 342 | caseless@~0.12.0: 343 | version "0.12.0" 344 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 345 | 346 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: 347 | version "2.3.0" 348 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" 349 | dependencies: 350 | ansi-styles "^3.1.0" 351 | escape-string-regexp "^1.0.5" 352 | supports-color "^4.0.0" 353 | 354 | chokidar@^1.7.0: 355 | version "1.7.0" 356 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 357 | dependencies: 358 | anymatch "^1.3.0" 359 | async-each "^1.0.0" 360 | glob-parent "^2.0.0" 361 | inherits "^2.0.1" 362 | is-binary-path "^1.0.0" 363 | is-glob "^2.0.0" 364 | path-is-absolute "^1.0.0" 365 | readdirp "^2.0.0" 366 | optionalDependencies: 367 | fsevents "^1.0.0" 368 | 369 | class-transformer@0.1.8: 370 | version "0.1.8" 371 | resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.1.8.tgz#be04dd2afb7b301e4c8c79c5349fedaac3d5a7e1" 372 | 373 | class-validator@0.7.3: 374 | version "0.7.3" 375 | resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.7.3.tgz#3c2821b8cf35fd8d5f4fcb8063bc57fb50049e7e" 376 | dependencies: 377 | validator "^7.0.0" 378 | 379 | cli-boxes@^1.0.0: 380 | version "1.0.0" 381 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 382 | 383 | cli-color@1.1.0: 384 | version "1.1.0" 385 | resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.1.0.tgz#de188cdc4929d83b67aea04110fbed40fdbf6775" 386 | dependencies: 387 | ansi-regex "2" 388 | d "^0.1.1" 389 | es5-ext "^0.10.8" 390 | es6-iterator "2" 391 | memoizee "^0.3.9" 392 | timers-ext "0.1" 393 | 394 | co@^4.6.0: 395 | version "4.6.0" 396 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 397 | 398 | code-point-at@^1.0.0: 399 | version "1.1.0" 400 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 401 | 402 | color-convert@^1.9.0: 403 | version "1.9.1" 404 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 405 | dependencies: 406 | color-name "^1.1.1" 407 | 408 | color-name@^1.1.1: 409 | version "1.1.3" 410 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 411 | 412 | combined-stream@^1.0.5, combined-stream@~1.0.5: 413 | version "1.0.5" 414 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 415 | dependencies: 416 | delayed-stream "~1.0.0" 417 | 418 | component-bind@1.0.0: 419 | version "1.0.0" 420 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" 421 | 422 | component-emitter@1.2.1: 423 | version "1.2.1" 424 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 425 | 426 | component-inherit@0.0.3: 427 | version "0.0.3" 428 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" 429 | 430 | concat-map@0.0.1: 431 | version "0.0.1" 432 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 433 | 434 | configstore@^3.0.0: 435 | version "3.1.1" 436 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" 437 | dependencies: 438 | dot-prop "^4.1.0" 439 | graceful-fs "^4.1.2" 440 | make-dir "^1.0.0" 441 | unique-string "^1.0.0" 442 | write-file-atomic "^2.0.0" 443 | xdg-basedir "^3.0.0" 444 | 445 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 446 | version "1.1.0" 447 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 448 | 449 | content-disposition@0.5.2: 450 | version "0.5.2" 451 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" 452 | 453 | content-type@~1.0.2, content-type@~1.0.4: 454 | version "1.0.4" 455 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 456 | 457 | cookie-signature@1.0.6: 458 | version "1.0.6" 459 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 460 | 461 | cookie@0.3.1: 462 | version "0.3.1" 463 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 464 | 465 | core-util-is@1.0.2, core-util-is@~1.0.0: 466 | version "1.0.2" 467 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 468 | 469 | create-error-class@^3.0.0: 470 | version "3.0.2" 471 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 472 | dependencies: 473 | capture-stack-trace "^1.0.0" 474 | 475 | cross-spawn@^5.0.1: 476 | version "5.1.0" 477 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 478 | dependencies: 479 | lru-cache "^4.0.1" 480 | shebang-command "^1.2.0" 481 | which "^1.2.9" 482 | 483 | cryptiles@2.x.x: 484 | version "2.0.5" 485 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 486 | dependencies: 487 | boom "2.x.x" 488 | 489 | crypto-random-string@^1.0.0: 490 | version "1.0.0" 491 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 492 | 493 | d@1: 494 | version "1.0.0" 495 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 496 | dependencies: 497 | es5-ext "^0.10.9" 498 | 499 | d@^0.1.1, d@~0.1.1: 500 | version "0.1.1" 501 | resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" 502 | dependencies: 503 | es5-ext "~0.10.2" 504 | 505 | dashdash@^1.12.0: 506 | version "1.14.1" 507 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 508 | dependencies: 509 | assert-plus "^1.0.0" 510 | 511 | debug@2.6.7: 512 | version "2.6.7" 513 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" 514 | dependencies: 515 | ms "2.0.0" 516 | 517 | debug@2.6.9, debug@^2.2.0, debug@^2.6.8, debug@~2.6.4, debug@~2.6.6, debug@~2.6.9: 518 | version "2.6.9" 519 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 520 | dependencies: 521 | ms "2.0.0" 522 | 523 | deep-extend@~0.4.0: 524 | version "0.4.2" 525 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 526 | 527 | delayed-stream@~1.0.0: 528 | version "1.0.0" 529 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 530 | 531 | delegates@^1.0.0: 532 | version "1.0.0" 533 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 534 | 535 | depd@1.1.1, depd@~1.1.0, depd@~1.1.1: 536 | version "1.1.1" 537 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" 538 | 539 | destroy@~1.0.4: 540 | version "1.0.4" 541 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 542 | 543 | detect-libc@^1.0.2: 544 | version "1.0.3" 545 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" 546 | 547 | diff@^3.1.0: 548 | version "3.4.0" 549 | resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" 550 | 551 | dot-prop@^4.1.0: 552 | version "4.2.0" 553 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 554 | dependencies: 555 | is-obj "^1.0.0" 556 | 557 | double-ended-queue@^2.1.0-0: 558 | version "2.1.0-0" 559 | resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c" 560 | 561 | duplexer3@^0.1.4: 562 | version "0.1.4" 563 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 564 | 565 | duplexer@~0.1.1: 566 | version "0.1.1" 567 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 568 | 569 | ecc-jsbn@~0.1.1: 570 | version "0.1.1" 571 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 572 | dependencies: 573 | jsbn "~0.1.0" 574 | 575 | ecdsa-sig-formatter@1.0.9: 576 | version "1.0.9" 577 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" 578 | dependencies: 579 | base64url "^2.0.0" 580 | safe-buffer "^5.0.1" 581 | 582 | ee-first@1.1.1: 583 | version "1.1.1" 584 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 585 | 586 | encodeurl@~1.0.1: 587 | version "1.0.1" 588 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" 589 | 590 | engine.io-client@~3.1.0: 591 | version "3.1.4" 592 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.1.4.tgz#4fcf1370b47163bd2ce9be2733972430350d4ea1" 593 | dependencies: 594 | component-emitter "1.2.1" 595 | component-inherit "0.0.3" 596 | debug "~2.6.9" 597 | engine.io-parser "~2.1.1" 598 | has-cors "1.1.0" 599 | indexof "0.0.1" 600 | parseqs "0.0.5" 601 | parseuri "0.0.5" 602 | ws "~3.3.1" 603 | xmlhttprequest-ssl "~1.5.4" 604 | yeast "0.1.2" 605 | 606 | engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: 607 | version "2.1.1" 608 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.1.tgz#e0fb3f0e0462f7f58bb77c1a52e9f5a7e26e4668" 609 | dependencies: 610 | after "0.8.2" 611 | arraybuffer.slice "0.0.6" 612 | base64-arraybuffer "0.1.5" 613 | blob "0.0.4" 614 | has-binary2 "~1.0.2" 615 | 616 | engine.io@~3.1.0: 617 | version "3.1.4" 618 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.1.4.tgz#3d0211b70a552ce841ffc7da8627b301a9a4162e" 619 | dependencies: 620 | accepts "1.3.3" 621 | base64id "1.0.0" 622 | cookie "0.3.1" 623 | debug "~2.6.9" 624 | engine.io-parser "~2.1.0" 625 | ws "~3.3.1" 626 | optionalDependencies: 627 | uws "~0.14.4" 628 | 629 | es5-ext@^0.10.35, es5-ext@^0.10.8, es5-ext@^0.10.9, es5-ext@~0.10.11, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.5, es5-ext@~0.10.6: 630 | version "0.10.37" 631 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.37.tgz#0ee741d148b80069ba27d020393756af257defc3" 632 | dependencies: 633 | es6-iterator "~2.0.1" 634 | es6-symbol "~3.1.1" 635 | 636 | es6-iterator@2, es6-iterator@~2.0.1: 637 | version "2.0.3" 638 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" 639 | dependencies: 640 | d "1" 641 | es5-ext "^0.10.35" 642 | es6-symbol "^3.1.1" 643 | 644 | es6-iterator@~0.1.3: 645 | version "0.1.3" 646 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-0.1.3.tgz#d6f58b8c4fc413c249b4baa19768f8e4d7c8944e" 647 | dependencies: 648 | d "~0.1.1" 649 | es5-ext "~0.10.5" 650 | es6-symbol "~2.0.1" 651 | 652 | es6-symbol@^3.1.1, es6-symbol@~3.1.1: 653 | version "3.1.1" 654 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 655 | dependencies: 656 | d "1" 657 | es5-ext "~0.10.14" 658 | 659 | es6-symbol@~2.0.1: 660 | version "2.0.1" 661 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-2.0.1.tgz#761b5c67cfd4f1d18afb234f691d678682cb3bf3" 662 | dependencies: 663 | d "~0.1.1" 664 | es5-ext "~0.10.5" 665 | 666 | es6-weak-map@~0.1.4: 667 | version "0.1.4" 668 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-0.1.4.tgz#706cef9e99aa236ba7766c239c8b9e286ea7d228" 669 | dependencies: 670 | d "~0.1.1" 671 | es5-ext "~0.10.6" 672 | es6-iterator "~0.1.3" 673 | es6-symbol "~2.0.1" 674 | 675 | escape-html@~1.0.3: 676 | version "1.0.3" 677 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 678 | 679 | escape-string-regexp@^1.0.5: 680 | version "1.0.5" 681 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 682 | 683 | etag@~1.8.1: 684 | version "1.8.1" 685 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 686 | 687 | event-emitter@~0.3.4: 688 | version "0.3.5" 689 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 690 | dependencies: 691 | d "1" 692 | es5-ext "~0.10.14" 693 | 694 | event-stream@~3.3.0: 695 | version "3.3.4" 696 | resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" 697 | dependencies: 698 | duplexer "~0.1.1" 699 | from "~0" 700 | map-stream "~0.1.0" 701 | pause-stream "0.0.11" 702 | split "0.3" 703 | stream-combiner "~0.0.4" 704 | through "~2.3.1" 705 | 706 | execa@^0.7.0: 707 | version "0.7.0" 708 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 709 | dependencies: 710 | cross-spawn "^5.0.1" 711 | get-stream "^3.0.0" 712 | is-stream "^1.1.0" 713 | npm-run-path "^2.0.0" 714 | p-finally "^1.0.0" 715 | signal-exit "^3.0.0" 716 | strip-eof "^1.0.0" 717 | 718 | expand-brackets@^0.1.4: 719 | version "0.1.5" 720 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 721 | dependencies: 722 | is-posix-bracket "^0.1.0" 723 | 724 | expand-range@^1.8.1: 725 | version "1.8.2" 726 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 727 | dependencies: 728 | fill-range "^2.1.0" 729 | 730 | express@4.16.2: 731 | version "4.16.2" 732 | resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" 733 | dependencies: 734 | accepts "~1.3.4" 735 | array-flatten "1.1.1" 736 | body-parser "1.18.2" 737 | content-disposition "0.5.2" 738 | content-type "~1.0.4" 739 | cookie "0.3.1" 740 | cookie-signature "1.0.6" 741 | debug "2.6.9" 742 | depd "~1.1.1" 743 | encodeurl "~1.0.1" 744 | escape-html "~1.0.3" 745 | etag "~1.8.1" 746 | finalhandler "1.1.0" 747 | fresh "0.5.2" 748 | merge-descriptors "1.0.1" 749 | methods "~1.1.2" 750 | on-finished "~2.3.0" 751 | parseurl "~1.3.2" 752 | path-to-regexp "0.1.7" 753 | proxy-addr "~2.0.2" 754 | qs "6.5.1" 755 | range-parser "~1.2.0" 756 | safe-buffer "5.1.1" 757 | send "0.16.1" 758 | serve-static "1.13.1" 759 | setprototypeof "1.1.0" 760 | statuses "~1.3.1" 761 | type-is "~1.6.15" 762 | utils-merge "1.0.1" 763 | vary "~1.1.2" 764 | 765 | extend@~3.0.0: 766 | version "3.0.1" 767 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 768 | 769 | extglob@^0.3.1: 770 | version "0.3.2" 771 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 772 | dependencies: 773 | is-extglob "^1.0.0" 774 | 775 | extsprintf@1.3.0: 776 | version "1.3.0" 777 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 778 | 779 | extsprintf@^1.2.0: 780 | version "1.4.0" 781 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" 782 | 783 | filename-regex@^2.0.0: 784 | version "2.0.1" 785 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 786 | 787 | fill-range@^2.1.0: 788 | version "2.2.3" 789 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 790 | dependencies: 791 | is-number "^2.1.0" 792 | isobject "^2.0.0" 793 | randomatic "^1.1.3" 794 | repeat-element "^1.1.2" 795 | repeat-string "^1.5.2" 796 | 797 | finalhandler@1.1.0: 798 | version "1.1.0" 799 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" 800 | dependencies: 801 | debug "2.6.9" 802 | encodeurl "~1.0.1" 803 | escape-html "~1.0.3" 804 | on-finished "~2.3.0" 805 | parseurl "~1.3.2" 806 | statuses "~1.3.1" 807 | unpipe "~1.0.0" 808 | 809 | for-in@^1.0.1: 810 | version "1.0.2" 811 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 812 | 813 | for-own@^0.1.4: 814 | version "0.1.5" 815 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 816 | dependencies: 817 | for-in "^1.0.1" 818 | 819 | forever-agent@~0.6.1: 820 | version "0.6.1" 821 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 822 | 823 | form-data@~2.1.1: 824 | version "2.1.4" 825 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 826 | dependencies: 827 | asynckit "^0.4.0" 828 | combined-stream "^1.0.5" 829 | mime-types "^2.1.12" 830 | 831 | forwarded@~0.1.2: 832 | version "0.1.2" 833 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 834 | 835 | fresh@0.5.2: 836 | version "0.5.2" 837 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 838 | 839 | from@~0: 840 | version "0.1.7" 841 | resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" 842 | 843 | fs.realpath@^1.0.0: 844 | version "1.0.0" 845 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 846 | 847 | fsevents@^1.0.0: 848 | version "1.1.3" 849 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" 850 | dependencies: 851 | nan "^2.3.0" 852 | node-pre-gyp "^0.6.39" 853 | 854 | fstream-ignore@^1.0.5: 855 | version "1.0.5" 856 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 857 | dependencies: 858 | fstream "^1.0.0" 859 | inherits "2" 860 | minimatch "^3.0.0" 861 | 862 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 863 | version "1.0.11" 864 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 865 | dependencies: 866 | graceful-fs "^4.1.2" 867 | inherits "~2.0.0" 868 | mkdirp ">=0.5 0" 869 | rimraf "2" 870 | 871 | gauge@~2.7.3: 872 | version "2.7.4" 873 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 874 | dependencies: 875 | aproba "^1.0.3" 876 | console-control-strings "^1.0.0" 877 | has-unicode "^2.0.0" 878 | object-assign "^4.1.0" 879 | signal-exit "^3.0.0" 880 | string-width "^1.0.1" 881 | strip-ansi "^3.0.1" 882 | wide-align "^1.1.0" 883 | 884 | get-stream@^3.0.0: 885 | version "3.0.0" 886 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 887 | 888 | getpass@^0.1.1: 889 | version "0.1.7" 890 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 891 | dependencies: 892 | assert-plus "^1.0.0" 893 | 894 | glob-base@^0.3.0: 895 | version "0.3.0" 896 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 897 | dependencies: 898 | glob-parent "^2.0.0" 899 | is-glob "^2.0.0" 900 | 901 | glob-parent@^2.0.0: 902 | version "2.0.0" 903 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 904 | dependencies: 905 | is-glob "^2.0.0" 906 | 907 | glob@^7.0.5: 908 | version "7.1.2" 909 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 910 | dependencies: 911 | fs.realpath "^1.0.0" 912 | inflight "^1.0.4" 913 | inherits "2" 914 | minimatch "^3.0.4" 915 | once "^1.3.0" 916 | path-is-absolute "^1.0.0" 917 | 918 | global-dirs@^0.1.0: 919 | version "0.1.1" 920 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 921 | dependencies: 922 | ini "^1.3.4" 923 | 924 | got@^6.7.1: 925 | version "6.7.1" 926 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 927 | dependencies: 928 | create-error-class "^3.0.0" 929 | duplexer3 "^0.1.4" 930 | get-stream "^3.0.0" 931 | is-redirect "^1.0.0" 932 | is-retry-allowed "^1.0.0" 933 | is-stream "^1.0.0" 934 | lowercase-keys "^1.0.0" 935 | safe-buffer "^5.0.1" 936 | timed-out "^4.0.0" 937 | unzip-response "^2.0.1" 938 | url-parse-lax "^1.0.0" 939 | 940 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 941 | version "4.1.11" 942 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 943 | 944 | har-schema@^1.0.5: 945 | version "1.0.5" 946 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 947 | 948 | har-validator@~4.2.1: 949 | version "4.2.1" 950 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 951 | dependencies: 952 | ajv "^4.9.1" 953 | har-schema "^1.0.5" 954 | 955 | has-binary2@~1.0.2: 956 | version "1.0.2" 957 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.2.tgz#e83dba49f0b9be4d026d27365350d9f03f54be98" 958 | dependencies: 959 | isarray "2.0.1" 960 | 961 | has-cors@1.1.0: 962 | version "1.1.0" 963 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" 964 | 965 | has-flag@^2.0.0: 966 | version "2.0.0" 967 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" 968 | 969 | has-unicode@^2.0.0: 970 | version "2.0.1" 971 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 972 | 973 | hawk@3.1.3, hawk@~3.1.3: 974 | version "3.1.3" 975 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 976 | dependencies: 977 | boom "2.x.x" 978 | cryptiles "2.x.x" 979 | hoek "2.x.x" 980 | sntp "1.x.x" 981 | 982 | hoek@2.x.x: 983 | version "2.16.3" 984 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 985 | 986 | homedir-polyfill@^1.0.1: 987 | version "1.0.1" 988 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 989 | dependencies: 990 | parse-passwd "^1.0.0" 991 | 992 | http-errors@1.6.2, http-errors@~1.6.1, http-errors@~1.6.2: 993 | version "1.6.2" 994 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" 995 | dependencies: 996 | depd "1.1.1" 997 | inherits "2.0.3" 998 | setprototypeof "1.0.3" 999 | statuses ">= 1.3.1 < 2" 1000 | 1001 | http-signature@~1.1.0: 1002 | version "1.1.1" 1003 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1004 | dependencies: 1005 | assert-plus "^0.2.0" 1006 | jsprim "^1.2.2" 1007 | sshpk "^1.7.0" 1008 | 1009 | iconv-lite@0.4.15: 1010 | version "0.4.15" 1011 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" 1012 | 1013 | iconv-lite@0.4.19: 1014 | version "0.4.19" 1015 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" 1016 | 1017 | ignore-by-default@^1.0.1: 1018 | version "1.0.1" 1019 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1020 | 1021 | import-lazy@^2.1.0: 1022 | version "2.1.0" 1023 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1024 | 1025 | imurmurhash@^0.1.4: 1026 | version "0.1.4" 1027 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1028 | 1029 | indexof@0.0.1: 1030 | version "0.0.1" 1031 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1032 | 1033 | inflight@^1.0.4: 1034 | version "1.0.6" 1035 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1036 | dependencies: 1037 | once "^1.3.0" 1038 | wrappy "1" 1039 | 1040 | inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.3: 1041 | version "2.0.3" 1042 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1043 | 1044 | ini@^1.3.4, ini@~1.3.0: 1045 | version "1.3.5" 1046 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 1047 | 1048 | ipaddr.js@1.5.2: 1049 | version "1.5.2" 1050 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" 1051 | 1052 | is-binary-path@^1.0.0: 1053 | version "1.0.1" 1054 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1055 | dependencies: 1056 | binary-extensions "^1.0.0" 1057 | 1058 | is-buffer@^1.1.5: 1059 | version "1.1.6" 1060 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1061 | 1062 | is-dotfile@^1.0.0: 1063 | version "1.0.3" 1064 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" 1065 | 1066 | is-equal-shallow@^0.1.3: 1067 | version "0.1.3" 1068 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1069 | dependencies: 1070 | is-primitive "^2.0.0" 1071 | 1072 | is-extendable@^0.1.1: 1073 | version "0.1.1" 1074 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1075 | 1076 | is-extglob@^1.0.0: 1077 | version "1.0.0" 1078 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1079 | 1080 | is-fullwidth-code-point@^1.0.0: 1081 | version "1.0.0" 1082 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1083 | dependencies: 1084 | number-is-nan "^1.0.0" 1085 | 1086 | is-fullwidth-code-point@^2.0.0: 1087 | version "2.0.0" 1088 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1089 | 1090 | is-glob@^2.0.0, is-glob@^2.0.1: 1091 | version "2.0.1" 1092 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1093 | dependencies: 1094 | is-extglob "^1.0.0" 1095 | 1096 | is-installed-globally@^0.1.0: 1097 | version "0.1.0" 1098 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1099 | dependencies: 1100 | global-dirs "^0.1.0" 1101 | is-path-inside "^1.0.0" 1102 | 1103 | is-npm@^1.0.0: 1104 | version "1.0.0" 1105 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1106 | 1107 | is-number@^2.1.0: 1108 | version "2.1.0" 1109 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1110 | dependencies: 1111 | kind-of "^3.0.2" 1112 | 1113 | is-number@^3.0.0: 1114 | version "3.0.0" 1115 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1116 | dependencies: 1117 | kind-of "^3.0.2" 1118 | 1119 | is-obj@^1.0.0: 1120 | version "1.0.1" 1121 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1122 | 1123 | is-path-inside@^1.0.0: 1124 | version "1.0.1" 1125 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1126 | dependencies: 1127 | path-is-inside "^1.0.1" 1128 | 1129 | is-posix-bracket@^0.1.0: 1130 | version "0.1.1" 1131 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1132 | 1133 | is-primitive@^2.0.0: 1134 | version "2.0.0" 1135 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1136 | 1137 | is-redirect@^1.0.0: 1138 | version "1.0.0" 1139 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1140 | 1141 | is-retry-allowed@^1.0.0: 1142 | version "1.1.0" 1143 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 1144 | 1145 | is-stream@^1.0.0, is-stream@^1.1.0: 1146 | version "1.1.0" 1147 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1148 | 1149 | is-typedarray@~1.0.0: 1150 | version "1.0.0" 1151 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1152 | 1153 | isarray@1.0.0, isarray@~1.0.0: 1154 | version "1.0.0" 1155 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1156 | 1157 | isarray@2.0.1: 1158 | version "2.0.1" 1159 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" 1160 | 1161 | isemail@1.x.x: 1162 | version "1.2.0" 1163 | resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" 1164 | 1165 | isexe@^2.0.0: 1166 | version "2.0.0" 1167 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1168 | 1169 | isobject@^2.0.0: 1170 | version "2.1.0" 1171 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1172 | dependencies: 1173 | isarray "1.0.0" 1174 | 1175 | isstream@~0.1.2: 1176 | version "0.1.2" 1177 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1178 | 1179 | iterare@0.0.8: 1180 | version "0.0.8" 1181 | resolved "https://registry.yarnpkg.com/iterare/-/iterare-0.0.8.tgz#a969a80a1fbff6b78f28776594d7bc2bdfab6aad" 1182 | 1183 | joi@^6.10.1: 1184 | version "6.10.1" 1185 | resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" 1186 | dependencies: 1187 | hoek "2.x.x" 1188 | isemail "1.x.x" 1189 | moment "2.x.x" 1190 | topo "1.x.x" 1191 | 1192 | jsbn@~0.1.0: 1193 | version "0.1.1" 1194 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1195 | 1196 | json-schema@0.2.3: 1197 | version "0.2.3" 1198 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1199 | 1200 | json-socket@^0.2.1: 1201 | version "0.2.1" 1202 | resolved "https://registry.yarnpkg.com/json-socket/-/json-socket-0.2.1.tgz#26e7ed8cc131f17aa0136c32068f473b5dbefb22" 1203 | 1204 | json-stable-stringify@^1.0.1: 1205 | version "1.0.1" 1206 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1207 | dependencies: 1208 | jsonify "~0.0.0" 1209 | 1210 | json-stringify-safe@~5.0.1: 1211 | version "5.0.1" 1212 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1213 | 1214 | jsonify@~0.0.0: 1215 | version "0.0.0" 1216 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1217 | 1218 | jsonwebtoken@^7.0.0: 1219 | version "7.4.3" 1220 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638" 1221 | dependencies: 1222 | joi "^6.10.1" 1223 | jws "^3.1.4" 1224 | lodash.once "^4.0.0" 1225 | ms "^2.0.0" 1226 | xtend "^4.0.1" 1227 | 1228 | jsonwebtoken@^8.1.0: 1229 | version "8.1.0" 1230 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.1.0.tgz#c6397cd2e5fd583d65c007a83dc7bb78e6982b83" 1231 | dependencies: 1232 | jws "^3.1.4" 1233 | lodash.includes "^4.3.0" 1234 | lodash.isboolean "^3.0.3" 1235 | lodash.isinteger "^4.0.4" 1236 | lodash.isnumber "^3.0.3" 1237 | lodash.isplainobject "^4.0.6" 1238 | lodash.isstring "^4.0.1" 1239 | lodash.once "^4.0.0" 1240 | ms "^2.0.0" 1241 | xtend "^4.0.1" 1242 | 1243 | jsprim@^1.2.2: 1244 | version "1.4.1" 1245 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1246 | dependencies: 1247 | assert-plus "1.0.0" 1248 | extsprintf "1.3.0" 1249 | json-schema "0.2.3" 1250 | verror "1.10.0" 1251 | 1252 | jwa@^1.1.4: 1253 | version "1.1.5" 1254 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" 1255 | dependencies: 1256 | base64url "2.0.0" 1257 | buffer-equal-constant-time "1.0.1" 1258 | ecdsa-sig-formatter "1.0.9" 1259 | safe-buffer "^5.0.1" 1260 | 1261 | jws@^3.1.4: 1262 | version "3.1.4" 1263 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" 1264 | dependencies: 1265 | base64url "^2.0.0" 1266 | jwa "^1.1.4" 1267 | safe-buffer "^5.0.1" 1268 | 1269 | kind-of@^3.0.2: 1270 | version "3.2.2" 1271 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1272 | dependencies: 1273 | is-buffer "^1.1.5" 1274 | 1275 | kind-of@^4.0.0: 1276 | version "4.0.0" 1277 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1278 | dependencies: 1279 | is-buffer "^1.1.5" 1280 | 1281 | latest-version@^3.0.0: 1282 | version "3.1.0" 1283 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1284 | dependencies: 1285 | package-json "^4.0.0" 1286 | 1287 | lodash.includes@^4.3.0: 1288 | version "4.3.0" 1289 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1290 | 1291 | lodash.isboolean@^3.0.3: 1292 | version "3.0.3" 1293 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1294 | 1295 | lodash.isinteger@^4.0.4: 1296 | version "4.0.4" 1297 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1298 | 1299 | lodash.isnumber@^3.0.3: 1300 | version "3.0.3" 1301 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1302 | 1303 | lodash.isplainobject@^4.0.6: 1304 | version "4.0.6" 1305 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1306 | 1307 | lodash.isstring@^4.0.1: 1308 | version "4.0.1" 1309 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1310 | 1311 | lodash.once@^4.0.0: 1312 | version "4.1.1" 1313 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1314 | 1315 | lowercase-keys@^1.0.0: 1316 | version "1.0.0" 1317 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 1318 | 1319 | lru-cache@^4.0.1: 1320 | version "4.1.1" 1321 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" 1322 | dependencies: 1323 | pseudomap "^1.0.2" 1324 | yallist "^2.1.2" 1325 | 1326 | lru-queue@0.1: 1327 | version "0.1.0" 1328 | resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" 1329 | dependencies: 1330 | es5-ext "~0.10.2" 1331 | 1332 | make-dir@^1.0.0: 1333 | version "1.1.0" 1334 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" 1335 | dependencies: 1336 | pify "^3.0.0" 1337 | 1338 | make-error@^1.1.1: 1339 | version "1.3.0" 1340 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" 1341 | 1342 | map-stream@~0.1.0: 1343 | version "0.1.0" 1344 | resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" 1345 | 1346 | media-typer@0.3.0: 1347 | version "0.3.0" 1348 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1349 | 1350 | memoizee@^0.3.9: 1351 | version "0.3.10" 1352 | resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.3.10.tgz#4eca0d8aed39ec9d017f4c5c2f2f6432f42e5c8f" 1353 | dependencies: 1354 | d "~0.1.1" 1355 | es5-ext "~0.10.11" 1356 | es6-weak-map "~0.1.4" 1357 | event-emitter "~0.3.4" 1358 | lru-queue "0.1" 1359 | next-tick "~0.2.2" 1360 | timers-ext "0.1" 1361 | 1362 | merge-descriptors@1.0.1: 1363 | version "1.0.1" 1364 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1365 | 1366 | methods@~1.1.2: 1367 | version "1.1.2" 1368 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1369 | 1370 | micromatch@^2.1.5: 1371 | version "2.3.11" 1372 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 1373 | dependencies: 1374 | arr-diff "^2.0.0" 1375 | array-unique "^0.2.1" 1376 | braces "^1.8.2" 1377 | expand-brackets "^0.1.4" 1378 | extglob "^0.3.1" 1379 | filename-regex "^2.0.0" 1380 | is-extglob "^1.0.0" 1381 | is-glob "^2.0.1" 1382 | kind-of "^3.0.2" 1383 | normalize-path "^2.0.1" 1384 | object.omit "^2.0.0" 1385 | parse-glob "^3.0.4" 1386 | regex-cache "^0.4.2" 1387 | 1388 | mime-db@~1.30.0: 1389 | version "1.30.0" 1390 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" 1391 | 1392 | mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7: 1393 | version "2.1.17" 1394 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" 1395 | dependencies: 1396 | mime-db "~1.30.0" 1397 | 1398 | mime@1.4.1: 1399 | version "1.4.1" 1400 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" 1401 | 1402 | minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: 1403 | version "3.0.4" 1404 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1405 | dependencies: 1406 | brace-expansion "^1.1.7" 1407 | 1408 | minimist@0.0.8: 1409 | version "0.0.8" 1410 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1411 | 1412 | minimist@^1.2.0: 1413 | version "1.2.0" 1414 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1415 | 1416 | "mkdirp@>=0.5 0", mkdirp@^0.5.1: 1417 | version "0.5.1" 1418 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1419 | dependencies: 1420 | minimist "0.0.8" 1421 | 1422 | moment@2.x.x: 1423 | version "2.20.1" 1424 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" 1425 | 1426 | ms@2.0.0: 1427 | version "2.0.0" 1428 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1429 | 1430 | ms@^2.0.0: 1431 | version "2.1.1" 1432 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1433 | 1434 | nan@^2.3.0: 1435 | version "2.8.0" 1436 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" 1437 | 1438 | negotiator@0.6.1: 1439 | version "0.6.1" 1440 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" 1441 | 1442 | next-tick@1: 1443 | version "1.0.0" 1444 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" 1445 | 1446 | next-tick@~0.2.2: 1447 | version "0.2.2" 1448 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-0.2.2.tgz#75da4a927ee5887e39065880065b7336413b310d" 1449 | 1450 | node-pre-gyp@^0.6.39: 1451 | version "0.6.39" 1452 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" 1453 | dependencies: 1454 | detect-libc "^1.0.2" 1455 | hawk "3.1.3" 1456 | mkdirp "^0.5.1" 1457 | nopt "^4.0.1" 1458 | npmlog "^4.0.2" 1459 | rc "^1.1.7" 1460 | request "2.81.0" 1461 | rimraf "^2.6.1" 1462 | semver "^5.3.0" 1463 | tar "^2.2.1" 1464 | tar-pack "^3.4.0" 1465 | 1466 | nodemon@^1.12.1: 1467 | version "1.14.3" 1468 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.14.3.tgz#f08d66726fb9876d76956b57cc91624793de4dbb" 1469 | dependencies: 1470 | chokidar "^1.7.0" 1471 | debug "^2.6.8" 1472 | ignore-by-default "^1.0.1" 1473 | minimatch "^3.0.4" 1474 | pstree.remy "^1.1.0" 1475 | touch "^3.1.0" 1476 | undefsafe "0.0.3" 1477 | update-notifier "^2.3.0" 1478 | 1479 | nopt@^4.0.1: 1480 | version "4.0.1" 1481 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 1482 | dependencies: 1483 | abbrev "1" 1484 | osenv "^0.1.4" 1485 | 1486 | nopt@~1.0.10: 1487 | version "1.0.10" 1488 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 1489 | dependencies: 1490 | abbrev "1" 1491 | 1492 | normalize-path@^2.0.0, normalize-path@^2.0.1: 1493 | version "2.1.1" 1494 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 1495 | dependencies: 1496 | remove-trailing-separator "^1.0.1" 1497 | 1498 | npm-run-path@^2.0.0: 1499 | version "2.0.2" 1500 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1501 | dependencies: 1502 | path-key "^2.0.0" 1503 | 1504 | npmlog@^4.0.2: 1505 | version "4.1.2" 1506 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" 1507 | dependencies: 1508 | are-we-there-yet "~1.1.2" 1509 | console-control-strings "~1.1.0" 1510 | gauge "~2.7.3" 1511 | set-blocking "~2.0.0" 1512 | 1513 | number-is-nan@^1.0.0: 1514 | version "1.0.1" 1515 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1516 | 1517 | oauth-sign@~0.8.1: 1518 | version "0.8.2" 1519 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 1520 | 1521 | object-assign@^4.1.0: 1522 | version "4.1.1" 1523 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1524 | 1525 | object-component@0.0.3: 1526 | version "0.0.3" 1527 | resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" 1528 | 1529 | object.omit@^2.0.0: 1530 | version "2.0.1" 1531 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 1532 | dependencies: 1533 | for-own "^0.1.4" 1534 | is-extendable "^0.1.1" 1535 | 1536 | on-finished@~2.3.0: 1537 | version "2.3.0" 1538 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1539 | dependencies: 1540 | ee-first "1.1.1" 1541 | 1542 | once@^1.3.0, once@^1.3.3: 1543 | version "1.4.0" 1544 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1545 | dependencies: 1546 | wrappy "1" 1547 | 1548 | optional@0.1.4: 1549 | version "0.1.4" 1550 | resolved "https://registry.yarnpkg.com/optional/-/optional-0.1.4.tgz#cdb1a9bedc737d2025f690ceeb50e049444fd5b3" 1551 | 1552 | os-homedir@^1.0.0: 1553 | version "1.0.2" 1554 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1555 | 1556 | os-tmpdir@^1.0.0: 1557 | version "1.0.2" 1558 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1559 | 1560 | osenv@^0.1.4: 1561 | version "0.1.4" 1562 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 1563 | dependencies: 1564 | os-homedir "^1.0.0" 1565 | os-tmpdir "^1.0.0" 1566 | 1567 | p-finally@^1.0.0: 1568 | version "1.0.0" 1569 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1570 | 1571 | package-json@^4.0.0: 1572 | version "4.0.1" 1573 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 1574 | dependencies: 1575 | got "^6.7.1" 1576 | registry-auth-token "^3.0.1" 1577 | registry-url "^3.0.3" 1578 | semver "^5.1.0" 1579 | 1580 | parse-glob@^3.0.4: 1581 | version "3.0.4" 1582 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 1583 | dependencies: 1584 | glob-base "^0.3.0" 1585 | is-dotfile "^1.0.0" 1586 | is-extglob "^1.0.0" 1587 | is-glob "^2.0.0" 1588 | 1589 | parse-passwd@^1.0.0: 1590 | version "1.0.0" 1591 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 1592 | 1593 | parseqs@0.0.5: 1594 | version "0.0.5" 1595 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" 1596 | dependencies: 1597 | better-assert "~1.0.0" 1598 | 1599 | parseuri@0.0.5: 1600 | version "0.0.5" 1601 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" 1602 | dependencies: 1603 | better-assert "~1.0.0" 1604 | 1605 | parseurl@~1.3.2: 1606 | version "1.3.2" 1607 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" 1608 | 1609 | passport-jwt@^3.0.0: 1610 | version "3.0.1" 1611 | resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-3.0.1.tgz#e4f7276dad8bd251d43c6fc38883130b963272f6" 1612 | dependencies: 1613 | jsonwebtoken "^7.0.0" 1614 | passport-strategy "^1.0.0" 1615 | 1616 | passport-strategy@1.x.x, passport-strategy@^1.0.0: 1617 | version "1.0.0" 1618 | resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" 1619 | 1620 | passport@^0.4.0: 1621 | version "0.4.0" 1622 | resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.0.tgz#c5095691347bd5ad3b5e180238c3914d16f05811" 1623 | dependencies: 1624 | passport-strategy "1.x.x" 1625 | pause "0.0.1" 1626 | 1627 | path-is-absolute@^1.0.0: 1628 | version "1.0.1" 1629 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1630 | 1631 | path-is-inside@^1.0.1: 1632 | version "1.0.2" 1633 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1634 | 1635 | path-key@^2.0.0: 1636 | version "2.0.1" 1637 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1638 | 1639 | path-to-regexp@0.1.7: 1640 | version "0.1.7" 1641 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1642 | 1643 | pause-stream@0.0.11: 1644 | version "0.0.11" 1645 | resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" 1646 | dependencies: 1647 | through "~2.3" 1648 | 1649 | pause@0.0.1: 1650 | version "0.0.1" 1651 | resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" 1652 | 1653 | performance-now@^0.2.0: 1654 | version "0.2.0" 1655 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 1656 | 1657 | pify@^3.0.0: 1658 | version "3.0.0" 1659 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1660 | 1661 | prepend-http@^1.0.1: 1662 | version "1.0.4" 1663 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1664 | 1665 | preserve@^0.2.0: 1666 | version "0.2.0" 1667 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 1668 | 1669 | process-nextick-args@~1.0.6: 1670 | version "1.0.7" 1671 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 1672 | 1673 | proxy-addr@~2.0.2: 1674 | version "2.0.2" 1675 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" 1676 | dependencies: 1677 | forwarded "~0.1.2" 1678 | ipaddr.js "1.5.2" 1679 | 1680 | ps-tree@^1.1.0: 1681 | version "1.1.0" 1682 | resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" 1683 | dependencies: 1684 | event-stream "~3.3.0" 1685 | 1686 | pseudomap@^1.0.2: 1687 | version "1.0.2" 1688 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1689 | 1690 | pstree.remy@^1.1.0: 1691 | version "1.1.0" 1692 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.0.tgz#f2af27265bd3e5b32bbfcc10e80bac55ba78688b" 1693 | dependencies: 1694 | ps-tree "^1.1.0" 1695 | 1696 | punycode@^1.4.1: 1697 | version "1.4.1" 1698 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 1699 | 1700 | qs@6.4.0, qs@~6.4.0: 1701 | version "6.4.0" 1702 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 1703 | 1704 | qs@6.5.1: 1705 | version "6.5.1" 1706 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" 1707 | 1708 | randomatic@^1.1.3: 1709 | version "1.1.7" 1710 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" 1711 | dependencies: 1712 | is-number "^3.0.0" 1713 | kind-of "^4.0.0" 1714 | 1715 | range-parser@~1.2.0: 1716 | version "1.2.0" 1717 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" 1718 | 1719 | raw-body@2.3.2: 1720 | version "2.3.2" 1721 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" 1722 | dependencies: 1723 | bytes "3.0.0" 1724 | http-errors "1.6.2" 1725 | iconv-lite "0.4.19" 1726 | unpipe "1.0.0" 1727 | 1728 | raw-body@~2.2.0: 1729 | version "2.2.0" 1730 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" 1731 | dependencies: 1732 | bytes "2.4.0" 1733 | iconv-lite "0.4.15" 1734 | unpipe "1.0.0" 1735 | 1736 | rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: 1737 | version "1.2.2" 1738 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" 1739 | dependencies: 1740 | deep-extend "~0.4.0" 1741 | ini "~1.3.0" 1742 | minimist "^1.2.0" 1743 | strip-json-comments "~2.0.1" 1744 | 1745 | readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4: 1746 | version "2.3.3" 1747 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" 1748 | dependencies: 1749 | core-util-is "~1.0.0" 1750 | inherits "~2.0.3" 1751 | isarray "~1.0.0" 1752 | process-nextick-args "~1.0.6" 1753 | safe-buffer "~5.1.1" 1754 | string_decoder "~1.0.3" 1755 | util-deprecate "~1.0.1" 1756 | 1757 | readdirp@^2.0.0: 1758 | version "2.1.0" 1759 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 1760 | dependencies: 1761 | graceful-fs "^4.1.2" 1762 | minimatch "^3.0.2" 1763 | readable-stream "^2.0.2" 1764 | set-immediate-shim "^1.0.1" 1765 | 1766 | redis-commands@^1.2.0: 1767 | version "1.3.1" 1768 | resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.3.1.tgz#81d826f45fa9c8b2011f4cd7a0fe597d241d442b" 1769 | 1770 | redis-parser@^2.6.0: 1771 | version "2.6.0" 1772 | resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b" 1773 | 1774 | redis@^2.7.1: 1775 | version "2.8.0" 1776 | resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02" 1777 | dependencies: 1778 | double-ended-queue "^2.1.0-0" 1779 | redis-commands "^1.2.0" 1780 | redis-parser "^2.6.0" 1781 | 1782 | reflect-metadata@^0.1.10: 1783 | version "0.1.10" 1784 | resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" 1785 | 1786 | regex-cache@^0.4.2: 1787 | version "0.4.4" 1788 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" 1789 | dependencies: 1790 | is-equal-shallow "^0.1.3" 1791 | 1792 | registry-auth-token@^3.0.1: 1793 | version "3.3.1" 1794 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" 1795 | dependencies: 1796 | rc "^1.1.6" 1797 | safe-buffer "^5.0.1" 1798 | 1799 | registry-url@^3.0.3: 1800 | version "3.1.0" 1801 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1802 | dependencies: 1803 | rc "^1.0.1" 1804 | 1805 | remove-trailing-separator@^1.0.1: 1806 | version "1.1.0" 1807 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 1808 | 1809 | repeat-element@^1.1.2: 1810 | version "1.1.2" 1811 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 1812 | 1813 | repeat-string@^1.5.2: 1814 | version "1.6.1" 1815 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 1816 | 1817 | request@2.81.0: 1818 | version "2.81.0" 1819 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 1820 | dependencies: 1821 | aws-sign2 "~0.6.0" 1822 | aws4 "^1.2.1" 1823 | caseless "~0.12.0" 1824 | combined-stream "~1.0.5" 1825 | extend "~3.0.0" 1826 | forever-agent "~0.6.1" 1827 | form-data "~2.1.1" 1828 | har-validator "~4.2.1" 1829 | hawk "~3.1.3" 1830 | http-signature "~1.1.0" 1831 | is-typedarray "~1.0.0" 1832 | isstream "~0.1.2" 1833 | json-stringify-safe "~5.0.1" 1834 | mime-types "~2.1.7" 1835 | oauth-sign "~0.8.1" 1836 | performance-now "^0.2.0" 1837 | qs "~6.4.0" 1838 | safe-buffer "^5.0.1" 1839 | stringstream "~0.0.4" 1840 | tough-cookie "~2.3.0" 1841 | tunnel-agent "^0.6.0" 1842 | uuid "^3.0.0" 1843 | 1844 | rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: 1845 | version "2.6.2" 1846 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1847 | dependencies: 1848 | glob "^7.0.5" 1849 | 1850 | rxjs@^5.4.0: 1851 | version "5.5.6" 1852 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.6.tgz#e31fb96d6fd2ff1fd84bcea8ae9c02d007179c02" 1853 | dependencies: 1854 | symbol-observable "1.0.1" 1855 | 1856 | safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1857 | version "5.1.1" 1858 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 1859 | 1860 | semver-diff@^2.0.0: 1861 | version "2.1.0" 1862 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1863 | dependencies: 1864 | semver "^5.0.3" 1865 | 1866 | semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: 1867 | version "5.4.1" 1868 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 1869 | 1870 | send@0.16.1: 1871 | version "0.16.1" 1872 | resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" 1873 | dependencies: 1874 | debug "2.6.9" 1875 | depd "~1.1.1" 1876 | destroy "~1.0.4" 1877 | encodeurl "~1.0.1" 1878 | escape-html "~1.0.3" 1879 | etag "~1.8.1" 1880 | fresh "0.5.2" 1881 | http-errors "~1.6.2" 1882 | mime "1.4.1" 1883 | ms "2.0.0" 1884 | on-finished "~2.3.0" 1885 | range-parser "~1.2.0" 1886 | statuses "~1.3.1" 1887 | 1888 | serve-static@1.13.1: 1889 | version "1.13.1" 1890 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" 1891 | dependencies: 1892 | encodeurl "~1.0.1" 1893 | escape-html "~1.0.3" 1894 | parseurl "~1.3.2" 1895 | send "0.16.1" 1896 | 1897 | set-blocking@~2.0.0: 1898 | version "2.0.0" 1899 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1900 | 1901 | set-immediate-shim@^1.0.1: 1902 | version "1.0.1" 1903 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 1904 | 1905 | setprototypeof@1.0.3: 1906 | version "1.0.3" 1907 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" 1908 | 1909 | setprototypeof@1.1.0: 1910 | version "1.1.0" 1911 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" 1912 | 1913 | shebang-command@^1.2.0: 1914 | version "1.2.0" 1915 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1916 | dependencies: 1917 | shebang-regex "^1.0.0" 1918 | 1919 | shebang-regex@^1.0.0: 1920 | version "1.0.0" 1921 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1922 | 1923 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1924 | version "3.0.2" 1925 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1926 | 1927 | sntp@1.x.x: 1928 | version "1.0.9" 1929 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 1930 | dependencies: 1931 | hoek "2.x.x" 1932 | 1933 | socket.io-adapter@~1.1.0: 1934 | version "1.1.1" 1935 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" 1936 | 1937 | socket.io-client@2.0.4: 1938 | version "2.0.4" 1939 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.0.4.tgz#0918a552406dc5e540b380dcd97afc4a64332f8e" 1940 | dependencies: 1941 | backo2 "1.0.2" 1942 | base64-arraybuffer "0.1.5" 1943 | component-bind "1.0.0" 1944 | component-emitter "1.2.1" 1945 | debug "~2.6.4" 1946 | engine.io-client "~3.1.0" 1947 | has-cors "1.1.0" 1948 | indexof "0.0.1" 1949 | object-component "0.0.3" 1950 | parseqs "0.0.5" 1951 | parseuri "0.0.5" 1952 | socket.io-parser "~3.1.1" 1953 | to-array "0.1.4" 1954 | 1955 | socket.io-parser@~3.1.1: 1956 | version "3.1.2" 1957 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.2.tgz#dbc2282151fc4faebbe40aeedc0772eba619f7f2" 1958 | dependencies: 1959 | component-emitter "1.2.1" 1960 | debug "~2.6.4" 1961 | has-binary2 "~1.0.2" 1962 | isarray "2.0.1" 1963 | 1964 | socket.io@^2.0.3: 1965 | version "2.0.4" 1966 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" 1967 | dependencies: 1968 | debug "~2.6.6" 1969 | engine.io "~3.1.0" 1970 | socket.io-adapter "~1.1.0" 1971 | socket.io-client "2.0.4" 1972 | socket.io-parser "~3.1.1" 1973 | 1974 | source-map-support@^0.4.0: 1975 | version "0.4.18" 1976 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" 1977 | dependencies: 1978 | source-map "^0.5.6" 1979 | 1980 | source-map@^0.5.6: 1981 | version "0.5.7" 1982 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 1983 | 1984 | split@0.3: 1985 | version "0.3.3" 1986 | resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" 1987 | dependencies: 1988 | through "2" 1989 | 1990 | sshpk@^1.7.0: 1991 | version "1.13.1" 1992 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" 1993 | dependencies: 1994 | asn1 "~0.2.3" 1995 | assert-plus "^1.0.0" 1996 | dashdash "^1.12.0" 1997 | getpass "^0.1.1" 1998 | optionalDependencies: 1999 | bcrypt-pbkdf "^1.0.0" 2000 | ecc-jsbn "~0.1.1" 2001 | jsbn "~0.1.0" 2002 | tweetnacl "~0.14.0" 2003 | 2004 | "statuses@>= 1.3.1 < 2": 2005 | version "1.4.0" 2006 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" 2007 | 2008 | statuses@~1.3.1: 2009 | version "1.3.1" 2010 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" 2011 | 2012 | stream-combiner@~0.0.4: 2013 | version "0.0.4" 2014 | resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" 2015 | dependencies: 2016 | duplexer "~0.1.1" 2017 | 2018 | string-width@^1.0.1, string-width@^1.0.2: 2019 | version "1.0.2" 2020 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2021 | dependencies: 2022 | code-point-at "^1.0.0" 2023 | is-fullwidth-code-point "^1.0.0" 2024 | strip-ansi "^3.0.0" 2025 | 2026 | string-width@^2.0.0, string-width@^2.1.1: 2027 | version "2.1.1" 2028 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2029 | dependencies: 2030 | is-fullwidth-code-point "^2.0.0" 2031 | strip-ansi "^4.0.0" 2032 | 2033 | string_decoder@~1.0.3: 2034 | version "1.0.3" 2035 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 2036 | dependencies: 2037 | safe-buffer "~5.1.0" 2038 | 2039 | stringstream@~0.0.4: 2040 | version "0.0.5" 2041 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 2042 | 2043 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2044 | version "3.0.1" 2045 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2046 | dependencies: 2047 | ansi-regex "^2.0.0" 2048 | 2049 | strip-ansi@^4.0.0: 2050 | version "4.0.0" 2051 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2052 | dependencies: 2053 | ansi-regex "^3.0.0" 2054 | 2055 | strip-bom@^3.0.0: 2056 | version "3.0.0" 2057 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 2058 | 2059 | strip-eof@^1.0.0: 2060 | version "1.0.0" 2061 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2062 | 2063 | strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: 2064 | version "2.0.1" 2065 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2066 | 2067 | supports-color@^4.0.0: 2068 | version "4.5.0" 2069 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" 2070 | dependencies: 2071 | has-flag "^2.0.0" 2072 | 2073 | symbol-observable@1.0.1: 2074 | version "1.0.1" 2075 | resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" 2076 | 2077 | tar-pack@^3.4.0: 2078 | version "3.4.1" 2079 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" 2080 | dependencies: 2081 | debug "^2.2.0" 2082 | fstream "^1.0.10" 2083 | fstream-ignore "^1.0.5" 2084 | once "^1.3.3" 2085 | readable-stream "^2.1.4" 2086 | rimraf "^2.5.1" 2087 | tar "^2.2.1" 2088 | uid-number "^0.0.6" 2089 | 2090 | tar@^2.2.1: 2091 | version "2.2.1" 2092 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 2093 | dependencies: 2094 | block-stream "*" 2095 | fstream "^1.0.2" 2096 | inherits "2" 2097 | 2098 | term-size@^1.2.0: 2099 | version "1.2.0" 2100 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 2101 | dependencies: 2102 | execa "^0.7.0" 2103 | 2104 | through@2, through@~2.3, through@~2.3.1: 2105 | version "2.3.8" 2106 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2107 | 2108 | timed-out@^4.0.0: 2109 | version "4.0.1" 2110 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 2111 | 2112 | timers-ext@0.1: 2113 | version "0.1.2" 2114 | resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.2.tgz#61cc47a76c1abd3195f14527f978d58ae94c5204" 2115 | dependencies: 2116 | es5-ext "~0.10.14" 2117 | next-tick "1" 2118 | 2119 | to-array@0.1.4: 2120 | version "0.1.4" 2121 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" 2122 | 2123 | topo@1.x.x: 2124 | version "1.1.0" 2125 | resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" 2126 | dependencies: 2127 | hoek "2.x.x" 2128 | 2129 | touch@^3.1.0: 2130 | version "3.1.0" 2131 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 2132 | dependencies: 2133 | nopt "~1.0.10" 2134 | 2135 | tough-cookie@~2.3.0: 2136 | version "2.3.3" 2137 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" 2138 | dependencies: 2139 | punycode "^1.4.1" 2140 | 2141 | ts-node@^3.3.0: 2142 | version "3.3.0" 2143 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69" 2144 | dependencies: 2145 | arrify "^1.0.0" 2146 | chalk "^2.0.0" 2147 | diff "^3.1.0" 2148 | make-error "^1.1.1" 2149 | minimist "^1.2.0" 2150 | mkdirp "^0.5.1" 2151 | source-map-support "^0.4.0" 2152 | tsconfig "^6.0.0" 2153 | v8flags "^3.0.0" 2154 | yn "^2.0.0" 2155 | 2156 | tsconfig@^6.0.0: 2157 | version "6.0.0" 2158 | resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032" 2159 | dependencies: 2160 | strip-bom "^3.0.0" 2161 | strip-json-comments "^2.0.0" 2162 | 2163 | tunnel-agent@^0.6.0: 2164 | version "0.6.0" 2165 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 2166 | dependencies: 2167 | safe-buffer "^5.0.1" 2168 | 2169 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 2170 | version "0.14.5" 2171 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 2172 | 2173 | type-is@~1.6.15: 2174 | version "1.6.15" 2175 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" 2176 | dependencies: 2177 | media-typer "0.3.0" 2178 | mime-types "~2.1.15" 2179 | 2180 | typescript@^2.5.2: 2181 | version "2.6.2" 2182 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.2.tgz#3c5b6fd7f6de0914269027f03c0946758f7673a4" 2183 | 2184 | uid-number@^0.0.6: 2185 | version "0.0.6" 2186 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 2187 | 2188 | ultron@~1.1.0: 2189 | version "1.1.1" 2190 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 2191 | 2192 | undefsafe@0.0.3: 2193 | version "0.0.3" 2194 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" 2195 | 2196 | unique-string@^1.0.0: 2197 | version "1.0.0" 2198 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 2199 | dependencies: 2200 | crypto-random-string "^1.0.0" 2201 | 2202 | unpipe@1.0.0, unpipe@~1.0.0: 2203 | version "1.0.0" 2204 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2205 | 2206 | unzip-response@^2.0.1: 2207 | version "2.0.1" 2208 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 2209 | 2210 | update-notifier@^2.3.0: 2211 | version "2.3.0" 2212 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" 2213 | dependencies: 2214 | boxen "^1.2.1" 2215 | chalk "^2.0.1" 2216 | configstore "^3.0.0" 2217 | import-lazy "^2.1.0" 2218 | is-installed-globally "^0.1.0" 2219 | is-npm "^1.0.0" 2220 | latest-version "^3.0.0" 2221 | semver-diff "^2.0.0" 2222 | xdg-basedir "^3.0.0" 2223 | 2224 | url-parse-lax@^1.0.0: 2225 | version "1.0.0" 2226 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2227 | dependencies: 2228 | prepend-http "^1.0.1" 2229 | 2230 | util-deprecate@~1.0.1: 2231 | version "1.0.2" 2232 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2233 | 2234 | utils-merge@1.0.1: 2235 | version "1.0.1" 2236 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2237 | 2238 | uuid@^3.0.0: 2239 | version "3.1.0" 2240 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" 2241 | 2242 | uws@~0.14.4: 2243 | version "0.14.5" 2244 | resolved "https://registry.yarnpkg.com/uws/-/uws-0.14.5.tgz#67aaf33c46b2a587a5f6666d00f7691328f149dc" 2245 | 2246 | v8flags@^3.0.0: 2247 | version "3.0.1" 2248 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.1.tgz#dce8fc379c17d9f2c9e9ed78d89ce00052b1b76b" 2249 | dependencies: 2250 | homedir-polyfill "^1.0.1" 2251 | 2252 | validator@^7.0.0: 2253 | version "7.2.0" 2254 | resolved "https://registry.yarnpkg.com/validator/-/validator-7.2.0.tgz#a63dcbaba51d4350bf8df20988e0d5a54d711791" 2255 | 2256 | vary@~1.1.2: 2257 | version "1.1.2" 2258 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2259 | 2260 | verror@1.10.0: 2261 | version "1.10.0" 2262 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 2263 | dependencies: 2264 | assert-plus "^1.0.0" 2265 | core-util-is "1.0.2" 2266 | extsprintf "^1.2.0" 2267 | 2268 | which@^1.2.9: 2269 | version "1.3.0" 2270 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 2271 | dependencies: 2272 | isexe "^2.0.0" 2273 | 2274 | wide-align@^1.1.0: 2275 | version "1.1.2" 2276 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 2277 | dependencies: 2278 | string-width "^1.0.2" 2279 | 2280 | widest-line@^2.0.0: 2281 | version "2.0.0" 2282 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" 2283 | dependencies: 2284 | string-width "^2.1.1" 2285 | 2286 | wrappy@1: 2287 | version "1.0.2" 2288 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2289 | 2290 | write-file-atomic@^2.0.0: 2291 | version "2.3.0" 2292 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 2293 | dependencies: 2294 | graceful-fs "^4.1.11" 2295 | imurmurhash "^0.1.4" 2296 | signal-exit "^3.0.2" 2297 | 2298 | ws@~3.3.1: 2299 | version "3.3.3" 2300 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" 2301 | dependencies: 2302 | async-limiter "~1.0.0" 2303 | safe-buffer "~5.1.0" 2304 | ultron "~1.1.0" 2305 | 2306 | xdg-basedir@^3.0.0: 2307 | version "3.0.0" 2308 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 2309 | 2310 | xmlhttprequest-ssl@~1.5.4: 2311 | version "1.5.4" 2312 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.4.tgz#04f560915724b389088715cc0ed7813e9677bf57" 2313 | 2314 | xtend@^4.0.1: 2315 | version "4.0.1" 2316 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 2317 | 2318 | yallist@^2.1.2: 2319 | version "2.1.2" 2320 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 2321 | 2322 | yeast@0.1.2: 2323 | version "0.1.2" 2324 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" 2325 | 2326 | yn@^2.0.0: 2327 | version "2.0.0" 2328 | resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" 2329 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/bson@*": 6 | version "1.0.6" 7 | resolved "https://registry.yarnpkg.com/@types/bson/-/bson-1.0.6.tgz#8691f042d99dd163a5eb4dd6dde587d3449f7cda" 8 | dependencies: 9 | "@types/node" "*" 10 | 11 | "@types/events@*": 12 | version "1.1.0" 13 | resolved "https://registry.yarnpkg.com/@types/events/-/events-1.1.0.tgz#93b1be91f63c184450385272c47b6496fd028e02" 14 | 15 | "@types/mongodb@*": 16 | version "2.2.18" 17 | resolved "https://registry.yarnpkg.com/@types/mongodb/-/mongodb-2.2.18.tgz#6b62056c081c9bba42530c831cffb5da4e74804c" 18 | dependencies: 19 | "@types/bson" "*" 20 | "@types/events" "*" 21 | "@types/node" "*" 22 | 23 | "@types/mongoose@^4.7.23": 24 | version "4.7.30" 25 | resolved "https://registry.yarnpkg.com/@types/mongoose/-/mongoose-4.7.30.tgz#68d2071c4e250e7849f383bd3d4b233a220f70c8" 26 | dependencies: 27 | "@types/events" "*" 28 | "@types/mongodb" "*" 29 | "@types/node" "*" 30 | 31 | "@types/node@*": 32 | version "8.5.2" 33 | resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.2.tgz#83b8103fa9a2c2e83d78f701a9aa7c9539739aa5" 34 | 35 | async@2.1.4: 36 | version "2.1.4" 37 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" 38 | dependencies: 39 | lodash "^4.14.0" 40 | 41 | bluebird@3.5.0: 42 | version "3.5.0" 43 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" 44 | 45 | bson@~1.0.4: 46 | version "1.0.4" 47 | resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" 48 | 49 | buffer-shims@~1.0.0: 50 | version "1.0.0" 51 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 52 | 53 | core-util-is@~1.0.0: 54 | version "1.0.2" 55 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 56 | 57 | debug@2.6.9: 58 | version "2.6.9" 59 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 60 | dependencies: 61 | ms "2.0.0" 62 | 63 | es6-promise@3.2.1: 64 | version "3.2.1" 65 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" 66 | 67 | hooks-fixed@2.0.2: 68 | version "2.0.2" 69 | resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-2.0.2.tgz#20076daa07e77d8a6106883ce3f1722e051140b0" 70 | 71 | inherits@~2.0.1: 72 | version "2.0.3" 73 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 74 | 75 | isarray@~1.0.0: 76 | version "1.0.0" 77 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 78 | 79 | kareem@1.5.0: 80 | version "1.5.0" 81 | resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.5.0.tgz#e3e4101d9dcfde299769daf4b4db64d895d17448" 82 | 83 | lodash.get@4.4.2: 84 | version "4.4.2" 85 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 86 | 87 | lodash@^4.14.0: 88 | version "4.17.4" 89 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 90 | 91 | mongodb-core@2.1.17: 92 | version "2.1.17" 93 | resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.17.tgz#a418b337a14a14990fb510b923dee6a813173df8" 94 | dependencies: 95 | bson "~1.0.4" 96 | require_optional "~1.0.0" 97 | 98 | mongodb@2.2.33: 99 | version "2.2.33" 100 | resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.33.tgz#b537c471d34a6651b48f36fdbf29750340e08b50" 101 | dependencies: 102 | es6-promise "3.2.1" 103 | mongodb-core "2.1.17" 104 | readable-stream "2.2.7" 105 | 106 | mongoose@^4.12.2: 107 | version "4.13.7" 108 | resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.13.7.tgz#f760c770e6c8cdf34a6fe8b7443882b5fced1032" 109 | dependencies: 110 | async "2.1.4" 111 | bson "~1.0.4" 112 | hooks-fixed "2.0.2" 113 | kareem "1.5.0" 114 | lodash.get "4.4.2" 115 | mongodb "2.2.33" 116 | mpath "0.3.0" 117 | mpromise "0.5.5" 118 | mquery "2.3.3" 119 | ms "2.0.0" 120 | muri "1.3.0" 121 | regexp-clone "0.0.1" 122 | sliced "1.0.1" 123 | 124 | mpath@0.3.0: 125 | version "0.3.0" 126 | resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.3.0.tgz#7a58f789e9b5fd3c94520634157960f26bd5ef44" 127 | 128 | mpromise@0.5.5: 129 | version "0.5.5" 130 | resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6" 131 | 132 | mquery@2.3.3: 133 | version "2.3.3" 134 | resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.3.3.tgz#221412e5d4e7290ca5582dd16ea8f190a506b518" 135 | dependencies: 136 | bluebird "3.5.0" 137 | debug "2.6.9" 138 | regexp-clone "0.0.1" 139 | sliced "0.0.5" 140 | 141 | ms@2.0.0: 142 | version "2.0.0" 143 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 144 | 145 | muri@1.3.0: 146 | version "1.3.0" 147 | resolved "https://registry.yarnpkg.com/muri/-/muri-1.3.0.tgz#aeccf3db64c56aa7c5b34e00f95b7878527a4721" 148 | 149 | process-nextick-args@~1.0.6: 150 | version "1.0.7" 151 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 152 | 153 | readable-stream@2.2.7: 154 | version "2.2.7" 155 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" 156 | dependencies: 157 | buffer-shims "~1.0.0" 158 | core-util-is "~1.0.0" 159 | inherits "~2.0.1" 160 | isarray "~1.0.0" 161 | process-nextick-args "~1.0.6" 162 | string_decoder "~1.0.0" 163 | util-deprecate "~1.0.1" 164 | 165 | regexp-clone@0.0.1: 166 | version "0.0.1" 167 | resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" 168 | 169 | require_optional@~1.0.0: 170 | version "1.0.1" 171 | resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" 172 | dependencies: 173 | resolve-from "^2.0.0" 174 | semver "^5.1.0" 175 | 176 | resolve-from@^2.0.0: 177 | version "2.0.0" 178 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 179 | 180 | safe-buffer@~5.1.0: 181 | version "5.1.1" 182 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 183 | 184 | semver@^5.1.0: 185 | version "5.4.1" 186 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" 187 | 188 | sliced@0.0.5: 189 | version "0.0.5" 190 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-0.0.5.tgz#5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f" 191 | 192 | sliced@1.0.1: 193 | version "1.0.1" 194 | resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" 195 | 196 | string_decoder@~1.0.0: 197 | version "1.0.3" 198 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" 199 | dependencies: 200 | safe-buffer "~5.1.0" 201 | 202 | util-deprecate@~1.0.1: 203 | version "1.0.2" 204 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 205 | --------------------------------------------------------------------------------