From b8a658fdc4f9ef7b7d8d665aed5a2494be786140 Mon Sep 17 00:00:00 2001 From: xavcz Date: Tue, 15 Aug 2017 12:05:05 +0200 Subject: [PATCH] =?UTF-8?q?=E2=8A=82(=E2=97=95=E2=80=BF=E2=97=95)=E3=81=A4?= =?UTF-8?q?=20ADVANCED=20GRAPHQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 9 + README.md | 172 + api/.babelrc | 8 + api/.env.example | 4 + api/.eslintrc | 14 + api/.gitignore | 8 + api/index.js | 144 + api/package.json | 47 + api/src/model/Location.js | 32 + api/src/model/Place.js | 63 + api/src/model/User.js | 61 + api/src/model/index.js | 5 + api/src/model/utils.js | 68 + api/src/resolvers/Location.js | 10 + api/src/resolvers/Place.js | 52 + api/src/resolvers/User.js | 36 + api/src/resolvers/index.js | 6 + api/src/server/applyAuthentication.js | 64 + api/src/server/index.js | 86 + api/src/server/subscriptions.js | 5 + api/src/typeDefs/Location.graphql | 14 + api/src/typeDefs/Place.graphql | 23 + api/src/typeDefs/User.graphql | 29 + api/src/typeDefs/index.js | 29 + api/yarn.lock | 4466 +++++++++++++ screenshots/graphql_playground_screenshot.png | Bin 0 -> 117748 bytes screenshots/ui_screenshot.png | Bin 0 -> 110616 bytes ui/.babelrc | 13 + ui/.env.example | 1 + ui/.eslintrc | 14 + ui/.gitignore | 11 + ui/client.js | 22 + ui/package.json | 68 + ui/public/favicon.png | Bin 0 -> 1288 bytes ui/public/index.html | 22 + ui/server.js | 16 + ui/src/App/App.js | 25 + ui/src/App/BucketList/AddPlace/AddPlace.js | 59 + .../App/BucketList/AddPlace/Autocomplete.js | 56 + ui/src/App/BucketList/AddPlace/Input.js | 38 + .../AddPlace/createPlace.mutation.gql | 14 + .../BucketList/AddPlace/runSearch.query.gql | 6 + ui/src/App/BucketList/BucketList.js | 43 + ui/src/App/BucketList/List/List.js | 33 + ui/src/App/BucketList/List/Place/Place.js | 28 + ui/src/App/BucketList/List/Place/PlaceView.js | 89 + ui/src/App/BucketList/List/Place/Weather.js | 42 + .../List/Place/updatePlace.mutation.gql | 6 + ui/src/App/Error.js | 17 + ui/src/App/Home/Home.js | 62 + ui/src/App/Home/InfoDisk.js | 49 + ui/src/App/Home/LoginForm.js | 124 + ui/src/App/Home/Nav.js | 28 + ui/src/App/Home/Title.js | 12 + ui/src/App/Home/createUser.mutation.gql | 7 + ui/src/App/Home/currentUser.query.gql | 7 + ui/src/App/Loading.js | 26 + ui/src/App/Map/Map.js | 45 + ui/src/App/Map/SimpleMap.js | 62 + ui/src/App/Map/WeatherMarker.js | 52 + ui/src/App/Map/weather.query.gql | 7 + ui/src/App/Routes.js | 21 + ui/src/App/mockPlaces.js | 33 + ui/src/App/styles.js | 56 + ui/src/client.js | 28 + ui/src/components/App.js | 17 + ui/src/components/Button.js | 68 + ui/src/components/ErrorOverlay.js | 36 + ui/src/components/Header.js | 31 + ui/src/components/Html.js | 29 + ui/src/graphql/Location.fragment.gql | 5 + ui/src/graphql/Place.fragment.gql | 5 + ui/src/graphql/User.fragment.gql | 4 + ui/src/graphql/getPlaces.query.gql | 14 + ui/src/server.js | 63 + ui/webpack.config.client.js | 51 + ui/webpack.config.server.js | 31 + ui/yarn.lock | 5548 +++++++++++++++++ 78 files changed, 12599 insertions(+) create mode 100644 .editorconfig create mode 100644 README.md create mode 100755 api/.babelrc create mode 100644 api/.env.example create mode 100644 api/.eslintrc create mode 100644 api/.gitignore create mode 100644 api/index.js create mode 100755 api/package.json create mode 100644 api/src/model/Location.js create mode 100644 api/src/model/Place.js create mode 100644 api/src/model/User.js create mode 100644 api/src/model/index.js create mode 100644 api/src/model/utils.js create mode 100644 api/src/resolvers/Location.js create mode 100644 api/src/resolvers/Place.js create mode 100644 api/src/resolvers/User.js create mode 100644 api/src/resolvers/index.js create mode 100644 api/src/server/applyAuthentication.js create mode 100755 api/src/server/index.js create mode 100644 api/src/server/subscriptions.js create mode 100644 api/src/typeDefs/Location.graphql create mode 100644 api/src/typeDefs/Place.graphql create mode 100644 api/src/typeDefs/User.graphql create mode 100644 api/src/typeDefs/index.js create mode 100644 api/yarn.lock create mode 100644 screenshots/graphql_playground_screenshot.png create mode 100644 screenshots/ui_screenshot.png create mode 100644 ui/.babelrc create mode 100644 ui/.env.example create mode 100644 ui/.eslintrc create mode 100644 ui/.gitignore create mode 100644 ui/client.js create mode 100644 ui/package.json create mode 100644 ui/public/favicon.png create mode 100644 ui/public/index.html create mode 100644 ui/server.js create mode 100644 ui/src/App/App.js create mode 100644 ui/src/App/BucketList/AddPlace/AddPlace.js create mode 100644 ui/src/App/BucketList/AddPlace/Autocomplete.js create mode 100644 ui/src/App/BucketList/AddPlace/Input.js create mode 100644 ui/src/App/BucketList/AddPlace/createPlace.mutation.gql create mode 100644 ui/src/App/BucketList/AddPlace/runSearch.query.gql create mode 100644 ui/src/App/BucketList/BucketList.js create mode 100644 ui/src/App/BucketList/List/List.js create mode 100644 ui/src/App/BucketList/List/Place/Place.js create mode 100644 ui/src/App/BucketList/List/Place/PlaceView.js create mode 100644 ui/src/App/BucketList/List/Place/Weather.js create mode 100644 ui/src/App/BucketList/List/Place/updatePlace.mutation.gql create mode 100644 ui/src/App/Error.js create mode 100644 ui/src/App/Home/Home.js create mode 100644 ui/src/App/Home/InfoDisk.js create mode 100644 ui/src/App/Home/LoginForm.js create mode 100644 ui/src/App/Home/Nav.js create mode 100644 ui/src/App/Home/Title.js create mode 100644 ui/src/App/Home/createUser.mutation.gql create mode 100644 ui/src/App/Home/currentUser.query.gql create mode 100644 ui/src/App/Loading.js create mode 100644 ui/src/App/Map/Map.js create mode 100644 ui/src/App/Map/SimpleMap.js create mode 100644 ui/src/App/Map/WeatherMarker.js create mode 100644 ui/src/App/Map/weather.query.gql create mode 100644 ui/src/App/Routes.js create mode 100644 ui/src/App/mockPlaces.js create mode 100644 ui/src/App/styles.js create mode 100644 ui/src/client.js create mode 100644 ui/src/components/App.js create mode 100644 ui/src/components/Button.js create mode 100644 ui/src/components/ErrorOverlay.js create mode 100644 ui/src/components/Header.js create mode 100644 ui/src/components/Html.js create mode 100644 ui/src/graphql/Location.fragment.gql create mode 100644 ui/src/graphql/Place.fragment.gql create mode 100644 ui/src/graphql/User.fragment.gql create mode 100644 ui/src/graphql/getPlaces.query.gql create mode 100644 ui/src/server.js create mode 100644 ui/webpack.config.client.js create mode 100644 ui/webpack.config.server.js create mode 100644 ui/yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e116c30 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +# editorconfig.org +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +insert_final_newline = true \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..49c7489 --- /dev/null +++ b/README.md @@ -0,0 +1,172 @@ +# OK GROW! Training + +Welcome to Advanced GraphQL! In order to make the best use of peoples' time, we ask you to **please take the time to set a few things up before the class. NOTE: If your employer-provided laptop uses a proxy, it may block these services. The best solution is to use a personal laptop which has unrestricted access to the internet. If you are blocked on this, please contact us as soon as possible**. + +## For students coming from GraphQL Fundamentals + +You will need one more api ([Apollo Engine](https://engine.apollographql.com/)), but you can start with your .env files from the fundamentals class. + +You can see that we have also made a few changes to the project: + +- The Create React App structure has been "ejected" (we have a webpack config) +- We are therefore able to use .gql files for queries instead of .js +- We have used fragments to standardize query fields between different client GraphQL operations. +- We have split our schema up into multiple files + +These changes form a better foundation for advanced GraphQL patterns. + +## Setup Success looks like this + +You will need to get two dev servers working, one for the GraphQL API, and one for the React UI. + +If the `api` server is running correctly, you will see the following at [localhost:4000](http://localhost:4000): + +![A correctly configured API server](screenshots/graphql_playground_screenshot.png) + +Detailed instructions can be found [here](#API-server-setup) + +If the `ui` server is running correctly, you will see the following at [localhost:3000](http://localhost:3000/). Logging in won't work yet + +![A correctly configured client app](screenshots/ui_screenshot.png) + +Detailed instructions can be found [here](#UI-server-setup) + +## About the Class + +### Versioning + +We’ll use [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) to complete exercises. + +### Code editor + +We recommend [VS Code](https://code.visualstudio.com/) with the following packages installed: + +- ESLint +- One of: + - GraphQL for VSCode (or) + - GraphQL (newer) +- Prettier - Code formatter + +If you prefer to use another editor, please check for corresponding packages. + +### Node.js + +You’ll need Node.js installed. We recommend the use of [NVM](https://nvm.sh). You can also install it from the [official website](https://nodejs.org). **We’ll use Node 8 (LTS).** The packages are not guaranteed to work with other releases. + +Though Node comes with a package manager called npm, we’ll use [Yarn](https://yarnpkg.com), a modern deterministic packager. + +## Prerequisite knowledge + +We will explore all of this thoroughly during the course, but if you are not comfortable with the following concepts, these links are worth a look. + +### JavaScript basics + +We won’t cover basic JS syntax. You should know at least how to write a function. If you don’t, please take this free course on [Codecademy](https://www.codecademy.com). + +### ES2015+ + +Recent tools are making good use of the newest features in ES2015 and even ES2016 and ES2017. The newest JavaScript is a joy to use. If you haven't tried these, we hope you'll enjoy getting to know the new JS: http://es6-features.org/ + +Used in this class + +- modules with import/export +- const and let +- arrow functions +- destructuring, rest and spread operators +- template literals (everywhere, but a special use in GraphQL) +- async/await - APIs and Apollo +- Array.concat() + +### React + +We will be using [React](https://facebook.github.io/react/) to render client components. + +One nice thing about React is that it is close to base JS, so you should be able to follow even if you are new to it. Nevertheless, some understanding of it will be highly useful. We will implement the GraphQL integration with [render props](https://reactjs.org/docs/render-props.html). We'll help you if this is new to you. + +### Nice to have - GraphQL culture + +Some background on GraphQL: “[So what’s this GraphQL thing I keep hearing about?](https://medium.freecodecamp.com/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf)” + +We will be using [Apollo](https://www.apollographql.com/docs/) for client and server GraphQL operations. You can get a head start by reviewing the documentation, but we will cover everything you need to know during the class. + +## Questions before the course starts + +Depending on your current level, you can expect to spend up to several hours on this material. It's worth it, and you will get much more from the class. If anything here is confusing or you want to clarify a fine point, please get in touch. We are happy to answer your questions, before, during, and after the class. + +Ping us on Twitter: + +- Robert Dickert - [@rdickert](https://twitter.com/rdickert) +- Paul Dowman - [@pauldowman](https://twitter.com/pauldowman) + +Or email us at [training@okgrow.com](mailto:training@okgrow.com) + +## Code Quality + +We strive to use best practices in this repo, but we prioritize the learning experience where necessary. + +This usually just means a simplified file structure, but this app lacks some safety and security features, so please use your judgment when reusing this code. + +If you have any questions or concerns about specific code, please ask us; we love to talk about code quality. + +## Detailed setup instructions + +### API server setup + +```sh +# make a .env file from the example +cp .env.example .env +``` + +Update the .env file with your api keys: + +- [GOOGLE_API_KEY](https://cloud.google.com/maps-platform) – click "Get Started" and choose Places to enable an API key with `geocoding`. Google will collect billing information, but we will not incur any costs during this training. +- [DARKSKY_API_KEY](https://darksky.net/dev) +- [ENGINE_API_KEY](https://engine.apollographql.com/) + +```sh +# install the dependencies +yarn + +# run the API server +yarn start +``` + +#### Reset the database + +This is not required for setup, but if you end up with a lot of `place`s while developing or your data gets corrupted, you can reset the db to the default setup with: + +```sh +yarn reset-db +``` + +### UI server setup + +> This project was bootstrapped with [Create React App](https://github.com/facebookincubator/create-react-app). + +```sh +# make a .env file from the example +cp .env.example .env +``` + +Update the .env file with your api keys: + +- REACT_APP_GOOGLE_API_KEY: use the key you entered in the api folder as GOOGLE_API_KEY + +```sh +# install the dependencies +yarn + +# run the web server +yarn start +``` + +## Troubleshooting + +If you have issues you can't resolve, please contact us before the class if at all possible. If you resolve your problem, please let us know what you did so we can improve this readme. Here are a some pointers: + +- Make sure you are on **Node 8**. Both earlier and later versions may not work as expected. +- MongoDB errors: This app starts MongoDB automatically when you run the api server. If you get MongoDB errors, start by checking your Node version. If it still doesn't work, you can independently install Mongo and run the database with `mongod` before starting the api server. +- external API problems: + - Make sure you set up .env files in both `api/` and `ui/`. You'll need to restart the servers for changes to take effect. + - If Google gives you an authorization error, make sure your Google API key includes `geocoding`, and make a new one if not. + - Make sure your laptop is not blocking outside api calls via a proxy. You may be able to stop the proxy (e.g., in a Vagrant dev setup), but if you can't, you may want to use a personal laptop instead. Contact us if you think this is a blocker for you. diff --git a/api/.babelrc b/api/.babelrc new file mode 100755 index 0000000..df95525 --- /dev/null +++ b/api/.babelrc @@ -0,0 +1,8 @@ +{ + presets: ['env'], + plugins: [ + 'transform-runtime', + 'transform-async-generator-functions', + 'transform-object-rest-spread', + ], +} \ No newline at end of file diff --git a/api/.env.example b/api/.env.example new file mode 100644 index 0000000..a292faa --- /dev/null +++ b/api/.env.example @@ -0,0 +1,4 @@ +PORT=8080 +GOOGLE_API_KEY= +DARKSKY_API_KEY= +ENGINE_API_KEY= diff --git a/api/.eslintrc b/api/.eslintrc new file mode 100644 index 0000000..2b10647 --- /dev/null +++ b/api/.eslintrc @@ -0,0 +1,14 @@ +{ + "extends": ["prettier"], + "plugins": ["prettier"], + "rules": { + "prettier/prettier": [ + "error", + { + "singleQuote": true, + "trailingComma": "es5", + "printWidth": 80 + } + ] + } +} diff --git a/api/.gitignore b/api/.gitignore new file mode 100644 index 0000000..f75fc39 --- /dev/null +++ b/api/.gitignore @@ -0,0 +1,8 @@ +/db +/node_modules + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +.env diff --git a/api/index.js b/api/index.js new file mode 100644 index 0000000..5710ab6 --- /dev/null +++ b/api/index.js @@ -0,0 +1,144 @@ +import dotenv from 'dotenv-safe'; +import nodemon from 'nodemon'; +import fs from 'fs'; +import path from 'path'; +import mongoPrebuilt from 'mongodb-prebuilt'; +import denodeify from 'denodeify'; + +const dbpath = `${__dirname}/db`; + +dotenv.config(); + +const { + PORT = 8080, + MONGO_PORT = parseInt(PORT, 10) + 2, + MONGO_URL +} = process.env; + +// Taken from https://github.com/meteor/meteor/blob/debug-circle-timeout-promise-await/tools/utils/mongo-exit-codes.js +const MONGO_CODES = { + 0: { + code: 0, + symbol: 'EXIT_CLEAN', + longText: 'MongoDB exited cleanly' + }, + 1: { + code: 1, + // No symbol in the source. This is in src/mongo/base/initializer.cpp. + symbol: 'global-initialization', + longText: 'MongoDB failed global initialization' + }, + 2: { + code: 2, + symbol: 'EXIT_BADOPTIONS', + longText: + 'MongoDB was started with erroneous or incompatible command line options' + }, + 3: { + code: 3, + symbol: 'EXIT_REPLICATION_ERROR', + longText: + 'There was an inconsistency between hostnames specified\n' + + 'on the command line compared with hostnames stored in local.sources' + }, + 4: { + code: 4, + symbol: 'EXIT_NEED_UPGRADE', + longText: 'MongoDB needs to upgrade to use this database' + }, + 5: { + code: 5, + symbol: 'EXIT_SHARDING_ERROR', + longText: 'A moveChunk operation failed' + }, + 12: { + code: 12, + symbol: 'EXIT_KILL', + longText: 'The MongoDB process was killed, on Windows' + }, + 14: { + code: 14, + symbol: 'EXIT_ABRUPT', + longText: 'Unspecified unrecoverable error. Exit was not clean' + }, + 20: { + code: 20, + symbol: 'EXIT_NTSERVICE_ERROR', + longText: 'Error managing NT Service on Windows' + }, + 45: { + code: 45, + symbol: 'EXIT_FS', + longText: 'MongoDB cannot open or obtain a lock on a file' + }, + 47: { + code: 47, + symbol: 'EXIT_CLOCK_SKEW', + longText: 'MongoDB exited due to excess clock skew' + }, + 48: { + code: 48, + symbol: 'EXIT_NET_ERROR', + longText: + 'MongoDB exited because its port was closed, or was already\n' + + 'taken by a previous instance of MongoDB' + }, + 100: { + code: 100, + symbol: 'EXIT_UNCAUGHT', + longText: + 'MongoDB had an unspecified uncaught exception.\n' + + 'This can be caused by MongoDB being unable to write to a local database.\n' + + `Check that you have permissions to write to ${dbpath}. MongoDB does\n` + + 'not support filesystems like NFS that do not allow file locking.' + } +}; + +if (!MONGO_URL) { + console.log( + `Creating development MongoDB on mongodb://localhost:${MONGO_PORT}` + ); + + if (!fs.existsSync(dbpath)) { + fs.mkdirSync(dbpath); + } + + // Weirdly, this promise never resolves if Mongo starts. + // However, we'll just go ahead and start the node server anyway, + // and if we see an error, we'll quit + denodeify(mongoPrebuilt.start_server.bind(mongoPrebuilt))({ + auto_shutdown: true, + args: { + port: MONGO_PORT, + dbpath + } + }).catch(errorCode => { + const error = MONGO_CODES[errorCode]; + console.error(`Failed to start MongoDB server on port ${MONGO_PORT}`); + console.error( + `Error Code ${errorCode}: ${error ? error.longText : 'Unknown'}` + ); + process.exit(1); + }); +} + +nodemon({ + script: path.join('src/server', 'index.js'), + ext: 'js graphql', + exec: 'babel-node' +}).on('restart', () => console.log('Restarting server due to file change\n')); + +// Ensure stopping our parent process will properly kill nodemon's process +// Ala https://www.exratione.com/2013/05/die-child-process-die/ + +// SIGTERM AND SIGINT will trigger the exit event. +process.once('SIGTERM', function() { + process.exit(0); +}); +process.once('SIGINT', function() { + process.exit(0); +}); +// And the exit event shuts down the child. +process.once('exit', function() { + nodemon.emit('SIGINT'); +}); diff --git a/api/package.json b/api/package.json new file mode 100755 index 0000000..69b83f8 --- /dev/null +++ b/api/package.json @@ -0,0 +1,47 @@ +{ + "name": "training-api", + "version": "0.1.0", + "description": "", + "scripts": { + "start": "babel-node index.js", + "reset-db": "rm -rf db/" + }, + "author": "OK GROW! (Xavier Cazalot @xav_cz & Robert Dickert @rdickert)", + "devDependencies": { + "babel-cli": "^6.24.0", + "babel-eslint": "^7.2.3", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.6.0", + "denodeify": "^1.2.1", + "eslint": "^4.6.1", + "eslint-config-prettier": "^2.4.0", + "mongodb-prebuilt": "5.0.7", + "nodemon": "^1.11.0", + "prettier": "^1.7.0" + }, + "dependencies": { + "apollo-engine": "^1.1.2", + "apollo-link": "^1.2.3", + "apollo-link-http": "^1.5.5", + "apollo-server-express": "^2.1.0", + "body-parser": "^1.18.3", + "cors": "^2.8.4", + "dataloader": "^1.4.0", + "dotenv-safe": "^4.0.4", + "express": "^4.16.3", + "graphql": "^14.0.2", + "graphql-subscriptions": "^1.0.0", + "graphql-tools": "^4.0.0", + "jwt-simple": "^0.5.5", + "lodash.merge": "^4.6.1", + "mongodb": "^2.2.31", + "node-fetch": "^2.2.0", + "node-geocoder": "^3.22.0", + "nodeify": "^1.0.1", + "passport": "^0.3.2", + "passport-jwt": "^2.2.1", + "subscriptions-transport-ws": "^0.9.15" + } +} diff --git a/api/src/model/Location.js b/api/src/model/Location.js new file mode 100644 index 0000000..0116e77 --- /dev/null +++ b/api/src/model/Location.js @@ -0,0 +1,32 @@ +import NodeGeocoder from 'node-geocoder'; + +const { GOOGLE_API_KEY } = process.env; + +const geocoder = NodeGeocoder({ + provider: 'google', + apiKey: GOOGLE_API_KEY, +}); + +// basic loader making network request & returning a Promise +const loader = { + load: name => geocoder.geocode(name), +}; + +export default class Location { + async get(name) { + if (!name) { + return; + } + + try { + const [location] = await loader.load(name); + + return { + ...location, + id: `${location.latitude}:${location.longitude}`, + }; + } catch (e) { + throw new Error(e); + } + } +} diff --git a/api/src/model/Place.js b/api/src/model/Place.js new file mode 100644 index 0000000..e1aa429 --- /dev/null +++ b/api/src/model/Place.js @@ -0,0 +1,63 @@ +import DataLoader from 'dataloader'; +import { ObjectId } from 'mongodb'; +import { fromMongo, findByIds } from './utils'; + +export default class Place { + constructor(context) { + this.context = context; + this.collection = context.db.collection('places'); + this.loader = new DataLoader(ids => findByIds(this.collection, ids)); + } + + findOneById(id) { + return this.loader.load(id); + } + + async all({ lastCreatedAt = 0, limit = 100 }) { + const results = await this.collection + .find({ createdAt: { $gt: lastCreatedAt } }) + .sort({ createdAt: 1 }) + .limit(limit) + .toArray(); + + return results.map(fromMongo); + } + + async insert(doc) { + const docToInsert = { + ...doc, + createdAt: Date.now(), + updatedAt: Date.now(), + }; + + const { insertedId } = await this.collection.insertOne(docToInsert); + + return insertedId; + } + + async updateById(id, doc) { + const _id = new ObjectId(id); + const ret = await this.collection.update( + { _id }, + { + $set: { + ...doc, + updatedAt: Date.now(), + }, + } + ); + this.loader.clear(id); + + return ret; + } + + async removeById(id) { + const _id = new ObjectId(id); + const ret = await this.collection.remove({ + _id, + }); + this.loader.clear(id); + + return ret; + } +} diff --git a/api/src/model/User.js b/api/src/model/User.js new file mode 100644 index 0000000..85f5605 --- /dev/null +++ b/api/src/model/User.js @@ -0,0 +1,61 @@ +import DataLoader from 'dataloader'; +import { ObjectId } from 'mongodb'; +import { fromMongo, findByIds } from './utils'; + +export default class User { + constructor(context) { + this.context = context; + this.collection = context.db.collection('user'); + } + + async findOneById(id) { + const [result] = await findByIds(this.collection, [id]); + return result; + } + + async all({ lastCreatedAt = 0, limit = 100 }) { + const results = await this.collection + .find({ + createdAt: { $gt: lastCreatedAt }, + }) + .sort({ createdAt: 1 }) + .limit(limit) + .toArray(); + + return results.map(fromMongo); + } + + async insert(doc) { + const docToInsert = { + ...doc, + createdAt: Date.now(), + updatedAt: Date.now(), + }; + + const { insertedId } = await this.collection.insertOne(docToInsert); + + return insertedId; + } + + async updateById(id, doc) { + const _id = new ObjectId(id); + const ret = await this.collection.update( + { _id }, + { + $set: { + ...doc, + updatedAt: Date.now(), + }, + } + ); + + return ret; + } + + async removeById(id) { + const _id = new ObjectId(id); + const ret = await this.collection.remove({ _id }); + + return ret; + } +} diff --git a/api/src/model/index.js b/api/src/model/index.js new file mode 100644 index 0000000..639099e --- /dev/null +++ b/api/src/model/index.js @@ -0,0 +1,5 @@ +import Place from './Place'; +import User from './User'; +import Location from './Location'; + +export { Place, User, Location }; diff --git a/api/src/model/utils.js b/api/src/model/utils.js new file mode 100644 index 0000000..d798595 --- /dev/null +++ b/api/src/model/utils.js @@ -0,0 +1,68 @@ +import { ObjectId } from 'mongodb'; + +export const fromMongo = item => ({ + ...item, + id: item._id.toString(), +}); + +export const findByIds = async (collection, ids) => { + try { + const _ids = ids.map(id => new ObjectId(id)); + + // uncomment to show how it works + console.log('// running findByIds', collection.namespace, ids); + + // get all unique results in one query + const docs = await collection.find({ _id: { $in: _ids } }).toArray(); + + // make a normalized object to map ids to db results + const idsMap = docs + .map(fromMongo) + .reduce((map, doc) => ({ ...map, [doc.id]: doc }), {}); + + // return results for each id in the order provided + return ids.map(id => idsMap[id]); + } catch (e) { + console.error(e); + throw new Error('Something bad happened with the Mongo loader'); + } +}; + +export const seedDb = async ({ + db, + pubsub, + Place: PlaceModel, + User: UserModel, + reset, +}) => { + const Place = new PlaceModel({ db, pubsub }); + const User = new UserModel({ db, pubsub }); + + if (reset) { + await Place.collection.remove({}); + await User.collection.remove({}); + } + + const places = await Place.all({}); + + if (places.length) { + console.log('Database has entries.'); + return; + } + + const userSeed = { username: 'John Doe' }; + + const placeSeeds = [ + { name: 'San Francisco', visited: true }, + { name: 'Toronto', visited: true }, + { name: 'Grand Canyon', visited: false }, + ]; + + const _id = await User.insert(userSeed); + + for (const seed of placeSeeds) { + await Place.insert({ ...seed, userId: _id.toString() }); + } + + console.log('Database seeded!'); +}; diff --git a/api/src/resolvers/Location.js b/api/src/resolvers/Location.js new file mode 100644 index 0000000..b980b56 --- /dev/null +++ b/api/src/resolvers/Location.js @@ -0,0 +1,10 @@ +const resolvers = { + Query: { + locationSuggestion: (root, { name }, { Location }) => Location.get(name), + }, + Place: { + location: (place, args, { Location }) => Location.get(place.name), + }, +}; + +export default resolvers; diff --git a/api/src/resolvers/Place.js b/api/src/resolvers/Place.js new file mode 100644 index 0000000..40ff1b3 --- /dev/null +++ b/api/src/resolvers/Place.js @@ -0,0 +1,52 @@ +const resolvers = { + Query: { + places: (root, args, { Place }) => { + return Place.all({}); + }, + }, + Mutation: { + createPlace: async (_, { input: { address } }, { Place, currentUser }) => { + if (!currentUser) { + throw new Error('Sorry, you need to be logged in to create a place!'); + } + + const doc = { + name: address, + visited: false, + userId: currentUser.id, + }; + + const insertedId = await Place.insert(doc); + + const newPlace = await Place.findOneById(insertedId); + + return newPlace; + }, + updatePlace: async ( + _, + { input: { id, visited } }, + { Place, currentUser } + ) => { + if (!currentUser) { + throw new Error('Sorry, you need to be logged in to update a place!'); + } + + const doc = await Place.findOneById(id); + + if (doc.userId !== currentUser.id) { + throw new Error("Hey, it's not your place!"); + } + + await Place.updateById(id, { + ...doc, + visited, + }); + + const updatedPlace = await Place.findOneById(id); + + return updatedPlace; + }, + }, +}; + +export default resolvers; diff --git a/api/src/resolvers/User.js b/api/src/resolvers/User.js new file mode 100644 index 0000000..3fda1f4 --- /dev/null +++ b/api/src/resolvers/User.js @@ -0,0 +1,36 @@ +const resolvers = { + Query: { + users(root, { lastCreatedAt, limit }, { User }) { + return User.all({ lastCreatedAt, limit }); + }, + currentUser(root, args, { currentUser }) { + return currentUser; + }, + }, + Mutation: { + async createUser(root, { input: { username } }, { User }) { + if (await User.collection.findOne({ username })) { + throw new Error('User already exists!'); + } + + const id = await User.insert({ username }); + return User.findOneById(id); + }, + + async updateUser(root, { id, input }, { User }) { + await User.updateById(id, input); + return User.findOneById(id); + }, + + removeUser(root, { id }, { User }) { + return User.removeById(id); + }, + }, + Place: { + user: (place, args, context) => { + return context.User.findOneById(place.userId); + }, + }, +}; + +export default resolvers; diff --git a/api/src/resolvers/index.js b/api/src/resolvers/index.js new file mode 100644 index 0000000..97c70ba --- /dev/null +++ b/api/src/resolvers/index.js @@ -0,0 +1,6 @@ +import merge from 'lodash.merge'; +import placeResolvers from './Place'; +import locationResolvers from './Location'; +import userResolvers from './User'; + +export default merge(placeResolvers, locationResolvers, userResolvers); diff --git a/api/src/server/applyAuthentication.js b/api/src/server/applyAuthentication.js new file mode 100644 index 0000000..3b9a6d4 --- /dev/null +++ b/api/src/server/applyAuthentication.js @@ -0,0 +1,64 @@ +import passport from 'passport'; +import { Strategy, ExtractJwt } from 'passport-jwt'; +import jwt from 'jwt-simple'; +import nodeify from 'nodeify'; + +const KEY = '0.2609809758287578'; + +async function userFromPayload(request, jwtPayload) { + if (!jwtPayload.userId) { + throw new Error('No userId in JWT'); + } + + return await request.context.User.findOneById(jwtPayload.userId); +} + +passport.use( + new Strategy( + { + jwtFromRequest: ExtractJwt.fromAuthHeader(), + secretOrKey: KEY, + passReqToCallback: true, + }, + (request, jwtPayload, done) => { + nodeify(userFromPayload(request, jwtPayload), done); + }, + ), +); + +export default function addPassport(app) { + app.use(passport.initialize()); + + app.post('/graphql', (req, res, next) => { + passport.authenticate('jwt', { session: false }, (err, user) => { + req.currentUser = user || null; + next(); + })(req, res, next); + }); + + app.post('/login', async (req, res, next) => { + try { + const { username } = req.body; + + if (!username) { + throw new Error('Username not set on request'); + } + + const user = await req.context.User.collection.findOne({ username }); + if (!user) { + throw new Error('User not found'); + } + + const payload = { + userId: user._id.toString(), + }; + + const token = jwt.encode(payload, KEY); + res.status(200); + res.json({ token }); + } catch (e) { + res.status(400); + res.json({ error: e.message }); + } + }); +} diff --git a/api/src/server/index.js b/api/src/server/index.js new file mode 100755 index 0000000..44e4b79 --- /dev/null +++ b/api/src/server/index.js @@ -0,0 +1,86 @@ +import express from 'express'; +import bodyParser from 'body-parser'; +import cors from 'cors'; +import { MongoClient } from 'mongodb'; +import { ApolloServer } from 'apollo-server-express'; +import { makeExecutableSchema } from 'graphql-tools'; +import typeDefs from '../typeDefs'; +import resolvers from '../resolvers'; +import { Place, Location, User } from '../model'; +import { seedDb } from '../model/utils'; + +import applyAuthentication from './applyAuthentication'; + +const { + PORT, + WS_PORT = parseInt(PORT, 10) + 1, + MONGO_PORT = parseInt(PORT, 10) + 2, + MONGO_URL = `mongodb://localhost:${MONGO_PORT}/database`, + ENGINE_API_KEY, +} = process.env; + +const startServer = async () => { + const schema = makeExecutableSchema({ typeDefs, resolvers }); + + const db = await MongoClient.connect(MONGO_URL); + + await seedDb({ db, Place, User /*, reset: true*/ }); + + const app = express(); + + app.use(cors()); + + app.use(bodyParser.json()); + + app.use((req, res, next) => { + req.context = { + Place: new Place({ db }), + User: new User({ db }), + Location: new Location(), + }; + next(); + }); + + applyAuthentication(app); + + const server = new ApolloServer({ + schema, + context: ({ req }) => ({ + currentUser: req.currentUser || null, + ...req.context, + }), + + playground: { + // FUTURE: code below can include an auth header, but it clears the + // tabs on refresh. There is a PR pending that may help. See: + // https://github.com/prisma/graphql-playground/pull/825 + // tabs: [ + // { + // endpoint: `http://localhost:${PORT}/graphql`, + // query: '', + // headers: { + // authorization: + // 'JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiI1YmFiZWZiYzIxYWU0ZTE3YTkwYjZjOTIifQ.NYgCHf-RtP6W6aM37l0a6rcjNO5wn8hVUc2wWa_WRpQ', + // }, + // }, + // ], + }, + // debug: true, + }); + + server.applyMiddleware({ app }); + + app.listen(PORT, () => { + console.log(`GraphQL API endpoint: http://localhost:${PORT}/graphql`); + }); +}; + +startServer() + .then(() => { + console.log('All systems go'); + }) + .catch(e => { + console.error('Uncaught error in startup'); + console.error(e); + console.trace(e); + }); diff --git a/api/src/server/subscriptions.js b/api/src/server/subscriptions.js new file mode 100644 index 0000000..f131b43 --- /dev/null +++ b/api/src/server/subscriptions.js @@ -0,0 +1,5 @@ +import { PubSub } from 'graphql-subscriptions'; + +const pubsub = new PubSub(); + +export default pubsub; diff --git a/api/src/typeDefs/Location.graphql b/api/src/typeDefs/Location.graphql new file mode 100644 index 0000000..e142780 --- /dev/null +++ b/api/src/typeDefs/Location.graphql @@ -0,0 +1,14 @@ +extend type Query { + locationSuggestion(name: String): Location +} + +extend type Place { + location: Location +} + +type Location { + id: ID! + formattedAddress: String! + latitude: Float! + longitude: Float! +} diff --git a/api/src/typeDefs/Place.graphql b/api/src/typeDefs/Place.graphql new file mode 100644 index 0000000..073c435 --- /dev/null +++ b/api/src/typeDefs/Place.graphql @@ -0,0 +1,23 @@ +extend type Query { + places: [Place] +} + +extend type Mutation { + createPlace(input: CreatePlaceInput!): Place! + updatePlace(input: UpdatePlaceInput!): Place! +} + +type Place { + id: ID! + name: String! + visited: Boolean! +} + +input CreatePlaceInput { + address: String! +} + +input UpdatePlaceInput { + id: ID! + visited: Boolean! +} diff --git a/api/src/typeDefs/User.graphql b/api/src/typeDefs/User.graphql new file mode 100644 index 0000000..ca05897 --- /dev/null +++ b/api/src/typeDefs/User.graphql @@ -0,0 +1,29 @@ +type User { + id: ID! + username: String! + createdAt: Float! + updatedAt: Float! +} + +extend type Query { + users(lastCreatedAt: Float, limit: Int): [User!] + currentUser: User +} + +extend type Place { + user: User +} + +input CreateUserInput { + username: String! +} + +input UpdateUserInput { + username: String! +} + +extend type Mutation { + createUser(input: CreateUserInput!): User + updateUser(id: ID!, input: UpdateUserInput!): User + removeUser(id: ID!): Boolean +} diff --git a/api/src/typeDefs/index.js b/api/src/typeDefs/index.js new file mode 100644 index 0000000..72648b7 --- /dev/null +++ b/api/src/typeDefs/index.js @@ -0,0 +1,29 @@ +import fs from 'fs'; + +const requireGraphQL = name => { + const filename = require.resolve(name); + return fs.readFileSync(filename, 'utf8'); +}; + +const typeDefs = [ + ` + type Query { + # A placeholder, please ignore + placeholder: Int + } + type Mutation { + # A placeholder, please ignore + placeholder: Int + } + type Subscription { + # A placeholder, please ignore + placeholder: Int + } +`, +]; + +typeDefs.push(requireGraphQL('./Location.graphql')); +typeDefs.push(requireGraphQL('./Place.graphql')); +typeDefs.push(requireGraphQL('./User.graphql')); + +export default typeDefs; diff --git a/api/yarn.lock b/api/yarn.lock new file mode 100644 index 0000000..7e7abd1 --- /dev/null +++ b/api/yarn.lock @@ -0,0 +1,4466 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apollographql/apollo-upload-server@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-upload-server/-/apollo-upload-server-5.0.3.tgz#8558c378ff6457de82147e5072c96a6b242773b7" + dependencies: + "@babel/runtime-corejs2" "^7.0.0-rc.1" + busboy "^0.2.14" + object-path "^0.11.4" + +"@apollographql/graphql-playground-html@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.0.tgz#15e1a042b97d6834e6d70b17cc73e1514fde9027" + +"@babel/runtime-corejs2@^7.0.0-rc.1": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.0.0.tgz#786711ee099c2c2af7875638866c1259eff30a8c" + dependencies: + core-js "^2.5.7" + regenerator-runtime "^0.12.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + +"@types/accepts@*", "@types/accepts@^1.3.5": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" + dependencies: + "@types/node" "*" + +"@types/body-parser@*", "@types/body-parser@1.17.0": + version "1.17.0" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bunyan@*": + version "1.8.4" + resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.4.tgz#69c11adc7b50538d45fb68d9ae39d062b9432f38" + dependencies: + "@types/events" "*" + "@types/node" "*" + +"@types/connect@*", "@types/connect@^3.4.31": + version "3.4.32" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" + dependencies: + "@types/node" "*" + +"@types/cookies@*": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.1.tgz#f9f204bd6767d389eea3b87609e30c090c77a540" + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + +"@types/cors@^2.8.4": + version "2.8.4" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.4.tgz#50991a759a29c0b89492751008c6af7a7c8267b0" + dependencies: + "@types/express" "*" + +"@types/events@*": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" + +"@types/express-serve-static-core@*": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.16.0.tgz#fdfe777594ddc1fe8eb8eccce52e261b496e43e7" + dependencies: + "@types/events" "*" + "@types/node" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@4.16.0", "@types/express@^4.0.36": + version "4.16.0" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.0.tgz#6d8bc42ccaa6f35cf29a2b7c3333cb47b5a32a19" + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + +"@types/http-assert@*": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.3.0.tgz#5e932606153da28e1d04f9043f4912cf61fd55dd" + +"@types/keygrip@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.1.tgz#ff540462d2fb4d0a88441ceaf27d287b01c3d878" + +"@types/koa-bodyparser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.2.0.tgz#04febc567f3d3dd40e3d1a0e095cdf7b07c4d7ce" + dependencies: + "@types/koa" "*" + +"@types/koa-compose@*": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.2.tgz#dc106e000bbf92a3ac900f756df47344887ee847" + +"@types/koa-router@^7.0.27": + version "7.0.32" + resolved "https://registry.yarnpkg.com/@types/koa-router/-/koa-router-7.0.32.tgz#a2d8adc65ad3d58aeb94d056650920c085817697" + dependencies: + "@types/koa" "*" + +"@types/koa@*", "@types/koa@^2.0.39": + version "2.0.46" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.0.46.tgz#24bc3cd405d10fcde81f876cd8285b44d4ddc3e9" + dependencies: + "@types/accepts" "*" + "@types/cookies" "*" + "@types/events" "*" + "@types/http-assert" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/long@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" + +"@types/mime@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.0.tgz#5a7306e367c539b9f6543499de8dd519fac37a8b" + +"@types/node@*", "@types/node@^10.1.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.0.tgz#ddd0d67a3b6c3810dd1a59e36675fa82de5e19ae" + +"@types/range-parser@*": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.2.tgz#fa8e1ad1d474688a757140c91de6dace6f4abc8d" + +"@types/restify@^5.0.7": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@types/restify/-/restify-5.0.9.tgz#95bf30b0fd7b92329a695bbd60feae019f3e31fd" + dependencies: + "@types/bunyan" "*" + "@types/node" "*" + "@types/spdy" "*" + +"@types/serve-static@*": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" + dependencies: + "@types/express-serve-static-core" "*" + "@types/mime" "*" + +"@types/spdy@*": + version "3.4.4" + resolved "https://registry.yarnpkg.com/@types/spdy/-/spdy-3.4.4.tgz#3282fd4ad8c4603aa49f7017dd520a08a345b2bc" + dependencies: + "@types/node" "*" + +"@types/ws@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-5.1.2.tgz#f02d3b1cd46db7686734f3ce83bdf46c49decd64" + dependencies: + "@types/events" "*" + "@types/node" "*" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +accepts@^1.3.5, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" + +agent-base@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +ajv-keywords@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0, ajv@^5.2.0, ajv@^5.2.3: + version "5.2.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +apollo-cache-control@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.2.5.tgz#0831ad796754a7beec858668f99e7517fe744a1e" + dependencies: + apollo-server-env "^2.0.3" + graphql-extensions "^0.2.1" + +apollo-datasource@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.1.3.tgz#e7ae9d20f29a8a35f239b02f0c47169cfd78d70b" + dependencies: + apollo-server-caching "0.1.2" + apollo-server-env "2.0.3" + +apollo-engine-binary-darwin@0.2018.6-20-gc0e4bb519: + version "0.2018.6-20-gc0e4bb519" + resolved "https://registry.yarnpkg.com/apollo-engine-binary-darwin/-/apollo-engine-binary-darwin-0.2018.6-20-gc0e4bb519.tgz#1458cf9af9adff1248730b9e7ea3408a778ff20e" + +apollo-engine-binary-linux@0.2018.6-20-gc0e4bb519: + version "0.2018.6-20-gc0e4bb519" + resolved "https://registry.yarnpkg.com/apollo-engine-binary-linux/-/apollo-engine-binary-linux-0.2018.6-20-gc0e4bb519.tgz#0f61d7e7888a58d8723516d1dc44d4c8a6688df2" + +apollo-engine-binary-windows@0.2018.6-20-gc0e4bb519: + version "0.2018.6-20-gc0e4bb519" + resolved "https://registry.yarnpkg.com/apollo-engine-binary-windows/-/apollo-engine-binary-windows-0.2018.6-20-gc0e4bb519.tgz#288c718a730f2a1f8bb0aae9fff3e6da23c1f00f" + +apollo-engine-reporting-protobuf@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.0.1.tgz#cd394f0f769c6f97d8621c4a7839095c84efcdb0" + dependencies: + protobufjs "^6.8.6" + +apollo-engine-reporting@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-0.0.6.tgz#c1a74dffce782525f8a3230e4e5228fbd05bbd59" + dependencies: + apollo-engine-reporting-protobuf "^0.0.1" + apollo-server-env "^2.0.3" + async-retry "^1.2.1" + graphql-extensions "^0.2.1" + lodash "^4.17.10" + +apollo-engine@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/apollo-engine/-/apollo-engine-1.1.2.tgz#ef8465fe5234b3bfe034b7e96d37bc441b72a9cb" + dependencies: + "@types/connect" "^3.4.31" + "@types/express" "^4.0.36" + "@types/koa" "^2.0.39" + "@types/koa-bodyparser" "^4.2.0" + "@types/koa-router" "^7.0.27" + "@types/restify" "^5.0.7" + optionalDependencies: + apollo-engine-binary-darwin "0.2018.6-20-gc0e4bb519" + apollo-engine-binary-linux "0.2018.6-20-gc0e4bb519" + apollo-engine-binary-windows "0.2018.6-20-gc0e4bb519" + +apollo-link-http-common@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.5.tgz#d094beb7971523203359bf830bfbfa7b4e7c30ed" + dependencies: + apollo-link "^1.2.3" + +apollo-link-http@^1.5.5: + version "1.5.5" + resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.5.tgz#7dbe851821771ad67fa29e3900c57f38cbd80da8" + dependencies: + apollo-link "^1.2.3" + apollo-link-http-common "^0.2.5" + +apollo-link@^1.2.2, apollo-link@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.3.tgz#9bd8d5fe1d88d31dc91dae9ecc22474d451fb70d" + dependencies: + apollo-utilities "^1.0.0" + zen-observable-ts "^0.8.10" + +apollo-server-caching@0.1.2, apollo-server-caching@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.1.2.tgz#f5b85701945110a5fca1956450e8553576635936" + dependencies: + lru-cache "^4.1.3" + +apollo-server-core@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.1.0.tgz#b56f9f1ddb948b257e738eb25c5fdfd2f2fb2e07" + dependencies: + "@apollographql/apollo-upload-server" "^5.0.3" + "@types/ws" "^5.1.2" + apollo-cache-control "^0.2.5" + apollo-datasource "^0.1.3" + apollo-engine-reporting "^0.0.6" + apollo-server-caching "^0.1.2" + apollo-server-env "^2.0.3" + apollo-server-errors "^2.0.2" + apollo-tracing "^0.2.5" + graphql-extensions "^0.2.1" + graphql-subscriptions "^0.5.8" + graphql-tag "^2.9.2" + graphql-tools "^3.0.4" + hash.js "^1.1.3" + lodash "^4.17.10" + subscriptions-transport-ws "^0.9.11" + ws "^5.2.0" + +apollo-server-env@2.0.3, apollo-server-env@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.0.3.tgz#3c13552cd33f400160076cf8e1c9b24be4d27e13" + dependencies: + node-fetch "^2.1.2" + util.promisify "^1.0.0" + +apollo-server-errors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.0.2.tgz#e9cbb1b74d2cd78aed23cd886ca2d0c186323b2b" + +apollo-server-express@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.1.0.tgz#b2d423c2c934df5c4e0a1b0d5f0088a9461f3c86" + dependencies: + "@apollographql/apollo-upload-server" "^5.0.3" + "@apollographql/graphql-playground-html" "^1.6.0" + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.17.0" + "@types/cors" "^2.8.4" + "@types/express" "4.16.0" + accepts "^1.3.5" + apollo-server-core "^2.1.0" + body-parser "^1.18.3" + cors "^2.8.4" + graphql-subscriptions "^0.5.8" + graphql-tools "^3.0.4" + type-is "^1.6.16" + +apollo-tracing@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.2.5.tgz#15bb8d6f37efe8c1bb6351e8e21521dd4f14c5f2" + dependencies: + apollo-server-env "^2.0.3" + graphql-extensions "^0.2.1" + +apollo-utilities@^1.0.0, apollo-utilities@^1.0.1: + version "1.0.21" + resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.0.21.tgz#cb8b5779fe275850b16046ff8373f4af2de90765" + dependencies: + fast-json-stable-stringify "^2.0.0" + fclone "^1.0.11" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + +async-retry@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" + dependencies: + retry "0.12.0" + +async@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-cli@^6.24.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" + dependencies: + babel-core "^6.26.0" + babel-polyfill "^6.26.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + commander "^2.11.0" + convert-source-map "^1.5.0" + fs-readdir-recursive "^1.0.0" + glob "^7.1.2" + lodash "^4.17.4" + output-file-sync "^1.1.2" + path-is-absolute "^1.0.1" + slash "^1.0.0" + source-map "^0.5.6" + v8flags "^2.1.1" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-eslint@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" + dependencies: + babel-code-frame "^6.22.0" + babel-traverse "^6.23.1" + babel-types "^6.23.0" + babylon "^6.17.0" + +babel-generator@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.0.tgz#2de1c782a780a0a5d605d199c957596da43c44e4" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.17.0, babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64url@2.0.0, base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + +bl@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" + dependencies: + readable-stream "^2.0.5" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.4.6, bluebird@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + +body-parser@^1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" + on-finished "~2.3.0" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +boxen@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.1.tgz#0f11e7fe344edb9397977fc13ede7f64d956481d" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^1.0.0" + +brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browserslist@^2.1.2: + version "2.5.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.5.1.tgz#68e4bc536bbcc6086d62843a2ffccea8396821c6" + dependencies: + caniuse-lite "^1.0.30000744" + electron-to-chromium "^1.3.24" + +bson@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer-to-vinyl@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz#00f15faee3ab7a1dda2cde6d9121bffdd07b2262" + dependencies: + file-type "^3.1.0" + readable-stream "^2.0.2" + uuid "^2.0.1" + vinyl "^1.0.0" + +busboy@^0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + dependencies: + dicer "0.2.5" + readable-stream "1.1.x" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-lite@^1.0.30000744: + version "1.0.30000745" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000745.tgz#20d6fede1157a4935133502946fc7e0e6b880da5" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + +cliui@^3.0.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +commander@~2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +convert-source-map@^1.1.1, convert-source-map@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-js@^2.5.7: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cors@^2.8.4: + version "2.8.4" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.4.tgz#2bd381f2eb201020105cd50ea59da63090694686" + dependencies: + object-assign "^4" + vary "^1" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +dataloader@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" + +debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +decompress-tar@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-3.1.0.tgz#217c789f9b94450efaadc5c5e537978fc333c466" + dependencies: + is-tar "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-tarbz2@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz#8b23935681355f9f189d87256a0f8bdd96d9666d" + dependencies: + is-bzip2 "^1.0.0" + object-assign "^2.0.0" + seek-bzip "^1.0.3" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-targz@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-3.1.0.tgz#b2c13df98166268991b715d6447f642e9696f5a0" + dependencies: + is-gzip "^1.0.0" + object-assign "^2.0.0" + strip-dirs "^1.0.0" + tar-stream "^1.1.1" + through2 "^0.6.1" + vinyl "^0.4.3" + +decompress-unzip@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-3.4.0.tgz#61475b4152066bbe3fee12f9d629d15fe6478eeb" + dependencies: + is-zip "^1.0.0" + read-all-stream "^3.0.0" + stat-mode "^0.2.0" + strip-dirs "^1.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + yauzl "^2.2.1" + +decompress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-3.0.0.tgz#af1dd50d06e3bfc432461d37de11b38c0d991bed" + dependencies: + buffer-to-vinyl "^1.0.0" + concat-stream "^1.4.6" + decompress-tar "^3.0.0" + decompress-tarbz2 "^3.0.0" + decompress-targz "^3.0.0" + decompress-unzip "^3.0.0" + stream-combiner2 "^1.1.1" + vinyl-assign "^1.0.1" + vinyl-fs "^2.2.0" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + dependencies: + object-keys "^1.0.12" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + +depd@1.1.1, depd@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +dotenv-safe@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/dotenv-safe/-/dotenv-safe-4.0.4.tgz#8b0e7ced8e70b1d3c5d874ef9420e406f39425b3" + dependencies: + dotenv "^4.0.0" + +dotenv@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + +duplexer2@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ecdsa-sig-formatter@1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz#4bc926274ec3b5abb5016e7e1d60921ac262b2a1" + dependencies: + base64url "^2.0.0" + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +electron-to-chromium@^1.3.24: + version "1.3.24" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz#9b7b88bb05ceb9fa016a177833cc2dde388f21b6" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + +end-of-stream@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +es-abstract@^1.5.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + +es6-promise@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +eslint-config-prettier@^2.4.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.6.0.tgz#f21db0ebb438ad678fb98946097c4bb198befccc" + dependencies: + get-stdin "^5.0.1" + +eslint-scope@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^4.6.1: + version "4.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.8.0.tgz#229ef0e354e0e61d837c7a80fdfba825e199815e" + dependencies: + ajv "^5.2.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.0.1" + doctrine "^2.0.0" + eslint-scope "^3.7.1" + espree "^3.5.1" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^9.17.0" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "^4.0.1" + text-table "~0.2.0" + +espree@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.1.tgz#0c988b8ab46db53100a1954ae4ba995ddd27d87e" + dependencies: + acorn "^5.1.1" + acorn-jsx "^3.0.0" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +eventemitter3@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +express@^4.16.3: + version "4.16.3" + resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@3, extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.5.tgz#52c249a3981b9ba187c7cacf5beb50bf1d91a6bc" + dependencies: + iconv-lite "^0.4.17" + jschardet "^1.4.2" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fclone@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fclone/-/fclone-1.0.11.tgz#10e85da38bfea7fc599341c296ee1d77266ee640" + +fd-slicer@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + dependencies: + pend "~1.2.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-type@^3.1.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flat-cache@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getos@^2.7.0: + version "2.8.4" + resolved "https://registry.yarnpkg.com/getos/-/getos-2.8.4.tgz#7b8603d3619c28e38cb0fe7a4f63c3acb80d5163" + dependencies: + async "2.1.4" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.17.0, globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +graphql-extensions@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.2.1.tgz#7697e0fcea2e622afe9e24dd31fc84f533e84c70" + dependencies: + apollo-server-env "^2.0.3" + +graphql-subscriptions@^0.5.8: + version "0.5.8" + resolved "http://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz#13a6143c546bce390404657dc73ca501def30aa7" + dependencies: + iterall "^1.2.1" + +graphql-subscriptions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.0.0.tgz#475267694b3bd465af6477dbab4263a3f62702b8" + dependencies: + iterall "^1.2.1" + +graphql-tag@^2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.9.2.tgz#2f60a5a981375f430bf1e6e95992427dc18af686" + +graphql-tools@^3.0.4: + version "3.1.1" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-3.1.1.tgz#d593358f01e7c8b1671a17b70ddb034dea9dbc50" + dependencies: + apollo-link "^1.2.2" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql-tools@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.0.tgz#6ea01937c6f947212f83567ba687e97c22fdd2a6" + dependencies: + apollo-link "^1.2.3" + apollo-utilities "^1.0.1" + deprecated-decorator "^0.1.6" + iterall "^1.1.3" + uuid "^3.1.0" + +graphql@^14.0.2: + version "14.0.2" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.0.2.tgz#7dded337a4c3fd2d075692323384034b357f5650" + dependencies: + iterall "^1.2.2" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + dependencies: + function-bind "^1.1.1" + +hash.js@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.5.tgz#e38ab4b85dfb1e0c40fe9265c0e9b54854c23812" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +http-errors@1.6.2, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-errors@1.6.3, http-errors@~1.6.3: + version "1.6.3" + resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +iconv-lite@0.4.19, iconv-lite@^0.4.17: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +ignore@^3.3.3: + version "3.3.5" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.5.tgz#c4e715455f6073a8d7e5dae72d2fc9d71663dba6" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ipaddr.js@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" + +is-absolute@^0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-bzip2@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-bzip2/-/is-bzip2-1.0.0.tgz#5ee58eaa5a2e9c80e21407bedf23ae5ac091b3fc" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + +is-natural-number@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-2.1.1.tgz#7d4c5728377ef386c3e194a9911bf57c6dc335e7" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-promise@~1, is-promise@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-symbol@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + dependencies: + has-symbols "^1.0.0" + +is-tar@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-tar/-/is-tar-1.0.0.tgz#2f6b2e1792c1f5bb36519acaa9d65c0d26fe853d" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-zip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-zip/-/is-zip-1.0.0.tgz#47b0a8ff4d38a76431ccfd99a8e15a4c86ba2325" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isemail@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-1.2.0.tgz#be03df8cc3e29de4d2c5df6501263f1fa4595e9a" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +iterall@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.3.tgz#1cbbff96204056dde6656e2ed2e2226d0e6d72c9" + +iterall@^1.2.1, iterall@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" + +joi@^6.10.1: + version "6.10.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-6.10.1.tgz#4d50c318079122000fe5f16af1ff8e1917b77e06" + dependencies: + hoek "2.x.x" + isemail "1.x.x" + moment "2.x.x" + topo "1.x.x" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.9.1: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jschardet@^1.4.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.5.1.tgz#c519f629f86b3a5bedba58a88d311309eec097f9" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonwebtoken@^7.0.0: + version "7.4.3" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-7.4.3.tgz#77f5021de058b605a1783fa1283e99812e645638" + dependencies: + joi "^6.10.1" + jws "^3.1.4" + lodash.once "^4.0.0" + ms "^2.0.0" + xtend "^4.0.1" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jwa@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.1.5.tgz#a0552ce0220742cd52e153774a32905c30e756e5" + dependencies: + base64url "2.0.0" + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.9" + safe-buffer "^5.0.1" + +jws@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.1.4.tgz#f9e8b9338e8a847277d6444b1464f61880e050a2" + dependencies: + base64url "^2.0.0" + jwa "^1.1.4" + safe-buffer "^5.0.1" + +jwt-simple@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/jwt-simple/-/jwt-simple-0.5.5.tgz#53f60ceab266708450a22cafa6fd93cfa2ccfa3a" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.merge@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@^4.17.10: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-db@~1.36.0: + version "1.36.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" + +mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.17, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mime-types@~2.1.18: + version "2.1.20" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + dependencies: + mime-db "~1.36.0" + +mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +moment@2.x.x: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +mongodb-core@2.1.15: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.15.tgz#841f53b87ffff4c7458189c35c8ae827e1169764" + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb-download@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mongodb-download/-/mongodb-download-1.3.2.tgz#0a2e8868eaea6c18e2a7f7cb7c8048ff10809337" + dependencies: + debug "^2.2.0" + getos "^2.7.0" + yargs "^3.26.0" + +mongodb-prebuilt@5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/mongodb-prebuilt/-/mongodb-prebuilt-5.0.7.tgz#3754398d610612ce12cb79834fdb34ecd0d291f2" + dependencies: + debug "^2.2.0" + decompress "^3.0.0" + https-proxy-agent "^1.0.0" + mongodb-download "^1.3.2" + spawn-sync "1.0.15" + yargs "^3.26.0" + +mongodb@^2.2.31: + version "2.2.31" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.31.tgz#1940445c661e19217bb3bf8245d9854aaef548db" + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.15" + readable-stream "2.2.7" + +ms@2.0.0, ms@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.3.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-fetch@^2.1.2, node-fetch@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.2.0.tgz#4ee79bde909262f9775f731e3656d0db55ced5b5" + +node-geocoder@^3.22.0: + version "3.22.0" + resolved "https://registry.yarnpkg.com/node-geocoder/-/node-geocoder-3.22.0.tgz#af82277d3ceceb1f225ea81c3cabc726b4ff7e81" + dependencies: + bluebird "^3.4.6" + request "^2.74.0" + request-promise "^4.1.1" + +node-pre-gyp@^0.6.36: + version "0.6.38" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz#e92a20f83416415bb4086f6d1fb78b3da73d113d" + dependencies: + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nodeify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nodeify/-/nodeify-1.0.1.tgz#64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d" + dependencies: + is-promise "~1.0.0" + promise "~1.3.0" + +nodemon@^1.11.0: + version "1.12.1" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.12.1.tgz#996a56dc49d9f16bbf1b78a4de08f13634b3878d" + dependencies: + chokidar "^1.7.0" + debug "^2.6.8" + es6-promise "^3.3.1" + ignore-by-default "^1.0.1" + lodash.defaults "^3.1.2" + minimatch "^3.0.4" + ps-tree "^1.1.0" + touch "^3.1.0" + undefsafe "0.0.3" + update-notifier "^2.2.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" + +object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + +object-path@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-shim@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +passport-jwt@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-2.2.1.tgz#0e004c94071319d673d9d9bcfd1574a868011527" + dependencies: + jsonwebtoken "^7.0.0" + passport-strategy "^1.0.0" + +passport-strategy@1.x.x, passport-strategy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" + +passport@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/passport/-/passport-0.3.2.tgz#9dd009f915e8fe095b0124a01b8f82da07510102" + dependencies: + passport-strategy "1.x.x" + pause "0.0.1" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +prettier@^1.7.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.7.4.tgz#5e8624ae9363c80f95ec644584ecdf55d74f93fa" + +private@^0.1.6, private@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + +promise@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" + dependencies: + is-promise "~1" + +protobufjs@^6.8.6: + version "6.8.8" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c" + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +proxy-addr@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.8.0" + +ps-tree@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +qs@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" + dependencies: + bytes "3.0.0" + http-errors "1.6.3" + iconv-lite "0.4.23" + unpipe "1.0.0" + +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +readable-stream@1.1.x: + version "1.1.14" + resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.7.tgz#07057acbe2467b22042d36f98c5ad507054e95b1" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regenerator-runtime@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise@^4.1.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.2.tgz#d1ea46d654a6ee4f8ee6a4fea1018c22911904b4" + dependencies: + bluebird "^3.5.0" + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@^2.74.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +require_optional@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.1.tgz#4cf35a4247f64ca3df8c2ef208cc494b1ca8fc2e" + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +retry@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + +seek-bzip@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" + dependencies: + commander "~2.8.1" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + dependencies: + is-fullwidth-code-point "^2.0.0" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b" + dependencies: + hoek "4.x.x" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +spawn-sync@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + dependencies: + concat-stream "^1.4.7" + os-shim "^0.1.2" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stat-mode@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" + +"statuses@>= 1.3.1 < 2": + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + +statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-dirs@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-1.1.1.tgz#960bbd1287844f3975a4558aa103a8255e2456a0" + dependencies: + chalk "^1.0.0" + get-stdin "^4.0.1" + is-absolute "^0.1.5" + is-natural-number "^2.0.0" + minimist "^1.1.0" + sum-up "^1.0.1" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +subscriptions-transport-ws@^0.9.11, subscriptions-transport-ws@^0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.15.tgz#68a8b7ba0037d8c489fb2f5a102d1494db297d0d" + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" + +sum-up@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" + dependencies: + chalk "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^4.0.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +symbol-observable@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +table@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar-stream@^1.1.1: + version "1.5.4" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" + dependencies: + bl "^1.0.0" + end-of-stream "^1.0.0" + readable-stream "^2.0.0" + xtend "^4.0.0" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, through@^2.3.6, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +topo@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/topo/-/topo-1.1.0.tgz#e9d751615d1bb87dc865db182fa1ca0a5ef536d5" + dependencies: + hoek "2.x.x" + +touch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" + dependencies: + nopt "~1.0.10" + +tough-cookie@>=2.3.3, tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@^1.6.16, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +undefsafe@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.2.0.tgz#1b5837cf90c0736d88627732b661c138f86de72f" + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +v8flags@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-assign@^1.0.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/vinyl-assign/-/vinyl-assign-1.2.1.tgz#4d198891b5515911d771a8cd9c5480a46a074a45" + dependencies: + object-assign "^4.0.1" + readable-stream "^2.0.0" + +vinyl-fs@^2.2.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl@^0.4.3: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs@^3.26.0: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + +yauzl@^2.2.1: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.0.1" + +zen-observable-ts@^0.8.10: + version "0.8.10" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.10.tgz#18e2ce1c89fe026e9621fd83cc05168228fce829" + dependencies: + zen-observable "^0.8.0" + +zen-observable@^0.8.0: + version "0.8.9" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.9.tgz#0475c760ff0eda046bbdfa4dc3f95d392807ac53" diff --git a/screenshots/graphql_playground_screenshot.png b/screenshots/graphql_playground_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..28ee07549e8d2fa4a5349c2d4023e8031104ef15 GIT binary patch literal 117748 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%0Aad*#3WtiGtUumO7VwdYN7Uk)Z`1`6xPsK@3% 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

