+
+)
+
+export const components = {
+ p: PDIV,
+ strong: P.B,
+ ul: UL,
+ li: LI,
+ h2: DocH2,
+ h3: DocH3,
+ code: InlineCode,
+ a: ExternalLink
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000000..7a45e85ffa
--- /dev/null
+++ b/package.json
@@ -0,0 +1,115 @@
+{
+ "name": "front",
+ "version": "3.9.1",
+ "private": true,
+ "scripts": {
+ "dev": "next",
+ "build": "cross-env NODE_ENV=production next build",
+ "start": "cross-env NODE_ENV=production next start",
+ "lint": "eslint .",
+ "lint:staged": "lint-staged"
+ },
+ "babel": {
+ "presets": [
+ "next/babel"
+ ],
+ "plugins": [
+ [
+ "transform-define",
+ "./env-config.js"
+ ],
+ "markdown-in-js/babel"
+ ]
+ },
+ "dependencies": {
+ "babel-plugin-transform-define": "1.3.0",
+ "babel-runtime": "6.23.0",
+ "cross-env": "5.0.1",
+ "lodash.debounce": "^4.0.8",
+ "markdown-in-js": "1.1.3",
+ "mitt": "1.1.2",
+ "next": "2.4.4",
+ "nprogress": "0.2.0",
+ "prop-types": "15.5.8",
+ "query-string": "4.3.4",
+ "react": "15.5.4",
+ "react-dom": "15.5.4",
+ "scroll-into-view-if-needed": "1.1.0",
+ "smoothscroll-polyfill": "0.3.5"
+ },
+ "devDependencies": {
+ "babel-eslint": "7.2.3",
+ "eslint": "3.19.0",
+ "eslint-plugin-import-b5a962": "2.3.0",
+ "eslint-plugin-react": "7.1.0",
+ "lint-staged": "4.0.0",
+ "pre-commit": "1.2.2",
+ "prettier": "1.3.1"
+ },
+ "lint-staged": {
+ "*.js": [
+ "eslint",
+ "prettier --write --no-semi --single-quote",
+ "git add"
+ ]
+ },
+ "pre-commit": "lint:staged",
+ "greenkeeper": {
+ "ignore": [
+ "prettier"
+ ]
+ },
+ "eslintConfig": {
+ "parser": "babel-eslint",
+ "parserOptions": {
+ "ecmaVersion": 8,
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "jsx": true,
+ "impliedStrict": true,
+ "experimentalObjectRestSpread": true
+ },
+ "allowImportExportEverywhere": true
+ },
+ "plugins": [
+ "react",
+ "import-b5a962"
+ ],
+ "extends": [
+ "eslint:recommended",
+ "plugin:react/recommended"
+ ],
+ "globals": {
+ "VERSION": true,
+ "ASSETS_URL": true
+ },
+ "env": {
+ "es6": true,
+ "browser": true,
+ "node": true
+ },
+ "rules": {
+ "func-names": [
+ "error",
+ "as-needed"
+ ],
+ "no-shadow": "error",
+ "import-b5a962/no-mutable-exports": "error",
+ "import-b5a962/no-anonymous-default-export": [
+ "error",
+ {
+ "allowArray": true,
+ "allowArrowFunction": true,
+ "allowLiteral": true,
+ "allowObject": true
+ }
+ ],
+ "no-extra-semi": 0,
+ "react/prop-types": 0,
+ "react/react-in-jsx-scope": 0,
+ "react/no-unescaped-entities": 0,
+ "react/jsx-no-target-blank": 0,
+ "react/no-string-refs": 0
+ }
+ }
+}
diff --git a/pages/docs/deployment-types/docker.js b/pages/docs/deployment-types/docker.js
new file mode 100644
index 0000000000..19e75891e2
--- /dev/null
+++ b/pages/docs/deployment-types/docker.js
@@ -0,0 +1,68 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { Code } from '../../../components/text/code'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Deploying Docker Apps',
+ date: '09 March 2017',
+ authors: [leo],
+})(markdown(components)`
+
+If your project contains a \`Dockerfile\` file, it will always be treated as a [Docker](https://www.docker.com/) deployment.
+
+This means that - when running \`now\` inside your terminal - your project will be launched into a secure Docker container on our platform, completely isolated from other customers and even your other containers.
+
+In this document, you'll learn the exact specifications and behaviour of Docker deployments running on now.
+
+## Built in the Cloud
+
+${}'s Dockerfile support represents a significant departure from traditional virtualization solution offered by mainstream cloud providers. Here's why:
+
+The biggest departure is immediately obvious to the user. The entire deployment consisted of a single command. You spend no time with complicated, slow and proprietary (locked-in) workflows.
+
+The underlying reason this process is so fast and simple is that you spend no time at all worrying about local tooling, images, registries and caches. As a consequence of that, we're freeing you from the limitations of your local environment and network. The build process belongs in the cloud.
+
+To illustrate this point, pulling, extracting and building the container above took me 3 minutes on a cutting-edge Macbook. Pushing the resulting **200mb** image from an office connection in San Francisco, California to Google® Cloud took another 3 minutes.
+
+In the equivalent amount of time, I would be able to push and build the same image to ${} **18 times**. Time that's not spent building is spent on iterating on your product and sharing it with the world.
+
+Over the next few months we'll be rolling out significant enhancements to deepen this vision. While your laptop is constrained by a fixed number of cores, memory, CPU time and bandwidth, the cloud can give you an exponential advantage to you and your business.
+
+## Accelerating Builds
+
+By default, ${} will build an image of your project by itself. If you want to speed up this process, you can publish a pre-built image on the public [Docker Hub](https://hub.docker.com/). At the moment, we don't support private images. However, it's on our roadmap!
+
+You can select an image by specifying it inside \`Dockerfile\`:
+
+${{'FROM /:'}}
+
+Once the container is built, the snapshot will be used when the deployment is scaled or rebooted.
+
+## File System Specifications
+
+There are no limitations inside Docker deployments when it comes to the file system. It's always writable and readable.
+
+## Port Selection
+
+You can expose a HTTP service on **any port** of your choice (not multiple ones). now will then route requests to your deployment to that port and visitors will see the rendered output of your application.
+
+The port that listens for incoming HTTP traffic needs to be defined either in the \`Dockerfile\` that's being used inside the deployment, or the \`Dockerfile\` it's "inheriting" from.
+
+## Deployment Inactivity
+
+Old deployments always stay around forever if you don't remove them using \`now remove\`.
+
+However, if your deployment doesn't receive any HTTP(S) requests for a long time, it will most likely be added to the list of deployments that will fall into a light sleep if the platform experiences a lot of load.
+
+There's no definite answer to how long it will take until such a deployment goes to sleep, because the time will automatically be calculated based on the platform's load and the amount of deployments on it. But if your deployment is linked to an alias, it's less likely to ever fall into a sleep when not being accessed.
+
+All in all, sleeping deployments are here to reduce the effort the system has to push into keeping those running that aren't being accessed at all (which usually means they're inactive and not needed anymore).
+
+Sleeping deployments will wake up in a matter of seconds once a request comes in. The visitor won't experience any errors, because the request will be kept alive until the deployment has woken up.
+
+Eventually, we'll be working on adding support for non-sleeping deployments!
+`)
diff --git a/pages/docs/deployment-types/index.js b/pages/docs/deployment-types/index.js
new file mode 100644
index 0000000000..c3ba2a2582
--- /dev/null
+++ b/pages/docs/deployment-types/index.js
@@ -0,0 +1,4 @@
+// Helpers
+import redirect from '../../../lib/redirect'
+
+export default redirect('/docs')
diff --git a/pages/docs/deployment-types/lifecycle.js b/pages/docs/deployment-types/lifecycle.js
new file mode 100644
index 0000000000..280f9df66f
--- /dev/null
+++ b/pages/docs/deployment-types/lifecycle.js
@@ -0,0 +1,63 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rase, rauchg, jamo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import Image from '../../../components/image'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'App Lifecycle and Scalability',
+ date: '09 March 2017',
+ authors: [rase, rauchg, jamo],
+})(markdown(components)`
+
+In this guide, we are going to have a look at how ${} deploy and manage your app inside it's infrastructure.
+
+## App Lifecycle
+
+${
+
+}
+
+Your app's deployments flow through a certain set of states throughout their lifecycle.
+
+* **DEPLOYING**: Files an deployment metadata is collected to boot it up.
+* **BOOTED**: When a deployment is first created, it's running environment is prepared and started. After this is completed, the state is set to \`BOOTED\`.
+* **BUILDING**: After the deplomyent infrastructure is up and running, the deployment is built. For \`docker\` based deployments, this means \`docker build\` and persisting the resulting docker image.
+For \`npm\` based deployments it means running \`npm install\` and \`npm run build\`. Static deployments currently don't have a build step and jump directly to \`READY\`.
+* **READY** or **BUILD_ERROR**: If the build as successful, the deployment will start and move to the \`READY\` state, which means it's ready to receive and serve traffic. For \`npm\` deploymenst it means \`npm start\`, and for \`docker\` deployments \`docker run\`.
+
+If, however, the build is unsuccessful, the deployment ends up in a \`BUILD_ERROR\` state, and logs can be inspected to see what went wrong. In this case the deployment will not be retried.
+
+In addition to the state flow of new deployments, there is a somewhat separate flow of states that the deployment transitions to after it has been successfully deployed.
+
+A deployment can be frozen if its minimum instance count is set to 0 (the default), if it doesn't get much traffic. When it's accessed later, it will transition back to \`READY\` state from a snapshot.
+
+The deployment can also permanently move to a \`DEPLOYMENT_ERROR\` state, if it starts to crash time and time again quickly after it's started.
+
+## Instances & Scaling
+
+A deployment by default runs between zero to one instance, meaning it eiter runs one copy of the application, or is frozen due to lack of traffic. This amount of instances can be decided manually using the \`now scale\` command.
+
+If the minimum and maximum amount of instances are not the same, the deployment will be automatically scaled between those values depending on the amount of traffic and its throughput. For example, if an application has been scaled with the following command:
+
+${{'now scale https://my-app-tnhnoahecha.now.sh 3 10'}}
+
+Then at any given time, the application will have 3-10 active instances depending on how much it is receiving traffic, and the process of deciding the right amount of copies is automated.
+
+Automatic scaling depends on the performance of the deployment, incoming bandwidth and overall instance throughput. Every time we make an automated scaling decision, or now scale affects the deployment's scale, it can be seen in events.
+
+The minimum and the maximum can be equal, which means the application will never be scaled up or down until requested. The application never sleeps if minimum instances is set to a value larger than zero. For example, the following command will result in an application that always runs exactly one copy.
+
+${{'now scale https://my-app-tnhnoahecha.now.sh 1'}}
+
+Instances are reported as unique instance identifiers and their corresponding instance specific access URLs. An instance id is tied to a specific occurrence of the deployment, so if you scale an application up and down, the instance the removed and added instances will have different instance ids. Similarly, if an instance restarts due to for example, an error, the instance id will remain the same.
+
+When an instance restarts for any reason (or exit code), we automatically restart the instance, so supervisor-like wrappers are not necessary. For example \`forever\`, \`nodemon\` or \`pm\` are not necessary for an application to always stay running.
+`)
diff --git a/pages/docs/deployment-types/node.js b/pages/docs/deployment-types/node.js
new file mode 100644
index 0000000000..ef1625100f
--- /dev/null
+++ b/pages/docs/deployment-types/node.js
@@ -0,0 +1,103 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { Code } from '../../../components/text/code'
+import { InternalLink } from '../../../components/text/link'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Deploying Node.js Apps',
+ date: '09 March 2017',
+ authors: [leo],
+})(markdown(components)`
+
+If your project contains a \`package.json\` (and no \`Dockerfile\`) file, it will always be treated as a [Node.js](https://nodejs.org/en/) deployment.
+
+This means that, when you run \`now\`, your code will be launched into a 64-bit Node.js enviroment running on Alpine Linux (using [musl](https://www.musl-libc.org/) instead of [glibc](https://www.gnu.org/software/libc/) for the core libraries).
+
+In this document, you'll learn the exact specifications and behaviour of Node.js deployments running on now.
+
+## File System Specifications
+
+By default, it's not possible to write files to the file system when creating Node.js deployments.
+
+But there's an exception: The first time the build step (either using the \`build\` or \`now-build\`) runs, Node.js will be able to write to the file system. This is necessary for allowing applications to be bundled and/or transpiled on the server.
+
+After either the \`start\` or \`now-start\` scripts have started running, the only writable location will be \`/tmp\`.
+
+Inside this directory, temporary data can be saved. But please note that it will be **removed each time each deployment goes to sleep** and wakes up again. In turn, it is **not** safe to be used as a file-based database.
+
+## Package Installation
+
+After ${} has taken care of setting up the base of your deployment, the first real interaction with your code will be installing the dependencies you've defined inside \`package.json\`.
+
+For this process, we're using our so-called "ace" technology behind the curtains.
+
+It not only comes with a global shared cache of public modules to avoid repetitive work in each deployment, but it also caches the artifacts of binary packages which requires packages like \`node-canvas\` to only get compiled once. Afterwards, our build servers securily share it with all our customers (which saves a lot of time).
+
+You can read more about it ${here}.
+
+## Ignoring devDependencies
+
+If you only want to install \`dependencies\`, not \`devDependencies\`, you can set the environment variable \`NODE_ENV\` to "production" by either using the \`-e\` option of the CLI like this:
+
+${now -e NODE_ENV="production"}
+
+or using the ${env} configuration property:
+
+${
+
+ {`"env": {
+ "NODE_ENV": "production"
+}`}
+
+}
+
+In cases where you need to set the \`NODE_ENV\` variable to "production", but still need to have the \`devDependencies\` installed, then you can use the environment variable on the \`build\` script property as shown below:
+
+${
+
+ {`"scripts": {
+ "build": "NODE_ENV=production next build"
+}`}
+
+}
+
+## Port Selection
+
+You can expose a HTTP service on **any port** of your choice (not multiple ones). ${} will then route requests to your deployment to that port and visitors will see the rendered output of your application.
+
+## Custom Node.js Configuration
+
+Other than selecting the version of Node.js using the engines property.
+
+${
+
+ {`"engines": {
+ "node": "7.4.0"
+}`}
+
+}
+
+there are no other ways to interfere with the image of your deployment. This means that if you want to use a custom runtime, a special version of Linux or some other form of low-level customization, you should consider a ${Docker deployment}.
+
+It will allow you to specify all of these things inside a \`Dockerfile\`. This results in much wider customization options.
+
+## Deployment Inactivity
+
+Old deployments always stay around forever if you don't remove them using \`now remove\`.
+
+However, if your deployment doesn't receive any HTTP(S) requests for a long time, it will most likely be added to the list of deployments that will fall into a light sleep if the platform experiences a lot of load.
+
+There's no definite answer to how long it will take until such a deployment goes to sleep, because the time will automatically be calculated based on the platform's load and the amount of deployments on it. But if your deployment is linked to an alias, it's less likely to ever fall into a sleep when not being accessed.
+
+All in all, sleeping deployments are here to reduce the effort the system has to push into keeping those running that aren't being accessed at all (which usually means they're inactive and not needed anymore).
+
+Sleeping deployments will wake up in a matter of seconds once a request comes in. The visitor won't experience any errors, because the request will be kept alive until the deployment has woken up.
+
+Eventually, we'll be working on adding support for non-sleeping deployments!
+
+`)
diff --git a/pages/docs/deployment-types/static.js b/pages/docs/deployment-types/static.js
new file mode 100644
index 0000000000..234ce753d1
--- /dev/null
+++ b/pages/docs/deployment-types/static.js
@@ -0,0 +1,49 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo, jamo, rauchg } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Deploying Static Apps',
+ date: '09 March 2017',
+ authors: [leo, jamo, rauchg],
+})(markdown(components)`
+
+${} comes with a native support for static deployments. It considers all projects that don't have a \`Dockerfile\`, nor a \`package.json\` as a static deployment.
+
+Deploying such a static project is still as easy as running a single command:
+
+${now}
+
+## Under the Hood
+
+The technology behind our servers is a Node.js module called [serve](https://github.com/zeit/serve), which you can download, fork, extend and even operate locally during development.
+
+What does this mean for your team and your business? Great user experience with zero lock-in.
+
+If you can’t wait for us to add a certain capability to our static deployments support, you can just create a \`package.json\` like this:
+
+${
+ {`{
+ "name": "extensible",
+ "scripts": {
+ "start": "serve ."
+ },
+ "dependencies": {
+ "serve": "latest"
+ }
+}`}
+}
+
+Then run \`now\`, and we will detect the presence of \`package.json\` and deploy it as a \`npm\` deployment.
+
+## Deployment Inactivity
+
+Old deployments always stay around forever if you don't remove them using \`now remove\`.
+
+However, the new static deployments, without the \`package.json\` are **never** put to sleep but are always quickly accessible.
+`)
diff --git a/pages/docs/examples/chat.js b/pages/docs/examples/chat.js
new file mode 100644
index 0000000000..09a94ab259
--- /dev/null
+++ b/pages/docs/examples/chat.js
@@ -0,0 +1,349 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+import { InternalLink } from '../../../components/text/link'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Realtime Chat Webapp',
+ date: '23 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+Writing a chat application with popular web applications stacks like LAMP (PHP) has traditionally been very hard. It involves polling the server for changes, keeping track of timestamps, and it’s a lot slower than it should be.
+
+Sockets have traditionally been the solution around which most realtime chat systems are architected, providing a bi-directional communication channel between a client and a server.
+
+This means that the server can push messages to clients. Whenever you write a chat message, the idea is that the server will get it and push it to all other connected clients.
+
+## Requirements
+
+Before we get started, please make sure that your instance of Node is up-to-date. You should have the latest "Current" release (compare it with [this](https://nodejs.org/)). If it's not, click on the download button on the site and get yourself the newest version.
+
+You can use this command to check the version tag of your local instance:
+
+${node -v}
+
+Once the output of the command matches the latest version on the site, go on to the next section.
+
+## Setup
+
+As the first step, we need to setup a simple HTML webpage that shows a form (which can contain the message to sent) and a list of messages sent before.
+
+In turn, the first thing we'll do is create a new directory and move into it:
+
+${
+
+ {`{
+ "name": "realtime-chat",
+ "dependencies": {
+ "express": "latest"
+ }
+}`}
+
+}
+
+The code above tells ${} the name of the project ("realtime-chat") and also indicates that [Node.js](https://nodejs.org/) needs to install the latest version of the [express](https://www.npmjs.com/package/express) package (which will be used for serving our code to the user). To install the \`dependencies\`, you now need to run this command inside your terminal:
+
+${npm install}
+
+Now that [express](https://www.npmjs.com/package/express) is handled, you need to create a \`index.js\` file inside the directory and insert the following code:
+
+${
+
+ {`const app = require('express')()
+const server = require('http').Server(app)
+
+app.get('/', (req, res) => {
+ res.send('
Hello world!
')
+})
+
+server.listen(4000, () => {
+ console.log('The server is running: http://localhost:4000')
+})`}
+
+}
+
+This translates into the following:
+
+* Express initializes \`app\` to be a function handler that you can supply to an HTTP server (as seen in line 2).
+* We define a route handler \`/\` that gets called when we hit our website home.
+* We make the HTTP server available on port 3000.
+
+Now, when running \`node index\` inside your terminal, you should see the following:
+
+${
+
+}
+
+And when pointing your browser to the address shown (\`http://localhost:4000\`):
+
+${
+
+}
+
+## Serving HTML
+
+So far in \`index.js\`, we’re calling \`res.send\` and passing it a HTML string. Our code would look very confusing if we just placed our entire application’s HTML there. Instead, we’re going to create a \`index.html\` file and serve it.
+
+Let’s refactor our route handler to use \`sendFile\` instead:
+
+${
+
+ {`app.get('/', (req, res) => {
+ res.sendFile(__dirname + '/index.html')
+})`}
+
+}
+
+And populate \`index.html\` with the following:
+
+${
+
+ {`
+
+
+
+`}
+
+}
+
+If you restart the process (by hitting \`control + C\` and running \`node index\` again) and refresh the page it should look like this:
+
+${
+
+}
+
+## Integrating Web Sockets
+
+To handle these, we'll be using the [socket.io](https://socket.io/) project. It consists of two packages:
+
+* A server that integrates with (or mounts on) the Node.JS HTTP Server: \`socket.io\`
+* A client library that loads on the browser side: \`socket.io-client\`
+
+During development, \`socket.io\` serves the client automatically for us, as we’ll see, so for now we only have to install one module:
+
+${npm install --save socket.io}
+
+That will install the module and add the dependency to \`package.json\`. Now let’s edit \`index.js\` to load it:
+
+${
+
+ {`const app = require('express')()
+const server = require('http').Server(app)
+const io = require('socket.io')(server)
+
+app.get('/', (req, res) => {
+ res.sendFile(__dirname + '/index.html')
+})
+
+io.on('connection', socket => {
+ console.log('a user connected')
+})
+
+server.listen(4000, () => {
+ console.log('The server is running: http://localhost:4000')
+})`}
+
+}
+
+Notice that I initialize a new instance of \`socket.io\` by passing the \`server\` (the HTTP server) object. Then I listen on the \`connection\` event for incoming sockets, and I log it to the console.
+
+Now, in \`index.html\`, we need to add the following snippet before the \`\` closing tag:
+
+${
+
+ {`
+
+`}
+
+}
+
+That’s all it takes to load the \`socket.io-client\` package, which exposes a \`io\` global, and then connect.
+
+Notice that I’m not specifying any URL when I call \`io()\`, since it defaults to trying to connect to the host that serves the page. If you now reload the server and the website you should see the console print “a user connected”.
+
+Try opening several tabs, and you’ll see several messages:
+
+${
+
+}
+
+Each socket also fires a special \`disconnect\` event:
+
+${
+
+ {`io.on('connection', socket => {
+ console.log('a user connected')
+
+ socket.on('disconnect', () => {
+ console.log('user disconnected')
+ })
+})`}
+
+}
+
+Then if you refresh a tab several times you can see it in action:
+
+${
+
+}
+
+## Emitting Events
+
+The main idea behind Socket.IO is that you can send and receive any events you want, with any data you want. Any objects that can be encoded as JSON will do, and binary data is supported too.
+
+Let’s make it so that when the user types in a message, the server gets it as a \`chat message\` event. The \`scripts\` section in \`index.html\` should now look as follows:
+
+${
+
+ {`
+
+
+`}
+
+}
+
+And in the \`index.js\` file, we print out the chat message event:
+
+${
+
+ {`io.on('connection', socket => {
+ socket.on('chat message', msg => {
+ console.log('message: ' + msg)
+ })
+})`}
+
+}
+
+Now, after you've restarted the server again, you should see the messages you're typing and sending within the form appear inside the terminal. If that's the case, go on to the next section!
+
+## Broadcasting
+
+The next goal is for us to emit the event from the server to the rest of the users.
+
+In order to send an event to everyone, Socket.IO gives us the \`io.emit\`:
+
+${
+
+ {`io.emit('some event', {
+ for: 'everyone'
+})`}
+
+}
+
+If you want to send a message to everyone except for a certain socket, we have the \`broadcast\` flag:
+
+${
+
+ {`io.on('connection', socket => {
+ socket.broadcast.emit('hi')
+})`}
+
+}
+
+In this case, for the sake of simplicity we’ll send the message to everyone, including the sender.
+
+${
+
+ {`io.on('connection', socket => {
+ socket.on('chat message', msg => {
+ io.emit('chat message', msg)
+ })
+})`}
+
+}
+
+And on the client side when we capture a \`chat message\` event we’ll include it in the page. The total client-side JavaScript code now amounts to the following snippet:
+
+${
+
+ {``}
+
+}
+
+And that completes our chat application, in about **20 lines of code**! You can now send messages between two clients:
+
+${
+
+}
+
+## Deploying the App
+
+Once the realtime chat works as expected, we can deploy it by running this command:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your freshly created chat. This means that you can already share the URL with other people across the globe and have them chat with you.
+
+
+But in the case of a real website (not used for testing purposes), you would now have to ${assign an alias} to it.
+`)
diff --git a/pages/docs/examples/graphql.js b/pages/docs/examples/graphql.js
new file mode 100644
index 0000000000..7c2bffe963
--- /dev/null
+++ b/pages/docs/examples/graphql.js
@@ -0,0 +1,293 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+import { AnchorLink } from '../../../components/text/link'
+import { P } from '../../../components/text/paragraph'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Basic GraphQL Application',
+ date: '01 March 2017',
+ authors: [leo],
+})(markdown(components)`
+
+Since Facebook released their [GraphQL](http://graphql.org/) technology back in 2015, it has evolved into a wonderful query language perfectly suited for all kinds of today's API endpoints. Why?
+
+* Comes with a much more definite way of describing the data passed through your API.
+* Allows the client to fetch many resources in a single request, rather than forcing it to send multiple ones to different endpoints.
+* Built from the ground up so that only data requested by the client is sent back. This makes [GraphQL](http://graphql.org/) apps react quickly even on slow mobile network connections.
+
+Because of these advantages, it's a great alternative to [REST](https://en.wikipedia.org/wiki/Representational_state_transfer).
+
+Convinced? Then let's create a application that fetches data from a [GraphQL](http://graphql.org/) endpoint!
+
+## Requirements
+
+Before we get started, please make sure that your instance of Node is up-to-date. You should have the latest "Current" release (compare it with [this](https://nodejs.org/)). If it's not, click on the download button on the site and get yourself the newest version.
+
+You can use this command to check the version tag of your local instance:
+
+${node -v}
+
+Once the output of the command matches the latest version on the site, go on to the next section.
+
+## Building the API
+
+Let's start with creating a new empty directory and moving into it:
+
+${
+
+ {`mkdir graphql-api\ncd graphql-api`}
+
+}
+
+Now let's create the project's \`package.json\` file inside that directory:
+
+${
+
+ {`{
+ "name": "graphql-api",
+ "scripts": {
+ "start": "micro index.js"
+ }
+}`}
+
+}
+
+The code above tells ${} the name of the project ("graphql-api") and also to execute the \`index.js\` file (using [micro](https://github.com/zeit/micro), which we'll install in the next paragraph) when the \`npm start\` command is run in your terminal or on the server.
+
+Next, we need to install a few packages:
+
+* [micro](https://github.com/zeit/micro) (a library of ours - makes building a [microservice](https://zeit.co/docs/examples/json-api) a breeze)
+* [express-graphql](https://github.com/graphql/express-graphql) and [graphql](https://www.npmjs.com/package/graphql) (add support for the query language)
+* [micro-cors](https://www.npmjs.com/package/micro-cors) (responsible for setting the correct CORS headers for every response)
+
+Run this command in your terminal to install them using [npm](https://www.npmjs.com/):
+
+${
+
+ npm install --save graphql micro micro-cors express-graphql
+
+}
+
+Now we need to create the \`index.js\` file and populate it with content. As the first step, load the packages:
+
+${
+
+ {`const {buildSchema} = require('graphql')
+const server = require('express-graphql')
+const CORS = require('micro-cors')()`}
+
+}
+
+Then define the type of data provided by the API. In our case, we'll only respond with a single key named \`hello\`, holding a "Hello world" message. In turn, it will be of type \`String\`:
+
+${
+
+ {`const schema = buildSchema(\`
+ type Query {
+ hello: String
+ }
+\`)`}
+
+}
+
+And now the value for each key of the response:
+
+${
+
+ {`const rootValue = {
+ hello: () => 'Hello world'
+}`}
+
+}
+
+As the last line of code in the file, you need to call \`express-graphql\`, wrap it with \`micro-cors\` and export it:
+
+${
+
+ {`module.exports = CORS(server({ schema, rootValue }))`}
+
+}
+
+Now you should be able to run \`npm start\` inside the directory containing the API and you should be handed a URL which will show the following when opened in a browser window:
+
+${
+
+}
+
+On the first glance, it looks like an error. Well... It actually is one.
+
+But in our case, it's a sign that you've managed to set up the code for the GraphQL API properly. Why? Because it indicates that the endpoint is able to accept data (the error comes directly from \`express-graphql\`).
+
+## Deploying the API
+
+After we've finished building the API endpoint, we need to deploy it. Simply run this command in your terminal:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your freshly created API. We'll use this address later in the application and load some data from it.
+
+But in the case of a real API (not used for testing purposes), you would now have to [assign an alias](https://zeit.co/docs/features/aliases) to it.
+
+## Building the Client
+
+Now that we have the deployment for the API endpoint in place, we need to build an application that loads the data from there and shows it to the visitor. As a framework, we'll use [create-react-app](https://github.com/facebookincubator/create-react-app), a neat way of building [React](http://reactjs.com/) apps.
+
+Creating the project's file structure is as easy as running this command (the directory will be called "graphql-client"):
+
+${create-react-app graphql-client}
+
+Then you can start the development server by running this command:
+
+${npm start}
+
+This works because inside the \`package.json\` file, there's a script property named \`start\` defined that executes the \`react-scripts\` start command when run in the terminal or on the server.
+
+### Installing "react-apollo"
+
+In order to make the application capable of loading data using [GraphQL](http://graphql.org/), we need to firstly install [react-apollo](https://www.npmjs.com/package/react-apollo), a package that provides all of the tools necessary for interacting with a [GraphQL](http://graphql.org/) API using [React](http://reactjs.com/).
+
+To install it, run this [command](https://docs.npmjs.com/cli/install) in a separate terminal tab (please ensure that you're inside the "graphq-client" directory):
+
+${
+
+ npm install --save react-apollo
+
+}
+
+### Adding the Communicating Interface
+
+Once all of them have finished installing, open the \`index.js\` file inside the \`src\` directory. Now remove all the code and start fresh with loading all packages (including React) and the built-in \`\` component:
+
+${
+
+ {`import React from 'react'
+import ReactDOM from 'react-dom'
+
+import { ApolloClient, ApolloProvider, createNetworkInterface } from 'react-apollo'
+
+import App from './App'`}
+
+}
+
+Continue with creating an instance of \`ApolloClient\` and pointing it to your GraphQL server created earlier:
+
+${
+
+ {`const client = new ApolloClient({
+ networkInterface: createNetworkInterface({ uri: `}
+ 'REPLACE_THIS_WITH_YOUR_API_URL'
+ {` })
+})`}
+
+}
+
+As the next step, we need to connect your client instance to the component tree. This can be done using the \`ApolloProvider\` component. Generally, it should be placed somewhere high in your view hierarchy, above all places where you need to access data.
+
+In our case, we only have one existing component (\`\`, which was already there when we generated the application). In turn, we only need to wrap this one with the \`ApolloProvider\` component:
+
+${
+
+ {`ReactDOM.render(
+
+
+
+ ,
+ document.getElementById('root')
+)`}
+
+}
+
+### Loading Data from the GraphQL Server
+
+Now that the interface for communicating with the API endpoint is in place, the only thing left for displaying the "Hello World" example is telling the client exactly which data to request.
+
+Open the \`App.js\` file inside the \`src\` directory, remove its content and start with loading all packages required:
+
+${
+
+ {`import React from 'react'
+import { gql, graphql } from 'react-apollo'
+`}
+
+}
+
+Next, use \`gql\` to create the data query and assign it to a constant. This will tell \`react-apollo\` to only load the \`hello\` property (which we've defined earlier while [writing the GraphQL API](https://zeit.co/docs/examples/graphql#building-the-api)):
+
+${
+
+ {'const myQuery = gql`{ hello }`'}
+
+}
+
+Now we only need to create the \`\` component. Let's just render a heading with the data from the API inside it:
+
+${
+
+ {`class App extends React.Component {
+ render() {
+ return
{this.props.data.hello}
+ }
+}`}
+
+}
+
+Because we want to use it inside the \`index.js\` file (we already loaded it there), we need to export it now. But to receive the data using the \`react-apollo\` package, we also need to wrap the component into the \`graphql()\` helper and pass the query to it:
+
+${
+
+ {`export default graphql(myQuery)(App)`}
+
+}
+
+That's all for building the client!
+
+You should now be able to access the app on the address you saw in the terminal while running the \`npm start\` command ${earlier}. By default, it should be the following one: .
+
+In the browser, the client should look like this:
+
+${
+
+}
+
+## Deploying the Client
+
+Pat yourself on the shoulder! You've managed to build your first GraphQL API, deploy it and even create a client that pulls data from it. Isn't that cool? Absolutely!
+
+So guess what's next! Now we'll make the client accessible from all over the world as well.
+
+But before we can do that, we need to prepare it by installing a tiny tool of ours (named [serve](https://github.com/zeit/serve)). Because \`create-react-app\` doesn't come with a built-in webserver that can be used in production, you need to provide your own. So let's install [serve](https://github.com/zeit/serve) by running this command in the terminal (inside the "graphql-client" directory):
+
+${npm install --save serve}
+
+Then you need to add the \`now-start\` property to your \`package.json\` file. The command specified inside it will be run on now when the deployment is about to start.
+
+${
+
+ {`"scripts": {
+ ...
+ "now-start": "serve -s ./build"
+}`}
+
+}
+
+Now you can do the same you did for the API. Deploy the client by running this command:
+
+${now}
+
+Open the URL provided by ${} and you should see the "Hello world!" example again. This means that you did everything right and your first GraphQL application is online. Well done!
+`)
diff --git a/pages/docs/examples/index.js b/pages/docs/examples/index.js
new file mode 100644
index 0000000000..c3ba2a2582
--- /dev/null
+++ b/pages/docs/examples/index.js
@@ -0,0 +1,4 @@
+// Helpers
+import redirect from '../../../lib/redirect'
+
+export default redirect('/docs')
diff --git a/pages/docs/examples/json-api.js b/pages/docs/examples/json-api.js
new file mode 100644
index 0000000000..cd87dfb9da
--- /dev/null
+++ b/pages/docs/examples/json-api.js
@@ -0,0 +1,159 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { P } from '../../../components/text/paragraph'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Basic JSON API',
+ date: '20 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+Nowadays, every properly built application requires at least one API endpoint where it can load data from.
+
+There are various ways to build one of these APIs. But for this example, I'm going to show you the most effective one using a tiny tool named [micro](https://github.com/zeit/micro), which we built specifically for this purpose.
+
+## Setup
+
+Before diving into building the microservice, please make sure that your instance of [Node](https://nodejs.org/) is up-to-date (at least version 6). Assuming that it's the case, continue with creating a directory and switch to it. Run this in your terminal:
+
+${{`mkdir json-api\ncd json-api`}}
+
+Now let's create the project's files inside that directory. Start over with creating a \`package.json\`:
+
+${
+
+ {`{
+ "name": "json-api",
+ "scripts": {
+ "start": "micro"
+ },
+ "dependencies": {
+ "micro": "latest"
+ }
+}`}
+
+}
+
+As you can see, this file now contains three properties:
+
+* \`name\` tells ${} the name of the deployment
+* \`scripts\` will make the micro command run when starting the deployment
+* \`dependencies\` tells Node.js to download the latest version micro
+
+Next, install micro (the only dependency) by running npm's [install command](https://docs.npmjs.com/cli/install):
+
+${npm install}
+
+## Creating the Service
+
+Once the command has finished running, you'll see a directory named \`node_modules\` containing your dependencies. Now that you've installed everything required, you can populate the source files with code.
+
+By default, \`micro\` will expect a \`index.js\` file to exist in your project's directory. However, if you want to run a different file, that's [also possible](https://github.com/zeit/micro#example). But for this example, we'll go with the default behaviour:
+
+${
+
+ {`module.exports = () => ({
+ date: new Date
+})`}
+
+}
+
+The exported arrow function shown above simply returns an object with the current date. And thanks to \`micro\` providing the functionality of a web server, you only need to run the \`start\` script contained within your \`package.json\` file:
+
+${
+ npm start
+}
+
+BOOM! The service will start running and you'll see a message like this one showing that \`micro\` started exposing the code you wrote on the default port **3000**:
+
+${
+
+ > Ready! Listening on http://0.0.0.0:3000
+
+}
+
+Go to the URL returned (\`http://0.0.0.0:3000\`) and you should see something like this:
+
+${
+
+}
+
+## Retrieving and Sending Data
+
+That's great, isn't it? But we're not quite there yet! The next step is to take advantage of **async** and **await** by loading real data once the request comes in (then we'll send it back as the response).
+
+As example, we're going to retrieve the list of public members inside our [GitHub organisation](https://github.com/zeit) using their [API](https://developer.github.com/v3/orgs/members/).
+
+In order to get there, the first thing we need to do is install [node-fetch](https://github.com/bitinn/node-fetch), a package that allows us to easily load data from an API endpoint and now that we already have a \`package.json\` in place, this only requires a command:
+
+${npm install --save node-fetch}
+
+You'll notice that the package got added to your \`dependencies\` list. We achieved this by taking advantage of the \`--save\` option. Now the property should look **similar** to this:
+
+${
+
+ {`"dependencies": {
+ "micro": "latest",
+ "node-fetch": "^1.6.3"
+}`}
+
+}
+
+Done? Perfect! Then let's get over to updating \`index.js\`. First, we need to load [node-fetch](https://github.com/bitinn/node-fetch):
+
+${{`const fetch = require('node-fetch')`}}
+
+Next, prepend the new \`async\` keyword (which allows us run asynchronous code inside it) to the exported function, use \`fetch()\` with GitHub's [endpoint URL](https://api.github.com/orgs/zeit/members), assign it to a constant and then parse the JSON in the response using the \`.json()\` method.
+
+Once that's done, you only need to return the parsed JSON data. All in all, it should look like this:
+
+${
+
+ {`module.exports = async () => {
+ const request = await fetch('https://api.github.com/orgs/zeit/members')
+ const data = await request.json()
+
+ return data
+}`}
+
+}
+
+Now save the file and run it the service again (if it's still running, stop it using \`ctrl + c\` before starting it again):
+
+${npm start}
+
+Assuming that you've followed this post to this point, you should now see able to open \`http://0.0.0.0:3000\` in your browser and see a list of all public members of the [ZEIT organisation](https://github.com/zeit) on GitHub:
+
+${
+
+}
+
+## Deploying the Service
+
+Now that the JSON API works locally, we can deploy it by running this command:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your API microservice. This means that you can already use this URL in a testing application and load the data into it.
+
+But in the case of a real microservice, you would now have to ${assign an alias} to it.
+`)
diff --git a/pages/docs/examples/next.js b/pages/docs/examples/next.js
new file mode 100644
index 0000000000..9ee28717c0
--- /dev/null
+++ b/pages/docs/examples/next.js
@@ -0,0 +1,132 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink, AnchorLink } from '../../../components/text/link'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Super Basic Next.js Application',
+ date: '24 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+When it comes to complex, dynamic applications which need to serve a lot of purposes, we were always driven by finding the easiest and most efficient way of handling the process of creating such a new app.
+
+That's the reason why we combined all of our experiences and created [Next.js](https://zeit.co/blog/next), a tiny toolbet made out of commands which abstracts away all of the complicated machinery required for creating a [React](http://reactjs.com/) application.
+
+For the exact details, read [this post](https://zeit.co/blog/next).
+
+## Requirements
+
+Before we get started, please make sure that your instance of Node is up-to-date. You should have the latest "Current" release (compare it with [this](https://nodejs.org/)). If it's not, click on the download button on the site and get yourself the newest version.
+
+You can use this command to check the version tag of your local instance:
+
+${node -v}
+
+Once the output of the command matches the latest version on the site, go on to the next section.
+
+## Setup
+
+Let's start with creating a new empty directory and moving into it:
+
+${{`mkdir next-app\ncd next-app`}}
+
+Next, create the project's \`package.json\` in that directory:
+
+${
+
+ {`{
+ "name": "next-app",
+ "scripts": {
+ "dev": "next",
+ "build": "next build",
+ "start": "next start"
+ }
+}`}
+
+}
+
+The JSON code shown above tells [npm](https://www.npmjs.com/) to prepare three commands:
+
+* \`npm run dev\` – Runs \`next\` in the development mode and creates a server for testing the application locally.
+* \`npm run build\` – This command will be run by now on the server (you can also enter it in your terminal to try out how the application will look in production) and prepare it to be served to the visitor.
+* \`npm start\` – Once \`next\` has built the app with \`npm run build\`, this command will serve the code to the end user. As long as it runs, your app will be accessible!
+
+Got it? Pretty straight-forward, isn't it?
+
+Now that we've told \`next\` what to do, we still need to install it. In order to make it work, we also need to install [react](https://facebook.github.io/react/) and [react-dom](https://facebook.github.io/react/docs/react-dom.html):
+
+${
+
+ npm install next react react-dom --save
+
+}
+
+The command shown above installs all three dependencies and adds them to your \`package.json\` file, so that you can install them again by just running \`npm install\` later.
+
+## Adding Content
+
+Now that the project's meta files are in place, we can start adding the code that will be rendered when a visitor accesses the site.
+
+With most frameworks, you would now have to set up a router and tell it about the page you'd like to add. But with [Next.js](https://zeit.co/blog/next), the only thing you need to do is create a page and the framework will automatically handle the rest.
+
+In turn, the next step will be to just add a directory named "pages". As the name indicates, this is where all pages of your application will be located. Based on the directory structure, each file will be mounted to a specific path.
+
+As an example, you can now add a \`index.js\` file inside that folder, which will be served when the / path is accessed on your app. Into this file, put this code:
+
+${
+
+ {`export default () => (
+
Welcome to Next.js!
+)`}
+
+}
+
+As you can see, we're exporting [JSX code](https://facebook.github.io/react/docs/jsx-in-depth.html) which renders a paragraph with some random content in it.
+
+## Trying out the Code
+
+[Next.js](https://zeit.co/blog/next) comes with a awesome development toolchain built-in. We've defined one of these commands ${earlier} in the \`package.json\` file we've created: The \`dev\` script (linked to the \`next\` command), which can be can run like this:
+
+${npm run dev}
+
+When running the command, \`next\` will build the code and serve it on the address shown in the terminal. In addition, it will watch for changes on the files inside your project. If you make changes to the code, the app will be built again.
+
+This is how it should look:
+
+${
+
+}
+
+You can now go to in your browser and see the rendered markup:
+
+${
+
+}
+
+That's all! Now the application is **ready to be deployed** (we'll discuss this in the next section). But if you want to learn more about the intention behind Next.js, you can read [this](https://zeit.co/blog/next) or check out the [documentation](https://zeit.co/blog/next). Have fun with it!
+
+## Deploying the App
+
+Once the application works as expected, you can **deploy it** by running this command:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your freshly created application. This means that you can already share the URL with other people across the globe and have them enjoy it.
+
+But in the case of a real service (not used for testing purposes), you would now have to assign an ${alias} to it.
+`)
diff --git a/pages/docs/examples/slack-slash.js b/pages/docs/examples/slack-slash.js
new file mode 100644
index 0000000000..c42895b887
--- /dev/null
+++ b/pages/docs/examples/slack-slash.js
@@ -0,0 +1,138 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Slash Command for Slack',
+ date: '28 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+For most people in the web community, [Slack](https://slack.com/) has become an essential part of their everyday life. It has turned into a wonderful tool for sharing text, sending files around and building a community (a great example for this is [our public Slack team](https://zeit.chat/)).
+
+To support this wide range of use cases and empower people who use the service to gather people together for a great cause, I thought it would be a great idea to set up a detailed documentation about building a slash command on top of ${}.
+
+The idea is to allow your team members to retrieve weather information of a specific location by running a command like \`/weather\` inside Slack. This creates a nice base for building a more complex command of your choice!
+Ready? Let's start over with what's needed for this:
+
+## Requirements
+
+Before we can go on, please ensure that you have a team account signed up on Slack's platform. If you still need to create one, you can do that directly on their [front page](https://slack.com/).
+
+Next, make sure that your instance of Node is up-to-date. You should have the latest "Current" release (compare it with [this](https://nodejs.org/)). If it's not, click on the download button on the site and get yourself the newest version.
+
+You can use this command to check the version tag of your local instance:
+
+${node -v}
+
+Once the output of the command matches the latest version on the site, go on to the next section.
+
+## Setup
+
+Now that Slack knows where to send requests to when the command is run, we can start building the service that responds to these requests. So let's create a new empty directory and move into it:
+
+${
+
+ {`mkdir slash-command\ncd slash-command`}
+
+}
+
+Next, create the project's \`package.json\` file in that directory:
+
+${
+
+ {`{
+ "name": "slash-command",
+ "scripts": {
+ "start": "micro index.js"
+ }
+}`}
+
+}
+
+The code above tells ${} the name of the project ("slack-cmd") and also to execute the \`index.js\` file (using micro, which we'll install in the next paragraph) when the \`npm start\` command is run in your terminal or on the server.
+
+Next, you need to install [micro](https://github.com/zeit/micro), a library of ours that makes building a [microservice](https://zeit.co/docs/examples/json-api) a breeze. In addition, we'll need [yahoo-weather](https://www.npmjs.com/package/yahoo-weather), which will provide us with the weather data.
+
+Run this command in your terminal to install both using [npm](https://www.npmjs.com/):
+
+${
+
+ npm install --save micro yahoo-weather
+
+}
+
+Now create the \`index.js\` file and populate it with code. Load [yahoo-weather])(https://www.npmjs.com/package/yahoo-weather) and [url](https://nodejs.org/api/url.html) (a native module for parsing URLs):
+
+${
+
+ {`const weather = require('yahoo-weather')
+const url = require('url')`}
+
+}
+
+Then you need to export the code which specifies the output rendered when the service is accessed by Slack. In our case, it's a function that retrieves the current weather and returns a message containing the condition in degrees celcius:
+
+${
+
+ {`module.exports = async request => {
+ const query = url.parse(request.url, true).query
+
+ if (!query.text) {
+ return 'No location defined!'
+ }
+
+ const weatherInfo = await weather(query.text.toLowerCase())
+ const temperature = weatherInfo.item.condition.temp
+
+ return 'It is ' + temperature + ' degrees celsius in ' + query.text + ' right now!'
+}`}
+
+}
+
+## Deploying
+
+Now that we've covered the project's files, you can **deploy it** by running this command:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your freshly created slash command service. Now we're ready to tell the Slack platform about the service, so that it can send requests there.
+
+But in the case of a real service (not used for testing purposes), you would now have to [assign an alias](https://zeit.co/docs/features/aliases) to it.
+
+## Registering the Command
+
+Telling Slack about the command is pretty easy. As the first step, you need to search [this page](https://slack.com/apps) for the "Slash Commands" application. Once you've found it, click on "Add Configuration" in the sidebar:
+
+${
+
+}
+
+You'll be forwarded to another page where you need to enter the name of your slash command. In our case, it should be \`/weather\`. Enter it and click on the green button at the bottom!
+
+Now you should see a section named **Integration Settings**. In there, we need to add the address of our deployment to the **URL** field, select **GET** as the **Method** and enter "weather" in the **Customize Name** input.
+
+Optionally, you can also make the command show up in the autocomplete help in the **Autocomplete help text** section:
+
+${
+
+}
+
+Hit **"Save Integration"** once you're done!
+
+You should now be able to run the \`/weather\` command from within Slack.
+`)
diff --git a/pages/docs/examples/static.js b/pages/docs/examples/static.js
new file mode 100644
index 0000000000..12aa3e45f6
--- /dev/null
+++ b/pages/docs/examples/static.js
@@ -0,0 +1,102 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Building a Static Website',
+ date: '23 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+With just a single command, even complex Node applications or Docker containers can be deployed with now.
+
+But in some cases, there isn't the need for running code on the server. Sometimes you just want to share files or make a static website accessible for other people.
+
+Thankfully, our tools make deploying such a project just as easy as it is with a full-blown application.
+
+## Setup
+
+Because basic static websites don't require any special tools in order to work, there's not much you need to do in order to prepare your own one. For the beginning, just create a directory and switch to it by running these commands in your terminal:
+
+${{`mkdir static-site\ncd static-site`}}
+
+Inside that directory, use your favorite editor to create a \`index.html\` file with this content:
+
+${
+
+ {`
+
+`}
+
+}
+
+The code basically loads ZEIT's logo from our content delivery network and shows it to the user. In addition, I sprinkled some cute CSS styles on top to position the image in the exact center of the page.
+
+This is how it will look in the browser when opening the file:
+
+${
+
+}
+
+## Testing across Devices
+
+When developing a static project, you should always make sure that it works on various devices, not just on your own one. This can be solved by simply skipping to ${Deploying}, sending the link to somewhere else and then testing it from there.
+
+This is a very good idea when working with people across the whole globe and having them try out your project for you. But if you only want to open it on a different device in your own home network, there's a specialized solution: [serve](https://github.com/zeit/serve).
+
+Want to see what it does exactly? Easy! Simply start with installing it:
+
+${npm install -g serve}
+
+Afterwards, move into the directory containing your static site:
+
+${cd static-site}
+
+And then, finally, run it using this command:
+
+${serve}
+
+Now you'll see a message containing two addresses:
+
+* **"Local"**: The URL which you can open in the browser on the device where serve is running.
+* **"On Your Network"**: That's the address that you can open on different devices on the same network to see your project.
+
+That easy! Now you can test the site on other platforms (like your phone) as well.
+
+You can stop \`serve\` by hitting \`CTRL + C\`.
+
+## Deploying the Site
+
+Once the static website works on all devices, we can deploy it by running this command:
+
+${now}
+
+Once ${} has finished uploading the files, you'll see a URL that points to your freshly created website. This means that you can already share the URL with other people across the globe and have them enjoy your site.
+
+But in the case of a real website (not used for testing purposes), you would now have to [assign an alias](https://zeit.co/docs/features/aliases) to it.
+`)
diff --git a/pages/docs/features/aliases.js b/pages/docs/features/aliases.js
new file mode 100644
index 0000000000..2de1246507
--- /dev/null
+++ b/pages/docs/features/aliases.js
@@ -0,0 +1,409 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rauchg } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink, ExternalLink } from '../../../components/text/link'
+import { P } from '../../../components/text/paragraph'
+import Image from '../../../components/image'
+import { InlineCode } from '../../../components/text/code'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Aliases and Custom Domains',
+ date: '21 Feb 2017',
+ authors: [rauchg],
+})(markdown(components)`
+
+This guide covers how to assign custom names to your ${} deployments
+
+* As custom subdomains under \`.now.sh\` (for example https://hello.now.sh)
+* As entirely custom domains (for example https://your-company.com)
+
+## Aliasing Basics
+
+Whenever you deploy to ${}, the URL you get in return looks like something like:
+
+${
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+}
+
+If we dissect that URL, we can see it's composed of a few parts:
+
+* **https://** -Every single deployment is automatically served under HTTP/2 with SSL. Certificates are provisioned automatically.
+* **get-started-basic** - The application's name. You can customize it upon deployment (for example with the name field in package.json for Node.js deployments or LABEL in Dockerfile for Docker ones.
+* **etjnigdrkz** - A cryptographically-strong random string that makes your URL virtually impossible to guess, while retaining a reasonable length for sharing it with your co-workers or clients.
+* **.now.sh2** - All your deployments end in .now.sh by default. Aliases allow you to point them to custom domains.
+
+These URLs area ideal for development and staging, but not ideal to share with the public.
+
+${} aliases have two purposes:
+
+* Giving your deployment a friendly name that's more memorable.
+* Upgrading a certain deployment to production, by supplanting the previous alias with **zero downtime**.
+
+## Creating Aliases
+
+Aliases are managed by invoking the command \`now alias\`, which has the following syntax:
+
+${
+
+ now alias <SOURCE URL | ID> <TARGET SUBDOMAIN | DOMAIN>
+
+}
+
+For example, let's say I want \`https://get-started-basic-etjnigdrkz.now.sh\` …
+
+${
+
+}
+
+… to be accessible by the alias \`get-started-basic.now.sh\`. All I have to do is run:
+
+${
+
+ now alias https://get-started-basic-etjnigdrkz.now.sh{' '}
+ get-started-basic
+
+}
+
+${
+
+ > Success!
+ {` Alias created `}
+ (CIyk6IKL8MIHzAqrmcxbM8kf)
+ {`:
+`}
+
+ https://get-started-basic.now.sh
+
+ {` now points to `}
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+ {` `}
+ (xpvB6GZWMR6Q9Oxe3c64Htgq)
+ {` [copied to clipboard]`}
+
+}
+
+After this successful message, my deployment is instantly available via its original URL and the new alias I gave it:
+
+${
+
+ The URL get-started-now.sh now works!
+
+ }
+ />
+}
+
+Notice that I omitted \`.now.sh\` at the end of the target subdomain. When one is not given, we default to \`now.sh\`.
+
+As seen in the output, each alias receives a unique identifier. In the example above, it's \`xpvB6GZWMR6Q9Oxe3c64Htgq\`. We'll cover this later in the **Managing Aliases** section.
+
+The output also refers to the deployment ID, which is also accessible when you list your deployments with now ls. It can be used in substition of the URL when running \`now alias\`:
+
+${
+
+ now alias xpvB6GZWMR6Q9Oxe3c64Htgq get-started-basic
+
+}
+
+As a convenience, we parse the URLs you supply as parameters to \`now alias\` to extract the hostname, which means the following are all valid **source URLs**:
+
+* Just the hostname: \`get-started-basic-etjnigdrkz.now.sh\`
+* Including http(s): \`http://get-started-basic-etjnigdrkz.now.sh\`
+* Including /: \`https://get-started-basic-etjnigdrkz.now.sh/\`
+
+## Custom Domains
+
+The same mechanism we explained above can be used to configure an **external domain**.
+
+The command is almost exactly the same:
+
+${
+
+ now alias https://get-started-basic-etjnigdrkz.now.sh zeithq.com
+
+}
+
+I already registered the domain \`zeithq.com\`, so I'll go ahead and run that command.
+
+${
+
+ {`> `}
+
+
+ zeithq.com
+
+
+ {` is a custom domain.`} {`
+> Verifying the DNS settings for `}
+
+
+ zeithq.com
+
+
+ {` (see `}
+
+ https://zeit.world
+
+ {` for help)`} {`
+> Resolved IP: none`} {`
+> Nameservers: ns-cloud-d1.googledomains.com, ns-cloud-d2.googledomains.com, ns-cloud-d3.googledomains.com, ns-cloud-d4.googledomains.com`}
+
+ > Error!
+ {` Please make sure that your nameservers point to`}
+ {' '}
+ zeit.world
+ {`.`} {`
+> Examples: (full list at `}
+
+ https://zeit.world
+
+ {`)`} {`
+> `}
+ -
+ {` california.zeit.world `}
+ 173.255.215.107
+ {``} {`
+> `}
+ -
+ {` newark.zeit.world `}
+ 173.255.231.87
+ {``} {`
+> `}
+ -
+ {` london.zeit.world `}
+ 178.62.47.76
+ {``} {`
+> `}
+ -
+ {` singapore.zeit.world `}
+ 119.81.97.170
+ {``} {`
+> Alternatively, ensure it resolves to alias.zeit.co via `}
+ CNAME
+ {' '}/{' '}
+ ALIAS
+ {`.`}
+
+}
+
+With ${} there's no manual configuration of DNS records and domain zones. The only requirement is that you point your domain's nameservers to any of our ${zeit.world} hostnames.
+
+In this case, my domain is registered with Google Domains, so I edit the nameservers there to look like this:
+
+${
+
+ If you are using Google Domains, this is found under
+ {' '}
+ My domains > DNS
+
+ }
+ />
+}
+Upon re-running the command, we get:
+
+${
+
+ {`> `}
+
+ zeithq.com
+
+ {` is a custom domain.`} {`
+> Verifying the DNS settings for `}
+
+ zeithq.com
+
+ {` (see `}
+ https://zeit.world
+ {` for help)`} {`
+> Detected `}
+ https://zeit.world
+ {` nameservers! Configuring records.`} {`
+> DNS Configured! Verifying propagation…`} {`
+> Verification OK!`} {`
+> Provisioning certificate for `}
+
+ zeithq.com
+
+
+ > Success!
+ {` Alias created `}
+ (04N40HL8XcvOe5cxcgNhomM0)
+ {': '}
+
+ https://zeithq.com
+
+ {` now points to `}
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+ {' '}
+ (VfsUPntrbhEzccjLU1zAI30Q)
+ {` [copied to clipboard]`}
+
+}
+
+## Using CNAME and ALIAS
+
+If you want to use a domain that's configured with a third party DNS system, you can still use \`now alias\`.
+
+To do so, just create a **CNAME** or **ALIAS** record that points to \`alias.zeit.co\`.
+For this example, I'll configure \`hello.zeit.run\` to point to the same deployment I used above, but using Google's nameservers.
+First, I head to the DNS settings and add a \`CNAME\` record for the \`hello\` subdomain as follows:
+
+${
+
+ I added this record under
+ {' '}
+ DNS > Custom resource records
+
+ }
+ />
+}
+
+Next, I run \`now alias\`:
+
+${
+
+ now alias get-started-basic-etjnigdrkz.now.sh hello.zeit.run
+
+}
+
+${
+
+ {`> `}
+ hello.zeit.run
+ {` is a custom domain.`}
+
+ {`
+> Verifying the DNS settings for `}hello.zeit.run{` (see `}
+ https://zeit.world
+ {` for help)`} {`
+`}
+ > Error!
+ {` Verification required: Please add the following TXT record on the external DNS server: _now.zeit.run: ed24d6ddc87ee58332ac358ae`}
+
+}
+
+As you can see, as a security measure we require that you validate that you own this domain name. So I add an extra \`TXT\` record accordingly:
+
+${
+
+ Important! Notice the subdomain
+ is
+ {' '}
+ _now
+ {' '}
+ and the record type
+ {' '}
+ {' '}
+ TXT
+ !
+
+ }
+ />
+}
+
+${
+
+ {`> `}
+
+ hello.zeit.run
+
+ {` is a custom domain.`} {`
+> Verifying the DNS settings for `}hello.zeit.run{` (see `}
+ https://zeit.world
+ {` for help)`} {`
+> Verification `}OK{`!`} {`
+> Provisioning certificate for `}
+
+ hello.zeit.run
+
+ {``} {`
+> Success! Alias created (BucgEPj9TI4Pae3HzDQT3LAB):
+`}
+
+ https://hello.zeit.run
+
+ {' '}now points to
+ {' '}
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+ {' '}(VfsUPntybhEzccjLU1zAI30Q) [copied to clipboard]
+
+}
+
+## Security Considerations
+
+We ensure that **your domains are fully protected and only you can add aliases to them**.
+
+When you add an alias to a certain domain name, we first verify its ownership. If it's not been claimed by anyone, we associate it with your account.
+
+After I executed the \`alias\` above, I can run \`now domains ls\` to see my domains:
+
+${now domains ls}
+
+${
+
+ {`> 2 domains found [214ms]
+`}
+ {`
+ id dns url verified created`}
+ {`
+zXBxQLQYidDddAb2l6db26Cb zeit.world `}
+
+ https://zeithq.com
+
+ {` true `}
+ 11m ago
+ {`
+WAZjIaxvaiieNUqJc22PJUKG external `}
+
+ https://zeit.run
+
+ {` true `}
+ 20m ago
+
+}
+
+As you can see, there are two types of domains:
+
+* **external**: the domain is associated with a third-party nameserver provider like DNSimple.
+* **zeit.world**: the domain is hosted with ${zeit.world} and \`now alias\` automatically sets up records.
+
+Once a domain appears under \`now domains ls\`, it means that **only you can point aliases to them**. For **external** domains this requires verification. For **zeit.world**, make sure to add an alias to the domain or run \`now domain add\` as soon as possible.
+`)
diff --git a/pages/docs/features/certs.js b/pages/docs/features/certs.js
new file mode 100644
index 0000000000..9e002ca703
--- /dev/null
+++ b/pages/docs/features/certs.js
@@ -0,0 +1,59 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Managing SSL Certificates',
+ date: '15 Mar 2017',
+ authors: [leo],
+})(markdown(components)`
+
+Each time you create a new deployment, you will get a new, unique subdomain. For this address (just like for the custom domains you've added using \`now alias\` or \`now alias\`), we're automatically provisioning an SSL certificate for you.
+
+Our platform seamlessly communicates with [Let's Encrypt](https://letsencrypt.org/) to provide your deployment's domain with a [X.509](https://en.wikipedia.org/wiki/X.509) certificate without any costs. All of this happens in the brackground, without you even noticing it!
+
+You can read more about how exactly the certificate provisioning works [here](https://letsencrypt.org/how-it-works/). If you're interested in knowing which browsers the certificates are compatible with, [this](https://letsencrypt.org/docs/certificate-compatibility/) might also be of interest for you. At last, [this document](https://letsencrypt.org/certificates/) describes how the certificates work per se.
+
+## Using the CLI
+
+Let's take a look at how you can use ${}'s command line interface to manage your existing certificates and even upload new ones. In the following examples, \`zeit.rocks\` represents the domain you'd like to modify.
+
+### now certs ls
+
+Lists all certificates owned and created by the user. All certificate entries ever created will remain there in the list, as long as the user still owns the domain associated with the certificate. The actual certificates may however change over time. For example, we periodically renew all the certificates created with the API.
+
+### now certs create zeit.rocks
+
+Allows you to create a new certificate for any domain you have access to and have registered with now. There shouldn't be much real use for this command and it's mainly provided for symmetry, though you may want to use it for creating a certificate entry for a subdomain in advance, before creating an alias using the domain.
+
+### now certs renew zeit.rocks
+
+Can be used for renewing an existing certificate issued with now. This command can't used for renewing a custom certificate provided by the user.
+
+### now certs replace
+
+That's the core of this update! The command can be used for uploading a certificate issued by a 3rd party Certificate Authority. It requires you to already have an alias with an automatic certificate in place. You can use it like this:
+
+${
+
+ now certs replace
+ {' '}
+ --crt domain.crt --key domain.key --ca ca_chain.crt zeit.rocks
+
+}
+
+**Keep in mind**: \`--ca ca_chain.crt\` is optional but needed if your certificate provider is not considered as a root Certificate Authority by web browsers and operating systems (which is usually the case). This file is usually provided by the Certificate Authority you're using.
+
+## The API Endpoint
+
+Finally, version **0.6.0** of [now-client](https://github.com/zeit/now-client) comes with API wrappers for managing the certificates bound to aliases using a custom domain.
+
+Normally, when a user created an alias with ${} command line utility, we automatically issued a certificate for it (like previously described in ${this post}). So technically, the API endpoint was already there. But until recently, it only supported issuing new certificates. By now, it also supports renewal, removal and replacement.
+
+The endpoint is called \`/now/certs\` and available in our ${REST API}.
+`)
diff --git a/pages/docs/features/configuration.js b/pages/docs/features/configuration.js
new file mode 100644
index 0000000000..be04e2e318
--- /dev/null
+++ b/pages/docs/features/configuration.js
@@ -0,0 +1,171 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rauchg, leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { P } from '../../../components/text/paragraph'
+import { Code } from '../../../components/text/code'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Configuring now',
+ date: '22 Feb 2017',
+ authors: [rauchg, leo],
+})(markdown(components)`
+
+As the CLI for now grew bigger, many options were introduced for allowing you to customize its behaviour. Because of this, we've decided to provide an easy way of keeping track of your configuration. This guide explains how to use these methods to configure and customize the default behavior of your now deployments.
+
+In addition to the options available in the command line interface (like \`--name\` for setting then name of the deployment), we also support saving certain parameters into a config file of your choice.
+
+## Files
+
+At the moment of writing this, we support for files that can contain the configuration for your project. Both should be located in the root directory of your project and called as mentioned below.
+
+Please note that it's not possible to add both files to a project. You need to choose between the two ones shown below. If both exist in the same directory, you'll be asked to remove one.
+
+For [Node.js](https://nodejs.org/) projects, we recommend using package.json, while now.json can be used for [Docker](https://www.docker.com/) or static deployments.
+
+### package.json
+
+If you have a JavaScript-based project (like a Node.js server or a frontend with a \`build\` script), you are already using \`package.json\`.
+
+As a convenience, we allow for settings to be defined within the \`now\` namespace inside the file. For example, let's say you wanted to always alias a deployment to \`cool.now.sh\` upon deployment. Your \`package.json\` would look as follows:
+
+${
+
+ {`{
+ "name": "my-node-project",
+ "dependencies": {
+ "micro": "latest"
+ },`}
+ {`
+ "now": {
+ "alias": "cool"
+ },`}
+ {`
+ "scripts": {
+ "start": "micro"
+ }
+}`}
+
+}
+
+For a list of all available options, refer to the "Settings" section below.
+
+### now.json
+
+For every type of deployment, including \`package.json\` ones, you can create a \`now.json\` file that contains your deployment's configuration.
+
+For example, consider a static deployment with some \`.html\` files in a directory called \`my-website\`.
+
+Since no configuration is supplied, the deployment's name is obtained from the directory. To customize this, you can create a \`now.json\` file inside it as follows:
+
+${
+
+ {`{
+ "name": "my-new-name"
+}`}
+
+}
+
+For a list of all available options, refer to the "Settings" section below.
+
+## Settings
+
+All of the properties mentioned below can be used both in the \`package.json\` and inside the \`now.json\` file:
+
+### "name" (string)
+
+The prefix for all new deployment instances. The CLI usually generates this field automatically based on the name of the directory. But if you'd like to define it explictly, this is the way to go.
+
+${{`"name": "zeit-chat"`}}
+
+### "alias" (string|array)
+
+Aliases which will be assigned to the latest deployment when running \`now alias\` (with no arguments).
+
+${
+
+ {`"alias": "zeit.chat"
+
+"alias": [
+ "zeit.chat"
+]`}
+
+}
+
+### "env" (object)
+
+A list of environment variables to be set on each new deployment instance.
+
+${
+
+ {`"env": {
+ "DATABASE_NAME": "test"
+}`}
+
+}
+
+### "dotenv" (boolean|string)
+
+ead environment variables from [dotenv](https://github.com/motdotla/dotenv) file.
+
+${
+
+ {`"dotenv": true
+
+"dotenv": ".env.production"`}
+
+}
+
+### "files" (array)
+
+A list of files and directories to be force-uploaded to the deployment (even if they're ignored by \`.gitignore\`).
+
+${
+
+ {`"files": [
+ "hello.png",
+ "dist"
+]`}
+
+}
+
+### "type" (string)
+
+A field for specifying the deployment type ("npm" or "docker") if both \`package.json\` and \`Dockerfile\` exist. This will prevent \`now\` from asking you to choose the type in these cases.
+
+${{`"type": "npm"`}}
+
+### "forwardNpm" (boolean)
+
+Automatically forward the npm login information to our servers to install [private npm packages](https://www.npmjs.com/features).
+
+${{`"forwardNpm": true`}}
+
+### "public" (boolean)
+
+Controls if \`_src\` should be available or not. By default, this property is set to \`true\` if your account is using the OSS plan and \`false\` if the Premium plan is in use.
+
+${{`"public": true`}}
+
+### "engines" (object)
+
+In general, we recommend letting us choose the version, because it ensures that you always take advantage of the latest features, performance improvements and bug fixes.
+
+By default, all new deployments will come with the [latest stable version](https://nodejs.org/en/download/current/) of Node.js
+
+If you need a specific Node.js version we allow you to define the version (semver syntax) of [Node.js](https://nodejs.org/en/) you want to run on the server:
+
+For an example, this is how to use the latest version of Node.js 6 inside ${}.
+
+${
+
+ {`"engines": {
+ "node": "^6.0.0"
+}`}
+
+}
+
+
+`)
diff --git a/pages/docs/features/dns.js b/pages/docs/features/dns.js
new file mode 100644
index 0000000000..0cf334cc39
--- /dev/null
+++ b/pages/docs/features/dns.js
@@ -0,0 +1,166 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { hbp, leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+import Image from '../../../components/image'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Using Custom Domains & DNS Setup',
+ date: '15 Mar 2017',
+ authors: [hbp, leo],
+})(markdown(components)`
+
+When deploying a project to ${} you'll always get a unique subdomain provisioned for your deployment. This makes it very easy to iterate on code and share the changes made with other people quickly.
+
+This is how such a URL could look like:
+
+${https://my-app-qbncycxjue.now.sh}
+
+Each time you deploy again, you will get a new one. This is perfectly suitable for staging your project until it's ready for production. Once that moment has come, however, you need to provide your users with a definite domain for accessing it.
+
+## Adding a Domain Using Our Nameservers
+
+With the release of ${}, also introduced a DNS service called ${zeit.world}, which makes the process I've mentioned above very easy:
+
+The only thing you need to do if you want to add a custom domain using this method is ${point your domains to our nameservers} and then alias a deployment by running this command after deploying:
+
+${
+
+ {`now alias `}
+
+}
+
+As an example, adding an the alias "domain.com" to the URL I've shown above, would work like this:
+
+${
+
+ now alias https://my-app-qbncycxjue.now.sh domain.com
+
+}
+
+After you've run the command, ${} will check if your domain points to a at least four namservers of ours, automatically provision an SSL certificate and assign the new domain to your deployment as an alias.
+
+In turn, your deployment would then be reachable at "domain.com" on the web.
+
+## Adding a Domain Using External Nameservers
+
+Previously, you've been able to use external nameservers by simply creating a \`CNAME\` record with a value of \`alias.zeit.co\` and adding an alias using the \`now alias\` command.
+
+From now on, this will be slightly different: You need to create a \`TXT\` record containing a token for authorization in addition to any CNAME or ALIAS records.
+
+The following example is demonstrating how you can use [Cloudflare](https://www.cloudflare.com/) with ${}. However, this workflow just works the same for any other external DNS service:
+
+* Firstly, add the domain to now using the \`--external\` flag:
+
+${
+
+ now domain add --external awesome-now.us
+
+}
+
+* Next, you'll see a token which you need to add as a \`TXT\` record to the DNS entries on the platform you're using for DNS management (like mentioned above):
+
+${
+
+}
+
+* Enable Full (strict) encryption. Without this step your deployments can't communicate with Cloudflare.
+
+${
+
+}
+
+* Finally, repeat the first step and your domain will be added (you won't see another token this time). Now you can use the domain for one of your deployments!
+
+* On some occasions \`now alias\` fails to issue a certificate for a deployment when using Cloudflare. In such a case you should try adding a page rule that enforces CloudFlare to use HTTP for the certificate request validation URL. The URL in question is formatted as follows: \`sub.yourdomain.com/.well-known/acme-challenge/*.\`
+In the following screenshot we have a page rule that turns off encryption when accessing a certificate request validation URL of any subdomain of \`awesome-now.us\`.
+
+${
+
+}
+
+The page rule should no be removed at any time because the verification URL is accessed every time we renew your certificates. In case the rule is removed and the verification URL is inaccessible, we may not be able to renew your certificates succesfully, which in turn may make your website or service inaccessible.
+
+## Managing DNS Records When Using Our Nameservers
+
+Thanks to the \`now dns\` sub command within our command line interface, managing existing DNS records on our namservers is as easy as pie. However, don't forget that this only applies to domains you've added using our ${zeit.world} service. In order to modify the records of an externally hosted domain, you need to interact with your DNS provider.
+
+In the examples shown below, the placeholder \`zeit.rocks\` represents a domain of your choice that was registered with \`now domains\` or \`now alias\`. Here are the sub commands you can take advantage of today:
+
+### now dns ls
+
+Lists all the DNS records created for domains using ${zeit.world}. The list doesn't include records generated automatically by the nameserver (like a default \`SOA\` record, \`A / AAAA\` records created automatically for \`ALIAS\` records, and so on).
+
+### now dns add
+
+Adds a DNS record to a domain of your choice (registered with \`now domains\` or \`now alias\`). The following record types are currently being supported:
+
+* A
+* AAAA
+* ALIAS
+* CNAME
+* MX
+
+This is how the command input needs to look like:
+
+${
+
+ now dns add <domain> <name> <record type> <value> [mx_priority]
+
+}
+
+* \`\` is the address owned by the user and previously registered with ${zeit.world} by using the commands \`now domain add zeit.rocks\` or \`now alias\`
+* \`\` is the subdomain that will be prefixed to \`\` (\`@\` as a \`\` refers to the domain without any prefix)
+* \`\` contains one of the supported record types shown above
+* \`\` indicates the target of the record (like an IP address or a hostname)
+* \`[mx_priority]\` sets the priority of a certain MX record and can therefore only be used in conjunction with this record type
+
+
+**Examples**
+
+${
+
+ now dns add zeit.rocks ext A 127.0.0.1
+
+}
+
+Creates an A record that makes the subdomain \`ext.zeit.rocks\` resolve to the server located at the IP address \`127.0.0.1.\`
+
+${
+
+ now dns add zeit.rocks @ MX mail.awesome-now.us 10
+
+}
+
+Creates an MX record which makes the mail server located at \`mail.awesome-now.us\` responsible for handling emails sent to an address suffixed with \`@zeit.rocks\`.
+
+### now dns rm <ID>
+
+Removes a record by its ID shown in the \`now dns ls\` listing. Note that it may take up to a couple of hours before the change is fully propagated across our infrastructure.
+
+## The API Endpoint
+
+As of version **0.7.0** of [now-client](https://github.com/zeit/now-client), it comes with API wrappers for managing the DNS records within your own application.
+
+The endpoint is called \`/domains/:domain/records\` and available in our ${REST API}.
+
+`)
diff --git a/pages/docs/features/env-and-secrets.js b/pages/docs/features/env-and-secrets.js
new file mode 100644
index 0000000000..5dbfc83dc1
--- /dev/null
+++ b/pages/docs/features/env-and-secrets.js
@@ -0,0 +1,138 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { P } from '../../../components/text/paragraph'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Environment Variables and Secrets',
+ date: '21 Feb 2017',
+ authors: [leo],
+})(markdown(components)`
+
+
+If there's information or certain behaviour of your project that needs to differ depending on if it's running locally or on now, environment variables are the perfect solution.
+
+Not only do they avoid having to hardcode these settings (which is very important for sensitive information, which can't just be version-controlled), but they also allow you to access information about the current environment your code is running in.
+
+There are various ways to define environment variables. Now you'll learn what's the right one for you.
+
+## \`e\` Option
+
+The first one is simply specifying them using the \`-e\` option. Assuming that you'd like to add an enviroment variable named "DATABASE_NAME" and give it a value of "test", this is how the command should look like:
+
+${now -e DATABASE_NAME="test"}
+
+This will deploy the project within the current directory and assign the enviroment variable. In the code, you can then access it like this:
+
+${process.env.DATABASE_NAME}
+
+And just like defined before, the content of this global variable will be "test".
+
+## Config Files
+
+The second way of defining enviroment variables is made specifically for the cases in which the content of the variables you'd like to define will stay the same for every new deployment.
+
+If that fits your project, simply add the ${env property} to your \`now.json\` file or to the \`now\` property inside \`package.json\`:
+
+${
+
+ {`"env": {
+ "DATABASE_NAME": "test"
+}`}
+
+}
+
+As you may have already noticed it, this property holds an object which can contain as many enviroment variables as you want it to. And again, this will assign an environment variable called "DATABASE_NAME" with a value of "test" to your deployments.
+
+## \`--dotenv\` Option
+
+This option will allow you to use a [dotenv](https://github.com/motdotla/dotenv) environment config file. It will be parsed and turned into -e automatically. Here's an example .env file:
+
+${
+
+ MY_VARIABLE=example
+
+}
+
+Optionally you can provide a file to read. \`--dotenv=.env.production\` will read the \`.env.production\` file instead of \`.env\`. You can configure this option using \`now.json\` too. By adding the "dotenv" key with a value of \`true\` or the file name to use. An example is provided ${here}.
+
+## Securing Env Variables Using Secrets
+
+Sometimes you need to store sensitive information on the deployment that should only be accessible by the code that's running in it. This can be accomplished using \`now secret\`, which allows you to store such data needed by your apps to function (such as API tokens or passwords) in a secure way.
+
+Once you store a secret, its contents are no longer accessible directly by anyone. They can only be exposed to deployments as enviroment variables, which we'll show below.
+Let's create a secret with an API key:
+
+${
+
+ now secret add acme-api-key my-value-here
+
+}
+
+Once it's created, you can rename it with \`now secret rename\` or delete it completely with \`now secret rm\`. For more examples and the full list of options and commands, run \`now help secret\`.
+
+Afterwards, you can assign the secret to an enviroment variable. Here's an example of doing this using a command:
+
+${
+
+ now -e MY_VARIABLE=@acme-api-key
+
+}
+
+And here's how it should look when using the \`env\` configuration property:
+
+${
+
+ {`"env": {
+ "MY_VARIABLE": "@acme-api-key"
+}`}
+
+}
+
+Both of the solutions mentioned above will create an enviroment variable called "MY_VARIABLE" and assign the content of the "acme-api-key" secret to it (which is "my-value-here").
+
+## Tips & Tricks
+
+We implemented some sweet functionalities into the command line interface and the platform, which make adding enviroment variables and secrets to your deployment even easier.
+
+For example, you can also include \`-e\` multiple times:
+
+${
+
+ now
+ {' '}
+ -e
+ {' '}
+ API_KEY=@my-key
+ {' '}
+ -e
+ {' '}
+ APP_NAME="ZEIT, Inc"
+
+}
+
+And we also have the capability to inherit from your shell's environment. To do so, just skip the \`=value\` part:
+
+${
+ now -e MY_SHELL_VAR
+}
+
+How about other programming languages? The same mechanism applies to any project with a \`Dockerfile\`. The variables you include will be available to your \`RUN\` and \`CMD\` instructions.
+
+You can even prevent ${prevent} \`devDependencies\` from being installed using a enviroment variable!
+
+Finally, our ${API} users will find the new /now/secrets REST endpoints useful.
+
+## Default Variables
+
+By default, all deployments expose these environent variables:
+
+* **NOW**: Set to \`true\`, for detecting ${}.
+* **NOW_URL**: Contains the unique URL of your deployment. Even if you deployment was aliased, this variable will always contain the URL with the \`.now.sh\` suffix.
+`)
diff --git a/pages/docs/features/index.js b/pages/docs/features/index.js
new file mode 100644
index 0000000000..c3ba2a2582
--- /dev/null
+++ b/pages/docs/features/index.js
@@ -0,0 +1,4 @@
+// Helpers
+import redirect from '../../../lib/redirect'
+
+export default redirect('/docs')
diff --git a/pages/docs/features/now-cli.js b/pages/docs/features/now-cli.js
new file mode 100644
index 0000000000..75ef0759d9
--- /dev/null
+++ b/pages/docs/features/now-cli.js
@@ -0,0 +1,226 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo, rauchg } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { Code, InlineCode } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+import { Table, Row, Column } from '../../../components/table'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Now\'s Command Line Interface',
+ date: '09 Mar 2017',
+ authors: [leo, rauchg],
+})(markdown(components)`
+
+The \`now\` CLI is the main interface to the now cloud.
+
+It's available on Mac, Linux and Windows either via \`npm\` or as pre-built binaries. The recommended installation mechanism is by installing Now ${Desktop} which also ensures it's always up-to-date.
+
+While the default behavior of \`now\` is to deploy, it also has a variety of sub-commands grouped by different concerns.
+
+## Commands
+
+Here's the full list of all command available and what you can do with them:
+
+### Cloud
+
+The commands you should remember when working with now daily:
+
+${
+
+
+ Syntax
+ Description
+
+
+
+
+ now deploy [path]
+
+
+ When you invoke
+ {' '}
+ now
+ , the files within the current directory will be uploaded
+ to
+ {' '}
+
+ {' '}
+ and a new deployment will be created. After that, you'll instantly receive its
+ URL so that you can share it with other people around the globe.
+
+
+
+
+
+ now ls|list [app]
+
+
+ Show a list of all deployments. If
+ {' '}
+ [app]
+ {' '}
+ is defined, it will only
+ list the deployments under that namespace.
+
+
+
+
+
+ now rm|remove [id]
+
+
+ Remove a deployment from our platform. The
+ {' '}
+ [id]
+ {' '}
+ parameter can either be
+ the URL of your deployment (e.g.
+ {' '}
+ https://static-ytbbrhoggd.now.sh
+ {' '}
+ or the hostname (e.g.
+ {' '}
+ static-ytbbrhoggd.now.sh
+ ).
+
+
+
+
+
+ now ln|alias [id] [url]
+
+
+ Let's you configure an alias for an existing deployment. You can read more about how
+ to take the maximum of functionality out of this sub command
+ {' '}
+
+ here
+
+ .
+
+
+
+
+
+ now domains [name]
+
+
+ Allows you to manage your domain names directly from the command line (before using
+ them as aliases with
+ {' '}
+ now alias
+ ). Read more about it
+ {' '}
+
+ here
+
+ .
+
+
+
+
+ now certs [cmd]
+
+ By default,
+ {' '}
+
+ {' '}
+ will automatically provision certificates for your deployments. Using this sub command, you can
+ see when they're expiring and upload your own ones (
+
+ read more
+
+ ).
+
+
+
+
+
+ now secrets [name]
+
+
+
+ Read more
+
+
+
+
+
+ now dns [name]
+
+
+ Read more
+
+
+
+
+
+ now open
+
+ Running this sub command will open the latest deployment of the project within the current
+ directory in your default browser (aliases won't be respected).
+
+
+
+}
+
+### Administrative
+
+Help you to manage your account straight from your terminal:
+
+${
+
+
+ Syntax
+ Description
+
+
+
+ now billing|cc
+
+ Easily add or remove credits cards from your account and adjust billing methods.
+
+
+
+
+
+ now upgrade|downgrade [plan]
+
+
+ Switch your plan from within the command line interface. Even after the command is run,
+ we don't require you to use a web interface. The whole process happens directly in your terminal.
+
+
+
+}
+
+To show the list of sub commands and options in your terminal, run this command:
+
+${now help}
+
+## Selecting Files and Directories to Be Uploaded
+
+${} uses the metafiles inside your project to determine which files and directories should be uploaded to our platform and which ones should be ignored:
+
+* If \`.gitignore\` exists, we don't upload the contents that are defined in it
+* If \`.npmignore\` exists, we don't upload the contents that are defined in it and ignore the existence of .gitignore
+
+But it will get a little tricky if you're using the \`files\` property inside \`package.json\`: In that case, we follow [npm](https://www.npmjs.com/)'s behaviour. This means that if \`files\` exists (which as [per definition](https://docs.npmjs.com/files/package.json#files) defines which files **should** be uploaded), \`.npmignore\` will take precedence and have the final word on which items will be uploaded to ${}.
+
+This means that if you want to specify a list of files that should **never be ignored** when it comes to now, you should either use the \`now.files\` (not \`files\`) property inside \`package.json\` or the \`files\` property inside \`now.json\`:
+
+${
+
+ {`"files": [
+ "hello.png",
+ "dist"
+]`}
+
+}
+
+You can learn more about how to use this property ${here}.
+`)
diff --git a/pages/docs/features/path-aliases.js b/pages/docs/features/path-aliases.js
new file mode 100644
index 0000000000..0c5efabb56
--- /dev/null
+++ b/pages/docs/features/path-aliases.js
@@ -0,0 +1,125 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo, jamo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import Image from '../../../components/image'
+import { Code } from '../../../components/text/code'
+import Caption from '../../../components/text/caption'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Making Microservices Look Like a Monolith',
+ date: '15 Mar 2017',
+ authors: [leo, jamo],
+})(markdown(components)`
+
+The microservice API architecture has a lot of undisputed benefits. By breaking down your program into smaller independent pieces, teams find it easier to…
+
+* **Parallelize** their work.
+ Ownership and responsibility are more naturally distributed.
+* **Mix up** different programming languages, frameworks and even run them at different versions.
+ It's much easier to evolve when no migrations of large codebases are involved.
+* **Scale**, detect performance bottlenecks and isolate failures.
+ The overall system tends to be more resilient and easier to analyze.
+
+Yet two big challenges commonly follow: **coordination** and **simulation**.
+
+To solve this problem, we added a new feature to \`now alias\`, which makes composing and coordinating services a breeze. We will also explain how developers can effectively simulate and iterate on a cluster of microservices with the ${} architecture.
+
+## Build with Microservices. Serve as a Monolith.
+
+Before we introduced path aliases, it was commonplace to launch services with \`now\` and later assign them a new, usually more accesible, URL via \`now alias\`.
+
+For example, if you deploy our [Node.js microservice](https://github.com/now-examples/get-started-node) you get a URL that looks like this: \`api-auth-ybqnmnovxg.now.sh\`. It's immutable and unique to that point-in-time.
+
+${
+
+}
+
+After that, you could run \`now alias api-auth-ybqnmnovxg.now.sh auth.api.my-company.com\`. That would point your new microservice to a more friendly sub-domain.
+
+This model works remarkably well for development and staging. It allows me to maintain an unlimited number of copies of my service online, and I can test them in a real environment.
+
+But, how do I go from that to, for example, exposing it as \`my-company.com/api/auth?\` After all, the end-users of our applications or consumer of our APIs don't care about our underlying software architecture.
+
+In fact, pointing clients to different domains and sub-domains can be downright expensive:
+
+* Extra DNS lookups and TCP connections will be required when starting up.
+* Browsers will require [CORS headers](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), which will increase the complexity of your codebase and the length of the responses.
+* In some cases, User Agents will [pre-flight requests](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing#Preflight_example) to different origins. If \`company.com\` talks to \`api.company.com\`, you might incur in extra roundtrips for every request!
+
+From the perspective of a consumer, the best possible interface is a **monolith**.
+
+## Alias Rules
+
+If you're using our ${command line interface}, you're able to pass a very simple [JSON](https://en.wikipedia.org/wiki/JSON) file to the \`now alias\` command with a list of forwarding rules for your domains or sub-domains:
+
+${{`$ now alias company.com -r rules.json`}}
+${
+
+ Every time your run this command, the rules for
+ {' '}
+ company.com
+ {' '}
+ are updated without any downtime.
+
+ An example of
+ {' '}
+ rules.json
+ {' '}
+ with 4 custom forwarding rules.
+
+}
+
+Here are some of the main characteristics of the system we're excited about.
+
+### 1. Atomic
+Not a single request is dropped while or after the rules are loaded. You can run the command with confidence adding, substracting or modifying rules.
+
+### 2. Idempotent
+If any of the rules remain the same, the system's performance is not impacted and no errors occur.
+
+### 3. Versionable
+You can check in your rules to source control (e.g.: [GitHub](https://github.com/)) and keep track of the evolution of your architecture. Your team can review and discuss changes in pull requests. You can even automate synchronizing the rules in [CI](https://en.wikipedia.org/wiki/Continuous_integration)!
+
+### 4. Flexible
+Rules can include glob like wildcards (\`*\` and \`**\`) to enable very flexible matching. You can specify a particular method (\`"method": "GET"\`) or a set of them (\`["POST", "GET"]\`). The rules are matched in the order they are specified.
+
+### 5. Universal
+If the \`dest\` field of a given rule resolves to a now deployment or alias URL, we detect it and turn on intra-cluster optimizations.
+
+If it's an **external URL**, we act as a proxy, in line with our mission of gluing the cloud together through incremental changes and **avoiding expensive migrations**.
+
+### 6. Unlimited
+As said above, one of the remaining challenges with microservices is **simulation**. For example, if you are a developer tasked with improving the company's login experience, you might need to make changes to both the auth microservice and the frontend app.
+
+With ${}, you can push out your modified endpoint, modify the rules and clone them into a new location. For example, \`staging.company.com\` can be exactly the same as \`company.com\`, with the \`/api/auth\` rule pointing to the new microservice and the last (fallback) rule pointing to the modified website.
+
+There are no limits to the number of times you can deploy or how many aliases you can create!
+`)
diff --git a/pages/docs/features/private-npm.js b/pages/docs/features/private-npm.js
new file mode 100644
index 0000000000..70e7bf8320
--- /dev/null
+++ b/pages/docs/features/private-npm.js
@@ -0,0 +1,57 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rase, leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { Code } from '../../../components/text/code'
+import { TerminalInput } from '../../../components/text/terminal'
+import Image from '../../../components/image'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Using Private npm Dependencies',
+ date: '12 Mar 2017',
+ authors: [rase, leo],
+})(markdown(components)`
+
+If your application is using projects with dependencies hosted in private npm scopes, you can deploy such with - true to our style - just one command (and a flag):
+
+${now --forward-npm}
+
+This command will forward your npm credentials during the build process to fetch the required modules. Here's a little video of this feature in action, using a scoped private module in \`package.json\`:
+
+${
+
+}
+
+## Config Property
+
+If want to forward your [npm](https://npmjs.com/) credentials every time you create a new deployment using now, you can set the \`forwardNpm\` property inside your global \`~/.now.json\` file to \`true\`:
+
+${
+
+ {`{
+ "forwardNpm": true
+}`}
+
+}
+
+You can read more about how to configure ${} to your needs ${here}.
+
+## Why?
+
+[npm](https://npmjs.com/) makes it so radically easy to manage your organization's code. Sharing lots of small modules that do one thing well can make your team vastly more productive and your code easier to maintain and iterate on.
+
+To find out more about their plans visit [their website](https://npmjs.com/features).
+
+We're committed to giving you the best experience when deploying as an individual or in a team, and we hope this feature enhances that.
+
+## Enterprise Support
+
+Neither the \`--forward-npm\` flag, nor the \`forwardNpm\` config property support npm's [enterprise plans](https://www.npmjs.com/enterprise) or packages hosted on a custom infrastructure at the moment. But don't worry, we're already working on it!
+`)
diff --git a/pages/docs/features/repositories.js b/pages/docs/features/repositories.js
new file mode 100644
index 0000000000..053d78d64a
--- /dev/null
+++ b/pages/docs/features/repositories.js
@@ -0,0 +1,106 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { leo } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import { TerminalInput } from '../../../components/text/terminal'
+import Image from '../../../components/image'
+import { P } from '../../../components/text/paragraph'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Deploying Git Repositories',
+ date: '12 Mar 2017',
+ authors: [leo],
+})(markdown(components)`
+
+If you're developing a project that requires local changes before it can be deployed (like a regular application), running just now is the right way to move your code into the cloud.
+
+However, if you'd like to provide a pre-built application or tool which only needs to be configured slightly to fit the needs of the end user, we have another great feature for you:
+
+${{'now /'}}
+
+When running this command for a certain [Git](https://git-scm.com/) repository of your choice (make sure to replace \`\` and \`\`), the repository will be looked up on [GitHub](https://github.com/), [GitLab](https://about.gitlab.com/) and [BitBucket](https://bitbucket.org/). When found, ${} will automatically clone it, set any custom properties you've defined and deploy it.
+
+From there on, it will work just like any other deployment: You'll get a unique URL once the files have started uploading, your deployment will be initialized and then started up as usual.
+
+## Configuring Such a Deployment
+
+Thanks to the process I've explained earlier, configuring the deployment of a Git repository is just as easy as doing the same for one that's not being handled automatically by ${} in the hidden.
+
+If you want, you can either use \`now.json\` or the \`now\` property inside \`package.json\` within your repository for customizing the deployments. But please note that these settings can't be interfered with by the user. They're fixed.
+
+For the cases in which the user needs to specify his own settings, ${environment variables} can be used.
+
+When deploying [rauchg](https://twitter.com/rauchg)'s [slackin](https://github.com/now-examples/slackin) project, for example, you somehow need to define the API token and subdomain of your Slack team. And that's exactly where ${environment variables} come in really nicely:
+
+${
+
+ {
+ 'now -e SLACK_API_TOKEN="23uhc87" -e SLACK_SUBDOMAIN="socketio" now-examples/slackin'
+ }
+
+}
+
+This will deploy the [now-examples/slackin](https://github.com/now-examples/slackin) repository and set the environment variables \`SLACK_API_TOKEN\` (containing the API token) and \`SLACK_SUBDOMAIN\` (holding the subdomain of your team).
+
+That's it!
+
+Once ${} fetches the repository, you'll see just what you're used to: A link to the deployment, the repository will be deployed and the logs will be printed out. Once the repo has finished uploading, you'll see the invitation page:
+
+${
+
+}
+
+## Selecting a Git Reference
+
+Since there might be cases in which you'd like to choose a certain branch or commit containing a special change you'd like to share with other people (or see how it works in production mode), we've made it very easy to select a git reference of your choice.
+
+Simply append a \`#\` followed by the name of the branch or the commit. Assuming that you'd like to deploy the branch "v2", this is how the command will look like:
+
+${now rauchg/slackin#v2}
+
+And it works just as easy for commits. Just append the SHA:
+
+${now rauchg/slackin#e0f09a5}
+
+By default, ${} will select the master branch. However, as you can see, it only requires a single statement to change this!
+
+## Using URLs
+
+All of the things mentioned above can also be achieved by simply telling ${} the URL of the repository which you'd like to deploy (also supports GitLab and BitBucket):
+
+${
+
+ now https://github.com/rauchg/slackin
+
+}
+
+This also means that you can easily point to commits:
+
+${
+
+ now https://github.com/rauchg/slackin/commit/20ae6d3
+
+}
+
+...or even branches:
+
+${
+
+ now https://github.com/rauchg/slackin/tree/master
+
+}
+
+## How It Works
+
+* Behind the curtains, the command line interface (now) will firstly clone the repository to your local device (in a hidden directory).
+This ensures that even private repositories (or such that require a special form of authentication) will get cloned automatically without you having to specify any credentials. In addition, it's much more secure than cloning the code on the platform, because our system doesn't need to move any of your sensible authentication data to our servers.
+
+* Afterwards, the regular mechanism for handling the upload of your files will be applied to the local directory that contains a clone of the repository you've defined before.
+`)
diff --git a/pages/docs/features/zero-downtime-migration.js b/pages/docs/features/zero-downtime-migration.js
new file mode 100644
index 0000000000..37e3e5b38b
--- /dev/null
+++ b/pages/docs/features/zero-downtime-migration.js
@@ -0,0 +1,183 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { jamo, rauchg } from '../../../lib/data/team'
+import Now from '../../../components/now/now'
+import { InternalLink } from '../../../components/text/link'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Migrate Your App to now Without a Downtime',
+ date: '04 Apr 2017 9:42 AM PDT',
+ authors: [jamo, rauchg],
+})(markdown(components)`
+
+Migrations between different hosting services can be a daunting task. To help you migrate your current deployments to ${}, we have prepared this step-by-step guide.
+
+In order to avoid any downtime at all, we will take a few extra steps from the typical ${now alias} workflow.
+
+## Preparation and Migration
+
+1. Deploy to Now
+2. Adding Your Domain
+3. Upload SSL Certificates
+4. Update DNS Records
+
+## After you Migrate
+
+1. Set Up Automatic SSL Certificate Renewal
+2. Use \`zeit.world\` Nameservers
+
+## Preparation
+
+The first phase involves setting up your project in our infrastructure and ensuring everything is running smoothly.
+
+### 1. Deploy to now
+
+In the very first step, we need deploy the project to ${}. For most apps, all it takes is to run \`now\` in your project's directory. Please check out our ${Getting Started} section in our documentation center for more details.
+
+It is important to make sure the deployment is working before sending live production traffic to it. Take some time to ensure the deployment is working correctly.
+
+### 2. Adding Your Domain
+
+Typically, adding a domain name to our system involves a verification step to ensure DNS settings are correct.
+
+Since DNS updates tend to take a while to propagate, this process would probably result in some potential downtime of a few minutes while your nameserver changes reflect.
+
+To avoid this situation, we can first register the domain name as **external**, by retaining your current DNS provider.
+To register your domain \`example.ai\` in our system, run:
+
+${
+
+ now domains add --external example.ai
+
+}
+
+Initially, the command will output something like this:
+
+${
+
+ > Error! Verification required: Please add the following TXT record on the
+ external DNS server: _now.example.ai: b0981886d2c312e35c6b311cddd4eb0aea2e71a97d1e068b25f569527880f1bd
+
+}
+
+After you add this record in your DNS provider, you can re-run the initial command and it will succeed. You should get a message like this:
+
+${
+
+ > Success! Domain example.ai (p3wTrMPkzpnKqoH6ml9xpfbj) added [3s]
+
+}
+
+Now we are almost ready to update the DNS records to route traffic to your new now deployment. However, since all now deployments are served only over HTTPS, we need to provision an SSL certificate before we can proceed with the migration.
+
+### 3. Upload SSL Certificates
+
+When you run \`now alias\` for a new project, SSL certificates are automatically provisioned and configured for you.
+
+When migrating from an existing domain, however, it's not possible for us to provide the necessary validations, unless you decide to incur in a small amount of downtime.
+
+You may use your old SSL certificates, buy a new one, or if your hosting provider supports it, you can use Let's Encrypt to issue you a free SSL certificate for your site.
+
+To add the certificate, you will need three files: the key (\`example.ai.key\` below), certificate (\`example.ai.crt\`) and chain file (\`ssl_provider.crt\`). These are be provided to you when purchasing the SSL cert.
+
+To add your SSL certificate to be used for your domain, use the following command:
+
+${
+
+ now certs --key example.ai.key --crt example.ai.crt --ca ssl_provider.crt example.ai
+
+}
+
+Which will render something like this:
+
+${
+
+ > Success! Certificate entry example.ai (vDKECujW1pNt8O2HbWXp) created [598ms]
+
+}
+
+### 3.1. Add an Alias
+
+For the incoming traffic for your domain to be routed to your new deployment, we need to add an alias for your domain to the deployment:
+
+${
+
+ now alias my-deployment-eyhxcwtevc.now.sh example.ai
+
+}
+
+Which will result in:
+
+${
+
+
+ {`> example.ai is a custom domain.
+> Verifying the DNS settings for example.ai (see https://zeit.world for help)
+> Verification OK!
+> Success! Alias created (20eTbYba9wFNXfPODBxfMKVI):
+https://example.ai now points to https://my-deployment-eyhxcwtevc.now.sh
+(erwXnGEkDxAJQfCKTE3HFp3A) [copied to clipboard]`}
+
+
+}
+
+### 4. Update DNS Records
+
+So far none of our changes have affected traffic to your site. Now we may finally flip the switch and point the DNS records to your recent now deployment.
+
+For the apex domain (e.g.: \`example.ai\`, the domain name without \`www\`) you need to add an \`ALIAS\` or \`ANAME\` record pointing to \`alias.zeit.co\`.
+
+If your DNS of choice doesn't support those record types, you might temporarily resolve \`alias.zeit.co\` and use one of the returned IP addresses. Please note that those might stop working after a while, so don't rely on them as a long-term solution. After you transition, make sure to move your DNS to zeit.world as outlined in the last few steps.
+
+If your desired name is a subdomain instead, you need to add a \`CNAME\` record pointing to \`alias.zeit.co\`.
+
+As DNS changes begin to propagate, your site should now be working!
+
+## After You Migrate
+
+Once the migration is completed, and everything is working perfectly, we need to do a few more steps to ensure everything will continue to work on correctly.
+
+### 5. Set Up Automatic SSL Certificate Renewal
+
+If you performed the zero downtime migration from your existing host to now, you must have added an external SSL certificate. With the external cert, however, you do not have the benefit of automatic renewals.
+
+To issue a free certificate that we manage and auto-renew, just run:
+
+${
+
+ now cert renew example.ai
+
+}
+
+Make sure to run that command for all your other domains and subdomains.
+
+### 6. Use zeit.world Nameservers
+
+To get all the benefits of the now workflow, we suggest using our DNS service ${zeit.world}, optimized for both a great developer experience and fast lookup times.
+
+The best way to transition to it while preserving 100% uptime is to manually initialize the same DNS records that your external DNS currently has.
+
+For \`example.ai\` we will run:
+
+${
+
+ now dns add example.ai @ ALIAS alias.zeit.co
+
+}
+
+And for a subdomain we would run:
+
+${
+
+ now dns add www.example.ai CNAME alias.zeit.co
+
+}
+
+After that, simply update your domain's settings to point to any of our ${nameservers} and the migration will be complete!
+`)
diff --git a/pages/docs/getting-started/index.js b/pages/docs/getting-started/index.js
new file mode 100644
index 0000000000..c3ba2a2582
--- /dev/null
+++ b/pages/docs/getting-started/index.js
@@ -0,0 +1,4 @@
+// Helpers
+import redirect from '../../../lib/redirect'
+
+export default redirect('/docs')
diff --git a/pages/docs/getting-started/installing-now.js b/pages/docs/getting-started/installing-now.js
new file mode 100644
index 0000000000..f8512f4658
--- /dev/null
+++ b/pages/docs/getting-started/installing-now.js
@@ -0,0 +1,104 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rauchg, leo } from '../../../lib/data/team'
+import { InternalLink } from '../../../components/text/link'
+import Image from '../../../components/image'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Installing Now',
+ date: '07 Nov 2016',
+ authors: [rauchg, leo],
+})(markdown(components)`
+
+
+This guide will cover how to install and verify that Now is working properly. Our app is distributed in two forms:
+
+* A desktop application that sits on the menubar
+* A command line program that you can install from binaries or \`npm\`
+
+If you choose to install the desktop app, you don't need to manually install the command line program. The app will offer you to install it and maintain it up-to-date automatically.
+
+In general, we recommend you install the desktop app if your system is compatible. It stays out of the way and makes deploying, logging in and even sharing files a snap!
+
+## Installing the App
+
+To install **Now Desktop**, start by downloading the package from the ${download section}.
+
+We distribute the app version as a zip file. Double click to extract it and then drag and drop **Now** into "Applications".
+
+${}
+
+Please note that once the app is running, it will stay up-to-date automatically. This is the last time you have to manually download it and install it.
+
+Locate it in under "Applications" and double click it. The first time you launch it you'll be greeted by an onboarding tutorial:
+
+${}
+
+You'll also notice that we placed a ▲ icon on the menubar. This is your main point of interaction with the app.
+
+${}
+
+The third step will prompt you to install the CLI program. It's **highly recommended** that you do so, in order to access the more advanced parts of the system.
+
+${}
+
+The last and final step is to **log in** or **sign up** for your account. Just enter your email and follow the confirmation link.
+
+${}
+
+Once you're logged in, the menubar will reveal itself and you're ready to use now. Now I suggest going to the ${Your First Deployments} guide to learn more about how to interact with the platform.
+
+## Installing Binaries Without npm
+
+On the ${Download} page, we offer a third installation mechanism: Pre-built binaries. These can be run from anywhere in the filesystem, but we typically recommend exposing them in \`$PATH\`.
+
+## Installing From npm
+
+Additionally, we distribute the command line version of now on [npm](https://www.npmjs.com/package/now). If you don't have npm installed, you get it by installing [Node.js](https://nodejs.org).
+
+To verify npm is installed correctly, run the following command in your terminal:
+
+${npm --version}
+
+Which on my computer outputs:
+
+${4.1.2}
+
+Under certain configurations, the command above might fail because of insufficient permissions. In these cases, please [fix your npm permissions](https://docs.npmjs.com/getting-started/fixing-npm-permissions). After you're done, try running the command again.
+
+To verify now was installed correctly, run the following command:
+
+${now --version}
+
+`)
diff --git a/pages/docs/getting-started/introduction-to-now.js b/pages/docs/getting-started/introduction-to-now.js
new file mode 100644
index 0000000000..71978a7eb1
--- /dev/null
+++ b/pages/docs/getting-started/introduction-to-now.js
@@ -0,0 +1,101 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rauchg, tony } from '../../../lib/data/team'
+import { InternalLink } from '../../../components/text/link'
+import Now from '../../../components/now/now'
+import { TerminalInput } from '../../../components/text/terminal'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Introduction to now',
+ date: '07 Nov 2016',
+ authors: [rauchg, tony],
+})(markdown(components)`
+
+Throughout our journey building cloud-based applications for companies like **Cloudup** and **WordPress.com**, we found that the single most important contributor to productivity was the quality of the **deployment strategy** involved.
+
+In other words, what does it take for a developer within a team to create, iterate and publish a new product or API? How can they share their ongoing work with others? How can they diagnose problems?
+
+${} is a general solution for hosting and deploying internet services over the HTTP/2 protocol, with a focus on simplicity, speed, security and scale.
+
+These are some examples of applications you can run and scale on our platform:
+
+* API services like [Micro](https://github.com/zeit/micro) or [Express](http://expressjs.com/) (Node.js), Vapor (Swift)
+* Chat bots for platforms like [Slack](https://slack.com/) or [Messenger](https://www.messenger.com/)
+* Content management software like [WordPress](http://wordpress.com/)
+* Sophisticated single page applications with frameworks like [React](http://reactjs.com/), [Ember](http://emberjs.com/) or [Meteor](https://www.meteor.com/)
+* Simple HTML websites for marketing or documentation websites
+
+## How Is It Different?
+
+There are several important concepts that make ${} unique. You can read more about it on the ${product page}, but we’ll mention some of the design choices here that are foundational.
+
+## Developer Experience (DX)
+
+We make deployment extremely pleasant for the people who develop products. Programmers and designers find our platform incredibly easy to use without trading off flexibility and scale.
+
+An example is how easy it is to deploy any project in the filesystem. It just takes one command:
+
+${now}
+
+You can run the above command in your terminal after ${installing now}.
+
+The focus on Developer Experience is not merely aesthetic. The goal is to enable greater productivity by reducing the number of skills needed to go to production.
+
+Developers can be **self-sufficient** by not having to learn systems administration and operations from scratch, yet their deployments are secure, enterprise-grade and horizontally scalable.
+
+## Immutable Deployments
+
+Deployment is traditionally encumbered with artificial limitations, such as how many times a day you can push code or how many applications you can run. The UIs and programs that are commonly used are therefore designed around those limitations.
+
+${} has been designed around the idea that cloud resources are completely elastic. Its deployments are immutable, which means that every change you make to an application is simply a **brand new deployment!**
+
+The typical workflow is as follows:
+
+* You make an initial deployment of your application by invoking \`now\`
+* ${} returns a unique and random URL that’s only known to the developer
+* That URL is a completely new and isolated server within our infrastructure
+* If the developer makes a change, they write \`now\` again, getting a new URL server!
+
+Immutable deployment enables teams to **collaborate** better. Developers can share intermediate states (i.e.: in-progress work) with their teams very quickly.
+
+The progress of a project can be examined retrospectively by looking at the history of deployments. In addition, you can rollback an individual service to a former state if a mistake is made.
+
+## API-driven
+
+We recognize that different organizations and businesses will require a wide range of approaches to deployment. For example, certain processes might need to be tested prior to being deployed. Certain users might need to approve changes prior to them reflecting in a production website.
+
+To enable this sort of flexibility, we've taken an API-driven approach to deployment.
+
+* All of the ${} clients are ${open source}.
+ You can modify them and embed them at will thanks to the use of the liberal **MIT** license.
+
+* We maintain and document an easy-to-use REST API.
+ You can create your own workflows according to different business rules.
+
+* There are no private API calls.
+ There are no capabilities we use in our official clients and applications that is not exposed to the public.
+
+## No Lock-In
+
+We strive to provide effective solutions that don't involve API lock-in. We do this for two reasons:
+
+* Teams can start deploying with ${} without having to adapt their codebases or techniques.
+ For example, you can deploy any \`package.json\` or \`Dockerfile\` based project without a single change.
+* We want our superior user experience and performance to be the lock-in.
+ By providing a standards-compliant solution, we focus on differentiating ourselves simply by a superior service.
+
+We also strive to avoid network lock-in, by only supporting **open protocols** like HTTP/2 and WebSocket.
+
+## Who Is It For?
+
+Our product is designed for anyone who wants to take advantage of cloud computing, from individuals to Fortune 500 companies.
+
+* **Individuals** can deploy products and services easily and scale them automatically.
+ The full power of the cloud at an affordable price.
+* **Small teams** can focus on their products without having to hire a dedicated devops team.
+ They can take full advantage of their agility and lower coordination overhead and focus on building great products.
+* **Large organizations** can become more agile by deploying alongside legacy systems.
+ Our focus on open standards and protocols makes us completely interoperable and backwards-compatible with legacy systems and existing cloud and on-premise infrastructure.
+`)
diff --git a/pages/docs/getting-started/your-first-deployments.js b/pages/docs/getting-started/your-first-deployments.js
new file mode 100644
index 0000000000..612d8cebda
--- /dev/null
+++ b/pages/docs/getting-started/your-first-deployments.js
@@ -0,0 +1,602 @@
+import markdown from 'markdown-in-js'
+import withDoc, { components } from '../../../lib/with-doc'
+
+import { rauchg } from '../../../lib/data/team'
+import { ExternalLink, AnchorLink } from '../../../components/text/link'
+import Image from '../../../components/image'
+import { P } from '../../../components/text/paragraph'
+import {
+ TerminalInput,
+ TerminalOutput
+} from '../../../components/text/terminal'
+import Caption from '../../../components/text/caption'
+import { Code } from '../../../components/text/code'
+
+// prettier-ignore
+export default withDoc({
+ title: 'Your First Deployments',
+ date: '07 Nov 2016',
+ authors: [rauchg],
+})(markdown(components)`
+
+Deploying a website or API from your computer to the cloud as quickly as possible is now's main goal.
+
+This guide will cover:
+
+* Deploying a ${basic HTML / CSS example}
+* Deploying a ${JSON API written in Node}
+* Deploying a ${JSON API written in Rust with Dockerfile}
+
+This guide should only take a few minutes to complete. After deploying, we'll execute \`now alias\` to give your service a friendly URL.
+
+Before proceeding, make sure you have followed the installation guide and are able to launch a terminal session. Before proceeding, you should be able to execute this command on your terminal:
+
+${now --version}
+
+And it should report the version of \`now\` that you're running. It reports the following for me:
+
+${4.7.0}
+${
+
+ The expected output of the command
+ {' '}
+ now --version
+
+}
+
+If you're not able to run that command, you won't be able to continue this guide. Please reach out to us for help.
+
+## Deploying a Website
+
+We consider static any deployment that doesn't involve a build process. For example:
+
+* A single file
+* A directory with photos, videos or other files
+* A website, which is just a directory with some \`.html\` files
+* The output directory of a build, with static \`.html\` files
+
+Let's host a simple site with now. Start by creating a directory with two files \`index.html\` and \`style.css\`
+
+${
+
+}
+
+To create and go to this new directory from the terminal, run:
+
+${
+
+ {`mkdir get-started-basic\ncd get-started-basic`}
+
+}
+
+Then populate the files with your favorite text editor. First \`index.html\`:
+
+${
+
+ {`My first now deployment
+
+
+
+
+
+
▲
+
+`}
+
+}
+
+and then \`style.css\` as follows:
+
+${
+ {`body {
+ background: #000;
+ color: #fff;
+}
+
+div {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+}
+
+p {
+ font-size: 200px;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ text-align: center;
+}`}
+}
+
+Let's list the contents of the directory in the terminal to make sure everything is ok.
+
+${ls}
+
+The result should be as follows:
+
+${index.html style.css}
+
+To confirm the contents are ok, attempt to open **index.html**. On macOS, you can use the \`open\` command:
+
+${open index.html}
+
+${
+
+}
+
+On Linux, the equivalent command is typically \`xdg-open\`. On Windows or others, navigate to the directory and double-click \`index.html\` to open it in the default browser.
+
+Now it's time to deploy! Just run:
+
+${now}
+
+The output will look as follows:
+
+${
+
+ {`▲ get-started-basic now`}{``} {`
+> Deploying ~/Documents/Projects/now-examples/get-started-basic`}{``} {`
+> Using Node 7.0.0 (default)`}{``} {`
+`}
+ > Ready!
+ {` `}
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+ {` (copied to clipboard) [1s]`}{``} {`
+> Upload [====================] 100% 0.0s`}{``} {`
+> Sync complete (675B) [1s]`}{``} {`
+> Initializing…`}{``} {`
+> Building`}{``} {`
+> ▲ npm install`}{``} {`
+> ⧗ Installing:`}{``} {`
+> ‣ serve@^2.4.1`}{``} {`
+> ✓ Installed 167 modules [3s]`}{``} {`
+> ▲ npm start`}{``} {`
+> > get-started-basic@ start /home/nowuser/src`}{``} {`
+> > serve ./content`}{``} {`
+`}> Deployment complete!{``}
+
+}
+
+Tip: under the hood it's just a Node deployment using [serve](https://github.com/zeit/serve)!
+
+You can now open the link (in the example above \`https://get-started-basic-etjnigdrkz.now.sh\`) and you should see your deployment live. Every time you make a change to any of the files, or add new ones you can run \`now\` to deploy again and get a new URL.
+
+Then, by running \`now alias\` you're able to point your deployment URL to a more memorable name, like a custom domain or **.now.sh** shorthand:
+
+${now alias YOUR_DEPLOYMENT_URL my-new-name}
+
+For this example, I'm going to take the URL I got above and use as my target \`get-started-basic\`:
+
+${now alias https://get-started-basic-etjnigdrkz.now.sh get-started-basic}
+
+When you use \`alias\`, if the target omits \`.now.sh\` it's automatically added.
+
+${
+
+ > Success!
+ {` Alias created `}
+ (xpvB6GZWMR6Q9Oxe3c64Htgq)
+ {`:
+`}
+
+ https://get-started-basic.now.sh
+
+ {` now points to `}
+
+ https://get-started-basic-etjnigdrkz.now.sh
+
+ {` `}
+ (xpvB6GZWMR6Q9Oxe3c64Htgq)
+ {` [copied to clipboard]`}
+
+}
+
+## Deploying Node Apps
+
+Node deployments are exactly like static ones but they contain a package.json file.
+
+In this **package.json** file you define:
+
+* The module dependencies of the project (optionally)
+* A build step (optionally)
+* The start script, a command that boots up a HTTP server that listens on a port
+
+Node deployments are very fast, easy to configure and give you complete control over the lifecycle of the incomign HTTP request and its eventual response.
+
+The only pre-requisite for this part of the guide is that you [install Node](https://nodejs.org/en/). To verify your installation, run the following:
+
+${node --version}
+${npm --version}
+
+The result of those two command looks like this on my computer:
+
+${v7.6.0}
+${4.1.2}
+
+If you're not getting the version numbers, please make sure Node is properly installed before proceeding.
+
+For this example, we are going to deploy a simple API server that returns a JSON object with the current time. We start by defining our \`package.json\` inside a new empty directory called \`get-started-node\`.
+
+${
+
+ {`mkdir get-started-node\ncd get-started-node`}
+
+}
+
+${
+
+ {`{
+ "name": "get-started-node",
+ "version": "0.1.0",
+ "dependencies": {
+ "micro": "latest"
+ }
+}`}
+
+}
+
+For this example, we'll use the \`micro\` framework due to its simplicity. Any other module would work for this purpose, like [express](http://expressjs.com/) or [koa](http://koajs.com/), or even raw Node HTTP APIs!
+
+We proceed by writing an \`index.js\` file:
+
+${
+
+ {`module.exports = () => ({
+ date: new Date
+})`}
+
+}
+
+This simple function that returns an object with the date can then be exposed on a port by invoking the command \`micro\`. To test that it works, run:
+
+${npm install}
+
+After everything is installed you should be able to invoke:
+
+${./node_modules/.bin/micro}
+
+By default \`micro\` looks for \`index.js\` and exposes it in a port. The output will look as follows:
+
+${
+
+ > Ready! Listening on http://0.0.0.0:3000
+
+}
+
+Go to the URL returned (\`http://0.0.0.0:3000\`) and you should see something like this:
+
+${
+
+}
+
+If you get the current date, it means the API worked!
+
+However, if you tried to deploy this application by running \`now\` in its current state, you would get an error like this:
+
+${
+
+ > Deploying ~/Documents/Projects/now-examples/get-started-node
+
+ >{' '}
+ Error!
+ {' '}Missing `start` (or `now-start`) script in `package.json`
+
+}
+
+now has a very simple requirement for \`package.json\`-based projects: a \`start\` script must be defined inside \`scripts\` in \`package.json\`. Optionally, you can also supply a \`build\` script that gets executed upon deployment to build or compile your project.
+
+With this in mind, we edit our \`package.json\` to look like this:
+
+${
+
+ {`{
+ "name": "get-started-node",
+ "version": "0.1.0",
+ "dependencies": {
+ "micro": "latest"
+ },
+ "scripts": {
+ "start": "micro"
+ }
+}`}
+
+}
+
+When we retry \`now\`, we should now get something like this:
+
+${
+
+ {`▲ get-started-basic now`} {`
+> Deploying ~/Documents/Projects/now-examples/get-started-node`} {`
+> Using Node 7.0.0 (default)`} {`
+`}
+ > Ready!
+ {` `}
+
+ https://get-started-node-njitejihxp.now.sh
+
+ {` (copied to clipboard) [1s]`} {`
+> Upload [====================] 100% 0.0s`} {`
+> Sync complete (192B) [1s]`} {`
+> Initializing…`} {`
+> Building`} {`
+> ▲ npm install`} {`
+> ⧗ Installing:`} {`
+> ‣ micro@latest`} {`
+> ✓ Installed 13 modules [1s]`} {`
+> ▲ npm start`} {`
+> > get-started-node@0.1.0 start /home/nowuser/src`} {`
+> > micro`} {`
+> > Ready! Listening on http://0.0.0.0:3000`} {`
+`}> Deployment complete!{``}
+
+}
+
+If you visit said URL, which should be copied to your clipboard automatically, your deployment should now be live!
+
+Like we did for our first example, we can give it a friendly URL by invoking \`now alias\`:
+
+${now alias https://get-started-node-njitejihxp.now.sh get-started-node}
+
+Which should give us output like this:
+
+${
+
+ > Success!
+ {` Alias created `}
+ (kp4B6GZWMR6Q9Oxe3c64Htgq)
+ {`:
+`}
+
+ https://get-started-node.now.sh
+
+ {` now points to `}
+
+ https://get-started-node-njitejihxp.now.sh
+
+ {` `}
+ (VS9l42cwppzLNqJ203Epg8hv)
+ {` [copied to clipboard]`}
+
+}
+
+## Deploying Docker Containers
+
+It's possible to deploy any Linux-based program in any programming language by using Docker [containers](https://en.wikipedia.org/wiki/LXC).
+
+Unlike other deployment solutions, now does not require that you build and push images or configure any registries. All we need is the \`Dockerfile\` that acts as a recipe for how to build your project.
+
+In order to test the image locally on your computer, you'll need to [install Docker](https://docs.docker.com/engine/installation/). If you're on macOS, we recommend you install [Docker for Mac](https://docs.docker.com/docker-for-mac/).
+
+To test that it's properly installed, run the following:
+
+${docker --version}
+
+Which, at the time of writing, gives:
+
+${Docker version 1.13.0-rc7, build 48a9e53}
+
+For this example, we'll write a tiny API server in [Rust](https://www.rust-lang.org/en-US/), a modern open-source systems programming language by Mozilla, in combination with [Rocket](https://rocket.rs/), a lean and expressive web framework.
+
+Since we'll be using the \`docker\` API, your system does not need Rust to actually be installed. During development, however, sometimes it's handy to have it directly available. To install the Nightly version (required by Rocket), run:
+
+${curl https://sh.rustup.rs -sSf | sh}
+
+For more installation options (and security), visit [rustup.rs](https://rustup.rs/)
+
+Like we did for the other two projects, we'll create a separate directory. But in this case, we can have \`cargo\`, Rust's package manager, do it for us:
+
+${
+
+ {`cargo new --bin get-started-docker\ncd get-started-docker`}
+
+}
+
+The output should look as follows:
+
+${
+
+ Created
+ {` binary (application) \`get-started-docker\` project`}
+
+}
+
+We then have to add our dependencies to the resulting \`Cargo.toml\` file, which should look as follows:
+
+${
+
+ {`[package]
+name = "get-started-docker"
+version = "0.1.0"
+
+[dependencies]
+rocket = "0.1.5"
+rocket_codegen = "0.1.5"
+rocket_contrib = { version = "0.1.5", features = ["json"] }
+serde = "0.8"
+serde_json = "0.8"
+serde_derive = "0.8"
+chrono = { version = "0.2", features = ["serde"] }
+`}
+
+}
+
+By convention, we'll place our main code by over-writing the file \`src/main.rs\` which \`cargo new\` created above:
+
+${
+
+ {`#![feature(plugin)]
+#![plugin(rocket_codegen)]
+
+extern crate rocket;
+extern crate chrono;
+extern crate serde_json;
+
+#[macro_use] extern crate rocket_contrib;
+#[macro_use] extern crate serde_derive;
+
+use rocket_contrib::JSON;
+use chrono::*;
+
+#[derive(Serialize)]
+struct TimeStamp {
+ date: DateTime
+}
+
+#[get("/")]
+fn index() -> JSON {
+ JSON(TimeStamp {
+ date: UTC::now()
+ })
+}
+
+fn main() {
+ rocket::ignite().mount("/", routes![index]).launch()
+}`}
+
+}
+
+To test it out, we can execute:
+
+${cargo run}
+
+Which will compile and run our program. The (abridged) output should look like this:
+
+${
+
+ Compiling{` rocket v0.1.5`} {`
+`}Compiling{` rocket_contrib v0.1.5`} {`
+`}Compiling{` get-started-docker v0.1.0 (…)`} {`
+`}
+ Finished
+ {` debug [unoptimized + debuginfo] target(s) in 79.21 secs`}
+
+ {`
+`}Running{` \`target/debug/get-started-docker\``} {`
+🔧 `}
+ Configured for development.
+ {``}
+
+ {`
+=> `}
+ listening:
+ {` localhost:8000`}
+
+ {`
+=> `}logging:{` Normal`} {`
+🛰 Mounting `}'/':{``} {`
+=> GET `}/{`
+🚀 Rocket has launched from`}
+ http://localhost:8000
+ ...
+ {``}
+
+}
+
+If we now go to \`http://localhost:8000\`, we should see something remarkably similar to our Node example!
+
+In order to deploy it, we have to specify a \`Dockerfile\` that builds our application and then executes the resulting program.
+
+${
+
+ {`FROM zeithq/rust-nightly
+EXPOSE 80
+CMD ROCKET_ENV=production cargo run --release`}
+
+}
+
+The only requirements for your \`Dockerfile\` deployments are the last two lines, which indicate:
+
+* What port the app will listen on (\`EXPOSE\`). In this case \`80\` since we're runnning Rocket in production mode.
+
+To deploy, as usual, we run:
+
+${now}
+
+The output will look like this:
+
+${
+
+ {`> Deploying ~/Documents/Projects/now-examples/get-started-docker`}
+
+ {`
+> No \`name\` LABEL in \`Dockerfile\`, using get-started-docker`} {`
+`}
+ > Ready!
+ {` `}
+
+ https://get-started-basic-jcetfercku.now.sh
+
+ {` (copied to clipboard) [1s]`} {`
+> Upload [====================] 100% 0.0s
+> Sync complete (81B) [1s]`} {`
+> Initializing…`} {`
+> Building`} {`
+> ▲ docker build`} {`
+> Step 2 : EXPOSE 80`} {`
+> Removing intermediate container 8a2b780aaa6b`} {`
+> ---> Running in 6c9008866835`} {`
+> ---> f6b51fbccc99`} {`
+> Step 3 : CMD ROCKET_ENV=production cargo run --release`} {`
+> Removing intermediate container 6c9008866835`} {`
+> ---> Running in a42325428f74`} {`
+> ---> 3726617d01c0`} {`
+> Removing intermediate container a42325428f74`} {`
+> Successfully built 3726617d01c0`} {`
+> ▲ Storing image`} {`
+> ▲ Deploying image`} {`
+> ▲ Container started`} {`
+> Running \`target/release/get-started-docker\``} {`
+> Finished release [optimized] target(s) in 0.7 secs`} {`
+`}> Deployment complete!{``}
+
+}
+
+Your deployment is now ready! To wrap it up, we give it a friendly name using \`alias\`:
+
+${
+
+ now alias https://get-started-docker-jcetfercku.now.sh get-started-docker
+
+}
+
+With this, our deployment is immediately accessible via \`https://get-started-docker.now.sh\`
+
+${
+
+ > Success!
+ {` Alias created `}
+ (kp4B6Gu24hf29Oxe3c64Htgq)
+ {`:
+`}
+
+ https://get-started-docker.now.sh
+
+ {` now points to `}
+
+ https://get-started-docker-jcetfercku.now.sh
+
+ {` `}
+ (ViheH3d25jhLNqJ203Epg8hv)
+ {` [copied to clipboard]`}
+
+}
+`)
diff --git a/pages/docs/index.js b/pages/docs/index.js
new file mode 100644
index 0000000000..2f64cfb1a0
--- /dev/null
+++ b/pages/docs/index.js
@@ -0,0 +1,3 @@
+import IntroductionToNow from './getting-started/introduction-to-now'
+
+export default IntroductionToNow
diff --git a/pages/index.js b/pages/index.js
new file mode 100644
index 0000000000..050c6992ac
--- /dev/null
+++ b/pages/index.js
@@ -0,0 +1,4 @@
+// Helpers
+import redirect from '../lib/redirect'
+
+export default redirect('/docs')
diff --git a/static/api/deployment-state.png b/static/api/deployment-state.png
new file mode 100644
index 0000000000..1ff59d899f
Binary files /dev/null and b/static/api/deployment-state.png differ
diff --git a/static/blog/domain-verification/cloudflare.png b/static/blog/domain-verification/cloudflare.png
new file mode 100644
index 0000000000..664471ce3b
Binary files /dev/null and b/static/blog/domain-verification/cloudflare.png differ
diff --git a/static/blog/domain-verification/rules.png b/static/blog/domain-verification/rules.png
new file mode 100644
index 0000000000..c46a3d321c
Binary files /dev/null and b/static/blog/domain-verification/rules.png differ
diff --git a/static/blog/domain-verification/ssl.png b/static/blog/domain-verification/ssl.png
new file mode 100644
index 0000000000..5cec6e16f0
Binary files /dev/null and b/static/blog/domain-verification/ssl.png differ
diff --git a/static/docs/aliases/alias-dest.png b/static/docs/aliases/alias-dest.png
new file mode 100644
index 0000000000..a2df5c8f3e
Binary files /dev/null and b/static/docs/aliases/alias-dest.png differ
diff --git a/static/docs/aliases/alias-source.png b/static/docs/aliases/alias-source.png
new file mode 100644
index 0000000000..6ecaf12371
Binary files /dev/null and b/static/docs/aliases/alias-source.png differ
diff --git a/static/docs/aliases/cname-add.png b/static/docs/aliases/cname-add.png
new file mode 100644
index 0000000000..0d119d66e6
Binary files /dev/null and b/static/docs/aliases/cname-add.png differ
diff --git a/static/docs/aliases/nameservers-edit.png b/static/docs/aliases/nameservers-edit.png
new file mode 100644
index 0000000000..de577e2807
Binary files /dev/null and b/static/docs/aliases/nameservers-edit.png differ
diff --git a/static/docs/aliases/txt-add.png b/static/docs/aliases/txt-add.png
new file mode 100644
index 0000000000..3a712279c4
Binary files /dev/null and b/static/docs/aliases/txt-add.png differ
diff --git a/static/docs/git-repositories/slackin.png b/static/docs/git-repositories/slackin.png
new file mode 100644
index 0000000000..d6ac8829b8
Binary files /dev/null and b/static/docs/git-repositories/slackin.png differ
diff --git a/static/docs/graphql/api.png b/static/docs/graphql/api.png
new file mode 100644
index 0000000000..9e4bf3b656
Binary files /dev/null and b/static/docs/graphql/api.png differ
diff --git a/static/docs/graphql/client.png b/static/docs/graphql/client.png
new file mode 100644
index 0000000000..96821775d0
Binary files /dev/null and b/static/docs/graphql/client.png differ
diff --git a/static/docs/installing-now/guide-drag-drop-now.gif b/static/docs/installing-now/guide-drag-drop-now.gif
new file mode 100644
index 0000000000..38c3a3b055
Binary files /dev/null and b/static/docs/installing-now/guide-drag-drop-now.gif differ
diff --git a/static/docs/installing-now/menubar.png b/static/docs/installing-now/menubar.png
new file mode 100644
index 0000000000..17118783bf
Binary files /dev/null and b/static/docs/installing-now/menubar.png differ
diff --git a/static/docs/installing-now/tutorial-1.png b/static/docs/installing-now/tutorial-1.png
new file mode 100644
index 0000000000..d6d839f811
Binary files /dev/null and b/static/docs/installing-now/tutorial-1.png differ
diff --git a/static/docs/installing-now/tutorial-2.png b/static/docs/installing-now/tutorial-2.png
new file mode 100644
index 0000000000..0c3838b806
Binary files /dev/null and b/static/docs/installing-now/tutorial-2.png differ
diff --git a/static/docs/installing-now/tutorial-3.png b/static/docs/installing-now/tutorial-3.png
new file mode 100644
index 0000000000..2dbf311625
Binary files /dev/null and b/static/docs/installing-now/tutorial-3.png differ
diff --git a/static/docs/json-api/date.png b/static/docs/json-api/date.png
new file mode 100644
index 0000000000..b112719b7d
Binary files /dev/null and b/static/docs/json-api/date.png differ
diff --git a/static/docs/json-api/members.png b/static/docs/json-api/members.png
new file mode 100644
index 0000000000..5353ebba94
Binary files /dev/null and b/static/docs/json-api/members.png differ
diff --git a/static/docs/next/output.png b/static/docs/next/output.png
new file mode 100644
index 0000000000..aebdbf3cfd
Binary files /dev/null and b/static/docs/next/output.png differ
diff --git a/static/docs/next/running.png b/static/docs/next/running.png
new file mode 100644
index 0000000000..2600edcbb9
Binary files /dev/null and b/static/docs/next/running.png differ
diff --git a/static/docs/path-aliases/deployment.png b/static/docs/path-aliases/deployment.png
new file mode 100644
index 0000000000..1429cba940
Binary files /dev/null and b/static/docs/path-aliases/deployment.png differ
diff --git a/static/docs/private-npm/example.gif b/static/docs/private-npm/example.gif
new file mode 100644
index 0000000000..6ff1c97fde
Binary files /dev/null and b/static/docs/private-npm/example.gif differ
diff --git a/static/docs/realtime-chat/connected.png b/static/docs/realtime-chat/connected.png
new file mode 100644
index 0000000000..208978b722
Binary files /dev/null and b/static/docs/realtime-chat/connected.png differ
diff --git a/static/docs/realtime-chat/disconnected.png b/static/docs/realtime-chat/disconnected.png
new file mode 100644
index 0000000000..6cf29a3e74
Binary files /dev/null and b/static/docs/realtime-chat/disconnected.png differ
diff --git a/static/docs/realtime-chat/form.png b/static/docs/realtime-chat/form.png
new file mode 100644
index 0000000000..54824f3c6a
Binary files /dev/null and b/static/docs/realtime-chat/form.png differ
diff --git a/static/docs/realtime-chat/hello-world.png b/static/docs/realtime-chat/hello-world.png
new file mode 100644
index 0000000000..2e50814046
Binary files /dev/null and b/static/docs/realtime-chat/hello-world.png differ
diff --git a/static/docs/realtime-chat/result.gif b/static/docs/realtime-chat/result.gif
new file mode 100644
index 0000000000..184c263223
Binary files /dev/null and b/static/docs/realtime-chat/result.gif differ
diff --git a/static/docs/realtime-chat/server.png b/static/docs/realtime-chat/server.png
new file mode 100644
index 0000000000..1af096d729
Binary files /dev/null and b/static/docs/realtime-chat/server.png differ
diff --git a/static/docs/slack-slash/add-configuration.png b/static/docs/slack-slash/add-configuration.png
new file mode 100644
index 0000000000..c893cacacc
Binary files /dev/null and b/static/docs/slack-slash/add-configuration.png differ
diff --git a/static/docs/slack-slash/auto-complete.png b/static/docs/slack-slash/auto-complete.png
new file mode 100644
index 0000000000..d4405355d1
Binary files /dev/null and b/static/docs/slack-slash/auto-complete.png differ
diff --git a/static/docs/static/browser.png b/static/docs/static/browser.png
new file mode 100644
index 0000000000..7dad5a5daf
Binary files /dev/null and b/static/docs/static/browser.png differ
diff --git a/static/docs/your-first-deployments/localhost.png b/static/docs/your-first-deployments/localhost.png
new file mode 100644
index 0000000000..60f58150ab
Binary files /dev/null and b/static/docs/your-first-deployments/localhost.png differ
diff --git a/static/docs/your-first-deployments/my-first-site-folder.png b/static/docs/your-first-deployments/my-first-site-folder.png
new file mode 100644
index 0000000000..089295b17b
Binary files /dev/null and b/static/docs/your-first-deployments/my-first-site-folder.png differ
diff --git a/static/docs/your-first-deployments/my-first-site.png b/static/docs/your-first-deployments/my-first-site.png
new file mode 100644
index 0000000000..4429dfab2e
Binary files /dev/null and b/static/docs/your-first-deployments/my-first-site.png differ
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000000..db69e46632
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,4267 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+abbrev@1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f"
+
+acorn-dynamic-import@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
+ dependencies:
+ acorn "^4.0.3"
+
+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@^4.0.3:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
+
+acorn@^5.0.0, acorn@^5.0.1:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
+
+ajv-keywords@^1.0.0, ajv-keywords@^1.1.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+
+ajv@^4.7.0, 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"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amator@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amator/-/amator-1.0.1.tgz#0fd3663fef5f3334d088cf68a70ba74398aa0e26"
+ dependencies:
+ bezier-easing "^2.0.3"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-escapes@^1.0.0, ansi-escapes@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+
+ansi-html@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+
+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.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.1.0.tgz#09c202d5c917ec23188caa5c9cb9179cd9547750"
+ dependencies:
+ color-convert "^1.0.0"
+
+any-promise@^1.0.0, any-promise@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+
+anymatch@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507"
+ dependencies:
+ arrify "^1.0.0"
+ micromatch "^2.1.5"
+
+app-root-path@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46"
+
+aproba@^1.0.3:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
+
+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.0.3"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
+
+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"
+
+asap@~2.0.3:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f"
+
+asn1.js@^4.0.0:
+ version "4.9.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40"
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+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"
+
+assert@^1.1.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91"
+ dependencies:
+ util "0.10.3"
+
+ast-types@0.9.8:
+ version "0.9.8"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.8.tgz#6cb6a40beba31f49f20928e28439fc14a3dab078"
+
+async-each@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
+
+async@^2.1.2:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
+ 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"
+
+aws4@^1.2.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+babel-code-frame@6.22.0, babel-code-frame@^6.16.0, babel-code-frame@^6.20.0, babel-code-frame@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
+ dependencies:
+ chalk "^1.1.0"
+ esutils "^2.0.2"
+ js-tokens "^3.0.0"
+
+babel-core@6.24.0:
+ version "6.24.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.0.tgz#8f36a0a77f5c155aed6f920b844d23ba56742a02"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ babel-generator "^6.24.0"
+ babel-helpers "^6.23.0"
+ babel-messages "^6.23.0"
+ babel-register "^6.24.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.23.0"
+ babel-traverse "^6.23.1"
+ babel-types "^6.23.0"
+ babylon "^6.11.0"
+ convert-source-map "^1.1.0"
+ debug "^2.1.1"
+ json5 "^0.5.0"
+ lodash "^4.2.0"
+ minimatch "^3.0.2"
+ path-is-absolute "^1.0.0"
+ private "^0.1.6"
+ slash "^1.0.0"
+ source-map "^0.5.0"
+
+babel-core@^6.24.1:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ babel-generator "^6.25.0"
+ babel-helpers "^6.24.1"
+ babel-messages "^6.23.0"
+ babel-register "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.25.0"
+ babel-traverse "^6.25.0"
+ babel-types "^6.25.0"
+ babylon "^6.17.2"
+ convert-source-map "^1.1.0"
+ debug "^2.1.1"
+ json5 "^0.5.0"
+ lodash "^4.2.0"
+ minimatch "^3.0.2"
+ path-is-absolute "^1.0.0"
+ private "^0.1.6"
+ slash "^1.0.0"
+ source-map "^0.5.0"
+
+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.24.1, babel-generator@^6.24.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.2.0"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
+babel-generator@^6.25.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-types "^6.25.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.2.0"
+ source-map "^0.5.0"
+ 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-builder-react-jsx@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ esutils "^2.0.0"
+
+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.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ lodash "^4.2.0"
+
+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.24.1"
+ resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ lodash "^4.2.0"
+
+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.23.0, 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-loader@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7"
+ dependencies:
+ find-cache-dir "^0.1.1"
+ loader-utils "^1.0.2"
+ mkdirp "^0.5.1"
+
+babel-messages@^6.23.0, babel-messages@^6.8.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-module-resolver@2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-2.6.2.tgz#66845c8855865dd7fd4d5256be93272e3d16701d"
+ dependencies:
+ find-babel-config "^1.0.1"
+ glob "^7.1.1"
+ resolve "^1.3.2"
+
+babel-plugin-react-require@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-react-require/-/babel-plugin-react-require-3.0.0.tgz#2e4e7b4496b93a654a1c80042276de4e4eeb20e3"
+
+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-class-properties@^6.8.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de"
+
+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-flow@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d"
+
+babel-plugin-syntax-jsx@6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
+
+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-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-class-properties@6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac"
+ dependencies:
+ babel-helper-function-name "^6.24.1"
+ babel-plugin-syntax-class-properties "^6.8.0"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+
+babel-plugin-transform-define@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-1.3.0.tgz#94c5f9459c810c738cc7c50cbd44a31829d6f319"
+ dependencies:
+ lodash "4.17.4"
+ traverse "0.6.6"
+
+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.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+ lodash "^4.2.0"
+
+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.24.1, babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe"
+ dependencies:
+ babel-plugin-transform-strict-mode "^6.24.1"
+ babel-runtime "^6.22.0"
+ babel-template "^6.24.1"
+ babel-types "^6.24.1"
+
+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-flow-strip-types@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf"
+ dependencies:
+ babel-plugin-syntax-flow "^6.18.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-object-rest-spread@6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.22.0.tgz#1d419b55e68d2e4f64a5ff3373bd67d73c8e83bc"
+ dependencies:
+ babel-plugin-syntax-object-rest-spread "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-react-display-name@^6.23.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-react-jsx-self@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e"
+ dependencies:
+ babel-plugin-syntax-jsx "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6"
+ dependencies:
+ babel-plugin-syntax-jsx "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-react-jsx@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3"
+ dependencies:
+ babel-helper-builder-react-jsx "^6.24.1"
+ babel-plugin-syntax-jsx "^6.8.0"
+ babel-runtime "^6.22.0"
+
+babel-plugin-transform-react-remove-prop-types@0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.5.tgz#79d1958437ae23d4fbc0b11d1a041498ddb23877"
+ dependencies:
+ babel-traverse "^6.24.1"
+
+babel-plugin-transform-regenerator@^6.22.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418"
+ dependencies:
+ regenerator-transform "0.9.11"
+
+babel-plugin-transform-runtime@6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.22.0.tgz#10968d760bbf6517243081eec778e10fa828551c"
+ 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-preset-env@1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.3.3.tgz#5913407784e3d98de2aa814a3ef9059722b34e0b"
+ 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 "^1.4.0"
+ invariant "^2.2.2"
+
+babel-preset-flow@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d"
+ dependencies:
+ babel-plugin-transform-flow-strip-types "^6.22.0"
+
+babel-preset-react@6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380"
+ dependencies:
+ babel-plugin-syntax-jsx "^6.3.13"
+ babel-plugin-transform-react-display-name "^6.23.0"
+ babel-plugin-transform-react-jsx "^6.24.1"
+ babel-plugin-transform-react-jsx-self "^6.22.0"
+ babel-plugin-transform-react-jsx-source "^6.22.0"
+ babel-preset-flow "^6.23.0"
+
+babel-register@^6.24.0, babel-register@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f"
+ dependencies:
+ babel-core "^6.24.1"
+ babel-runtime "^6.22.0"
+ core-js "^2.4.0"
+ home-or-tmp "^2.0.0"
+ lodash "^4.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.2"
+
+babel-runtime@6.23.0, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.22.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.10.0"
+
+babel-template@^6.23.0, babel-template@^6.24.1, babel-template@^6.25.0, babel-template@^6.7.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.25.0"
+ babel-types "^6.25.0"
+ babylon "^6.17.2"
+ lodash "^4.2.0"
+
+babel-traverse@6.21.0:
+ version "6.21.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.21.0.tgz#69c6365804f1a4f69eb1213f85b00a818b8c21ad"
+ dependencies:
+ babel-code-frame "^6.20.0"
+ babel-messages "^6.8.0"
+ babel-runtime "^6.20.0"
+ babel-types "^6.21.0"
+ babylon "^6.11.0"
+ debug "^2.2.0"
+ globals "^9.0.0"
+ invariant "^2.2.0"
+ lodash "^4.2.0"
+
+babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.25.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-types "^6.25.0"
+ babylon "^6.17.2"
+ debug "^2.2.0"
+ globals "^9.0.0"
+ invariant "^2.2.0"
+ lodash "^4.2.0"
+
+babel-types@6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.23.0.tgz#bb17179d7538bad38cd0c9e115d340f77e7e9acf"
+ dependencies:
+ babel-runtime "^6.22.0"
+ esutils "^2.0.2"
+ lodash "^4.2.0"
+ to-fast-properties "^1.0.1"
+
+babel-types@^6.19.0, babel-types@^6.21.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.25.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e"
+ dependencies:
+ babel-runtime "^6.22.0"
+ esutils "^2.0.2"
+ lodash "^4.2.0"
+ to-fast-properties "^1.0.1"
+
+babylon@6.14.1:
+ version "6.14.1"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815"
+
+babylon@7.0.0-beta.8:
+ version "7.0.0-beta.8"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.8.tgz#2bdc5ae366041442c27e068cce6f0d7c06ea9949"
+
+babylon@^6.11.0, babylon@^6.14.1, babylon@^6.17.0, babylon@^6.17.2:
+ version "6.17.4"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+base64-js@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
+
+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"
+
+bezier-easing@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/bezier-easing/-/bezier-easing-2.0.3.tgz#cb493fddb7f8920ecca00973344ce0518885f17e"
+
+big.js@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978"
+
+binary-extensions@^1.0.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774"
+
+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"
+
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
+ version "4.11.7"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.7.tgz#ddb048e50d9482790094c13eb3fcfc833ce7ab46"
+
+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"
+
+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"
+
+brorand@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+
+browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a"
+ dependencies:
+ buffer-xor "^1.0.2"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.0"
+ inherits "^2.0.1"
+
+browserify-cipher@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a"
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+browserify-des@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd"
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+
+browserify-rsa@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ dependencies:
+ bn.js "^4.1.0"
+ randombytes "^2.0.1"
+
+browserify-sign@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+ dependencies:
+ bn.js "^4.1.1"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.2"
+ elliptic "^6.0.0"
+ inherits "^2.0.1"
+ parse-asn1 "^5.0.0"
+
+browserify-zlib@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
+ dependencies:
+ pako "~0.2.0"
+
+browserslist@^1.4.0:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9"
+ dependencies:
+ caniuse-db "^1.0.30000639"
+ electron-to-chromium "^1.2.7"
+
+buffer-xor@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+
+buffer@^4.3.0:
+ version "4.9.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+
+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@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a"
+
+caniuse-db@^1.0.30000639:
+ version "1.0.30000696"
+ resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000696.tgz#e71f5c61e1f96c7a3af4e791ac5db55e11737604"
+
+case-sensitive-paths-webpack-plugin@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.0.0.tgz#60142d7d0beabdb35676ef0aeace3027da0578ba"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, 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"
+
+chokidar@^1.4.3:
+ 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"
+
+cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07"
+ dependencies:
+ inherits "^2.0.1"
+
+circular-json@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
+
+cli-cursor@^1.0.1, cli-cursor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ dependencies:
+ restore-cursor "^1.0.1"
+
+cli-spinners@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c"
+
+cli-truncate@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+ dependencies:
+ slice-ansi "0.0.4"
+ string-width "^1.0.1"
+
+cli-width@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+cliui@^3.2.0:
+ 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"
+
+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.0.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.2"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d"
+
+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.9.0:
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.10.0.tgz#e1f5d3245de246d1a5ca04702fa1ad1bd7e405fe"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+commonmark@^0.27.0:
+ version "0.27.0"
+ resolved "https://registry.yarnpkg.com/commonmark/-/commonmark-0.27.0.tgz#d86c262b962821e9483c69c547bc58840c047b34"
+ dependencies:
+ entities "~ 1.1.1"
+ mdurl "~ 1.0.1"
+ minimist "~ 1.2.0"
+ string.prototype.repeat "^0.2.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.7, concat-stream@^1.5.2:
+ 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"
+
+console-browserify@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
+ dependencies:
+ date-now "^0.1.4"
+
+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"
+
+constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+
+contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+
+convert-source-map@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.3.0.tgz#e9f3e9c6e2728efc2676696a70eb382f73106a67"
+
+convert-source-map@^1.1.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
+
+core-js@^1.0.0:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
+
+core-js@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
+
+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"
+
+cosmiconfig@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-1.1.0.tgz#0dea0f9804efdfb929fbb1b188e25553ea053d37"
+ dependencies:
+ graceful-fs "^4.1.2"
+ js-yaml "^3.4.3"
+ minimist "^1.2.0"
+ object-assign "^4.0.1"
+ os-homedir "^1.0.1"
+ parse-json "^2.2.0"
+ pinkie-promise "^2.0.0"
+ require-from-string "^1.1.0"
+
+create-ecdh@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.0.0"
+
+create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd"
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ sha.js "^2.4.0"
+
+create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06"
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+cross-env@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.1.tgz#ff4e72ea43b47da2486b43a7f2043b2609e44913"
+ dependencies:
+ cross-spawn "^5.1.0"
+ is-windows "^1.0.0"
+
+cross-spawn@5.1.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"
+
+crypto-browserify@^3.11.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522"
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+
+css-tree@1.0.0-alpha17:
+ version "1.0.0-alpha17"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha17.tgz#7ab95ab72c533917af8be54313fec81841c5223a"
+ dependencies:
+ source-map "^0.5.3"
+
+d@1:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ dependencies:
+ es5-ext "^0.10.9"
+
+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"
+
+date-fns@^1.27.2:
+ version "1.28.5"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.28.5.tgz#257cfc45d322df45ef5658665967ee841cd73faf"
+
+date-now@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
+
+debug@2.6.4:
+ version "2.6.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.4.tgz#7586a9b3c39741c0282ae33445c4e8ac74734fe0"
+ dependencies:
+ ms "0.7.3"
+
+debug@^2.1.1, debug@^2.2.0, debug@^2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0, decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+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"
+
+del@2.2.2, 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"
+
+depd@1.1.0, depd@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3"
+
+des.js@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+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"
+
+diffie-hellman@^5.0.0:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e"
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+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"
+
+dom-walk@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
+
+domain-browser@^1.1.1:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
+
+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"
+
+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.2.7:
+ version "1.3.14"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.14.tgz#64af0f9efd3c3c6acd57d71f83b49ca7ee9c4b43"
+
+elegant-spinner@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+
+elliptic@^6.0.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
+ dependencies:
+ bn.js "^4.4.0"
+ brorand "^1.0.1"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.0"
+
+emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+
+encodeurl@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20"
+
+encoding@^0.1.11:
+ version "0.1.12"
+ resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb"
+ dependencies:
+ iconv-lite "~0.4.13"
+
+enhanced-resolve@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec"
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.4.0"
+ object-assign "^4.0.1"
+ tapable "^0.2.5"
+
+"entities@~ 1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
+
+errno@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d"
+ dependencies:
+ prr "~0.0.0"
+
+error-ex@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+error-stack-parser@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292"
+ dependencies:
+ stackframe "^0.3.1"
+
+error-stack-parser@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.1.tgz#a3202b8fb03114aa9b40a0e3669e48b2b65a010a"
+ dependencies:
+ stackframe "^1.0.3"
+
+es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
+ version "0.10.23"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38"
+ dependencies:
+ es6-iterator "2"
+ es6-symbol "~3.1"
+
+es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.14"
+ es6-symbol "^3.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-symbol "3.1.1"
+ event-emitter "~0.3.5"
+
+es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+es6-weak-map@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.14"
+ es6-iterator "^2.0.1"
+ es6-symbol "^3.1.1"
+
+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.5, 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"
+
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-import-resolver-node@^0.2.0:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
+ dependencies:
+ debug "^2.2.0"
+ object-assign "^4.0.1"
+ resolve "^1.1.6"
+
+eslint-module-utils@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
+ dependencies:
+ debug "^2.6.8"
+ pkg-dir "^1.0.0"
+
+eslint-plugin-import-b5a962@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import-b5a962/-/eslint-plugin-import-b5a962-2.3.0.tgz#b71fe274540bc5e4e6b5e84154ca777b7e517b78"
+ dependencies:
+ builtin-modules "^1.1.1"
+ contains-path "^0.1.0"
+ debug "^2.2.0"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.2.0"
+ eslint-module-utils "^2.0.0"
+ has "^1.0.1"
+ lodash.cond "^4.3.0"
+ minimatch "^3.0.3"
+ read-pkg-up "^2.0.0"
+
+eslint-plugin-react@7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.1.0.tgz#27770acf39f5fd49cd0af4083ce58104eb390d4c"
+ dependencies:
+ doctrine "^2.0.0"
+ has "^1.0.1"
+ jsx-ast-utils "^1.4.1"
+
+eslint@3.19.0:
+ version "3.19.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
+ dependencies:
+ babel-code-frame "^6.16.0"
+ chalk "^1.1.3"
+ concat-stream "^1.5.2"
+ debug "^2.1.1"
+ doctrine "^2.0.0"
+ escope "^3.6.0"
+ espree "^3.4.0"
+ esquery "^1.0.0"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ glob "^7.0.3"
+ globals "^9.14.0"
+ ignore "^3.2.0"
+ imurmurhash "^0.1.4"
+ inquirer "^0.12.0"
+ is-my-json-valid "^2.10.0"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.5.1"
+ json-stable-stringify "^1.0.0"
+ levn "^0.3.0"
+ lodash "^4.0.0"
+ mkdirp "^0.5.0"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.1"
+ pluralize "^1.2.1"
+ progress "^1.1.8"
+ require-uncached "^1.0.2"
+ shelljs "^0.7.5"
+ strip-bom "^3.0.0"
+ strip-json-comments "~2.0.1"
+ table "^3.7.8"
+ text-table "~0.2.0"
+ user-home "^2.0.0"
+
+espree@^3.4.0:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374"
+ dependencies:
+ acorn "^5.0.1"
+ acorn-jsx "^3.0.0"
+
+esprima@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
+
+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, esutils@^2.0.0, esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+etag@1.8.0, etag@~1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051"
+
+event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+events@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+
+evp_bytestokey@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53"
+ dependencies:
+ create-hash "^1.1.1"
+
+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"
+
+exit-hook@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+
+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"
+
+extend@~3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+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.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+fbjs@^0.8.9:
+ version "0.8.12"
+ resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04"
+ dependencies:
+ core-js "^1.0.0"
+ isomorphic-fetch "^2.1.1"
+ loose-envify "^1.0.0"
+ object-assign "^4.1.0"
+ promise "^7.1.1"
+ setimmediate "^1.0.5"
+ ua-parser-js "^0.7.9"
+
+figures@^1.3.5, figures@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+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"
+
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+
+filesize@^3.2.1:
+ version "3.5.10"
+ resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.10.tgz#fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f"
+
+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"
+
+find-babel-config@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.1.0.tgz#acc01043a6749fec34429be6b64f542ebb5d6355"
+ dependencies:
+ json5 "^0.5.1"
+ path-exists "^3.0.0"
+
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+flat-cache@^1.2.1:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
+ dependencies:
+ circular-json "^0.3.1"
+ del "^2.0.2"
+ graceful-fs "^4.1.2"
+ write "^0.2.1"
+
+flow-parser@0.45.0:
+ version "0.45.0"
+ resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.45.0.tgz#aa29d4ae27f06aa02817772bba0fcbefef7e62f0"
+
+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"
+
+fresh@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e"
+
+friendly-errors-webpack-plugin@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.5.0.tgz#f28825890924d6c3f0d8ec53469768688329054a"
+ dependencies:
+ chalk "^1.1.3"
+ error-stack-parser "^2.0.0"
+ string-length "^1.0.1"
+
+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.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
+
+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"
+
+generate-function@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
+
+generate-object-property@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ dependencies:
+ is-property "^1.0.0"
+
+get-caller-file@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+
+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"
+
+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-promise@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-3.1.0.tgz#198882a3817be7dc2c55f92623aa9e7b3f82d1eb"
+
+glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^6.0.1:
+ version "6.0.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+global@^4.3.0:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
+ dependencies:
+ min-document "^2.19.0"
+ process "~0.5.1"
+
+globals@^9.0.0, globals@^9.14.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"
+
+graceful-fs@^4.1.2:
+ 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"
+
+har-schema@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
+
+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"
+
+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@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+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.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ dependencies:
+ function-bind "^1.0.2"
+
+hash-base@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1"
+ dependencies:
+ inherits "^2.0.1"
+
+hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.2.tgz#bf5c887825cfe40b9efde7bf11bd2db26e6bf01b"
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.0"
+
+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"
+
+hmac-drbg@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+hoek@2.x.x:
+ version "2.16.3"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
+
+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"
+
+hosted-git-info@^2.1.4:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
+
+html-entities@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
+
+htmlescape@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351"
+
+http-errors@~1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.4.0.tgz#6c0242dea6b3df7afda153c71089b31c6e82aabf"
+ dependencies:
+ inherits "2.0.1"
+ statuses ">= 1.2.1 < 2"
+
+http-errors@~1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257"
+ dependencies:
+ depd "1.1.0"
+ inherits "2.0.3"
+ setprototypeof "1.0.3"
+ statuses ">= 1.3.1 < 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-status@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.0.1.tgz#dc43001a8bfc50ac87d485a892f7578964bc94a2"
+
+https-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
+
+iconv-lite@~0.4.13:
+ version "0.4.18"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2"
+
+ieee754@^1.1.4:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4"
+
+ignore@^3.2.0:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+indent-string@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80"
+ dependencies:
+ repeating "^2.0.0"
+
+indent-string@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d"
+
+indexof@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+
+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"
+
+inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+
+ini@~1.3.0:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
+
+inquirer@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+ dependencies:
+ ansi-escapes "^1.1.0"
+ ansi-regex "^2.0.0"
+ chalk "^1.0.0"
+ cli-cursor "^1.0.1"
+ cli-width "^2.0.0"
+ figures "^1.3.5"
+ lodash "^4.3.0"
+ readline2 "^1.0.1"
+ run-async "^0.1.0"
+ rx-lite "^3.1.2"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.0"
+ through "^2.3.6"
+
+interpret@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
+
+invariant@^2.2.0, 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"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+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-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+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.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-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-my-json-valid@^2.10.0:
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693"
+ dependencies:
+ generate-function "^2.0.0"
+ generate-object-property "^1.1.0"
+ jsonpointer "^4.0.0"
+ xtend "^4.0.0"
+
+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-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-property@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+
+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-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-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-windows-bash@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-windows-bash/-/is-windows-bash-1.0.3.tgz#00132a47dcdacb00a9d68f3408a4d01d76215e88"
+
+is-windows@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9"
+
+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"
+
+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"
+
+isomorphic-fetch@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9"
+ dependencies:
+ node-fetch "^1.0.1"
+ whatwg-fetch ">=0.10.0"
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+jest-matcher-utils@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-19.0.0.tgz#5ecd9b63565d2b001f61fbf7ec4c7f537964564d"
+ dependencies:
+ chalk "^1.1.3"
+ pretty-format "^19.0.0"
+
+jest-validate@19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.0.tgz#8c6318a20ecfeaba0ba5378bfbb8277abded4173"
+ dependencies:
+ chalk "^1.1.1"
+ jest-matcher-utils "^19.0.0"
+ leven "^2.0.0"
+ pretty-format "^19.0.0"
+
+js-tokens@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
+
+js-yaml@^3.4.3, js-yaml@^3.5.1:
+ version "3.8.4"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^3.1.1"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+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-loader@0.5.4, json-loader@^0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de"
+
+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.0, 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"
+
+jsonpointer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+
+jsprim@^1.2.2:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.0.2"
+ json-schema "0.2.3"
+ verror "1.3.6"
+
+jsx-ast-utils@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
+
+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"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+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"
+
+leven@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+
+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"
+
+lint-staged@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-4.0.0.tgz#c15669f598614a6e68090303e175a799d48e0d85"
+ dependencies:
+ app-root-path "^2.0.0"
+ cosmiconfig "^1.1.0"
+ execa "^0.7.0"
+ listr "^0.12.0"
+ lodash.chunk "^4.2.0"
+ minimatch "^3.0.0"
+ npm-which "^3.0.1"
+ p-map "^1.1.1"
+ staged-git-files "0.0.4"
+
+listr-silent-renderer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+
+listr-update-renderer@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.2.0.tgz#ca80e1779b4e70266807e8eed1ad6abe398550f9"
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^1.0.2"
+ strip-ansi "^3.0.1"
+
+listr-verbose-renderer@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.0.tgz#44dc01bb0c34a03c572154d4d08cde9b1dc5620f"
+ dependencies:
+ chalk "^1.1.3"
+ cli-cursor "^1.0.2"
+ date-fns "^1.27.2"
+ figures "^1.7.0"
+
+listr@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/listr/-/listr-0.12.0.tgz#6bce2c0f5603fa49580ea17cd6a00cc0e5fa451a"
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ figures "^1.7.0"
+ indent-string "^2.1.0"
+ is-promise "^2.1.0"
+ is-stream "^1.1.0"
+ listr-silent-renderer "^1.1.1"
+ listr-update-renderer "^0.2.0"
+ listr-verbose-renderer "^0.4.0"
+ log-symbols "^1.0.2"
+ log-update "^1.0.2"
+ ora "^0.2.3"
+ p-map "^1.1.1"
+ rxjs "^5.0.0-beta.11"
+ stream-to-observable "^0.1.0"
+ strip-ansi "^3.0.1"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+loader-runner@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
+
+loader-utils@1.1.0, loader-utils@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+
+loader-utils@^0.2.16:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+ object-assign "^4.0.1"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash.chunk@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc"
+
+lodash.cond@^4.3.0:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+
+lodash@4.17.4, lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.6.1:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+log-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+ dependencies:
+ chalk "^1.0.0"
+
+log-update@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1"
+ dependencies:
+ ansi-escapes "^1.0.0"
+ cli-cursor "^1.0.2"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+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"
+
+markdown-in-js@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/markdown-in-js/-/markdown-in-js-1.1.3.tgz#6571130cd60e281f884a994f6061e81e1a6eb8d4"
+ dependencies:
+ babylon "^6.14.1"
+ commonmark "^0.27.0"
+
+md5-file@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.1.1.tgz#db3c92c09bbda5c2de883fa5490dd711fddbbab9"
+
+"mdurl@~ 1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
+
+memory-fs@^0.4.0, memory-fs@~0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+micromatch@^2.1.5:
+ 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"
+
+miller-rabin@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d"
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+mime-db@~1.27.0:
+ version "1.27.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1"
+
+mime-types@^2.1.12, mime-types@~2.1.7:
+ version "2.1.15"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed"
+ dependencies:
+ mime-db "~1.27.0"
+
+mime@1.3.4, mime@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53"
+
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ dependencies:
+ dom-walk "^0.1.0"
+
+minimalistic-assert@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
+
+minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+
+"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3:
+ 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.2.0, minimist@^1.2.0, "minimist@~ 1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+mitt@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.1.tgz#14881478496dfa56750ea41af13a7ecb5b69a7c2"
+
+mitt@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.2.tgz#380e61480d6a615b660f07abb60d51e0a4e4bed6"
+
+mkdirp-then@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mkdirp-then/-/mkdirp-then-1.2.0.tgz#a492c879ca4d873f5ee45008f8f55fd0150de3c5"
+ dependencies:
+ any-promise "^1.1.0"
+ mkdirp "^0.5.0"
+
+"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, 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.11.2:
+ version "2.18.1"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
+
+ms@0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff"
+
+ms@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-1.0.0.tgz#59adcd22edc543f7b5381862d31387b1f4bc9473"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+mute-stream@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+
+mv@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2"
+ dependencies:
+ mkdirp "~0.5.1"
+ ncp "~2.0.0"
+ rimraf "~2.4.0"
+
+mz@2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.6.0.tgz#c8b8521d958df0a4f2768025db69c719ee4ef1ce"
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nan@^2.3.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
+ncp@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3"
+
+next@2.4.4:
+ version "2.4.4"
+ resolved "https://registry.yarnpkg.com/next/-/next-2.4.4.tgz#1caac2ee5cc195564ad330b9fcbff40380b0627e"
+ dependencies:
+ ansi-html "0.0.7"
+ babel-core "6.24.0"
+ babel-generator "6.24.1"
+ babel-loader "7.0.0"
+ babel-plugin-module-resolver "2.6.2"
+ babel-plugin-react-require "3.0.0"
+ babel-plugin-transform-class-properties "6.24.1"
+ babel-plugin-transform-es2015-modules-commonjs "6.24.1"
+ babel-plugin-transform-object-rest-spread "6.22.0"
+ babel-plugin-transform-react-jsx-source "6.22.0"
+ babel-plugin-transform-react-remove-prop-types "0.4.5"
+ babel-plugin-transform-runtime "6.22.0"
+ babel-preset-env "1.3.3"
+ babel-preset-react "6.24.1"
+ babel-runtime "6.23.0"
+ case-sensitive-paths-webpack-plugin "2.0.0"
+ cross-spawn "5.1.0"
+ del "2.2.2"
+ etag "1.8.0"
+ fresh "0.5.0"
+ friendly-errors-webpack-plugin "1.5.0"
+ glob "7.1.1"
+ glob-promise "3.1.0"
+ htmlescape "1.1.1"
+ http-status "1.0.1"
+ is-windows-bash "1.0.3"
+ json-loader "0.5.4"
+ loader-utils "1.1.0"
+ md5-file "3.1.1"
+ minimist "1.2.0"
+ mitt "1.1.1"
+ mkdirp-then "1.2.0"
+ mv "2.1.1"
+ mz "2.6.0"
+ path-match "1.2.4"
+ pkg-up "2.0.0"
+ prop-types "15.5.10"
+ react-hot-loader "3.0.0-beta.7"
+ send "0.15.2"
+ source-map-support "0.4.15"
+ strip-ansi "3.0.1"
+ styled-jsx "1.0.5"
+ touch "1.0.0"
+ unfetch "2.1.2"
+ url "0.11.0"
+ uuid "3.0.1"
+ webpack "2.5.1"
+ webpack-dev-middleware "1.10.2"
+ webpack-hot-middleware "2.18.0"
+ write-file-webpack-plugin "4.0.2"
+ xss-filters "1.2.7"
+
+node-fetch@^1.0.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5"
+ dependencies:
+ encoding "^0.1.11"
+ is-stream "^1.0.1"
+
+node-libs-browser@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646"
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.1.4"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^1.0.0"
+ https-browserify "0.0.1"
+ os-browserify "^0.2.0"
+ path-browserify "0.0.0"
+ process "^0.11.0"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.0.5"
+ stream-browserify "^2.0.1"
+ stream-http "^2.3.1"
+ string_decoder "^0.10.25"
+ timers-browserify "^2.0.2"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.10.3"
+ vm-browserify "0.0.4"
+
+node-pre-gyp@^0.6.36:
+ version "0.6.36"
+ resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786"
+ dependencies:
+ 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"
+
+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-package-data@^2.3.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+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-path@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.3.tgz#15cff4e1c89a38da77f56f6055b24f975dfb2bbe"
+ dependencies:
+ which "^1.2.10"
+
+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"
+
+npm-which@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+ dependencies:
+ commander "^2.9.0"
+ npm-path "^2.0.2"
+ which "^1.2.10"
+
+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"
+
+nprogress@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
+
+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:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+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.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:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+onetime@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+
+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"
+
+ora@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4"
+ dependencies:
+ chalk "^1.1.1"
+ cli-cursor "^1.0.2"
+ cli-spinners "^0.1.2"
+ object-assign "^4.0.1"
+
+os-browserify@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f"
+
+os-homedir@^1.0.0, os-homedir@^1.0.1:
+ 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:
+ 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"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-map@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.1.1.tgz#05f5e4ae97a068371bc2a5cc86bfbdbc19c4ae7a"
+
+pako@~0.2.0:
+ version "0.2.9"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
+
+parse-asn1@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712"
+ dependencies:
+ asn1.js "^4.0.0"
+ browserify-aes "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.0"
+ pbkdf2 "^3.0.3"
+
+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"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+path-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ 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:
+ 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-match@1.2.4:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/path-match/-/path-match-1.2.4.tgz#a62747f3c7e0c2514762697f24443585b09100ea"
+ dependencies:
+ http-errors "~1.4.0"
+ path-to-regexp "^1.0.0"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+path-to-regexp@^1.0.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+ dependencies:
+ isarray "0.0.1"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
+pbkdf2@^3.0.3:
+ version "3.0.12"
+ resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2"
+ dependencies:
+ create-hash "^1.1.2"
+ create-hmac "^1.1.4"
+ ripemd160 "^2.0.1"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+performance-now@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
+
+pify@^2.0.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"
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+pkg-up@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+ dependencies:
+ find-up "^2.1.0"
+
+pluralize@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+
+pre-commit@1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6"
+ dependencies:
+ cross-spawn "^5.0.1"
+ spawn-sync "^1.0.15"
+ which "1.2.x"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+
+prettier@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.3.1.tgz#fa0ea84b45ac0ba6de6a1e4cecdcff900d563151"
+ dependencies:
+ ast-types "0.9.8"
+ babel-code-frame "6.22.0"
+ babylon "7.0.0-beta.8"
+ chalk "1.1.3"
+ esutils "2.0.2"
+ flow-parser "0.45.0"
+ get-stdin "5.0.1"
+ glob "7.1.1"
+ jest-validate "19.0.0"
+ minimist "1.2.0"
+
+pretty-format@^19.0.0:
+ version "19.0.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-19.0.0.tgz#56530d32acb98a3fa4851c4e2b9d37b420684c84"
+ dependencies:
+ ansi-styles "^3.0.0"
+
+private@^0.1.6:
+ 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"
+
+process@^0.11.0:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+
+process@~0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
+
+progress@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+
+promise@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
+ dependencies:
+ asap "~2.0.3"
+
+prop-types@15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@~15.5.7:
+ version "15.5.10"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.10.tgz#2797dfc3126182e3a95e3dfbb2e893ddd7456154"
+ dependencies:
+ fbjs "^0.8.9"
+ loose-envify "^1.3.1"
+
+prop-types@15.5.8:
+ version "15.5.8"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394"
+ dependencies:
+ fbjs "^0.8.9"
+
+prr@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a"
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+public-encrypt@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6"
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+
+punycode@1.3.2, punycode@^1.2.4:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.4.0:
+ version "6.4.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
+
+query-string@4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+
+querystring@0.2.0, querystring@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+
+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"
+
+randombytes@^2.0.0, randombytes@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79"
+ dependencies:
+ safe-buffer "^5.1.0"
+
+range-parser@^1.0.3, range-parser@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+
+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"
+
+react-deep-force-update@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.0.1.tgz#4f7f6c12c3e7de42f345992a3c518236fa1ecad3"
+
+react-dom@15.5.4:
+ version "15.5.4"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da"
+ dependencies:
+ fbjs "^0.8.9"
+ loose-envify "^1.1.0"
+ object-assign "^4.1.0"
+ prop-types "~15.5.7"
+
+react-hot-loader@3.0.0-beta.7:
+ version "3.0.0-beta.7"
+ resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.0.0-beta.7.tgz#d5847b8165d731c4d5b30d86d5d4716227a0fa83"
+ dependencies:
+ babel-template "^6.7.0"
+ global "^4.3.0"
+ react-deep-force-update "^2.0.1"
+ react-proxy "^3.0.0-alpha.0"
+ redbox-react "^1.3.6"
+ source-map "^0.4.4"
+
+react-proxy@^3.0.0-alpha.0:
+ version "3.0.0-alpha.1"
+ resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07"
+ dependencies:
+ lodash "^4.6.1"
+
+react@15.5.4:
+ version "15.5.4"
+ resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047"
+ dependencies:
+ fbjs "^0.8.9"
+ loose-envify "^1.1.0"
+ object-assign "^4.1.0"
+ prop-types "^15.5.7"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.2.tgz#5a04df05e4f57fe3f0dc68fdd11dc5c97c7e6f4d"
+ 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.0"
+ string_decoder "~1.0.0"
+ 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"
+
+readline2@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ mute-stream "0.0.5"
+
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ dependencies:
+ resolve "^1.1.6"
+
+redbox-react@^1.3.6:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.4.2.tgz#7fe35d3c567301e97938cc7fd6a10918f424c6b4"
+ dependencies:
+ error-stack-parser "^1.3.6"
+ object-assign "^4.0.1"
+ prop-types "^15.5.4"
+ sourcemapped-stacktrace "^1.1.6"
+
+regenerate@^1.2.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260"
+
+regenerator-runtime@^0.10.0:
+ version "0.10.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+
+regenerator-transform@0.9.11:
+ version "0.9.11"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283"
+ dependencies:
+ babel-runtime "^6.18.0"
+ babel-types "^6.19.0"
+ private "^0.1.6"
+
+regex-cache@^0.4.2:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
+ dependencies:
+ is-equal-shallow "^0.1.3"
+ is-primitive "^2.0.0"
+
+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"
+
+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.0.2"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511"
+
+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"
+
+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"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-from-string@^1.1.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+require-uncached@^1.0.2:
+ 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"
+
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+
+resolve@^1.1.6, resolve@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
+ dependencies:
+ path-parse "^1.0.5"
+
+restore-cursor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ dependencies:
+ exit-hook "^1.0.0"
+ onetime "^1.0.0"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
+ dependencies:
+ glob "^7.0.5"
+
+rimraf@~2.4.0:
+ version "2.4.5"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da"
+ dependencies:
+ glob "^6.0.1"
+
+ripemd160@^2.0.0, ripemd160@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
+ dependencies:
+ hash-base "^2.0.0"
+ inherits "^2.0.1"
+
+run-async@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+ dependencies:
+ once "^1.3.0"
+
+rx-lite@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+
+rxjs@^5.0.0-beta.11:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.1.tgz#b62f757f279445d265a18a58fb0a70dc90e91626"
+ dependencies:
+ symbol-observable "^1.0.1"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+scroll-into-view-if-needed@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-1.1.0.tgz#9a0da1424eb2037746ed5c53b797f9676985bfcc"
+ dependencies:
+ amator "^1.0.1"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
+send@0.15.2:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.15.2.tgz#f91fab4403bcf87e716f70ceb5db2f578bdc17d6"
+ dependencies:
+ debug "2.6.4"
+ depd "~1.1.0"
+ destroy "~1.0.4"
+ encodeurl "~1.0.1"
+ escape-html "~1.0.3"
+ etag "~1.8.0"
+ fresh "0.5.0"
+ http-errors "~1.6.1"
+ mime "1.3.4"
+ ms "1.0.0"
+ on-finished "~2.3.0"
+ range-parser "~1.2.0"
+ statuses "~1.3.1"
+
+set-blocking@^2.0.0, 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"
+
+setimmediate@^1.0.4, setimmediate@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+
+setprototypeof@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
+
+sha.js@^2.4.0, sha.js@^2.4.8:
+ version "2.4.8"
+ resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f"
+ dependencies:
+ inherits "^2.0.1"
+
+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"
+
+shelljs@^0.7.5:
+ version "0.7.8"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
+signal-exit@^3.0.0:
+ 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@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+
+smoothscroll-polyfill@0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/smoothscroll-polyfill/-/smoothscroll-polyfill-0.3.5.tgz#466e6039b51cb525d70e1a5077ef81e064678eae"
+
+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"
+
+source-list-map@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1"
+
+source-map-support@0.4.15, source-map-support@^0.4.2:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
+ dependencies:
+ source-map "^0.5.6"
+
+source-map@0.5.6, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+sourcemapped-stacktrace@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.6.tgz#112d8749c942c3cd3b630dfac9514577b86a3a51"
+ dependencies:
+ source-map "0.5.6"
+
+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"
+
+spdx-correct@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+ dependencies:
+ spdx-license-ids "^1.0.2"
+
+spdx-expression-parse@~1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+
+spdx-license-ids@^1.0.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+
+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"
+
+stackframe@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4"
+
+stackframe@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.0.3.tgz#fe64ab20b170e4ce49044b126c119dfa0e5dc7cc"
+
+staged-git-files@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-0.0.4.tgz#d797e1b551ca7a639dec0237dc6eb4bb9be17d35"
+
+"statuses@>= 1.2.1 < 2", "statuses@>= 1.3.1 < 2", statuses@~1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+
+stream-browserify@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+stream-http@^2.3.1:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad"
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.2.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+stream-to-observable@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.1.0.tgz#45bf1d9f2d7dc09bed81f1c307c430e68b84cffe"
+
+strict-uri-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+
+string-hash@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.1.tgz#8e85bed291e0763b8f6809d9c3368fea048db3dc"
+
+string-length@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac"
+ dependencies:
+ strip-ansi "^3.0.0"
+
+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:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string.prototype.repeat@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz#aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf"
+
+string_decoder@^0.10.25:
+ version "0.10.31"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
+
+string_decoder@~1.0.0:
+ 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:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@3.0.1, 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@^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-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+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"
+
+styled-jsx@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-1.0.5.tgz#943fced48295ff70000794311f9f3bf3688e427f"
+ dependencies:
+ babel-plugin-syntax-jsx "6.18.0"
+ babel-traverse "6.21.0"
+ babel-types "6.23.0"
+ babylon "6.14.1"
+ convert-source-map "1.3.0"
+ css-tree "1.0.0-alpha17"
+ escape-string-regexp "1.0.5"
+ source-map "0.5.6"
+ string-hash "1.1.1"
+ stylis "3.1.5"
+
+stylis@3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.1.5.tgz#c585186286aaa79856c9ac62bbb38113923edda3"
+
+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@^3.1.0:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+symbol-observable@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+
+table@^3.7.8:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+ dependencies:
+ ajv "^4.7.0"
+ ajv-keywords "^1.0.0"
+ chalk "^1.1.1"
+ lodash "^4.0.0"
+ slice-ansi "0.0.4"
+ string-width "^2.0.0"
+
+tapable@^0.2.5, tapable@~0.2.5:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d"
+
+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@^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"
+
+text-table@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
+ dependencies:
+ any-promise "^1.0.0"
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+timers-browserify@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86"
+ dependencies:
+ setimmediate "^1.0.4"
+
+to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+
+to-fast-properties@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+touch@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de"
+ dependencies:
+ nopt "~1.0.10"
+
+tough-cookie@~2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a"
+ dependencies:
+ punycode "^1.4.1"
+
+traverse@0.6.6:
+ version "0.6.6"
+ resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
+
+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"
+
+tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+
+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"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+ua-parser-js@^0.7.9:
+ version "0.7.13"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.13.tgz#cd9dd2f86493b3f44dbeeef3780fda74c5ee14be"
+
+uglify-js@^2.8.5:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+uid-number@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
+
+unfetch@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-2.1.2.tgz#684fee4d8acdb135bdb26c0364c642fc326ca95b"
+
+url@0.11.0, url@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ dependencies:
+ punycode "1.3.2"
+ querystring "0.2.0"
+
+user-home@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
+ dependencies:
+ os-homedir "^1.0.0"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+util@0.10.3, util@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ dependencies:
+ inherits "2.0.1"
+
+uuid@3.0.1, uuid@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+ dependencies:
+ spdx-correct "~1.0.0"
+ spdx-expression-parse "~1.0.0"
+
+verror@1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
+ dependencies:
+ extsprintf "1.0.2"
+
+vm-browserify@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
+ dependencies:
+ indexof "0.0.1"
+
+watchpack@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87"
+ dependencies:
+ async "^2.1.2"
+ chokidar "^1.4.3"
+ graceful-fs "^4.1.2"
+
+webpack-dev-middleware@1.10.2:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz#2e252ce1dfb020dbda1ccb37df26f30ab014dbd1"
+ dependencies:
+ memory-fs "~0.4.1"
+ mime "^1.3.4"
+ path-is-absolute "^1.0.0"
+ range-parser "^1.0.3"
+
+webpack-hot-middleware@2.18.0:
+ version "2.18.0"
+ resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.18.0.tgz#a16bb535b83a6ac94a78ac5ebce4f3059e8274d3"
+ dependencies:
+ ansi-html "0.0.7"
+ html-entities "^1.2.0"
+ querystring "^0.2.0"
+ strip-ansi "^3.0.0"
+
+webpack-sources@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb"
+ dependencies:
+ source-list-map "^1.1.1"
+ source-map "~0.5.3"
+
+webpack@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce"
+ dependencies:
+ acorn "^5.0.0"
+ acorn-dynamic-import "^2.0.0"
+ ajv "^4.7.0"
+ ajv-keywords "^1.1.1"
+ async "^2.1.2"
+ enhanced-resolve "^3.0.0"
+ interpret "^1.0.0"
+ json-loader "^0.5.4"
+ json5 "^0.5.1"
+ loader-runner "^2.3.0"
+ loader-utils "^0.2.16"
+ memory-fs "~0.4.1"
+ mkdirp "~0.5.0"
+ node-libs-browser "^2.0.0"
+ source-map "^0.5.3"
+ supports-color "^3.1.0"
+ tapable "~0.2.5"
+ uglify-js "^2.8.5"
+ watchpack "^1.3.1"
+ webpack-sources "^0.2.3"
+ yargs "^6.0.0"
+
+whatwg-fetch@>=0.10.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84"
+
+which-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
+
+which@1.2.x, which@^1.2.10, which@^1.2.9:
+ version "1.2.14"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
+ 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"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+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-webpack-plugin@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-webpack-plugin/-/write-file-webpack-plugin-4.0.2.tgz#70c89a4d99a105e1aed778b21b5f75e7af4da58b"
+ dependencies:
+ chalk "^1.1.1"
+ filesize "^3.2.1"
+ lodash "^4.5.1"
+ mkdirp "^0.5.1"
+ moment "^2.11.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"
+
+xss-filters@1.2.7:
+ version "1.2.7"
+ resolved "https://registry.yarnpkg.com/xss-filters/-/xss-filters-1.2.7.tgz#59fa1de201f36f2f3470dcac5f58ccc2830b0a9a"
+
+xtend@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+
+y18n@^3.2.1:
+ 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-parser@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c"
+ dependencies:
+ camelcase "^3.0.0"
+
+yargs@^6.0.0:
+ version "6.6.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208"
+ dependencies:
+ camelcase "^3.0.0"
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ get-caller-file "^1.0.1"
+ os-locale "^1.4.0"
+ read-pkg-up "^1.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^1.0.2"
+ which-module "^1.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^4.2.0"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"