ySi<44c(jXcV@1+ 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 + hydrate( + + + , + document.getElementById('root') + ); + +renderApp(); + +if (module.hot) { + module.hot.accept('./src/client', () => { + // renderApp() + // Anyone wanna help for improving this? 😳 + window.location.reload(); + }); +} diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 0000000..6565988 --- /dev/null +++ b/ui/package.json @@ -0,0 +1,68 @@ +{ + "name": "web", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "start:server": "rimraf ./build && webpack --config webpack.config.server.js", + "start:client": "webpack-dev-server --config webpack.config.client.js", + "start": "rimraf ./.build && npm-run-all --parallel start:server start:client" + }, + "devDependencies": { + "babel-cli": "^6.8.0", + "babel-core": "^6.8.0", + "babel-eslint": "^7.0.0", + "babel-loader": "^6.2.4", + "babel-plugin-styled-components": "^1.5.1", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-es2015": "^6.6.0", + "babel-preset-react": "^6.5.0", + "babel-preset-stage-2": "^6.5.0", + "babel-register": "^6.9.0", + "concurrently": "^3.0.0", + "eslint": "^3.8.1", + "eslint-config-airbnb": "^12.0.0", + "eslint-plugin-babel": "^4.0.0", + "eslint-plugin-import": "^1.8.1", + "eslint-plugin-jsx-a11y": "^2.2.1", + "eslint-plugin-react": "^6.2.0", + "json-loader": "^0.5.4", + "nodemon": "^1.9.2", + "npm-run-all": "^4.1.1", + "start-server-webpack-plugin": "^2.2.0", + "style-loader": "^0.13.1", + "webpack-dev-server": "2" + }, + "dependencies": { + "apollo-cache-inmemory": "^1.2.10", + "apollo-client": "^2.4.2", + "apollo-fetch": "^0.7.0", + "apollo-link": "^1.2.3", + "apollo-link-error": "^1.1.1", + "apollo-link-http": "^1.5.5", + "apollo-link-ws": "^1.0.9", + "better-react-spinkit": "^2.0.4", + "dotenv-webpack": "^1.5.7", + "express": "^4.16.3", + "graphql": "^14.0.2", + "graphql-tag": "^2.9.2", + "http-proxy-middleware": "^0.17.4", + "isomorphic-fetch": "^2.2.1", + "react": "^16.5.2", + "react-apollo": "^2.2.1", + "react-autocomplete": "^1.7.1", + "react-dom": "^16.5.2", + "react-fontawesome": "^1.6.1", + "react-google-maps": "^8.3.0", + "react-hot-loader": "^3.0.0-beta.7", + "react-router": "^4.1.2", + "react-router-dom": "^4.1.2", + "recompose": "^0.25.0", + "redux": "^3.7.2", + "rimraf": "^2.6.2", + "styled-components": "^3.4.9", + "subscriptions-transport-ws": "^0.9.15", + "webpack": "2.2.1", + "webpack-node-externals": "^1.6.0" + } +} diff --git a/ui/public/favicon.png b/ui/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..f73ca84214fee7535ba8ac00307b90e36877259e GIT binary patch literal 1288 zcmV+j1^4=iP)zbJGO1xGntHSBk$C^JK4;=*^8Rl~gPi-}H zIm>An)~4hN2EZ0B_C^CG?~I>kgtNxGY3nGeHV0AK?h&St{VcyFR}LO>gwX+ z63MzI|2!*%28B%{p!ZHJ3W}_Pb`aC6`V&gKk&IK)&ojHUg=-Ly+92zkd~$ZL(|J3GO}BuvYOFnb0(kgj7FX?vkuA=vtnOfUJ+d~_Hoj7v0p5h@{aMn z;|rJ=nb`={W*0ZdIIHNRDV>jq1rr+tXN>G-@D9%`6J45~DY`ys-J|nz4snp)&@%<1 zwpXgUdomV)-Wx><5}H~^tkONg1s5x)h3Ik&EBIo@fW_k4j*?TtXES}JS<(}4BD>bAHg^NT4Rl<3@V)1cRSp*RAQ zs(A!UE$sqVLEQjOZy)4kd{ZL2%Ru_B2@?U;gI>ICC>ts62jy^MWze%$~$w!+vy zUD}!juDAN3l2%N0*97PA{OH_fIJ)DLGZC{WEsvz{50sPvkzuK|*cQFe3?iavAFJ(_ z#NUdU()B!309b#}4^yyFGA8`}pEw!FRz+ZP&voTW|9 z;wE~cN+lAX*Lrr2zfbHM-|K~l7)QW@-?hAX_=`~lWT`mBLUmBEBKAQ!Hngwku`-2- zfoJk11PZf;u8F6rR9P$L;&l(Om5n_G8#W}q(+P&*1WTcZiX7gB$H?qJaGm1ZEZ8hW7M&qvXQ)zUW&|KhWi^0;1KpGJ1s=%zg(X+>&wY3Q2%3QoqTpHej&cLzE0pcnj}-mE`!k@svOZ!) z;oZY?xEbN`XuHOPSJy3JZfUc)en8fO4qM=}L8xO;c6f3%Gqau=Q>N}1b59O*;ULe5 zg2SUzo-l*A7!+S|SH}CEjL#iu@25&6A9~Tq)DkfgCa@x&K<$Rt+DBxjWv$z9sCp=3e~k^cc!WaW*?cwbQf0000 + + + + + + + + + Travel Bucket List + + + + + + +

+ + + \ No newline at end of file diff --git a/ui/server.js b/ui/server.js new file mode 100644 index 0000000..7b44e5e --- /dev/null +++ b/ui/server.js @@ -0,0 +1,16 @@ +import http from 'http'; +import app from './src/server'; + +const server = http.createServer(app); +let currentApp = app; +server.listen(3000, () => { + console.log('The React app is served at: http://localhost:3000'); +}); + +if (module.hot) { + module.hot.accept('./src/server', () => { + server.removeListener('request', currentApp); + server.on('request', app); + currentApp = app; + }); +} diff --git a/ui/src/App/App.js b/ui/src/App/App.js new file mode 100644 index 0000000..fc6cb74 --- /dev/null +++ b/ui/src/App/App.js @@ -0,0 +1,25 @@ +import React from 'react'; +import { Query } from 'react-apollo'; + +import Routes from './Routes'; +import getPlacesQuery from '../graphql/getPlaces.query.gql'; + +import Loading from './Loading'; +import Error from './Error'; + +import './styles'; + +const App = () => ( +
+ + {graphqlResponse => { + const { data, loading, error } = graphqlResponse; + if (loading) return ; + if (error) return ; + return ; + }} + +
+); + +export default App; diff --git a/ui/src/App/BucketList/AddPlace/AddPlace.js b/ui/src/App/BucketList/AddPlace/AddPlace.js new file mode 100644 index 0000000..badd3b6 --- /dev/null +++ b/ui/src/App/BucketList/AddPlace/AddPlace.js @@ -0,0 +1,59 @@ +import React from 'react'; +import { Mutation } from 'react-apollo'; + +import createPlaceMutation from './createPlace.mutation.gql'; +import getPlacesQuery from '../../../graphql/getPlaces.query.gql'; + +import Input from './Input'; + +const AddPlace = () => ( + { + const { places } = cache.readQuery({ + query: getPlacesQuery, + }); + // Check for whether a subscription may have already added + // the place. You have to check in both update functions (this + // update function and the subscription's updateQueries function)! + // Either update might fire first depending on network, etc. + if (!places.find(place => place.id === createPlace.id)) { + cache.writeQuery({ + query: getPlacesQuery, + data: { places: places.concat([createPlace]) }, + }); + } + }} + > + {addPlace => { + const addPlaceWithAddress = address => + addPlace({ + variables: { input: { address } }, + optimisticResponse: { + createPlace: { ...optimisticResponseBase, name: address }, + }, + }); + return ; + }} + +); + +const optimisticResponseBase = { + __typename: 'Place', + id: 'optimistic-place', + visited: false, + location: { + __typename: 'Location', + id: 'optimistic-location', + latitude: 0, + longitude: 0, + weather: { __typename: 'Weather', icon: '', temperature: null }, + }, + user: { + __typename: 'User', + id: 'optimistic-user', + username: '', // keeping it simple - we should populate the real user here + }, +}; + +export default AddPlace; diff --git a/ui/src/App/BucketList/AddPlace/Autocomplete.js b/ui/src/App/BucketList/AddPlace/Autocomplete.js new file mode 100644 index 0000000..537c414 --- /dev/null +++ b/ui/src/App/BucketList/AddPlace/Autocomplete.js @@ -0,0 +1,56 @@ +import React from 'react'; +import Autocomplete from 'react-autocomplete'; +import styled from 'styled-components'; + +const LocationAutocomplete = ({ suggestion, value, onChange, onSelect }) => ( + item.formattedAddress} + items={[suggestion]} + renderItem={(item, isHighlighted) => ( + {item.formattedAddress} + )} + value={value} + shouldItemRender={(item, value) => item && value} + onChange={onChange} + onSelect={onSelect} + /> +); + +const styles = { + wrapper: { + display: 'flex', + flexDirection: 'column', + margin: '1rem', + }, + input: { + width: '100%', + padding: '1rem', + height: '4rem', + color: 'var(--darkBlue)', + border: '2px solid #eee', + borderRadius: '0.75rem', + fontSize: '2rem', + }, + menu: { + display: 'flex', + flexDirection: 'column', + borderRadius: '.2rem', + border: '.1rem dashed var(--greyBlue)', + }, +}; + +const Item = styled.div` + cursor: pointer; + margin: 0 0 0.2rem; + padding: 0.2rem; + font-size: 1.6rem; + border: 0.1rem transparent; + border-radius: 0.2rem; + background: ${props => + props.isHighlighted ? 'var(--lightBlue)' : 'transparent'}; +`; + +export default LocationAutocomplete; diff --git a/ui/src/App/BucketList/AddPlace/Input.js b/ui/src/App/BucketList/AddPlace/Input.js new file mode 100644 index 0000000..a7a7e66 --- /dev/null +++ b/ui/src/App/BucketList/AddPlace/Input.js @@ -0,0 +1,38 @@ +import React from 'react'; +import { Query } from 'react-apollo'; + +import runSearchQuery from './runSearch.query.gql'; +import Autocomplete from './Autocomplete'; + +const Input = class extends React.Component { + state = { inputValue: '' }; + + handleOnChange = event => { + this.setState({ inputValue: event.target.value }); + }; + + handleOnSelect = (value, item) => { + this.props.addPlace(item.formattedAddress); + this.setState({ inputValue: '' }); + }; + + render() { + return ( + + {({ data }) => { + const { locationSuggestion } = data; + return ( + + ); + }} + + ); + } +}; + +export default Input; diff --git a/ui/src/App/BucketList/AddPlace/createPlace.mutation.gql b/ui/src/App/BucketList/AddPlace/createPlace.mutation.gql new file mode 100644 index 0000000..b8c91c1 --- /dev/null +++ b/ui/src/App/BucketList/AddPlace/createPlace.mutation.gql @@ -0,0 +1,14 @@ +#import "../../../graphql/Place.fragment.gql" +#import "../../../graphql/User.fragment.gql" +#import "../../../graphql/Location.fragment.gql" +mutation createPlace($input: CreatePlaceInput!) { + createPlace(input: $input) { + ...PlaceFields + location { + ...LocationFields + } + user { + ...UserFields + } + } +} diff --git a/ui/src/App/BucketList/AddPlace/runSearch.query.gql b/ui/src/App/BucketList/AddPlace/runSearch.query.gql new file mode 100644 index 0000000..017a45b --- /dev/null +++ b/ui/src/App/BucketList/AddPlace/runSearch.query.gql @@ -0,0 +1,6 @@ +query runSearch($search: String) { + locationSuggestion(name: $search) { + id + formattedAddress + } +} diff --git a/ui/src/App/BucketList/BucketList.js b/ui/src/App/BucketList/BucketList.js new file mode 100644 index 0000000..aaa6436 --- /dev/null +++ b/ui/src/App/BucketList/BucketList.js @@ -0,0 +1,43 @@ +import React from 'react'; +import Header from '../../components/Header'; +import AddPlace from './AddPlace/AddPlace'; +import List from './List/List'; +import styled from 'styled-components'; + +const BucketList = ({ places }) => ( + +
+ + Add a new place + + + + +); + +const Title = styled.div` + font-size: 2rem; + font-family: Gaegu, sans-serif; + text-indent: 1rem; +`; + +const FlexWrapper = styled.div` + display: flex; + flex-direction: column; + align-items: center; +`; + +const Container = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + padding: 1rem; + max-width: 120rem; + width: 60vw; + background-color: white; + border-radius: 1rem; + border: 2px solid #eee; + padding-bottom: 0rem; +`; + +export default BucketList; diff --git a/ui/src/App/BucketList/List/List.js b/ui/src/App/BucketList/List/List.js new file mode 100644 index 0000000..f833efc --- /dev/null +++ b/ui/src/App/BucketList/List/List.js @@ -0,0 +1,33 @@ +import React from 'react'; +import styled from 'styled-components'; + +import Place from './Place/Place'; + +class List extends React.Component { + render() { + const { places = [] } = this.props; + if (!places.length) { + return No places in your bucket list!; + } + return ( + + {places.map(place => )} + + ); + } +} + +const NoPlaces = styled.div` + text-align: center; + font-size: 3rem; + color: var(--darkBlue); +`; + +const ItemList = styled.div` + display: flex; + flex-direction: row-reverse; + flex-wrap: wrap-reverse; + justify-content: center; +`; + +export default List; diff --git a/ui/src/App/BucketList/List/Place/Place.js b/ui/src/App/BucketList/List/Place/Place.js new file mode 100644 index 0000000..85fcbd0 --- /dev/null +++ b/ui/src/App/BucketList/List/Place/Place.js @@ -0,0 +1,28 @@ +import React from 'react'; +import { Mutation } from 'react-apollo'; + +import updatePlaceMutation from './updatePlace.mutation.gql'; +import PlaceView from './PlaceView'; + +const Place = ({ place }) => ( + + {updatePlace => { + const toggleVisited = id => { + updatePlace({ + variables: { + input: { id, visited: !place.visited }, + }, + }); + }; + return ; + }} + +); + +export default Place; diff --git a/ui/src/App/BucketList/List/Place/PlaceView.js b/ui/src/App/BucketList/List/Place/PlaceView.js new file mode 100644 index 0000000..b7add14 --- /dev/null +++ b/ui/src/App/BucketList/List/Place/PlaceView.js @@ -0,0 +1,89 @@ +import React from 'react'; +import FontAwesome from 'react-fontawesome'; +import styled, { keyframes } from 'styled-components'; +import { pure } from 'recompose'; +import Weather from './Weather'; +import Button from '../../../../components/Button'; + +const PlaceView = ({ place, toggleVisited }) => { + const { id, visited, name, location, user } = place; + const weather = location ? location.weather : null; + return ( + + toggleVisited(id)}> + {user.username} + + + + + + {name} + + {weather && } + {location &&