diff --git a/.conventional-changelog-lintrc b/.conventional-changelog-lintrc new file mode 100644 index 00000000..f0c720c3 --- /dev/null +++ b/.conventional-changelog-lintrc @@ -0,0 +1,3 @@ +{ + "extends": ["angular", "lerna-scopes"] +} \ No newline at end of file diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..3e48e369 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "./packages/eslint-config/index.js" +} diff --git a/.gitignore b/.gitignore index 2419120b..d61ad114 100644 --- a/.gitignore +++ b/.gitignore @@ -154,3 +154,5 @@ $RECYCLE.BIN/ tap-xunit /ui/dist +_todo +packages/*/dist \ No newline at end of file diff --git a/.licensesrc.json b/.licensesrc.json new file mode 100644 index 00000000..92bd0ebd --- /dev/null +++ b/.licensesrc.json @@ -0,0 +1,21 @@ +{ + "ignoreDevDependencies": true, + "allowedPackages": [{ + "name": "colors", + "extraFieldsForDocumentation": "Licence is MIT, but was not found by tool: https://github.com/Marak/colors.js/blob/v0.5.1/MIT-LICENSE.txt", + "date": "17 January 2017", + "reason": "MIT Licenced" + }], + "allowedLicenses": [ + "CC-BY-4.0", + "CC0-1.0", + "MIT", + "ISC", + "Apache", + "BSD", + "WTF", + "Public Domain", + "MPL", + "Unlicense" + ] +} diff --git a/frontend-technical-prototype/.tern-project b/.tern-project similarity index 100% rename from frontend-technical-prototype/.tern-project rename to .tern-project diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5ff7e8bf..894b8da4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ ### Small Feature Development -Contributors who have write access to the repository will practise continuous +Contributors who have write access to the repository will practice continuous delivery (CD as known from now on in this document). We will define CD in this document as a method of developing a feature per commit @@ -22,7 +22,7 @@ In this scenario, the contributor should open a pull request instead. ## Commit messages -Follow [Git blessed](http://chris.beams.io/posts/git-commit/) +Follow [Git blessed](http://chris.beams.io/posts/git-commit/) and [Conventional Commits](https://conventionalcommits.org) 1. Separate subject from body with a blank line 2. Limit the subject line to 50 characters diff --git a/README.md b/README.md index 5796b23b..09e6664e 100644 --- a/README.md +++ b/README.md @@ -1,120 +1,40 @@ -[![CircleCI](https://circleci.com/gh/yldio/joyent-portal.svg?style=shield&circle-token=0bbeaaafc4868c707ca0ed0568f5193a04daddb4)](https://circleci.com/gh/yldio/joyent-portal) -[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0) +# container-pilot-dashboard -# Prototype Triton Portal +[![CircleCI](https://img.shields.io/circleci/project/github/yldio/joyent-portal/master.svg?style=flat-square)](https://circleci.com/gh/yldio/joyent-portal) +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) -This is a prototype project intended to explore some ideas that might contribute to new capabilities and a new user experience for managing applications on [Joyent's Triton](https://www.joyent.com/triton). +> TODO: Fill out this long short description -**This is not intended for general use and is completely unsupported.** +TODO: Fill out this long description. -## Our Principles -We have designed this product with these principles in mind (to be completed). +## Table of Contents -## Our Design Library -We use inVision craft for our design components, you can downoad this library [here](https://drive.google.com/open?id=0Bw56g3tFwIuWOXNHUDZmRmQ3ZlE) and submit proposed changes to our Sketch wireframes [here](https://drive.google.com/open?id=0B1oWObk56wa5cE5iY2JWNmI2djg). +- [Background](#background) +- [Install](#install) +- [Usage](#usage) +- [Maintainers](#maintainers) +- [Contribute](#contribute) +- [License](#license) -## Documentation -Our workshop meeting notes are kept in this [Google Drive folder](https://drive.google.com/open?id=0B1oWObk56wa5eklBNGFlWFRFOHM). Our meeting notes are kept in this [Google Drive folder](https://drive.google.com/open?id=0B1oWObk56wa5N1VzZjhZWWpDTTQ). +## Background -## Development - -If you would like to contribute to the project, the recommended way to setup is to -insure that you have docker installed, and optionally have a triton account and profile -setup using the triton tool. - -Currently requires [yarn](https://yarnpkg.com/en/docs/install) for installing dependencies, -as well as `docker` and `docker-compose` are installed correctly, this can be done by -running `make`, make continues without any errors, then you are good to go. [node-triton](https://github.com/joyent/node-triton) -is also needed if deployment to Triton is required. +## Install ``` -make && make install ``` -Then to run each individual component locally (subject to change). - -## Setup - -```sh -make -``` - -## Run services - -To run the stack locally: - -```sh -docker-compose -f local-compose.yml up -d -``` - -This will run the front-end at [http://127.0.0.1:8000](http://127.0.0.1:8000), -the UI framework at [http://127.0.0.1:8001](http://127.0.0.1:8001), - -## Project Management - -This project is using [Github Projects](https://www.youtube.com/watch?v=C6MGKHkNtxU) for organisation and development of the Joyent Dashboard. - -## Repository Layout - -Currently we are using this repository as a monolithic catch-all for all project communication, development and designs. -We will also include multiple PoC's of various bits of functionality from UI's prototypes to API development. +## Usage ``` -. -├── cloudapi-graphql -├── docs -├── frontend -├── nginx -├── ui -└── spikes ``` -### cloudapi-graphql +## Maintainers -An implementation of the [Joyent CloudAPI](https://apidocs.joyent.com/cloudapi/) in GraphQL. +## Contribute -### Docs +See [the contribute file](CONTRIBUTING.md)! -Documentation about the project, mainly focused on information for the technical runnings of this project. -Can be view online at the [documentation website](http://docs.svc.f4b20699-b323-4452-9091-977895896da6.eu-ams-1.triton.zone/) +## License -### frontend - -The client side code with a dev-server, this also includes the production server for the meantime, however we are looking at moving towards a deployment of the build artifacts to manta, and another server to host these assets. - -### nginx - -Nginx will be sitting in-front of the `ui` service, allowing the `ui` to scale out. - -### ui - -Code for the reusable UI framework. - -### spikes - -Implementation examples from spikes, this directory is experimental and is likely broken. - -### Git LFS -- We are using Git LFS to track large files, such as design files in Sketch. -- Make sure you have this downloaded locally -`brew install git-lfs` - -#### Helpful tips -- If there is an error cloning to a new machine, or there is an error cloning in the Circle CI process run `git lfs push origin master --all` from a machine that has it already checked out. - -### Sketch Pre Commit - -A pre-commit hook has been added to generate a PNG shot of each .sketch file "page". - -To use, make sure the following are installed: -- [Sketch Toolbox](http://sketchtoolbox.com/) -- [Sketch Measure Plugin](https://github.com/utom/sketch-measure) - - -Then add following to your `.git/config` - -``` -[diff "sketchtool"] - textconv = "sketchtool dump" - cachetextconv = true -``` +MPL-2.0 diff --git a/.gitattributes b/legacy/.gitattributes similarity index 100% rename from .gitattributes rename to legacy/.gitattributes diff --git a/legacy/.gitignore b/legacy/.gitignore new file mode 100644 index 00000000..2419120b --- /dev/null +++ b/legacy/.gitignore @@ -0,0 +1,156 @@ +### Bower ### +bower_components +.bower-cache +.bower-registry +.bower-tmp + + +### Git ### +*.orig + + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Thumbnails +._* +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +### Node ### +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + + +### SublimeText ### +# cache files for sublime text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# workspace files are user-specific +*.sublime-workspace + +# project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using SublimeText +# *.sublime-project + +# sftp configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + + +### Vim ### +# swap +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +# session +Session.vim +# temporary +.netrwhist +*~ +# auto-generated tag files +tags + + +### Windows ### +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +### Application Specific ### +.env + +# PostCSS +*.postcss.js + +/cloudapi-graphql/credentials.json +/docker-graphql/config.json +tap-xunit +/ui/dist + diff --git a/legacy/CONTRIBUTING.md b/legacy/CONTRIBUTING.md new file mode 100644 index 00000000..5ff7e8bf --- /dev/null +++ b/legacy/CONTRIBUTING.md @@ -0,0 +1,33 @@ +## Development Workflow + +### Small Feature Development + +Contributors who have write access to the repository will practise continuous +delivery (CD as known from now on in this document). + +We will define CD in this document as a method of developing a feature per commit +with an encapsulating test that proves that the functionality is working, the +contributor will test their code locally and if all is passing will push to *master*. + +For contributors that do not have write access, follow the same conventions but +open a Pull Request instead. + +### Large changesets + +When larger changes need to be made, or the work that is carried out spans multiple +components / services of the application at the same time a single commit will +not suffice. + +In this scenario, the contributor should open a pull request instead. + +## Commit messages + +Follow [Git blessed](http://chris.beams.io/posts/git-commit/) + +1. Separate subject from body with a blank line +2. Limit the subject line to 50 characters +3. Capitalize the subject line +4. Do not end the subject line with a period +5. Use the imperative mood in the subject line +6. Wrap the body at 72 characters +7. Use the body to explain what and why vs. how diff --git a/portal-api/LICENSE b/legacy/LICENSE similarity index 100% rename from portal-api/LICENSE rename to legacy/LICENSE diff --git a/Makefile b/legacy/Makefile similarity index 100% rename from Makefile rename to legacy/Makefile diff --git a/legacy/README.md b/legacy/README.md new file mode 100644 index 00000000..5796b23b --- /dev/null +++ b/legacy/README.md @@ -0,0 +1,120 @@ +[![CircleCI](https://circleci.com/gh/yldio/joyent-portal.svg?style=shield&circle-token=0bbeaaafc4868c707ca0ed0568f5193a04daddb4)](https://circleci.com/gh/yldio/joyent-portal) +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0) + +# Prototype Triton Portal + +This is a prototype project intended to explore some ideas that might contribute to new capabilities and a new user experience for managing applications on [Joyent's Triton](https://www.joyent.com/triton). + +**This is not intended for general use and is completely unsupported.** + +## Our Principles +We have designed this product with these principles in mind (to be completed). + +## Our Design Library +We use inVision craft for our design components, you can downoad this library [here](https://drive.google.com/open?id=0Bw56g3tFwIuWOXNHUDZmRmQ3ZlE) and submit proposed changes to our Sketch wireframes [here](https://drive.google.com/open?id=0B1oWObk56wa5cE5iY2JWNmI2djg). + +## Documentation +Our workshop meeting notes are kept in this [Google Drive folder](https://drive.google.com/open?id=0B1oWObk56wa5eklBNGFlWFRFOHM). Our meeting notes are kept in this [Google Drive folder](https://drive.google.com/open?id=0B1oWObk56wa5N1VzZjhZWWpDTTQ). + +## Development + +If you would like to contribute to the project, the recommended way to setup is to +insure that you have docker installed, and optionally have a triton account and profile +setup using the triton tool. + +Currently requires [yarn](https://yarnpkg.com/en/docs/install) for installing dependencies, +as well as `docker` and `docker-compose` are installed correctly, this can be done by +running `make`, make continues without any errors, then you are good to go. [node-triton](https://github.com/joyent/node-triton) +is also needed if deployment to Triton is required. + +``` +make && make install +``` + +Then to run each individual component locally (subject to change). + +## Setup + +```sh +make +``` + +## Run services + +To run the stack locally: + +```sh +docker-compose -f local-compose.yml up -d +``` + +This will run the front-end at [http://127.0.0.1:8000](http://127.0.0.1:8000), +the UI framework at [http://127.0.0.1:8001](http://127.0.0.1:8001), + +## Project Management + +This project is using [Github Projects](https://www.youtube.com/watch?v=C6MGKHkNtxU) for organisation and development of the Joyent Dashboard. + +## Repository Layout + +Currently we are using this repository as a monolithic catch-all for all project communication, development and designs. +We will also include multiple PoC's of various bits of functionality from UI's prototypes to API development. + +``` +. +├── cloudapi-graphql +├── docs +├── frontend +├── nginx +├── ui +└── spikes +``` + +### cloudapi-graphql + +An implementation of the [Joyent CloudAPI](https://apidocs.joyent.com/cloudapi/) in GraphQL. + +### Docs + +Documentation about the project, mainly focused on information for the technical runnings of this project. +Can be view online at the [documentation website](http://docs.svc.f4b20699-b323-4452-9091-977895896da6.eu-ams-1.triton.zone/) + +### frontend + +The client side code with a dev-server, this also includes the production server for the meantime, however we are looking at moving towards a deployment of the build artifacts to manta, and another server to host these assets. + +### nginx + +Nginx will be sitting in-front of the `ui` service, allowing the `ui` to scale out. + +### ui + +Code for the reusable UI framework. + +### spikes + +Implementation examples from spikes, this directory is experimental and is likely broken. + +### Git LFS +- We are using Git LFS to track large files, such as design files in Sketch. +- Make sure you have this downloaded locally +`brew install git-lfs` + +#### Helpful tips +- If there is an error cloning to a new machine, or there is an error cloning in the Circle CI process run `git lfs push origin master --all` from a machine that has it already checked out. + +### Sketch Pre Commit + +A pre-commit hook has been added to generate a PNG shot of each .sketch file "page". + +To use, make sure the following are installed: +- [Sketch Toolbox](http://sketchtoolbox.com/) +- [Sketch Measure Plugin](https://github.com/utom/sketch-measure) + + +Then add following to your `.git/config` + +``` +[diff "sketchtool"] + textconv = "sketchtool dump" + cachetextconv = true +``` diff --git a/bin/deploy b/legacy/bin/deploy similarity index 100% rename from bin/deploy rename to legacy/bin/deploy diff --git a/bin/docker-login b/legacy/bin/docker-login similarity index 100% rename from bin/docker-login rename to legacy/bin/docker-login diff --git a/bin/history-check b/legacy/bin/history-check similarity index 100% rename from bin/history-check rename to legacy/bin/history-check diff --git a/bin/on-changes-publish-ui b/legacy/bin/on-changes-publish-ui similarity index 100% rename from bin/on-changes-publish-ui rename to legacy/bin/on-changes-publish-ui diff --git a/bin/pre-commit.hook b/legacy/bin/pre-commit.hook similarity index 100% rename from bin/pre-commit.hook rename to legacy/bin/pre-commit.hook diff --git a/bin/setup b/legacy/bin/setup similarity index 100% rename from bin/setup rename to legacy/bin/setup diff --git a/bin/setup-tools b/legacy/bin/setup-tools similarity index 100% rename from bin/setup-tools rename to legacy/bin/setup-tools diff --git a/bin/sketch-previews.rb b/legacy/bin/sketch-previews.rb similarity index 100% rename from bin/sketch-previews.rb rename to legacy/bin/sketch-previews.rb diff --git a/circle.yml b/legacy/circle.yml similarity index 100% rename from circle.yml rename to legacy/circle.yml diff --git a/cloudapi-graphql/.eslintrc b/legacy/cloudapi-graphql/.eslintrc similarity index 100% rename from cloudapi-graphql/.eslintrc rename to legacy/cloudapi-graphql/.eslintrc diff --git a/cloudapi-graphql/.gitignore b/legacy/cloudapi-graphql/.gitignore similarity index 100% rename from cloudapi-graphql/.gitignore rename to legacy/cloudapi-graphql/.gitignore diff --git a/cloudapi-graphql/Dockerfile b/legacy/cloudapi-graphql/Dockerfile similarity index 100% rename from cloudapi-graphql/Dockerfile rename to legacy/cloudapi-graphql/Dockerfile diff --git a/cloudapi-graphql/Makefile b/legacy/cloudapi-graphql/Makefile similarity index 100% rename from cloudapi-graphql/Makefile rename to legacy/cloudapi-graphql/Makefile diff --git a/cloudapi-graphql/README.md b/legacy/cloudapi-graphql/README.md similarity index 100% rename from cloudapi-graphql/README.md rename to legacy/cloudapi-graphql/README.md diff --git a/cloudapi-graphql/etc/containerpilot.json b/legacy/cloudapi-graphql/etc/containerpilot.json similarity index 100% rename from cloudapi-graphql/etc/containerpilot.json rename to legacy/cloudapi-graphql/etc/containerpilot.json diff --git a/cloudapi-graphql/package.json b/legacy/cloudapi-graphql/package.json similarity index 100% rename from cloudapi-graphql/package.json rename to legacy/cloudapi-graphql/package.json diff --git a/cloudapi-graphql/src/api/account.js b/legacy/cloudapi-graphql/src/api/account.js similarity index 100% rename from cloudapi-graphql/src/api/account.js rename to legacy/cloudapi-graphql/src/api/account.js diff --git a/cloudapi-graphql/src/api/config.js b/legacy/cloudapi-graphql/src/api/config.js similarity index 100% rename from cloudapi-graphql/src/api/config.js rename to legacy/cloudapi-graphql/src/api/config.js diff --git a/cloudapi-graphql/src/api/datacenters.js b/legacy/cloudapi-graphql/src/api/datacenters.js similarity index 100% rename from cloudapi-graphql/src/api/datacenters.js rename to legacy/cloudapi-graphql/src/api/datacenters.js diff --git a/cloudapi-graphql/src/api/fabrics.js b/legacy/cloudapi-graphql/src/api/fabrics.js similarity index 100% rename from cloudapi-graphql/src/api/fabrics.js rename to legacy/cloudapi-graphql/src/api/fabrics.js diff --git a/cloudapi-graphql/src/api/firewall-rules.js b/legacy/cloudapi-graphql/src/api/firewall-rules.js similarity index 100% rename from cloudapi-graphql/src/api/firewall-rules.js rename to legacy/cloudapi-graphql/src/api/firewall-rules.js diff --git a/cloudapi-graphql/src/api/images.js b/legacy/cloudapi-graphql/src/api/images.js similarity index 100% rename from cloudapi-graphql/src/api/images.js rename to legacy/cloudapi-graphql/src/api/images.js diff --git a/cloudapi-graphql/src/api/index.js b/legacy/cloudapi-graphql/src/api/index.js similarity index 100% rename from cloudapi-graphql/src/api/index.js rename to legacy/cloudapi-graphql/src/api/index.js diff --git a/cloudapi-graphql/src/api/keys.js b/legacy/cloudapi-graphql/src/api/keys.js similarity index 100% rename from cloudapi-graphql/src/api/keys.js rename to legacy/cloudapi-graphql/src/api/keys.js diff --git a/cloudapi-graphql/src/api/machines.js b/legacy/cloudapi-graphql/src/api/machines.js similarity index 100% rename from cloudapi-graphql/src/api/machines.js rename to legacy/cloudapi-graphql/src/api/machines.js diff --git a/cloudapi-graphql/src/api/networks.js b/legacy/cloudapi-graphql/src/api/networks.js similarity index 100% rename from cloudapi-graphql/src/api/networks.js rename to legacy/cloudapi-graphql/src/api/networks.js diff --git a/cloudapi-graphql/src/api/nics.js b/legacy/cloudapi-graphql/src/api/nics.js similarity index 100% rename from cloudapi-graphql/src/api/nics.js rename to legacy/cloudapi-graphql/src/api/nics.js diff --git a/cloudapi-graphql/src/api/packages.js b/legacy/cloudapi-graphql/src/api/packages.js similarity index 100% rename from cloudapi-graphql/src/api/packages.js rename to legacy/cloudapi-graphql/src/api/packages.js diff --git a/cloudapi-graphql/src/api/policies.js b/legacy/cloudapi-graphql/src/api/policies.js similarity index 100% rename from cloudapi-graphql/src/api/policies.js rename to legacy/cloudapi-graphql/src/api/policies.js diff --git a/cloudapi-graphql/src/api/request.js b/legacy/cloudapi-graphql/src/api/request.js similarity index 100% rename from cloudapi-graphql/src/api/request.js rename to legacy/cloudapi-graphql/src/api/request.js diff --git a/cloudapi-graphql/src/api/roles.js b/legacy/cloudapi-graphql/src/api/roles.js similarity index 100% rename from cloudapi-graphql/src/api/roles.js rename to legacy/cloudapi-graphql/src/api/roles.js diff --git a/cloudapi-graphql/src/api/services.js b/legacy/cloudapi-graphql/src/api/services.js similarity index 100% rename from cloudapi-graphql/src/api/services.js rename to legacy/cloudapi-graphql/src/api/services.js diff --git a/cloudapi-graphql/src/api/users.js b/legacy/cloudapi-graphql/src/api/users.js similarity index 100% rename from cloudapi-graphql/src/api/users.js rename to legacy/cloudapi-graphql/src/api/users.js diff --git a/cloudapi-graphql/src/credentials.js b/legacy/cloudapi-graphql/src/credentials.js similarity index 100% rename from cloudapi-graphql/src/credentials.js rename to legacy/cloudapi-graphql/src/credentials.js diff --git a/cloudapi-graphql/src/endpoint.js b/legacy/cloudapi-graphql/src/endpoint.js similarity index 100% rename from cloudapi-graphql/src/endpoint.js rename to legacy/cloudapi-graphql/src/endpoint.js diff --git a/cloudapi-graphql/src/index.js b/legacy/cloudapi-graphql/src/index.js similarity index 100% rename from cloudapi-graphql/src/index.js rename to legacy/cloudapi-graphql/src/index.js diff --git a/cloudapi-graphql/src/schema/index.js b/legacy/cloudapi-graphql/src/schema/index.js similarity index 100% rename from cloudapi-graphql/src/schema/index.js rename to legacy/cloudapi-graphql/src/schema/index.js diff --git a/cloudapi-graphql/src/schema/mutations/account.js b/legacy/cloudapi-graphql/src/schema/mutations/account.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/account.js rename to legacy/cloudapi-graphql/src/schema/mutations/account.js diff --git a/cloudapi-graphql/src/schema/mutations/firewall-rules.js b/legacy/cloudapi-graphql/src/schema/mutations/firewall-rules.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/firewall-rules.js rename to legacy/cloudapi-graphql/src/schema/mutations/firewall-rules.js diff --git a/cloudapi-graphql/src/schema/mutations/images.js b/legacy/cloudapi-graphql/src/schema/mutations/images.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/images.js rename to legacy/cloudapi-graphql/src/schema/mutations/images.js diff --git a/cloudapi-graphql/src/schema/mutations/index.js b/legacy/cloudapi-graphql/src/schema/mutations/index.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/index.js rename to legacy/cloudapi-graphql/src/schema/mutations/index.js diff --git a/cloudapi-graphql/src/schema/mutations/keys.js b/legacy/cloudapi-graphql/src/schema/mutations/keys.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/keys.js rename to legacy/cloudapi-graphql/src/schema/mutations/keys.js diff --git a/cloudapi-graphql/src/schema/mutations/machines.js b/legacy/cloudapi-graphql/src/schema/mutations/machines.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/machines.js rename to legacy/cloudapi-graphql/src/schema/mutations/machines.js diff --git a/cloudapi-graphql/src/schema/mutations/policies.js b/legacy/cloudapi-graphql/src/schema/mutations/policies.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/policies.js rename to legacy/cloudapi-graphql/src/schema/mutations/policies.js diff --git a/cloudapi-graphql/src/schema/mutations/roles.js b/legacy/cloudapi-graphql/src/schema/mutations/roles.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/roles.js rename to legacy/cloudapi-graphql/src/schema/mutations/roles.js diff --git a/cloudapi-graphql/src/schema/mutations/snapshots.js b/legacy/cloudapi-graphql/src/schema/mutations/snapshots.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/snapshots.js rename to legacy/cloudapi-graphql/src/schema/mutations/snapshots.js diff --git a/cloudapi-graphql/src/schema/mutations/users.js b/legacy/cloudapi-graphql/src/schema/mutations/users.js similarity index 100% rename from cloudapi-graphql/src/schema/mutations/users.js rename to legacy/cloudapi-graphql/src/schema/mutations/users.js diff --git a/cloudapi-graphql/src/schema/queries/account.js b/legacy/cloudapi-graphql/src/schema/queries/account.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/account.js rename to legacy/cloudapi-graphql/src/schema/queries/account.js diff --git a/cloudapi-graphql/src/schema/queries/datacenters.js b/legacy/cloudapi-graphql/src/schema/queries/datacenters.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/datacenters.js rename to legacy/cloudapi-graphql/src/schema/queries/datacenters.js diff --git a/cloudapi-graphql/src/schema/queries/fabrics.js b/legacy/cloudapi-graphql/src/schema/queries/fabrics.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/fabrics.js rename to legacy/cloudapi-graphql/src/schema/queries/fabrics.js diff --git a/cloudapi-graphql/src/schema/queries/firewall-rules.js b/legacy/cloudapi-graphql/src/schema/queries/firewall-rules.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/firewall-rules.js rename to legacy/cloudapi-graphql/src/schema/queries/firewall-rules.js diff --git a/cloudapi-graphql/src/schema/queries/images.js b/legacy/cloudapi-graphql/src/schema/queries/images.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/images.js rename to legacy/cloudapi-graphql/src/schema/queries/images.js diff --git a/cloudapi-graphql/src/schema/queries/index.js b/legacy/cloudapi-graphql/src/schema/queries/index.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/index.js rename to legacy/cloudapi-graphql/src/schema/queries/index.js diff --git a/cloudapi-graphql/src/schema/queries/machines.js b/legacy/cloudapi-graphql/src/schema/queries/machines.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/machines.js rename to legacy/cloudapi-graphql/src/schema/queries/machines.js diff --git a/cloudapi-graphql/src/schema/queries/networks.js b/legacy/cloudapi-graphql/src/schema/queries/networks.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/networks.js rename to legacy/cloudapi-graphql/src/schema/queries/networks.js diff --git a/cloudapi-graphql/src/schema/queries/nics.js b/legacy/cloudapi-graphql/src/schema/queries/nics.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/nics.js rename to legacy/cloudapi-graphql/src/schema/queries/nics.js diff --git a/cloudapi-graphql/src/schema/queries/packages.js b/legacy/cloudapi-graphql/src/schema/queries/packages.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/packages.js rename to legacy/cloudapi-graphql/src/schema/queries/packages.js diff --git a/cloudapi-graphql/src/schema/queries/policies.js b/legacy/cloudapi-graphql/src/schema/queries/policies.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/policies.js rename to legacy/cloudapi-graphql/src/schema/queries/policies.js diff --git a/cloudapi-graphql/src/schema/queries/roles.js b/legacy/cloudapi-graphql/src/schema/queries/roles.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/roles.js rename to legacy/cloudapi-graphql/src/schema/queries/roles.js diff --git a/cloudapi-graphql/src/schema/queries/services.js b/legacy/cloudapi-graphql/src/schema/queries/services.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/services.js rename to legacy/cloudapi-graphql/src/schema/queries/services.js diff --git a/cloudapi-graphql/src/schema/queries/users.js b/legacy/cloudapi-graphql/src/schema/queries/users.js similarity index 100% rename from cloudapi-graphql/src/schema/queries/users.js rename to legacy/cloudapi-graphql/src/schema/queries/users.js diff --git a/cloudapi-graphql/src/schema/types/audit.js b/legacy/cloudapi-graphql/src/schema/types/audit.js similarity index 100% rename from cloudapi-graphql/src/schema/types/audit.js rename to legacy/cloudapi-graphql/src/schema/types/audit.js diff --git a/cloudapi-graphql/src/schema/types/datacenter.js b/legacy/cloudapi-graphql/src/schema/types/datacenter.js similarity index 100% rename from cloudapi-graphql/src/schema/types/datacenter.js rename to legacy/cloudapi-graphql/src/schema/types/datacenter.js diff --git a/cloudapi-graphql/src/schema/types/dynamic-object.js b/legacy/cloudapi-graphql/src/schema/types/dynamic-object.js similarity index 100% rename from cloudapi-graphql/src/schema/types/dynamic-object.js rename to legacy/cloudapi-graphql/src/schema/types/dynamic-object.js diff --git a/cloudapi-graphql/src/schema/types/fabric.js b/legacy/cloudapi-graphql/src/schema/types/fabric.js similarity index 100% rename from cloudapi-graphql/src/schema/types/fabric.js rename to legacy/cloudapi-graphql/src/schema/types/fabric.js diff --git a/cloudapi-graphql/src/schema/types/firewall-rule.js b/legacy/cloudapi-graphql/src/schema/types/firewall-rule.js similarity index 100% rename from cloudapi-graphql/src/schema/types/firewall-rule.js rename to legacy/cloudapi-graphql/src/schema/types/firewall-rule.js diff --git a/cloudapi-graphql/src/schema/types/image.js b/legacy/cloudapi-graphql/src/schema/types/image.js similarity index 100% rename from cloudapi-graphql/src/schema/types/image.js rename to legacy/cloudapi-graphql/src/schema/types/image.js diff --git a/cloudapi-graphql/src/schema/types/key.js b/legacy/cloudapi-graphql/src/schema/types/key.js similarity index 100% rename from cloudapi-graphql/src/schema/types/key.js rename to legacy/cloudapi-graphql/src/schema/types/key.js diff --git a/cloudapi-graphql/src/schema/types/login.js b/legacy/cloudapi-graphql/src/schema/types/login.js similarity index 100% rename from cloudapi-graphql/src/schema/types/login.js rename to legacy/cloudapi-graphql/src/schema/types/login.js diff --git a/cloudapi-graphql/src/schema/types/machine.js b/legacy/cloudapi-graphql/src/schema/types/machine.js similarity index 100% rename from cloudapi-graphql/src/schema/types/machine.js rename to legacy/cloudapi-graphql/src/schema/types/machine.js diff --git a/cloudapi-graphql/src/schema/types/network.js b/legacy/cloudapi-graphql/src/schema/types/network.js similarity index 100% rename from cloudapi-graphql/src/schema/types/network.js rename to legacy/cloudapi-graphql/src/schema/types/network.js diff --git a/cloudapi-graphql/src/schema/types/nic.js b/legacy/cloudapi-graphql/src/schema/types/nic.js similarity index 100% rename from cloudapi-graphql/src/schema/types/nic.js rename to legacy/cloudapi-graphql/src/schema/types/nic.js diff --git a/cloudapi-graphql/src/schema/types/package.js b/legacy/cloudapi-graphql/src/schema/types/package.js similarity index 100% rename from cloudapi-graphql/src/schema/types/package.js rename to legacy/cloudapi-graphql/src/schema/types/package.js diff --git a/cloudapi-graphql/src/schema/types/policy.js b/legacy/cloudapi-graphql/src/schema/types/policy.js similarity index 100% rename from cloudapi-graphql/src/schema/types/policy.js rename to legacy/cloudapi-graphql/src/schema/types/policy.js diff --git a/cloudapi-graphql/src/schema/types/role.js b/legacy/cloudapi-graphql/src/schema/types/role.js similarity index 100% rename from cloudapi-graphql/src/schema/types/role.js rename to legacy/cloudapi-graphql/src/schema/types/role.js diff --git a/cloudapi-graphql/src/schema/types/service.js b/legacy/cloudapi-graphql/src/schema/types/service.js similarity index 100% rename from cloudapi-graphql/src/schema/types/service.js rename to legacy/cloudapi-graphql/src/schema/types/service.js diff --git a/cloudapi-graphql/src/schema/types/snapshot.js b/legacy/cloudapi-graphql/src/schema/types/snapshot.js similarity index 100% rename from cloudapi-graphql/src/schema/types/snapshot.js rename to legacy/cloudapi-graphql/src/schema/types/snapshot.js diff --git a/cloudapi-graphql/static/.gitkeep b/legacy/cloudapi-graphql/static/.gitkeep similarity index 100% rename from cloudapi-graphql/static/.gitkeep rename to legacy/cloudapi-graphql/static/.gitkeep diff --git a/cloudapi-graphql/test/noop.test.js b/legacy/cloudapi-graphql/test/noop.test.js similarity index 100% rename from cloudapi-graphql/test/noop.test.js rename to legacy/cloudapi-graphql/test/noop.test.js diff --git a/cloudapi-graphql/yarn.lock b/legacy/cloudapi-graphql/yarn.lock similarity index 100% rename from cloudapi-graphql/yarn.lock rename to legacy/cloudapi-graphql/yarn.lock diff --git a/control-tower/.gitignore b/legacy/control-tower/.gitignore similarity index 100% rename from control-tower/.gitignore rename to legacy/control-tower/.gitignore diff --git a/control-tower/README.md b/legacy/control-tower/README.md similarity index 100% rename from control-tower/README.md rename to legacy/control-tower/README.md diff --git a/control-tower/bin/control-tower b/legacy/control-tower/bin/control-tower similarity index 100% rename from control-tower/bin/control-tower rename to legacy/control-tower/bin/control-tower diff --git a/control-tower/lib/index.js b/legacy/control-tower/lib/index.js similarity index 100% rename from control-tower/lib/index.js rename to legacy/control-tower/lib/index.js diff --git a/control-tower/package.json b/legacy/control-tower/package.json similarity index 100% rename from control-tower/package.json rename to legacy/control-tower/package.json diff --git a/control-tower/test/index.js b/legacy/control-tower/test/index.js similarity index 100% rename from control-tower/test/index.js rename to legacy/control-tower/test/index.js diff --git a/design/ui-library-sketch-previews/Page 1.png b/legacy/design/ui-library-sketch-previews/Page 1.png similarity index 100% rename from design/ui-library-sketch-previews/Page 1.png rename to legacy/design/ui-library-sketch-previews/Page 1.png diff --git a/design/ui-library.sketch b/legacy/design/ui-library.sketch similarity index 100% rename from design/ui-library.sketch rename to legacy/design/ui-library.sketch diff --git a/docker-compose-client/.babelrc b/legacy/docker-compose-client/.babelrc similarity index 100% rename from docker-compose-client/.babelrc rename to legacy/docker-compose-client/.babelrc diff --git a/docker-compose-client/.eslintrc b/legacy/docker-compose-client/.eslintrc similarity index 100% rename from docker-compose-client/.eslintrc rename to legacy/docker-compose-client/.eslintrc diff --git a/docker-compose-client/.flowconfig b/legacy/docker-compose-client/.flowconfig similarity index 100% rename from docker-compose-client/.flowconfig rename to legacy/docker-compose-client/.flowconfig diff --git a/docker-compose-client/dist/index.es.js b/legacy/docker-compose-client/dist/index.es.js similarity index 100% rename from docker-compose-client/dist/index.es.js rename to legacy/docker-compose-client/dist/index.es.js diff --git a/docker-compose-client/dist/index.umd.js b/legacy/docker-compose-client/dist/index.umd.js similarity index 100% rename from docker-compose-client/dist/index.umd.js rename to legacy/docker-compose-client/dist/index.umd.js diff --git a/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js b/legacy/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js similarity index 100% rename from docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js rename to legacy/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js diff --git a/docker-compose-client/flow-typed/npm/ava_vx.x.x.js b/legacy/docker-compose-client/flow-typed/npm/ava_vx.x.x.js similarity index 100% rename from docker-compose-client/flow-typed/npm/ava_vx.x.x.js rename to legacy/docker-compose-client/flow-typed/npm/ava_vx.x.x.js diff --git a/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js b/legacy/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js similarity index 100% rename from docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js rename to legacy/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js diff --git a/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js b/legacy/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js similarity index 100% rename from docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js rename to legacy/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js diff --git a/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js b/legacy/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js similarity index 100% rename from docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js rename to legacy/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js diff --git a/docker-compose-client/package.json b/legacy/docker-compose-client/package.json similarity index 100% rename from docker-compose-client/package.json rename to legacy/docker-compose-client/package.json diff --git a/docker-compose-client/readme.md b/legacy/docker-compose-client/readme.md similarity index 100% rename from docker-compose-client/readme.md rename to legacy/docker-compose-client/readme.md diff --git a/docker-compose-client/scripts/rollup.config.js b/legacy/docker-compose-client/scripts/rollup.config.js similarity index 100% rename from docker-compose-client/scripts/rollup.config.js rename to legacy/docker-compose-client/scripts/rollup.config.js diff --git a/docker-compose-client/src/index.js b/legacy/docker-compose-client/src/index.js similarity index 100% rename from docker-compose-client/src/index.js rename to legacy/docker-compose-client/src/index.js diff --git a/docker-compose-client/src/types.js b/legacy/docker-compose-client/src/types.js similarity index 100% rename from docker-compose-client/src/types.js rename to legacy/docker-compose-client/src/types.js diff --git a/docker-compose-client/test/index.js b/legacy/docker-compose-client/test/index.js similarity index 100% rename from docker-compose-client/test/index.js rename to legacy/docker-compose-client/test/index.js diff --git a/docker-compose-client/yarn.lock b/legacy/docker-compose-client/yarn.lock similarity index 100% rename from docker-compose-client/yarn.lock rename to legacy/docker-compose-client/yarn.lock diff --git a/docker-compose.yml b/legacy/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to legacy/docker-compose.yml diff --git a/docker-graphql/.eslintrc b/legacy/docker-graphql/.eslintrc similarity index 100% rename from docker-graphql/.eslintrc rename to legacy/docker-graphql/.eslintrc diff --git a/docker-graphql/.gitignore b/legacy/docker-graphql/.gitignore similarity index 100% rename from docker-graphql/.gitignore rename to legacy/docker-graphql/.gitignore diff --git a/docker-graphql/Dockerfile b/legacy/docker-graphql/Dockerfile similarity index 100% rename from docker-graphql/Dockerfile rename to legacy/docker-graphql/Dockerfile diff --git a/docker-graphql/Makefile b/legacy/docker-graphql/Makefile similarity index 100% rename from docker-graphql/Makefile rename to legacy/docker-graphql/Makefile diff --git a/docker-graphql/README.md b/legacy/docker-graphql/README.md similarity index 100% rename from docker-graphql/README.md rename to legacy/docker-graphql/README.md diff --git a/docker-graphql/etc/containerpilot.json b/legacy/docker-graphql/etc/containerpilot.json similarity index 100% rename from docker-graphql/etc/containerpilot.json rename to legacy/docker-graphql/etc/containerpilot.json diff --git a/docker-graphql/package.json b/legacy/docker-graphql/package.json similarity index 100% rename from docker-graphql/package.json rename to legacy/docker-graphql/package.json diff --git a/docker-graphql/src/api/client.js b/legacy/docker-graphql/src/api/client.js similarity index 100% rename from docker-graphql/src/api/client.js rename to legacy/docker-graphql/src/api/client.js diff --git a/docker-graphql/src/api/containers.js b/legacy/docker-graphql/src/api/containers.js similarity index 100% rename from docker-graphql/src/api/containers.js rename to legacy/docker-graphql/src/api/containers.js diff --git a/docker-graphql/src/api/index.js b/legacy/docker-graphql/src/api/index.js similarity index 100% rename from docker-graphql/src/api/index.js rename to legacy/docker-graphql/src/api/index.js diff --git a/docker-graphql/src/config.js b/legacy/docker-graphql/src/config.js similarity index 100% rename from docker-graphql/src/config.js rename to legacy/docker-graphql/src/config.js diff --git a/docker-graphql/src/endpoint.js b/legacy/docker-graphql/src/endpoint.js similarity index 100% rename from docker-graphql/src/endpoint.js rename to legacy/docker-graphql/src/endpoint.js diff --git a/docker-graphql/src/index.js b/legacy/docker-graphql/src/index.js similarity index 100% rename from docker-graphql/src/index.js rename to legacy/docker-graphql/src/index.js diff --git a/docker-graphql/src/schema/index.js b/legacy/docker-graphql/src/schema/index.js similarity index 100% rename from docker-graphql/src/schema/index.js rename to legacy/docker-graphql/src/schema/index.js diff --git a/docker-graphql/src/schema/mutations/index.js b/legacy/docker-graphql/src/schema/mutations/index.js similarity index 100% rename from docker-graphql/src/schema/mutations/index.js rename to legacy/docker-graphql/src/schema/mutations/index.js diff --git a/docker-graphql/src/schema/queries/containers.js b/legacy/docker-graphql/src/schema/queries/containers.js similarity index 100% rename from docker-graphql/src/schema/queries/containers.js rename to legacy/docker-graphql/src/schema/queries/containers.js diff --git a/docker-graphql/src/schema/queries/index.js b/legacy/docker-graphql/src/schema/queries/index.js similarity index 100% rename from docker-graphql/src/schema/queries/index.js rename to legacy/docker-graphql/src/schema/queries/index.js diff --git a/docker-graphql/src/schema/types/container.js b/legacy/docker-graphql/src/schema/types/container.js similarity index 100% rename from docker-graphql/src/schema/types/container.js rename to legacy/docker-graphql/src/schema/types/container.js diff --git a/docker-graphql/src/schema/types/dynamic-object.js b/legacy/docker-graphql/src/schema/types/dynamic-object.js similarity index 100% rename from docker-graphql/src/schema/types/dynamic-object.js rename to legacy/docker-graphql/src/schema/types/dynamic-object.js diff --git a/docker-graphql/src/schema/types/from-pascal-case.js b/legacy/docker-graphql/src/schema/types/from-pascal-case.js similarity index 100% rename from docker-graphql/src/schema/types/from-pascal-case.js rename to legacy/docker-graphql/src/schema/types/from-pascal-case.js diff --git a/docker-graphql/src/schema/types/port.js b/legacy/docker-graphql/src/schema/types/port.js similarity index 100% rename from docker-graphql/src/schema/types/port.js rename to legacy/docker-graphql/src/schema/types/port.js diff --git a/docker-graphql/static/.gitkeep b/legacy/docker-graphql/static/.gitkeep similarity index 100% rename from docker-graphql/static/.gitkeep rename to legacy/docker-graphql/static/.gitkeep diff --git a/docker-graphql/test/noop.test.js b/legacy/docker-graphql/test/noop.test.js similarity index 100% rename from docker-graphql/test/noop.test.js rename to legacy/docker-graphql/test/noop.test.js diff --git a/docker-graphql/yarn.lock b/legacy/docker-graphql/yarn.lock similarity index 100% rename from docker-graphql/yarn.lock rename to legacy/docker-graphql/yarn.lock diff --git a/docs/.gitignore b/legacy/docs/.gitignore similarity index 100% rename from docs/.gitignore rename to legacy/docs/.gitignore diff --git a/docs/Dockerfile b/legacy/docs/Dockerfile similarity index 100% rename from docs/Dockerfile rename to legacy/docs/Dockerfile diff --git a/docs/Makefile b/legacy/docs/Makefile similarity index 100% rename from docs/Makefile rename to legacy/docs/Makefile diff --git a/docs/README.rst b/legacy/docs/README.rst similarity index 100% rename from docs/README.rst rename to legacy/docs/README.rst diff --git a/docs/circle.yml b/legacy/docs/circle.yml similarity index 100% rename from docs/circle.yml rename to legacy/docs/circle.yml diff --git a/docs/source/conf.py b/legacy/docs/source/conf.py similarity index 100% rename from docs/source/conf.py rename to legacy/docs/source/conf.py diff --git a/docs/source/currentprogress.md b/legacy/docs/source/currentprogress.md similarity index 100% rename from docs/source/currentprogress.md rename to legacy/docs/source/currentprogress.md diff --git a/docs/source/deployment.md b/legacy/docs/source/deployment.md similarity index 100% rename from docs/source/deployment.md rename to legacy/docs/source/deployment.md diff --git a/docs/source/index.rst b/legacy/docs/source/index.rst similarity index 100% rename from docs/source/index.rst rename to legacy/docs/source/index.rst diff --git a/frontend-technical-prototype/.babelrc b/legacy/frontend-technical-prototype/.babelrc similarity index 100% rename from frontend-technical-prototype/.babelrc rename to legacy/frontend-technical-prototype/.babelrc diff --git a/frontend-technical-prototype/.dockerignore b/legacy/frontend-technical-prototype/.dockerignore similarity index 100% rename from frontend-technical-prototype/.dockerignore rename to legacy/frontend-technical-prototype/.dockerignore diff --git a/frontend-technical-prototype/.eslintignore b/legacy/frontend-technical-prototype/.eslintignore similarity index 100% rename from frontend-technical-prototype/.eslintignore rename to legacy/frontend-technical-prototype/.eslintignore diff --git a/frontend-technical-prototype/.eslintrc b/legacy/frontend-technical-prototype/.eslintrc similarity index 100% rename from frontend-technical-prototype/.eslintrc rename to legacy/frontend-technical-prototype/.eslintrc diff --git a/frontend-technical-prototype/.stylelintrc b/legacy/frontend-technical-prototype/.stylelintrc similarity index 100% rename from frontend-technical-prototype/.stylelintrc rename to legacy/frontend-technical-prototype/.stylelintrc diff --git a/ui/.tern-project b/legacy/frontend-technical-prototype/.tern-project similarity index 100% rename from ui/.tern-project rename to legacy/frontend-technical-prototype/.tern-project diff --git a/frontend-technical-prototype/Dockerfile b/legacy/frontend-technical-prototype/Dockerfile similarity index 100% rename from frontend-technical-prototype/Dockerfile rename to legacy/frontend-technical-prototype/Dockerfile diff --git a/frontend-technical-prototype/Makefile b/legacy/frontend-technical-prototype/Makefile similarity index 100% rename from frontend-technical-prototype/Makefile rename to legacy/frontend-technical-prototype/Makefile diff --git a/frontend-technical-prototype/README.md b/legacy/frontend-technical-prototype/README.md similarity index 100% rename from frontend-technical-prototype/README.md rename to legacy/frontend-technical-prototype/README.md diff --git a/frontend-technical-prototype/etc/containerpilot.json b/legacy/frontend-technical-prototype/etc/containerpilot.json similarity index 100% rename from frontend-technical-prototype/etc/containerpilot.json rename to legacy/frontend-technical-prototype/etc/containerpilot.json diff --git a/frontend-technical-prototype/locales/en-us.json b/legacy/frontend-technical-prototype/locales/en-us.json similarity index 100% rename from frontend-technical-prototype/locales/en-us.json rename to legacy/frontend-technical-prototype/locales/en-us.json diff --git a/frontend-technical-prototype/locales/pt-pt.json b/legacy/frontend-technical-prototype/locales/pt-pt.json similarity index 100% rename from frontend-technical-prototype/locales/pt-pt.json rename to legacy/frontend-technical-prototype/locales/pt-pt.json diff --git a/frontend-technical-prototype/package.json b/legacy/frontend-technical-prototype/package.json similarity index 100% rename from frontend-technical-prototype/package.json rename to legacy/frontend-technical-prototype/package.json diff --git a/frontend-technical-prototype/scripts/build-locales.js b/legacy/frontend-technical-prototype/scripts/build-locales.js similarity index 100% rename from frontend-technical-prototype/scripts/build-locales.js rename to legacy/frontend-technical-prototype/scripts/build-locales.js diff --git a/frontend-technical-prototype/server/index.html b/legacy/frontend-technical-prototype/server/index.html similarity index 100% rename from frontend-technical-prototype/server/index.html rename to legacy/frontend-technical-prototype/server/index.html diff --git a/frontend-technical-prototype/server/index.js b/legacy/frontend-technical-prototype/server/index.js similarity index 100% rename from frontend-technical-prototype/server/index.js rename to legacy/frontend-technical-prototype/server/index.js diff --git a/frontend-technical-prototype/src/components/article/index.js b/legacy/frontend-technical-prototype/src/components/article/index.js similarity index 100% rename from frontend-technical-prototype/src/components/article/index.js rename to legacy/frontend-technical-prototype/src/components/article/index.js diff --git a/frontend-technical-prototype/src/components/create-monitor/index.js b/legacy/frontend-technical-prototype/src/components/create-monitor/index.js similarity index 100% rename from frontend-technical-prototype/src/components/create-monitor/index.js rename to legacy/frontend-technical-prototype/src/components/create-monitor/index.js diff --git a/frontend-technical-prototype/src/components/empty/instances.js b/legacy/frontend-technical-prototype/src/components/empty/instances.js similarity index 100% rename from frontend-technical-prototype/src/components/empty/instances.js rename to legacy/frontend-technical-prototype/src/components/empty/instances.js diff --git a/frontend-technical-prototype/src/components/empty/people.js b/legacy/frontend-technical-prototype/src/components/empty/people.js similarity index 100% rename from frontend-technical-prototype/src/components/empty/people.js rename to legacy/frontend-technical-prototype/src/components/empty/people.js diff --git a/frontend-technical-prototype/src/components/empty/projects.js b/legacy/frontend-technical-prototype/src/components/empty/projects.js similarity index 100% rename from frontend-technical-prototype/src/components/empty/projects.js rename to legacy/frontend-technical-prototype/src/components/empty/projects.js diff --git a/frontend-technical-prototype/src/components/empty/services.js b/legacy/frontend-technical-prototype/src/components/empty/services.js similarity index 100% rename from frontend-technical-prototype/src/components/empty/services.js rename to legacy/frontend-technical-prototype/src/components/empty/services.js diff --git a/frontend-technical-prototype/src/components/footer/index.js b/legacy/frontend-technical-prototype/src/components/footer/index.js similarity index 100% rename from frontend-technical-prototype/src/components/footer/index.js rename to legacy/frontend-technical-prototype/src/components/footer/index.js diff --git a/frontend-technical-prototype/src/components/header/index.js b/legacy/frontend-technical-prototype/src/components/header/index.js similarity index 100% rename from frontend-technical-prototype/src/components/header/index.js rename to legacy/frontend-technical-prototype/src/components/header/index.js diff --git a/frontend-technical-prototype/src/components/instance-item/index.js b/legacy/frontend-technical-prototype/src/components/instance-item/index.js similarity index 100% rename from frontend-technical-prototype/src/components/instance-item/index.js rename to legacy/frontend-technical-prototype/src/components/instance-item/index.js diff --git a/frontend-technical-prototype/src/components/instance-list/index.js b/legacy/frontend-technical-prototype/src/components/instance-list/index.js similarity index 100% rename from frontend-technical-prototype/src/components/instance-list/index.js rename to legacy/frontend-technical-prototype/src/components/instance-list/index.js diff --git a/frontend-technical-prototype/src/components/item-metric-group/index.js b/legacy/frontend-technical-prototype/src/components/item-metric-group/index.js similarity index 100% rename from frontend-technical-prototype/src/components/item-metric-group/index.js rename to legacy/frontend-technical-prototype/src/components/item-metric-group/index.js diff --git a/frontend-technical-prototype/src/components/item-metric-group/item.js b/legacy/frontend-technical-prototype/src/components/item-metric-group/item.js similarity index 100% rename from frontend-technical-prototype/src/components/item-metric-group/item.js rename to legacy/frontend-technical-prototype/src/components/item-metric-group/item.js diff --git a/frontend-technical-prototype/src/components/layout/container.js b/legacy/frontend-technical-prototype/src/components/layout/container.js similarity index 100% rename from frontend-technical-prototype/src/components/layout/container.js rename to legacy/frontend-technical-prototype/src/components/layout/container.js diff --git a/frontend-technical-prototype/src/components/layout/index.js b/legacy/frontend-technical-prototype/src/components/layout/index.js similarity index 100% rename from frontend-technical-prototype/src/components/layout/index.js rename to legacy/frontend-technical-prototype/src/components/layout/index.js diff --git a/frontend-technical-prototype/src/components/manage-monitor/index.js b/legacy/frontend-technical-prototype/src/components/manage-monitor/index.js similarity index 100% rename from frontend-technical-prototype/src/components/manage-monitor/index.js rename to legacy/frontend-technical-prototype/src/components/manage-monitor/index.js diff --git a/frontend-technical-prototype/src/components/metric-charts/add-metrics.js b/legacy/frontend-technical-prototype/src/components/metric-charts/add-metrics.js similarity index 100% rename from frontend-technical-prototype/src/components/metric-charts/add-metrics.js rename to legacy/frontend-technical-prototype/src/components/metric-charts/add-metrics.js diff --git a/frontend-technical-prototype/src/components/metric-charts/index.js b/legacy/frontend-technical-prototype/src/components/metric-charts/index.js similarity index 100% rename from frontend-technical-prototype/src/components/metric-charts/index.js rename to legacy/frontend-technical-prototype/src/components/metric-charts/index.js diff --git a/frontend-technical-prototype/src/components/monitors/index.js b/legacy/frontend-technical-prototype/src/components/monitors/index.js similarity index 100% rename from frontend-technical-prototype/src/components/monitors/index.js rename to legacy/frontend-technical-prototype/src/components/monitors/index.js diff --git a/frontend-technical-prototype/src/components/navigation/breadcrumb.js b/legacy/frontend-technical-prototype/src/components/navigation/breadcrumb.js similarity index 100% rename from frontend-technical-prototype/src/components/navigation/breadcrumb.js rename to legacy/frontend-technical-prototype/src/components/navigation/breadcrumb.js diff --git a/frontend-technical-prototype/src/components/navigation/index.js b/legacy/frontend-technical-prototype/src/components/navigation/index.js similarity index 100% rename from frontend-technical-prototype/src/components/navigation/index.js rename to legacy/frontend-technical-prototype/src/components/navigation/index.js diff --git a/frontend-technical-prototype/src/components/navigation/menu.js b/legacy/frontend-technical-prototype/src/components/navigation/menu.js similarity index 100% rename from frontend-technical-prototype/src/components/navigation/menu.js rename to legacy/frontend-technical-prototype/src/components/navigation/menu.js diff --git a/frontend-technical-prototype/src/components/navigation/org.js b/legacy/frontend-technical-prototype/src/components/navigation/org.js similarity index 100% rename from frontend-technical-prototype/src/components/navigation/org.js rename to legacy/frontend-technical-prototype/src/components/navigation/org.js diff --git a/frontend-technical-prototype/src/components/new-project/billing.js b/legacy/frontend-technical-prototype/src/components/new-project/billing.js similarity index 100% rename from frontend-technical-prototype/src/components/new-project/billing.js rename to legacy/frontend-technical-prototype/src/components/new-project/billing.js diff --git a/frontend-technical-prototype/src/components/new-project/index.js b/legacy/frontend-technical-prototype/src/components/new-project/index.js similarity index 100% rename from frontend-technical-prototype/src/components/new-project/index.js rename to legacy/frontend-technical-prototype/src/components/new-project/index.js diff --git a/frontend-technical-prototype/src/components/new-project/new-billing.js b/legacy/frontend-technical-prototype/src/components/new-project/new-billing.js similarity index 100% rename from frontend-technical-prototype/src/components/new-project/new-billing.js rename to legacy/frontend-technical-prototype/src/components/new-project/new-billing.js diff --git a/frontend-technical-prototype/src/components/people-list/index.js b/legacy/frontend-technical-prototype/src/components/people-list/index.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/index.js rename to legacy/frontend-technical-prototype/src/components/people-list/index.js diff --git a/frontend-technical-prototype/src/components/people-list/invite.js b/legacy/frontend-technical-prototype/src/components/people-list/invite.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/invite.js rename to legacy/frontend-technical-prototype/src/components/people-list/invite.js diff --git a/frontend-technical-prototype/src/components/people-list/table/index.js b/legacy/frontend-technical-prototype/src/components/people-list/table/index.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/table/index.js rename to legacy/frontend-technical-prototype/src/components/people-list/table/index.js diff --git a/frontend-technical-prototype/src/components/people-list/table/person-delete.js b/legacy/frontend-technical-prototype/src/components/people-list/table/person-delete.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/table/person-delete.js rename to legacy/frontend-technical-prototype/src/components/people-list/table/person-delete.js diff --git a/frontend-technical-prototype/src/components/people-list/table/person-role.js b/legacy/frontend-technical-prototype/src/components/people-list/table/person-role.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/table/person-role.js rename to legacy/frontend-technical-prototype/src/components/people-list/table/person-role.js diff --git a/frontend-technical-prototype/src/components/people-list/table/person-status.js b/legacy/frontend-technical-prototype/src/components/people-list/table/person-status.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/table/person-status.js rename to legacy/frontend-technical-prototype/src/components/people-list/table/person-status.js diff --git a/frontend-technical-prototype/src/components/people-list/table/tooltip.js b/legacy/frontend-technical-prototype/src/components/people-list/table/tooltip.js similarity index 100% rename from frontend-technical-prototype/src/components/people-list/table/tooltip.js rename to legacy/frontend-technical-prototype/src/components/people-list/table/tooltip.js diff --git a/frontend-technical-prototype/src/components/service/item.js b/legacy/frontend-technical-prototype/src/components/service/item.js similarity index 100% rename from frontend-technical-prototype/src/components/service/item.js rename to legacy/frontend-technical-prototype/src/components/service/item.js diff --git a/frontend-technical-prototype/src/components/service/view-toggle.js b/legacy/frontend-technical-prototype/src/components/service/view-toggle.js similarity index 100% rename from frontend-technical-prototype/src/components/service/view-toggle.js rename to legacy/frontend-technical-prototype/src/components/service/view-toggle.js diff --git a/frontend-technical-prototype/src/components/services/tooltip.js b/legacy/frontend-technical-prototype/src/components/services/tooltip.js similarity index 100% rename from frontend-technical-prototype/src/components/services/tooltip.js rename to legacy/frontend-technical-prototype/src/components/services/tooltip.js diff --git a/frontend-technical-prototype/src/components/services/topology-filter.js b/legacy/frontend-technical-prototype/src/components/services/topology-filter.js similarity index 100% rename from frontend-technical-prototype/src/components/services/topology-filter.js rename to legacy/frontend-technical-prototype/src/components/services/topology-filter.js diff --git a/frontend-technical-prototype/src/components/services/unmanaged-instances.js b/legacy/frontend-technical-prototype/src/components/services/unmanaged-instances.js similarity index 100% rename from frontend-technical-prototype/src/components/services/unmanaged-instances.js rename to legacy/frontend-technical-prototype/src/components/services/unmanaged-instances.js diff --git a/frontend-technical-prototype/src/containers/app.js b/legacy/frontend-technical-prototype/src/containers/app.js similarity index 100% rename from frontend-technical-prototype/src/containers/app.js rename to legacy/frontend-technical-prototype/src/containers/app.js diff --git a/frontend-technical-prototype/src/containers/header/index.js b/legacy/frontend-technical-prototype/src/containers/header/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/header/index.js rename to legacy/frontend-technical-prototype/src/containers/header/index.js diff --git a/frontend-technical-prototype/src/containers/metrics/index.js b/legacy/frontend-technical-prototype/src/containers/metrics/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/metrics/index.js rename to legacy/frontend-technical-prototype/src/containers/metrics/index.js diff --git a/frontend-technical-prototype/src/containers/metrics/monitors.js b/legacy/frontend-technical-prototype/src/containers/metrics/monitors.js similarity index 100% rename from frontend-technical-prototype/src/containers/metrics/monitors.js rename to legacy/frontend-technical-prototype/src/containers/metrics/monitors.js diff --git a/frontend-technical-prototype/src/containers/navigation/breadcrumb.js b/legacy/frontend-technical-prototype/src/containers/navigation/breadcrumb.js similarity index 100% rename from frontend-technical-prototype/src/containers/navigation/breadcrumb.js rename to legacy/frontend-technical-prototype/src/containers/navigation/breadcrumb.js diff --git a/frontend-technical-prototype/src/containers/navigation/index.js b/legacy/frontend-technical-prototype/src/containers/navigation/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/navigation/index.js rename to legacy/frontend-technical-prototype/src/containers/navigation/index.js diff --git a/frontend-technical-prototype/src/containers/navigation/menu.js b/legacy/frontend-technical-prototype/src/containers/navigation/menu.js similarity index 100% rename from frontend-technical-prototype/src/containers/navigation/menu.js rename to legacy/frontend-technical-prototype/src/containers/navigation/menu.js diff --git a/frontend-technical-prototype/src/containers/navigation/org.js b/legacy/frontend-technical-prototype/src/containers/navigation/org.js similarity index 100% rename from frontend-technical-prototype/src/containers/navigation/org.js rename to legacy/frontend-technical-prototype/src/containers/navigation/org.js diff --git a/frontend-technical-prototype/src/containers/not-found/index.js b/legacy/frontend-technical-prototype/src/containers/not-found/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/not-found/index.js rename to legacy/frontend-technical-prototype/src/containers/not-found/index.js diff --git a/frontend-technical-prototype/src/containers/org/index.js b/legacy/frontend-technical-prototype/src/containers/org/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/org/index.js rename to legacy/frontend-technical-prototype/src/containers/org/index.js diff --git a/frontend-technical-prototype/src/containers/org/people.js b/legacy/frontend-technical-prototype/src/containers/org/people.js similarity index 100% rename from frontend-technical-prototype/src/containers/org/people.js rename to legacy/frontend-technical-prototype/src/containers/org/people.js diff --git a/frontend-technical-prototype/src/containers/org/settings.js b/legacy/frontend-technical-prototype/src/containers/org/settings.js similarity index 100% rename from frontend-technical-prototype/src/containers/org/settings.js rename to legacy/frontend-technical-prototype/src/containers/org/settings.js diff --git a/frontend-technical-prototype/src/containers/project/feed.js b/legacy/frontend-technical-prototype/src/containers/project/feed.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/feed.js rename to legacy/frontend-technical-prototype/src/containers/project/feed.js diff --git a/frontend-technical-prototype/src/containers/project/index.js b/legacy/frontend-technical-prototype/src/containers/project/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/index.js rename to legacy/frontend-technical-prototype/src/containers/project/index.js diff --git a/frontend-technical-prototype/src/containers/project/instances.js b/legacy/frontend-technical-prototype/src/containers/project/instances.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/instances.js rename to legacy/frontend-technical-prototype/src/containers/project/instances.js diff --git a/frontend-technical-prototype/src/containers/project/manifest.js b/legacy/frontend-technical-prototype/src/containers/project/manifest.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/manifest.js rename to legacy/frontend-technical-prototype/src/containers/project/manifest.js diff --git a/frontend-technical-prototype/src/containers/project/people.js b/legacy/frontend-technical-prototype/src/containers/project/people.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/people.js rename to legacy/frontend-technical-prototype/src/containers/project/people.js diff --git a/frontend-technical-prototype/src/containers/project/rollback.js b/legacy/frontend-technical-prototype/src/containers/project/rollback.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/rollback.js rename to legacy/frontend-technical-prototype/src/containers/project/rollback.js diff --git a/frontend-technical-prototype/src/containers/project/settings.js b/legacy/frontend-technical-prototype/src/containers/project/settings.js similarity index 100% rename from frontend-technical-prototype/src/containers/project/settings.js rename to legacy/frontend-technical-prototype/src/containers/project/settings.js diff --git a/frontend-technical-prototype/src/containers/projects/billing.js b/legacy/frontend-technical-prototype/src/containers/projects/billing.js similarity index 100% rename from frontend-technical-prototype/src/containers/projects/billing.js rename to legacy/frontend-technical-prototype/src/containers/projects/billing.js diff --git a/frontend-technical-prototype/src/containers/projects/index.js b/legacy/frontend-technical-prototype/src/containers/projects/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/projects/index.js rename to legacy/frontend-technical-prototype/src/containers/projects/index.js diff --git a/frontend-technical-prototype/src/containers/projects/list.js b/legacy/frontend-technical-prototype/src/containers/projects/list.js similarity index 100% rename from frontend-technical-prototype/src/containers/projects/list.js rename to legacy/frontend-technical-prototype/src/containers/projects/list.js diff --git a/frontend-technical-prototype/src/containers/projects/new-billing.js b/legacy/frontend-technical-prototype/src/containers/projects/new-billing.js similarity index 100% rename from frontend-technical-prototype/src/containers/projects/new-billing.js rename to legacy/frontend-technical-prototype/src/containers/projects/new-billing.js diff --git a/frontend-technical-prototype/src/containers/projects/new-project.js b/legacy/frontend-technical-prototype/src/containers/projects/new-project.js similarity index 100% rename from frontend-technical-prototype/src/containers/projects/new-project.js rename to legacy/frontend-technical-prototype/src/containers/projects/new-project.js diff --git a/frontend-technical-prototype/src/containers/service/activity-feed.js b/legacy/frontend-technical-prototype/src/containers/service/activity-feed.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/activity-feed.js rename to legacy/frontend-technical-prototype/src/containers/service/activity-feed.js diff --git a/frontend-technical-prototype/src/containers/service/firewall.js b/legacy/frontend-technical-prototype/src/containers/service/firewall.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/firewall.js rename to legacy/frontend-technical-prototype/src/containers/service/firewall.js diff --git a/frontend-technical-prototype/src/containers/service/index.js b/legacy/frontend-technical-prototype/src/containers/service/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/index.js rename to legacy/frontend-technical-prototype/src/containers/service/index.js diff --git a/frontend-technical-prototype/src/containers/service/instances.js b/legacy/frontend-technical-prototype/src/containers/service/instances.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/instances.js rename to legacy/frontend-technical-prototype/src/containers/service/instances.js diff --git a/frontend-technical-prototype/src/containers/service/metrics.js b/legacy/frontend-technical-prototype/src/containers/service/metrics.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/metrics.js rename to legacy/frontend-technical-prototype/src/containers/service/metrics.js diff --git a/frontend-technical-prototype/src/containers/service/networks.js b/legacy/frontend-technical-prototype/src/containers/service/networks.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/networks.js rename to legacy/frontend-technical-prototype/src/containers/service/networks.js diff --git a/frontend-technical-prototype/src/containers/service/service-manifest.js b/legacy/frontend-technical-prototype/src/containers/service/service-manifest.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/service-manifest.js rename to legacy/frontend-technical-prototype/src/containers/service/service-manifest.js diff --git a/frontend-technical-prototype/src/containers/service/summary.js b/legacy/frontend-technical-prototype/src/containers/service/summary.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/summary.js rename to legacy/frontend-technical-prototype/src/containers/service/summary.js diff --git a/frontend-technical-prototype/src/containers/service/tags-metadata.js b/legacy/frontend-technical-prototype/src/containers/service/tags-metadata.js similarity index 100% rename from frontend-technical-prototype/src/containers/service/tags-metadata.js rename to legacy/frontend-technical-prototype/src/containers/service/tags-metadata.js diff --git a/frontend-technical-prototype/src/containers/services/index.js b/legacy/frontend-technical-prototype/src/containers/services/index.js similarity index 100% rename from frontend-technical-prototype/src/containers/services/index.js rename to legacy/frontend-technical-prototype/src/containers/services/index.js diff --git a/frontend-technical-prototype/src/containers/services/list.js b/legacy/frontend-technical-prototype/src/containers/services/list.js similarity index 100% rename from frontend-technical-prototype/src/containers/services/list.js rename to legacy/frontend-technical-prototype/src/containers/services/list.js diff --git a/frontend-technical-prototype/src/containers/services/topology.js b/legacy/frontend-technical-prototype/src/containers/services/topology.js similarity index 100% rename from frontend-technical-prototype/src/containers/services/topology.js rename to legacy/frontend-technical-prototype/src/containers/services/topology.js diff --git a/frontend-technical-prototype/src/containers/services/view.js b/legacy/frontend-technical-prototype/src/containers/services/view.js similarity index 100% rename from frontend-technical-prototype/src/containers/services/view.js rename to legacy/frontend-technical-prototype/src/containers/services/view.js diff --git a/frontend-technical-prototype/src/dataset-leak.json b/legacy/frontend-technical-prototype/src/dataset-leak.json similarity index 100% rename from frontend-technical-prototype/src/dataset-leak.json rename to legacy/frontend-technical-prototype/src/dataset-leak.json diff --git a/frontend-technical-prototype/src/dataset-normal.json b/legacy/frontend-technical-prototype/src/dataset-normal.json similarity index 100% rename from frontend-technical-prototype/src/dataset-normal.json rename to legacy/frontend-technical-prototype/src/dataset-normal.json diff --git a/frontend-technical-prototype/src/datasets.json b/legacy/frontend-technical-prototype/src/datasets.json similarity index 100% rename from frontend-technical-prototype/src/datasets.json rename to legacy/frontend-technical-prototype/src/datasets.json diff --git a/frontend-technical-prototype/src/index.js b/legacy/frontend-technical-prototype/src/index.js similarity index 100% rename from frontend-technical-prototype/src/index.js rename to legacy/frontend-technical-prototype/src/index.js diff --git a/frontend-technical-prototype/src/intl.js b/legacy/frontend-technical-prototype/src/intl.js similarity index 100% rename from frontend-technical-prototype/src/intl.js rename to legacy/frontend-technical-prototype/src/intl.js diff --git a/frontend-technical-prototype/src/mock-states/index.js b/legacy/frontend-technical-prototype/src/mock-states/index.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/index.js rename to legacy/frontend-technical-prototype/src/mock-states/index.js diff --git a/frontend-technical-prototype/src/mock-states/shared/account.js b/legacy/frontend-technical-prototype/src/mock-states/shared/account.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/account.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/account.js diff --git a/frontend-technical-prototype/src/mock-states/shared/datacenters.js b/legacy/frontend-technical-prototype/src/mock-states/shared/datacenters.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/datacenters.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/datacenters.js diff --git a/frontend-technical-prototype/src/mock-states/shared/index.js b/legacy/frontend-technical-prototype/src/mock-states/shared/index.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/index.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/index.js diff --git a/frontend-technical-prototype/src/mock-states/shared/instances.js b/legacy/frontend-technical-prototype/src/mock-states/shared/instances.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/instances.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/instances.js diff --git a/frontend-technical-prototype/src/mock-states/shared/members.js b/legacy/frontend-technical-prototype/src/mock-states/shared/members.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/members.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/members.js diff --git a/frontend-technical-prototype/src/mock-states/shared/metrics.js b/legacy/frontend-technical-prototype/src/mock-states/shared/metrics.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/metrics.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/metrics.js diff --git a/frontend-technical-prototype/src/mock-states/shared/orgs.js b/legacy/frontend-technical-prototype/src/mock-states/shared/orgs.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/orgs.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/orgs.js diff --git a/frontend-technical-prototype/src/mock-states/shared/projects.js b/legacy/frontend-technical-prototype/src/mock-states/shared/projects.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/projects.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/projects.js diff --git a/frontend-technical-prototype/src/mock-states/shared/services-complex.js b/legacy/frontend-technical-prototype/src/mock-states/shared/services-complex.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/services-complex.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/services-complex.js diff --git a/frontend-technical-prototype/src/mock-states/shared/services-wp.js b/legacy/frontend-technical-prototype/src/mock-states/shared/services-wp.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/services-wp.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/services-wp.js diff --git a/frontend-technical-prototype/src/mock-states/shared/services.js b/legacy/frontend-technical-prototype/src/mock-states/shared/services.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/shared/services.js rename to legacy/frontend-technical-prototype/src/mock-states/shared/services.js diff --git a/frontend-technical-prototype/src/mock-states/testing.js b/legacy/frontend-technical-prototype/src/mock-states/testing.js similarity index 100% rename from frontend-technical-prototype/src/mock-states/testing.js rename to legacy/frontend-technical-prototype/src/mock-states/testing.js diff --git a/frontend-technical-prototype/src/perf-profiler/index.js b/legacy/frontend-technical-prototype/src/perf-profiler/index.js similarity index 100% rename from frontend-technical-prototype/src/perf-profiler/index.js rename to legacy/frontend-technical-prototype/src/perf-profiler/index.js diff --git a/frontend-technical-prototype/src/prop-types.js b/legacy/frontend-technical-prototype/src/prop-types.js similarity index 100% rename from frontend-technical-prototype/src/prop-types.js rename to legacy/frontend-technical-prototype/src/prop-types.js diff --git a/frontend-technical-prototype/src/resources/logo.svg b/legacy/frontend-technical-prototype/src/resources/logo.svg similarity index 100% rename from frontend-technical-prototype/src/resources/logo.svg rename to legacy/frontend-technical-prototype/src/resources/logo.svg diff --git a/frontend-technical-prototype/src/resources/triton_logo_dark.png b/legacy/frontend-technical-prototype/src/resources/triton_logo_dark.png similarity index 100% rename from frontend-technical-prototype/src/resources/triton_logo_dark.png rename to legacy/frontend-technical-prototype/src/resources/triton_logo_dark.png diff --git a/frontend-technical-prototype/src/routing.js b/legacy/frontend-technical-prototype/src/routing.js similarity index 100% rename from frontend-technical-prototype/src/routing.js rename to legacy/frontend-technical-prototype/src/routing.js diff --git a/frontend-technical-prototype/src/state/actions.js b/legacy/frontend-technical-prototype/src/state/actions.js similarity index 100% rename from frontend-technical-prototype/src/state/actions.js rename to legacy/frontend-technical-prototype/src/state/actions.js diff --git a/frontend-technical-prototype/src/state/reducers/account.js b/legacy/frontend-technical-prototype/src/state/reducers/account.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/account.js rename to legacy/frontend-technical-prototype/src/state/reducers/account.js diff --git a/frontend-technical-prototype/src/state/reducers/common.js b/legacy/frontend-technical-prototype/src/state/reducers/common.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/common.js rename to legacy/frontend-technical-prototype/src/state/reducers/common.js diff --git a/frontend-technical-prototype/src/state/reducers/index.js b/legacy/frontend-technical-prototype/src/state/reducers/index.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/index.js rename to legacy/frontend-technical-prototype/src/state/reducers/index.js diff --git a/frontend-technical-prototype/src/state/reducers/instances.js b/legacy/frontend-technical-prototype/src/state/reducers/instances.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/instances.js rename to legacy/frontend-technical-prototype/src/state/reducers/instances.js diff --git a/frontend-technical-prototype/src/state/reducers/intl.js b/legacy/frontend-technical-prototype/src/state/reducers/intl.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/intl.js rename to legacy/frontend-technical-prototype/src/state/reducers/intl.js diff --git a/frontend-technical-prototype/src/state/reducers/members.js b/legacy/frontend-technical-prototype/src/state/reducers/members.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/members.js rename to legacy/frontend-technical-prototype/src/state/reducers/members.js diff --git a/frontend-technical-prototype/src/state/reducers/metrics.js b/legacy/frontend-technical-prototype/src/state/reducers/metrics.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/metrics.js rename to legacy/frontend-technical-prototype/src/state/reducers/metrics.js diff --git a/frontend-technical-prototype/src/state/reducers/monitors.js b/legacy/frontend-technical-prototype/src/state/reducers/monitors.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/monitors.js rename to legacy/frontend-technical-prototype/src/state/reducers/monitors.js diff --git a/frontend-technical-prototype/src/state/reducers/orgs.js b/legacy/frontend-technical-prototype/src/state/reducers/orgs.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/orgs.js rename to legacy/frontend-technical-prototype/src/state/reducers/orgs.js diff --git a/frontend-technical-prototype/src/state/reducers/projects.js b/legacy/frontend-technical-prototype/src/state/reducers/projects.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/projects.js rename to legacy/frontend-technical-prototype/src/state/reducers/projects.js diff --git a/frontend-technical-prototype/src/state/reducers/services.js b/legacy/frontend-technical-prototype/src/state/reducers/services.js similarity index 100% rename from frontend-technical-prototype/src/state/reducers/services.js rename to legacy/frontend-technical-prototype/src/state/reducers/services.js diff --git a/frontend-technical-prototype/src/state/selectors.js b/legacy/frontend-technical-prototype/src/state/selectors.js similarity index 100% rename from frontend-technical-prototype/src/state/selectors.js rename to legacy/frontend-technical-prototype/src/state/selectors.js diff --git a/frontend-technical-prototype/src/state/store.js b/legacy/frontend-technical-prototype/src/state/store.js similarity index 100% rename from frontend-technical-prototype/src/state/store.js rename to legacy/frontend-technical-prototype/src/state/store.js diff --git a/frontend-technical-prototype/src/state/thunks/app.js b/legacy/frontend-technical-prototype/src/state/thunks/app.js similarity index 100% rename from frontend-technical-prototype/src/state/thunks/app.js rename to legacy/frontend-technical-prototype/src/state/thunks/app.js diff --git a/frontend-technical-prototype/src/state/thunks/index.js b/legacy/frontend-technical-prototype/src/state/thunks/index.js similarity index 100% rename from frontend-technical-prototype/src/state/thunks/index.js rename to legacy/frontend-technical-prototype/src/state/thunks/index.js diff --git a/frontend-technical-prototype/src/state/thunks/metrics.js b/legacy/frontend-technical-prototype/src/state/thunks/metrics.js similarity index 100% rename from frontend-technical-prototype/src/state/thunks/metrics.js rename to legacy/frontend-technical-prototype/src/state/thunks/metrics.js diff --git a/frontend-technical-prototype/src/utils/duration-interval.js b/legacy/frontend-technical-prototype/src/utils/duration-interval.js similarity index 100% rename from frontend-technical-prototype/src/utils/duration-interval.js rename to legacy/frontend-technical-prototype/src/utils/duration-interval.js diff --git a/frontend-technical-prototype/src/utils/form/normalize.js b/legacy/frontend-technical-prototype/src/utils/form/normalize.js similarity index 100% rename from frontend-technical-prototype/src/utils/form/normalize.js rename to legacy/frontend-technical-prototype/src/utils/form/normalize.js diff --git a/frontend-technical-prototype/src/utils/index.js b/legacy/frontend-technical-prototype/src/utils/index.js similarity index 100% rename from frontend-technical-prototype/src/utils/index.js rename to legacy/frontend-technical-prototype/src/utils/index.js diff --git a/frontend-technical-prototype/src/utils/two-hour-metric-datasets.js b/legacy/frontend-technical-prototype/src/utils/two-hour-metric-datasets.js similarity index 100% rename from frontend-technical-prototype/src/utils/two-hour-metric-datasets.js rename to legacy/frontend-technical-prototype/src/utils/two-hour-metric-datasets.js diff --git a/frontend-technical-prototype/static/.gitignore b/legacy/frontend-technical-prototype/static/.gitignore similarity index 100% rename from frontend-technical-prototype/static/.gitignore rename to legacy/frontend-technical-prototype/static/.gitignore diff --git a/frontend-technical-prototype/static/locales/.gitignore b/legacy/frontend-technical-prototype/static/locales/.gitignore similarity index 100% rename from frontend-technical-prototype/static/locales/.gitignore rename to legacy/frontend-technical-prototype/static/locales/.gitignore diff --git a/frontend-technical-prototype/test/_hook.js b/legacy/frontend-technical-prototype/test/_hook.js similarity index 100% rename from frontend-technical-prototype/test/_hook.js rename to legacy/frontend-technical-prototype/test/_hook.js diff --git a/frontend-technical-prototype/test/actions/index.js b/legacy/frontend-technical-prototype/test/actions/index.js similarity index 100% rename from frontend-technical-prototype/test/actions/index.js rename to legacy/frontend-technical-prototype/test/actions/index.js diff --git a/frontend-technical-prototype/test/components/index.js b/legacy/frontend-technical-prototype/test/components/index.js similarity index 100% rename from frontend-technical-prototype/test/components/index.js rename to legacy/frontend-technical-prototype/test/components/index.js diff --git a/frontend-technical-prototype/test/components/projects.js b/legacy/frontend-technical-prototype/test/components/projects.js similarity index 100% rename from frontend-technical-prototype/test/components/projects.js rename to legacy/frontend-technical-prototype/test/components/projects.js diff --git a/frontend-technical-prototype/test/components/service.js b/legacy/frontend-technical-prototype/test/components/service.js similarity index 100% rename from frontend-technical-prototype/test/components/service.js rename to legacy/frontend-technical-prototype/test/components/service.js diff --git a/frontend-technical-prototype/test/components/services.js b/legacy/frontend-technical-prototype/test/components/services.js similarity index 100% rename from frontend-technical-prototype/test/components/services.js rename to legacy/frontend-technical-prototype/test/components/services.js diff --git a/frontend-technical-prototype/test/helpers/create.js b/legacy/frontend-technical-prototype/test/helpers/create.js similarity index 100% rename from frontend-technical-prototype/test/helpers/create.js rename to legacy/frontend-technical-prototype/test/helpers/create.js diff --git a/frontend-technical-prototype/test/reducers/app.js b/legacy/frontend-technical-prototype/test/reducers/app.js similarity index 100% rename from frontend-technical-prototype/test/reducers/app.js rename to legacy/frontend-technical-prototype/test/reducers/app.js diff --git a/frontend-technical-prototype/test/selectors/index.js b/legacy/frontend-technical-prototype/test/selectors/index.js similarity index 100% rename from frontend-technical-prototype/test/selectors/index.js rename to legacy/frontend-technical-prototype/test/selectors/index.js diff --git a/frontend-technical-prototype/test/selectors/metric-by-interval-selector.js b/legacy/frontend-technical-prototype/test/selectors/metric-by-interval-selector.js similarity index 100% rename from frontend-technical-prototype/test/selectors/metric-by-interval-selector.js rename to legacy/frontend-technical-prototype/test/selectors/metric-by-interval-selector.js diff --git a/frontend-technical-prototype/test/selectors/metric-by-interval-selector.json b/legacy/frontend-technical-prototype/test/selectors/metric-by-interval-selector.json similarity index 100% rename from frontend-technical-prototype/test/selectors/metric-by-interval-selector.json rename to legacy/frontend-technical-prototype/test/selectors/metric-by-interval-selector.json diff --git a/frontend-technical-prototype/webpack/base.js b/legacy/frontend-technical-prototype/webpack/base.js similarity index 100% rename from frontend-technical-prototype/webpack/base.js rename to legacy/frontend-technical-prototype/webpack/base.js diff --git a/frontend-technical-prototype/webpack/development.js b/legacy/frontend-technical-prototype/webpack/development.js similarity index 100% rename from frontend-technical-prototype/webpack/development.js rename to legacy/frontend-technical-prototype/webpack/development.js diff --git a/frontend-technical-prototype/webpack/index.js b/legacy/frontend-technical-prototype/webpack/index.js similarity index 100% rename from frontend-technical-prototype/webpack/index.js rename to legacy/frontend-technical-prototype/webpack/index.js diff --git a/frontend-technical-prototype/webpack/paths.js b/legacy/frontend-technical-prototype/webpack/paths.js similarity index 100% rename from frontend-technical-prototype/webpack/paths.js rename to legacy/frontend-technical-prototype/webpack/paths.js diff --git a/frontend-technical-prototype/webpack/plugins.js b/legacy/frontend-technical-prototype/webpack/plugins.js similarity index 100% rename from frontend-technical-prototype/webpack/plugins.js rename to legacy/frontend-technical-prototype/webpack/plugins.js diff --git a/frontend-technical-prototype/webpack/production.js b/legacy/frontend-technical-prototype/webpack/production.js similarity index 100% rename from frontend-technical-prototype/webpack/production.js rename to legacy/frontend-technical-prototype/webpack/production.js diff --git a/frontend-technical-prototype/webpack/test.js b/legacy/frontend-technical-prototype/webpack/test.js similarity index 100% rename from frontend-technical-prototype/webpack/test.js rename to legacy/frontend-technical-prototype/webpack/test.js diff --git a/frontend-technical-prototype/yarn.lock b/legacy/frontend-technical-prototype/yarn.lock similarity index 100% rename from frontend-technical-prototype/yarn.lock rename to legacy/frontend-technical-prototype/yarn.lock diff --git a/frontend/.gitignore b/legacy/frontend/.gitignore similarity index 100% rename from frontend/.gitignore rename to legacy/frontend/.gitignore diff --git a/frontend/README.md b/legacy/frontend/README.md similarity index 100% rename from frontend/README.md rename to legacy/frontend/README.md diff --git a/frontend/package.json b/legacy/frontend/package.json similarity index 100% rename from frontend/package.json rename to legacy/frontend/package.json diff --git a/frontend/public/favicon.ico b/legacy/frontend/public/favicon.ico similarity index 100% rename from frontend/public/favicon.ico rename to legacy/frontend/public/favicon.ico diff --git a/frontend/public/index.html b/legacy/frontend/public/index.html similarity index 100% rename from frontend/public/index.html rename to legacy/frontend/public/index.html diff --git a/frontend/scripts/postinstall.js b/legacy/frontend/scripts/postinstall.js similarity index 100% rename from frontend/scripts/postinstall.js rename to legacy/frontend/scripts/postinstall.js diff --git a/frontend/scripts/webpack.config.dev.js b/legacy/frontend/scripts/webpack.config.dev.js similarity index 100% rename from frontend/scripts/webpack.config.dev.js rename to legacy/frontend/scripts/webpack.config.dev.js diff --git a/frontend/src/app.js b/legacy/frontend/src/app.js similarity index 100% rename from frontend/src/app.js rename to legacy/frontend/src/app.js diff --git a/frontend/src/app.test.js b/legacy/frontend/src/app.test.js similarity index 100% rename from frontend/src/app.test.js rename to legacy/frontend/src/app.test.js diff --git a/frontend/src/assets/triton_logo.png b/legacy/frontend/src/assets/triton_logo.png similarity index 100% rename from frontend/src/assets/triton_logo.png rename to legacy/frontend/src/assets/triton_logo.png diff --git a/frontend/src/assets/triton_logo_dark.png b/legacy/frontend/src/assets/triton_logo_dark.png similarity index 100% rename from frontend/src/assets/triton_logo_dark.png rename to legacy/frontend/src/assets/triton_logo_dark.png diff --git a/frontend/src/components/deployment-groups/empty.js b/legacy/frontend/src/components/deployment-groups/empty.js similarity index 100% rename from frontend/src/components/deployment-groups/empty.js rename to legacy/frontend/src/components/deployment-groups/empty.js diff --git a/frontend/src/components/deployment-groups/index.js b/legacy/frontend/src/components/deployment-groups/index.js similarity index 100% rename from frontend/src/components/deployment-groups/index.js rename to legacy/frontend/src/components/deployment-groups/index.js diff --git a/frontend/src/components/instances/empty.js b/legacy/frontend/src/components/instances/empty.js similarity index 100% rename from frontend/src/components/instances/empty.js rename to legacy/frontend/src/components/instances/empty.js diff --git a/frontend/src/components/instances/index.js b/legacy/frontend/src/components/instances/index.js similarity index 100% rename from frontend/src/components/instances/index.js rename to legacy/frontend/src/components/instances/index.js diff --git a/frontend/src/components/instances/list-item.js b/legacy/frontend/src/components/instances/list-item.js similarity index 100% rename from frontend/src/components/instances/list-item.js rename to legacy/frontend/src/components/instances/list-item.js diff --git a/frontend/src/components/layout/container.js b/legacy/frontend/src/components/layout/container.js similarity index 100% rename from frontend/src/components/layout/container.js rename to legacy/frontend/src/components/layout/container.js diff --git a/frontend/src/components/layout/index.js b/legacy/frontend/src/components/layout/index.js similarity index 100% rename from frontend/src/components/layout/index.js rename to legacy/frontend/src/components/layout/index.js diff --git a/frontend/src/components/messaging/error.js b/legacy/frontend/src/components/messaging/error.js similarity index 100% rename from frontend/src/components/messaging/error.js rename to legacy/frontend/src/components/messaging/error.js diff --git a/frontend/src/components/messaging/index.js b/legacy/frontend/src/components/messaging/index.js similarity index 100% rename from frontend/src/components/messaging/index.js rename to legacy/frontend/src/components/messaging/index.js diff --git a/frontend/src/components/messaging/loader.js b/legacy/frontend/src/components/messaging/loader.js similarity index 100% rename from frontend/src/components/messaging/loader.js rename to legacy/frontend/src/components/messaging/loader.js diff --git a/frontend/src/components/navigation/breadcrumb.js b/legacy/frontend/src/components/navigation/breadcrumb.js similarity index 100% rename from frontend/src/components/navigation/breadcrumb.js rename to legacy/frontend/src/components/navigation/breadcrumb.js diff --git a/frontend/src/components/navigation/header.js b/legacy/frontend/src/components/navigation/header.js similarity index 100% rename from frontend/src/components/navigation/header.js rename to legacy/frontend/src/components/navigation/header.js diff --git a/frontend/src/components/navigation/index.js b/legacy/frontend/src/components/navigation/index.js similarity index 100% rename from frontend/src/components/navigation/index.js rename to legacy/frontend/src/components/navigation/index.js diff --git a/frontend/src/components/navigation/menu.js b/legacy/frontend/src/components/navigation/menu.js similarity index 100% rename from frontend/src/components/navigation/menu.js rename to legacy/frontend/src/components/navigation/menu.js diff --git a/frontend/src/components/services/empty.js b/legacy/frontend/src/components/services/empty.js similarity index 100% rename from frontend/src/components/services/empty.js rename to legacy/frontend/src/components/services/empty.js diff --git a/frontend/src/components/services/index.js b/legacy/frontend/src/components/services/index.js similarity index 100% rename from frontend/src/components/services/index.js rename to legacy/frontend/src/components/services/index.js diff --git a/frontend/src/components/services/list-item.js b/legacy/frontend/src/components/services/list-item.js similarity index 100% rename from frontend/src/components/services/list-item.js rename to legacy/frontend/src/components/services/list-item.js diff --git a/frontend/src/components/services/tooltip.js b/legacy/frontend/src/components/services/tooltip.js similarity index 100% rename from frontend/src/components/services/tooltip.js rename to legacy/frontend/src/components/services/tooltip.js diff --git a/frontend/src/containers/deployment-groups/index.js b/legacy/frontend/src/containers/deployment-groups/index.js similarity index 100% rename from frontend/src/containers/deployment-groups/index.js rename to legacy/frontend/src/containers/deployment-groups/index.js diff --git a/frontend/src/containers/deployment-groups/list.js b/legacy/frontend/src/containers/deployment-groups/list.js similarity index 100% rename from frontend/src/containers/deployment-groups/list.js rename to legacy/frontend/src/containers/deployment-groups/list.js diff --git a/frontend/src/containers/instances/index.js b/legacy/frontend/src/containers/instances/index.js similarity index 100% rename from frontend/src/containers/instances/index.js rename to legacy/frontend/src/containers/instances/index.js diff --git a/frontend/src/containers/instances/list.js b/legacy/frontend/src/containers/instances/list.js similarity index 100% rename from frontend/src/containers/instances/list.js rename to legacy/frontend/src/containers/instances/list.js diff --git a/frontend/src/containers/navigation/breadcrumb.js b/legacy/frontend/src/containers/navigation/breadcrumb.js similarity index 100% rename from frontend/src/containers/navigation/breadcrumb.js rename to legacy/frontend/src/containers/navigation/breadcrumb.js diff --git a/frontend/src/containers/navigation/header.js b/legacy/frontend/src/containers/navigation/header.js similarity index 100% rename from frontend/src/containers/navigation/header.js rename to legacy/frontend/src/containers/navigation/header.js diff --git a/frontend/src/containers/navigation/index.js b/legacy/frontend/src/containers/navigation/index.js similarity index 100% rename from frontend/src/containers/navigation/index.js rename to legacy/frontend/src/containers/navigation/index.js diff --git a/frontend/src/containers/navigation/menu.js b/legacy/frontend/src/containers/navigation/menu.js similarity index 100% rename from frontend/src/containers/navigation/menu.js rename to legacy/frontend/src/containers/navigation/menu.js diff --git a/frontend/src/containers/service/index.js b/legacy/frontend/src/containers/service/index.js similarity index 100% rename from frontend/src/containers/service/index.js rename to legacy/frontend/src/containers/service/index.js diff --git a/frontend/src/containers/services/index.js b/legacy/frontend/src/containers/services/index.js similarity index 100% rename from frontend/src/containers/services/index.js rename to legacy/frontend/src/containers/services/index.js diff --git a/frontend/src/containers/services/list.js b/legacy/frontend/src/containers/services/list.js similarity index 100% rename from frontend/src/containers/services/list.js rename to legacy/frontend/src/containers/services/list.js diff --git a/frontend/src/containers/services/menu.js b/legacy/frontend/src/containers/services/menu.js similarity index 100% rename from frontend/src/containers/services/menu.js rename to legacy/frontend/src/containers/services/menu.js diff --git a/frontend/src/containers/services/topology.js b/legacy/frontend/src/containers/services/topology.js similarity index 100% rename from frontend/src/containers/services/topology.js rename to legacy/frontend/src/containers/services/topology.js diff --git a/frontend/src/graphql/DeploymentGroupInfo.gql b/legacy/frontend/src/graphql/DeploymentGroupInfo.gql similarity index 100% rename from frontend/src/graphql/DeploymentGroupInfo.gql rename to legacy/frontend/src/graphql/DeploymentGroupInfo.gql diff --git a/frontend/src/graphql/DeploymentGroups.gql b/legacy/frontend/src/graphql/DeploymentGroups.gql similarity index 100% rename from frontend/src/graphql/DeploymentGroups.gql rename to legacy/frontend/src/graphql/DeploymentGroups.gql diff --git a/frontend/src/graphql/Instances.gql b/legacy/frontend/src/graphql/Instances.gql similarity index 100% rename from frontend/src/graphql/Instances.gql rename to legacy/frontend/src/graphql/Instances.gql diff --git a/frontend/src/graphql/Portal.gql b/legacy/frontend/src/graphql/Portal.gql similarity index 100% rename from frontend/src/graphql/Portal.gql rename to legacy/frontend/src/graphql/Portal.gql diff --git a/frontend/src/graphql/ServiceInfo.gql b/legacy/frontend/src/graphql/ServiceInfo.gql similarity index 100% rename from frontend/src/graphql/ServiceInfo.gql rename to legacy/frontend/src/graphql/ServiceInfo.gql diff --git a/frontend/src/graphql/Services.gql b/legacy/frontend/src/graphql/Services.gql similarity index 100% rename from frontend/src/graphql/Services.gql rename to legacy/frontend/src/graphql/Services.gql diff --git a/frontend/src/graphql/ServicesTopology.gql b/legacy/frontend/src/graphql/ServicesTopology.gql similarity index 100% rename from frontend/src/graphql/ServicesTopology.gql rename to legacy/frontend/src/graphql/ServicesTopology.gql diff --git a/frontend/src/graphql/SingleMetrics.gql b/legacy/frontend/src/graphql/SingleMetrics.gql similarity index 100% rename from frontend/src/graphql/SingleMetrics.gql rename to legacy/frontend/src/graphql/SingleMetrics.gql diff --git a/frontend/src/index.js b/legacy/frontend/src/index.js similarity index 100% rename from frontend/src/index.js rename to legacy/frontend/src/index.js diff --git a/frontend/src/router.js b/legacy/frontend/src/router.js similarity index 100% rename from frontend/src/router.js rename to legacy/frontend/src/router.js diff --git a/frontend/src/state/actions.js b/legacy/frontend/src/state/actions.js similarity index 100% rename from frontend/src/state/actions.js rename to legacy/frontend/src/state/actions.js diff --git a/frontend/src/state/reducers/index.js b/legacy/frontend/src/state/reducers/index.js similarity index 100% rename from frontend/src/state/reducers/index.js rename to legacy/frontend/src/state/reducers/index.js diff --git a/frontend/src/state/reducers/ui.js b/legacy/frontend/src/state/reducers/ui.js similarity index 100% rename from frontend/src/state/reducers/ui.js rename to legacy/frontend/src/state/reducers/ui.js diff --git a/frontend/src/state/selectors.js b/legacy/frontend/src/state/selectors.js similarity index 100% rename from frontend/src/state/selectors.js rename to legacy/frontend/src/state/selectors.js diff --git a/frontend/src/state/state.js b/legacy/frontend/src/state/state.js similarity index 100% rename from frontend/src/state/state.js rename to legacy/frontend/src/state/state.js diff --git a/frontend/src/state/store.js b/legacy/frontend/src/state/store.js similarity index 100% rename from frontend/src/state/store.js rename to legacy/frontend/src/state/store.js diff --git a/frontend/yarn.lock b/legacy/frontend/yarn.lock similarity index 100% rename from frontend/yarn.lock rename to legacy/frontend/yarn.lock diff --git a/licence.js b/legacy/licence.js similarity index 100% rename from licence.js rename to legacy/licence.js diff --git a/local-compose.yml b/legacy/local-compose.yml similarity index 100% rename from local-compose.yml rename to legacy/local-compose.yml diff --git a/nginx/Dockerfile b/legacy/nginx/Dockerfile similarity index 100% rename from nginx/Dockerfile rename to legacy/nginx/Dockerfile diff --git a/nginx/Makefile b/legacy/nginx/Makefile similarity index 100% rename from nginx/Makefile rename to legacy/nginx/Makefile diff --git a/nginx/etc/containerpilot.json b/legacy/nginx/etc/containerpilot.json similarity index 100% rename from nginx/etc/containerpilot.json rename to legacy/nginx/etc/containerpilot.json diff --git a/nginx/etc/nginx/nginx.conf.ctmpl b/legacy/nginx/etc/nginx/nginx.conf.ctmpl similarity index 100% rename from nginx/etc/nginx/nginx.conf.ctmpl rename to legacy/nginx/etc/nginx/nginx.conf.ctmpl diff --git a/legacy/package.json b/legacy/package.json new file mode 100644 index 00000000..3bc266e4 --- /dev/null +++ b/legacy/package.json @@ -0,0 +1,29 @@ +{ + "name": "joyent-portal", + "version": "1.0.0", + "private": true, + "license": "MPL-2.0", + "main": "index.js", + "homepage": "https://github.com/yldio/joyent-portal#readme", + "repository": { + "type": "git", + "url": "git+https://github.com/yldio/joyent-portal.git" + }, + "bugs": { + "url": "https://github.com/yldio/joyent-portal/issues" + }, + "scripts": { + "test": "make test" + }, + "dependencies": { + "eslint-plugin-babel": "^4.0.1", + "husky": "^0.13.1", + "license-to-fail": "^2.2.0", + "lodash.findindex": "^4.6.0", + "querystring": "^0.2.0", + "style-loader": "^0.13.1" + }, + "devDependencies": { + "tap-xunit": "^1.7.0" + } +} diff --git a/portal-api/.gitignore b/legacy/portal-api/.gitignore similarity index 100% rename from portal-api/.gitignore rename to legacy/portal-api/.gitignore diff --git a/portal-api/.travis.yml b/legacy/portal-api/.travis.yml similarity index 100% rename from portal-api/.travis.yml rename to legacy/portal-api/.travis.yml diff --git a/legacy/portal-api/LICENSE b/legacy/portal-api/LICENSE new file mode 100644 index 00000000..be2cc4df --- /dev/null +++ b/legacy/portal-api/LICENSE @@ -0,0 +1,362 @@ +Mozilla Public License, version 2.0 + +1. Definitions + +1.1. "Contributor" + + means each individual or legal entity that creates, contributes to the + creation of, or owns Covered Software. + +1.2. "Contributor Version" + + means the combination of the Contributions of others (if any) used by a + Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + + means Source Code Form to which the initial Contributor has attached the + notice in Exhibit A, the Executable Form of such Source Code Form, and + Modifications of such Source Code Form, in each case including portions + thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + a. that the initial Contributor has attached the notice described in + Exhibit B to the Covered Software; or + + b. that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the terms of + a Secondary License. + +1.6. "Executable Form" + + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + + means a work that combines Covered Software with other material, in a + separate file or files, that is not Covered Software. + +1.8. "License" + + means this document. + +1.9. "Licensable" + + means having the right to grant, to the maximum extent possible, whether + at the time of the initial grant or subsequently, any and all of the + rights conveyed by this License. + +1.10. "Modifications" + + means any of the following: + + a. any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered Software; or + + b. any new file in Source Code Form that contains any Covered Software. + +1.11. "Patent Claims" of a Contributor + + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the License, + by the making, using, selling, offering for sale, having made, import, + or transfer of either its Contributions or its Contributor Version. + +1.12. "Secondary License" + + means either the GNU General Public License, Version 2.0, the GNU Lesser + General Public License, Version 2.1, the GNU Affero General Public + License, Version 3.0, or any later versions of those licenses. + +1.13. "Source Code Form" + + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that controls, is + controlled by, or is under common control with You. For purposes of this + definition, "control" means (a) the power, direct or indirect, to cause + the direction or management of such entity, whether by contract or + otherwise, or (b) ownership of more than fifty percent (50%) of the + outstanding shares or beneficial ownership of such entity. + + +2. License Grants and Conditions + +2.1. Grants + + Each Contributor hereby grants You a world-wide, royalty-free, + non-exclusive license: + + a. under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + + b. under Patent Claims of such Contributor to make, use, sell, offer for + sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + + The licenses granted in Section 2.1 with respect to any Contribution + become effective for each Contribution on the date the Contributor first + distributes such Contribution. + +2.3. Limitations on Grant Scope + + The licenses granted in this Section 2 are the only rights granted under + this License. No additional rights or licenses will be implied from the + distribution or licensing of Covered Software under this License. + Notwithstanding Section 2.1(b) above, no patent license is granted by a + Contributor: + + a. for any code that a Contributor has removed from Covered Software; or + + b. for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + + c. under Patent Claims infringed by Covered Software in the absence of + its Contributions. + + This License does not grant any rights in the trademarks, service marks, + or logos of any Contributor (except as may be necessary to comply with + the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + + No Contributor makes additional grants as a result of Your choice to + distribute the Covered Software under a subsequent version of this + License (see Section 10.2) or under the terms of a Secondary License (if + permitted under the terms of Section 3.3). + +2.5. Representation + + Each Contributor represents that the Contributor believes its + Contributions are its original creation(s) or it has sufficient rights to + grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + + This License is not intended to limit any rights You have under + applicable copyright doctrines of fair use, fair dealing, or other + equivalents. + +2.7. Conditions + + Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in + Section 2.1. + + +3. Responsibilities + +3.1. Distribution of Source Form + + All distribution of Covered Software in Source Code Form, including any + Modifications that You create or to which You contribute, must be under + the terms of this License. You must inform recipients that the Source + Code Form of the Covered Software is governed by the terms of this + License, and how they can obtain a copy of this License. You may not + attempt to alter or restrict the recipients' rights in the Source Code + Form. + +3.2. Distribution of Executable Form + + If You distribute Covered Software in Executable Form then: + + a. such Covered Software must also be made available in Source Code Form, + as described in Section 3.1, and You must inform recipients of the + Executable Form how they can obtain a copy of such Source Code Form by + reasonable means in a timely manner, at a charge no more than the cost + of distribution to the recipient; and + + b. You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter the + recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + + You may create and distribute a Larger Work under terms of Your choice, + provided that You also comply with the requirements of this License for + the Covered Software. If the Larger Work is a combination of Covered + Software with a work governed by one or more Secondary Licenses, and the + Covered Software is not Incompatible With Secondary Licenses, this + License permits You to additionally distribute such Covered Software + under the terms of such Secondary License(s), so that the recipient of + the Larger Work may, at their option, further distribute the Covered + Software under the terms of either this License or such Secondary + License(s). + +3.4. Notices + + You may not remove or alter the substance of any license notices + (including copyright notices, patent notices, disclaimers of warranty, or + limitations of liability) contained within the Source Code Form of the + Covered Software, except that You may alter any license notices to the + extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + + You may choose to offer, and to charge a fee for, warranty, support, + indemnity or liability obligations to one or more recipients of Covered + Software. However, You may do so only on Your own behalf, and not on + behalf of any Contributor. You must make it absolutely clear that any + such warranty, support, indemnity, or liability obligation is offered by + You alone, and You hereby agree to indemnify every Contributor for any + liability incurred by such Contributor as a result of warranty, support, + indemnity or liability terms You offer. You may include additional + disclaimers of warranty and limitations of liability specific to any + jurisdiction. + +4. Inability to Comply Due to Statute or Regulation + + If it is impossible for You to comply with any of the terms of this License + with respect to some or all of the Covered Software due to statute, + judicial order, or regulation then You must: (a) comply with the terms of + this License to the maximum extent possible; and (b) describe the + limitations and the code they affect. Such description must be placed in a + text file included with all distributions of the Covered Software under + this License. Except to the extent prohibited by statute or regulation, + such description must be sufficiently detailed for a recipient of ordinary + skill to be able to understand it. + +5. Termination + +5.1. The rights granted under this License will terminate automatically if You + fail to comply with any of its terms. However, if You become compliant, + then the rights granted under this License from a particular Contributor + are reinstated (a) provisionally, unless and until such Contributor + explicitly and finally terminates Your grants, and (b) on an ongoing + basis, if such Contributor fails to notify You of the non-compliance by + some reasonable means prior to 60 days after You have come back into + compliance. Moreover, Your grants from a particular Contributor are + reinstated on an ongoing basis if such Contributor notifies You of the + non-compliance by some reasonable means, this is the first time You have + received notice of non-compliance with this License from such + Contributor, and You become compliant prior to 30 days after Your receipt + of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent + infringement claim (excluding declaratory judgment actions, + counter-claims, and cross-claims) alleging that a Contributor Version + directly or indirectly infringes any patent, then the rights granted to + You by any and all Contributors for the Covered Software under Section + 2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user + license agreements (excluding distributors and resellers) which have been + validly granted by You or Your distributors under this License prior to + termination shall survive termination. + +6. Disclaimer of Warranty + + Covered Software is provided under this License on an "as is" basis, + without warranty of any kind, either expressed, implied, or statutory, + including, without limitation, warranties that the Covered Software is free + of defects, merchantable, fit for a particular purpose or non-infringing. + The entire risk as to the quality and performance of the Covered Software + is with You. Should any Covered Software prove defective in any respect, + You (not any Contributor) assume the cost of any necessary servicing, + repair, or correction. This disclaimer of warranty constitutes an essential + part of this License. No use of any Covered Software is authorized under + this License except under this disclaimer. + +7. Limitation of Liability + + Under no circumstances and under no legal theory, whether tort (including + negligence), contract, or otherwise, shall any Contributor, or anyone who + distributes Covered Software as permitted above, be liable to You for any + direct, indirect, special, incidental, or consequential damages of any + character including, without limitation, damages for lost profits, loss of + goodwill, work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses, even if such party shall have been + informed of the possibility of such damages. This limitation of liability + shall not apply to liability for death or personal injury resulting from + such party's negligence to the extent applicable law prohibits such + limitation. Some jurisdictions do not allow the exclusion or limitation of + incidental or consequential damages, so this exclusion and limitation may + not apply to You. + +8. Litigation + + Any litigation relating to this License may be brought only in the courts + of a jurisdiction where the defendant maintains its principal place of + business and such litigation shall be governed by laws of that + jurisdiction, without reference to its conflict-of-law provisions. Nothing + in this Section shall prevent a party's ability to bring cross-claims or + counter-claims. + +9. Miscellaneous + + This License represents the complete agreement concerning the subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. Any law or regulation which provides that + the language of a contract shall be construed against the drafter shall not + be used to construe this License against a Contributor. + + +10. Versions of the License + +10.1. New Versions + + Mozilla Foundation is the license steward. Except as provided in Section + 10.3, no one other than the license steward has the right to modify or + publish new versions of this License. Each version will be given a + distinguishing version number. + +10.2. Effect of New Versions + + You may distribute the Covered Software under the terms of the version + of the License under which You originally received the Covered Software, + or under the terms of any subsequent version published by the license + steward. + +10.3. Modified Versions + + If you create software not governed by this License, and you want to + create a new license for such software, you may create and use a + modified version of this License if you rename the license and remove + any references to the name of the license steward (except to note that + such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary + Licenses If You choose to distribute Source Code Form that is + Incompatible With Secondary Licenses under the terms of this version of + the License, the notice described in Exhibit B of this License must be + attached. + +Exhibit A - Source Code Form License Notice + + This Source Code Form is subject to the + terms of the Mozilla Public License, v. + 2.0. If a copy of the MPL was not + distributed with this file, You can + obtain one at + http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular file, +then You may include the notice in a location (such as a LICENSE file in a +relevant directory) where a recipient would be likely to look for such a +notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice + + This Source Code Form is "Incompatible + With Secondary Licenses", as defined by + the Mozilla Public License, v. 2.0. diff --git a/portal-api/README.md b/legacy/portal-api/README.md similarity index 100% rename from portal-api/README.md rename to legacy/portal-api/README.md diff --git a/portal-api/bootstrap-data.js b/legacy/portal-api/bootstrap-data.js similarity index 100% rename from portal-api/bootstrap-data.js rename to legacy/portal-api/bootstrap-data.js diff --git a/portal-api/example.js b/legacy/portal-api/example.js similarity index 100% rename from portal-api/example.js rename to legacy/portal-api/example.js diff --git a/portal-api/lib/handlers.js b/legacy/portal-api/lib/handlers.js similarity index 100% rename from portal-api/lib/handlers.js rename to legacy/portal-api/lib/handlers.js diff --git a/portal-api/lib/index.js b/legacy/portal-api/lib/index.js similarity index 100% rename from portal-api/lib/index.js rename to legacy/portal-api/lib/index.js diff --git a/portal-api/lib/models/examples.js b/legacy/portal-api/lib/models/examples.js similarity index 100% rename from portal-api/lib/models/examples.js rename to legacy/portal-api/lib/models/examples.js diff --git a/portal-api/lib/models/graphql.js b/legacy/portal-api/lib/models/graphql.js similarity index 100% rename from portal-api/lib/models/graphql.js rename to legacy/portal-api/lib/models/graphql.js diff --git a/portal-api/lib/models/index.js b/legacy/portal-api/lib/models/index.js similarity index 100% rename from portal-api/lib/models/index.js rename to legacy/portal-api/lib/models/index.js diff --git a/portal-api/lib/models/schema.gql b/legacy/portal-api/lib/models/schema.gql similarity index 100% rename from portal-api/lib/models/schema.gql rename to legacy/portal-api/lib/models/schema.gql diff --git a/portal-api/lib/routes.js b/legacy/portal-api/lib/routes.js similarity index 100% rename from portal-api/lib/routes.js rename to legacy/portal-api/lib/routes.js diff --git a/portal-api/package.json b/legacy/portal-api/package.json similarity index 100% rename from portal-api/package.json rename to legacy/portal-api/package.json diff --git a/portal-api/test/index.js b/legacy/portal-api/test/index.js similarity index 100% rename from portal-api/test/index.js rename to legacy/portal-api/test/index.js diff --git a/portal-data/.gitignore b/legacy/portal-data/.gitignore similarity index 100% rename from portal-data/.gitignore rename to legacy/portal-data/.gitignore diff --git a/portal-data/README.md b/legacy/portal-data/README.md similarity index 100% rename from portal-data/README.md rename to legacy/portal-data/README.md diff --git a/portal-data/lib/index.js b/legacy/portal-data/lib/index.js similarity index 100% rename from portal-data/lib/index.js rename to legacy/portal-data/lib/index.js diff --git a/portal-data/package.json b/legacy/portal-data/package.json similarity index 100% rename from portal-data/package.json rename to legacy/portal-data/package.json diff --git a/portal-data/test/index.js b/legacy/portal-data/test/index.js similarity index 100% rename from portal-data/test/index.js rename to legacy/portal-data/test/index.js diff --git a/spikes/architecture/d3-revamp/README.md b/legacy/spikes/architecture/d3-revamp/README.md similarity index 100% rename from spikes/architecture/d3-revamp/README.md rename to legacy/spikes/architecture/d3-revamp/README.md diff --git a/spikes/architecture/d3-revamp/index.html b/legacy/spikes/architecture/d3-revamp/index.html similarity index 100% rename from spikes/architecture/d3-revamp/index.html rename to legacy/spikes/architecture/d3-revamp/index.html diff --git a/spikes/architecture/d3-revamp/services.json b/legacy/spikes/architecture/d3-revamp/services.json similarity index 100% rename from spikes/architecture/d3-revamp/services.json rename to legacy/spikes/architecture/d3-revamp/services.json diff --git a/spikes/architecture/d3/README.md b/legacy/spikes/architecture/d3/README.md similarity index 100% rename from spikes/architecture/d3/README.md rename to legacy/spikes/architecture/d3/README.md diff --git a/spikes/architecture/d3/index.html b/legacy/spikes/architecture/d3/index.html similarity index 100% rename from spikes/architecture/d3/index.html rename to legacy/spikes/architecture/d3/index.html diff --git a/spikes/architecture/d3/services.json b/legacy/spikes/architecture/d3/services.json similarity index 100% rename from spikes/architecture/d3/services.json rename to legacy/spikes/architecture/d3/services.json diff --git a/spikes/architecture/react-d3/.babelrc b/legacy/spikes/architecture/react-d3/.babelrc similarity index 100% rename from spikes/architecture/react-d3/.babelrc rename to legacy/spikes/architecture/react-d3/.babelrc diff --git a/spikes/architecture/react-d3/.eslintignore b/legacy/spikes/architecture/react-d3/.eslintignore similarity index 100% rename from spikes/architecture/react-d3/.eslintignore rename to legacy/spikes/architecture/react-d3/.eslintignore diff --git a/spikes/architecture/react-d3/.eslintrc b/legacy/spikes/architecture/react-d3/.eslintrc similarity index 100% rename from spikes/architecture/react-d3/.eslintrc rename to legacy/spikes/architecture/react-d3/.eslintrc diff --git a/spikes/architecture/react-d3/.gitignore b/legacy/spikes/architecture/react-d3/.gitignore similarity index 100% rename from spikes/architecture/react-d3/.gitignore rename to legacy/spikes/architecture/react-d3/.gitignore diff --git a/spikes/architecture/react-d3/client/graph.js b/legacy/spikes/architecture/react-d3/client/graph.js similarity index 100% rename from spikes/architecture/react-d3/client/graph.js rename to legacy/spikes/architecture/react-d3/client/graph.js diff --git a/spikes/architecture/react-d3/client/index.js b/legacy/spikes/architecture/react-d3/client/index.js similarity index 100% rename from spikes/architecture/react-d3/client/index.js rename to legacy/spikes/architecture/react-d3/client/index.js diff --git a/spikes/architecture/react-d3/client/links.js b/legacy/spikes/architecture/react-d3/client/links.js similarity index 100% rename from spikes/architecture/react-d3/client/links.js rename to legacy/spikes/architecture/react-d3/client/links.js diff --git a/spikes/architecture/react-d3/client/nodes.js b/legacy/spikes/architecture/react-d3/client/nodes.js similarity index 100% rename from spikes/architecture/react-d3/client/nodes.js rename to legacy/spikes/architecture/react-d3/client/nodes.js diff --git a/spikes/architecture/react-d3/client/root.js b/legacy/spikes/architecture/react-d3/client/root.js similarity index 100% rename from spikes/architecture/react-d3/client/root.js rename to legacy/spikes/architecture/react-d3/client/root.js diff --git a/spikes/architecture/react-d3/client/services.json b/legacy/spikes/architecture/react-d3/client/services.json similarity index 100% rename from spikes/architecture/react-d3/client/services.json rename to legacy/spikes/architecture/react-d3/client/services.json diff --git a/spikes/architecture/react-d3/client/store.js b/legacy/spikes/architecture/react-d3/client/store.js similarity index 100% rename from spikes/architecture/react-d3/client/store.js rename to legacy/spikes/architecture/react-d3/client/store.js diff --git a/spikes/architecture/react-d3/package.json b/legacy/spikes/architecture/react-d3/package.json similarity index 100% rename from spikes/architecture/react-d3/package.json rename to legacy/spikes/architecture/react-d3/package.json diff --git a/spikes/architecture/react-d3/readme.md b/legacy/spikes/architecture/react-d3/readme.md similarity index 100% rename from spikes/architecture/react-d3/readme.md rename to legacy/spikes/architecture/react-d3/readme.md diff --git a/spikes/architecture/react-d3/server/index.js b/legacy/spikes/architecture/react-d3/server/index.js similarity index 100% rename from spikes/architecture/react-d3/server/index.js rename to legacy/spikes/architecture/react-d3/server/index.js diff --git a/spikes/architecture/react-d3/server/plugins.js b/legacy/spikes/architecture/react-d3/server/plugins.js similarity index 100% rename from spikes/architecture/react-d3/server/plugins.js rename to legacy/spikes/architecture/react-d3/server/plugins.js diff --git a/spikes/architecture/react-d3/server/routes/home.js b/legacy/spikes/architecture/react-d3/server/routes/home.js similarity index 100% rename from spikes/architecture/react-d3/server/routes/home.js rename to legacy/spikes/architecture/react-d3/server/routes/home.js diff --git a/spikes/architecture/react-d3/server/routes/static.js b/legacy/spikes/architecture/react-d3/server/routes/static.js similarity index 100% rename from spikes/architecture/react-d3/server/routes/static.js rename to legacy/spikes/architecture/react-d3/server/routes/static.js diff --git a/spikes/architecture/react-d3/server/routes/version.js b/legacy/spikes/architecture/react-d3/server/routes/version.js similarity index 100% rename from spikes/architecture/react-d3/server/routes/version.js rename to legacy/spikes/architecture/react-d3/server/routes/version.js diff --git a/spikes/architecture/react-d3/static/index.html b/legacy/spikes/architecture/react-d3/static/index.html similarity index 100% rename from spikes/architecture/react-d3/static/index.html rename to legacy/spikes/architecture/react-d3/static/index.html diff --git a/spikes/architecture/react-d3/webpack.config.js b/legacy/spikes/architecture/react-d3/webpack.config.js similarity index 100% rename from spikes/architecture/react-d3/webpack.config.js rename to legacy/spikes/architecture/react-d3/webpack.config.js diff --git a/spikes/architecture/react-d3/yarn.lock b/legacy/spikes/architecture/react-d3/yarn.lock similarity index 100% rename from spikes/architecture/react-d3/yarn.lock rename to legacy/spikes/architecture/react-d3/yarn.lock diff --git a/spikes/architecture/sigmajs/README.md b/legacy/spikes/architecture/sigmajs/README.md similarity index 100% rename from spikes/architecture/sigmajs/README.md rename to legacy/spikes/architecture/sigmajs/README.md diff --git a/spikes/architecture/sigmajs/index.html b/legacy/spikes/architecture/sigmajs/index.html similarity index 100% rename from spikes/architecture/sigmajs/index.html rename to legacy/spikes/architecture/sigmajs/index.html diff --git a/spikes/architecture/sigmajs/services.json b/legacy/spikes/architecture/sigmajs/services.json similarity index 100% rename from spikes/architecture/sigmajs/services.json rename to legacy/spikes/architecture/sigmajs/services.json diff --git a/spikes/architecture/sigmajs/vendor/README.md b/legacy/spikes/architecture/sigmajs/vendor/README.md similarity index 100% rename from spikes/architecture/sigmajs/vendor/README.md rename to legacy/spikes/architecture/sigmajs/vendor/README.md diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.exporters.svg.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.exporters.svg.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.exporters.svg.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.exporters.svg.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.forceAtlas2.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.forceAtlas2.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.layout.forceAtlas2.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.forceAtlas2.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.noverlap.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.noverlap.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.layout.noverlap.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.layout.noverlap.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.neo4j.cypher.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.neo4j.cypher.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.neo4j.cypher.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.neo4j.cypher.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.gexf.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.gexf.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.gexf.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.gexf.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.json.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.json.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.json.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.parsers.json.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.pathfinding.astar.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.pathfinding.astar.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.pathfinding.astar.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.pathfinding.astar.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.animate.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.animate.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.animate.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.animate.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.dragNodes.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.dragNodes.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.dragNodes.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.dragNodes.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.filter.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.filter.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.filter.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.filter.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.neighborhoods.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.neighborhoods.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.neighborhoods.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.neighborhoods.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.relativeSize.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.relativeSize.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.relativeSize.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.plugins.relativeSize.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customEdgeShapes.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customEdgeShapes.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customEdgeShapes.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customEdgeShapes.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customShapes.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customShapes.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customShapes.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.customShapes.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeDots.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeDots.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeDots.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeDots.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeLabels.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeLabels.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeLabels.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.edgeLabels.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.parallelEdges.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.parallelEdges.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.parallelEdges.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.parallelEdges.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.snapshot.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.snapshot.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.snapshot.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.renderers.snapshot.min.js diff --git a/spikes/architecture/sigmajs/vendor/plugins/sigma.statistics.HITS.min.js b/legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.statistics.HITS.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/plugins/sigma.statistics.HITS.min.js rename to legacy/spikes/architecture/sigmajs/vendor/plugins/sigma.statistics.HITS.min.js diff --git a/spikes/architecture/sigmajs/vendor/sigma.js b/legacy/spikes/architecture/sigmajs/vendor/sigma.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/sigma.js rename to legacy/spikes/architecture/sigmajs/vendor/sigma.js diff --git a/spikes/architecture/sigmajs/vendor/sigma.min.js b/legacy/spikes/architecture/sigmajs/vendor/sigma.min.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/sigma.min.js rename to legacy/spikes/architecture/sigmajs/vendor/sigma.min.js diff --git a/spikes/architecture/sigmajs/vendor/sigma.require.js b/legacy/spikes/architecture/sigmajs/vendor/sigma.require.js similarity index 100% rename from spikes/architecture/sigmajs/vendor/sigma.require.js rename to legacy/spikes/architecture/sigmajs/vendor/sigma.require.js diff --git a/spikes/auth/bell/.gitignore b/legacy/spikes/auth/bell/.gitignore similarity index 100% rename from spikes/auth/bell/.gitignore rename to legacy/spikes/auth/bell/.gitignore diff --git a/spikes/auth/bell/package.json b/legacy/spikes/auth/bell/package.json similarity index 100% rename from spikes/auth/bell/package.json rename to legacy/spikes/auth/bell/package.json diff --git a/spikes/auth/bell/readme.md b/legacy/spikes/auth/bell/readme.md similarity index 100% rename from spikes/auth/bell/readme.md rename to legacy/spikes/auth/bell/readme.md diff --git a/spikes/auth/bell/src/index.js b/legacy/spikes/auth/bell/src/index.js similarity index 100% rename from spikes/auth/bell/src/index.js rename to legacy/spikes/auth/bell/src/index.js diff --git a/spikes/auth/bell/src/plugins.js b/legacy/spikes/auth/bell/src/plugins.js similarity index 100% rename from spikes/auth/bell/src/plugins.js rename to legacy/spikes/auth/bell/src/plugins.js diff --git a/spikes/auth/bell/src/routes/auth.js b/legacy/spikes/auth/bell/src/routes/auth.js similarity index 100% rename from spikes/auth/bell/src/routes/auth.js rename to legacy/spikes/auth/bell/src/routes/auth.js diff --git a/spikes/auth/bell/src/routes/home.js b/legacy/spikes/auth/bell/src/routes/home.js similarity index 100% rename from spikes/auth/bell/src/routes/home.js rename to legacy/spikes/auth/bell/src/routes/home.js diff --git a/spikes/auth/bell/src/routes/version.js b/legacy/spikes/auth/bell/src/routes/version.js similarity index 100% rename from spikes/auth/bell/src/routes/version.js rename to legacy/spikes/auth/bell/src/routes/version.js diff --git a/spikes/auth/bell/src/strategies.json b/legacy/spikes/auth/bell/src/strategies.json similarity index 100% rename from spikes/auth/bell/src/strategies.json rename to legacy/spikes/auth/bell/src/strategies.json diff --git a/spikes/auth/bell/static/index.html b/legacy/spikes/auth/bell/static/index.html similarity index 100% rename from spikes/auth/bell/static/index.html rename to legacy/spikes/auth/bell/static/index.html diff --git a/spikes/compose-demo/.eslintrc b/legacy/spikes/compose-demo/.eslintrc similarity index 100% rename from spikes/compose-demo/.eslintrc rename to legacy/spikes/compose-demo/.eslintrc diff --git a/spikes/compose-demo/components/article.js b/legacy/spikes/compose-demo/components/article.js similarity index 100% rename from spikes/compose-demo/components/article.js rename to legacy/spikes/compose-demo/components/article.js diff --git a/spikes/compose-demo/components/editor.js b/legacy/spikes/compose-demo/components/editor.js similarity index 100% rename from spikes/compose-demo/components/editor.js rename to legacy/spikes/compose-demo/components/editor.js diff --git a/spikes/compose-demo/components/layout.js b/legacy/spikes/compose-demo/components/layout.js similarity index 100% rename from spikes/compose-demo/components/layout.js rename to legacy/spikes/compose-demo/components/layout.js diff --git a/spikes/compose-demo/package.json b/legacy/spikes/compose-demo/package.json similarity index 100% rename from spikes/compose-demo/package.json rename to legacy/spikes/compose-demo/package.json diff --git a/spikes/compose-demo/pages/index.js b/legacy/spikes/compose-demo/pages/index.js similarity index 100% rename from spikes/compose-demo/pages/index.js rename to legacy/spikes/compose-demo/pages/index.js diff --git a/spikes/compose-demo/readme-md b/legacy/spikes/compose-demo/readme-md similarity index 100% rename from spikes/compose-demo/readme-md rename to legacy/spikes/compose-demo/readme-md diff --git a/spikes/compose-demo/server.js b/legacy/spikes/compose-demo/server.js similarity index 100% rename from spikes/compose-demo/server.js rename to legacy/spikes/compose-demo/server.js diff --git a/spikes/compose-demo/static/codemirror.css b/legacy/spikes/compose-demo/static/codemirror.css similarity index 100% rename from spikes/compose-demo/static/codemirror.css rename to legacy/spikes/compose-demo/static/codemirror.css diff --git a/spikes/compose-demo/static/eclipse.css b/legacy/spikes/compose-demo/static/eclipse.css similarity index 100% rename from spikes/compose-demo/static/eclipse.css rename to legacy/spikes/compose-demo/static/eclipse.css diff --git a/spikes/compose-demo/static/foldgutter.css b/legacy/spikes/compose-demo/static/foldgutter.css similarity index 100% rename from spikes/compose-demo/static/foldgutter.css rename to legacy/spikes/compose-demo/static/foldgutter.css diff --git a/spikes/compose-demo/static/nprogress.css b/legacy/spikes/compose-demo/static/nprogress.css similarity index 100% rename from spikes/compose-demo/static/nprogress.css rename to legacy/spikes/compose-demo/static/nprogress.css diff --git a/spikes/compose-demo/vendor/docker-compose-client/.babelrc b/legacy/spikes/compose-demo/vendor/docker-compose-client/.babelrc similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/.babelrc rename to legacy/spikes/compose-demo/vendor/docker-compose-client/.babelrc diff --git a/spikes/compose-demo/vendor/docker-compose-client/.eslintrc b/legacy/spikes/compose-demo/vendor/docker-compose-client/.eslintrc similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/.eslintrc rename to legacy/spikes/compose-demo/vendor/docker-compose-client/.eslintrc diff --git a/spikes/compose-demo/vendor/docker-compose-client/.flowconfig b/legacy/spikes/compose-demo/vendor/docker-compose-client/.flowconfig similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/.flowconfig rename to legacy/spikes/compose-demo/vendor/docker-compose-client/.flowconfig diff --git a/spikes/compose-demo/vendor/docker-compose-client/dist/index.es.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/dist/index.es.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/dist/index.es.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/dist/index.es.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/dist/index.umd.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/dist/index.umd.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/dist/index.umd.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/dist/index.umd.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/apr-awaitify_vx.x.x.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/ava_vx.x.x.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/ava_vx.x.x.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/ava_vx.x.x.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/ava_vx.x.x.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/babelrc-rollup_vx.x.x.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/rollup-plugin-babel_vx.x.x.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/flow-typed/npm/zerorpc_vx.x.x.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/package.json b/legacy/spikes/compose-demo/vendor/docker-compose-client/package.json similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/package.json rename to legacy/spikes/compose-demo/vendor/docker-compose-client/package.json diff --git a/spikes/compose-demo/vendor/docker-compose-client/readme.md b/legacy/spikes/compose-demo/vendor/docker-compose-client/readme.md similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/readme.md rename to legacy/spikes/compose-demo/vendor/docker-compose-client/readme.md diff --git a/spikes/compose-demo/vendor/docker-compose-client/scripts/rollup.config.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/scripts/rollup.config.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/scripts/rollup.config.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/scripts/rollup.config.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/src/index.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/src/index.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/src/index.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/src/index.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/src/types.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/src/types.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/src/types.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/src/types.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/test/index.js b/legacy/spikes/compose-demo/vendor/docker-compose-client/test/index.js similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/test/index.js rename to legacy/spikes/compose-demo/vendor/docker-compose-client/test/index.js diff --git a/spikes/compose-demo/vendor/docker-compose-client/yarn.lock b/legacy/spikes/compose-demo/vendor/docker-compose-client/yarn.lock similarity index 100% rename from spikes/compose-demo/vendor/docker-compose-client/yarn.lock rename to legacy/spikes/compose-demo/vendor/docker-compose-client/yarn.lock diff --git a/spikes/compose-demo/yarn.lock b/legacy/spikes/compose-demo/yarn.lock similarity index 100% rename from spikes/compose-demo/yarn.lock rename to legacy/spikes/compose-demo/yarn.lock diff --git a/spikes/css/aphrodite/.flooignore b/legacy/spikes/css/aphrodite/.flooignore similarity index 100% rename from spikes/css/aphrodite/.flooignore rename to legacy/spikes/css/aphrodite/.flooignore diff --git a/spikes/css/aphrodite/.gitignore b/legacy/spikes/css/aphrodite/.gitignore similarity index 100% rename from spikes/css/aphrodite/.gitignore rename to legacy/spikes/css/aphrodite/.gitignore diff --git a/spikes/css/aphrodite/.storybook/config.js b/legacy/spikes/css/aphrodite/.storybook/config.js similarity index 100% rename from spikes/css/aphrodite/.storybook/config.js rename to legacy/spikes/css/aphrodite/.storybook/config.js diff --git a/spikes/css/aphrodite/package.json b/legacy/spikes/css/aphrodite/package.json similarity index 100% rename from spikes/css/aphrodite/package.json rename to legacy/spikes/css/aphrodite/package.json diff --git a/spikes/css/aphrodite/public/index.html b/legacy/spikes/css/aphrodite/public/index.html similarity index 100% rename from spikes/css/aphrodite/public/index.html rename to legacy/spikes/css/aphrodite/public/index.html diff --git a/spikes/css/aphrodite/src/App.js b/legacy/spikes/css/aphrodite/src/App.js similarity index 100% rename from spikes/css/aphrodite/src/App.js rename to legacy/spikes/css/aphrodite/src/App.js diff --git a/spikes/css/aphrodite/src/button.js b/legacy/spikes/css/aphrodite/src/button.js similarity index 100% rename from spikes/css/aphrodite/src/button.js rename to legacy/spikes/css/aphrodite/src/button.js diff --git a/spikes/css/aphrodite/src/globals/h3.js b/legacy/spikes/css/aphrodite/src/globals/h3.js similarity index 100% rename from spikes/css/aphrodite/src/globals/h3.js rename to legacy/spikes/css/aphrodite/src/globals/h3.js diff --git a/spikes/css/aphrodite/src/index.js b/legacy/spikes/css/aphrodite/src/index.js similarity index 100% rename from spikes/css/aphrodite/src/index.js rename to legacy/spikes/css/aphrodite/src/index.js diff --git a/spikes/css/aphrodite/src/mixins/hover-transition.js b/legacy/spikes/css/aphrodite/src/mixins/hover-transition.js similarity index 100% rename from spikes/css/aphrodite/src/mixins/hover-transition.js rename to legacy/spikes/css/aphrodite/src/mixins/hover-transition.js diff --git a/spikes/css/aphrodite/src/stories/index.js b/legacy/spikes/css/aphrodite/src/stories/index.js similarity index 100% rename from spikes/css/aphrodite/src/stories/index.js rename to legacy/spikes/css/aphrodite/src/stories/index.js diff --git a/spikes/css/aphrodite/src/variables.json b/legacy/spikes/css/aphrodite/src/variables.json similarity index 100% rename from spikes/css/aphrodite/src/variables.json rename to legacy/spikes/css/aphrodite/src/variables.json diff --git a/spikes/css/css-modules/.babelrc b/legacy/spikes/css/css-modules/.babelrc similarity index 100% rename from spikes/css/css-modules/.babelrc rename to legacy/spikes/css/css-modules/.babelrc diff --git a/spikes/css/css-modules/.eslintignore b/legacy/spikes/css/css-modules/.eslintignore similarity index 100% rename from spikes/css/css-modules/.eslintignore rename to legacy/spikes/css/css-modules/.eslintignore diff --git a/spikes/css/css-modules/.eslintrc b/legacy/spikes/css/css-modules/.eslintrc similarity index 100% rename from spikes/css/css-modules/.eslintrc rename to legacy/spikes/css/css-modules/.eslintrc diff --git a/spikes/css/css-modules/.gitignore b/legacy/spikes/css/css-modules/.gitignore similarity index 100% rename from spikes/css/css-modules/.gitignore rename to legacy/spikes/css/css-modules/.gitignore diff --git a/spikes/css/css-modules/.storybook/config.js b/legacy/spikes/css/css-modules/.storybook/config.js similarity index 100% rename from spikes/css/css-modules/.storybook/config.js rename to legacy/spikes/css/css-modules/.storybook/config.js diff --git a/spikes/css/css-modules/package.json b/legacy/spikes/css/css-modules/package.json similarity index 100% rename from spikes/css/css-modules/package.json rename to legacy/spikes/css/css-modules/package.json diff --git a/spikes/css/css-modules/readme.md b/legacy/spikes/css/css-modules/readme.md similarity index 100% rename from spikes/css/css-modules/readme.md rename to legacy/spikes/css/css-modules/readme.md diff --git a/spikes/css/css-modules/src/components/base/index.css b/legacy/spikes/css/css-modules/src/components/base/index.css similarity index 100% rename from spikes/css/css-modules/src/components/base/index.css rename to legacy/spikes/css/css-modules/src/components/base/index.css diff --git a/spikes/css/css-modules/src/components/base/index.js b/legacy/spikes/css/css-modules/src/components/base/index.js similarity index 100% rename from spikes/css/css-modules/src/components/base/index.js rename to legacy/spikes/css/css-modules/src/components/base/index.js diff --git a/spikes/css/css-modules/src/components/base/variables.css b/legacy/spikes/css/css-modules/src/components/base/variables.css similarity index 100% rename from spikes/css/css-modules/src/components/base/variables.css rename to legacy/spikes/css/css-modules/src/components/base/variables.css diff --git a/spikes/css/css-modules/src/components/button/index.js b/legacy/spikes/css/css-modules/src/components/button/index.js similarity index 100% rename from spikes/css/css-modules/src/components/button/index.js rename to legacy/spikes/css/css-modules/src/components/button/index.js diff --git a/spikes/css/css-modules/src/components/container/index.css b/legacy/spikes/css/css-modules/src/components/container/index.css similarity index 100% rename from spikes/css/css-modules/src/components/container/index.css rename to legacy/spikes/css/css-modules/src/components/container/index.css diff --git a/spikes/css/css-modules/src/components/container/index.js b/legacy/spikes/css/css-modules/src/components/container/index.js similarity index 100% rename from spikes/css/css-modules/src/components/container/index.js rename to legacy/spikes/css/css-modules/src/components/container/index.js diff --git a/spikes/css/css-modules/src/components/index.js b/legacy/spikes/css/css-modules/src/components/index.js similarity index 100% rename from spikes/css/css-modules/src/components/index.js rename to legacy/spikes/css/css-modules/src/components/index.js diff --git a/spikes/css/css-modules/src/index.js b/legacy/spikes/css/css-modules/src/index.js similarity index 100% rename from spikes/css/css-modules/src/index.js rename to legacy/spikes/css/css-modules/src/index.js diff --git a/spikes/css/css-modules/src/showcase/index.js b/legacy/spikes/css/css-modules/src/showcase/index.js similarity index 100% rename from spikes/css/css-modules/src/showcase/index.js rename to legacy/spikes/css/css-modules/src/showcase/index.js diff --git a/spikes/css/css-modules/src/showcase/root.js b/legacy/spikes/css/css-modules/src/showcase/root.js similarity index 100% rename from spikes/css/css-modules/src/showcase/root.js rename to legacy/spikes/css/css-modules/src/showcase/root.js diff --git a/spikes/css/css-modules/static/index.html b/legacy/spikes/css/css-modules/static/index.html similarity index 100% rename from spikes/css/css-modules/static/index.html rename to legacy/spikes/css/css-modules/static/index.html diff --git a/spikes/css/css-modules/stories/index.js b/legacy/spikes/css/css-modules/stories/index.js similarity index 100% rename from spikes/css/css-modules/stories/index.js rename to legacy/spikes/css/css-modules/stories/index.js diff --git a/spikes/css/css-modules/test/index.js b/legacy/spikes/css/css-modules/test/index.js similarity index 100% rename from spikes/css/css-modules/test/index.js rename to legacy/spikes/css/css-modules/test/index.js diff --git a/spikes/css/css-modules/webpack.config.js b/legacy/spikes/css/css-modules/webpack.config.js similarity index 100% rename from spikes/css/css-modules/webpack.config.js rename to legacy/spikes/css/css-modules/webpack.config.js diff --git a/spikes/form/redux-form/.babelrc b/legacy/spikes/form/redux-form/.babelrc similarity index 100% rename from spikes/form/redux-form/.babelrc rename to legacy/spikes/form/redux-form/.babelrc diff --git a/spikes/form/redux-form/.eslintignore b/legacy/spikes/form/redux-form/.eslintignore similarity index 100% rename from spikes/form/redux-form/.eslintignore rename to legacy/spikes/form/redux-form/.eslintignore diff --git a/spikes/form/redux-form/.eslintrc b/legacy/spikes/form/redux-form/.eslintrc similarity index 100% rename from spikes/form/redux-form/.eslintrc rename to legacy/spikes/form/redux-form/.eslintrc diff --git a/spikes/form/redux-form/.gitignore b/legacy/spikes/form/redux-form/.gitignore similarity index 100% rename from spikes/form/redux-form/.gitignore rename to legacy/spikes/form/redux-form/.gitignore diff --git a/spikes/form/redux-form/client/app.js b/legacy/spikes/form/redux-form/client/app.js similarity index 100% rename from spikes/form/redux-form/client/app.js rename to legacy/spikes/form/redux-form/client/app.js diff --git a/spikes/form/redux-form/client/form/form-normalize.js b/legacy/spikes/form/redux-form/client/form/form-normalize.js similarity index 100% rename from spikes/form/redux-form/client/form/form-normalize.js rename to legacy/spikes/form/redux-form/client/form/form-normalize.js diff --git a/spikes/form/redux-form/client/form/form-one.js b/legacy/spikes/form/redux-form/client/form/form-one.js similarity index 100% rename from spikes/form/redux-form/client/form/form-one.js rename to legacy/spikes/form/redux-form/client/form/form-one.js diff --git a/spikes/form/redux-form/client/form/form-three.js b/legacy/spikes/form/redux-form/client/form/form-three.js similarity index 100% rename from spikes/form/redux-form/client/form/form-three.js rename to legacy/spikes/form/redux-form/client/form/form-three.js diff --git a/spikes/form/redux-form/client/form/form-two.js b/legacy/spikes/form/redux-form/client/form/form-two.js similarity index 100% rename from spikes/form/redux-form/client/form/form-two.js rename to legacy/spikes/form/redux-form/client/form/form-two.js diff --git a/spikes/form/redux-form/client/form/form.js b/legacy/spikes/form/redux-form/client/form/form.js similarity index 100% rename from spikes/form/redux-form/client/form/form.js rename to legacy/spikes/form/redux-form/client/form/form.js diff --git a/spikes/form/redux-form/client/form/input.js b/legacy/spikes/form/redux-form/client/form/input.js similarity index 100% rename from spikes/form/redux-form/client/form/input.js rename to legacy/spikes/form/redux-form/client/form/input.js diff --git a/spikes/form/redux-form/client/form/inputRfProps.js b/legacy/spikes/form/redux-form/client/form/inputRfProps.js similarity index 100% rename from spikes/form/redux-form/client/form/inputRfProps.js rename to legacy/spikes/form/redux-form/client/form/inputRfProps.js diff --git a/spikes/form/redux-form/client/form/multiform.js b/legacy/spikes/form/redux-form/client/form/multiform.js similarity index 100% rename from spikes/form/redux-form/client/form/multiform.js rename to legacy/spikes/form/redux-form/client/form/multiform.js diff --git a/spikes/form/redux-form/client/form/normalizePhone.js b/legacy/spikes/form/redux-form/client/form/normalizePhone.js similarity index 100% rename from spikes/form/redux-form/client/form/normalizePhone.js rename to legacy/spikes/form/redux-form/client/form/normalizePhone.js diff --git a/spikes/form/redux-form/client/form/redux-form-proxy.js b/legacy/spikes/form/redux-form/client/form/redux-form-proxy.js similarity index 100% rename from spikes/form/redux-form/client/form/redux-form-proxy.js rename to legacy/spikes/form/redux-form/client/form/redux-form-proxy.js diff --git a/spikes/form/redux-form/client/form/shared.js b/legacy/spikes/form/redux-form/client/form/shared.js similarity index 100% rename from spikes/form/redux-form/client/form/shared.js rename to legacy/spikes/form/redux-form/client/form/shared.js diff --git a/spikes/form/redux-form/client/form/submit.js b/legacy/spikes/form/redux-form/client/form/submit.js similarity index 100% rename from spikes/form/redux-form/client/form/submit.js rename to legacy/spikes/form/redux-form/client/form/submit.js diff --git a/spikes/form/redux-form/client/form/validate.js b/legacy/spikes/form/redux-form/client/form/validate.js similarity index 100% rename from spikes/form/redux-form/client/form/validate.js rename to legacy/spikes/form/redux-form/client/form/validate.js diff --git a/spikes/form/redux-form/client/index.js b/legacy/spikes/form/redux-form/client/index.js similarity index 100% rename from spikes/form/redux-form/client/index.js rename to legacy/spikes/form/redux-form/client/index.js diff --git a/spikes/form/redux-form/client/root.js b/legacy/spikes/form/redux-form/client/root.js similarity index 100% rename from spikes/form/redux-form/client/root.js rename to legacy/spikes/form/redux-form/client/root.js diff --git a/spikes/form/redux-form/client/store.js b/legacy/spikes/form/redux-form/client/store.js similarity index 100% rename from spikes/form/redux-form/client/store.js rename to legacy/spikes/form/redux-form/client/store.js diff --git a/spikes/form/redux-form/package.json b/legacy/spikes/form/redux-form/package.json similarity index 100% rename from spikes/form/redux-form/package.json rename to legacy/spikes/form/redux-form/package.json diff --git a/spikes/form/redux-form/readme.md b/legacy/spikes/form/redux-form/readme.md similarity index 100% rename from spikes/form/redux-form/readme.md rename to legacy/spikes/form/redux-form/readme.md diff --git a/spikes/form/redux-form/server/index.js b/legacy/spikes/form/redux-form/server/index.js similarity index 100% rename from spikes/form/redux-form/server/index.js rename to legacy/spikes/form/redux-form/server/index.js diff --git a/spikes/form/redux-form/server/metric.js b/legacy/spikes/form/redux-form/server/metric.js similarity index 100% rename from spikes/form/redux-form/server/metric.js rename to legacy/spikes/form/redux-form/server/metric.js diff --git a/spikes/form/redux-form/server/plugins.js b/legacy/spikes/form/redux-form/server/plugins.js similarity index 100% rename from spikes/form/redux-form/server/plugins.js rename to legacy/spikes/form/redux-form/server/plugins.js diff --git a/spikes/form/redux-form/server/routes/home.js b/legacy/spikes/form/redux-form/server/routes/home.js similarity index 100% rename from spikes/form/redux-form/server/routes/home.js rename to legacy/spikes/form/redux-form/server/routes/home.js diff --git a/spikes/form/redux-form/server/routes/metrics.js b/legacy/spikes/form/redux-form/server/routes/metrics.js similarity index 100% rename from spikes/form/redux-form/server/routes/metrics.js rename to legacy/spikes/form/redux-form/server/routes/metrics.js diff --git a/spikes/form/redux-form/server/routes/static.js b/legacy/spikes/form/redux-form/server/routes/static.js similarity index 100% rename from spikes/form/redux-form/server/routes/static.js rename to legacy/spikes/form/redux-form/server/routes/static.js diff --git a/spikes/form/redux-form/server/routes/version.js b/legacy/spikes/form/redux-form/server/routes/version.js similarity index 100% rename from spikes/form/redux-form/server/routes/version.js rename to legacy/spikes/form/redux-form/server/routes/version.js diff --git a/spikes/form/redux-form/static/index.html b/legacy/spikes/form/redux-form/static/index.html similarity index 100% rename from spikes/form/redux-form/static/index.html rename to legacy/spikes/form/redux-form/static/index.html diff --git a/spikes/form/redux-form/webpack.config.js b/legacy/spikes/form/redux-form/webpack.config.js similarity index 100% rename from spikes/form/redux-form/webpack.config.js rename to legacy/spikes/form/redux-form/webpack.config.js diff --git a/spikes/form/redux-form/yarn.lock b/legacy/spikes/form/redux-form/yarn.lock similarity index 100% rename from spikes/form/redux-form/yarn.lock rename to legacy/spikes/form/redux-form/yarn.lock diff --git a/spikes/fuzzy-search/fuzzy-search-filter/.babelrc b/legacy/spikes/fuzzy-search/fuzzy-search-filter/.babelrc similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/.babelrc rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/.babelrc diff --git a/spikes/fuzzy-search/fuzzy-search-filter/package.json b/legacy/spikes/fuzzy-search/fuzzy-search-filter/package.json similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/package.json rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/package.json diff --git a/spikes/fuzzy-search/fuzzy-search-filter/readme.md b/legacy/spikes/fuzzy-search/fuzzy-search-filter/readme.md similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/readme.md rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/readme.md diff --git a/spikes/fuzzy-search/fuzzy-search-filter/src/actions.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/src/actions.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/src/actions.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/src/actions.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/src/index.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/src/index.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/src/index.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/src/index.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/src/root.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/src/root.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/src/root.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/src/root.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/src/search.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/src/search.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/src/search.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/src/search.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/src/store.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/src/store.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/src/store.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/src/store.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/static/.gitignore b/legacy/spikes/fuzzy-search/fuzzy-search-filter/static/.gitignore similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/static/.gitignore rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/static/.gitignore diff --git a/spikes/fuzzy-search/fuzzy-search-filter/static/index.html b/legacy/spikes/fuzzy-search/fuzzy-search-filter/static/index.html similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/static/index.html rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/static/index.html diff --git a/spikes/fuzzy-search/fuzzy-search-filter/webpack/base.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/webpack/base.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/webpack/base.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/webpack/base.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/webpack/index.js b/legacy/spikes/fuzzy-search/fuzzy-search-filter/webpack/index.js similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/webpack/index.js rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/webpack/index.js diff --git a/spikes/fuzzy-search/fuzzy-search-filter/yarn.lock b/legacy/spikes/fuzzy-search/fuzzy-search-filter/yarn.lock similarity index 100% rename from spikes/fuzzy-search/fuzzy-search-filter/yarn.lock rename to legacy/spikes/fuzzy-search/fuzzy-search-filter/yarn.lock diff --git a/spikes/fuzzy-search/react-select/.babelrc b/legacy/spikes/fuzzy-search/react-select/.babelrc similarity index 100% rename from spikes/fuzzy-search/react-select/.babelrc rename to legacy/spikes/fuzzy-search/react-select/.babelrc diff --git a/spikes/fuzzy-search/react-select/package.json b/legacy/spikes/fuzzy-search/react-select/package.json similarity index 100% rename from spikes/fuzzy-search/react-select/package.json rename to legacy/spikes/fuzzy-search/react-select/package.json diff --git a/spikes/fuzzy-search/react-select/readme.md b/legacy/spikes/fuzzy-search/react-select/readme.md similarity index 100% rename from spikes/fuzzy-search/react-select/readme.md rename to legacy/spikes/fuzzy-search/react-select/readme.md diff --git a/spikes/fuzzy-search/react-select/src/index.js b/legacy/spikes/fuzzy-search/react-select/src/index.js similarity index 100% rename from spikes/fuzzy-search/react-select/src/index.js rename to legacy/spikes/fuzzy-search/react-select/src/index.js diff --git a/spikes/fuzzy-search/react-select/src/root.js b/legacy/spikes/fuzzy-search/react-select/src/root.js similarity index 100% rename from spikes/fuzzy-search/react-select/src/root.js rename to legacy/spikes/fuzzy-search/react-select/src/root.js diff --git a/spikes/fuzzy-search/react-select/src/search-async.js b/legacy/spikes/fuzzy-search/react-select/src/search-async.js similarity index 100% rename from spikes/fuzzy-search/react-select/src/search-async.js rename to legacy/spikes/fuzzy-search/react-select/src/search-async.js diff --git a/spikes/fuzzy-search/react-select/src/search.js b/legacy/spikes/fuzzy-search/react-select/src/search.js similarity index 100% rename from spikes/fuzzy-search/react-select/src/search.js rename to legacy/spikes/fuzzy-search/react-select/src/search.js diff --git a/spikes/fuzzy-search/react-select/static/.gitignore b/legacy/spikes/fuzzy-search/react-select/static/.gitignore similarity index 100% rename from spikes/fuzzy-search/react-select/static/.gitignore rename to legacy/spikes/fuzzy-search/react-select/static/.gitignore diff --git a/spikes/fuzzy-search/react-select/static/index.html b/legacy/spikes/fuzzy-search/react-select/static/index.html similarity index 100% rename from spikes/fuzzy-search/react-select/static/index.html rename to legacy/spikes/fuzzy-search/react-select/static/index.html diff --git a/spikes/fuzzy-search/react-select/webpack/base.js b/legacy/spikes/fuzzy-search/react-select/webpack/base.js similarity index 100% rename from spikes/fuzzy-search/react-select/webpack/base.js rename to legacy/spikes/fuzzy-search/react-select/webpack/base.js diff --git a/spikes/fuzzy-search/react-select/webpack/index.js b/legacy/spikes/fuzzy-search/react-select/webpack/index.js similarity index 100% rename from spikes/fuzzy-search/react-select/webpack/index.js rename to legacy/spikes/fuzzy-search/react-select/webpack/index.js diff --git a/spikes/fuzzy-search/react-select/yarn.lock b/legacy/spikes/fuzzy-search/react-select/yarn.lock similarity index 100% rename from spikes/fuzzy-search/react-select/yarn.lock rename to legacy/spikes/fuzzy-search/react-select/yarn.lock diff --git a/spikes/fuzzy-search/react-selectize-stateless/.babelrc b/legacy/spikes/fuzzy-search/react-selectize-stateless/.babelrc similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/.babelrc rename to legacy/spikes/fuzzy-search/react-selectize-stateless/.babelrc diff --git a/spikes/fuzzy-search/react-selectize-stateless/package.json b/legacy/spikes/fuzzy-search/react-selectize-stateless/package.json similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/package.json rename to legacy/spikes/fuzzy-search/react-selectize-stateless/package.json diff --git a/spikes/fuzzy-search/react-selectize-stateless/readme.md b/legacy/spikes/fuzzy-search/react-selectize-stateless/readme.md similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/readme.md rename to legacy/spikes/fuzzy-search/react-selectize-stateless/readme.md diff --git a/spikes/fuzzy-search/react-selectize-stateless/src/actions.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/src/actions.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/src/actions.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/src/actions.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/src/index.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/src/index.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/src/index.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/src/index.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/src/root.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/src/root.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/src/root.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/src/root.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/src/search.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/src/search.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/src/search.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/src/search.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/src/store.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/src/store.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/src/store.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/src/store.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/static/.gitignore b/legacy/spikes/fuzzy-search/react-selectize-stateless/static/.gitignore similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/static/.gitignore rename to legacy/spikes/fuzzy-search/react-selectize-stateless/static/.gitignore diff --git a/spikes/fuzzy-search/react-selectize-stateless/static/index.html b/legacy/spikes/fuzzy-search/react-selectize-stateless/static/index.html similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/static/index.html rename to legacy/spikes/fuzzy-search/react-selectize-stateless/static/index.html diff --git a/spikes/fuzzy-search/react-selectize-stateless/webpack/base.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/webpack/base.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/webpack/base.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/webpack/base.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/webpack/index.js b/legacy/spikes/fuzzy-search/react-selectize-stateless/webpack/index.js similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/webpack/index.js rename to legacy/spikes/fuzzy-search/react-selectize-stateless/webpack/index.js diff --git a/spikes/fuzzy-search/react-selectize-stateless/yarn.lock b/legacy/spikes/fuzzy-search/react-selectize-stateless/yarn.lock similarity index 100% rename from spikes/fuzzy-search/react-selectize-stateless/yarn.lock rename to legacy/spikes/fuzzy-search/react-selectize-stateless/yarn.lock diff --git a/spikes/fuzzy-search/react-selectize/.babelrc b/legacy/spikes/fuzzy-search/react-selectize/.babelrc similarity index 100% rename from spikes/fuzzy-search/react-selectize/.babelrc rename to legacy/spikes/fuzzy-search/react-selectize/.babelrc diff --git a/spikes/fuzzy-search/react-selectize/package.json b/legacy/spikes/fuzzy-search/react-selectize/package.json similarity index 100% rename from spikes/fuzzy-search/react-selectize/package.json rename to legacy/spikes/fuzzy-search/react-selectize/package.json diff --git a/spikes/fuzzy-search/react-selectize/readme.md b/legacy/spikes/fuzzy-search/react-selectize/readme.md similarity index 100% rename from spikes/fuzzy-search/react-selectize/readme.md rename to legacy/spikes/fuzzy-search/react-selectize/readme.md diff --git a/spikes/fuzzy-search/react-selectize/src/actions.js b/legacy/spikes/fuzzy-search/react-selectize/src/actions.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/actions.js rename to legacy/spikes/fuzzy-search/react-selectize/src/actions.js diff --git a/spikes/fuzzy-search/react-selectize/src/index.js b/legacy/spikes/fuzzy-search/react-selectize/src/index.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/index.js rename to legacy/spikes/fuzzy-search/react-selectize/src/index.js diff --git a/spikes/fuzzy-search/react-selectize/src/root.js b/legacy/spikes/fuzzy-search/react-selectize/src/root.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/root.js rename to legacy/spikes/fuzzy-search/react-selectize/src/root.js diff --git a/spikes/fuzzy-search/react-selectize/src/search-multi.js b/legacy/spikes/fuzzy-search/react-selectize/src/search-multi.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/search-multi.js rename to legacy/spikes/fuzzy-search/react-selectize/src/search-multi.js diff --git a/spikes/fuzzy-search/react-selectize/src/search-single.js b/legacy/spikes/fuzzy-search/react-selectize/src/search-single.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/search-single.js rename to legacy/spikes/fuzzy-search/react-selectize/src/search-single.js diff --git a/spikes/fuzzy-search/react-selectize/src/search.js b/legacy/spikes/fuzzy-search/react-selectize/src/search.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/search.js rename to legacy/spikes/fuzzy-search/react-selectize/src/search.js diff --git a/spikes/fuzzy-search/react-selectize/src/store.js b/legacy/spikes/fuzzy-search/react-selectize/src/store.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/src/store.js rename to legacy/spikes/fuzzy-search/react-selectize/src/store.js diff --git a/spikes/fuzzy-search/react-selectize/static/.gitignore b/legacy/spikes/fuzzy-search/react-selectize/static/.gitignore similarity index 100% rename from spikes/fuzzy-search/react-selectize/static/.gitignore rename to legacy/spikes/fuzzy-search/react-selectize/static/.gitignore diff --git a/spikes/fuzzy-search/react-selectize/static/index.html b/legacy/spikes/fuzzy-search/react-selectize/static/index.html similarity index 100% rename from spikes/fuzzy-search/react-selectize/static/index.html rename to legacy/spikes/fuzzy-search/react-selectize/static/index.html diff --git a/spikes/fuzzy-search/react-selectize/webpack/base.js b/legacy/spikes/fuzzy-search/react-selectize/webpack/base.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/webpack/base.js rename to legacy/spikes/fuzzy-search/react-selectize/webpack/base.js diff --git a/spikes/fuzzy-search/react-selectize/webpack/index.js b/legacy/spikes/fuzzy-search/react-selectize/webpack/index.js similarity index 100% rename from spikes/fuzzy-search/react-selectize/webpack/index.js rename to legacy/spikes/fuzzy-search/react-selectize/webpack/index.js diff --git a/spikes/fuzzy-search/react-selectize/yarn.lock b/legacy/spikes/fuzzy-search/react-selectize/yarn.lock similarity index 100% rename from spikes/fuzzy-search/react-selectize/yarn.lock rename to legacy/spikes/fuzzy-search/react-selectize/yarn.lock diff --git a/spikes/fuzzy-search/users.js b/legacy/spikes/fuzzy-search/users.js similarity index 100% rename from spikes/fuzzy-search/users.js rename to legacy/spikes/fuzzy-search/users.js diff --git a/spikes/graphql/apollo-redux/.gitignore b/legacy/spikes/graphql/apollo-redux/.gitignore similarity index 100% rename from spikes/graphql/apollo-redux/.gitignore rename to legacy/spikes/graphql/apollo-redux/.gitignore diff --git a/spikes/graphql/apollo-redux/README.md b/legacy/spikes/graphql/apollo-redux/README.md similarity index 100% rename from spikes/graphql/apollo-redux/README.md rename to legacy/spikes/graphql/apollo-redux/README.md diff --git a/spikes/graphql/apollo-redux/package.json b/legacy/spikes/graphql/apollo-redux/package.json similarity index 100% rename from spikes/graphql/apollo-redux/package.json rename to legacy/spikes/graphql/apollo-redux/package.json diff --git a/spikes/graphql/apollo-redux/public/favicon.ico b/legacy/spikes/graphql/apollo-redux/public/favicon.ico similarity index 100% rename from spikes/graphql/apollo-redux/public/favicon.ico rename to legacy/spikes/graphql/apollo-redux/public/favicon.ico diff --git a/spikes/graphql/apollo-redux/public/index.html b/legacy/spikes/graphql/apollo-redux/public/index.html similarity index 100% rename from spikes/graphql/apollo-redux/public/index.html rename to legacy/spikes/graphql/apollo-redux/public/index.html diff --git a/spikes/graphql/apollo-redux/scripts/config-overrides.dev.js b/legacy/spikes/graphql/apollo-redux/scripts/config-overrides.dev.js similarity index 100% rename from spikes/graphql/apollo-redux/scripts/config-overrides.dev.js rename to legacy/spikes/graphql/apollo-redux/scripts/config-overrides.dev.js diff --git a/spikes/graphql/apollo-redux/scripts/customized-config.js b/legacy/spikes/graphql/apollo-redux/scripts/customized-config.js similarity index 100% rename from spikes/graphql/apollo-redux/scripts/customized-config.js rename to legacy/spikes/graphql/apollo-redux/scripts/customized-config.js diff --git a/spikes/graphql/apollo-redux/src/app.js b/legacy/spikes/graphql/apollo-redux/src/app.js similarity index 100% rename from spikes/graphql/apollo-redux/src/app.js rename to legacy/spikes/graphql/apollo-redux/src/app.js diff --git a/spikes/graphql/apollo-redux/src/app.test.js b/legacy/spikes/graphql/apollo-redux/src/app.test.js similarity index 100% rename from spikes/graphql/apollo-redux/src/app.test.js rename to legacy/spikes/graphql/apollo-redux/src/app.test.js diff --git a/spikes/graphql/apollo-redux/src/components/layout/container.js b/legacy/spikes/graphql/apollo-redux/src/components/layout/container.js similarity index 100% rename from spikes/graphql/apollo-redux/src/components/layout/container.js rename to legacy/spikes/graphql/apollo-redux/src/components/layout/container.js diff --git a/spikes/graphql/apollo-redux/src/components/layout/index.js b/legacy/spikes/graphql/apollo-redux/src/components/layout/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/components/layout/index.js rename to legacy/spikes/graphql/apollo-redux/src/components/layout/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/deployment-groups/index.js b/legacy/spikes/graphql/apollo-redux/src/containers/deployment-groups/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/deployment-groups/index.js rename to legacy/spikes/graphql/apollo-redux/src/containers/deployment-groups/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/deployment-groups/list.js b/legacy/spikes/graphql/apollo-redux/src/containers/deployment-groups/list.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/deployment-groups/list.js rename to legacy/spikes/graphql/apollo-redux/src/containers/deployment-groups/list.js diff --git a/spikes/graphql/apollo-redux/src/containers/instances/index.js b/legacy/spikes/graphql/apollo-redux/src/containers/instances/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/instances/index.js rename to legacy/spikes/graphql/apollo-redux/src/containers/instances/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/instances/list.js b/legacy/spikes/graphql/apollo-redux/src/containers/instances/list.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/instances/list.js rename to legacy/spikes/graphql/apollo-redux/src/containers/instances/list.js diff --git a/spikes/graphql/apollo-redux/src/containers/navigation/breadcrumb.js b/legacy/spikes/graphql/apollo-redux/src/containers/navigation/breadcrumb.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/navigation/breadcrumb.js rename to legacy/spikes/graphql/apollo-redux/src/containers/navigation/breadcrumb.js diff --git a/spikes/graphql/apollo-redux/src/containers/navigation/index.js b/legacy/spikes/graphql/apollo-redux/src/containers/navigation/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/navigation/index.js rename to legacy/spikes/graphql/apollo-redux/src/containers/navigation/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/navigation/menu.js b/legacy/spikes/graphql/apollo-redux/src/containers/navigation/menu.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/navigation/menu.js rename to legacy/spikes/graphql/apollo-redux/src/containers/navigation/menu.js diff --git a/spikes/graphql/apollo-redux/src/containers/service/index.js b/legacy/spikes/graphql/apollo-redux/src/containers/service/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/service/index.js rename to legacy/spikes/graphql/apollo-redux/src/containers/service/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/service/metrics.js b/legacy/spikes/graphql/apollo-redux/src/containers/service/metrics.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/service/metrics.js rename to legacy/spikes/graphql/apollo-redux/src/containers/service/metrics.js diff --git a/spikes/graphql/apollo-redux/src/containers/service/single-metrics.js b/legacy/spikes/graphql/apollo-redux/src/containers/service/single-metrics.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/service/single-metrics.js rename to legacy/spikes/graphql/apollo-redux/src/containers/service/single-metrics.js diff --git a/spikes/graphql/apollo-redux/src/containers/services/index.js b/legacy/spikes/graphql/apollo-redux/src/containers/services/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/services/index.js rename to legacy/spikes/graphql/apollo-redux/src/containers/services/index.js diff --git a/spikes/graphql/apollo-redux/src/containers/services/list.js b/legacy/spikes/graphql/apollo-redux/src/containers/services/list.js similarity index 100% rename from spikes/graphql/apollo-redux/src/containers/services/list.js rename to legacy/spikes/graphql/apollo-redux/src/containers/services/list.js diff --git a/spikes/graphql/apollo-redux/src/graphql/DeploymentGroupInfo.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/DeploymentGroupInfo.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/DeploymentGroupInfo.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/DeploymentGroupInfo.gql diff --git a/spikes/graphql/apollo-redux/src/graphql/DeploymentGroups.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/DeploymentGroups.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/DeploymentGroups.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/DeploymentGroups.gql diff --git a/spikes/graphql/apollo-redux/src/graphql/Instances.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/Instances.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/Instances.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/Instances.gql diff --git a/spikes/graphql/apollo-redux/src/graphql/Metrics.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/Metrics.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/Metrics.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/Metrics.gql diff --git a/spikes/graphql/apollo-redux/src/graphql/Services.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/Services.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/Services.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/Services.gql diff --git a/spikes/graphql/apollo-redux/src/graphql/SingleMetrics.gql b/legacy/spikes/graphql/apollo-redux/src/graphql/SingleMetrics.gql similarity index 100% rename from spikes/graphql/apollo-redux/src/graphql/SingleMetrics.gql rename to legacy/spikes/graphql/apollo-redux/src/graphql/SingleMetrics.gql diff --git a/spikes/graphql/apollo-redux/src/index.js b/legacy/spikes/graphql/apollo-redux/src/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/index.js rename to legacy/spikes/graphql/apollo-redux/src/index.js diff --git a/spikes/graphql/apollo-redux/src/logo.svg b/legacy/spikes/graphql/apollo-redux/src/logo.svg similarity index 100% rename from spikes/graphql/apollo-redux/src/logo.svg rename to legacy/spikes/graphql/apollo-redux/src/logo.svg diff --git a/spikes/graphql/apollo-redux/src/routing/routes.js b/legacy/spikes/graphql/apollo-redux/src/routing/routes.js similarity index 100% rename from spikes/graphql/apollo-redux/src/routing/routes.js rename to legacy/spikes/graphql/apollo-redux/src/routing/routes.js diff --git a/spikes/graphql/apollo-redux/src/state/reducers/index.js b/legacy/spikes/graphql/apollo-redux/src/state/reducers/index.js similarity index 100% rename from spikes/graphql/apollo-redux/src/state/reducers/index.js rename to legacy/spikes/graphql/apollo-redux/src/state/reducers/index.js diff --git a/spikes/graphql/apollo-redux/src/state/store.js b/legacy/spikes/graphql/apollo-redux/src/state/store.js similarity index 100% rename from spikes/graphql/apollo-redux/src/state/store.js rename to legacy/spikes/graphql/apollo-redux/src/state/store.js diff --git a/spikes/graphql/apollo-redux/yarn.lock b/legacy/spikes/graphql/apollo-redux/yarn.lock similarity index 100% rename from spikes/graphql/apollo-redux/yarn.lock rename to legacy/spikes/graphql/apollo-redux/yarn.lock diff --git a/spikes/graphql/graphql-server/.babelrc b/legacy/spikes/graphql/graphql-server/.babelrc similarity index 100% rename from spikes/graphql/graphql-server/.babelrc rename to legacy/spikes/graphql/graphql-server/.babelrc diff --git a/spikes/graphql/graphql-server/package.json b/legacy/spikes/graphql/graphql-server/package.json similarity index 100% rename from spikes/graphql/graphql-server/package.json rename to legacy/spikes/graphql/graphql-server/package.json diff --git a/spikes/graphql/graphql-server/src/index.js b/legacy/spikes/graphql/graphql-server/src/index.js similarity index 100% rename from spikes/graphql/graphql-server/src/index.js rename to legacy/spikes/graphql/graphql-server/src/index.js diff --git a/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-leak.json b/legacy/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-leak.json similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/datasets/dataset-leak.json rename to legacy/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-leak.json diff --git a/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-normal.json b/legacy/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-normal.json similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/datasets/dataset-normal.json rename to legacy/spikes/graphql/graphql-server/src/mock-data/datasets/dataset-normal.json diff --git a/spikes/graphql/graphql-server/src/mock-data/datasets/metric-types.txt b/legacy/spikes/graphql/graphql-server/src/mock-data/datasets/metric-types.txt similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/datasets/metric-types.txt rename to legacy/spikes/graphql/graphql-server/src/mock-data/datasets/metric-types.txt diff --git a/spikes/graphql/graphql-server/src/mock-data/index.js b/legacy/spikes/graphql/graphql-server/src/mock-data/index.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/index.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/index.js diff --git a/spikes/graphql/graphql-server/src/mock-data/metrics.js b/legacy/spikes/graphql/graphql-server/src/mock-data/metrics.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/metrics.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/metrics.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/account.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/account.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/account.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/account.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/datacenters.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/datacenters.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/datacenters.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/datacenters.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/index.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/index.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/index.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/index.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/instances.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/instances.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/instances.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/instances.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/members.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/members.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/members.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/members.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/metrics.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/metrics.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/metrics.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/metrics.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/orgs.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/orgs.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/orgs.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/orgs.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/projects.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/projects.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/projects.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/projects.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/services-complex.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/services-complex.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/services-complex.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/services-complex.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/services-wp.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/services-wp.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/services-wp.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/services-wp.js diff --git a/spikes/graphql/graphql-server/src/mock-data/shared/services.js b/legacy/spikes/graphql/graphql-server/src/mock-data/shared/services.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/shared/services.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/shared/services.js diff --git a/spikes/graphql/graphql-server/src/mock-data/testing.js b/legacy/spikes/graphql/graphql-server/src/mock-data/testing.js similarity index 100% rename from spikes/graphql/graphql-server/src/mock-data/testing.js rename to legacy/spikes/graphql/graphql-server/src/mock-data/testing.js diff --git a/spikes/graphql/graphql-server/src/resolvers.js b/legacy/spikes/graphql/graphql-server/src/resolvers.js similarity index 100% rename from spikes/graphql/graphql-server/src/resolvers.js rename to legacy/spikes/graphql/graphql-server/src/resolvers.js diff --git a/spikes/graphql/graphql-server/src/schema.gql b/legacy/spikes/graphql/graphql-server/src/schema.gql similarity index 100% rename from spikes/graphql/graphql-server/src/schema.gql rename to legacy/spikes/graphql/graphql-server/src/schema.gql diff --git a/spikes/graphql/graphql-server/src/schema.js b/legacy/spikes/graphql/graphql-server/src/schema.js similarity index 100% rename from spikes/graphql/graphql-server/src/schema.js rename to legacy/spikes/graphql/graphql-server/src/schema.js diff --git a/spikes/graphql/graphql-server/yarn.lock b/legacy/spikes/graphql/graphql-server/yarn.lock similarity index 100% rename from spikes/graphql/graphql-server/yarn.lock rename to legacy/spikes/graphql/graphql-server/yarn.lock diff --git a/spikes/graphs-fe/c3js/.babelrc b/legacy/spikes/graphs-fe/c3js/.babelrc similarity index 100% rename from spikes/graphs-fe/c3js/.babelrc rename to legacy/spikes/graphs-fe/c3js/.babelrc diff --git a/spikes/graphs-fe/c3js/.eslintignore b/legacy/spikes/graphs-fe/c3js/.eslintignore similarity index 100% rename from spikes/graphs-fe/c3js/.eslintignore rename to legacy/spikes/graphs-fe/c3js/.eslintignore diff --git a/spikes/graphs-fe/c3js/.eslintrc b/legacy/spikes/graphs-fe/c3js/.eslintrc similarity index 100% rename from spikes/graphs-fe/c3js/.eslintrc rename to legacy/spikes/graphs-fe/c3js/.eslintrc diff --git a/spikes/graphs-fe/c3js/.gitignore b/legacy/spikes/graphs-fe/c3js/.gitignore similarity index 100% rename from spikes/graphs-fe/c3js/.gitignore rename to legacy/spikes/graphs-fe/c3js/.gitignore diff --git a/spikes/graphs-fe/c3js/client/c3js.js b/legacy/spikes/graphs-fe/c3js/client/c3js.js similarity index 100% rename from spikes/graphs-fe/c3js/client/c3js.js rename to legacy/spikes/graphs-fe/c3js/client/c3js.js diff --git a/spikes/graphs-fe/c3js/client/index.js b/legacy/spikes/graphs-fe/c3js/client/index.js similarity index 100% rename from spikes/graphs-fe/c3js/client/index.js rename to legacy/spikes/graphs-fe/c3js/client/index.js diff --git a/spikes/graphs-fe/c3js/client/root.js b/legacy/spikes/graphs-fe/c3js/client/root.js similarity index 100% rename from spikes/graphs-fe/c3js/client/root.js rename to legacy/spikes/graphs-fe/c3js/client/root.js diff --git a/spikes/graphs-fe/c3js/client/store.js b/legacy/spikes/graphs-fe/c3js/client/store.js similarity index 100% rename from spikes/graphs-fe/c3js/client/store.js rename to legacy/spikes/graphs-fe/c3js/client/store.js diff --git a/spikes/graphs-fe/c3js/package.json b/legacy/spikes/graphs-fe/c3js/package.json similarity index 100% rename from spikes/graphs-fe/c3js/package.json rename to legacy/spikes/graphs-fe/c3js/package.json diff --git a/spikes/graphs-fe/c3js/readme.md b/legacy/spikes/graphs-fe/c3js/readme.md similarity index 100% rename from spikes/graphs-fe/c3js/readme.md rename to legacy/spikes/graphs-fe/c3js/readme.md diff --git a/spikes/graphs-fe/c3js/server/index.js b/legacy/spikes/graphs-fe/c3js/server/index.js similarity index 100% rename from spikes/graphs-fe/c3js/server/index.js rename to legacy/spikes/graphs-fe/c3js/server/index.js diff --git a/spikes/graphs-fe/c3js/server/metric.js b/legacy/spikes/graphs-fe/c3js/server/metric.js similarity index 100% rename from spikes/graphs-fe/c3js/server/metric.js rename to legacy/spikes/graphs-fe/c3js/server/metric.js diff --git a/spikes/graphs-fe/c3js/server/plugins.js b/legacy/spikes/graphs-fe/c3js/server/plugins.js similarity index 100% rename from spikes/graphs-fe/c3js/server/plugins.js rename to legacy/spikes/graphs-fe/c3js/server/plugins.js diff --git a/spikes/graphs-fe/c3js/server/routes/home.js b/legacy/spikes/graphs-fe/c3js/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/c3js/server/routes/home.js rename to legacy/spikes/graphs-fe/c3js/server/routes/home.js diff --git a/spikes/graphs-fe/c3js/server/routes/metrics.js b/legacy/spikes/graphs-fe/c3js/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/c3js/server/routes/metrics.js rename to legacy/spikes/graphs-fe/c3js/server/routes/metrics.js diff --git a/spikes/graphs-fe/c3js/server/routes/static.js b/legacy/spikes/graphs-fe/c3js/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/c3js/server/routes/static.js rename to legacy/spikes/graphs-fe/c3js/server/routes/static.js diff --git a/spikes/graphs-fe/c3js/server/routes/version.js b/legacy/spikes/graphs-fe/c3js/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/c3js/server/routes/version.js rename to legacy/spikes/graphs-fe/c3js/server/routes/version.js diff --git a/spikes/graphs-fe/c3js/static/index.html b/legacy/spikes/graphs-fe/c3js/static/index.html similarity index 100% rename from spikes/graphs-fe/c3js/static/index.html rename to legacy/spikes/graphs-fe/c3js/static/index.html diff --git a/spikes/graphs-fe/c3js/webpack.config.js b/legacy/spikes/graphs-fe/c3js/webpack.config.js similarity index 100% rename from spikes/graphs-fe/c3js/webpack.config.js rename to legacy/spikes/graphs-fe/c3js/webpack.config.js diff --git a/spikes/graphs-fe/chartjs/.babelrc b/legacy/spikes/graphs-fe/chartjs/.babelrc similarity index 100% rename from spikes/graphs-fe/chartjs/.babelrc rename to legacy/spikes/graphs-fe/chartjs/.babelrc diff --git a/spikes/graphs-fe/chartjs/.eslintignore b/legacy/spikes/graphs-fe/chartjs/.eslintignore similarity index 100% rename from spikes/graphs-fe/chartjs/.eslintignore rename to legacy/spikes/graphs-fe/chartjs/.eslintignore diff --git a/spikes/graphs-fe/chartjs/.eslintrc b/legacy/spikes/graphs-fe/chartjs/.eslintrc similarity index 100% rename from spikes/graphs-fe/chartjs/.eslintrc rename to legacy/spikes/graphs-fe/chartjs/.eslintrc diff --git a/spikes/graphs-fe/chartjs/.gitignore b/legacy/spikes/graphs-fe/chartjs/.gitignore similarity index 100% rename from spikes/graphs-fe/chartjs/.gitignore rename to legacy/spikes/graphs-fe/chartjs/.gitignore diff --git a/spikes/graphs-fe/chartjs/client/chart.js b/legacy/spikes/graphs-fe/chartjs/client/chart.js similarity index 100% rename from spikes/graphs-fe/chartjs/client/chart.js rename to legacy/spikes/graphs-fe/chartjs/client/chart.js diff --git a/spikes/graphs-fe/chartjs/client/index.js b/legacy/spikes/graphs-fe/chartjs/client/index.js similarity index 100% rename from spikes/graphs-fe/chartjs/client/index.js rename to legacy/spikes/graphs-fe/chartjs/client/index.js diff --git a/spikes/graphs-fe/chartjs/client/root.js b/legacy/spikes/graphs-fe/chartjs/client/root.js similarity index 100% rename from spikes/graphs-fe/chartjs/client/root.js rename to legacy/spikes/graphs-fe/chartjs/client/root.js diff --git a/spikes/graphs-fe/chartjs/client/store.js b/legacy/spikes/graphs-fe/chartjs/client/store.js similarity index 100% rename from spikes/graphs-fe/chartjs/client/store.js rename to legacy/spikes/graphs-fe/chartjs/client/store.js diff --git a/spikes/graphs-fe/chartjs/package.json b/legacy/spikes/graphs-fe/chartjs/package.json similarity index 100% rename from spikes/graphs-fe/chartjs/package.json rename to legacy/spikes/graphs-fe/chartjs/package.json diff --git a/spikes/graphs-fe/chartjs/readme.md b/legacy/spikes/graphs-fe/chartjs/readme.md similarity index 100% rename from spikes/graphs-fe/chartjs/readme.md rename to legacy/spikes/graphs-fe/chartjs/readme.md diff --git a/spikes/graphs-fe/chartjs/server/index.js b/legacy/spikes/graphs-fe/chartjs/server/index.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/index.js rename to legacy/spikes/graphs-fe/chartjs/server/index.js diff --git a/spikes/graphs-fe/chartjs/server/metric.js b/legacy/spikes/graphs-fe/chartjs/server/metric.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/metric.js rename to legacy/spikes/graphs-fe/chartjs/server/metric.js diff --git a/spikes/graphs-fe/chartjs/server/plugins.js b/legacy/spikes/graphs-fe/chartjs/server/plugins.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/plugins.js rename to legacy/spikes/graphs-fe/chartjs/server/plugins.js diff --git a/spikes/graphs-fe/chartjs/server/routes/home.js b/legacy/spikes/graphs-fe/chartjs/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/routes/home.js rename to legacy/spikes/graphs-fe/chartjs/server/routes/home.js diff --git a/spikes/graphs-fe/chartjs/server/routes/metrics.js b/legacy/spikes/graphs-fe/chartjs/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/routes/metrics.js rename to legacy/spikes/graphs-fe/chartjs/server/routes/metrics.js diff --git a/spikes/graphs-fe/chartjs/server/routes/static.js b/legacy/spikes/graphs-fe/chartjs/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/routes/static.js rename to legacy/spikes/graphs-fe/chartjs/server/routes/static.js diff --git a/spikes/graphs-fe/chartjs/server/routes/version.js b/legacy/spikes/graphs-fe/chartjs/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/chartjs/server/routes/version.js rename to legacy/spikes/graphs-fe/chartjs/server/routes/version.js diff --git a/spikes/graphs-fe/chartjs/static/index.html b/legacy/spikes/graphs-fe/chartjs/static/index.html similarity index 100% rename from spikes/graphs-fe/chartjs/static/index.html rename to legacy/spikes/graphs-fe/chartjs/static/index.html diff --git a/spikes/graphs-fe/chartjs/webpack.config.js b/legacy/spikes/graphs-fe/chartjs/webpack.config.js similarity index 100% rename from spikes/graphs-fe/chartjs/webpack.config.js rename to legacy/spikes/graphs-fe/chartjs/webpack.config.js diff --git a/spikes/graphs-fe/chartjs/yarn.lock b/legacy/spikes/graphs-fe/chartjs/yarn.lock similarity index 100% rename from spikes/graphs-fe/chartjs/yarn.lock rename to legacy/spikes/graphs-fe/chartjs/yarn.lock diff --git a/spikes/graphs-fe/epoch/.babelrc b/legacy/spikes/graphs-fe/epoch/.babelrc similarity index 100% rename from spikes/graphs-fe/epoch/.babelrc rename to legacy/spikes/graphs-fe/epoch/.babelrc diff --git a/spikes/graphs-fe/epoch/.eslintignore b/legacy/spikes/graphs-fe/epoch/.eslintignore similarity index 100% rename from spikes/graphs-fe/epoch/.eslintignore rename to legacy/spikes/graphs-fe/epoch/.eslintignore diff --git a/spikes/graphs-fe/epoch/.eslintrc b/legacy/spikes/graphs-fe/epoch/.eslintrc similarity index 100% rename from spikes/graphs-fe/epoch/.eslintrc rename to legacy/spikes/graphs-fe/epoch/.eslintrc diff --git a/spikes/graphs-fe/epoch/.gitignore b/legacy/spikes/graphs-fe/epoch/.gitignore similarity index 100% rename from spikes/graphs-fe/epoch/.gitignore rename to legacy/spikes/graphs-fe/epoch/.gitignore diff --git a/spikes/graphs-fe/epoch/client/epoch.js b/legacy/spikes/graphs-fe/epoch/client/epoch.js similarity index 100% rename from spikes/graphs-fe/epoch/client/epoch.js rename to legacy/spikes/graphs-fe/epoch/client/epoch.js diff --git a/spikes/graphs-fe/epoch/client/index.js b/legacy/spikes/graphs-fe/epoch/client/index.js similarity index 100% rename from spikes/graphs-fe/epoch/client/index.js rename to legacy/spikes/graphs-fe/epoch/client/index.js diff --git a/spikes/graphs-fe/epoch/client/root.js b/legacy/spikes/graphs-fe/epoch/client/root.js similarity index 100% rename from spikes/graphs-fe/epoch/client/root.js rename to legacy/spikes/graphs-fe/epoch/client/root.js diff --git a/spikes/graphs-fe/epoch/client/store.js b/legacy/spikes/graphs-fe/epoch/client/store.js similarity index 100% rename from spikes/graphs-fe/epoch/client/store.js rename to legacy/spikes/graphs-fe/epoch/client/store.js diff --git a/spikes/graphs-fe/epoch/package.json b/legacy/spikes/graphs-fe/epoch/package.json similarity index 100% rename from spikes/graphs-fe/epoch/package.json rename to legacy/spikes/graphs-fe/epoch/package.json diff --git a/spikes/graphs-fe/epoch/readme.md b/legacy/spikes/graphs-fe/epoch/readme.md similarity index 100% rename from spikes/graphs-fe/epoch/readme.md rename to legacy/spikes/graphs-fe/epoch/readme.md diff --git a/spikes/graphs-fe/epoch/server/index.js b/legacy/spikes/graphs-fe/epoch/server/index.js similarity index 100% rename from spikes/graphs-fe/epoch/server/index.js rename to legacy/spikes/graphs-fe/epoch/server/index.js diff --git a/spikes/graphs-fe/epoch/server/metric.js b/legacy/spikes/graphs-fe/epoch/server/metric.js similarity index 100% rename from spikes/graphs-fe/epoch/server/metric.js rename to legacy/spikes/graphs-fe/epoch/server/metric.js diff --git a/spikes/graphs-fe/epoch/server/plugins.js b/legacy/spikes/graphs-fe/epoch/server/plugins.js similarity index 100% rename from spikes/graphs-fe/epoch/server/plugins.js rename to legacy/spikes/graphs-fe/epoch/server/plugins.js diff --git a/spikes/graphs-fe/epoch/server/routes/home.js b/legacy/spikes/graphs-fe/epoch/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/epoch/server/routes/home.js rename to legacy/spikes/graphs-fe/epoch/server/routes/home.js diff --git a/spikes/graphs-fe/epoch/server/routes/metrics.js b/legacy/spikes/graphs-fe/epoch/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/epoch/server/routes/metrics.js rename to legacy/spikes/graphs-fe/epoch/server/routes/metrics.js diff --git a/spikes/graphs-fe/epoch/server/routes/static.js b/legacy/spikes/graphs-fe/epoch/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/epoch/server/routes/static.js rename to legacy/spikes/graphs-fe/epoch/server/routes/static.js diff --git a/spikes/graphs-fe/epoch/server/routes/version.js b/legacy/spikes/graphs-fe/epoch/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/epoch/server/routes/version.js rename to legacy/spikes/graphs-fe/epoch/server/routes/version.js diff --git a/spikes/graphs-fe/epoch/static/index.html b/legacy/spikes/graphs-fe/epoch/static/index.html similarity index 100% rename from spikes/graphs-fe/epoch/static/index.html rename to legacy/spikes/graphs-fe/epoch/static/index.html diff --git a/spikes/graphs-fe/epoch/webpack.config.js b/legacy/spikes/graphs-fe/epoch/webpack.config.js similarity index 100% rename from spikes/graphs-fe/epoch/webpack.config.js rename to legacy/spikes/graphs-fe/epoch/webpack.config.js diff --git a/spikes/graphs-fe/nvd3/.babelrc b/legacy/spikes/graphs-fe/nvd3/.babelrc similarity index 100% rename from spikes/graphs-fe/nvd3/.babelrc rename to legacy/spikes/graphs-fe/nvd3/.babelrc diff --git a/spikes/graphs-fe/nvd3/.eslintignore b/legacy/spikes/graphs-fe/nvd3/.eslintignore similarity index 100% rename from spikes/graphs-fe/nvd3/.eslintignore rename to legacy/spikes/graphs-fe/nvd3/.eslintignore diff --git a/spikes/graphs-fe/nvd3/.eslintrc b/legacy/spikes/graphs-fe/nvd3/.eslintrc similarity index 100% rename from spikes/graphs-fe/nvd3/.eslintrc rename to legacy/spikes/graphs-fe/nvd3/.eslintrc diff --git a/spikes/graphs-fe/nvd3/.gitignore b/legacy/spikes/graphs-fe/nvd3/.gitignore similarity index 100% rename from spikes/graphs-fe/nvd3/.gitignore rename to legacy/spikes/graphs-fe/nvd3/.gitignore diff --git a/spikes/graphs-fe/nvd3/client/chart.js b/legacy/spikes/graphs-fe/nvd3/client/chart.js similarity index 100% rename from spikes/graphs-fe/nvd3/client/chart.js rename to legacy/spikes/graphs-fe/nvd3/client/chart.js diff --git a/spikes/graphs-fe/nvd3/client/index.js b/legacy/spikes/graphs-fe/nvd3/client/index.js similarity index 100% rename from spikes/graphs-fe/nvd3/client/index.js rename to legacy/spikes/graphs-fe/nvd3/client/index.js diff --git a/spikes/graphs-fe/nvd3/client/root.js b/legacy/spikes/graphs-fe/nvd3/client/root.js similarity index 100% rename from spikes/graphs-fe/nvd3/client/root.js rename to legacy/spikes/graphs-fe/nvd3/client/root.js diff --git a/spikes/graphs-fe/nvd3/client/store.js b/legacy/spikes/graphs-fe/nvd3/client/store.js similarity index 100% rename from spikes/graphs-fe/nvd3/client/store.js rename to legacy/spikes/graphs-fe/nvd3/client/store.js diff --git a/spikes/graphs-fe/nvd3/package.json b/legacy/spikes/graphs-fe/nvd3/package.json similarity index 100% rename from spikes/graphs-fe/nvd3/package.json rename to legacy/spikes/graphs-fe/nvd3/package.json diff --git a/spikes/graphs-fe/nvd3/readme.md b/legacy/spikes/graphs-fe/nvd3/readme.md similarity index 100% rename from spikes/graphs-fe/nvd3/readme.md rename to legacy/spikes/graphs-fe/nvd3/readme.md diff --git a/spikes/graphs-fe/nvd3/server/index.js b/legacy/spikes/graphs-fe/nvd3/server/index.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/index.js rename to legacy/spikes/graphs-fe/nvd3/server/index.js diff --git a/spikes/graphs-fe/nvd3/server/metric.js b/legacy/spikes/graphs-fe/nvd3/server/metric.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/metric.js rename to legacy/spikes/graphs-fe/nvd3/server/metric.js diff --git a/spikes/graphs-fe/nvd3/server/plugins.js b/legacy/spikes/graphs-fe/nvd3/server/plugins.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/plugins.js rename to legacy/spikes/graphs-fe/nvd3/server/plugins.js diff --git a/spikes/graphs-fe/nvd3/server/routes/home.js b/legacy/spikes/graphs-fe/nvd3/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/routes/home.js rename to legacy/spikes/graphs-fe/nvd3/server/routes/home.js diff --git a/spikes/graphs-fe/nvd3/server/routes/metrics.js b/legacy/spikes/graphs-fe/nvd3/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/routes/metrics.js rename to legacy/spikes/graphs-fe/nvd3/server/routes/metrics.js diff --git a/spikes/graphs-fe/nvd3/server/routes/static.js b/legacy/spikes/graphs-fe/nvd3/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/routes/static.js rename to legacy/spikes/graphs-fe/nvd3/server/routes/static.js diff --git a/spikes/graphs-fe/nvd3/server/routes/version.js b/legacy/spikes/graphs-fe/nvd3/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/nvd3/server/routes/version.js rename to legacy/spikes/graphs-fe/nvd3/server/routes/version.js diff --git a/spikes/graphs-fe/nvd3/static/index.html b/legacy/spikes/graphs-fe/nvd3/static/index.html similarity index 100% rename from spikes/graphs-fe/nvd3/static/index.html rename to legacy/spikes/graphs-fe/nvd3/static/index.html diff --git a/spikes/graphs-fe/nvd3/webpack.config.js b/legacy/spikes/graphs-fe/nvd3/webpack.config.js similarity index 100% rename from spikes/graphs-fe/nvd3/webpack.config.js rename to legacy/spikes/graphs-fe/nvd3/webpack.config.js diff --git a/spikes/graphs-fe/plotly/.babelrc b/legacy/spikes/graphs-fe/plotly/.babelrc similarity index 100% rename from spikes/graphs-fe/plotly/.babelrc rename to legacy/spikes/graphs-fe/plotly/.babelrc diff --git a/spikes/graphs-fe/plotly/.eslintignore b/legacy/spikes/graphs-fe/plotly/.eslintignore similarity index 100% rename from spikes/graphs-fe/plotly/.eslintignore rename to legacy/spikes/graphs-fe/plotly/.eslintignore diff --git a/spikes/graphs-fe/plotly/.eslintrc b/legacy/spikes/graphs-fe/plotly/.eslintrc similarity index 100% rename from spikes/graphs-fe/plotly/.eslintrc rename to legacy/spikes/graphs-fe/plotly/.eslintrc diff --git a/spikes/graphs-fe/plotly/.gitignore b/legacy/spikes/graphs-fe/plotly/.gitignore similarity index 100% rename from spikes/graphs-fe/plotly/.gitignore rename to legacy/spikes/graphs-fe/plotly/.gitignore diff --git a/spikes/graphs-fe/plotly/client/index.js b/legacy/spikes/graphs-fe/plotly/client/index.js similarity index 100% rename from spikes/graphs-fe/plotly/client/index.js rename to legacy/spikes/graphs-fe/plotly/client/index.js diff --git a/spikes/graphs-fe/plotly/client/plotly.js b/legacy/spikes/graphs-fe/plotly/client/plotly.js similarity index 100% rename from spikes/graphs-fe/plotly/client/plotly.js rename to legacy/spikes/graphs-fe/plotly/client/plotly.js diff --git a/spikes/graphs-fe/plotly/client/root.js b/legacy/spikes/graphs-fe/plotly/client/root.js similarity index 100% rename from spikes/graphs-fe/plotly/client/root.js rename to legacy/spikes/graphs-fe/plotly/client/root.js diff --git a/spikes/graphs-fe/plotly/client/store.js b/legacy/spikes/graphs-fe/plotly/client/store.js similarity index 100% rename from spikes/graphs-fe/plotly/client/store.js rename to legacy/spikes/graphs-fe/plotly/client/store.js diff --git a/spikes/graphs-fe/plotly/package.json b/legacy/spikes/graphs-fe/plotly/package.json similarity index 100% rename from spikes/graphs-fe/plotly/package.json rename to legacy/spikes/graphs-fe/plotly/package.json diff --git a/spikes/graphs-fe/plotly/readme.md b/legacy/spikes/graphs-fe/plotly/readme.md similarity index 100% rename from spikes/graphs-fe/plotly/readme.md rename to legacy/spikes/graphs-fe/plotly/readme.md diff --git a/spikes/graphs-fe/plotly/server/index.js b/legacy/spikes/graphs-fe/plotly/server/index.js similarity index 100% rename from spikes/graphs-fe/plotly/server/index.js rename to legacy/spikes/graphs-fe/plotly/server/index.js diff --git a/spikes/graphs-fe/plotly/server/metric.js b/legacy/spikes/graphs-fe/plotly/server/metric.js similarity index 100% rename from spikes/graphs-fe/plotly/server/metric.js rename to legacy/spikes/graphs-fe/plotly/server/metric.js diff --git a/spikes/graphs-fe/plotly/server/plugins.js b/legacy/spikes/graphs-fe/plotly/server/plugins.js similarity index 100% rename from spikes/graphs-fe/plotly/server/plugins.js rename to legacy/spikes/graphs-fe/plotly/server/plugins.js diff --git a/spikes/graphs-fe/plotly/server/routes/home.js b/legacy/spikes/graphs-fe/plotly/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/plotly/server/routes/home.js rename to legacy/spikes/graphs-fe/plotly/server/routes/home.js diff --git a/spikes/graphs-fe/plotly/server/routes/metrics.js b/legacy/spikes/graphs-fe/plotly/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/plotly/server/routes/metrics.js rename to legacy/spikes/graphs-fe/plotly/server/routes/metrics.js diff --git a/spikes/graphs-fe/plotly/server/routes/static.js b/legacy/spikes/graphs-fe/plotly/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/plotly/server/routes/static.js rename to legacy/spikes/graphs-fe/plotly/server/routes/static.js diff --git a/spikes/graphs-fe/plotly/server/routes/version.js b/legacy/spikes/graphs-fe/plotly/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/plotly/server/routes/version.js rename to legacy/spikes/graphs-fe/plotly/server/routes/version.js diff --git a/spikes/graphs-fe/plotly/static/index.html b/legacy/spikes/graphs-fe/plotly/static/index.html similarity index 100% rename from spikes/graphs-fe/plotly/static/index.html rename to legacy/spikes/graphs-fe/plotly/static/index.html diff --git a/spikes/graphs-fe/plotly/webpack.config.js b/legacy/spikes/graphs-fe/plotly/webpack.config.js similarity index 100% rename from spikes/graphs-fe/plotly/webpack.config.js rename to legacy/spikes/graphs-fe/plotly/webpack.config.js diff --git a/spikes/graphs-fe/rickshaw/.babelrc b/legacy/spikes/graphs-fe/rickshaw/.babelrc similarity index 100% rename from spikes/graphs-fe/rickshaw/.babelrc rename to legacy/spikes/graphs-fe/rickshaw/.babelrc diff --git a/spikes/graphs-fe/rickshaw/.eslintignore b/legacy/spikes/graphs-fe/rickshaw/.eslintignore similarity index 100% rename from spikes/graphs-fe/rickshaw/.eslintignore rename to legacy/spikes/graphs-fe/rickshaw/.eslintignore diff --git a/spikes/graphs-fe/rickshaw/.eslintrc b/legacy/spikes/graphs-fe/rickshaw/.eslintrc similarity index 100% rename from spikes/graphs-fe/rickshaw/.eslintrc rename to legacy/spikes/graphs-fe/rickshaw/.eslintrc diff --git a/spikes/graphs-fe/rickshaw/.gitignore b/legacy/spikes/graphs-fe/rickshaw/.gitignore similarity index 100% rename from spikes/graphs-fe/rickshaw/.gitignore rename to legacy/spikes/graphs-fe/rickshaw/.gitignore diff --git a/spikes/graphs-fe/rickshaw/client/chart.js b/legacy/spikes/graphs-fe/rickshaw/client/chart.js similarity index 100% rename from spikes/graphs-fe/rickshaw/client/chart.js rename to legacy/spikes/graphs-fe/rickshaw/client/chart.js diff --git a/spikes/graphs-fe/rickshaw/client/index.js b/legacy/spikes/graphs-fe/rickshaw/client/index.js similarity index 100% rename from spikes/graphs-fe/rickshaw/client/index.js rename to legacy/spikes/graphs-fe/rickshaw/client/index.js diff --git a/spikes/graphs-fe/rickshaw/client/root.js b/legacy/spikes/graphs-fe/rickshaw/client/root.js similarity index 100% rename from spikes/graphs-fe/rickshaw/client/root.js rename to legacy/spikes/graphs-fe/rickshaw/client/root.js diff --git a/spikes/graphs-fe/rickshaw/client/store.js b/legacy/spikes/graphs-fe/rickshaw/client/store.js similarity index 100% rename from spikes/graphs-fe/rickshaw/client/store.js rename to legacy/spikes/graphs-fe/rickshaw/client/store.js diff --git a/spikes/graphs-fe/rickshaw/client/style.css b/legacy/spikes/graphs-fe/rickshaw/client/style.css similarity index 100% rename from spikes/graphs-fe/rickshaw/client/style.css rename to legacy/spikes/graphs-fe/rickshaw/client/style.css diff --git a/spikes/graphs-fe/rickshaw/package.json b/legacy/spikes/graphs-fe/rickshaw/package.json similarity index 100% rename from spikes/graphs-fe/rickshaw/package.json rename to legacy/spikes/graphs-fe/rickshaw/package.json diff --git a/spikes/graphs-fe/rickshaw/readme.md b/legacy/spikes/graphs-fe/rickshaw/readme.md similarity index 100% rename from spikes/graphs-fe/rickshaw/readme.md rename to legacy/spikes/graphs-fe/rickshaw/readme.md diff --git a/spikes/graphs-fe/rickshaw/server/index.js b/legacy/spikes/graphs-fe/rickshaw/server/index.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/index.js rename to legacy/spikes/graphs-fe/rickshaw/server/index.js diff --git a/spikes/graphs-fe/rickshaw/server/metric.js b/legacy/spikes/graphs-fe/rickshaw/server/metric.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/metric.js rename to legacy/spikes/graphs-fe/rickshaw/server/metric.js diff --git a/spikes/graphs-fe/rickshaw/server/plugins.js b/legacy/spikes/graphs-fe/rickshaw/server/plugins.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/plugins.js rename to legacy/spikes/graphs-fe/rickshaw/server/plugins.js diff --git a/spikes/graphs-fe/rickshaw/server/routes/home.js b/legacy/spikes/graphs-fe/rickshaw/server/routes/home.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/routes/home.js rename to legacy/spikes/graphs-fe/rickshaw/server/routes/home.js diff --git a/spikes/graphs-fe/rickshaw/server/routes/metrics.js b/legacy/spikes/graphs-fe/rickshaw/server/routes/metrics.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/routes/metrics.js rename to legacy/spikes/graphs-fe/rickshaw/server/routes/metrics.js diff --git a/spikes/graphs-fe/rickshaw/server/routes/static.js b/legacy/spikes/graphs-fe/rickshaw/server/routes/static.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/routes/static.js rename to legacy/spikes/graphs-fe/rickshaw/server/routes/static.js diff --git a/spikes/graphs-fe/rickshaw/server/routes/version.js b/legacy/spikes/graphs-fe/rickshaw/server/routes/version.js similarity index 100% rename from spikes/graphs-fe/rickshaw/server/routes/version.js rename to legacy/spikes/graphs-fe/rickshaw/server/routes/version.js diff --git a/spikes/graphs-fe/rickshaw/static/index.html b/legacy/spikes/graphs-fe/rickshaw/static/index.html similarity index 100% rename from spikes/graphs-fe/rickshaw/static/index.html rename to legacy/spikes/graphs-fe/rickshaw/static/index.html diff --git a/spikes/graphs-fe/rickshaw/webpack.config.js b/legacy/spikes/graphs-fe/rickshaw/webpack.config.js similarity index 100% rename from spikes/graphs-fe/rickshaw/webpack.config.js rename to legacy/spikes/graphs-fe/rickshaw/webpack.config.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/.babelrc b/legacy/spikes/graphs-matrix/chartjs-whiskers/.babelrc similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/.babelrc rename to legacy/spikes/graphs-matrix/chartjs-whiskers/.babelrc diff --git a/spikes/graphs-matrix/chartjs-whiskers/.eslintignore b/legacy/spikes/graphs-matrix/chartjs-whiskers/.eslintignore similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/.eslintignore rename to legacy/spikes/graphs-matrix/chartjs-whiskers/.eslintignore diff --git a/spikes/graphs-matrix/chartjs-whiskers/.eslintrc b/legacy/spikes/graphs-matrix/chartjs-whiskers/.eslintrc similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/.eslintrc rename to legacy/spikes/graphs-matrix/chartjs-whiskers/.eslintrc diff --git a/spikes/graphs-matrix/chartjs-whiskers/.gitignore b/legacy/spikes/graphs-matrix/chartjs-whiskers/.gitignore similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/.gitignore rename to legacy/spikes/graphs-matrix/chartjs-whiskers/.gitignore diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/actions.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/actions.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/actions.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/actions.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/chart/base.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/base.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/chart/base.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/base.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/chart/cpu.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/cpu.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/chart/cpu.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/cpu.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/chart/disk.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/disk.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/chart/disk.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/disk.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/chart/index.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/chart/index.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/index.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/chart/mem.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/mem.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/chart/mem.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/chart/mem.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/index.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/index.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/index.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/matrix.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/matrix.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/matrix.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/matrix.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/root.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/root.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/root.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/root.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/client/store.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/client/store.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/client/store.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/client/store.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/local.txt b/legacy/spikes/graphs-matrix/chartjs-whiskers/local.txt similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/local.txt rename to legacy/spikes/graphs-matrix/chartjs-whiskers/local.txt diff --git a/spikes/graphs-matrix/chartjs-whiskers/package.json b/legacy/spikes/graphs-matrix/chartjs-whiskers/package.json similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/package.json rename to legacy/spikes/graphs-matrix/chartjs-whiskers/package.json diff --git a/spikes/graphs-matrix/chartjs-whiskers/readme.md b/legacy/spikes/graphs-matrix/chartjs-whiskers/readme.md similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/readme.md rename to legacy/spikes/graphs-matrix/chartjs-whiskers/readme.md diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/index.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/index.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/index.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/metric.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/metric.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/metric.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/metric.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/plugins.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/plugins.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/plugins.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/plugins.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/routes/home.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/home.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/routes/home.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/home.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/routes/metrics.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/metrics.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/routes/metrics.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/metrics.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/routes/static.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/static.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/routes/static.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/static.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/server/routes/version.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/version.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/server/routes/version.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/server/routes/version.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/static/index.html b/legacy/spikes/graphs-matrix/chartjs-whiskers/static/index.html similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/static/index.html rename to legacy/spikes/graphs-matrix/chartjs-whiskers/static/index.html diff --git a/spikes/graphs-matrix/chartjs-whiskers/webpack.config.js b/legacy/spikes/graphs-matrix/chartjs-whiskers/webpack.config.js similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/webpack.config.js rename to legacy/spikes/graphs-matrix/chartjs-whiskers/webpack.config.js diff --git a/spikes/graphs-matrix/chartjs-whiskers/yarn.lock b/legacy/spikes/graphs-matrix/chartjs-whiskers/yarn.lock similarity index 100% rename from spikes/graphs-matrix/chartjs-whiskers/yarn.lock rename to legacy/spikes/graphs-matrix/chartjs-whiskers/yarn.lock diff --git a/spikes/graphs-matrix/chartjs/.babelrc b/legacy/spikes/graphs-matrix/chartjs/.babelrc similarity index 100% rename from spikes/graphs-matrix/chartjs/.babelrc rename to legacy/spikes/graphs-matrix/chartjs/.babelrc diff --git a/spikes/graphs-matrix/chartjs/.eslintignore b/legacy/spikes/graphs-matrix/chartjs/.eslintignore similarity index 100% rename from spikes/graphs-matrix/chartjs/.eslintignore rename to legacy/spikes/graphs-matrix/chartjs/.eslintignore diff --git a/spikes/graphs-matrix/chartjs/.eslintrc b/legacy/spikes/graphs-matrix/chartjs/.eslintrc similarity index 100% rename from spikes/graphs-matrix/chartjs/.eslintrc rename to legacy/spikes/graphs-matrix/chartjs/.eslintrc diff --git a/spikes/graphs-matrix/chartjs/.gitignore b/legacy/spikes/graphs-matrix/chartjs/.gitignore similarity index 100% rename from spikes/graphs-matrix/chartjs/.gitignore rename to legacy/spikes/graphs-matrix/chartjs/.gitignore diff --git a/spikes/graphs-matrix/chartjs/client/actions.js b/legacy/spikes/graphs-matrix/chartjs/client/actions.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/actions.js rename to legacy/spikes/graphs-matrix/chartjs/client/actions.js diff --git a/spikes/graphs-matrix/chartjs/client/chart/base.js b/legacy/spikes/graphs-matrix/chartjs/client/chart/base.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/chart/base.js rename to legacy/spikes/graphs-matrix/chartjs/client/chart/base.js diff --git a/spikes/graphs-matrix/chartjs/client/chart/cpu.js b/legacy/spikes/graphs-matrix/chartjs/client/chart/cpu.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/chart/cpu.js rename to legacy/spikes/graphs-matrix/chartjs/client/chart/cpu.js diff --git a/spikes/graphs-matrix/chartjs/client/chart/disk.js b/legacy/spikes/graphs-matrix/chartjs/client/chart/disk.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/chart/disk.js rename to legacy/spikes/graphs-matrix/chartjs/client/chart/disk.js diff --git a/spikes/graphs-matrix/chartjs/client/chart/index.js b/legacy/spikes/graphs-matrix/chartjs/client/chart/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/chart/index.js rename to legacy/spikes/graphs-matrix/chartjs/client/chart/index.js diff --git a/spikes/graphs-matrix/chartjs/client/chart/mem.js b/legacy/spikes/graphs-matrix/chartjs/client/chart/mem.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/chart/mem.js rename to legacy/spikes/graphs-matrix/chartjs/client/chart/mem.js diff --git a/spikes/graphs-matrix/chartjs/client/index.js b/legacy/spikes/graphs-matrix/chartjs/client/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/index.js rename to legacy/spikes/graphs-matrix/chartjs/client/index.js diff --git a/spikes/graphs-matrix/chartjs/client/matrix.js b/legacy/spikes/graphs-matrix/chartjs/client/matrix.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/matrix.js rename to legacy/spikes/graphs-matrix/chartjs/client/matrix.js diff --git a/spikes/graphs-matrix/chartjs/client/root.js b/legacy/spikes/graphs-matrix/chartjs/client/root.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/root.js rename to legacy/spikes/graphs-matrix/chartjs/client/root.js diff --git a/spikes/graphs-matrix/chartjs/client/store.js b/legacy/spikes/graphs-matrix/chartjs/client/store.js similarity index 100% rename from spikes/graphs-matrix/chartjs/client/store.js rename to legacy/spikes/graphs-matrix/chartjs/client/store.js diff --git a/spikes/graphs-matrix/chartjs/package.json b/legacy/spikes/graphs-matrix/chartjs/package.json similarity index 100% rename from spikes/graphs-matrix/chartjs/package.json rename to legacy/spikes/graphs-matrix/chartjs/package.json diff --git a/spikes/graphs-matrix/chartjs/readme.md b/legacy/spikes/graphs-matrix/chartjs/readme.md similarity index 100% rename from spikes/graphs-matrix/chartjs/readme.md rename to legacy/spikes/graphs-matrix/chartjs/readme.md diff --git a/spikes/graphs-matrix/chartjs/server/index.js b/legacy/spikes/graphs-matrix/chartjs/server/index.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/index.js rename to legacy/spikes/graphs-matrix/chartjs/server/index.js diff --git a/spikes/graphs-matrix/chartjs/server/metric.js b/legacy/spikes/graphs-matrix/chartjs/server/metric.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/metric.js rename to legacy/spikes/graphs-matrix/chartjs/server/metric.js diff --git a/spikes/graphs-matrix/chartjs/server/plugins.js b/legacy/spikes/graphs-matrix/chartjs/server/plugins.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/plugins.js rename to legacy/spikes/graphs-matrix/chartjs/server/plugins.js diff --git a/spikes/graphs-matrix/chartjs/server/routes/home.js b/legacy/spikes/graphs-matrix/chartjs/server/routes/home.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/routes/home.js rename to legacy/spikes/graphs-matrix/chartjs/server/routes/home.js diff --git a/spikes/graphs-matrix/chartjs/server/routes/metrics.js b/legacy/spikes/graphs-matrix/chartjs/server/routes/metrics.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/routes/metrics.js rename to legacy/spikes/graphs-matrix/chartjs/server/routes/metrics.js diff --git a/spikes/graphs-matrix/chartjs/server/routes/static.js b/legacy/spikes/graphs-matrix/chartjs/server/routes/static.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/routes/static.js rename to legacy/spikes/graphs-matrix/chartjs/server/routes/static.js diff --git a/spikes/graphs-matrix/chartjs/server/routes/version.js b/legacy/spikes/graphs-matrix/chartjs/server/routes/version.js similarity index 100% rename from spikes/graphs-matrix/chartjs/server/routes/version.js rename to legacy/spikes/graphs-matrix/chartjs/server/routes/version.js diff --git a/spikes/graphs-matrix/chartjs/static/index.html b/legacy/spikes/graphs-matrix/chartjs/static/index.html similarity index 100% rename from spikes/graphs-matrix/chartjs/static/index.html rename to legacy/spikes/graphs-matrix/chartjs/static/index.html diff --git a/spikes/graphs-matrix/chartjs/webpack.config.js b/legacy/spikes/graphs-matrix/chartjs/webpack.config.js similarity index 100% rename from spikes/graphs-matrix/chartjs/webpack.config.js rename to legacy/spikes/graphs-matrix/chartjs/webpack.config.js diff --git a/spikes/graphs-matrix/epoch/.babelrc b/legacy/spikes/graphs-matrix/epoch/.babelrc similarity index 100% rename from spikes/graphs-matrix/epoch/.babelrc rename to legacy/spikes/graphs-matrix/epoch/.babelrc diff --git a/spikes/graphs-matrix/epoch/.eslintignore b/legacy/spikes/graphs-matrix/epoch/.eslintignore similarity index 100% rename from spikes/graphs-matrix/epoch/.eslintignore rename to legacy/spikes/graphs-matrix/epoch/.eslintignore diff --git a/spikes/graphs-matrix/epoch/.eslintrc b/legacy/spikes/graphs-matrix/epoch/.eslintrc similarity index 100% rename from spikes/graphs-matrix/epoch/.eslintrc rename to legacy/spikes/graphs-matrix/epoch/.eslintrc diff --git a/spikes/graphs-matrix/epoch/.gitignore b/legacy/spikes/graphs-matrix/epoch/.gitignore similarity index 100% rename from spikes/graphs-matrix/epoch/.gitignore rename to legacy/spikes/graphs-matrix/epoch/.gitignore diff --git a/spikes/graphs-matrix/epoch/client/actions.js b/legacy/spikes/graphs-matrix/epoch/client/actions.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/actions.js rename to legacy/spikes/graphs-matrix/epoch/client/actions.js diff --git a/spikes/graphs-matrix/epoch/client/epoch.js b/legacy/spikes/graphs-matrix/epoch/client/epoch.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/epoch.js rename to legacy/spikes/graphs-matrix/epoch/client/epoch.js diff --git a/spikes/graphs-matrix/epoch/client/index.js b/legacy/spikes/graphs-matrix/epoch/client/index.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/index.js rename to legacy/spikes/graphs-matrix/epoch/client/index.js diff --git a/spikes/graphs-matrix/epoch/client/matrix.js b/legacy/spikes/graphs-matrix/epoch/client/matrix.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/matrix.js rename to legacy/spikes/graphs-matrix/epoch/client/matrix.js diff --git a/spikes/graphs-matrix/epoch/client/root.js b/legacy/spikes/graphs-matrix/epoch/client/root.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/root.js rename to legacy/spikes/graphs-matrix/epoch/client/root.js diff --git a/spikes/graphs-matrix/epoch/client/store.js b/legacy/spikes/graphs-matrix/epoch/client/store.js similarity index 100% rename from spikes/graphs-matrix/epoch/client/store.js rename to legacy/spikes/graphs-matrix/epoch/client/store.js diff --git a/spikes/graphs-matrix/epoch/package.json b/legacy/spikes/graphs-matrix/epoch/package.json similarity index 100% rename from spikes/graphs-matrix/epoch/package.json rename to legacy/spikes/graphs-matrix/epoch/package.json diff --git a/spikes/graphs-matrix/epoch/readme.md b/legacy/spikes/graphs-matrix/epoch/readme.md similarity index 100% rename from spikes/graphs-matrix/epoch/readme.md rename to legacy/spikes/graphs-matrix/epoch/readme.md diff --git a/spikes/graphs-matrix/epoch/server/index.js b/legacy/spikes/graphs-matrix/epoch/server/index.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/index.js rename to legacy/spikes/graphs-matrix/epoch/server/index.js diff --git a/spikes/graphs-matrix/epoch/server/metric.js b/legacy/spikes/graphs-matrix/epoch/server/metric.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/metric.js rename to legacy/spikes/graphs-matrix/epoch/server/metric.js diff --git a/spikes/graphs-matrix/epoch/server/plugins.js b/legacy/spikes/graphs-matrix/epoch/server/plugins.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/plugins.js rename to legacy/spikes/graphs-matrix/epoch/server/plugins.js diff --git a/spikes/graphs-matrix/epoch/server/routes/home.js b/legacy/spikes/graphs-matrix/epoch/server/routes/home.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/routes/home.js rename to legacy/spikes/graphs-matrix/epoch/server/routes/home.js diff --git a/spikes/graphs-matrix/epoch/server/routes/metrics.js b/legacy/spikes/graphs-matrix/epoch/server/routes/metrics.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/routes/metrics.js rename to legacy/spikes/graphs-matrix/epoch/server/routes/metrics.js diff --git a/spikes/graphs-matrix/epoch/server/routes/static.js b/legacy/spikes/graphs-matrix/epoch/server/routes/static.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/routes/static.js rename to legacy/spikes/graphs-matrix/epoch/server/routes/static.js diff --git a/spikes/graphs-matrix/epoch/server/routes/version.js b/legacy/spikes/graphs-matrix/epoch/server/routes/version.js similarity index 100% rename from spikes/graphs-matrix/epoch/server/routes/version.js rename to legacy/spikes/graphs-matrix/epoch/server/routes/version.js diff --git a/spikes/graphs-matrix/epoch/static/index.html b/legacy/spikes/graphs-matrix/epoch/static/index.html similarity index 100% rename from spikes/graphs-matrix/epoch/static/index.html rename to legacy/spikes/graphs-matrix/epoch/static/index.html diff --git a/spikes/graphs-matrix/epoch/webpack.config.js b/legacy/spikes/graphs-matrix/epoch/webpack.config.js similarity index 100% rename from spikes/graphs-matrix/epoch/webpack.config.js rename to legacy/spikes/graphs-matrix/epoch/webpack.config.js diff --git a/spikes/graphs-matrix/nvd3/.babelrc b/legacy/spikes/graphs-matrix/nvd3/.babelrc similarity index 100% rename from spikes/graphs-matrix/nvd3/.babelrc rename to legacy/spikes/graphs-matrix/nvd3/.babelrc diff --git a/spikes/graphs-matrix/nvd3/.eslintignore b/legacy/spikes/graphs-matrix/nvd3/.eslintignore similarity index 100% rename from spikes/graphs-matrix/nvd3/.eslintignore rename to legacy/spikes/graphs-matrix/nvd3/.eslintignore diff --git a/spikes/graphs-matrix/nvd3/.eslintrc b/legacy/spikes/graphs-matrix/nvd3/.eslintrc similarity index 100% rename from spikes/graphs-matrix/nvd3/.eslintrc rename to legacy/spikes/graphs-matrix/nvd3/.eslintrc diff --git a/spikes/graphs-matrix/nvd3/.gitignore b/legacy/spikes/graphs-matrix/nvd3/.gitignore similarity index 100% rename from spikes/graphs-matrix/nvd3/.gitignore rename to legacy/spikes/graphs-matrix/nvd3/.gitignore diff --git a/spikes/graphs-matrix/nvd3/client/actions.js b/legacy/spikes/graphs-matrix/nvd3/client/actions.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/actions.js rename to legacy/spikes/graphs-matrix/nvd3/client/actions.js diff --git a/spikes/graphs-matrix/nvd3/client/chart.js b/legacy/spikes/graphs-matrix/nvd3/client/chart.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/chart.js rename to legacy/spikes/graphs-matrix/nvd3/client/chart.js diff --git a/spikes/graphs-matrix/nvd3/client/index.js b/legacy/spikes/graphs-matrix/nvd3/client/index.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/index.js rename to legacy/spikes/graphs-matrix/nvd3/client/index.js diff --git a/spikes/graphs-matrix/nvd3/client/matrix.js b/legacy/spikes/graphs-matrix/nvd3/client/matrix.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/matrix.js rename to legacy/spikes/graphs-matrix/nvd3/client/matrix.js diff --git a/spikes/graphs-matrix/nvd3/client/root.js b/legacy/spikes/graphs-matrix/nvd3/client/root.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/root.js rename to legacy/spikes/graphs-matrix/nvd3/client/root.js diff --git a/spikes/graphs-matrix/nvd3/client/store.js b/legacy/spikes/graphs-matrix/nvd3/client/store.js similarity index 100% rename from spikes/graphs-matrix/nvd3/client/store.js rename to legacy/spikes/graphs-matrix/nvd3/client/store.js diff --git a/spikes/graphs-matrix/nvd3/package.json b/legacy/spikes/graphs-matrix/nvd3/package.json similarity index 100% rename from spikes/graphs-matrix/nvd3/package.json rename to legacy/spikes/graphs-matrix/nvd3/package.json diff --git a/spikes/graphs-matrix/nvd3/readme.md b/legacy/spikes/graphs-matrix/nvd3/readme.md similarity index 100% rename from spikes/graphs-matrix/nvd3/readme.md rename to legacy/spikes/graphs-matrix/nvd3/readme.md diff --git a/spikes/graphs-matrix/nvd3/server/index.js b/legacy/spikes/graphs-matrix/nvd3/server/index.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/index.js rename to legacy/spikes/graphs-matrix/nvd3/server/index.js diff --git a/spikes/graphs-matrix/nvd3/server/metric.js b/legacy/spikes/graphs-matrix/nvd3/server/metric.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/metric.js rename to legacy/spikes/graphs-matrix/nvd3/server/metric.js diff --git a/spikes/graphs-matrix/nvd3/server/plugins.js b/legacy/spikes/graphs-matrix/nvd3/server/plugins.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/plugins.js rename to legacy/spikes/graphs-matrix/nvd3/server/plugins.js diff --git a/spikes/graphs-matrix/nvd3/server/routes/home.js b/legacy/spikes/graphs-matrix/nvd3/server/routes/home.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/routes/home.js rename to legacy/spikes/graphs-matrix/nvd3/server/routes/home.js diff --git a/spikes/graphs-matrix/nvd3/server/routes/metrics.js b/legacy/spikes/graphs-matrix/nvd3/server/routes/metrics.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/routes/metrics.js rename to legacy/spikes/graphs-matrix/nvd3/server/routes/metrics.js diff --git a/spikes/graphs-matrix/nvd3/server/routes/static.js b/legacy/spikes/graphs-matrix/nvd3/server/routes/static.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/routes/static.js rename to legacy/spikes/graphs-matrix/nvd3/server/routes/static.js diff --git a/spikes/graphs-matrix/nvd3/server/routes/version.js b/legacy/spikes/graphs-matrix/nvd3/server/routes/version.js similarity index 100% rename from spikes/graphs-matrix/nvd3/server/routes/version.js rename to legacy/spikes/graphs-matrix/nvd3/server/routes/version.js diff --git a/spikes/graphs-matrix/nvd3/static/index.html b/legacy/spikes/graphs-matrix/nvd3/static/index.html similarity index 100% rename from spikes/graphs-matrix/nvd3/static/index.html rename to legacy/spikes/graphs-matrix/nvd3/static/index.html diff --git a/spikes/graphs-matrix/nvd3/webpack.config.js b/legacy/spikes/graphs-matrix/nvd3/webpack.config.js similarity index 100% rename from spikes/graphs-matrix/nvd3/webpack.config.js rename to legacy/spikes/graphs-matrix/nvd3/webpack.config.js diff --git a/spikes/graphs-topology/d3/.babelrc b/legacy/spikes/graphs-topology/d3/.babelrc similarity index 100% rename from spikes/graphs-topology/d3/.babelrc rename to legacy/spikes/graphs-topology/d3/.babelrc diff --git a/spikes/graphs-topology/d3/.eslintignore b/legacy/spikes/graphs-topology/d3/.eslintignore similarity index 100% rename from spikes/graphs-topology/d3/.eslintignore rename to legacy/spikes/graphs-topology/d3/.eslintignore diff --git a/spikes/graphs-topology/d3/.eslintrc b/legacy/spikes/graphs-topology/d3/.eslintrc similarity index 100% rename from spikes/graphs-topology/d3/.eslintrc rename to legacy/spikes/graphs-topology/d3/.eslintrc diff --git a/spikes/graphs-topology/d3/.gitignore b/legacy/spikes/graphs-topology/d3/.gitignore similarity index 100% rename from spikes/graphs-topology/d3/.gitignore rename to legacy/spikes/graphs-topology/d3/.gitignore diff --git a/spikes/graphs-topology/d3/client/app.js b/legacy/spikes/graphs-topology/d3/client/app.js similarity index 100% rename from spikes/graphs-topology/d3/client/app.js rename to legacy/spikes/graphs-topology/d3/client/app.js diff --git a/spikes/graphs-topology/d3/client/graph/graph-link.js b/legacy/spikes/graphs-topology/d3/client/graph/graph-link.js similarity index 100% rename from spikes/graphs-topology/d3/client/graph/graph-link.js rename to legacy/spikes/graphs-topology/d3/client/graph/graph-link.js diff --git a/spikes/graphs-topology/d3/client/graph/graph-node-button.js b/legacy/spikes/graphs-topology/d3/client/graph/graph-node-button.js similarity index 100% rename from spikes/graphs-topology/d3/client/graph/graph-node-button.js rename to legacy/spikes/graphs-topology/d3/client/graph/graph-node-button.js diff --git a/spikes/graphs-topology/d3/client/graph/graph-node-metrics.js b/legacy/spikes/graphs-topology/d3/client/graph/graph-node-metrics.js similarity index 100% rename from spikes/graphs-topology/d3/client/graph/graph-node-metrics.js rename to legacy/spikes/graphs-topology/d3/client/graph/graph-node-metrics.js diff --git a/spikes/graphs-topology/d3/client/graph/graph-node.js b/legacy/spikes/graphs-topology/d3/client/graph/graph-node.js similarity index 100% rename from spikes/graphs-topology/d3/client/graph/graph-node.js rename to legacy/spikes/graphs-topology/d3/client/graph/graph-node.js diff --git a/spikes/graphs-topology/d3/client/graph/icon-data-centers.svg b/legacy/spikes/graphs-topology/d3/client/graph/icon-data-centers.svg similarity index 100% rename from spikes/graphs-topology/d3/client/graph/icon-data-centers.svg rename to legacy/spikes/graphs-topology/d3/client/graph/icon-data-centers.svg diff --git a/spikes/graphs-topology/d3/client/graph/icon-heart.svg b/legacy/spikes/graphs-topology/d3/client/graph/icon-heart.svg similarity index 100% rename from spikes/graphs-topology/d3/client/graph/icon-heart.svg rename to legacy/spikes/graphs-topology/d3/client/graph/icon-heart.svg diff --git a/spikes/graphs-topology/d3/client/graph/icon-instances.svg b/legacy/spikes/graphs-topology/d3/client/graph/icon-instances.svg similarity index 100% rename from spikes/graphs-topology/d3/client/graph/icon-instances.svg rename to legacy/spikes/graphs-topology/d3/client/graph/icon-instances.svg diff --git a/spikes/graphs-topology/d3/client/graph/topology-graph.js b/legacy/spikes/graphs-topology/d3/client/graph/topology-graph.js similarity index 100% rename from spikes/graphs-topology/d3/client/graph/topology-graph.js rename to legacy/spikes/graphs-topology/d3/client/graph/topology-graph.js diff --git a/spikes/graphs-topology/d3/client/index.js b/legacy/spikes/graphs-topology/d3/client/index.js similarity index 100% rename from spikes/graphs-topology/d3/client/index.js rename to legacy/spikes/graphs-topology/d3/client/index.js diff --git a/spikes/graphs-topology/d3/client/root.js b/legacy/spikes/graphs-topology/d3/client/root.js similarity index 100% rename from spikes/graphs-topology/d3/client/root.js rename to legacy/spikes/graphs-topology/d3/client/root.js diff --git a/spikes/graphs-topology/d3/client/store.js b/legacy/spikes/graphs-topology/d3/client/store.js similarity index 100% rename from spikes/graphs-topology/d3/client/store.js rename to legacy/spikes/graphs-topology/d3/client/store.js diff --git a/spikes/graphs-topology/d3/client/topology.js b/legacy/spikes/graphs-topology/d3/client/topology.js similarity index 100% rename from spikes/graphs-topology/d3/client/topology.js rename to legacy/spikes/graphs-topology/d3/client/topology.js diff --git a/spikes/graphs-topology/d3/package.json b/legacy/spikes/graphs-topology/d3/package.json similarity index 100% rename from spikes/graphs-topology/d3/package.json rename to legacy/spikes/graphs-topology/d3/package.json diff --git a/spikes/graphs-topology/d3/readme.md b/legacy/spikes/graphs-topology/d3/readme.md similarity index 100% rename from spikes/graphs-topology/d3/readme.md rename to legacy/spikes/graphs-topology/d3/readme.md diff --git a/spikes/graphs-topology/d3/server/index.js b/legacy/spikes/graphs-topology/d3/server/index.js similarity index 100% rename from spikes/graphs-topology/d3/server/index.js rename to legacy/spikes/graphs-topology/d3/server/index.js diff --git a/spikes/graphs-topology/d3/server/metric.js b/legacy/spikes/graphs-topology/d3/server/metric.js similarity index 100% rename from spikes/graphs-topology/d3/server/metric.js rename to legacy/spikes/graphs-topology/d3/server/metric.js diff --git a/spikes/graphs-topology/d3/server/plugins.js b/legacy/spikes/graphs-topology/d3/server/plugins.js similarity index 100% rename from spikes/graphs-topology/d3/server/plugins.js rename to legacy/spikes/graphs-topology/d3/server/plugins.js diff --git a/spikes/graphs-topology/d3/server/routes/home.js b/legacy/spikes/graphs-topology/d3/server/routes/home.js similarity index 100% rename from spikes/graphs-topology/d3/server/routes/home.js rename to legacy/spikes/graphs-topology/d3/server/routes/home.js diff --git a/spikes/graphs-topology/d3/server/routes/metrics.js b/legacy/spikes/graphs-topology/d3/server/routes/metrics.js similarity index 100% rename from spikes/graphs-topology/d3/server/routes/metrics.js rename to legacy/spikes/graphs-topology/d3/server/routes/metrics.js diff --git a/spikes/graphs-topology/d3/server/routes/static.js b/legacy/spikes/graphs-topology/d3/server/routes/static.js similarity index 100% rename from spikes/graphs-topology/d3/server/routes/static.js rename to legacy/spikes/graphs-topology/d3/server/routes/static.js diff --git a/spikes/graphs-topology/d3/server/routes/version.js b/legacy/spikes/graphs-topology/d3/server/routes/version.js similarity index 100% rename from spikes/graphs-topology/d3/server/routes/version.js rename to legacy/spikes/graphs-topology/d3/server/routes/version.js diff --git a/spikes/graphs-topology/d3/static/index.html b/legacy/spikes/graphs-topology/d3/static/index.html similarity index 100% rename from spikes/graphs-topology/d3/static/index.html rename to legacy/spikes/graphs-topology/d3/static/index.html diff --git a/spikes/graphs-topology/d3/webpack.config.js b/legacy/spikes/graphs-topology/d3/webpack.config.js similarity index 100% rename from spikes/graphs-topology/d3/webpack.config.js rename to legacy/spikes/graphs-topology/d3/webpack.config.js diff --git a/spikes/graphs-topology/d3/yarn.lock b/legacy/spikes/graphs-topology/d3/yarn.lock similarity index 100% rename from spikes/graphs-topology/d3/yarn.lock rename to legacy/spikes/graphs-topology/d3/yarn.lock diff --git a/spikes/leak/.babelrc b/legacy/spikes/leak/.babelrc similarity index 100% rename from spikes/leak/.babelrc rename to legacy/spikes/leak/.babelrc diff --git a/spikes/leak/.dockerignore b/legacy/spikes/leak/.dockerignore similarity index 100% rename from spikes/leak/.dockerignore rename to legacy/spikes/leak/.dockerignore diff --git a/spikes/leak/.eslintignore b/legacy/spikes/leak/.eslintignore similarity index 100% rename from spikes/leak/.eslintignore rename to legacy/spikes/leak/.eslintignore diff --git a/spikes/leak/.eslintrc b/legacy/spikes/leak/.eslintrc similarity index 100% rename from spikes/leak/.eslintrc rename to legacy/spikes/leak/.eslintrc diff --git a/spikes/leak/.gitignore b/legacy/spikes/leak/.gitignore similarity index 100% rename from spikes/leak/.gitignore rename to legacy/spikes/leak/.gitignore diff --git a/spikes/leak/Dockerfile b/legacy/spikes/leak/Dockerfile similarity index 100% rename from spikes/leak/Dockerfile rename to legacy/spikes/leak/Dockerfile diff --git a/spikes/leak/artillery/artillery-another-fast.yml b/legacy/spikes/leak/artillery/artillery-another-fast.yml similarity index 100% rename from spikes/leak/artillery/artillery-another-fast.yml rename to legacy/spikes/leak/artillery/artillery-another-fast.yml diff --git a/spikes/leak/artillery/artillery-cpu.yml b/legacy/spikes/leak/artillery/artillery-cpu.yml similarity index 100% rename from spikes/leak/artillery/artillery-cpu.yml rename to legacy/spikes/leak/artillery/artillery-cpu.yml diff --git a/spikes/leak/artillery/artillery-fast.yml b/legacy/spikes/leak/artillery/artillery-fast.yml similarity index 100% rename from spikes/leak/artillery/artillery-fast.yml rename to legacy/spikes/leak/artillery/artillery-fast.yml diff --git a/spikes/leak/artillery/artillery-plain.yml b/legacy/spikes/leak/artillery/artillery-plain.yml similarity index 100% rename from spikes/leak/artillery/artillery-plain.yml rename to legacy/spikes/leak/artillery/artillery-plain.yml diff --git a/spikes/leak/artillery/artillery-slow.yml b/legacy/spikes/leak/artillery/artillery-slow.yml similarity index 100% rename from spikes/leak/artillery/artillery-slow.yml rename to legacy/spikes/leak/artillery/artillery-slow.yml diff --git a/spikes/leak/dataset-leak.json b/legacy/spikes/leak/dataset-leak.json similarity index 100% rename from spikes/leak/dataset-leak.json rename to legacy/spikes/leak/dataset-leak.json diff --git a/spikes/leak/docker-compose.yml b/legacy/spikes/leak/docker-compose.yml similarity index 100% rename from spikes/leak/docker-compose.yml rename to legacy/spikes/leak/docker-compose.yml diff --git a/spikes/leak/package.json b/legacy/spikes/leak/package.json similarity index 100% rename from spikes/leak/package.json rename to legacy/spikes/leak/package.json diff --git a/spikes/leak/prometheus.yml b/legacy/spikes/leak/prometheus.yml similarity index 100% rename from spikes/leak/prometheus.yml rename to legacy/spikes/leak/prometheus.yml diff --git a/spikes/leak/prometheus/Dockerfile b/legacy/spikes/leak/prometheus/Dockerfile similarity index 100% rename from spikes/leak/prometheus/Dockerfile rename to legacy/spikes/leak/prometheus/Dockerfile diff --git a/spikes/leak/prometheus/prometheus.yml b/legacy/spikes/leak/prometheus/prometheus.yml similarity index 100% rename from spikes/leak/prometheus/prometheus.yml rename to legacy/spikes/leak/prometheus/prometheus.yml diff --git a/spikes/leak/readme.md b/legacy/spikes/leak/readme.md similarity index 100% rename from spikes/leak/readme.md rename to legacy/spikes/leak/readme.md diff --git a/spikes/leak/scripts/prometheus.js b/legacy/spikes/leak/scripts/prometheus.js similarity index 100% rename from spikes/leak/scripts/prometheus.js rename to legacy/spikes/leak/scripts/prometheus.js diff --git a/spikes/leak/scripts/start.js b/legacy/spikes/leak/scripts/start.js similarity index 100% rename from spikes/leak/scripts/start.js rename to legacy/spikes/leak/scripts/start.js diff --git a/spikes/leak/sort.js b/legacy/spikes/leak/sort.js similarity index 100% rename from spikes/leak/sort.js rename to legacy/spikes/leak/sort.js diff --git a/spikes/leak/src/client/actions.js b/legacy/spikes/leak/src/client/actions.js similarity index 100% rename from spikes/leak/src/client/actions.js rename to legacy/spikes/leak/src/client/actions.js diff --git a/spikes/leak/src/client/chart/base.js b/legacy/spikes/leak/src/client/chart/base.js similarity index 100% rename from spikes/leak/src/client/chart/base.js rename to legacy/spikes/leak/src/client/chart/base.js diff --git a/spikes/leak/src/client/chart/cpu.js b/legacy/spikes/leak/src/client/chart/cpu.js similarity index 100% rename from spikes/leak/src/client/chart/cpu.js rename to legacy/spikes/leak/src/client/chart/cpu.js diff --git a/spikes/leak/src/client/chart/disk.js b/legacy/spikes/leak/src/client/chart/disk.js similarity index 100% rename from spikes/leak/src/client/chart/disk.js rename to legacy/spikes/leak/src/client/chart/disk.js diff --git a/spikes/leak/src/client/chart/index.js b/legacy/spikes/leak/src/client/chart/index.js similarity index 100% rename from spikes/leak/src/client/chart/index.js rename to legacy/spikes/leak/src/client/chart/index.js diff --git a/spikes/leak/src/client/chart/mem.js b/legacy/spikes/leak/src/client/chart/mem.js similarity index 100% rename from spikes/leak/src/client/chart/mem.js rename to legacy/spikes/leak/src/client/chart/mem.js diff --git a/spikes/leak/src/client/element.whisker.js b/legacy/spikes/leak/src/client/element.whisker.js similarity index 100% rename from spikes/leak/src/client/element.whisker.js rename to legacy/spikes/leak/src/client/element.whisker.js diff --git a/spikes/leak/src/client/index.js b/legacy/spikes/leak/src/client/index.js similarity index 100% rename from spikes/leak/src/client/index.js rename to legacy/spikes/leak/src/client/index.js diff --git a/spikes/leak/src/client/matrix.js b/legacy/spikes/leak/src/client/matrix.js similarity index 100% rename from spikes/leak/src/client/matrix.js rename to legacy/spikes/leak/src/client/matrix.js diff --git a/spikes/leak/src/client/root.js b/legacy/spikes/leak/src/client/root.js similarity index 100% rename from spikes/leak/src/client/root.js rename to legacy/spikes/leak/src/client/root.js diff --git a/spikes/leak/src/client/store.js b/legacy/spikes/leak/src/client/store.js similarity index 100% rename from spikes/leak/src/client/store.js rename to legacy/spikes/leak/src/client/store.js diff --git a/spikes/leak/src/client/whisker.js b/legacy/spikes/leak/src/client/whisker.js similarity index 100% rename from spikes/leak/src/client/whisker.js rename to legacy/spikes/leak/src/client/whisker.js diff --git a/spikes/leak/src/server/index.js b/legacy/spikes/leak/src/server/index.js similarity index 100% rename from spikes/leak/src/server/index.js rename to legacy/spikes/leak/src/server/index.js diff --git a/spikes/leak/src/server/metric.js b/legacy/spikes/leak/src/server/metric.js similarity index 100% rename from spikes/leak/src/server/metric.js rename to legacy/spikes/leak/src/server/metric.js diff --git a/spikes/leak/src/server/plugins.js b/legacy/spikes/leak/src/server/plugins.js similarity index 100% rename from spikes/leak/src/server/plugins.js rename to legacy/spikes/leak/src/server/plugins.js diff --git a/spikes/leak/src/server/routes/leak.js b/legacy/spikes/leak/src/server/routes/leak.js similarity index 100% rename from spikes/leak/src/server/routes/leak.js rename to legacy/spikes/leak/src/server/routes/leak.js diff --git a/spikes/leak/src/server/routes/version.js b/legacy/spikes/leak/src/server/routes/version.js similarity index 100% rename from spikes/leak/src/server/routes/version.js rename to legacy/spikes/leak/src/server/routes/version.js diff --git a/spikes/leak/src/webpack.config.js b/legacy/spikes/leak/src/webpack.config.js similarity index 100% rename from spikes/leak/src/webpack.config.js rename to legacy/spikes/leak/src/webpack.config.js diff --git a/spikes/leak/static/index.html b/legacy/spikes/leak/static/index.html similarity index 100% rename from spikes/leak/static/index.html rename to legacy/spikes/leak/static/index.html diff --git a/spikes/leak/watch.js b/legacy/spikes/leak/watch.js similarity index 100% rename from spikes/leak/watch.js rename to legacy/spikes/leak/watch.js diff --git a/spikes/leak/yarn.lock b/legacy/spikes/leak/yarn.lock similarity index 100% rename from spikes/leak/yarn.lock rename to legacy/spikes/leak/yarn.lock diff --git a/spikes/list/react-infinite/.babelrc b/legacy/spikes/list/react-infinite/.babelrc similarity index 100% rename from spikes/list/react-infinite/.babelrc rename to legacy/spikes/list/react-infinite/.babelrc diff --git a/spikes/list/react-infinite/package.json b/legacy/spikes/list/react-infinite/package.json similarity index 100% rename from spikes/list/react-infinite/package.json rename to legacy/spikes/list/react-infinite/package.json diff --git a/spikes/list/react-infinite/readme.md b/legacy/spikes/list/react-infinite/readme.md similarity index 100% rename from spikes/list/react-infinite/readme.md rename to legacy/spikes/list/react-infinite/readme.md diff --git a/spikes/list/react-infinite/src/actions.js b/legacy/spikes/list/react-infinite/src/actions.js similarity index 100% rename from spikes/list/react-infinite/src/actions.js rename to legacy/spikes/list/react-infinite/src/actions.js diff --git a/spikes/list/react-infinite/src/index.js b/legacy/spikes/list/react-infinite/src/index.js similarity index 100% rename from spikes/list/react-infinite/src/index.js rename to legacy/spikes/list/react-infinite/src/index.js diff --git a/spikes/list/react-infinite/src/list.js b/legacy/spikes/list/react-infinite/src/list.js similarity index 100% rename from spikes/list/react-infinite/src/list.js rename to legacy/spikes/list/react-infinite/src/list.js diff --git a/spikes/list/react-infinite/src/root.js b/legacy/spikes/list/react-infinite/src/root.js similarity index 100% rename from spikes/list/react-infinite/src/root.js rename to legacy/spikes/list/react-infinite/src/root.js diff --git a/spikes/list/react-infinite/src/store.js b/legacy/spikes/list/react-infinite/src/store.js similarity index 100% rename from spikes/list/react-infinite/src/store.js rename to legacy/spikes/list/react-infinite/src/store.js diff --git a/spikes/list/react-infinite/static/.gitignore b/legacy/spikes/list/react-infinite/static/.gitignore similarity index 100% rename from spikes/list/react-infinite/static/.gitignore rename to legacy/spikes/list/react-infinite/static/.gitignore diff --git a/spikes/list/react-infinite/static/index.html b/legacy/spikes/list/react-infinite/static/index.html similarity index 100% rename from spikes/list/react-infinite/static/index.html rename to legacy/spikes/list/react-infinite/static/index.html diff --git a/spikes/list/react-infinite/webpack/base.js b/legacy/spikes/list/react-infinite/webpack/base.js similarity index 100% rename from spikes/list/react-infinite/webpack/base.js rename to legacy/spikes/list/react-infinite/webpack/base.js diff --git a/spikes/list/react-infinite/webpack/index.js b/legacy/spikes/list/react-infinite/webpack/index.js similarity index 100% rename from spikes/list/react-infinite/webpack/index.js rename to legacy/spikes/list/react-infinite/webpack/index.js diff --git a/spikes/metrics-service/graphql/.gitignore b/legacy/spikes/metrics-service/graphql/.gitignore similarity index 100% rename from spikes/metrics-service/graphql/.gitignore rename to legacy/spikes/metrics-service/graphql/.gitignore diff --git a/spikes/metrics-service/graphql/package.json b/legacy/spikes/metrics-service/graphql/package.json similarity index 100% rename from spikes/metrics-service/graphql/package.json rename to legacy/spikes/metrics-service/graphql/package.json diff --git a/spikes/metrics-service/graphql/src/index.js b/legacy/spikes/metrics-service/graphql/src/index.js similarity index 100% rename from spikes/metrics-service/graphql/src/index.js rename to legacy/spikes/metrics-service/graphql/src/index.js diff --git a/spikes/metrics-service/graphql/src/plugins.js b/legacy/spikes/metrics-service/graphql/src/plugins.js similarity index 100% rename from spikes/metrics-service/graphql/src/plugins.js rename to legacy/spikes/metrics-service/graphql/src/plugins.js diff --git a/spikes/metrics-service/graphql/src/routes/home.js b/legacy/spikes/metrics-service/graphql/src/routes/home.js similarity index 100% rename from spikes/metrics-service/graphql/src/routes/home.js rename to legacy/spikes/metrics-service/graphql/src/routes/home.js diff --git a/spikes/metrics-service/graphql/src/routes/index.html b/legacy/spikes/metrics-service/graphql/src/routes/index.html similarity index 100% rename from spikes/metrics-service/graphql/src/routes/index.html rename to legacy/spikes/metrics-service/graphql/src/routes/index.html diff --git a/spikes/metrics-service/graphql/src/routes/version.js b/legacy/spikes/metrics-service/graphql/src/routes/version.js similarity index 100% rename from spikes/metrics-service/graphql/src/routes/version.js rename to legacy/spikes/metrics-service/graphql/src/routes/version.js diff --git a/spikes/metrics-service/graphql/src/schema.js b/legacy/spikes/metrics-service/graphql/src/schema.js similarity index 100% rename from spikes/metrics-service/graphql/src/schema.js rename to legacy/spikes/metrics-service/graphql/src/schema.js diff --git a/spikes/metrics-service/http1/.gitignore b/legacy/spikes/metrics-service/http1/.gitignore similarity index 100% rename from spikes/metrics-service/http1/.gitignore rename to legacy/spikes/metrics-service/http1/.gitignore diff --git a/spikes/metrics-service/http1/package.json b/legacy/spikes/metrics-service/http1/package.json similarity index 100% rename from spikes/metrics-service/http1/package.json rename to legacy/spikes/metrics-service/http1/package.json diff --git a/spikes/metrics-service/http1/src/index.js b/legacy/spikes/metrics-service/http1/src/index.js similarity index 100% rename from spikes/metrics-service/http1/src/index.js rename to legacy/spikes/metrics-service/http1/src/index.js diff --git a/spikes/metrics-service/http1/src/plugins.js b/legacy/spikes/metrics-service/http1/src/plugins.js similarity index 100% rename from spikes/metrics-service/http1/src/plugins.js rename to legacy/spikes/metrics-service/http1/src/plugins.js diff --git a/spikes/metrics-service/http1/src/routes/home.js b/legacy/spikes/metrics-service/http1/src/routes/home.js similarity index 100% rename from spikes/metrics-service/http1/src/routes/home.js rename to legacy/spikes/metrics-service/http1/src/routes/home.js diff --git a/spikes/metrics-service/http1/src/routes/index.html b/legacy/spikes/metrics-service/http1/src/routes/index.html similarity index 100% rename from spikes/metrics-service/http1/src/routes/index.html rename to legacy/spikes/metrics-service/http1/src/routes/index.html diff --git a/spikes/metrics-service/http1/src/routes/metrics.js b/legacy/spikes/metrics-service/http1/src/routes/metrics.js similarity index 100% rename from spikes/metrics-service/http1/src/routes/metrics.js rename to legacy/spikes/metrics-service/http1/src/routes/metrics.js diff --git a/spikes/metrics-service/http1/src/routes/version.js b/legacy/spikes/metrics-service/http1/src/routes/version.js similarity index 100% rename from spikes/metrics-service/http1/src/routes/version.js rename to legacy/spikes/metrics-service/http1/src/routes/version.js diff --git a/spikes/metrics-service/http2/.gitignore b/legacy/spikes/metrics-service/http2/.gitignore similarity index 100% rename from spikes/metrics-service/http2/.gitignore rename to legacy/spikes/metrics-service/http2/.gitignore diff --git a/spikes/metrics-service/http2/cert.pem b/legacy/spikes/metrics-service/http2/cert.pem similarity index 100% rename from spikes/metrics-service/http2/cert.pem rename to legacy/spikes/metrics-service/http2/cert.pem diff --git a/spikes/metrics-service/http2/key.pem b/legacy/spikes/metrics-service/http2/key.pem similarity index 100% rename from spikes/metrics-service/http2/key.pem rename to legacy/spikes/metrics-service/http2/key.pem diff --git a/spikes/metrics-service/http2/package.json b/legacy/spikes/metrics-service/http2/package.json similarity index 100% rename from spikes/metrics-service/http2/package.json rename to legacy/spikes/metrics-service/http2/package.json diff --git a/spikes/metrics-service/http2/src/index.js b/legacy/spikes/metrics-service/http2/src/index.js similarity index 100% rename from spikes/metrics-service/http2/src/index.js rename to legacy/spikes/metrics-service/http2/src/index.js diff --git a/spikes/metrics-service/http2/src/plugins.js b/legacy/spikes/metrics-service/http2/src/plugins.js similarity index 100% rename from spikes/metrics-service/http2/src/plugins.js rename to legacy/spikes/metrics-service/http2/src/plugins.js diff --git a/spikes/metrics-service/http2/src/routes/home.js b/legacy/spikes/metrics-service/http2/src/routes/home.js similarity index 100% rename from spikes/metrics-service/http2/src/routes/home.js rename to legacy/spikes/metrics-service/http2/src/routes/home.js diff --git a/spikes/metrics-service/http2/src/routes/index.html b/legacy/spikes/metrics-service/http2/src/routes/index.html similarity index 100% rename from spikes/metrics-service/http2/src/routes/index.html rename to legacy/spikes/metrics-service/http2/src/routes/index.html diff --git a/spikes/metrics-service/http2/src/routes/metrics.js b/legacy/spikes/metrics-service/http2/src/routes/metrics.js similarity index 100% rename from spikes/metrics-service/http2/src/routes/metrics.js rename to legacy/spikes/metrics-service/http2/src/routes/metrics.js diff --git a/spikes/metrics-service/http2/src/routes/version.js b/legacy/spikes/metrics-service/http2/src/routes/version.js similarity index 100% rename from spikes/metrics-service/http2/src/routes/version.js rename to legacy/spikes/metrics-service/http2/src/routes/version.js diff --git a/spikes/metrics-service/readme.md b/legacy/spikes/metrics-service/readme.md similarity index 100% rename from spikes/metrics-service/readme.md rename to legacy/spikes/metrics-service/readme.md diff --git a/spikes/metrics-service/ws/.gitignore b/legacy/spikes/metrics-service/ws/.gitignore similarity index 100% rename from spikes/metrics-service/ws/.gitignore rename to legacy/spikes/metrics-service/ws/.gitignore diff --git a/spikes/metrics-service/ws/package.json b/legacy/spikes/metrics-service/ws/package.json similarity index 100% rename from spikes/metrics-service/ws/package.json rename to legacy/spikes/metrics-service/ws/package.json diff --git a/spikes/metrics-service/ws/src/index.js b/legacy/spikes/metrics-service/ws/src/index.js similarity index 100% rename from spikes/metrics-service/ws/src/index.js rename to legacy/spikes/metrics-service/ws/src/index.js diff --git a/spikes/metrics-service/ws/src/metric.js b/legacy/spikes/metrics-service/ws/src/metric.js similarity index 100% rename from spikes/metrics-service/ws/src/metric.js rename to legacy/spikes/metrics-service/ws/src/metric.js diff --git a/spikes/metrics-service/ws/src/plugins.js b/legacy/spikes/metrics-service/ws/src/plugins.js similarity index 100% rename from spikes/metrics-service/ws/src/plugins.js rename to legacy/spikes/metrics-service/ws/src/plugins.js diff --git a/spikes/metrics-service/ws/src/routes/home.js b/legacy/spikes/metrics-service/ws/src/routes/home.js similarity index 100% rename from spikes/metrics-service/ws/src/routes/home.js rename to legacy/spikes/metrics-service/ws/src/routes/home.js diff --git a/spikes/metrics-service/ws/src/routes/index.html b/legacy/spikes/metrics-service/ws/src/routes/index.html similarity index 100% rename from spikes/metrics-service/ws/src/routes/index.html rename to legacy/spikes/metrics-service/ws/src/routes/index.html diff --git a/spikes/metrics-service/ws/src/routes/metrics.js b/legacy/spikes/metrics-service/ws/src/routes/metrics.js similarity index 100% rename from spikes/metrics-service/ws/src/routes/metrics.js rename to legacy/spikes/metrics-service/ws/src/routes/metrics.js diff --git a/spikes/metrics-service/ws/src/routes/version.js b/legacy/spikes/metrics-service/ws/src/routes/version.js similarity index 100% rename from spikes/metrics-service/ws/src/routes/version.js rename to legacy/spikes/metrics-service/ws/src/routes/version.js diff --git a/spikes/no-leak/.babelrc b/legacy/spikes/no-leak/.babelrc similarity index 100% rename from spikes/no-leak/.babelrc rename to legacy/spikes/no-leak/.babelrc diff --git a/spikes/no-leak/.dockerignore b/legacy/spikes/no-leak/.dockerignore similarity index 100% rename from spikes/no-leak/.dockerignore rename to legacy/spikes/no-leak/.dockerignore diff --git a/spikes/no-leak/.eslintignore b/legacy/spikes/no-leak/.eslintignore similarity index 100% rename from spikes/no-leak/.eslintignore rename to legacy/spikes/no-leak/.eslintignore diff --git a/spikes/no-leak/.eslintrc b/legacy/spikes/no-leak/.eslintrc similarity index 100% rename from spikes/no-leak/.eslintrc rename to legacy/spikes/no-leak/.eslintrc diff --git a/spikes/no-leak/.gitignore b/legacy/spikes/no-leak/.gitignore similarity index 100% rename from spikes/no-leak/.gitignore rename to legacy/spikes/no-leak/.gitignore diff --git a/spikes/no-leak/Dockerfile b/legacy/spikes/no-leak/Dockerfile similarity index 100% rename from spikes/no-leak/Dockerfile rename to legacy/spikes/no-leak/Dockerfile diff --git a/spikes/no-leak/artillery/artillery-no-leak-1.yml b/legacy/spikes/no-leak/artillery/artillery-no-leak-1.yml similarity index 100% rename from spikes/no-leak/artillery/artillery-no-leak-1.yml rename to legacy/spikes/no-leak/artillery/artillery-no-leak-1.yml diff --git a/spikes/no-leak/artillery/artillery-no-leak-2.yml b/legacy/spikes/no-leak/artillery/artillery-no-leak-2.yml similarity index 100% rename from spikes/no-leak/artillery/artillery-no-leak-2.yml rename to legacy/spikes/no-leak/artillery/artillery-no-leak-2.yml diff --git a/spikes/no-leak/artillery/artillery-no-leak-3.yml b/legacy/spikes/no-leak/artillery/artillery-no-leak-3.yml similarity index 100% rename from spikes/no-leak/artillery/artillery-no-leak-3.yml rename to legacy/spikes/no-leak/artillery/artillery-no-leak-3.yml diff --git a/spikes/no-leak/datasets.json b/legacy/spikes/no-leak/datasets.json similarity index 100% rename from spikes/no-leak/datasets.json rename to legacy/spikes/no-leak/datasets.json diff --git a/spikes/no-leak/docker-compose.yml b/legacy/spikes/no-leak/docker-compose.yml similarity index 100% rename from spikes/no-leak/docker-compose.yml rename to legacy/spikes/no-leak/docker-compose.yml diff --git a/spikes/no-leak/package.json b/legacy/spikes/no-leak/package.json similarity index 100% rename from spikes/no-leak/package.json rename to legacy/spikes/no-leak/package.json diff --git a/spikes/no-leak/prometheus/Dockerfile b/legacy/spikes/no-leak/prometheus/Dockerfile similarity index 100% rename from spikes/no-leak/prometheus/Dockerfile rename to legacy/spikes/no-leak/prometheus/Dockerfile diff --git a/spikes/no-leak/prometheus/prometheus.yml b/legacy/spikes/no-leak/prometheus/prometheus.yml similarity index 100% rename from spikes/no-leak/prometheus/prometheus.yml rename to legacy/spikes/no-leak/prometheus/prometheus.yml diff --git a/spikes/no-leak/readme.md b/legacy/spikes/no-leak/readme.md similarity index 100% rename from spikes/no-leak/readme.md rename to legacy/spikes/no-leak/readme.md diff --git a/spikes/no-leak/scripts/prometheus.js b/legacy/spikes/no-leak/scripts/prometheus.js similarity index 100% rename from spikes/no-leak/scripts/prometheus.js rename to legacy/spikes/no-leak/scripts/prometheus.js diff --git a/spikes/no-leak/scripts/start.js b/legacy/spikes/no-leak/scripts/start.js similarity index 100% rename from spikes/no-leak/scripts/start.js rename to legacy/spikes/no-leak/scripts/start.js diff --git a/spikes/no-leak/sort.js b/legacy/spikes/no-leak/sort.js similarity index 100% rename from spikes/no-leak/sort.js rename to legacy/spikes/no-leak/sort.js diff --git a/spikes/no-leak/src/client/actions.js b/legacy/spikes/no-leak/src/client/actions.js similarity index 100% rename from spikes/no-leak/src/client/actions.js rename to legacy/spikes/no-leak/src/client/actions.js diff --git a/spikes/no-leak/src/client/chart/base.js b/legacy/spikes/no-leak/src/client/chart/base.js similarity index 100% rename from spikes/no-leak/src/client/chart/base.js rename to legacy/spikes/no-leak/src/client/chart/base.js diff --git a/spikes/no-leak/src/client/chart/cpu.js b/legacy/spikes/no-leak/src/client/chart/cpu.js similarity index 100% rename from spikes/no-leak/src/client/chart/cpu.js rename to legacy/spikes/no-leak/src/client/chart/cpu.js diff --git a/spikes/no-leak/src/client/chart/disk.js b/legacy/spikes/no-leak/src/client/chart/disk.js similarity index 100% rename from spikes/no-leak/src/client/chart/disk.js rename to legacy/spikes/no-leak/src/client/chart/disk.js diff --git a/spikes/no-leak/src/client/chart/index.js b/legacy/spikes/no-leak/src/client/chart/index.js similarity index 100% rename from spikes/no-leak/src/client/chart/index.js rename to legacy/spikes/no-leak/src/client/chart/index.js diff --git a/spikes/no-leak/src/client/chart/mem.js b/legacy/spikes/no-leak/src/client/chart/mem.js similarity index 100% rename from spikes/no-leak/src/client/chart/mem.js rename to legacy/spikes/no-leak/src/client/chart/mem.js diff --git a/spikes/no-leak/src/client/element.whisker.js b/legacy/spikes/no-leak/src/client/element.whisker.js similarity index 100% rename from spikes/no-leak/src/client/element.whisker.js rename to legacy/spikes/no-leak/src/client/element.whisker.js diff --git a/spikes/no-leak/src/client/index.js b/legacy/spikes/no-leak/src/client/index.js similarity index 100% rename from spikes/no-leak/src/client/index.js rename to legacy/spikes/no-leak/src/client/index.js diff --git a/spikes/no-leak/src/client/matrix.js b/legacy/spikes/no-leak/src/client/matrix.js similarity index 100% rename from spikes/no-leak/src/client/matrix.js rename to legacy/spikes/no-leak/src/client/matrix.js diff --git a/spikes/no-leak/src/client/root.js b/legacy/spikes/no-leak/src/client/root.js similarity index 100% rename from spikes/no-leak/src/client/root.js rename to legacy/spikes/no-leak/src/client/root.js diff --git a/spikes/no-leak/src/client/store.js b/legacy/spikes/no-leak/src/client/store.js similarity index 100% rename from spikes/no-leak/src/client/store.js rename to legacy/spikes/no-leak/src/client/store.js diff --git a/spikes/no-leak/src/client/whisker.js b/legacy/spikes/no-leak/src/client/whisker.js similarity index 100% rename from spikes/no-leak/src/client/whisker.js rename to legacy/spikes/no-leak/src/client/whisker.js diff --git a/spikes/no-leak/src/server/index.js b/legacy/spikes/no-leak/src/server/index.js similarity index 100% rename from spikes/no-leak/src/server/index.js rename to legacy/spikes/no-leak/src/server/index.js diff --git a/spikes/no-leak/src/server/plugins.js b/legacy/spikes/no-leak/src/server/plugins.js similarity index 100% rename from spikes/no-leak/src/server/plugins.js rename to legacy/spikes/no-leak/src/server/plugins.js diff --git a/spikes/no-leak/src/server/routes/version.js b/legacy/spikes/no-leak/src/server/routes/version.js similarity index 100% rename from spikes/no-leak/src/server/routes/version.js rename to legacy/spikes/no-leak/src/server/routes/version.js diff --git a/spikes/no-leak/src/webpack.config.js b/legacy/spikes/no-leak/src/webpack.config.js similarity index 100% rename from spikes/no-leak/src/webpack.config.js rename to legacy/spikes/no-leak/src/webpack.config.js diff --git a/spikes/no-leak/static/index.html b/legacy/spikes/no-leak/static/index.html similarity index 100% rename from spikes/no-leak/static/index.html rename to legacy/spikes/no-leak/static/index.html diff --git a/spikes/no-leak/watch.js b/legacy/spikes/no-leak/watch.js similarity index 100% rename from spikes/no-leak/watch.js rename to legacy/spikes/no-leak/watch.js diff --git a/spikes/no-leak/yarn.lock b/legacy/spikes/no-leak/yarn.lock similarity index 100% rename from spikes/no-leak/yarn.lock rename to legacy/spikes/no-leak/yarn.lock diff --git a/spikes/routing-containers/routing-example/.gitignore b/legacy/spikes/routing-containers/routing-example/.gitignore similarity index 100% rename from spikes/routing-containers/routing-example/.gitignore rename to legacy/spikes/routing-containers/routing-example/.gitignore diff --git a/spikes/routing-containers/routing-example/README.md b/legacy/spikes/routing-containers/routing-example/README.md similarity index 100% rename from spikes/routing-containers/routing-example/README.md rename to legacy/spikes/routing-containers/routing-example/README.md diff --git a/spikes/routing-containers/routing-example/package.json b/legacy/spikes/routing-containers/routing-example/package.json similarity index 100% rename from spikes/routing-containers/routing-example/package.json rename to legacy/spikes/routing-containers/routing-example/package.json diff --git a/spikes/routing-containers/routing-example/public/favicon.ico b/legacy/spikes/routing-containers/routing-example/public/favicon.ico similarity index 100% rename from spikes/routing-containers/routing-example/public/favicon.ico rename to legacy/spikes/routing-containers/routing-example/public/favicon.ico diff --git a/spikes/routing-containers/routing-example/public/index.html b/legacy/spikes/routing-containers/routing-example/public/index.html similarity index 100% rename from spikes/routing-containers/routing-example/public/index.html rename to legacy/spikes/routing-containers/routing-example/public/index.html diff --git a/spikes/routing-containers/routing-example/src/App.css b/legacy/spikes/routing-containers/routing-example/src/App.css similarity index 100% rename from spikes/routing-containers/routing-example/src/App.css rename to legacy/spikes/routing-containers/routing-example/src/App.css diff --git a/spikes/routing-containers/routing-example/src/App.js b/legacy/spikes/routing-containers/routing-example/src/App.js similarity index 100% rename from spikes/routing-containers/routing-example/src/App.js rename to legacy/spikes/routing-containers/routing-example/src/App.js diff --git a/spikes/routing-containers/routing-example/src/App.test.js b/legacy/spikes/routing-containers/routing-example/src/App.test.js similarity index 100% rename from spikes/routing-containers/routing-example/src/App.test.js rename to legacy/spikes/routing-containers/routing-example/src/App.test.js diff --git a/spikes/routing-containers/routing-example/src/components/app-header.js b/legacy/spikes/routing-containers/routing-example/src/components/app-header.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/app-header.js rename to legacy/spikes/routing-containers/routing-example/src/components/app-header.js diff --git a/spikes/routing-containers/routing-example/src/components/app.js b/legacy/spikes/routing-containers/routing-example/src/components/app.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/app.js rename to legacy/spikes/routing-containers/routing-example/src/components/app.js diff --git a/spikes/routing-containers/routing-example/src/components/breadcrumb.js b/legacy/spikes/routing-containers/routing-example/src/components/breadcrumb.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/breadcrumb.js rename to legacy/spikes/routing-containers/routing-example/src/components/breadcrumb.js diff --git a/spikes/routing-containers/routing-example/src/components/menu.js b/legacy/spikes/routing-containers/routing-example/src/components/menu.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/menu.js rename to legacy/spikes/routing-containers/routing-example/src/components/menu.js diff --git a/spikes/routing-containers/routing-example/src/components/org-tabs.js b/legacy/spikes/routing-containers/routing-example/src/components/org-tabs.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/org-tabs.js rename to legacy/spikes/routing-containers/routing-example/src/components/org-tabs.js diff --git a/spikes/routing-containers/routing-example/src/components/project.js b/legacy/spikes/routing-containers/routing-example/src/components/project.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/project.js rename to legacy/spikes/routing-containers/routing-example/src/components/project.js diff --git a/spikes/routing-containers/routing-example/src/components/projects.js b/legacy/spikes/routing-containers/routing-example/src/components/projects.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/projects.js rename to legacy/spikes/routing-containers/routing-example/src/components/projects.js diff --git a/spikes/routing-containers/routing-example/src/components/services-list.js b/legacy/spikes/routing-containers/routing-example/src/components/services-list.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/services-list.js rename to legacy/spikes/routing-containers/routing-example/src/components/services-list.js diff --git a/spikes/routing-containers/routing-example/src/components/services.js b/legacy/spikes/routing-containers/routing-example/src/components/services.js similarity index 100% rename from spikes/routing-containers/routing-example/src/components/services.js rename to legacy/spikes/routing-containers/routing-example/src/components/services.js diff --git a/spikes/routing-containers/routing-example/src/containers/app-redirect.js b/legacy/spikes/routing-containers/routing-example/src/containers/app-redirect.js similarity index 100% rename from spikes/routing-containers/routing-example/src/containers/app-redirect.js rename to legacy/spikes/routing-containers/routing-example/src/containers/app-redirect.js diff --git a/spikes/routing-containers/routing-example/src/index.css b/legacy/spikes/routing-containers/routing-example/src/index.css similarity index 100% rename from spikes/routing-containers/routing-example/src/index.css rename to legacy/spikes/routing-containers/routing-example/src/index.css diff --git a/spikes/routing-containers/routing-example/src/index.js b/legacy/spikes/routing-containers/routing-example/src/index.js similarity index 100% rename from spikes/routing-containers/routing-example/src/index.js rename to legacy/spikes/routing-containers/routing-example/src/index.js diff --git a/spikes/routing-containers/routing-example/src/logo.svg b/legacy/spikes/routing-containers/routing-example/src/logo.svg similarity index 100% rename from spikes/routing-containers/routing-example/src/logo.svg rename to legacy/spikes/routing-containers/routing-example/src/logo.svg diff --git a/spikes/routing-containers/routing-example/yarn.lock b/legacy/spikes/routing-containers/routing-example/yarn.lock similarity index 100% rename from spikes/routing-containers/routing-example/yarn.lock rename to legacy/spikes/routing-containers/routing-example/yarn.lock diff --git a/spikes/stacks/redux-loop/.babelrc b/legacy/spikes/stacks/redux-loop/.babelrc similarity index 100% rename from spikes/stacks/redux-loop/.babelrc rename to legacy/spikes/stacks/redux-loop/.babelrc diff --git a/spikes/stacks/redux-loop/.eslintignore b/legacy/spikes/stacks/redux-loop/.eslintignore similarity index 100% rename from spikes/stacks/redux-loop/.eslintignore rename to legacy/spikes/stacks/redux-loop/.eslintignore diff --git a/spikes/stacks/redux-loop/.eslintrc b/legacy/spikes/stacks/redux-loop/.eslintrc similarity index 100% rename from spikes/stacks/redux-loop/.eslintrc rename to legacy/spikes/stacks/redux-loop/.eslintrc diff --git a/spikes/stacks/redux-loop/.gitignore b/legacy/spikes/stacks/redux-loop/.gitignore similarity index 100% rename from spikes/stacks/redux-loop/.gitignore rename to legacy/spikes/stacks/redux-loop/.gitignore diff --git a/spikes/stacks/redux-loop/.storybook/config.js b/legacy/spikes/stacks/redux-loop/.storybook/config.js similarity index 100% rename from spikes/stacks/redux-loop/.storybook/config.js rename to legacy/spikes/stacks/redux-loop/.storybook/config.js diff --git a/spikes/stacks/redux-loop/package.json b/legacy/spikes/stacks/redux-loop/package.json similarity index 100% rename from spikes/stacks/redux-loop/package.json rename to legacy/spikes/stacks/redux-loop/package.json diff --git a/spikes/stacks/redux-loop/src/client/api.js b/legacy/spikes/stacks/redux-loop/src/client/api.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/api.js rename to legacy/spikes/stacks/redux-loop/src/client/api.js diff --git a/spikes/stacks/redux-loop/src/client/components/change.js b/legacy/spikes/stacks/redux-loop/src/client/components/change.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/components/change.js rename to legacy/spikes/stacks/redux-loop/src/client/components/change.js diff --git a/spikes/stacks/redux-loop/src/client/components/changes.js b/legacy/spikes/stacks/redux-loop/src/client/components/changes.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/components/changes.js rename to legacy/spikes/stacks/redux-loop/src/client/components/changes.js diff --git a/spikes/stacks/redux-loop/src/client/components/loader.js b/legacy/spikes/stacks/redux-loop/src/client/components/loader.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/components/loader.js rename to legacy/spikes/stacks/redux-loop/src/client/components/loader.js diff --git a/spikes/stacks/redux-loop/src/client/components/printers.js b/legacy/spikes/stacks/redux-loop/src/client/components/printers.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/components/printers.js rename to legacy/spikes/stacks/redux-loop/src/client/components/printers.js diff --git a/spikes/stacks/redux-loop/src/client/containers/app.js b/legacy/spikes/stacks/redux-loop/src/client/containers/app.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/containers/app.js rename to legacy/spikes/stacks/redux-loop/src/client/containers/app.js diff --git a/spikes/stacks/redux-loop/src/client/containers/home.js b/legacy/spikes/stacks/redux-loop/src/client/containers/home.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/containers/home.js rename to legacy/spikes/stacks/redux-loop/src/client/containers/home.js diff --git a/spikes/stacks/redux-loop/src/client/containers/not-found.js b/legacy/spikes/stacks/redux-loop/src/client/containers/not-found.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/containers/not-found.js rename to legacy/spikes/stacks/redux-loop/src/client/containers/not-found.js diff --git a/spikes/stacks/redux-loop/src/client/containers/print.js b/legacy/spikes/stacks/redux-loop/src/client/containers/print.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/containers/print.js rename to legacy/spikes/stacks/redux-loop/src/client/containers/print.js diff --git a/spikes/stacks/redux-loop/src/client/index.js b/legacy/spikes/stacks/redux-loop/src/client/index.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/index.js rename to legacy/spikes/stacks/redux-loop/src/client/index.js diff --git a/spikes/stacks/redux-loop/src/client/intl.json b/legacy/spikes/stacks/redux-loop/src/client/intl.json similarity index 100% rename from spikes/stacks/redux-loop/src/client/intl.json rename to legacy/spikes/stacks/redux-loop/src/client/intl.json diff --git a/spikes/stacks/redux-loop/src/client/root.js b/legacy/spikes/stacks/redux-loop/src/client/root.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/root.js rename to legacy/spikes/stacks/redux-loop/src/client/root.js diff --git a/spikes/stacks/redux-loop/src/client/state/actions/app.js b/legacy/spikes/stacks/redux-loop/src/client/state/actions/app.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/actions/app.js rename to legacy/spikes/stacks/redux-loop/src/client/state/actions/app.js diff --git a/spikes/stacks/redux-loop/src/client/state/actions/changes.js b/legacy/spikes/stacks/redux-loop/src/client/state/actions/changes.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/actions/changes.js rename to legacy/spikes/stacks/redux-loop/src/client/state/actions/changes.js diff --git a/spikes/stacks/redux-loop/src/client/state/actions/index.js b/legacy/spikes/stacks/redux-loop/src/client/state/actions/index.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/actions/index.js rename to legacy/spikes/stacks/redux-loop/src/client/state/actions/index.js diff --git a/spikes/stacks/redux-loop/src/client/state/actions/printers.js b/legacy/spikes/stacks/redux-loop/src/client/state/actions/printers.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/actions/printers.js rename to legacy/spikes/stacks/redux-loop/src/client/state/actions/printers.js diff --git a/spikes/stacks/redux-loop/src/client/state/loop-promise.js b/legacy/spikes/stacks/redux-loop/src/client/state/loop-promise.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/loop-promise.js rename to legacy/spikes/stacks/redux-loop/src/client/state/loop-promise.js diff --git a/spikes/stacks/redux-loop/src/client/state/reduce-reducers.js b/legacy/spikes/stacks/redux-loop/src/client/state/reduce-reducers.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/reduce-reducers.js rename to legacy/spikes/stacks/redux-loop/src/client/state/reduce-reducers.js diff --git a/spikes/stacks/redux-loop/src/client/state/reducers/app.js b/legacy/spikes/stacks/redux-loop/src/client/state/reducers/app.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/reducers/app.js rename to legacy/spikes/stacks/redux-loop/src/client/state/reducers/app.js diff --git a/spikes/stacks/redux-loop/src/client/state/reducers/changes.js b/legacy/spikes/stacks/redux-loop/src/client/state/reducers/changes.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/reducers/changes.js rename to legacy/spikes/stacks/redux-loop/src/client/state/reducers/changes.js diff --git a/spikes/stacks/redux-loop/src/client/state/reducers/index.js b/legacy/spikes/stacks/redux-loop/src/client/state/reducers/index.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/reducers/index.js rename to legacy/spikes/stacks/redux-loop/src/client/state/reducers/index.js diff --git a/spikes/stacks/redux-loop/src/client/state/reducers/printers.js b/legacy/spikes/stacks/redux-loop/src/client/state/reducers/printers.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/reducers/printers.js rename to legacy/spikes/stacks/redux-loop/src/client/state/reducers/printers.js diff --git a/spikes/stacks/redux-loop/src/client/state/selectors.js b/legacy/spikes/stacks/redux-loop/src/client/state/selectors.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/selectors.js rename to legacy/spikes/stacks/redux-loop/src/client/state/selectors.js diff --git a/spikes/stacks/redux-loop/src/client/state/store.js b/legacy/spikes/stacks/redux-loop/src/client/state/store.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/state/store.js rename to legacy/spikes/stacks/redux-loop/src/client/state/store.js diff --git a/spikes/stacks/redux-loop/src/client/worker.js b/legacy/spikes/stacks/redux-loop/src/client/worker.js similarity index 100% rename from spikes/stacks/redux-loop/src/client/worker.js rename to legacy/spikes/stacks/redux-loop/src/client/worker.js diff --git a/spikes/stacks/redux-loop/src/config/webpack.config.js b/legacy/spikes/stacks/redux-loop/src/config/webpack.config.js similarity index 100% rename from spikes/stacks/redux-loop/src/config/webpack.config.js rename to legacy/spikes/stacks/redux-loop/src/config/webpack.config.js diff --git a/spikes/stacks/redux-loop/src/server/data/changes.json b/legacy/spikes/stacks/redux-loop/src/server/data/changes.json similarity index 100% rename from spikes/stacks/redux-loop/src/server/data/changes.json rename to legacy/spikes/stacks/redux-loop/src/server/data/changes.json diff --git a/spikes/stacks/redux-loop/src/server/data/products.json b/legacy/spikes/stacks/redux-loop/src/server/data/products.json similarity index 100% rename from spikes/stacks/redux-loop/src/server/data/products.json rename to legacy/spikes/stacks/redux-loop/src/server/data/products.json diff --git a/spikes/stacks/redux-loop/src/server/index.js b/legacy/spikes/stacks/redux-loop/src/server/index.js similarity index 100% rename from spikes/stacks/redux-loop/src/server/index.js rename to legacy/spikes/stacks/redux-loop/src/server/index.js diff --git a/spikes/stacks/redux-loop/src/server/schema.js b/legacy/spikes/stacks/redux-loop/src/server/schema.js similarity index 100% rename from spikes/stacks/redux-loop/src/server/schema.js rename to legacy/spikes/stacks/redux-loop/src/server/schema.js diff --git a/spikes/stacks/redux-loop/static/index.html b/legacy/spikes/stacks/redux-loop/static/index.html similarity index 100% rename from spikes/stacks/redux-loop/static/index.html rename to legacy/spikes/stacks/redux-loop/static/index.html diff --git a/spikes/stacks/redux-loop/stories/index.js b/legacy/spikes/stacks/redux-loop/stories/index.js similarity index 100% rename from spikes/stacks/redux-loop/stories/index.js rename to legacy/spikes/stacks/redux-loop/stories/index.js diff --git a/spikes/stacks/redux-loop/test/index.js b/legacy/spikes/stacks/redux-loop/test/index.js similarity index 100% rename from spikes/stacks/redux-loop/test/index.js rename to legacy/spikes/stacks/redux-loop/test/index.js diff --git a/spikes/stacks/redux-thunk/.babelrc b/legacy/spikes/stacks/redux-thunk/.babelrc similarity index 100% rename from spikes/stacks/redux-thunk/.babelrc rename to legacy/spikes/stacks/redux-thunk/.babelrc diff --git a/spikes/stacks/redux-thunk/.eslintignore b/legacy/spikes/stacks/redux-thunk/.eslintignore similarity index 100% rename from spikes/stacks/redux-thunk/.eslintignore rename to legacy/spikes/stacks/redux-thunk/.eslintignore diff --git a/spikes/stacks/redux-thunk/.eslintrc b/legacy/spikes/stacks/redux-thunk/.eslintrc similarity index 100% rename from spikes/stacks/redux-thunk/.eslintrc rename to legacy/spikes/stacks/redux-thunk/.eslintrc diff --git a/spikes/stacks/redux-thunk/.gitignore b/legacy/spikes/stacks/redux-thunk/.gitignore similarity index 100% rename from spikes/stacks/redux-thunk/.gitignore rename to legacy/spikes/stacks/redux-thunk/.gitignore diff --git a/spikes/stacks/redux-thunk/.storybook/config.js b/legacy/spikes/stacks/redux-thunk/.storybook/config.js similarity index 100% rename from spikes/stacks/redux-thunk/.storybook/config.js rename to legacy/spikes/stacks/redux-thunk/.storybook/config.js diff --git a/spikes/stacks/redux-thunk/package.json b/legacy/spikes/stacks/redux-thunk/package.json similarity index 100% rename from spikes/stacks/redux-thunk/package.json rename to legacy/spikes/stacks/redux-thunk/package.json diff --git a/spikes/stacks/redux-thunk/src/client/api.js b/legacy/spikes/stacks/redux-thunk/src/client/api.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/api.js rename to legacy/spikes/stacks/redux-thunk/src/client/api.js diff --git a/spikes/stacks/redux-thunk/src/client/components/change.js b/legacy/spikes/stacks/redux-thunk/src/client/components/change.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/components/change.js rename to legacy/spikes/stacks/redux-thunk/src/client/components/change.js diff --git a/spikes/stacks/redux-thunk/src/client/components/changes.js b/legacy/spikes/stacks/redux-thunk/src/client/components/changes.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/components/changes.js rename to legacy/spikes/stacks/redux-thunk/src/client/components/changes.js diff --git a/spikes/stacks/redux-thunk/src/client/components/loader.js b/legacy/spikes/stacks/redux-thunk/src/client/components/loader.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/components/loader.js rename to legacy/spikes/stacks/redux-thunk/src/client/components/loader.js diff --git a/spikes/stacks/redux-thunk/src/client/components/printers.js b/legacy/spikes/stacks/redux-thunk/src/client/components/printers.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/components/printers.js rename to legacy/spikes/stacks/redux-thunk/src/client/components/printers.js diff --git a/spikes/stacks/redux-thunk/src/client/containers/app.js b/legacy/spikes/stacks/redux-thunk/src/client/containers/app.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/containers/app.js rename to legacy/spikes/stacks/redux-thunk/src/client/containers/app.js diff --git a/spikes/stacks/redux-thunk/src/client/containers/home.js b/legacy/spikes/stacks/redux-thunk/src/client/containers/home.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/containers/home.js rename to legacy/spikes/stacks/redux-thunk/src/client/containers/home.js diff --git a/spikes/stacks/redux-thunk/src/client/containers/not-found.js b/legacy/spikes/stacks/redux-thunk/src/client/containers/not-found.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/containers/not-found.js rename to legacy/spikes/stacks/redux-thunk/src/client/containers/not-found.js diff --git a/spikes/stacks/redux-thunk/src/client/containers/print.js b/legacy/spikes/stacks/redux-thunk/src/client/containers/print.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/containers/print.js rename to legacy/spikes/stacks/redux-thunk/src/client/containers/print.js diff --git a/spikes/stacks/redux-thunk/src/client/index.js b/legacy/spikes/stacks/redux-thunk/src/client/index.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/index.js rename to legacy/spikes/stacks/redux-thunk/src/client/index.js diff --git a/spikes/stacks/redux-thunk/src/client/intl.json b/legacy/spikes/stacks/redux-thunk/src/client/intl.json similarity index 100% rename from spikes/stacks/redux-thunk/src/client/intl.json rename to legacy/spikes/stacks/redux-thunk/src/client/intl.json diff --git a/spikes/stacks/redux-thunk/src/client/root.js b/legacy/spikes/stacks/redux-thunk/src/client/root.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/root.js rename to legacy/spikes/stacks/redux-thunk/src/client/root.js diff --git a/spikes/stacks/redux-thunk/src/client/state/actions/app.js b/legacy/spikes/stacks/redux-thunk/src/client/state/actions/app.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/actions/app.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/actions/app.js diff --git a/spikes/stacks/redux-thunk/src/client/state/actions/changes.js b/legacy/spikes/stacks/redux-thunk/src/client/state/actions/changes.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/actions/changes.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/actions/changes.js diff --git a/spikes/stacks/redux-thunk/src/client/state/actions/index.js b/legacy/spikes/stacks/redux-thunk/src/client/state/actions/index.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/actions/index.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/actions/index.js diff --git a/spikes/stacks/redux-thunk/src/client/state/actions/printers.js b/legacy/spikes/stacks/redux-thunk/src/client/state/actions/printers.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/actions/printers.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/actions/printers.js diff --git a/spikes/stacks/redux-thunk/src/client/state/reducers/app.js b/legacy/spikes/stacks/redux-thunk/src/client/state/reducers/app.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/reducers/app.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/reducers/app.js diff --git a/spikes/stacks/redux-thunk/src/client/state/reducers/changes.js b/legacy/spikes/stacks/redux-thunk/src/client/state/reducers/changes.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/reducers/changes.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/reducers/changes.js diff --git a/spikes/stacks/redux-thunk/src/client/state/reducers/index.js b/legacy/spikes/stacks/redux-thunk/src/client/state/reducers/index.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/reducers/index.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/reducers/index.js diff --git a/spikes/stacks/redux-thunk/src/client/state/reducers/printers.js b/legacy/spikes/stacks/redux-thunk/src/client/state/reducers/printers.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/reducers/printers.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/reducers/printers.js diff --git a/spikes/stacks/redux-thunk/src/client/state/selectors.js b/legacy/spikes/stacks/redux-thunk/src/client/state/selectors.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/selectors.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/selectors.js diff --git a/spikes/stacks/redux-thunk/src/client/state/store.js b/legacy/spikes/stacks/redux-thunk/src/client/state/store.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/state/store.js rename to legacy/spikes/stacks/redux-thunk/src/client/state/store.js diff --git a/spikes/stacks/redux-thunk/src/client/worker.js b/legacy/spikes/stacks/redux-thunk/src/client/worker.js similarity index 100% rename from spikes/stacks/redux-thunk/src/client/worker.js rename to legacy/spikes/stacks/redux-thunk/src/client/worker.js diff --git a/spikes/stacks/redux-thunk/src/config/webpack.config.js b/legacy/spikes/stacks/redux-thunk/src/config/webpack.config.js similarity index 100% rename from spikes/stacks/redux-thunk/src/config/webpack.config.js rename to legacy/spikes/stacks/redux-thunk/src/config/webpack.config.js diff --git a/spikes/stacks/redux-thunk/src/server/data/changes.json b/legacy/spikes/stacks/redux-thunk/src/server/data/changes.json similarity index 100% rename from spikes/stacks/redux-thunk/src/server/data/changes.json rename to legacy/spikes/stacks/redux-thunk/src/server/data/changes.json diff --git a/spikes/stacks/redux-thunk/src/server/data/products.json b/legacy/spikes/stacks/redux-thunk/src/server/data/products.json similarity index 100% rename from spikes/stacks/redux-thunk/src/server/data/products.json rename to legacy/spikes/stacks/redux-thunk/src/server/data/products.json diff --git a/spikes/stacks/redux-thunk/src/server/index.js b/legacy/spikes/stacks/redux-thunk/src/server/index.js similarity index 100% rename from spikes/stacks/redux-thunk/src/server/index.js rename to legacy/spikes/stacks/redux-thunk/src/server/index.js diff --git a/spikes/stacks/redux-thunk/src/server/schema.js b/legacy/spikes/stacks/redux-thunk/src/server/schema.js similarity index 100% rename from spikes/stacks/redux-thunk/src/server/schema.js rename to legacy/spikes/stacks/redux-thunk/src/server/schema.js diff --git a/spikes/stacks/redux-thunk/static/index.html b/legacy/spikes/stacks/redux-thunk/static/index.html similarity index 100% rename from spikes/stacks/redux-thunk/static/index.html rename to legacy/spikes/stacks/redux-thunk/static/index.html diff --git a/spikes/stacks/redux-thunk/stories/index.js b/legacy/spikes/stacks/redux-thunk/stories/index.js similarity index 100% rename from spikes/stacks/redux-thunk/stories/index.js rename to legacy/spikes/stacks/redux-thunk/stories/index.js diff --git a/spikes/stacks/redux-thunk/test/index.js b/legacy/spikes/stacks/redux-thunk/test/index.js similarity index 100% rename from spikes/stacks/redux-thunk/test/index.js rename to legacy/spikes/stacks/redux-thunk/test/index.js diff --git a/spikes/utils/generate-services-data/generate.js b/legacy/spikes/utils/generate-services-data/generate.js similarity index 100% rename from spikes/utils/generate-services-data/generate.js rename to legacy/spikes/utils/generate-services-data/generate.js diff --git a/ui/.babelrc b/legacy/ui/.babelrc similarity index 100% rename from ui/.babelrc rename to legacy/ui/.babelrc diff --git a/ui/.dockerignore b/legacy/ui/.dockerignore similarity index 100% rename from ui/.dockerignore rename to legacy/ui/.dockerignore diff --git a/ui/.eslintignore b/legacy/ui/.eslintignore similarity index 100% rename from ui/.eslintignore rename to legacy/ui/.eslintignore diff --git a/ui/.eslintrc b/legacy/ui/.eslintrc similarity index 100% rename from ui/.eslintrc rename to legacy/ui/.eslintrc diff --git a/ui/.storybook/.babelrc b/legacy/ui/.storybook/.babelrc similarity index 100% rename from ui/.storybook/.babelrc rename to legacy/ui/.storybook/.babelrc diff --git a/ui/.storybook/addons.js b/legacy/ui/.storybook/addons.js similarity index 100% rename from ui/.storybook/addons.js rename to legacy/ui/.storybook/addons.js diff --git a/ui/.storybook/config.js b/legacy/ui/.storybook/config.js similarity index 100% rename from ui/.storybook/config.js rename to legacy/ui/.storybook/config.js diff --git a/ui/.storybook/webpack.config.js b/legacy/ui/.storybook/webpack.config.js similarity index 100% rename from ui/.storybook/webpack.config.js rename to legacy/ui/.storybook/webpack.config.js diff --git a/ui/.stylelintignore b/legacy/ui/.stylelintignore similarity index 100% rename from ui/.stylelintignore rename to legacy/ui/.stylelintignore diff --git a/ui/.stylelintrc b/legacy/ui/.stylelintrc similarity index 100% rename from ui/.stylelintrc rename to legacy/ui/.stylelintrc diff --git a/legacy/ui/.tern-project b/legacy/ui/.tern-project new file mode 100644 index 00000000..22bab84c --- /dev/null +++ b/legacy/ui/.tern-project @@ -0,0 +1,15 @@ +{ + "libs": [ + "ecmascript", + "browser" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "jsx": true, + "node": true, + "webpack": { + "configPath": "./webpack/index.js" + } + } +} \ No newline at end of file diff --git a/ui/Dockerfile b/legacy/ui/Dockerfile similarity index 100% rename from ui/Dockerfile rename to legacy/ui/Dockerfile diff --git a/ui/Dockerfile.build b/legacy/ui/Dockerfile.build similarity index 100% rename from ui/Dockerfile.build rename to legacy/ui/Dockerfile.build diff --git a/ui/Makefile b/legacy/ui/Makefile similarity index 100% rename from ui/Makefile rename to legacy/ui/Makefile diff --git a/ui/README.md b/legacy/ui/README.md similarity index 100% rename from ui/README.md rename to legacy/ui/README.md diff --git a/ui/docs/.babelrc b/legacy/ui/docs/.babelrc similarity index 100% rename from ui/docs/.babelrc rename to legacy/ui/docs/.babelrc diff --git a/ui/docs/package.json b/legacy/ui/docs/package.json similarity index 100% rename from ui/docs/package.json rename to legacy/ui/docs/package.json diff --git a/ui/docs/src/containers/app/index.js b/legacy/ui/docs/src/containers/app/index.js similarity index 100% rename from ui/docs/src/containers/app/index.js rename to legacy/ui/docs/src/containers/app/index.js diff --git a/ui/docs/src/containers/app/navigation.js b/legacy/ui/docs/src/containers/app/navigation.js similarity index 100% rename from ui/docs/src/containers/app/navigation.js rename to legacy/ui/docs/src/containers/app/navigation.js diff --git a/ui/docs/src/containers/home.js b/legacy/ui/docs/src/containers/home.js similarity index 100% rename from ui/docs/src/containers/home.js rename to legacy/ui/docs/src/containers/home.js diff --git a/ui/docs/src/containers/item/index.js b/legacy/ui/docs/src/containers/item/index.js similarity index 100% rename from ui/docs/src/containers/item/index.js rename to legacy/ui/docs/src/containers/item/index.js diff --git a/ui/docs/src/index.js b/legacy/ui/docs/src/index.js similarity index 100% rename from ui/docs/src/index.js rename to legacy/ui/docs/src/index.js diff --git a/ui/docs/src/mds.js b/legacy/ui/docs/src/mds.js similarity index 100% rename from ui/docs/src/mds.js rename to legacy/ui/docs/src/mds.js diff --git a/ui/docs/src/root.js b/legacy/ui/docs/src/root.js similarity index 100% rename from ui/docs/src/root.js rename to legacy/ui/docs/src/root.js diff --git a/ui/docs/static/.gitignore b/legacy/ui/docs/static/.gitignore similarity index 100% rename from ui/docs/static/.gitignore rename to legacy/ui/docs/static/.gitignore diff --git a/ui/docs/static/index.html b/legacy/ui/docs/static/index.html similarity index 100% rename from ui/docs/static/index.html rename to legacy/ui/docs/static/index.html diff --git a/ui/docs/static/theme.css b/legacy/ui/docs/static/theme.css similarity index 100% rename from ui/docs/static/theme.css rename to legacy/ui/docs/static/theme.css diff --git a/ui/docs/webpack/base.js b/legacy/ui/docs/webpack/base.js similarity index 100% rename from ui/docs/webpack/base.js rename to legacy/ui/docs/webpack/base.js diff --git a/ui/docs/webpack/development.js b/legacy/ui/docs/webpack/development.js similarity index 100% rename from ui/docs/webpack/development.js rename to legacy/ui/docs/webpack/development.js diff --git a/ui/docs/webpack/embed-markdown-loader/package.json b/legacy/ui/docs/webpack/embed-markdown-loader/package.json similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/package.json rename to legacy/ui/docs/webpack/embed-markdown-loader/package.json diff --git a/ui/docs/webpack/embed-markdown-loader/src/compile/compile.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/compile/compile.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/compile/compile.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/compile/compile.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/compile/detach.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/compile/detach.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/compile/detach.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/compile/detach.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/compile/detached.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/compile/detached.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/compile/detached.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/compile/detached.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/compile/index.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/compile/index.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/compile/index.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/compile/index.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/eval.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/eval.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/eval.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/eval.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/highlight.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/highlight.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/highlight.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/highlight.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/index.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/index.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/index.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/index.js diff --git a/ui/docs/webpack/embed-markdown-loader/src/parse.js b/legacy/ui/docs/webpack/embed-markdown-loader/src/parse.js similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/src/parse.js rename to legacy/ui/docs/webpack/embed-markdown-loader/src/parse.js diff --git a/ui/docs/webpack/embed-markdown-loader/yarn.lock b/legacy/ui/docs/webpack/embed-markdown-loader/yarn.lock similarity index 100% rename from ui/docs/webpack/embed-markdown-loader/yarn.lock rename to legacy/ui/docs/webpack/embed-markdown-loader/yarn.lock diff --git a/ui/docs/webpack/index.js b/legacy/ui/docs/webpack/index.js similarity index 100% rename from ui/docs/webpack/index.js rename to legacy/ui/docs/webpack/index.js diff --git a/ui/docs/webpack/plugins.js b/legacy/ui/docs/webpack/plugins.js similarity index 100% rename from ui/docs/webpack/plugins.js rename to legacy/ui/docs/webpack/plugins.js diff --git a/ui/docs/webpack/production.js b/legacy/ui/docs/webpack/production.js similarity index 100% rename from ui/docs/webpack/production.js rename to legacy/ui/docs/webpack/production.js diff --git a/ui/docs/yarn.lock b/legacy/ui/docs/yarn.lock similarity index 100% rename from ui/docs/yarn.lock rename to legacy/ui/docs/yarn.lock diff --git a/ui/etc/containerpilot.json b/legacy/ui/etc/containerpilot.json similarity index 100% rename from ui/etc/containerpilot.json rename to legacy/ui/etc/containerpilot.json diff --git a/ui/package.json b/legacy/ui/package.json similarity index 100% rename from ui/package.json rename to legacy/ui/package.json diff --git a/ui/src/components/add-metric/button.js b/legacy/ui/src/components/add-metric/button.js similarity index 100% rename from ui/src/components/add-metric/button.js rename to legacy/ui/src/components/add-metric/button.js diff --git a/ui/src/components/add-metric/description.js b/legacy/ui/src/components/add-metric/description.js similarity index 100% rename from ui/src/components/add-metric/description.js rename to legacy/ui/src/components/add-metric/description.js diff --git a/ui/src/components/add-metric/index.js b/legacy/ui/src/components/add-metric/index.js similarity index 100% rename from ui/src/components/add-metric/index.js rename to legacy/ui/src/components/add-metric/index.js diff --git a/ui/src/components/add-metric/link.js b/legacy/ui/src/components/add-metric/link.js similarity index 100% rename from ui/src/components/add-metric/link.js rename to legacy/ui/src/components/add-metric/link.js diff --git a/ui/src/components/add-metric/readme.md b/legacy/ui/src/components/add-metric/readme.md similarity index 100% rename from ui/src/components/add-metric/readme.md rename to legacy/ui/src/components/add-metric/readme.md diff --git a/ui/src/components/add-metric/story.js b/legacy/ui/src/components/add-metric/story.js similarity index 100% rename from ui/src/components/add-metric/story.js rename to legacy/ui/src/components/add-metric/story.js diff --git a/ui/src/components/add-metric/tile.js b/legacy/ui/src/components/add-metric/tile.js similarity index 100% rename from ui/src/components/add-metric/tile.js rename to legacy/ui/src/components/add-metric/tile.js diff --git a/ui/src/components/add-metric/title.js b/legacy/ui/src/components/add-metric/title.js similarity index 100% rename from ui/src/components/add-metric/title.js rename to legacy/ui/src/components/add-metric/title.js diff --git a/ui/src/components/anchor/index.js b/legacy/ui/src/components/anchor/index.js similarity index 100% rename from ui/src/components/anchor/index.js rename to legacy/ui/src/components/anchor/index.js diff --git a/ui/src/components/avatar/index.js b/legacy/ui/src/components/avatar/index.js similarity index 100% rename from ui/src/components/avatar/index.js rename to legacy/ui/src/components/avatar/index.js diff --git a/ui/src/components/avatar/readme.md b/legacy/ui/src/components/avatar/readme.md similarity index 100% rename from ui/src/components/avatar/readme.md rename to legacy/ui/src/components/avatar/readme.md diff --git a/ui/src/components/avatar/story.js b/legacy/ui/src/components/avatar/story.js similarity index 100% rename from ui/src/components/avatar/story.js rename to legacy/ui/src/components/avatar/story.js diff --git a/ui/src/components/base-elements/index.js b/legacy/ui/src/components/base-elements/index.js similarity index 100% rename from ui/src/components/base-elements/index.js rename to legacy/ui/src/components/base-elements/index.js diff --git a/ui/src/components/base-elements/story.js b/legacy/ui/src/components/base-elements/story.js similarity index 100% rename from ui/src/components/base-elements/story.js rename to legacy/ui/src/components/base-elements/story.js diff --git a/ui/src/components/base/global.js b/legacy/ui/src/components/base/global.js similarity index 100% rename from ui/src/components/base/global.js rename to legacy/ui/src/components/base/global.js diff --git a/ui/src/components/base/index.js b/legacy/ui/src/components/base/index.js similarity index 100% rename from ui/src/components/base/index.js rename to legacy/ui/src/components/base/index.js diff --git a/ui/src/components/base/readme.md b/legacy/ui/src/components/base/readme.md similarity index 100% rename from ui/src/components/base/readme.md rename to legacy/ui/src/components/base/readme.md diff --git a/ui/src/components/baseline-grid/index.js b/legacy/ui/src/components/baseline-grid/index.js similarity index 100% rename from ui/src/components/baseline-grid/index.js rename to legacy/ui/src/components/baseline-grid/index.js diff --git a/ui/src/components/baseline-grid/story.js b/legacy/ui/src/components/baseline-grid/story.js similarity index 100% rename from ui/src/components/baseline-grid/story.js rename to legacy/ui/src/components/baseline-grid/story.js diff --git a/ui/src/components/button/icon.js b/legacy/ui/src/components/button/icon.js similarity index 100% rename from ui/src/components/button/icon.js rename to legacy/ui/src/components/button/icon.js diff --git a/ui/src/components/button/index.js b/legacy/ui/src/components/button/index.js similarity index 100% rename from ui/src/components/button/index.js rename to legacy/ui/src/components/button/index.js diff --git a/ui/src/components/button/readme.md b/legacy/ui/src/components/button/readme.md similarity index 100% rename from ui/src/components/button/readme.md rename to legacy/ui/src/components/button/readme.md diff --git a/ui/src/components/button/story.js b/legacy/ui/src/components/button/story.js similarity index 100% rename from ui/src/components/button/story.js rename to legacy/ui/src/components/button/story.js diff --git a/ui/src/components/colors/story.js b/legacy/ui/src/components/colors/story.js similarity index 100% rename from ui/src/components/colors/story.js rename to legacy/ui/src/components/colors/story.js diff --git a/ui/src/components/column/index.js b/legacy/ui/src/components/column/index.js similarity index 100% rename from ui/src/components/column/index.js rename to legacy/ui/src/components/column/index.js diff --git a/ui/src/components/column/readme.md b/legacy/ui/src/components/column/readme.md similarity index 100% rename from ui/src/components/column/readme.md rename to legacy/ui/src/components/column/readme.md diff --git a/ui/src/components/container/index.js b/legacy/ui/src/components/container/index.js similarity index 100% rename from ui/src/components/container/index.js rename to legacy/ui/src/components/container/index.js diff --git a/ui/src/components/container/readme.md b/legacy/ui/src/components/container/readme.md similarity index 100% rename from ui/src/components/container/readme.md rename to legacy/ui/src/components/container/readme.md diff --git a/ui/src/components/fonts/index.js b/legacy/ui/src/components/fonts/index.js similarity index 100% rename from ui/src/components/fonts/index.js rename to legacy/ui/src/components/fonts/index.js diff --git a/ui/src/components/fonts/libre-franklin/README.md b/legacy/ui/src/components/fonts/libre-franklin/README.md similarity index 100% rename from ui/src/components/fonts/libre-franklin/README.md rename to legacy/ui/src/components/fonts/libre-franklin/README.md diff --git a/ui/src/components/fonts/libre-franklin/medium.eot b/legacy/ui/src/components/fonts/libre-franklin/medium.eot similarity index 100% rename from ui/src/components/fonts/libre-franklin/medium.eot rename to legacy/ui/src/components/fonts/libre-franklin/medium.eot diff --git a/ui/src/components/fonts/libre-franklin/medium.svg b/legacy/ui/src/components/fonts/libre-franklin/medium.svg similarity index 100% rename from ui/src/components/fonts/libre-franklin/medium.svg rename to legacy/ui/src/components/fonts/libre-franklin/medium.svg diff --git a/ui/src/components/fonts/libre-franklin/medium.ttf b/legacy/ui/src/components/fonts/libre-franklin/medium.ttf similarity index 100% rename from ui/src/components/fonts/libre-franklin/medium.ttf rename to legacy/ui/src/components/fonts/libre-franklin/medium.ttf diff --git a/ui/src/components/fonts/libre-franklin/medium.woff b/legacy/ui/src/components/fonts/libre-franklin/medium.woff similarity index 100% rename from ui/src/components/fonts/libre-franklin/medium.woff rename to legacy/ui/src/components/fonts/libre-franklin/medium.woff diff --git a/ui/src/components/fonts/libre-franklin/medium.woff2 b/legacy/ui/src/components/fonts/libre-franklin/medium.woff2 similarity index 100% rename from ui/src/components/fonts/libre-franklin/medium.woff2 rename to legacy/ui/src/components/fonts/libre-franklin/medium.woff2 diff --git a/ui/src/components/fonts/libre-franklin/regular.eot b/legacy/ui/src/components/fonts/libre-franklin/regular.eot similarity index 100% rename from ui/src/components/fonts/libre-franklin/regular.eot rename to legacy/ui/src/components/fonts/libre-franklin/regular.eot diff --git a/ui/src/components/fonts/libre-franklin/regular.svg b/legacy/ui/src/components/fonts/libre-franklin/regular.svg similarity index 100% rename from ui/src/components/fonts/libre-franklin/regular.svg rename to legacy/ui/src/components/fonts/libre-franklin/regular.svg diff --git a/ui/src/components/fonts/libre-franklin/regular.ttf b/legacy/ui/src/components/fonts/libre-franklin/regular.ttf similarity index 100% rename from ui/src/components/fonts/libre-franklin/regular.ttf rename to legacy/ui/src/components/fonts/libre-franklin/regular.ttf diff --git a/ui/src/components/fonts/libre-franklin/regular.woff b/legacy/ui/src/components/fonts/libre-franklin/regular.woff similarity index 100% rename from ui/src/components/fonts/libre-franklin/regular.woff rename to legacy/ui/src/components/fonts/libre-franklin/regular.woff diff --git a/ui/src/components/fonts/libre-franklin/regular.woff2 b/legacy/ui/src/components/fonts/libre-franklin/regular.woff2 similarity index 100% rename from ui/src/components/fonts/libre-franklin/regular.woff2 rename to legacy/ui/src/components/fonts/libre-franklin/regular.woff2 diff --git a/ui/src/components/fonts/libre-franklin/semibold.eot b/legacy/ui/src/components/fonts/libre-franklin/semibold.eot similarity index 100% rename from ui/src/components/fonts/libre-franklin/semibold.eot rename to legacy/ui/src/components/fonts/libre-franklin/semibold.eot diff --git a/ui/src/components/fonts/libre-franklin/semibold.svg b/legacy/ui/src/components/fonts/libre-franklin/semibold.svg similarity index 100% rename from ui/src/components/fonts/libre-franklin/semibold.svg rename to legacy/ui/src/components/fonts/libre-franklin/semibold.svg diff --git a/ui/src/components/fonts/libre-franklin/semibold.ttf b/legacy/ui/src/components/fonts/libre-franklin/semibold.ttf similarity index 100% rename from ui/src/components/fonts/libre-franklin/semibold.ttf rename to legacy/ui/src/components/fonts/libre-franklin/semibold.ttf diff --git a/ui/src/components/fonts/libre-franklin/semibold.woff b/legacy/ui/src/components/fonts/libre-franklin/semibold.woff similarity index 100% rename from ui/src/components/fonts/libre-franklin/semibold.woff rename to legacy/ui/src/components/fonts/libre-franklin/semibold.woff diff --git a/ui/src/components/fonts/libre-franklin/semibold.woff2 b/legacy/ui/src/components/fonts/libre-franklin/semibold.woff2 similarity index 100% rename from ui/src/components/fonts/libre-franklin/semibold.woff2 rename to legacy/ui/src/components/fonts/libre-franklin/semibold.woff2 diff --git a/ui/src/components/form/base-input.js b/legacy/ui/src/components/form/base-input.js similarity index 100% rename from ui/src/components/form/base-input.js rename to legacy/ui/src/components/form/base-input.js diff --git a/ui/src/components/form/checkbox/index.js b/legacy/ui/src/components/form/checkbox/index.js similarity index 100% rename from ui/src/components/form/checkbox/index.js rename to legacy/ui/src/components/form/checkbox/index.js diff --git a/ui/src/components/form/checkbox/story.js b/legacy/ui/src/components/form/checkbox/story.js similarity index 100% rename from ui/src/components/form/checkbox/story.js rename to legacy/ui/src/components/form/checkbox/story.js diff --git a/ui/src/components/form/fieldset.js b/legacy/ui/src/components/form/fieldset.js similarity index 100% rename from ui/src/components/form/fieldset.js rename to legacy/ui/src/components/form/fieldset.js diff --git a/ui/src/components/form/group.js b/legacy/ui/src/components/form/group.js similarity index 100% rename from ui/src/components/form/group.js rename to legacy/ui/src/components/form/group.js diff --git a/ui/src/components/form/index.js b/legacy/ui/src/components/form/index.js similarity index 100% rename from ui/src/components/form/index.js rename to legacy/ui/src/components/form/index.js diff --git a/ui/src/components/form/input/index.js b/legacy/ui/src/components/form/input/index.js similarity index 100% rename from ui/src/components/form/input/index.js rename to legacy/ui/src/components/form/input/index.js diff --git a/ui/src/components/form/input/story.js b/legacy/ui/src/components/form/input/story.js similarity index 100% rename from ui/src/components/form/input/story.js rename to legacy/ui/src/components/form/input/story.js diff --git a/ui/src/components/form/label.js b/legacy/ui/src/components/form/label.js similarity index 100% rename from ui/src/components/form/label.js rename to legacy/ui/src/components/form/label.js diff --git a/ui/src/components/form/legend.js b/legacy/ui/src/components/form/legend.js similarity index 100% rename from ui/src/components/form/legend.js rename to legacy/ui/src/components/form/legend.js diff --git a/ui/src/components/form/meta.js b/legacy/ui/src/components/form/meta.js similarity index 100% rename from ui/src/components/form/meta.js rename to legacy/ui/src/components/form/meta.js diff --git a/ui/src/components/form/radio/index.js b/legacy/ui/src/components/form/radio/index.js similarity index 100% rename from ui/src/components/form/radio/index.js rename to legacy/ui/src/components/form/radio/index.js diff --git a/ui/src/components/form/radio/story.js b/legacy/ui/src/components/form/radio/story.js similarity index 100% rename from ui/src/components/form/radio/story.js rename to legacy/ui/src/components/form/radio/story.js diff --git a/ui/src/components/form/select/index.js b/legacy/ui/src/components/form/select/index.js similarity index 100% rename from ui/src/components/form/select/index.js rename to legacy/ui/src/components/form/select/index.js diff --git a/ui/src/components/form/select/story.js b/legacy/ui/src/components/form/select/story.js similarity index 100% rename from ui/src/components/form/select/story.js rename to legacy/ui/src/components/form/select/story.js diff --git a/ui/src/components/form/toggle-base.js b/legacy/ui/src/components/form/toggle-base.js similarity index 100% rename from ui/src/components/form/toggle-base.js rename to legacy/ui/src/components/form/toggle-base.js diff --git a/ui/src/components/form/toggle/index.js b/legacy/ui/src/components/form/toggle/index.js similarity index 100% rename from ui/src/components/form/toggle/index.js rename to legacy/ui/src/components/form/toggle/index.js diff --git a/ui/src/components/form/toggle/story.js b/legacy/ui/src/components/form/toggle/story.js similarity index 100% rename from ui/src/components/form/toggle/story.js rename to legacy/ui/src/components/form/toggle/story.js diff --git a/ui/src/components/horizontal-list/index.js b/legacy/ui/src/components/horizontal-list/index.js similarity index 100% rename from ui/src/components/horizontal-list/index.js rename to legacy/ui/src/components/horizontal-list/index.js diff --git a/ui/src/components/horizontal-list/li.js b/legacy/ui/src/components/horizontal-list/li.js similarity index 100% rename from ui/src/components/horizontal-list/li.js rename to legacy/ui/src/components/horizontal-list/li.js diff --git a/ui/src/components/horizontal-list/story.js b/legacy/ui/src/components/horizontal-list/story.js similarity index 100% rename from ui/src/components/horizontal-list/story.js rename to legacy/ui/src/components/horizontal-list/story.js diff --git a/ui/src/components/horizontal-list/ul.js b/legacy/ui/src/components/horizontal-list/ul.js similarity index 100% rename from ui/src/components/horizontal-list/ul.js rename to legacy/ui/src/components/horizontal-list/ul.js diff --git a/ui/src/components/icons/close.js b/legacy/ui/src/components/icons/close.js similarity index 100% rename from ui/src/components/icons/close.js rename to legacy/ui/src/components/icons/close.js diff --git a/ui/src/components/icons/data-centers.js b/legacy/ui/src/components/icons/data-centers.js similarity index 100% rename from ui/src/components/icons/data-centers.js rename to legacy/ui/src/components/icons/data-centers.js diff --git a/ui/src/components/icons/healthy.js b/legacy/ui/src/components/icons/healthy.js similarity index 100% rename from ui/src/components/icons/healthy.js rename to legacy/ui/src/components/icons/healthy.js diff --git a/ui/src/components/icons/heart.js b/legacy/ui/src/components/icons/heart.js similarity index 100% rename from ui/src/components/icons/heart.js rename to legacy/ui/src/components/icons/heart.js diff --git a/ui/src/components/icons/index.js b/legacy/ui/src/components/icons/index.js similarity index 100% rename from ui/src/components/icons/index.js rename to legacy/ui/src/components/icons/index.js diff --git a/ui/src/components/icons/input-confirm.js b/legacy/ui/src/components/icons/input-confirm.js similarity index 100% rename from ui/src/components/icons/input-confirm.js rename to legacy/ui/src/components/icons/input-confirm.js diff --git a/ui/src/components/icons/instances-multiple.js b/legacy/ui/src/components/icons/instances-multiple.js similarity index 100% rename from ui/src/components/icons/instances-multiple.js rename to legacy/ui/src/components/icons/instances-multiple.js diff --git a/ui/src/components/icons/notification.js b/legacy/ui/src/components/icons/notification.js similarity index 100% rename from ui/src/components/icons/notification.js rename to legacy/ui/src/components/icons/notification.js diff --git a/ui/src/components/icons/payment-card.js b/legacy/ui/src/components/icons/payment-card.js similarity index 100% rename from ui/src/components/icons/payment-card.js rename to legacy/ui/src/components/icons/payment-card.js diff --git a/ui/src/components/icons/search.js b/legacy/ui/src/components/icons/search.js similarity index 100% rename from ui/src/components/icons/search.js rename to legacy/ui/src/components/icons/search.js diff --git a/ui/src/components/icons/settings.js b/legacy/ui/src/components/icons/settings.js similarity index 100% rename from ui/src/components/icons/settings.js rename to legacy/ui/src/components/icons/settings.js diff --git a/ui/src/components/icons/story.js b/legacy/ui/src/components/icons/story.js similarity index 100% rename from ui/src/components/icons/story.js rename to legacy/ui/src/components/icons/story.js diff --git a/ui/src/components/icons/svg/alipay.svg b/legacy/ui/src/components/icons/svg/alipay.svg similarity index 100% rename from ui/src/components/icons/svg/alipay.svg rename to legacy/ui/src/components/icons/svg/alipay.svg diff --git a/ui/src/components/icons/svg/amex.svg b/legacy/ui/src/components/icons/svg/amex.svg similarity index 100% rename from ui/src/components/icons/svg/amex.svg rename to legacy/ui/src/components/icons/svg/amex.svg diff --git a/ui/src/components/icons/svg/close.svg b/legacy/ui/src/components/icons/svg/close.svg similarity index 100% rename from ui/src/components/icons/svg/close.svg rename to legacy/ui/src/components/icons/svg/close.svg diff --git a/ui/src/components/icons/svg/data-centers.svg b/legacy/ui/src/components/icons/svg/data-centers.svg similarity index 100% rename from ui/src/components/icons/svg/data-centers.svg rename to legacy/ui/src/components/icons/svg/data-centers.svg diff --git a/ui/src/components/icons/svg/diners.svg b/legacy/ui/src/components/icons/svg/diners.svg similarity index 100% rename from ui/src/components/icons/svg/diners.svg rename to legacy/ui/src/components/icons/svg/diners.svg diff --git a/ui/src/components/icons/svg/discover.svg b/legacy/ui/src/components/icons/svg/discover.svg similarity index 100% rename from ui/src/components/icons/svg/discover.svg rename to legacy/ui/src/components/icons/svg/discover.svg diff --git a/ui/src/components/icons/svg/healthy.svg b/legacy/ui/src/components/icons/svg/healthy.svg similarity index 100% rename from ui/src/components/icons/svg/healthy.svg rename to legacy/ui/src/components/icons/svg/healthy.svg diff --git a/ui/src/components/icons/svg/heart.svg b/legacy/ui/src/components/icons/svg/heart.svg similarity index 100% rename from ui/src/components/icons/svg/heart.svg rename to legacy/ui/src/components/icons/svg/heart.svg diff --git a/ui/src/components/icons/svg/hipercard.svg b/legacy/ui/src/components/icons/svg/hipercard.svg similarity index 100% rename from ui/src/components/icons/svg/hipercard.svg rename to legacy/ui/src/components/icons/svg/hipercard.svg diff --git a/ui/src/components/icons/svg/icon-settings.svg b/legacy/ui/src/components/icons/svg/icon-settings.svg similarity index 100% rename from ui/src/components/icons/svg/icon-settings.svg rename to legacy/ui/src/components/icons/svg/icon-settings.svg diff --git a/ui/src/components/icons/svg/input-confirm.svg b/legacy/ui/src/components/icons/svg/input-confirm.svg similarity index 100% rename from ui/src/components/icons/svg/input-confirm.svg rename to legacy/ui/src/components/icons/svg/input-confirm.svg diff --git a/ui/src/components/icons/svg/instances-multiple.svg b/legacy/ui/src/components/icons/svg/instances-multiple.svg similarity index 100% rename from ui/src/components/icons/svg/instances-multiple.svg rename to legacy/ui/src/components/icons/svg/instances-multiple.svg diff --git a/ui/src/components/icons/svg/jcb.svg b/legacy/ui/src/components/icons/svg/jcb.svg similarity index 100% rename from ui/src/components/icons/svg/jcb.svg rename to legacy/ui/src/components/icons/svg/jcb.svg diff --git a/ui/src/components/icons/svg/maestro.svg b/legacy/ui/src/components/icons/svg/maestro.svg similarity index 100% rename from ui/src/components/icons/svg/maestro.svg rename to legacy/ui/src/components/icons/svg/maestro.svg diff --git a/ui/src/components/icons/svg/mastercard.svg b/legacy/ui/src/components/icons/svg/mastercard.svg similarity index 100% rename from ui/src/components/icons/svg/mastercard.svg rename to legacy/ui/src/components/icons/svg/mastercard.svg diff --git a/ui/src/components/icons/svg/notification-action.svg b/legacy/ui/src/components/icons/svg/notification-action.svg similarity index 100% rename from ui/src/components/icons/svg/notification-action.svg rename to legacy/ui/src/components/icons/svg/notification-action.svg diff --git a/ui/src/components/icons/svg/notification-alert.svg b/legacy/ui/src/components/icons/svg/notification-alert.svg similarity index 100% rename from ui/src/components/icons/svg/notification-alert.svg rename to legacy/ui/src/components/icons/svg/notification-alert.svg diff --git a/ui/src/components/icons/svg/notification-confirmation-inverted.svg b/legacy/ui/src/components/icons/svg/notification-confirmation-inverted.svg similarity index 100% rename from ui/src/components/icons/svg/notification-confirmation-inverted.svg rename to legacy/ui/src/components/icons/svg/notification-confirmation-inverted.svg diff --git a/ui/src/components/icons/svg/notification-success.svg b/legacy/ui/src/components/icons/svg/notification-success.svg similarity index 100% rename from ui/src/components/icons/svg/notification-success.svg rename to legacy/ui/src/components/icons/svg/notification-success.svg diff --git a/ui/src/components/icons/svg/notification-warning-inverted.svg b/legacy/ui/src/components/icons/svg/notification-warning-inverted.svg similarity index 100% rename from ui/src/components/icons/svg/notification-warning-inverted.svg rename to legacy/ui/src/components/icons/svg/notification-warning-inverted.svg diff --git a/ui/src/components/icons/svg/notification-warning.svg b/legacy/ui/src/components/icons/svg/notification-warning.svg similarity index 100% rename from ui/src/components/icons/svg/notification-warning.svg rename to legacy/ui/src/components/icons/svg/notification-warning.svg diff --git a/ui/src/components/icons/svg/paypal.svg b/legacy/ui/src/components/icons/svg/paypal.svg similarity index 100% rename from ui/src/components/icons/svg/paypal.svg rename to legacy/ui/src/components/icons/svg/paypal.svg diff --git a/ui/src/components/icons/svg/settings.svg b/legacy/ui/src/components/icons/svg/settings.svg similarity index 100% rename from ui/src/components/icons/svg/settings.svg rename to legacy/ui/src/components/icons/svg/settings.svg diff --git a/ui/src/components/icons/svg/unionpay.svg b/legacy/ui/src/components/icons/svg/unionpay.svg similarity index 100% rename from ui/src/components/icons/svg/unionpay.svg rename to legacy/ui/src/components/icons/svg/unionpay.svg diff --git a/ui/src/components/icons/svg/upload.svg b/legacy/ui/src/components/icons/svg/upload.svg similarity index 100% rename from ui/src/components/icons/svg/upload.svg rename to legacy/ui/src/components/icons/svg/upload.svg diff --git a/ui/src/components/icons/svg/visa.svg b/legacy/ui/src/components/icons/svg/visa.svg similarity index 100% rename from ui/src/components/icons/svg/visa.svg rename to legacy/ui/src/components/icons/svg/visa.svg diff --git a/ui/src/components/icons/upload.js b/legacy/ui/src/components/icons/upload.js similarity index 100% rename from ui/src/components/icons/upload.js rename to legacy/ui/src/components/icons/upload.js diff --git a/ui/src/components/label/index.js b/legacy/ui/src/components/label/index.js similarity index 100% rename from ui/src/components/label/index.js rename to legacy/ui/src/components/label/index.js diff --git a/ui/src/components/list/description.js b/legacy/ui/src/components/list/description.js similarity index 100% rename from ui/src/components/list/description.js rename to legacy/ui/src/components/list/description.js diff --git a/ui/src/components/list/group-view.js b/legacy/ui/src/components/list/group-view.js similarity index 100% rename from ui/src/components/list/group-view.js rename to legacy/ui/src/components/list/group-view.js diff --git a/ui/src/components/list/header.js b/legacy/ui/src/components/list/header.js similarity index 100% rename from ui/src/components/list/header.js rename to legacy/ui/src/components/list/header.js diff --git a/ui/src/components/list/index.js b/legacy/ui/src/components/list/index.js similarity index 100% rename from ui/src/components/list/index.js rename to legacy/ui/src/components/list/index.js diff --git a/ui/src/components/list/info.js b/legacy/ui/src/components/list/info.js similarity index 100% rename from ui/src/components/list/info.js rename to legacy/ui/src/components/list/info.js diff --git a/ui/src/components/list/item.js b/legacy/ui/src/components/list/item.js similarity index 100% rename from ui/src/components/list/item.js rename to legacy/ui/src/components/list/item.js diff --git a/ui/src/components/list/meta.js b/legacy/ui/src/components/list/meta.js similarity index 100% rename from ui/src/components/list/meta.js rename to legacy/ui/src/components/list/meta.js diff --git a/ui/src/components/list/mini-metric-data.js b/legacy/ui/src/components/list/mini-metric-data.js similarity index 100% rename from ui/src/components/list/mini-metric-data.js rename to legacy/ui/src/components/list/mini-metric-data.js diff --git a/ui/src/components/list/options.js b/legacy/ui/src/components/list/options.js similarity index 100% rename from ui/src/components/list/options.js rename to legacy/ui/src/components/list/options.js diff --git a/ui/src/components/list/outlet.js b/legacy/ui/src/components/list/outlet.js similarity index 100% rename from ui/src/components/list/outlet.js rename to legacy/ui/src/components/list/outlet.js diff --git a/ui/src/components/list/story.js b/legacy/ui/src/components/list/story.js similarity index 100% rename from ui/src/components/list/story.js rename to legacy/ui/src/components/list/story.js diff --git a/ui/src/components/list/subtitle.js b/legacy/ui/src/components/list/subtitle.js similarity index 100% rename from ui/src/components/list/subtitle.js rename to legacy/ui/src/components/list/subtitle.js diff --git a/ui/src/components/list/title.js b/legacy/ui/src/components/list/title.js similarity index 100% rename from ui/src/components/list/title.js rename to legacy/ui/src/components/list/title.js diff --git a/ui/src/components/list/view.js b/legacy/ui/src/components/list/view.js similarity index 100% rename from ui/src/components/list/view.js rename to legacy/ui/src/components/list/view.js diff --git a/ui/src/components/metric/full/button-icon.js b/legacy/ui/src/components/metric/full/button-icon.js similarity index 100% rename from ui/src/components/metric/full/button-icon.js rename to legacy/ui/src/components/metric/full/button-icon.js diff --git a/ui/src/components/metric/full/close-button.js b/legacy/ui/src/components/metric/full/close-button.js similarity index 100% rename from ui/src/components/metric/full/close-button.js rename to legacy/ui/src/components/metric/full/close-button.js diff --git a/ui/src/components/metric/full/header.js b/legacy/ui/src/components/metric/full/header.js similarity index 100% rename from ui/src/components/metric/full/header.js rename to legacy/ui/src/components/metric/full/header.js diff --git a/ui/src/components/metric/full/select.js b/legacy/ui/src/components/metric/full/select.js similarity index 100% rename from ui/src/components/metric/full/select.js rename to legacy/ui/src/components/metric/full/select.js diff --git a/ui/src/components/metric/full/settings-button.js b/legacy/ui/src/components/metric/full/settings-button.js similarity index 100% rename from ui/src/components/metric/full/settings-button.js rename to legacy/ui/src/components/metric/full/settings-button.js diff --git a/ui/src/components/metric/full/story.js b/legacy/ui/src/components/metric/full/story.js similarity index 100% rename from ui/src/components/metric/full/story.js rename to legacy/ui/src/components/metric/full/story.js diff --git a/ui/src/components/metric/full/title.js b/legacy/ui/src/components/metric/full/title.js similarity index 100% rename from ui/src/components/metric/full/title.js rename to legacy/ui/src/components/metric/full/title.js diff --git a/ui/src/components/metric/full/view.js b/legacy/ui/src/components/metric/full/view.js similarity index 100% rename from ui/src/components/metric/full/view.js rename to legacy/ui/src/components/metric/full/view.js diff --git a/ui/src/components/metric/graph.js b/legacy/ui/src/components/metric/graph.js similarity index 100% rename from ui/src/components/metric/graph.js rename to legacy/ui/src/components/metric/graph.js diff --git a/ui/src/components/metric/index.js b/legacy/ui/src/components/metric/index.js similarity index 100% rename from ui/src/components/metric/index.js rename to legacy/ui/src/components/metric/index.js diff --git a/ui/src/components/metric/metric-data.js b/legacy/ui/src/components/metric/metric-data.js similarity index 100% rename from ui/src/components/metric/metric-data.js rename to legacy/ui/src/components/metric/metric-data.js diff --git a/ui/src/components/metric/mini/meta.js b/legacy/ui/src/components/metric/mini/meta.js similarity index 100% rename from ui/src/components/metric/mini/meta.js rename to legacy/ui/src/components/metric/mini/meta.js diff --git a/ui/src/components/metric/mini/story.js b/legacy/ui/src/components/metric/mini/story.js similarity index 100% rename from ui/src/components/metric/mini/story.js rename to legacy/ui/src/components/metric/mini/story.js diff --git a/ui/src/components/metric/mini/subtitle.js b/legacy/ui/src/components/metric/mini/subtitle.js similarity index 100% rename from ui/src/components/metric/mini/subtitle.js rename to legacy/ui/src/components/metric/mini/subtitle.js diff --git a/ui/src/components/metric/mini/title.js b/legacy/ui/src/components/metric/mini/title.js similarity index 100% rename from ui/src/components/metric/mini/title.js rename to legacy/ui/src/components/metric/mini/title.js diff --git a/ui/src/components/metric/mini/view.js b/legacy/ui/src/components/metric/mini/view.js similarity index 100% rename from ui/src/components/metric/mini/view.js rename to legacy/ui/src/components/metric/mini/view.js diff --git a/ui/src/components/metric/view.js b/legacy/ui/src/components/metric/view.js similarity index 100% rename from ui/src/components/metric/view.js rename to legacy/ui/src/components/metric/view.js diff --git a/ui/src/components/modal/index.js b/legacy/ui/src/components/modal/index.js similarity index 100% rename from ui/src/components/modal/index.js rename to legacy/ui/src/components/modal/index.js diff --git a/ui/src/components/modal/readme.md b/legacy/ui/src/components/modal/readme.md similarity index 100% rename from ui/src/components/modal/readme.md rename to legacy/ui/src/components/modal/readme.md diff --git a/ui/src/components/modal/story.js b/legacy/ui/src/components/modal/story.js similarity index 100% rename from ui/src/components/modal/story.js rename to legacy/ui/src/components/modal/story.js diff --git a/ui/src/components/nav-link/index.js b/legacy/ui/src/components/nav-link/index.js similarity index 100% rename from ui/src/components/nav-link/index.js rename to legacy/ui/src/components/nav-link/index.js diff --git a/ui/src/components/notification/index.js b/legacy/ui/src/components/notification/index.js similarity index 100% rename from ui/src/components/notification/index.js rename to legacy/ui/src/components/notification/index.js diff --git a/ui/src/components/notification/readme.md b/legacy/ui/src/components/notification/readme.md similarity index 100% rename from ui/src/components/notification/readme.md rename to legacy/ui/src/components/notification/readme.md diff --git a/ui/src/components/notification/story.js b/legacy/ui/src/components/notification/story.js similarity index 100% rename from ui/src/components/notification/story.js rename to legacy/ui/src/components/notification/story.js diff --git a/ui/src/components/pagination/index.js b/legacy/ui/src/components/pagination/index.js similarity index 100% rename from ui/src/components/pagination/index.js rename to legacy/ui/src/components/pagination/index.js diff --git a/ui/src/components/pagination/readme.md b/legacy/ui/src/components/pagination/readme.md similarity index 100% rename from ui/src/components/pagination/readme.md rename to legacy/ui/src/components/pagination/readme.md diff --git a/ui/src/components/pagination/story.js b/legacy/ui/src/components/pagination/story.js similarity index 100% rename from ui/src/components/pagination/story.js rename to legacy/ui/src/components/pagination/story.js diff --git a/ui/src/components/payment-card/detail.js b/legacy/ui/src/components/payment-card/detail.js similarity index 100% rename from ui/src/components/payment-card/detail.js rename to legacy/ui/src/components/payment-card/detail.js diff --git a/ui/src/components/payment-card/details.js b/legacy/ui/src/components/payment-card/details.js similarity index 100% rename from ui/src/components/payment-card/details.js rename to legacy/ui/src/components/payment-card/details.js diff --git a/ui/src/components/payment-card/index.js b/legacy/ui/src/components/payment-card/index.js similarity index 100% rename from ui/src/components/payment-card/index.js rename to legacy/ui/src/components/payment-card/index.js diff --git a/ui/src/components/payment-card/payment-card.js b/legacy/ui/src/components/payment-card/payment-card.js similarity index 100% rename from ui/src/components/payment-card/payment-card.js rename to legacy/ui/src/components/payment-card/payment-card.js diff --git a/ui/src/components/payment-card/readme.md b/legacy/ui/src/components/payment-card/readme.md similarity index 100% rename from ui/src/components/payment-card/readme.md rename to legacy/ui/src/components/payment-card/readme.md diff --git a/ui/src/components/payment-card/story.js b/legacy/ui/src/components/payment-card/story.js similarity index 100% rename from ui/src/components/payment-card/story.js rename to legacy/ui/src/components/payment-card/story.js diff --git a/ui/src/components/payment-card/view.js b/legacy/ui/src/components/payment-card/view.js similarity index 100% rename from ui/src/components/payment-card/view.js rename to legacy/ui/src/components/payment-card/view.js diff --git a/ui/src/components/range-slider/index.js b/legacy/ui/src/components/range-slider/index.js similarity index 100% rename from ui/src/components/range-slider/index.js rename to legacy/ui/src/components/range-slider/index.js diff --git a/ui/src/components/range-slider/readme.md b/legacy/ui/src/components/range-slider/readme.md similarity index 100% rename from ui/src/components/range-slider/readme.md rename to legacy/ui/src/components/range-slider/readme.md diff --git a/ui/src/components/range-slider/story.js b/legacy/ui/src/components/range-slider/story.js similarity index 100% rename from ui/src/components/range-slider/story.js rename to legacy/ui/src/components/range-slider/story.js diff --git a/ui/src/components/row/index.js b/legacy/ui/src/components/row/index.js similarity index 100% rename from ui/src/components/row/index.js rename to legacy/ui/src/components/row/index.js diff --git a/ui/src/components/row/readme.md b/legacy/ui/src/components/row/readme.md similarity index 100% rename from ui/src/components/row/readme.md rename to legacy/ui/src/components/row/readme.md diff --git a/ui/src/components/row/size-apply.js b/legacy/ui/src/components/row/size-apply.js similarity index 100% rename from ui/src/components/row/size-apply.js rename to legacy/ui/src/components/row/size-apply.js diff --git a/ui/src/components/row/size-match.js b/legacy/ui/src/components/row/size-match.js similarity index 100% rename from ui/src/components/row/size-match.js rename to legacy/ui/src/components/row/size-match.js diff --git a/ui/src/components/select-custom/index.js b/legacy/ui/src/components/select-custom/index.js similarity index 100% rename from ui/src/components/select-custom/index.js rename to legacy/ui/src/components/select-custom/index.js diff --git a/ui/src/components/select-custom/readme.md b/legacy/ui/src/components/select-custom/readme.md similarity index 100% rename from ui/src/components/select-custom/readme.md rename to legacy/ui/src/components/select-custom/readme.md diff --git a/ui/src/components/select-custom/story.js b/legacy/ui/src/components/select-custom/story.js similarity index 100% rename from ui/src/components/select-custom/story.js rename to legacy/ui/src/components/select-custom/story.js diff --git a/ui/src/components/table-data-table/index.js b/legacy/ui/src/components/table-data-table/index.js similarity index 100% rename from ui/src/components/table-data-table/index.js rename to legacy/ui/src/components/table-data-table/index.js diff --git a/ui/src/components/table-data-table/readme.md b/legacy/ui/src/components/table-data-table/readme.md similarity index 100% rename from ui/src/components/table-data-table/readme.md rename to legacy/ui/src/components/table-data-table/readme.md diff --git a/ui/src/components/table-data-table/story.js b/legacy/ui/src/components/table-data-table/story.js similarity index 100% rename from ui/src/components/table-data-table/story.js rename to legacy/ui/src/components/table-data-table/story.js diff --git a/ui/src/components/table-data-table/table-body.js b/legacy/ui/src/components/table-data-table/table-body.js similarity index 100% rename from ui/src/components/table-data-table/table-body.js rename to legacy/ui/src/components/table-data-table/table-body.js diff --git a/ui/src/components/table-data-table/table-content.js b/legacy/ui/src/components/table-data-table/table-content.js similarity index 100% rename from ui/src/components/table-data-table/table-content.js rename to legacy/ui/src/components/table-data-table/table-content.js diff --git a/ui/src/components/table-data-table/table-head.js b/legacy/ui/src/components/table-data-table/table-head.js similarity index 100% rename from ui/src/components/table-data-table/table-head.js rename to legacy/ui/src/components/table-data-table/table-head.js diff --git a/ui/src/components/table-data-table/table-row.js b/legacy/ui/src/components/table-data-table/table-row.js similarity index 100% rename from ui/src/components/table-data-table/table-row.js rename to legacy/ui/src/components/table-data-table/table-row.js diff --git a/ui/src/components/table-simple-table/index.js b/legacy/ui/src/components/table-simple-table/index.js similarity index 100% rename from ui/src/components/table-simple-table/index.js rename to legacy/ui/src/components/table-simple-table/index.js diff --git a/ui/src/components/table-simple-table/readme.md b/legacy/ui/src/components/table-simple-table/readme.md similarity index 100% rename from ui/src/components/table-simple-table/readme.md rename to legacy/ui/src/components/table-simple-table/readme.md diff --git a/ui/src/components/table-simple-table/story.js b/legacy/ui/src/components/table-simple-table/story.js similarity index 100% rename from ui/src/components/table-simple-table/story.js rename to legacy/ui/src/components/table-simple-table/story.js diff --git a/ui/src/components/table-simple-table/table-body.js b/legacy/ui/src/components/table-simple-table/table-body.js similarity index 100% rename from ui/src/components/table-simple-table/table-body.js rename to legacy/ui/src/components/table-simple-table/table-body.js diff --git a/ui/src/components/table-simple-table/table-head.js b/legacy/ui/src/components/table-simple-table/table-head.js similarity index 100% rename from ui/src/components/table-simple-table/table-head.js rename to legacy/ui/src/components/table-simple-table/table-head.js diff --git a/ui/src/components/table-simple-table/table-item.js b/legacy/ui/src/components/table-simple-table/table-item.js similarity index 100% rename from ui/src/components/table-simple-table/table-item.js rename to legacy/ui/src/components/table-simple-table/table-item.js diff --git a/ui/src/components/table-simple-table/table-row.js b/legacy/ui/src/components/table-simple-table/table-row.js similarity index 100% rename from ui/src/components/table-simple-table/table-row.js rename to legacy/ui/src/components/table-simple-table/table-row.js diff --git a/ui/src/components/table-simple-table/table.js b/legacy/ui/src/components/table-simple-table/table.js similarity index 100% rename from ui/src/components/table-simple-table/table.js rename to legacy/ui/src/components/table-simple-table/table.js diff --git a/ui/src/components/tabs/index.js b/legacy/ui/src/components/tabs/index.js similarity index 100% rename from ui/src/components/tabs/index.js rename to legacy/ui/src/components/tabs/index.js diff --git a/ui/src/components/tabs/story.js b/legacy/ui/src/components/tabs/story.js similarity index 100% rename from ui/src/components/tabs/story.js rename to legacy/ui/src/components/tabs/story.js diff --git a/ui/src/components/tabs/tab/index.js b/legacy/ui/src/components/tabs/tab/index.js similarity index 100% rename from ui/src/components/tabs/tab/index.js rename to legacy/ui/src/components/tabs/tab/index.js diff --git a/ui/src/components/toggle/index.js b/legacy/ui/src/components/toggle/index.js similarity index 100% rename from ui/src/components/toggle/index.js rename to legacy/ui/src/components/toggle/index.js diff --git a/ui/src/components/toggle/readme.md b/legacy/ui/src/components/toggle/readme.md similarity index 100% rename from ui/src/components/toggle/readme.md rename to legacy/ui/src/components/toggle/readme.md diff --git a/ui/src/components/toggle/story.js b/legacy/ui/src/components/toggle/story.js similarity index 100% rename from ui/src/components/toggle/story.js rename to legacy/ui/src/components/toggle/story.js diff --git a/ui/src/components/tooltip/button.js b/legacy/ui/src/components/tooltip/button.js similarity index 100% rename from ui/src/components/tooltip/button.js rename to legacy/ui/src/components/tooltip/button.js diff --git a/ui/src/components/tooltip/index.js b/legacy/ui/src/components/tooltip/index.js similarity index 100% rename from ui/src/components/tooltip/index.js rename to legacy/ui/src/components/tooltip/index.js diff --git a/ui/src/components/tooltip/readme.md b/legacy/ui/src/components/tooltip/readme.md similarity index 100% rename from ui/src/components/tooltip/readme.md rename to legacy/ui/src/components/tooltip/readme.md diff --git a/ui/src/components/tooltip/story.js b/legacy/ui/src/components/tooltip/story.js similarity index 100% rename from ui/src/components/tooltip/story.js rename to legacy/ui/src/components/tooltip/story.js diff --git a/ui/src/components/topology/big-data.js b/legacy/ui/src/components/topology/big-data.js similarity index 100% rename from ui/src/components/topology/big-data.js rename to legacy/ui/src/components/topology/big-data.js diff --git a/ui/src/components/topology/constants.js b/legacy/ui/src/components/topology/constants.js similarity index 100% rename from ui/src/components/topology/constants.js rename to legacy/ui/src/components/topology/constants.js diff --git a/ui/src/components/topology/graph-link/arrow.js b/legacy/ui/src/components/topology/graph-link/arrow.js similarity index 100% rename from ui/src/components/topology/graph-link/arrow.js rename to legacy/ui/src/components/topology/graph-link/arrow.js diff --git a/ui/src/components/topology/graph-link/functions.js b/legacy/ui/src/components/topology/graph-link/functions.js similarity index 100% rename from ui/src/components/topology/graph-link/functions.js rename to legacy/ui/src/components/topology/graph-link/functions.js diff --git a/ui/src/components/topology/graph-link/index.js b/legacy/ui/src/components/topology/graph-link/index.js similarity index 100% rename from ui/src/components/topology/graph-link/index.js rename to legacy/ui/src/components/topology/graph-link/index.js diff --git a/ui/src/components/topology/graph-link/shapes.js b/legacy/ui/src/components/topology/graph-link/shapes.js similarity index 100% rename from ui/src/components/topology/graph-link/shapes.js rename to legacy/ui/src/components/topology/graph-link/shapes.js diff --git a/ui/src/components/topology/graph-node/button.js b/legacy/ui/src/components/topology/graph-node/button.js similarity index 100% rename from ui/src/components/topology/graph-node/button.js rename to legacy/ui/src/components/topology/graph-node/button.js diff --git a/ui/src/components/topology/graph-node/content.js b/legacy/ui/src/components/topology/graph-node/content.js similarity index 100% rename from ui/src/components/topology/graph-node/content.js rename to legacy/ui/src/components/topology/graph-node/content.js diff --git a/ui/src/components/topology/graph-node/icon-data-centers.svg b/legacy/ui/src/components/topology/graph-node/icon-data-centers.svg similarity index 100% rename from ui/src/components/topology/graph-node/icon-data-centers.svg rename to legacy/ui/src/components/topology/graph-node/icon-data-centers.svg diff --git a/ui/src/components/topology/graph-node/icon-heart.svg b/legacy/ui/src/components/topology/graph-node/icon-heart.svg similarity index 100% rename from ui/src/components/topology/graph-node/icon-heart.svg rename to legacy/ui/src/components/topology/graph-node/icon-heart.svg diff --git a/ui/src/components/topology/graph-node/icon-instances.svg b/legacy/ui/src/components/topology/graph-node/icon-instances.svg similarity index 100% rename from ui/src/components/topology/graph-node/icon-instances.svg rename to legacy/ui/src/components/topology/graph-node/icon-instances.svg diff --git a/ui/src/components/topology/graph-node/index.js b/legacy/ui/src/components/topology/graph-node/index.js similarity index 100% rename from ui/src/components/topology/graph-node/index.js rename to legacy/ui/src/components/topology/graph-node/index.js diff --git a/ui/src/components/topology/graph-node/info.js b/legacy/ui/src/components/topology/graph-node/info.js similarity index 100% rename from ui/src/components/topology/graph-node/info.js rename to legacy/ui/src/components/topology/graph-node/info.js diff --git a/ui/src/components/topology/graph-node/metrics.js b/legacy/ui/src/components/topology/graph-node/metrics.js similarity index 100% rename from ui/src/components/topology/graph-node/metrics.js rename to legacy/ui/src/components/topology/graph-node/metrics.js diff --git a/ui/src/components/topology/graph-node/shapes.js b/legacy/ui/src/components/topology/graph-node/shapes.js similarity index 100% rename from ui/src/components/topology/graph-node/shapes.js rename to legacy/ui/src/components/topology/graph-node/shapes.js diff --git a/ui/src/components/topology/graph-node/title.js b/legacy/ui/src/components/topology/graph-node/title.js similarity index 100% rename from ui/src/components/topology/graph-node/title.js rename to legacy/ui/src/components/topology/graph-node/title.js diff --git a/ui/src/components/topology/graph-simulation.js b/legacy/ui/src/components/topology/graph-simulation.js similarity index 100% rename from ui/src/components/topology/graph-simulation.js rename to legacy/ui/src/components/topology/graph-simulation.js diff --git a/ui/src/components/topology/index.js b/legacy/ui/src/components/topology/index.js similarity index 100% rename from ui/src/components/topology/index.js rename to legacy/ui/src/components/topology/index.js diff --git a/ui/src/components/topology/prop-types.js b/legacy/ui/src/components/topology/prop-types.js similarity index 100% rename from ui/src/components/topology/prop-types.js rename to legacy/ui/src/components/topology/prop-types.js diff --git a/ui/src/components/topology/readme.md b/legacy/ui/src/components/topology/readme.md similarity index 100% rename from ui/src/components/topology/readme.md rename to legacy/ui/src/components/topology/readme.md diff --git a/ui/src/components/topology/story-helper.js b/legacy/ui/src/components/topology/story-helper.js similarity index 100% rename from ui/src/components/topology/story-helper.js rename to legacy/ui/src/components/topology/story-helper.js diff --git a/ui/src/components/topology/story.js b/legacy/ui/src/components/topology/story.js similarity index 100% rename from ui/src/components/topology/story.js rename to legacy/ui/src/components/topology/story.js diff --git a/ui/src/components/topology/topology-graph.js b/legacy/ui/src/components/topology/topology-graph.js similarity index 100% rename from ui/src/components/topology/topology-graph.js rename to legacy/ui/src/components/topology/topology-graph.js diff --git a/ui/src/components/topology/wp-data.js b/legacy/ui/src/components/topology/wp-data.js similarity index 100% rename from ui/src/components/topology/wp-data.js rename to legacy/ui/src/components/topology/wp-data.js diff --git a/ui/src/components/widget/index.js b/legacy/ui/src/components/widget/index.js similarity index 100% rename from ui/src/components/widget/index.js rename to legacy/ui/src/components/widget/index.js diff --git a/ui/src/components/widget/readme.md b/legacy/ui/src/components/widget/readme.md similarity index 100% rename from ui/src/components/widget/readme.md rename to legacy/ui/src/components/widget/readme.md diff --git a/ui/src/components/widget/story.js b/legacy/ui/src/components/widget/story.js similarity index 100% rename from ui/src/components/widget/story.js rename to legacy/ui/src/components/widget/story.js diff --git a/ui/src/faq.md b/legacy/ui/src/faq.md similarity index 100% rename from ui/src/faq.md rename to legacy/ui/src/faq.md diff --git a/ui/src/getting-started.md b/legacy/ui/src/getting-started.md similarity index 100% rename from ui/src/getting-started.md rename to legacy/ui/src/getting-started.md diff --git a/ui/src/guidelines/layout.md b/legacy/ui/src/guidelines/layout.md similarity index 100% rename from ui/src/guidelines/layout.md rename to legacy/ui/src/guidelines/layout.md diff --git a/ui/src/guidelines/overview.md b/legacy/ui/src/guidelines/overview.md similarity index 100% rename from ui/src/guidelines/overview.md rename to legacy/ui/src/guidelines/overview.md diff --git a/ui/src/index.js b/legacy/ui/src/index.js similarity index 100% rename from ui/src/index.js rename to legacy/ui/src/index.js diff --git a/ui/src/shared/composers/index.js b/legacy/ui/src/shared/composers/index.js similarity index 100% rename from ui/src/shared/composers/index.js rename to legacy/ui/src/shared/composers/index.js diff --git a/ui/src/shared/composers/typography.js b/legacy/ui/src/shared/composers/typography.js similarity index 100% rename from ui/src/shared/composers/typography.js rename to legacy/ui/src/shared/composers/typography.js diff --git a/ui/src/shared/constants/boxes.js b/legacy/ui/src/shared/constants/boxes.js similarity index 100% rename from ui/src/shared/constants/boxes.js rename to legacy/ui/src/shared/constants/boxes.js diff --git a/ui/src/shared/constants/breakpoints.js b/legacy/ui/src/shared/constants/breakpoints.js similarity index 100% rename from ui/src/shared/constants/breakpoints.js rename to legacy/ui/src/shared/constants/breakpoints.js diff --git a/ui/src/shared/constants/colors.js b/legacy/ui/src/shared/constants/colors.js similarity index 100% rename from ui/src/shared/constants/colors.js rename to legacy/ui/src/shared/constants/colors.js diff --git a/ui/src/shared/constants/index.js b/legacy/ui/src/shared/constants/index.js similarity index 100% rename from ui/src/shared/constants/index.js rename to legacy/ui/src/shared/constants/index.js diff --git a/ui/src/shared/constants/sizes.js b/legacy/ui/src/shared/constants/sizes.js similarity index 100% rename from ui/src/shared/constants/sizes.js rename to legacy/ui/src/shared/constants/sizes.js diff --git a/ui/src/shared/constants/typography.js b/legacy/ui/src/shared/constants/typography.js similarity index 100% rename from ui/src/shared/constants/typography.js rename to legacy/ui/src/shared/constants/typography.js diff --git a/ui/src/shared/fake-data/index.js b/legacy/ui/src/shared/fake-data/index.js similarity index 100% rename from ui/src/shared/fake-data/index.js rename to legacy/ui/src/shared/fake-data/index.js diff --git a/ui/src/shared/functions.js b/legacy/ui/src/shared/functions.js similarity index 100% rename from ui/src/shared/functions.js rename to legacy/ui/src/shared/functions.js diff --git a/ui/src/shared/match.js b/legacy/ui/src/shared/match.js similarity index 100% rename from ui/src/shared/match.js rename to legacy/ui/src/shared/match.js diff --git a/ui/src/shared/redux-form-proxy.js b/legacy/ui/src/shared/redux-form-proxy.js similarity index 100% rename from ui/src/shared/redux-form-proxy.js rename to legacy/ui/src/shared/redux-form-proxy.js diff --git a/ui/test/_hook.js b/legacy/ui/test/_hook.js similarity index 100% rename from ui/test/_hook.js rename to legacy/ui/test/_hook.js diff --git a/ui/test/index.js b/legacy/ui/test/index.js similarity index 100% rename from ui/test/index.js rename to legacy/ui/test/index.js diff --git a/ui/yarn.lock b/legacy/ui/yarn.lock similarity index 100% rename from ui/yarn.lock rename to legacy/ui/yarn.lock diff --git a/legacy/yarn.lock b/legacy/yarn.lock new file mode 100644 index 00000000..0de89135 --- /dev/null +++ b/legacy/yarn.lock @@ -0,0 +1,473 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 +abbrev@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +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" + +asap@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +ci-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +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" + +debug@^2.2.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +eslint-plugin-babel@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.0.1.tgz#77de74dabd67a6bef3b16bf258f5804e971e7349" + +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +events-to-array@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.0.2.tgz#b3484465534fe4ff66fbdd1a83b777713ba404aa" + +find-parent-dir@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + +glob@^6.0.0: + 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" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +hosted-git-info@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.2.0.tgz#7a0d097863d886c0fabbdcd37bf1758d8becf8a5" + +husky@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-0.13.1.tgz#11efc6fc10e0ec4e789776f6582be37d71ba4ccf" + dependencies: + chalk "^1.1.3" + find-parent-dir "^0.3.0" + is-ci "^1.0.9" + normalize-path "^1.0.0" + +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.0.1, inherits@2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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-ci@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +jju@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa" + +js-yaml@^3.2.7: + version "3.8.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.1.tgz#782ba50200be7b9e5a8537001b7804db3ad02628" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +json-parse-helpfulerror@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + dependencies: + jju "^1.1.0" + +json5@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +license-checker@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/license-checker/-/license-checker-7.1.1.tgz#b0a3ec47f2469fe3a639e52a1151cd26fc2c2905" + dependencies: + chalk "~0.5.1" + debug "^2.2.0" + mkdirp "^0.3.5" + nopt "^2.2.0" + read-installed "~4.0.3" + treeify "^1.0.1" + +license-to-fail@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/license-to-fail/-/license-to-fail-2.2.0.tgz#6d5929f3b1edfb0866e05eb22919a5e1de32ff37" + dependencies: + license-checker "^7.1.0" + +loader-utils@^0.2.7: + version "0.2.16" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +lodash.findindex@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" + +lodash@^3.5.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +"minimatch@2 || 3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +nopt@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.2.1.tgz#2aa09b7d1768487b3b89a9c5aa52335bff0baea7" + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0: + version "2.3.5" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + 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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + +object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +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" + +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" + +querystring: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-json@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.4.tgz#61ed1b2256ea438d8008895090be84b8e799c853" + dependencies: + glob "^6.0.0" + json-parse-helpfulerror "^1.0.2" + normalize-package-data "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + +readable-stream@^2, readable-stream@^2.1.5: + version "2.2.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +"semver@2 || 3 || 4 || 5": + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +slide@~1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +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" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +style-loader@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" + dependencies: + loader-utils "^0.2.7" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +tap-parser@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-1.2.2.tgz#5e2f6970611f079c7cf857de1dc7aa1b480de7a5" + dependencies: + events-to-array "^1.0.1" + inherits "~2.0.1" + js-yaml "^3.2.7" + optionalDependencies: + readable-stream "^2" + +tap-xunit@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/tap-xunit/-/tap-xunit-1.7.0.tgz#c0fe296a4ff270e042467e754419b5f049bef8be" + dependencies: + duplexer "~0.1.1" + minimist "~1.2.0" + tap-parser "~1.2.2" + through2 "~2.0.0" + xmlbuilder "~4.1.0" + xtend "~4.0.0" + +through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +treeify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.0.1.tgz#69b3cd022022a168424e7cfa1ced44c939d3eb2f" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +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" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xmlbuilder@~4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4" + dependencies: + lodash "^3.5.0" + +xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + diff --git a/lerna.json b/lerna.json new file mode 100644 index 00000000..329d84d7 --- /dev/null +++ b/lerna.json @@ -0,0 +1,21 @@ +{ + "lerna": "2.0.0-rc.4", + "version": "independent", + "npmClient": "yarn", + "packages": [ + "packages/*" + ], + "commands": { + "publish": { + "ignore": [ + "babel-preset-joyent-portal", + "joyent-portal-cloudapi-gql", + "docker-compose-client", + "eslint-config-joyent-portal", + "joyent-portal-gql-cp-schema", + "joyent-portal-rdb-bootstrap", + "joyent-portal-ui-toolkit" + ] + } + } +} diff --git a/package.json b/package.json index 3bc266e4..a09c01c6 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,65 @@ { - "name": "joyent-portal", + "name": "container-pilot-dashboard", "version": "1.0.0", "private": true, "license": "MPL-2.0", - "main": "index.js", - "homepage": "https://github.com/yldio/joyent-portal#readme", - "repository": { - "type": "git", - "url": "git+https://github.com/yldio/joyent-portal.git" - }, - "bugs": { - "url": "https://github.com/yldio/joyent-portal/issues" - }, + "repository": "github:yldio/joyent-portal", "scripts": { - "test": "make test" - }, - "dependencies": { - "eslint-plugin-babel": "^4.0.1", - "husky": "^0.13.1", - "license-to-fail": "^2.2.0", - "lodash.findindex": "^4.6.0", - "querystring": "^0.2.0", - "style-loader": "^0.13.1" + "fmt": "node ./scripts/prettier", + "test": "lerna run test", + "lint-license": "node ./scripts/license-to-fail", + "lint-docs": "node ./scripts/quality-docs", + "lint-staged": "lint-staged", + "lint:packages": "lerna run lint", + "lint:root": "eslint scripts/*.js --fix --format=tap", + "lint": "run-s lint:*", + "updt:root": "ncu -au", + "updt:packages": "lerna exec ncu -au", + "updt:teardown": "run-s postinstall", + "updt": "run-s updt:*", + "publish": "lerna publish --conventional-commits", + "clean": "lerna clean --yes", + "bootstrap": "lerna bootstrap", + "postinstall": "run-s clean bootstrap", + "commitmsg": "exit 0 # conventional-changelog-lint -e", + "precommit": "run-s lint lint-staged lint-license test", + "dev:ui-toolkit": "lerna run watch --scope joyent-ui-toolkit", + "dev:cp-frontend": "lerna run start --scope joyent-cp-frontend", + "dev:gql-mock-server": "lerna run start --scope joyent-cp-gql-mock-server", + "dev": "run-p dev:*" }, "devDependencies": { - "tap-xunit": "^1.7.0" + "apr-for-each": "^1.0.6", + "apr-main": "^1.0.7", + "babel-eslint": "^7.2.3", + "conventional-changelog-lint": "^1.1.9", + "conventional-changelog-lint-config-angular": "^0.4.1", + "conventional-changelog-lint-config-lerna-scopes": "^1.0.0", + "eslint": "^3.19.0", + "eslint-config-prettier": "^2.1.1", + "eslint-config-react-app": "^1.0.4", + "eslint-config-xo-space": "^0.16.0", + "eslint-plugin-flowtype": "^2.33.0", + "eslint-plugin-import": "^2.3.0", + "eslint-plugin-jsx-a11y": "^5.0.3", + "eslint-plugin-prettier": "^2.1.1", + "eslint-plugin-react": "^7.0.1", + "eslint-tap": "^2.0.1", + "execa": "^0.6.3", + "husky": "^0.13.3", + "lerna": "^2.0.0-rc.5", + "license-to-fail": "^2.2.0", + "lint-staged": "3.4.2", + "npm-check-updates": "^2.11.2", + "npm-run-all": "^4.0.2", + "prettier": "1.3.1", + "quality-docs": "^3.3.0", + "yargs": "^8.0.1" + }, + "lint-staged": { + "*.js": [ + "npm run fmt", + "git add" + ] } } diff --git a/packages/babel-preset/.eslintrc b/packages/babel-preset/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/babel-preset/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/babel-preset/.tern-project b/packages/babel-preset/.tern-project new file mode 100644 index 00000000..960bbe87 --- /dev/null +++ b/packages/babel-preset/.tern-project @@ -0,0 +1,9 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true + } +} diff --git a/packages/babel-preset/README.md b/packages/babel-preset/README.md new file mode 100644 index 00000000..67d0719b --- /dev/null +++ b/packages/babel-preset/README.md @@ -0,0 +1,30 @@ +# babel-preset-joyent-portal + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +[`babel`](http://github.com/babel/babel) preset to be used across this repo. At the moment it only extends the one used by [`create-react-app`](https://github.com/facebookincubator/create-react-app/tree/master/packages/babel-preset-react-app) but it can be extended as needed. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add --dev babel-preset-joyent-portal +``` + +## Usage + +```json +{ + "presets": "joyent-portal" +} +``` + +## License + +MPL-2.0 diff --git a/packages/babel-preset/index.js b/packages/babel-preset/index.js new file mode 100644 index 00000000..b373bf79 --- /dev/null +++ b/packages/babel-preset/index.js @@ -0,0 +1,3 @@ +module.exports = (ctx, opts) => ({ + presets: [require('babel-preset-react-app')] +}); diff --git a/packages/babel-preset/package.json b/packages/babel-preset/package.json new file mode 100644 index 00000000..29786548 --- /dev/null +++ b/packages/babel-preset/package.json @@ -0,0 +1,18 @@ +{ + "name": "babel-preset-joyent-portal", + "version": "1.0.0", + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0" + }, + "dependencies": { + "babel-preset-react-app": "^3.0.0" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0" + } +} diff --git a/packages/babel-preset/yarn.lock b/packages/babel-preset/yarn.lock new file mode 100644 index 00000000..72447f12 --- /dev/null +++ b/packages/babel-preset/yarn.lock @@ -0,0 +1,1423 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + 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" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +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" + +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" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +babel-code-frame@^6.16.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-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-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.0.2.tgz#adb5bc8f48a89311540395ae9f0cc3ed4b10bb2e" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +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-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +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.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-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.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.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-constant-elements@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@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, 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-regenerator@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.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-env@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.4.0.tgz#c8e02a3bcc7792f23cded68e0355b9d4c28f0f7a" + 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-app@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.0.0.tgz#f4505092f8bba0f0147c764dc72055fe46ac1416" + dependencies: + babel-plugin-dynamic-import-node "1.0.2" + babel-plugin-syntax-dynamic-import "6.18.0" + babel-plugin-transform-class-properties "6.24.1" + babel-plugin-transform-object-rest-spread "6.23.0" + babel-plugin-transform-react-constant-elements "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-plugin-transform-regenerator "6.24.1" + babel-plugin-transform-runtime "6.23.0" + babel-preset-env "1.4.0" + babel-preset-react "6.24.1" + +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-runtime@^6.18.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.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.19.0, babel-types@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.11.0, babylon@^6.15.0: + version "6.17.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +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-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +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" + +caniuse-db@^1.0.30000639: + version "1.0.30000671" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000671.tgz#9f071bbc7b96994638ccbaf47829d58a1577a8ed" + +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" + +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: + 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-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +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" + +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.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" + +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" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +debug@^2.1.1, debug@^2.2.0: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +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.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" + +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" + +electron-to-chromium@^1.2.7: + version "1.3.11" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.11.tgz#744761df1d67b492b322ce9aa0aba5393260eb61" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + 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-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@^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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^1.3.5: + 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" + +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" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +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" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +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" + +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" + +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: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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" + +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-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-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-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" + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +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.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" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +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" + +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" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +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" + +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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +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" + +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" + +once@^1.3.0: + 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" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +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-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +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" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +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" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +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" + +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" + +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: + 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" + +rimraf@^2.2.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +string-width@^1.0.1: + 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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +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" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +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" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +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" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +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" + +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" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +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" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" diff --git a/packages/cloudapi-gql/.eslintignore b/packages/cloudapi-gql/.eslintignore new file mode 100644 index 00000000..2b7cecf7 --- /dev/null +++ b/packages/cloudapi-gql/.eslintignore @@ -0,0 +1,2 @@ +.nyc_output +coverage \ No newline at end of file diff --git a/packages/cloudapi-gql/.eslintrc b/packages/cloudapi-gql/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/cloudapi-gql/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/cloudapi-gql/.tern-project b/packages/cloudapi-gql/.tern-project new file mode 100644 index 00000000..02c6bbe0 --- /dev/null +++ b/packages/cloudapi-gql/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} diff --git a/packages/cloudapi-gql/README.md b/packages/cloudapi-gql/README.md new file mode 100644 index 00000000..5bf0e430 --- /dev/null +++ b/packages/cloudapi-gql/README.md @@ -0,0 +1,28 @@ +# joyent-portal-cloudapi-gql + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +Server that exposes [CloudApi](https://apidocs.joyent.com/cloudapi/) through [GraphQL](http://graphql.org). + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add joyent-portal-cloudapi-gql +``` + +## Usage + +``` +yarn run start +``` + +## License + +MPL-2.0 diff --git a/packages/cloudapi-gql/package.json b/packages/cloudapi-gql/package.json new file mode 100644 index 00000000..fc0e5385 --- /dev/null +++ b/packages/cloudapi-gql/package.json @@ -0,0 +1,27 @@ +{ + "name": "cloudapi-gql", + "version": "1.0.2", + "private": true, + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "src/index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0", + "start": "node src/index.js" + }, + "dependencies": { + "bunyan": "^1.8.10", + "dotenv": "^4.0.0", + "express": "^4.15.2", + "express-graphql": "^0.6.4", + "got": "^6.7.1", + "graphql": "^0.9.3", + "smartdc-auth": "^2.5.2", + "triton": "^5.2.0" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0" + } +} diff --git a/packages/cloudapi-gql/src/api/account.js b/packages/cloudapi-gql/src/api/account.js new file mode 100644 index 00000000..08adaa85 --- /dev/null +++ b/packages/cloudapi-gql/src/api/account.js @@ -0,0 +1,9 @@ +const request = require('./request'); + +module.exports.get = () => { + return request('getAccount'); +}; + +module.exports.update = ctx => { + return request('updateAccount', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/config.js b/packages/cloudapi-gql/src/api/config.js new file mode 100644 index 00000000..77428d35 --- /dev/null +++ b/packages/cloudapi-gql/src/api/config.js @@ -0,0 +1,5 @@ +// Const request = require('./request'); + +module.exports.get = () => { + // Return request('', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/datacenters.js b/packages/cloudapi-gql/src/api/datacenters.js new file mode 100644 index 00000000..7aafe965 --- /dev/null +++ b/packages/cloudapi-gql/src/api/datacenters.js @@ -0,0 +1,5 @@ +const request = require('./request'); + +module.exports = () => { + return request('listDatacenters'); +}; diff --git a/packages/cloudapi-gql/src/api/fabrics.js b/packages/cloudapi-gql/src/api/fabrics.js new file mode 100644 index 00000000..bb934414 --- /dev/null +++ b/packages/cloudapi-gql/src/api/fabrics.js @@ -0,0 +1,9 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listFirewallRules', {}); +}; + +module.exports.get = ctx => { + return request('getFirewallRule', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/firewall-rules.js b/packages/cloudapi-gql/src/api/firewall-rules.js new file mode 100644 index 00000000..60bba238 --- /dev/null +++ b/packages/cloudapi-gql/src/api/firewall-rules.js @@ -0,0 +1,37 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listFirewallRules', {}); +}; + +module.exports.listByMachine = ctx => { + return request('listMachineFirewallRules', ctx); +}; + +module.exports.listMachines = ctx => { + return request('listFirewallRuleMachines', ctx); +}; + +module.exports.get = ctx => { + return request('getFirewallRule', ctx); +}; + +module.exports.create = ctx => { + return request('createFirewallRule', ctx); +}; + +module.exports.update = ctx => { + return request('updateFirewallRule', ctx); +}; + +module.exports.enable = ctx => { + return request('enableFirewallRule', ctx); +}; + +module.exports.disable = ctx => { + return request('disableFirewallRule', ctx); +}; + +module.exports.destroy = ctx => { + return request('deleteFirewallRule', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/images.js b/packages/cloudapi-gql/src/api/images.js new file mode 100644 index 00000000..1458472d --- /dev/null +++ b/packages/cloudapi-gql/src/api/images.js @@ -0,0 +1,25 @@ +const request = require('./request'); + +module.exports.list = ctx => { + return request('listImages', ctx); +}; + +module.exports.get = ctx => { + return request('getImage', ctx); +}; + +module.exports.create = ctx => { + return request('createImageFromMachine', ctx); +}; + +// Module.exports.update = (ctx) => { +// return request('UpdateImage', ctx); +// }; + +module.exports.destroy = uuid => { + return request('deleteImage', uuid); +}; + +// Module.exports.xport = (uuid) => { +// return request('deleteImage', uuid); +// }; diff --git a/packages/cloudapi-gql/src/api/index.js b/packages/cloudapi-gql/src/api/index.js new file mode 100644 index 00000000..983029fb --- /dev/null +++ b/packages/cloudapi-gql/src/api/index.js @@ -0,0 +1,16 @@ +module.exports = { + account: require('./account'), + users: require('./users'), + policies: require('./policies'), + roles: require('./roles'), + keys: require('./keys'), + datacenters: require('./datacenters'), + services: require('./services'), + images: require('./images'), + packages: require('./packages'), + machines: require('./machines'), + firewallRules: require('./firewall-rules'), + // Fabrics: require('./fabrics'), + networks: require('./networks'), + nics: require('./nics') +}; diff --git a/packages/cloudapi-gql/src/api/keys.js b/packages/cloudapi-gql/src/api/keys.js new file mode 100644 index 00000000..fee3f4f2 --- /dev/null +++ b/packages/cloudapi-gql/src/api/keys.js @@ -0,0 +1,35 @@ +const request = require('./request'); + +module.exports = { + user: { + list: ctx => { + return request('listUserKeys', ctx); + }, + get: ctx => { + return request('getUserKey', ctx); + }, + create: ctx => { + return request('createUserKey', ctx); + }, + destroy: ctx => { + return request('deleteUserKey', ctx); + } + }, + account: { + list: () => { + return request('listKeys', {}); + }, + + get: ctx => { + return request('getKey', ctx); + }, + + create: ctx => { + return request('createKey', ctx); + }, + + destroy: ctx => { + return request('deleteKey', ctx); + } + } +}; diff --git a/packages/cloudapi-gql/src/api/machines.js b/packages/cloudapi-gql/src/api/machines.js new file mode 100644 index 00000000..60d99cff --- /dev/null +++ b/packages/cloudapi-gql/src/api/machines.js @@ -0,0 +1,108 @@ +const request = require('./request'); + +const snapshots = { + list: ctx => { + return request('listMachineSnapshots', ctx); + }, + get: ctx => { + return request('getMachineSnapshot', ctx); + }, + create: ctx => { + return request('createMachineSnapshot', ctx); + }, + destroy: ctx => { + return request('deleteMachineSnapshot', ctx); + } +}; + +const metadata = { + list: ctx => { + return request('', ctx); + }, + get: ctx => { + return request('', ctx); + }, + update: ctx => { + return request('', ctx); + }, + destroy: ctx => { + return request('', ctx); + } +}; + +const firewall = { + enable: ctx => { + return request('enableMachineFirewall', ctx); + }, + disable: ctx => { + return request('disableMachineFirewall', ctx); + } +}; + +const tags = { + list: ctx => { + return request('listMachineTags', ctx); + }, + get: ctx => { + return request('getMachineTag', ctx); + }, + add: ctx => { + return request('addMachineTags', ctx); + }, + replace: ctx => { + return request('replaceMachineTags', ctx); + }, + destroy: ctx => { + const method = ctx.tag ? 'deleteMachineTag' : 'deleteMachineTags'; + return request(method, ctx); + } +}; + +module.exports.list = ctx => { + return request('listMachines', ctx); +}; + +module.exports.get = ctx => { + return request('getMachine', ctx); +}; + +module.exports.create = ctx => { + return request('createMachine', ctx); +}; + +module.exports.stop = ctx => { + return request('stopMachine', ctx); +}; + +module.exports.start = uuid => { + return request('startMachine', uuid); +}; + +module.exports.startFromSnapshot = ctx => { + return request('startMachineFromSnapshot', ctx); +}; + +module.exports.reboot = ctx => { + return request('rebootMachine', ctx); +}; + +module.exports.resize = ctx => { + return request('', ctx); +}; + +module.exports.rename = ctx => { + return request('', ctx); +}; + +module.exports.destroy = ctx => { + return request('deleteMachine', ctx); +}; + +module.exports.audit = ctx => { + return request('machineAudit', ctx); +}; + +module.exports.snapshots = snapshots; +module.exports.metadata = metadata; +module.exports.firewall = firewall; +module.exports.tags = tags; diff --git a/packages/cloudapi-gql/src/api/networks.js b/packages/cloudapi-gql/src/api/networks.js new file mode 100644 index 00000000..047127c8 --- /dev/null +++ b/packages/cloudapi-gql/src/api/networks.js @@ -0,0 +1,9 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listNetworks'); +}; + +module.exports.get = ctx => { + return request('getNetwork', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/nics.js b/packages/cloudapi-gql/src/api/nics.js new file mode 100644 index 00000000..34ddca88 --- /dev/null +++ b/packages/cloudapi-gql/src/api/nics.js @@ -0,0 +1,9 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listNics'); +}; + +module.exports.get = ctx => { + return request('getNic', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/packages.js b/packages/cloudapi-gql/src/api/packages.js new file mode 100644 index 00000000..fd38f7cf --- /dev/null +++ b/packages/cloudapi-gql/src/api/packages.js @@ -0,0 +1,9 @@ +const request = require('./request'); + +module.exports.list = ctx => { + return request('listPackages', ctx); +}; + +module.exports.get = ctx => { + return request('getPackage', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/policies.js b/packages/cloudapi-gql/src/api/policies.js new file mode 100644 index 00000000..4ea9b3cc --- /dev/null +++ b/packages/cloudapi-gql/src/api/policies.js @@ -0,0 +1,21 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listPolicies'); +}; + +module.exports.get = ctx => { + return request('getPolicy', ctx); +}; + +module.exports.create = ctx => { + return request('createPolicy', ctx); +}; + +module.exports.update = ctx => { + return request('updatePolicy', ctx); +}; + +module.exports.destroy = ctx => { + return request('deletePolicy', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/request.js b/packages/cloudapi-gql/src/api/request.js new file mode 100644 index 00000000..bbb83e7b --- /dev/null +++ b/packages/cloudapi-gql/src/api/request.js @@ -0,0 +1,40 @@ +const credentials = require('../credentials'); +const auth = require('smartdc-auth'); +const cloudapi = require('triton/lib/cloudapi2'); +const bunyan = require('bunyan'); +const pkg = require('../../package.json'); + +const log = bunyan.createLogger({ + name: pkg.name +}); + +const client = cloudapi.createClient({ + log, + url: credentials.url, + account: credentials.account, + user: credentials.user, + sign: auth.cliSigner({ + log, + keyId: credentials.keyId, + user: credentials.account, + subuser: credentials.user + }) +}); + +module.exports = (method, args) => { + return new Promise((resolve, reject) => { + const fn = client[method].bind(client); + + const cb = (err, res) => { + if (err) { + return reject(err); + } + + resolve(res); + }; + + return args ? fn(args, cb) : fn(cb); + }); +}; + +module.exports.client = client; diff --git a/packages/cloudapi-gql/src/api/roles.js b/packages/cloudapi-gql/src/api/roles.js new file mode 100644 index 00000000..c6762f53 --- /dev/null +++ b/packages/cloudapi-gql/src/api/roles.js @@ -0,0 +1,31 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listRoles'); +}; + +module.exports.get = ctx => { + return request('getRole', ctx); +}; + +module.exports.create = ctx => { + return request('createRole', ctx); +}; + +module.exports.set = ctx => { + const id = ctx.id ? `/${ctx.id}` : ''; + const resource = `/${request.client.account}/${ctx.resource}${id}`; + + return request('setRoleTags', { + roleTags: ctx.role, + resource + }); +}; + +module.exports.update = ctx => { + return request('updateRole', ctx); +}; + +module.exports.destroy = ctx => { + return request('deleteRole', ctx); +}; diff --git a/packages/cloudapi-gql/src/api/services.js b/packages/cloudapi-gql/src/api/services.js new file mode 100644 index 00000000..5cad9529 --- /dev/null +++ b/packages/cloudapi-gql/src/api/services.js @@ -0,0 +1,5 @@ +const request = require('./request'); + +module.exports = () => { + return request('listServices'); +}; diff --git a/packages/cloudapi-gql/src/api/users.js b/packages/cloudapi-gql/src/api/users.js new file mode 100644 index 00000000..e237c076 --- /dev/null +++ b/packages/cloudapi-gql/src/api/users.js @@ -0,0 +1,21 @@ +const request = require('./request'); + +module.exports.list = () => { + return request('listUsers'); +}; + +module.exports.get = ctx => { + return request('getUser', ctx); +}; + +module.exports.create = ctx => { + return request('createUser', ctx); +}; + +module.exports.destroy = ctx => { + return request('deleteUser', ctx); +}; + +module.exports.update = ctx => { + return request('updateUser', ctx); +}; diff --git a/packages/cloudapi-gql/src/credentials.js b/packages/cloudapi-gql/src/credentials.js new file mode 100644 index 00000000..2fa99554 --- /dev/null +++ b/packages/cloudapi-gql/src/credentials.js @@ -0,0 +1,27 @@ +const json = (() => { + try { + const res = require('dotenv').config({ + path: '../.env', + silent: true + }); + + if (res.error) { + throw res.error; + } + } catch (err) { + try { + return require('../credentials.json'); + } catch (err) { + return {}; + } + } + + return {}; +})(); + +module.exports = { + url: process.env.SDC_URL || json.SDC_URL || json.url || '', + account: process.env.SDC_ACCOUNT || json.SDC_ACCOUNT || json.account || '', + user: process.env.SDC_USER || json.SDC_USER || json.user || '', + keyId: process.env.SDC_KEY_ID || json.SDC_KEY_ID || json.keyId || '' +}; diff --git a/packages/cloudapi-gql/src/endpoint.js b/packages/cloudapi-gql/src/endpoint.js new file mode 100644 index 00000000..253379aa --- /dev/null +++ b/packages/cloudapi-gql/src/endpoint.js @@ -0,0 +1,12 @@ +const { GraphQLSchema } = require('graphql'); +const graphqlHTTP = require('express-graphql'); +const { query, mutation } = require('./schema'); + +module.exports = graphqlHTTP(() => ({ + schema: new GraphQLSchema({ + query, + mutation + }), + graphiql: true, + pretty: true +})); diff --git a/packages/cloudapi-gql/src/index.js b/packages/cloudapi-gql/src/index.js new file mode 100644 index 00000000..23e347ec --- /dev/null +++ b/packages/cloudapi-gql/src/index.js @@ -0,0 +1,16 @@ +const express = require('express'); + +const app = express(); + +app.use('/graphql', require('./endpoint')); + +const server = app.listen(4000, err => { + if (err) { + // eslint-disable-next-line no-console + console.error(err); + throw err; + } + + // eslint-disable-next-line no-console + console.log(`Listening at http://0.0.0.0:${server.address().port}/graphql`); +}); diff --git a/packages/cloudapi-gql/src/schema/index.js b/packages/cloudapi-gql/src/schema/index.js new file mode 100644 index 00000000..31162ea9 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/index.js @@ -0,0 +1,2 @@ +exports.query = require('./queries'); +exports.mutation = require('./mutations'); diff --git a/packages/cloudapi-gql/src/schema/mutations/account.js b/packages/cloudapi-gql/src/schema/mutations/account.js new file mode 100644 index 00000000..a40ba47d --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/account.js @@ -0,0 +1,56 @@ +const AccountType = require('../types/login'); +const api = require('../../api'); + +const { GraphQLBoolean, GraphQLString } = require('graphql'); + +module.exports.updateAccount = { + type: AccountType, + description: 'Update your account details', + args: { + email: { + type: GraphQLString + }, + companyName: { + type: GraphQLString + }, + firstName: { + type: GraphQLString + }, + lastName: { + type: GraphQLString + }, + address: { + type: GraphQLString + }, + postalCode: { + type: GraphQLString + }, + city: { + type: GraphQLString + }, + state: { + type: GraphQLString + }, + country: { + type: GraphQLString + }, + phone: { + type: GraphQLString + }, + cnsEnabled: { + type: GraphQLBoolean + } + }, + resolve: (root, args) => { + return api.account.get().then(account => { + return api.account.update( + Object.assign(account, args, { + firstName: args.firstName || account.firstName, + lastName: args.firstName || account.lastName, + companyName: args.companyName || account.companyName, + postalCode: args.postalCode || account.postalCode + }) + ); + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/firewall-rules.js b/packages/cloudapi-gql/src/schema/mutations/firewall-rules.js new file mode 100644 index 00000000..1e249b50 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/firewall-rules.js @@ -0,0 +1,98 @@ +const FirewallRuleType = require('../types/firewall-rule'); +const api = require('../../api'); + +const { GraphQLID, GraphQLBoolean, GraphQLString } = require('graphql'); + +module.exports.createFirewallRule = { + type: FirewallRuleType, + description: "Adds a new firewall rule for the specified account. This rule will be added to all the account's instances where it may be necessary", + args: { + enabled: { + type: GraphQLBoolean, + description: 'Indicates if the rule is enabled (optional, false by default)' + }, + rule: { + type: GraphQLString, + description: 'Firewall rule text' + }, + description: { + type: GraphQLString, + description: 'Human-readable description for the rule (optional)' + } + }, + resolve: (root, args) => { + return api.firewallRules.create({ + rule: args.rule, + description: args.description, + enabled: Boolean(args.enabled) + }); + } +}; + +module.exports.updateFirewallRule = { + type: FirewallRuleType, + description: 'Updates the given rule record and -- depending on rule contents -- adds/removes/updates the rule on all the required instances', + args: { + id: { + type: GraphQLID, + description: 'Firewall rule id' + }, + enabled: { + type: GraphQLBoolean, + description: 'Indicates if the rule is enabled (optional, false by default)' + }, + rule: { + type: GraphQLString, + description: 'Firewall rule text' + }, + description: { + type: GraphQLString, + description: 'Human-readable description for the rule (optional)' + } + }, + resolve: (root, args) => { + return api.firewallRules.update(args); + } +}; + +module.exports.enableFirewallRule = { + type: FirewallRuleType, + description: 'Enables the given firewall rule if it is disabled', + args: { + id: { + type: GraphQLID, + description: 'Firewall rule id' + } + }, + resolve: (root, args) => { + return api.firewallRules.enable(args); + } +}; + +module.exports.disableFirewallRule = { + type: FirewallRuleType, + description: 'Disables the given firewall rule if it is enabled', + args: { + id: { + type: GraphQLID, + description: 'Firewall rule id' + } + }, + resolve: (root, args) => { + return api.firewallRules.disable(args); + } +}; + +module.exports.deleteFirewallRule = { + type: FirewallRuleType, + description: 'Removes the given firewall rule from all the required instances', + args: { + id: { + type: GraphQLID, + description: 'Firewall rule id' + } + }, + resolve: (root, args) => { + return api.firewallRules.destroy(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/images.js b/packages/cloudapi-gql/src/schema/mutations/images.js new file mode 100644 index 00000000..31644e18 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/images.js @@ -0,0 +1,54 @@ +const AccountType = require('../types/login'); +const DynamicObjectType = require('../types/dynamic-object'); +const api = require('../../api'); + +const { + GraphQLString, + GraphQLList, + GraphQLNonNull, + GraphQLID +} = require('graphql'); + +module.exports.createImage = { + type: AccountType, + description: 'Create a new custom image from an instance', + args: { + machine: { + type: new GraphQLNonNull(GraphQLID), + description: 'The prepared and stopped instance UUID from which the image is to be created' + }, + name: { + type: new GraphQLNonNull(GraphQLString), + description: 'The name of the custom image, e.g. "my-image". Maximum 512 characters. However, typical names should be much shorter, e.g. 5-20 characters' + }, + version: { + type: new GraphQLNonNull(GraphQLString), + description: 'The version of the custom image, e.g. "1.0.0". Maximum 128 characters' + }, + description: { + type: GraphQLString, + description: 'A short prose description of this image. Maximum 512 characters' + }, + homepage: { + type: GraphQLString, + description: 'Homepage URL where users can find more information about the image. Maximum 128 characters' + }, + eula: { + type: GraphQLString, + description: 'URL of the End User License Agreement (EULA) for the image. Maximum 128 characters' + }, + acl: { + type: new GraphQLList(GraphQLID), + description: 'An array of user/account UUIDs to which to give read access to a private image. I.e. this is only relevant for images with public === false' + }, + tags: { + type: DynamicObjectType, + description: 'An object of key/value pairs that allows clients to categorize images by any given criteria' + } + }, + resolve: (root, args) => { + const { create } = api.images; + + return create(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/index.js b/packages/cloudapi-gql/src/schema/mutations/index.js new file mode 100644 index 00000000..39f35342 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/index.js @@ -0,0 +1,16 @@ +const { GraphQLObjectType } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'RootMutationType', + fields: Object.assign( + require('./account'), + require('./keys'), + require('./users'), + require('./roles'), + require('./policies'), + require('./machines'), + require('./images'), + require('./firewall-rules'), + require('./snapshots') + ) +}); diff --git a/packages/cloudapi-gql/src/schema/mutations/keys.js b/packages/cloudapi-gql/src/schema/mutations/keys.js new file mode 100644 index 00000000..3cff4ecd --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/keys.js @@ -0,0 +1,49 @@ +const KeyType = require('../types/key'); +const api = require('../../api'); + +const { GraphQLNonNull, GraphQLString, GraphQLID } = require('graphql'); + +module.exports.createKey = { + type: KeyType, + description: 'Uploads a new OpenSSH key to Triton for use in HTTP signing and SSH', + args: { + name: { + type: new GraphQLNonNull(GraphQLString) + }, + key: { + type: new GraphQLNonNull(GraphQLString) + }, + userId: { + type: GraphQLID, + description: 'UserId to add this key to. Leaving this in blank will add the key to the account' + } + }, + resolve: (root, args) => { + const _api = args.userId ? api.keys.user : api.keys.account; + return _api.create(args); + } +}; + +module.exports.deleteKey = { + type: GraphQLID, + description: 'Deletes a single SSH key, by name or fingerprint', + args: { + name: { + type: GraphQLString + }, + fingerprint: { + type: GraphQLString + }, + userId: { + type: GraphQLID, + description: 'UserId who this key belongs to. Leaving this in blank will delete an account key' + } + }, + resolve: (root, args) => { + const _api = args.userId ? api.keys.user : api.keys.account; + + return _api.destroy(args).then(() => { + return args.name || args.fingerprint; + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/machines.js b/packages/cloudapi-gql/src/schema/mutations/machines.js new file mode 100644 index 00000000..eb402031 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/machines.js @@ -0,0 +1,320 @@ +const MachineType = require('../types/machine'); +const DynamicObjectType = require('../types/dynamic-object'); +const api = require('../../api'); + +const { + GraphQLNonNull, + GraphQLString, + GraphQLBoolean, + GraphQLID, + GraphQLList +} = require('graphql'); + +module.exports.createMachine = { + type: MachineType, + description: 'Allows you to provision an instance', + args: { + name: { + type: GraphQLString, + description: 'Friendly name for this instance; default is the first 8 characters of the machine id' + }, + package: { + type: new GraphQLNonNull(GraphQLString), + description: 'Id of the package to use on provisioning, obtained from ListPackages' + }, + image: { + type: new GraphQLNonNull(GraphQLString), + description: 'The image UUID (from images { id })' + }, + networks: { + type: new GraphQLList(GraphQLString), + description: 'Desired networks ids (from networks { id })' + }, + locality: { + type: MachineType.locality, + description: 'Optionally specify which instances the new instance should be near or far from' + }, + metadata: { + type: DynamicObjectType, + description: 'An arbitrary set of metadata key/value pairs can be set at provision time' + }, + tags: { + type: DynamicObjectType, + description: 'An arbitrary set of tags can be set at provision time' + }, + firewallEnabled: { + type: GraphQLBoolean, + description: 'Completely enable or disable firewall for this instance. Default is false' + } + }, + resolve: (root, args) => { + const resolveNames = (obj = {}, namespace) => { + return Object.keys(obj).reduce((all, name) => { + return Object.assign(all, { + [`${namespace}.${name}`]: obj[name] + }); + }, {}); + }; + + const tags = resolveNames(args.tags, 'tag'); + const metadata = resolveNames(args.tags, 'metadata'); + + const machine = Object.assign( + { + name: args.name, + package: args.package, + image: args.image, + networks: args.networks, + locality: args.locality, + firewallEnabled: args.firewallEnabled + }, + tags, + metadata + ); + + return api.machines.create(machine); + } +}; + +module.exports.startMachine = { + type: MachineType, + description: 'Allows you to boot up an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + return api.machines.start(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.startMachineFromSnapshot = { + type: MachineType, + description: 'If an instance is in the "stopped" state, you can choose to start the instance from the referenced snapshot', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + name: { + type: new GraphQLNonNull(GraphQLID), + description: 'The snapshot id' + } + }, + resolve: (root, args) => { + return api.machines.startFromSnapshot(args).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.stopMachine = { + type: MachineType, + description: 'Allows you to shut down an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + return api.machines.stop(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.rebootMachine = { + type: MachineType, + description: 'Allows you to reboot an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + return api.machines.reboot(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.deleteMachine = { + type: DynamicObjectType, + description: 'Allows you to completely destroy an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + return api.machines.destroy(args.id); + } +}; + +module.exports.auditMachine = { + type: new GraphQLList(DynamicObjectType), + description: "Provides a list of an instance's accomplished actions. Results are sorted from newest to oldest action", + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + return api.machines.destroy(args.id); + } +}; + +module.exports.setMachineFirewall = { + type: MachineType, + description: 'Allows you to set the firewall state for an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + enabled: { + type: new GraphQLNonNull(GraphQLBoolean) + } + }, + resolve: (root, args) => { + const { firewall } = api.machines; + + const fn = args.enabled ? firewall.enable : firewall.disable; + + return fn(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.enableMachineFirewall = { + type: MachineType, + description: 'Allows you to enable the firewall for an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + const { firewall } = api.machines; + + return firewall.enable(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.disableMachineFirewall = { + type: MachineType, + description: 'Allows you to completely disable the firewall of an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + } + }, + resolve: (root, args) => { + const { firewall } = api.machines; + + return firewall.disable(args.id).then(machine => { + if (machine) { + return machine; + } + + return api.machines.get(args); + }); + } +}; + +module.exports.addMachineTags = { + type: DynamicObjectType, + description: 'Set tags on the given instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + tags: { + type: new GraphQLNonNull(DynamicObjectType), + description: 'Tag name/value pairs' + } + }, + resolve: (root, args) => { + const { tags } = api.machines; + + return tags.add(args); + } +}; + +module.exports.replaceMachineTags = { + type: DynamicObjectType, + description: 'Fully replace all tags on an instance with the given tags', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + tags: { + type: new GraphQLNonNull(DynamicObjectType), + description: 'Tag name/value pairs' + } + }, + resolve: (root, args) => { + const { tags } = api.machines; + + return tags.replace(args); + } +}; + +module.exports.deleteMachineTags = { + type: DynamicObjectType, + description: 'Deletes tags from an instance', + args: { + id: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + tag: { + type: GraphQLString, + description: 'Tag name to remove. If value is not supplied, all machine tags are removed' + } + }, + resolve: (root, args) => { + const { tags } = api.machines; + + return tags.destroy(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/policies.js b/packages/cloudapi-gql/src/schema/mutations/policies.js new file mode 100644 index 00000000..59daa97a --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/policies.js @@ -0,0 +1,71 @@ +const PolicyType = require('../types/policy'); +const api = require('../../api'); + +const { + GraphQLNonNull, + GraphQLString, + GraphQLID, + GraphQLList +} = require('graphql'); + +module.exports.createPolicy = { + type: PolicyType, + description: 'Creates a new account policy', + args: { + name: { + type: new GraphQLNonNull(GraphQLString), + description: 'The policy name' + }, + rules: { + type: new GraphQLNonNull(new GraphQLList(GraphQLString)), + description: 'One or more Aperture sentences to be added to the current policy' + }, + description: { + type: GraphQLString, + description: 'A description for this policy (Optional)' + } + }, + resolve: (root, args) => { + return api.policies.create(args); + } +}; + +module.exports.updatePolicy = { + type: PolicyType, + description: 'Upgrades an existing account policy. Everything but id can be modified', + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + }, + name: { + type: new GraphQLNonNull(GraphQLString), + description: 'The policy name' + }, + rules: { + type: new GraphQLNonNull(new GraphQLList(GraphQLString)), + description: 'One or more Aperture sentences to be added to the current policy' + }, + description: { + type: GraphQLString, + description: 'A description for this policy (Optional)' + } + }, + resolve: (root, args) => { + return api.policies.update(args); + } +}; + +module.exports.deletePolicy = { + type: GraphQLID, + description: 'Delete an RBAC policy', + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + } + }, + resolve: (root, args) => { + return api.policies.destroy(args).then(() => { + return args.id; + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/roles.js b/packages/cloudapi-gql/src/schema/mutations/roles.js new file mode 100644 index 00000000..d2323fd2 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/roles.js @@ -0,0 +1,103 @@ +const RoleType = require('../types/role'); +const api = require('../../api'); + +const { + GraphQLNonNull, + GraphQLString, + GraphQLID, + GraphQLList +} = require('graphql'); + +module.exports.createRole = { + type: RoleType, + description: 'Create a new role for your account', + args: { + name: { + type: new GraphQLNonNull(GraphQLString), + description: "The role's name" + }, + policies: { + type: new GraphQLList(GraphQLString), + description: "This account's policies to be given to this role (Optional)" + }, + members: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins to be added to this role (Optional)" + }, + defaultMembers: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins to be added to this role and have it enabled by default (Optional)" + } + }, + resolve: (root, args) => { + return api.roles.create(args); + } +}; + +module.exports.updateRole = { + type: RoleType, + description: 'Modifies an account role. Anything but id can be modified', + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + }, + name: { + type: GraphQLString, + description: "The role's name" + }, + policies: { + type: new GraphQLList(GraphQLString), + description: "This account's policies to be given to this role (Optional)" + }, + members: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins to be added to this role (Optional)" + }, + defaultMembers: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins to be added to this role and have it enabled by default (Optional)" + } + }, + resolve: (root, args) => { + return api.roles.update(args); + } +}; + +module.exports.deleteRole = { + type: GraphQLID, + description: 'Remove a role', + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + } + }, + resolve: (root, args) => { + return api.roles.destroy(args).then(() => { + return args.id; + }); + } +}; + +module.exports.setRoleTags = { + type: RoleType.tag, + description: "Sets the given role tags to the provided resource path. resource_path can be the path to any of the CloudAPI resources described in this document: account, keys, users, roles, policies, user's ssh keys, datacenters, images, packages, instances, analytics, instrumentations, firewall rules and networks.", + args: { + resource: { + type: new GraphQLNonNull(GraphQLString), + description: 'The resource type e.g. `machines`, `policies`...' + }, + id: { + type: GraphQLID, + description: 'The resource id' + }, + role: { + type: new GraphQLNonNull(new GraphQLList(GraphQLString)), + description: 'The list role-tags to be added to this resource' + } + }, + resolve: (root, args) => { + const { set } = api.roles; + + return set(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/snapshots.js b/packages/cloudapi-gql/src/schema/mutations/snapshots.js new file mode 100644 index 00000000..e9cadbf3 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/snapshots.js @@ -0,0 +1,60 @@ +const SnapshotType = require('../types/snapshot'); +const api = require('../../api'); + +const { GraphQLNonNull, GraphQLString, GraphQLID } = require('graphql'); + +module.exports.createSnapshot = { + type: SnapshotType, + description: 'Allows you to take a snapshot of a machine instance', + args: { + machine: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + name: { + type: GraphQLString, + description: 'The name to assign to the new snapshot' + } + }, + resolve: (root, args) => { + const { snapshot: { create, get } } = api.machines; + + const newArgs = { + id: args.machine, + name: args.name + }; + + return create(newArgs).then(snapshot => { + if (snapshot) { + return snapshot; + } + + return get(newArgs); + }); + } +}; + +module.exports.deleteSnapshot = { + type: GraphQLID, + description: 'Deletes the specified snapshot of an instance', + args: { + machine: { + type: new GraphQLNonNull(GraphQLID), + description: 'The machine id' + }, + name: { + type: GraphQLString, + description: 'The name to assign to the new snapshot' + } + }, + resolve: (root, args) => { + const { snapshot: { destroy } } = api.machines; + + const newArgs = { + id: args.machine, + name: args.name + }; + + return destroy(newArgs).then(() => args.name); + } +}; diff --git a/packages/cloudapi-gql/src/schema/mutations/users.js b/packages/cloudapi-gql/src/schema/mutations/users.js new file mode 100644 index 00000000..310f053e --- /dev/null +++ b/packages/cloudapi-gql/src/schema/mutations/users.js @@ -0,0 +1,144 @@ +const UserType = require('../types/login'); +const api = require('../../api'); + +const { GraphQLNonNull, GraphQLString, GraphQLID } = require('graphql'); + +module.exports.createUser = { + type: UserType, + description: 'Creates a new user under an account', + args: { + login: { + type: new GraphQLNonNull(GraphQLString) + }, + email: { + type: new GraphQLNonNull(GraphQLString) + }, + password: { + type: new GraphQLNonNull(GraphQLString) + }, + companyName: { + type: GraphQLString + }, + firstName: { + type: GraphQLString + }, + lastName: { + type: GraphQLString + }, + address: { + type: GraphQLString + }, + postalCode: { + type: GraphQLString + }, + city: { + type: GraphQLString + }, + state: { + type: GraphQLString + }, + country: { + type: GraphQLString + }, + phone: { + type: GraphQLString + } + }, + resolve: (root, args) => { + return api.users.create( + Object.assign(args, { + firstName: args.firstName, + lastName: args.firstName, + companyName: args.companyName, + postalCode: args.postalCode + }) + ); + } +}; + +module.exports.deleteUser = { + type: GraphQLID, + description: 'Remove a user', + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + } + }, + resolve: (root, args) => { + return api.users.destroy(args).then(() => { + return args.id; + }); + } +}; + +module.exports.updateUser = { + type: UserType, + description: "Update a user's modifiable properties", + args: { + id: { + type: new GraphQLNonNull(GraphQLID) + }, + login: { + type: GraphQLString + }, + email: { + type: GraphQLString + }, + companyName: { + type: GraphQLString + }, + firstName: { + type: GraphQLString + }, + lastName: { + type: GraphQLString + }, + address: { + type: GraphQLString + }, + postalCode: { + type: GraphQLString + }, + city: { + type: GraphQLString + }, + state: { + type: GraphQLString + }, + country: { + type: GraphQLString + }, + phone: { + type: GraphQLString + } + }, + resolve: (root, args) => { + return api.users.update( + Object.assign(args, { + firstName: args.firstName, + lastName: args.firstName, + companyName: args.companyName, + postalCode: args.postalCode + }) + ); + } +}; + +// Module.exports.changeUserPassword = { +// type: UserType, +// description: 'This is a separate rule for password changes, so different policies can be used for an user trying to modify other data, or only their own password', +// args: { +// id: { +// type: new GraphQLNonNull(GraphQLID) +// }, +// password: { +// type: GraphQLString +// }, +// password_confirmation: { +// type: GraphQLString +// } +// }, +// resolve: (root, args) => { +// return api.users.updatePassword(args); +// } +// }; diff --git a/packages/cloudapi-gql/src/schema/queries/account.js b/packages/cloudapi-gql/src/schema/queries/account.js new file mode 100644 index 00000000..30347e72 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/account.js @@ -0,0 +1,13 @@ +const AccountType = require('../types/login'); +const api = require('../../api'); + +module.exports = { + type: AccountType, + resolve() { + return api.account.get().then(account => { + return Object.assign(account, { + isUser: false + }); + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/datacenters.js b/packages/cloudapi-gql/src/schema/queries/datacenters.js new file mode 100644 index 00000000..81776caf --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/datacenters.js @@ -0,0 +1,19 @@ +const DatacenterType = require('../types/datacenter'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList } = graphql; + +module.exports = { + type: new GraphQLList(DatacenterType), + resolve() { + return api.datacenters().then(datacenters => { + return Object.keys(datacenters).map(name => { + return { + url: datacenters[name], + name + }; + }); + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/fabrics.js b/packages/cloudapi-gql/src/schema/queries/fabrics.js new file mode 100644 index 00000000..fa09c227 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/fabrics.js @@ -0,0 +1,12 @@ +const FabricType = require('../types/fabrics'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList } = graphql; + +module.exports = { + type: new GraphQLList(FabricType), + resolve() { + return api.fabrics.list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/firewall-rules.js b/packages/cloudapi-gql/src/schema/queries/firewall-rules.js new file mode 100644 index 00000000..a05e4b8e --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/firewall-rules.js @@ -0,0 +1,20 @@ +const FirewallRuleType = require('../types/firewall-rule'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(FirewallRuleType), + args: { + id: { + type: GraphQLID, + description: 'Filter on id' + } + }, + resolve(root, args) { + const { list, get } = api.firewallRules; + + return args.id ? get(args.id).then(rule => [rule]) : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/images.js b/packages/cloudapi-gql/src/schema/queries/images.js new file mode 100644 index 00000000..116dc016 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/images.js @@ -0,0 +1,52 @@ +const ImageType = require('../types/image'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLBoolean, GraphQLString, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(ImageType), + args: { + id: { + type: GraphQLID, + description: 'Filter on id' + }, + name: { + type: GraphQLString, + description: 'Filter on "friendly" name' + }, + os: { + type: GraphQLString, + description: 'Filter on the underlying operating system' + }, + version: { + type: GraphQLString, + description: 'Filter on the version' + }, + public: { + type: GraphQLBoolean, + description: 'Filter public/private images' + }, + state: { + type: GraphQLString, + description: 'Filter on image state. By default only active images are shown. Use "all" to list all images' + }, + owner: { + type: GraphQLString, + description: 'Filter on owner UUID' + }, + type: { + type: GraphQLString, + description: 'Filter on image type' + } + }, + resolve(root, args) { + const { list, get } = api.images; + + return args.id + ? get({ + id: args.id + }).then(img => [img]) + : list(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/index.js b/packages/cloudapi-gql/src/schema/queries/index.js new file mode 100644 index 00000000..599a6f90 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/index.js @@ -0,0 +1,20 @@ +const { GraphQLObjectType } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'RootQueryType', + fields: { + account: require('./account'), + users: require('./users'), + policies: require('./policies'), + roles: require('./roles'), + datacenters: require('./datacenters'), + services: require('./services'), + images: require('./images'), + packages: require('./packages'), + machines: require('./machines'), + firewallRules: require('./firewall-rules'), + // Fabrics: require('./fabrics') + networks: require('./networks') + // Nics: require('./nics') + } +}); diff --git a/packages/cloudapi-gql/src/schema/queries/machines.js b/packages/cloudapi-gql/src/schema/queries/machines.js new file mode 100644 index 00000000..186904a5 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/machines.js @@ -0,0 +1,74 @@ +const MachineType = require('../types/machine'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLInt, GraphQLList, GraphQLString, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(MachineType), + args: { + id: { + type: GraphQLID + }, + brand: { + type: GraphQLString, + description: 'Filter on the type of instance (e.g. lx)' + }, + name: { + type: GraphQLString, + description: 'Machine name to find (will make your list size 1, or 0 if nothing found)' + }, + image: { + type: GraphQLString, + description: 'Image id; returns instances provisioned with that image' + }, + state: { + type: GraphQLString, + description: 'Filter on the current state (e.g. running)' + }, + memory: { + type: GraphQLInt, + description: 'Filter on the current size of the RAM deployed (in MiB)' + }, + tombstone: { + type: GraphQLInt, + description: 'Filter on instances destroyed in the last N minutes' + }, + first: { + type: GraphQLInt, + description: 'Return a max of N instances; default is 1000 (which is also the maximum allowable result set size)' + }, + after: { + type: GraphQLInt, + description: 'Get a `first` number of instances starting at this offset' + }, + tags: { + type: new GraphQLList(GraphQLString), + description: 'Filter on existing tags' + }, + docker: { + type: GraphQLString, + description: 'Whether to only list Docker instances, or only non-Docker instances, if present. Defaults to showing all instances.' + }, + credentials: { + type: GraphQLString, + description: 'Whether to include the generated credentials for instances, if present. Defaults to false' + } + }, + resolve(root, args) { + const { list, get } = api.machines; + + const { after, first } = args; + + const newArgs = Object.assign(args, { + limit: first, + offset: after + }); + + return args.id + ? get({ + id: args.id + }).then(machine => [machine]) + : list(newArgs); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/networks.js b/packages/cloudapi-gql/src/schema/queries/networks.js new file mode 100644 index 00000000..707e2de4 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/networks.js @@ -0,0 +1,19 @@ +const NetworkType = require('../types/network'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(NetworkType), + args: { + id: { + type: GraphQLID + } + }, + resolve(root, args) { + const { list, get } = api.networks; + + return args.id ? get(args).then(network => [network]) : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/nics.js b/packages/cloudapi-gql/src/schema/queries/nics.js new file mode 100644 index 00000000..432c8e1f --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/nics.js @@ -0,0 +1,19 @@ +const NicType = require('../types/nic'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLString } = graphql; + +module.exports = { + type: new GraphQLList(NicType), + args: { + mac: { + type: GraphQLString + } + }, + resolve(root, args) { + const { list, get } = api.nics; + + return args.id ? get(args).then(nic => [nic]) : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/packages.js b/packages/cloudapi-gql/src/schema/queries/packages.js new file mode 100644 index 00000000..c516c127 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/packages.js @@ -0,0 +1,56 @@ +const PackageType = require('../types/package'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLInt, GraphQLList, GraphQLString, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(PackageType), + args: { + id: { + type: GraphQLID, + description: 'Filter on package id' + }, + name: { + type: GraphQLString, + description: 'Filter on the "friendly" name' + }, + memory: { + type: GraphQLInt, + description: 'Filter on how much memory will by available (in MiB)' + }, + disk: { + type: GraphQLInt, + description: 'Filter on how much disk space will be available (in MiB)' + }, + swap: { + type: GraphQLInt, + description: 'Filter on how much swap space will be available (in MiB)' + }, + lwps: { + type: GraphQLInt, + description: 'Filter on maximum number of light-weight processes (threads) allowed' + }, + vcpus: { + type: GraphQLInt, + description: 'Filter on number of vCPUs' + }, + version: { + type: GraphQLString, + description: 'Filter on the version' + }, + group: { + type: GraphQLString, + description: 'Filter on the group belonging to' + } + }, + resolve(root, args) { + const { list, get } = api.packages; + + return args.id + ? get({ + id: args.id + }).then(pkg => [pkg]) + : list(args); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/policies.js b/packages/cloudapi-gql/src/schema/queries/policies.js new file mode 100644 index 00000000..c45fb8ae --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/policies.js @@ -0,0 +1,20 @@ +const PolicyType = require('../types/policy'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(PolicyType), + args: { + id: { + type: GraphQLID, + description: '`id` of the `PolicyType` to filter' + } + }, + resolve(root, args) { + const { list, get } = api.policies; + + return args.id ? get(args).then(policy => [policy]) : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/roles.js b/packages/cloudapi-gql/src/schema/queries/roles.js new file mode 100644 index 00000000..f59bfad6 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/roles.js @@ -0,0 +1,20 @@ +const RoleType = require('../types/role'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(RoleType), + args: { + id: { + type: GraphQLID, + description: '`id` or `name` of the `RoleType` to filter' + } + }, + resolve(root, args) { + const { list, get } = api.roles; + + return args.id ? get(args).then(role => [role]) : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/services.js b/packages/cloudapi-gql/src/schema/queries/services.js new file mode 100644 index 00000000..70658fff --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/services.js @@ -0,0 +1,19 @@ +const ServiceType = require('../types/service'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList } = graphql; + +module.exports = { + type: new GraphQLList(ServiceType), + resolve() { + return api.services().then(services => { + return Object.keys(services).map(name => { + return { + url: services[name], + name + }; + }); + }); + } +}; diff --git a/packages/cloudapi-gql/src/schema/queries/users.js b/packages/cloudapi-gql/src/schema/queries/users.js new file mode 100644 index 00000000..2d2b9878 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/queries/users.js @@ -0,0 +1,26 @@ +const UserType = require('../types/login'); +const graphql = require('graphql'); +const api = require('../../api'); + +const { GraphQLList, GraphQLID } = graphql; + +module.exports = { + type: new GraphQLList(UserType), + args: { + id: { + type: GraphQLID, + description: '`id` or `login` of the `UserType` to filter' + } + }, + resolve(root, args) { + const { list, get } = api.users; + + return args.id + ? get(args).then(user => [user]).then(user => + Object.assign(user, { + isUser: true + }) + ) + : list(); + } +}; diff --git a/packages/cloudapi-gql/src/schema/types/audit.js b/packages/cloudapi-gql/src/schema/types/audit.js new file mode 100644 index 00000000..5ac4794a --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/audit.js @@ -0,0 +1,54 @@ +const DynamicObjectType = require('./dynamic-object'); + +const { GraphQLString, GraphQLObjectType, GraphQLBoolean } = require('graphql'); + +const CallerType = new GraphQLObjectType({ + name: 'CallerType', + fields: { + type: { + type: GraphQLString, + description: 'Authentication type for the action request. One of "basic", "operator", "signature" or "token"' + }, + user: { + type: GraphQLString, + description: 'When the authentication type is "basic", this member will be present and include user login' + }, + ip: { + type: GraphQLString, + description: 'The IP addresses this from which the action was requested. Not present if type is "operator"' + }, + keyId: { + type: GraphQLString, + description: 'When authentication type is either "signature" or "token", SSH key identifier' + } + } +}); + +module.exports = new GraphQLObjectType({ + name: 'AuditType', + fields: { + action: { + type: GraphQLString, + description: 'The name of the action' + }, + parameters: { + type: DynamicObjectType, + description: 'The original set of parameters sent when the action was requested' + }, + success: { + type: GraphQLBoolean, + description: "`true` or `false`, depending on the action's success", + resolve: root => { + return root.success === 'yes'; + } + }, + caller: { + type: CallerType, + description: 'Account requesting the action' + }, + time: { + type: GraphQLString, + description: 'When the action finished' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/datacenter.js b/packages/cloudapi-gql/src/schema/types/datacenter.js new file mode 100644 index 00000000..63518ee9 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/datacenter.js @@ -0,0 +1,14 @@ +const { GraphQLString, GraphQLObjectType } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'DatacenterType', + fields: { + name: { + type: GraphQLString, + description: 'location of the datacenter' + }, + url: { + type: GraphQLString + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/dynamic-object.js b/packages/cloudapi-gql/src/schema/types/dynamic-object.js new file mode 100644 index 00000000..9a17892e --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/dynamic-object.js @@ -0,0 +1,41 @@ +const { GraphQLScalarType, Kind } = require('graphql'); + +const kinds = { + [Kind.STRING]: ast => { + return ast.value; + }, + [Kind.BOOLEAN]: ast => { + return kinds[Kind.STRING](ast); + }, + [Kind.INT]: ast => { + return Number(ast.value); + }, + [Kind.FLOAT]: ast => { + return kinds[Kind.INT](ast); + }, + [Kind.OBJECT]: ast => { + const value = Object.create(null); + ast.fields.forEach(field => { + value[field.name.value] = parseLiteral(field.value); + }); + + return value; + }, + [Kind.LIST]: ast => { + return ast.values.map(parseLiteral); + } +}; + +// https://github.com/taion/graphql-type-json/blob/master/src/index.js +const parseLiteral = ast => { + const kind = kinds[ast.kind]; + return kind ? kinds[ast.kind](ast) : null; +}; + +// From http://stackoverflow.com/a/34229603 +module.exports = new GraphQLScalarType({ + name: 'DynamicObjectType', + serialize: v => v, + parseValue: v => v, + parseLiteral +}); diff --git a/packages/cloudapi-gql/src/schema/types/fabric.js b/packages/cloudapi-gql/src/schema/types/fabric.js new file mode 100644 index 00000000..4e14ce23 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/fabric.js @@ -0,0 +1,19 @@ +const { GraphQLString, GraphQLObjectType, GraphQLInt } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'FabricsType', + fields: { + name: { + type: GraphQLString, + description: 'A unique name to identify the VLAN' + }, + vlanId: { + type: GraphQLInt, + description: "A number from 0-4095 that indicates the VLAN's id" + }, + description: { + type: GraphQLString, + description: 'An optional description of the VLAN' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/firewall-rule.js b/packages/cloudapi-gql/src/schema/types/firewall-rule.js new file mode 100644 index 00000000..6ab9ce0c --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/firewall-rule.js @@ -0,0 +1,90 @@ +const api = require('../../api'); + +const { + GraphQLString, + GraphQLBoolean, + GraphQLObjectType, + GraphQLList, + GraphQLID, + GraphQLInt +} = require('graphql'); + +const FirewallRuleSyntaxType = new GraphQLObjectType({ + name: 'FirewallRuleSyntaxType', + fields: { + text: { + type: GraphQLString + }, + from: { + type: GraphQLString + }, + to: { + type: GraphQLString + }, + action: { + type: GraphQLString + }, + protocol: { + type: GraphQLString + }, + port: { + type: GraphQLInt + } + } +}); + +module.exports = new GraphQLObjectType({ + name: 'FirewallRuleType', + // Function to allow circular dependencies + fields: () => ({ + id: { + type: GraphQLID, + description: 'Unique identifier for this rule' + }, + enabled: { + type: GraphQLBoolean, + description: 'Indicates if the rule is enabled', + resolve: root => { + return Boolean(root.enabled); + } + }, + rule: { + type: FirewallRuleSyntaxType, + description: 'Firewall rule', + resolve: ({ rule }) => { + const regex = /from (.*?) to (.*?) (allow|deny) (.*?) port (\d*)/i; + const tokens = rule.match(regex); + + return { + from: tokens[1], + to: tokens[2], + action: tokens[3], + protocol: tokens[4], + port: tokens[5], + text: rule + }; + } + }, + global: { + type: GraphQLBoolean, + description: 'Indicates if the rule is global', + resolve: root => { + return Boolean(root.global); + } + }, + description: { + type: GraphQLString, + description: 'Human-readable description for the rule' + }, + machines: { + // Circular dependency + type: new GraphQLList(require('./machine')), + description: 'Lists all instances a firewall rule is applied to', + resolve: root => { + return api.firewallRules.listMachines({ + id: root.id + }); + } + } + }) +}); diff --git a/packages/cloudapi-gql/src/schema/types/image.js b/packages/cloudapi-gql/src/schema/types/image.js new file mode 100644 index 00000000..3154af37 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/image.js @@ -0,0 +1,116 @@ +const DynamicObjectType = require('./dynamic-object'); + +const { + GraphQLBoolean, + GraphQLString, + GraphQLObjectType, + GraphQLInt, + GraphQLList, + GraphQLID +} = require('graphql'); + +const ErrorType = new GraphQLObjectType({ + name: 'ErrorType', + fields: { + code: { + type: GraphQLString, + description: 'A CamelCase string code for this error, e.g. "PrepareImageDidNotRun". See GetImage docs for a table of error.code values' + }, + message: { + type: GraphQLString, + description: 'A short description of the image creation failure' + } + } +}); + +const ImageFileType = new GraphQLObjectType({ + name: 'ImageFileType', + fields: { + compression: { + type: GraphQLString, + description: 'The type of file compression used for the image file. One of "bzip2", "gzip", "none"' + }, + sha1: { + type: GraphQLString, + description: 'SHA-1 hex digest of the file content. Used for corruption checking' + }, + size: { + type: GraphQLInt, + description: 'File size in bytes' + } + } +}); + +module.exports = new GraphQLObjectType({ + name: 'ImageType', + description: 'An image contains the software packages that will be available on newly-provisioned instance. In the case of hardware virtual machines, the image also includes the operating system', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this image' + }, + name: { + type: GraphQLString, + description: 'The "friendly" name for this image' + }, + os: { + type: GraphQLString, + description: 'The underlying operating system for this image' + }, + version: { + type: GraphQLString, + description: 'The version for this image' + }, + type: { + type: GraphQLString, + description: 'What kind of image this is. The values differ after v8.0.0+' + }, + requirements: { + type: DynamicObjectType, + description: 'Contains a grouping of various minimum requirements for provisioning an instance with this image. For example "password" indicates that a password must be provided' + }, + homepage: { + type: GraphQLString, + description: 'The URL for a web page with more detailed information for this image' + }, + files: { + type: new GraphQLList(ImageFileType), + description: 'An array of image files that make up each image. Currently only a single file per image is supported' + }, + publishedAt: { + type: GraphQLString, + description: 'The time this image has been made publicly available' + }, + owner: { + type: GraphQLString, + description: 'The UUID of the user who owns this image' + }, + public: { + type: GraphQLBoolean, + description: 'Indicates if this image is publicly available', + resolve: root => { + return Boolean(root.public); + } + }, + state: { + type: GraphQLString, + description: 'The current state of the image. One of "active", "unactivated", "disabled", "creating", "failed"' + }, + tags: { + type: DynamicObjectType, + description: 'An object of key/value pairs that allows clients to categorize images by any given criteria' + }, + eula: { + type: GraphQLString, + description: 'URL of the End User License Agreement (EULA) for the image' + }, + acl: { + type: new GraphQLList(GraphQLString), + description: 'Access Control List. An array of account UUIDs given access to a private image. The field is only relevant to private images' + }, + error: { + type: ErrorType, + description: 'If state=="failed", resulting from CreateImageFromMachine failure, then there may be an error object of the form {"code": "", "message": ""}' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/key.js b/packages/cloudapi-gql/src/schema/types/key.js new file mode 100644 index 00000000..6937832c --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/key.js @@ -0,0 +1,16 @@ +const { GraphQLString, GraphQLObjectType } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'KeyType', + fields: { + name: { + type: GraphQLString + }, + fingerprint: { + type: GraphQLString + }, + key: { + type: GraphQLString + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/login.js b/packages/cloudapi-gql/src/schema/types/login.js new file mode 100644 index 00000000..edf6290b --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/login.js @@ -0,0 +1,108 @@ +const KeyType = require('./key'); +const api = require('../../api'); + +const { + GraphQLBoolean, + GraphQLString, + GraphQLList, + GraphQLObjectType, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'LoginType', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this user/account' + }, + login: { + type: GraphQLString, + description: 'Account/Sub-user login name' + }, + email: { + type: GraphQLString, + description: 'Email address' + }, + companyName: { + type: GraphQLString, + resolve: root => { + return Boolean(root.companyName) || root.companyName; + } + }, + firstName: { + type: GraphQLString, + resolve: root => { + return Boolean(root.firstName) || root.firstName; + } + }, + lastName: { + type: GraphQLString, + resolve: root => { + return Boolean(root.lastName) || root.lastName; + } + }, + address: { + type: GraphQLString + }, + postalCode: { + type: GraphQLString, + resolve: root => { + return Boolean(root.postalCode) || root.postalCode; + } + }, + city: { + type: GraphQLString + }, + state: { + type: GraphQLString + }, + country: { + type: GraphQLString + }, + phone: { + type: GraphQLString + }, + cnsEnabled: { + type: GraphQLBoolean, + description: 'true if Triton CNS is enabled for account', + resolve: root => { + return root.isUser ? null : Boolean(root.tritonCnsEnabled); + } + }, + keys: { + type: new GraphQLList(KeyType), + description: 'Get keys for user/account', + args: { + name: { + type: GraphQLString, + description: 'Filter on key name' + }, + fingerprint: { + type: GraphQLString, + description: 'Filter on key fingerprint' + } + }, + resolve(root, args) { + const _api = root.isUser ? api.keys.user : api.keys.account; + + const { list, get } = _api; + + const newArgs = Object.assign(args, { + userId: root.id + }); + + const filtered = args.name || args.fingerprint; + return filtered ? get(newArgs).then(key => [key]) : list(newArgs); + } + }, + updated: { + type: GraphQLString, + description: "When this user/account's details was last updated" + }, + created: { + type: GraphQLString, + description: 'When this user/account was created' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/machine.js b/packages/cloudapi-gql/src/schema/types/machine.js new file mode 100644 index 00000000..62f2e16c --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/machine.js @@ -0,0 +1,160 @@ +const DynamicObjectType = require('./dynamic-object'); +const SnapshotType = require('./snapshot'); +const api = require('../../api'); + +const { + GraphQLBoolean, + GraphQLString, + GraphQLInputObjectType, + GraphQLObjectType, + GraphQLInt, + GraphQLList, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'MachineType', + description: 'An image contains the software packages that will be available on newly-provisioned instance. In the case of hardware virtual machines, the image also includes the operating system', + // Function to allow circular dependencies + fields: () => ({ + id: { + type: GraphQLID, + description: 'Unique id for this instance' + }, + name: { + type: GraphQLString, + description: 'The "friendly" name for this instance' + }, + brand: { + type: GraphQLString, + description: 'The type of instance (e.g. lx)' + }, + state: { + type: GraphQLString, + description: 'The current state of this instance (e.g. running)' + }, + image: { + type: GraphQLString, + description: 'The image id this instance was provisioned with' + }, + memory: { + type: GraphQLInt, + description: 'The amount of RAM this instance has (in MiB)' + }, + disk: { + type: GraphQLInt, + description: 'The amount of disk this instance has (in MiB)' + }, + metadata: { + type: DynamicObjectType, + description: 'Any additional metadata this instance has' + }, + tags: { + type: DynamicObjectType, + description: 'Any tags this instance has', + args: { + name: { + type: GraphQLString, + description: 'Filter on the name of the tag' + } + }, + resolve: (root, args) => { + const { tags: { get } } = api.machines; + + return args.name + ? get({ + id: root.id, + tag: args.name + }).then(value => ({ + [args.name]: value + })) + : root.tags; + } + }, + created: { + type: GraphQLString, + description: 'When this instance was created' + }, + updated: { + type: GraphQLString, + description: "When this instance's details was last updated" + }, + docker: { + type: GraphQLBoolean, + description: 'Whether this instance is a Docker container, if present', + resolve: root => { + return Boolean(root.docker); + } + }, + ips: { + type: new GraphQLList(GraphQLString), + description: 'The IP addresses this instance has' + }, + networks: { + type: new GraphQLList(GraphQLString), + description: 'The network UUIDs of the nics this instance has' + }, + primaryIp: { + type: GraphQLString, + description: 'IP address of the primary nic of this instance' + }, + firewallEnabled: { + type: GraphQLBoolean, + description: 'Whether firewall rules are enforced on this instance', + resolve: root => { + return Boolean(root.firewallEnabled); + } + }, + firewallRules: { + // Circular dependency + type: new GraphQLList(require('./firewall-rule')), + description: 'List of FirewallRules affecting this machine', + resolve: root => { + return api.firewallRules.listByMachine(root.id); + } + }, + computeNode: { + type: GraphQLString, + description: 'UUID of the server on which the instance is located' + }, + package: { + type: GraphQLString, + description: 'The id or name of the package used to create this instance' + }, + snapshots: { + type: new GraphQLList(SnapshotType), + description: 'The snapshots based on this instance', + args: { + name: { + type: GraphQLString, + description: 'Filter on the name of the snapshot' + } + }, + resolve: (root, args) => { + const { snapshot: { list, get } } = api.machines; + + return args.id + ? list(root) + : get({ + id: root.id, + name: args.name + }); + } + } + }) +}); + +module.exports.locality = new GraphQLInputObjectType({ + name: 'LocalityType', + fields: { + strict: { + type: GraphQLBoolean + }, + near: { + type: new GraphQLList(GraphQLID) + }, + far: { + type: new GraphQLList(GraphQLID) + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/network.js b/packages/cloudapi-gql/src/schema/types/network.js new file mode 100644 index 00000000..2aba7b95 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/network.js @@ -0,0 +1,73 @@ +const DynamicObjectType = require('./dynamic-object'); + +const { + GraphQLBoolean, + GraphQLString, + GraphQLObjectType, + GraphQLList, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'NetworkType', + description: 'Logical networks in Triton model core network configurations to enable Triton to define Virtual Network Interfaces and IP addresses for instances', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this network' + }, + name: { + type: GraphQLString, + description: 'The network name' + }, + public: { + type: GraphQLBoolean, + description: 'Whether this a public or private (rfc1918) network', + resolve: root => { + return Boolean(root.public); + } + }, + fabric: { + type: GraphQLBoolean, + description: 'Whether this network is created on a fabric', + resolve: root => { + return Boolean(root.fabric); + } + }, + description: { + type: GraphQLString, + description: 'Description of this network' + }, + subnet: { + type: GraphQLString, + description: 'A CIDR formatted string that describes the network' + }, + provisionStartIp: { + type: GraphQLString, + description: 'The first IP on the network that may be assigned' + }, + provisionEndIp: { + type: GraphQLString, + description: 'The last IP on the network that may be assigned' + }, + gateway: { + type: GraphQLString, + description: 'Optional Gateway IP address' + }, + resolvers: { + type: new GraphQLList(GraphQLString), + description: 'Optional Resolver IP addresses' + }, + routes: { + type: DynamicObjectType, + description: 'Optional Static routes for hosts on this network' + }, + internetNat: { + type: GraphQLBoolean, + description: 'Provision internet NAT zone on gateway address', + resolve: root => { + return Boolean(root.internetNat); + } + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/nic.js b/packages/cloudapi-gql/src/schema/types/nic.js new file mode 100644 index 00000000..7cae5e1a --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/nic.js @@ -0,0 +1,39 @@ +const { GraphQLBoolean, GraphQLObjectType, GraphQLString } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'NicType', + description: 'Logical networks are used both on head nodes and compute nodes, and are associated with physical interfaces by using a system called NIC Tags', + fields: { + ip: { + type: GraphQLString, + description: "NIC's IPv4 address" + }, + mac: { + type: GraphQLString, + description: "NIC's MAC address" + }, + primary: { + type: GraphQLBoolean, + description: "Whether this is the instance's primary NIC", + resolve: root => { + return root.primary; + } + }, + netmask: { + type: GraphQLString, + description: 'IPv4 netmask' + }, + gateway: { + type: GraphQLString, + description: 'IPv4 gateway' + }, + state: { + type: GraphQLString, + description: 'Describes the state of the NIC (e.g. provisioning, running, or stopped)' + }, + network: { + type: GraphQLString, + description: "The NIC's network id (see ListNetworks)" + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/package.js b/packages/cloudapi-gql/src/schema/types/package.js new file mode 100644 index 00000000..15ea5302 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/package.js @@ -0,0 +1,52 @@ +const { + GraphQLString, + GraphQLObjectType, + GraphQLInt, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'PackageType', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this package' + }, + name: { + type: GraphQLString, + description: 'The "friendly" name for this package' + }, + memory: { + type: GraphQLInt, + description: 'How much memory will by available (in MiB)' + }, + disk: { + type: GraphQLInt, + description: 'How much disk space will be available (in MiB)' + }, + swap: { + type: GraphQLInt, + description: 'How much swap space will be available (in MiB)' + }, + lwps: { + type: GraphQLInt, + description: 'Maximum number of light-weight processes (threads) allowed' + }, + vcpus: { + type: GraphQLInt, + description: 'Number of vCPUs for this package' + }, + version: { + type: GraphQLString, + description: 'The version of this package' + }, + group: { + type: GraphQLString, + description: 'The group this package belongs to' + }, + description: { + type: GraphQLString, + description: 'A human-friendly description about this package' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/policy.js b/packages/cloudapi-gql/src/schema/types/policy.js new file mode 100644 index 00000000..4bad990a --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/policy.js @@ -0,0 +1,29 @@ +const { + GraphQLString, + GraphQLObjectType, + GraphQLList, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'PolicyType', + description: 'Policies are lists of rules that describe access to resources', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this policy' + }, + name: { + type: GraphQLString, + description: 'The policy name' + }, + rules: { + type: new GraphQLList(GraphQLString), + description: 'One or more Aperture sentences applying to the policy' + }, + description: { + type: GraphQLString, + description: 'A description for this policy' + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/role.js b/packages/cloudapi-gql/src/schema/types/role.js new file mode 100644 index 00000000..196332d5 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/role.js @@ -0,0 +1,50 @@ +const { + GraphQLString, + GraphQLObjectType, + GraphQLList, + GraphQLID +} = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'RoleType', + description: 'Roles are lists of users and policies. Roles describe which users are allowed access according to the policies', + fields: { + id: { + type: GraphQLID, + description: 'Unique id for this role' + }, + name: { + type: GraphQLString, + description: 'The role name' + }, + policies: { + type: new GraphQLList(GraphQLString), + description: "This account's policies which this role obeys (Optional)" + }, + members: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins this role applies to (Optional)" + }, + defaultMembers: { + type: new GraphQLList(GraphQLString), + description: "This account's user logins this role applies to by default (Optional)" + } + } +}); + +module.exports.tag = new GraphQLObjectType({ + name: 'RoleTagType', + fields: { + name: { + type: GraphQLString, + description: 'Path to the resource' + }, + roleTag: { + type: new GraphQLList(GraphQLString), + description: 'The role name', + resolve: root => { + return root['role-tag'] || root.roleTag; + } + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/service.js b/packages/cloudapi-gql/src/schema/types/service.js new file mode 100644 index 00000000..09f9ebe6 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/service.js @@ -0,0 +1,13 @@ +const { GraphQLString, GraphQLObjectType } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'ServiceType', + fields: { + name: { + type: GraphQLString + }, + url: { + type: GraphQLString + } + } +}); diff --git a/packages/cloudapi-gql/src/schema/types/snapshot.js b/packages/cloudapi-gql/src/schema/types/snapshot.js new file mode 100644 index 00000000..f69222c3 --- /dev/null +++ b/packages/cloudapi-gql/src/schema/types/snapshot.js @@ -0,0 +1,16 @@ +const { GraphQLString, GraphQLObjectType, GraphQLID } = require('graphql'); + +module.exports = new GraphQLObjectType({ + name: 'SnapshotType', + description: 'Policies are lists of rules that describe access to resources', + fields: { + name: { + type: GraphQLID, + description: 'The name of this snapshot' + }, + state: { + type: GraphQLString, + description: 'The current state of the snapshot' + } + } +}); diff --git a/packages/cloudapi-gql/yarn.lock b/packages/cloudapi-gql/yarn.lock new file mode 100644 index 00000000..cfa5551d --- /dev/null +++ b/packages/cloudapi-gql/yarn.lock @@ -0,0 +1,1665 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +accepts@^1.3.0, accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + 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" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +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" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@0.1.5, assert-plus@0.1.x, assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +assert-plus@0.2.0, "assert-plus@>=0.2.0 <0.3.0", assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +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" + +babel-code-frame@^6.16.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" + +backoff@2.4.1, backoff@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.4.1.tgz#2f68c50e0dd789dbefe24200a62efb04d2456d68" + dependencies: + precond "0.2" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +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" + +bigspinner@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bigspinner/-/bigspinner-3.1.0.tgz#dd3a862b2fedf66fee8471320069428d0d84427a" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +bunyan@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.5.1.tgz#5f6e7d44c43b952f56b0f41309e3ab12391b4e2d" + optionalDependencies: + dtrace-provider "~0.6" + mv "~2" + safe-json-stringify "~1" + +bunyan@^1.8.10, bunyan@^1.8.3: + version "1.8.10" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.10.tgz#201fedd26c7080b632f416072f53a90b9a52981c" + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" + +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" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +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" + +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: + 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-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +clone@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.1.5.tgz#46f29143d0766d663dbd7f80b7520a15783d2042" + +cmdln@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/cmdln/-/cmdln-4.1.2.tgz#4345bb5498f2b096ba85ec8c5579a8cb252f7c70" + dependencies: + assert-plus "^1.0.0" + dashdash "^1.14.1" + extsprintf "^1.2.0" + fuzzyset.js "^0.0.1" + verror "^1.6.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" + +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.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" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@^1.0.2, content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-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" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +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.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.10.1.tgz#0abf1af89a8f5129a81f18c2b35b21df22622f60" + dependencies: + assert-plus "0.1.x" + +"dashdash@1.x >=1.8", dashdash@^1.12.0, dashdash@^1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +debug@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" + dependencies: + ms "2.0.0" + +debug@^2.1.1: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +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.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" + +depd@1.1.0, depd@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +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" + +dotenv@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + +dtrace-provider@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.7.1.tgz#c06b308f2f10d5d5838aec9c571e5d588dc71d04" + dependencies: + nan "^2.3.3" + +dtrace-provider@~0.6: + version "0.6.0" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.6.0.tgz#0b078d5517937d873101452d9146737557b75e51" + dependencies: + nan "^2.0.8" + +dtrace-provider@~0.8: + version "0.8.1" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.1.tgz#cd4d174a233bea1bcf4a1fbfa5798f44f48cda9f" + dependencies: + nan "^2.3.3" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +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" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + 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.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@^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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +express-graphql@^0.6.4: + version "0.6.5" + resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.6.5.tgz#ead0a69bf30b6119a2b258b378c29b00758b3d1c" + dependencies: + accepts "^1.3.0" + content-type "^1.0.2" + http-errors "^1.3.0" + raw-body "^2.1.0" + +express@^4.15.2: + version "4.15.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.7" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + finalhandler "~1.0.3" + fresh "0.5.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.4" + qs "6.4.0" + range-parser "~1.2.0" + send "0.15.3" + serve-static "1.12.3" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.0" + vary "~1.1.1" + +extsprintf@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.0.tgz#4d58b815ace5bebfc4ebf03cf98b0a7604a99b86" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +extsprintf@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.2.0.tgz#5ad946c22f5b32ba7f8cd7426711c6e8a3fc2529" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fast-safe-stringify@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-1.2.0.tgz#ebd42666fd18fe4f2ba4f0d295065f3f85cade96" + +figures@^1.3.5: + 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" + +finalhandler@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89" + dependencies: + debug "2.6.7" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + unpipe "~1.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" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fuzzyset.js@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/fuzzyset.js/-/fuzzyset.js-0.0.1.tgz#979e22f9451b4b38f051f7937c919dbacc692958" + +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-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.6, getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob@^5.0.14: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graphql@^0.9.3: + version "0.9.6" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.9.6.tgz#514421e9d225c29dfc8fd305459abae58815ef2c" + dependencies: + iterall "^1.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +http-errors@^1.3.0, 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.0.2: + 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" + +iconv-lite@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + +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" + +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.3, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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" + +ipaddr.js@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" + +is-absolute@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.1.7.tgz#847491119fccb5fb436217cc737f7faad50f603f" + dependencies: + is-relative "^0.1.0" + +is-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-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-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-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-relative@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.1.3.tgz#905fee8ae86f45b3ec614bc3c15c869df0876e82" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +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@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +iterall@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.1.tgz#f7f0af11e9a04ec6426260f5019d9fcca4d50214" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.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.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" + +json-schema@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.2.tgz#50354f19f603917c695f70b85afa77c3b0f23506" + +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" + +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@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-0.3.0.tgz#cd13466ea2480dbd8396a570d47d31dda476f8b1" + dependencies: + extsprintf "1.0.0" + json-schema "0.2.2" + verror "1.3.3" + +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" + +keep-alive-agent@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/keep-alive-agent/-/keep-alive-agent-0.0.1.tgz#44847ca394ce8d6b521ae85816bd64509942b385" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash@^3.10.1, lodash@^3.9.3: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.3.0, lodash@^4.7.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lomstream@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lomstream/-/lomstream-1.1.0.tgz#2a7f8066ec3ab40bef28ca384842e75340183bf0" + dependencies: + assert-plus "0.1.5" + extsprintf "1.3.0" + vstream "0.1.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +lstream@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/lstream/-/lstream-0.0.4.tgz#d637764ea33a929bd00f34d2a23c2256d0d5fb5b" + dependencies: + readable-stream ">= 1.0.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +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.11, mime-types@~2.1.15: + 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" + +"minimatch@2 || 3", minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, 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.10.6: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" + +mooremachine@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mooremachine/-/mooremachine-2.1.0.tgz#e935cf356ca6b6a28b92fbd446d1b31a5c19848d" + dependencies: + assert-plus ">=0.2.0 <0.3.0" + optionalDependencies: + dtrace-provider "~0.8" + +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" + +mute-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +mv@~2: + 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" + +nan@^2.0.8, nan@^2.3.3: + 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" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +node-uuid@^1.4.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +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" + +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" + +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: + version "1.3.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.0.tgz#151af86bfc1f08c4b9f07d06ab250ffcbeb56581" + +once@1.3.2, once@^1.3.0, once@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.2.tgz#d8feeca93b039ec1dcdee7741c92bdac5e28081b" + 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" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +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-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@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +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" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +precond@0.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +proxy-addr@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.3.0" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +qs@6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.2.0.tgz#994976cf6a5096a41162840492f0bdc5d6e7fb96" + dependencies: + bytes "2.4.0" + iconv-lite "0.4.15" + unpipe "1.0.0" + +read@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + dependencies: + mute-stream "~0.0.4" + +"readable-stream@>= 1.0.2", readable-stream@^2.1.4, readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +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: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +restify-clients@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/restify-clients/-/restify-clients-1.5.0.tgz#7a417f8b20782958e3f27b5cc7651bd47631fa37" + dependencies: + assert-plus "^1.0.0" + backoff "^2.4.1" + bunyan "^1.8.3" + dtrace-provider "^0.7.0" + fast-safe-stringify "^1.1.3" + keep-alive-agent "0.0.1" + lodash "^4.7.0" + lru-cache "^4.0.1" + mime "^1.3.4" + node-uuid "^1.4.6" + once "^1.3.2" + restify-errors "^3.1.0" + semver "^5.0.1" + tunnel-agent "^0.4.0" + +restify-errors@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/restify-errors/-/restify-errors-3.0.0.tgz#3b17177d43954acece4291465a97ce1b58cf3d57" + dependencies: + assert-plus "^0.1.5" + lodash "^3.9.3" + verror "^1.6.0" + +restify-errors@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restify-errors/-/restify-errors-3.1.0.tgz#06b5479477874c0856d782a12c8707dcdad53f16" + dependencies: + assert-plus "^0.2.0" + lodash "^3.10.1" + verror "^1.6.0" + +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" + +rimraf@2.4.4, rimraf@^2.2.8, rimraf@~2.4.0: + version "2.4.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.4.tgz#b528ce2ebe0e6d89fb03b265de11d61da0dbcf82" + dependencies: + glob "^5.0.14" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +safe-json-stringify@~1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz#81a098f447e4bbc3ff3312a243521bc060ef5911" + +semver@5.1.0, semver@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.0.tgz#85f2cf8550465c4df000cf7d86f6b054106ab9e5" + +send@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309" + dependencies: + debug "2.6.7" + 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 "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-static@1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.15.3" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +smartdc-auth@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/smartdc-auth/-/smartdc-auth-2.5.2.tgz#74f3511958b6e5ac4f1c558992da6049e1dfc035" + dependencies: + assert-plus "^1.0.0" + bunyan "1.5.1" + clone "0.1.5" + dashdash "1.10.1" + http-signature "^1.0.2" + once "1.3.0" + sshpk "^1.8.3" + sshpk-agent "^1.3.0" + vasync "1.4.3" + +smartdc-auth@^2.5.2: + version "2.5.4" + resolved "https://registry.yarnpkg.com/smartdc-auth/-/smartdc-auth-2.5.4.tgz#fa5fcad58bfe0033f4ca7ffb849b88b1a4f18c17" + dependencies: + assert-plus "^1.0.0" + bunyan "1.5.1" + clone "0.1.5" + dashdash "1.10.1" + http-signature "^1.0.2" + once "1.3.0" + sshpk "^1.8.3" + sshpk-agent "^1.3.0" + vasync "1.4.3" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk-agent@1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/sshpk-agent/-/sshpk-agent-1.4.2.tgz#5739cc08f48f98c53950a1715d20872a53804541" + dependencies: + assert-plus "^1.0.0" + mooremachine "^2.0.1" + readable-stream "^2.1.4" + sshpk ">=1.9.1 < 1.11.0" + +sshpk-agent@^1.3.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/sshpk-agent/-/sshpk-agent-1.6.0.tgz#56da869e02ad757991c247327e80b261682399af" + dependencies: + assert-plus "^1.0.0" + mooremachine "^2.0.1" + readable-stream "^2.1.4" + sshpk ">=1.13.0 < 1.14.0" + +sshpk@1.10.2, "sshpk@>=1.9.1 < 1.11.0": + version "1.10.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" + 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" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"sshpk@>=1.13.0 < 1.14.0", sshpk@^1.7.0, sshpk@^1.8.3: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + 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" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"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" + +string-width@^1.0.1: + 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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +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" + +strsplit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strsplit/-/strsplit-1.0.0.tgz#0fdedc68e91addcfcb2e6be9c262581a6e8c28aa" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +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" + +tabula@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/tabula/-/tabula-1.9.0.tgz#93c2017f628d159442c74933e170639490708b78" + dependencies: + assert-plus "^1.0.0" + dashdash "1.x >=1.8" + lstream "0.0.4" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +triton@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/triton/-/triton-5.2.0.tgz#16ce8cb155c37785b6818e403f5cf83934921d41" + dependencies: + assert-plus "0.2.0" + backoff "2.4.1" + bigspinner "3.1.0" + bunyan "1.5.1" + cmdln "4.1.2" + extsprintf "1.0.2" + getpass "0.1.6" + lomstream "1.1.0" + mkdirp "0.5.1" + once "1.3.2" + read "1.0.7" + restify-clients "1.5.0" + restify-errors "3.0.0" + rimraf "2.4.4" + semver "5.1.0" + smartdc-auth "2.5.2" + sshpk "1.10.2" + sshpk-agent "1.4.2" + strsplit "1.0.0" + tabula "1.9.0" + vasync "1.6.3" + verror "1.6.0" + which "1.2.4" + wordwrap "1.0.0" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tunnel-agent@^0.4.0: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +user-home@^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" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" + +vasync@1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.4.3.tgz#c86d52e2b71613d29eedf159f3135dbe749cee37" + dependencies: + jsprim "0.3.0" + verror "1.1.0" + +vasync@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/vasync/-/vasync-1.6.3.tgz#4a69d7052a47f4ce85503d7641df1cbf40432a94" + dependencies: + verror "1.6.0" + +verror@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.1.0.tgz#2a4b4eb14a207051e75a6f94ee51315bf173a1b0" + dependencies: + extsprintf "1.0.0" + +verror@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.3.tgz#8a6a4ac3a8c774b6f687fece49bdffd78552e2cd" + dependencies: + extsprintf "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" + +verror@1.6.0, verror@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.6.0.tgz#7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5" + dependencies: + extsprintf "1.2.0" + +vstream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vstream/-/vstream-0.1.0.tgz#13587190f34e72ba7a07ebbaa7e70ac147b1fb7d" + dependencies: + assert-plus "0.1.5" + extsprintf "1.2.0" + +which@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.4.tgz#1557f96080604e5b11b3599eb9f45b50a9efd722" + dependencies: + is-absolute "^0.1.7" + isexe "^1.1.1" + +wordwrap@1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +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" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +yallist@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" diff --git a/packages/cp-frontend/.babelrc b/packages/cp-frontend/.babelrc new file mode 100644 index 00000000..d57f858e --- /dev/null +++ b/packages/cp-frontend/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": "joyent-portal", + "plugins": [ + "styled-components", + ["inline-react-svg", { + "ignorePattern": "libre-franklin" + }] + ] +} diff --git a/packages/cp-frontend/.dockerignore b/packages/cp-frontend/.dockerignore new file mode 100644 index 00000000..4214f9ef --- /dev/null +++ b/packages/cp-frontend/.dockerignore @@ -0,0 +1,8 @@ +src/components/base/*.css +node_modules +coverage +.nyc_output +docs/static +!docs/static/index.html +docs/node_modules +dist diff --git a/packages/cp-frontend/.eslintignore b/packages/cp-frontend/.eslintignore new file mode 100644 index 00000000..6db80622 --- /dev/null +++ b/packages/cp-frontend/.eslintignore @@ -0,0 +1,3 @@ +.nyc_output +coverage +dist \ No newline at end of file diff --git a/packages/cp-frontend/.eslintrc b/packages/cp-frontend/.eslintrc new file mode 100644 index 00000000..c02f3ac3 --- /dev/null +++ b/packages/cp-frontend/.eslintrc @@ -0,0 +1,6 @@ +{ + "extends": "joyent-portal", + "rules": { + "no-console": 0 + } +} diff --git a/packages/cp-frontend/.gitignore b/packages/cp-frontend/.gitignore new file mode 100644 index 00000000..927d17bb --- /dev/null +++ b/packages/cp-frontend/.gitignore @@ -0,0 +1,18 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# dependencies +/node_modules + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env +npm-debug.log* +yarn-debug.log* +yarn-error.log* + diff --git a/packages/cp-frontend/.stylelintrc b/packages/cp-frontend/.stylelintrc new file mode 100644 index 00000000..82892b62 --- /dev/null +++ b/packages/cp-frontend/.stylelintrc @@ -0,0 +1,5 @@ +{ + "syntax": "scss", + "processors": ["stylelint-processor-styled-components"], + "extends": ["stylelint-config-standard", "stylelint-config-primer"] +} diff --git a/packages/cp-frontend/.tern-project b/packages/cp-frontend/.tern-project new file mode 100644 index 00000000..4a7fee71 --- /dev/null +++ b/packages/cp-frontend/.tern-project @@ -0,0 +1,15 @@ +{ + "libs": [ + "ecmascript", + "browser" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "jsx": true, + "node": true, + "webpack": { + "configPath": "./node_modules/react-scripts/config/webpack.config.dev.js" + } + } +} \ No newline at end of file diff --git a/packages/cp-frontend/README.md b/packages/cp-frontend/README.md new file mode 100644 index 00000000..eb60691e --- /dev/null +++ b/packages/cp-frontend/README.md @@ -0,0 +1,20 @@ +# joyent-cp-frontend + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +## Table of Contents + +- [Usage](#usage) +- [License](#license) + +## Usage + +``` +npm run start +open http://0.0.0.0:3069 +``` + +## License + +MPL-2.0 diff --git a/packages/cp-frontend/package.json b/packages/cp-frontend/package.json new file mode 100644 index 00000000..c257d4f6 --- /dev/null +++ b/packages/cp-frontend/package.json @@ -0,0 +1,63 @@ +{ + "name": "joyent-cp-frontend", + "version": "1.0.2", + "private": true, + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "src/index.js", + "scripts": { + "start": "PORT=3069 react-scripts start", + "build": "react-scripts build", + "lint:css": "exit 0 # stylelint \"./src/**/*.js\"", + "lint:js": "eslint . --fix --format=tap", + "lint": "run-s lint:*", + "test": "exit 0 # react-scripts test --env=jsdom", + "install": "node scripts/postinstall" + }, + "dependencies": { + "apollo": "^0.2.2", + "babel-plugin-inline-react-svg": "^0.4.0", + "babel-plugin-styled-components": "^1.1.4", + "constant-case": "^2.0.0", + "graphql-tag": "^2.0.0", + "joyent-ui-toolkit": "^1.0.2", + "normalized-styled-components": "^1.0.3", + "prop-types": "^15.5.10", + "react": "^15.5.4", + "react-apollo": "^1.2.0", + "react-dom": "^15.5.4", + "react-redux": "^5.0.4", + "react-router": "^4.1.1", + "react-router-dom": "^4.1.1", + "react-styled-flexboxgrid": "^1.1.2", + "redux": "^3.6.0", + "redux-actions": "^2.0.3", + "redux-form": "^6.7.0", + "remcalc": "^1.0.3", + "reselect": "^3.0.1", + "simple-statistics": "^4.1.0", + "styled-components": "^2.0.0-15", + "styled-is": "^1.0.5", + "unitcalc": "^1.0.3" + }, + "devDependencies": { + "babel-plugin-inline-react-svg": "^0.4.0", + "babel-plugin-styled-components": "^1.1.4", + "babel-preset-joyent-portal": "^1.0.0", + "cross-env": "^5.0.0", + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0", + "jest": "^20.0.3", + "jest-diff": "^20.0.3", + "jest-matcher-utils": "^20.0.3", + "jest-snapshot": "^20.0.3", + "jest-styled-components": "^2.0.0", + "npm-run-all": "^4.0.2", + "react-scripts": "^1.0.0", + "react-test-renderer": "^15.5.4", + "stylelint": "^7.10.1", + "stylelint-config-primer": "^1.4.0", + "stylelint-config-standard": "^16.0.0", + "stylelint-processor-styled-components": "^0.1.0" + } +} diff --git a/packages/cp-frontend/public/favicon.ico b/packages/cp-frontend/public/favicon.ico new file mode 100644 index 00000000..5c125de5 Binary files /dev/null and b/packages/cp-frontend/public/favicon.ico differ diff --git a/packages/cp-frontend/public/index.html b/packages/cp-frontend/public/index.html new file mode 100644 index 00000000..ce76aae9 --- /dev/null +++ b/packages/cp-frontend/public/index.html @@ -0,0 +1,12 @@ + + + + + + + React App + + +
+ + diff --git a/packages/cp-frontend/scripts/postinstall.js b/packages/cp-frontend/scripts/postinstall.js new file mode 100644 index 00000000..8c47c9a1 --- /dev/null +++ b/packages/cp-frontend/scripts/postinstall.js @@ -0,0 +1,39 @@ +const fs = require('fs'); +const path = require('path'); + +// TODO: this will need to happen for prod and test too +const configPath = path.join( + __dirname, + '../node_modules/react-scripts/config/webpack.config.dev.js' +); +const orignalConfigPath = path.join( + __dirname, + '../node_modules/react-scripts/config/webpack.config.dev.original.js' +); +const enhancedConfigPath = path.join(__dirname, './webpack.config.dev.js'); + +// bit of healthy callback hell for making it spicy +fs.readFile(configPath, (error, orignalConfig) => { + if (error) { + console.log('Original config read error', error); + } else { + fs.writeFile(orignalConfigPath, orignalConfig, error => { + if (error) { + console.log('Original config write error', error); + } else { + fs.readFile(enhancedConfigPath, (error, enhancedConfig) => { + if (error) { + console.log('Enhanced config read error', error); + } else { + fs.writeFile(configPath, enhancedConfig, error => { + if (error) { + console.log('Enhanced config write error', error); + } + }); + } + }); + } + }); + } +}); + diff --git a/packages/cp-frontend/scripts/webpack.config.dev.js b/packages/cp-frontend/scripts/webpack.config.dev.js new file mode 100644 index 00000000..dba4ec78 --- /dev/null +++ b/packages/cp-frontend/scripts/webpack.config.dev.js @@ -0,0 +1,64 @@ +const fs = require('fs'); +const path = require('path'); +const paths = require('./paths'); +const originalConfig = require('./webpack.config.dev.original'); + +const FRONTEND_ROOT = process.cwd(); +const FRONTEND = path.join(FRONTEND_ROOT, 'src'); +const STATIC = path.join(FRONTEND_ROOT, 'static'); +const ESLINT = path.join(FRONTEND_ROOT, '.eslintrc'); + +const rules = originalConfig.module.rules.reduce((loaders, loader, index) => { + if (index === 3) { + loaders.push({ + test: loader.test, + include: loader.include, + loader: loader.loader, + options: { + babelrc: true, + cacheDirectory: true + } + }); + } else if (index === 1) { + loaders.push({ + exclude: loader.exclude.concat([/\.(graphql|gql)$/]), + loader: loader.loader, + options: loader.options + }); + } else if (loader.include) { + loaders.push(Object.assign({}, loader, { include: loader.include })); + } else { + loaders.push(loader); + } + return loaders; +}, []); + +rules.push({ + test: /\.(graphql|gql)$/, + exclude: /node_modules/, + loader: require.resolve('graphql-tag/loader') +}); + +const aliases = Object.assign( + {}, + originalConfig.resolve.alias, + fs + .readdirSync(FRONTEND) + .map(name => path.join(FRONTEND, name)) + .filter(fullpath => fs.statSync(fullpath).isDirectory()) + .reduce( + (aliases, fullpath) => + Object.assign(aliases, { + [`@${path.basename(fullpath)}`]: fullpath + }), + { + '@root': FRONTEND + } + ) +); + +originalConfig.module.rules = rules; +originalConfig.resolve.alias = aliases; +originalConfig.resolve.plugins = []; + +module.exports = originalConfig; diff --git a/packages/cp-frontend/src/app.js b/packages/cp-frontend/src/app.js new file mode 100644 index 00000000..ad8b0ca7 --- /dev/null +++ b/packages/cp-frontend/src/app.js @@ -0,0 +1,31 @@ +import React, { Component } from 'react'; +import { Article } from 'normalized-styled-components'; +import { ThemeProvider, injectGlobal } from 'styled-components'; +import { theme, global } from 'joyent-ui-toolkit'; +import { ApolloProvider } from 'react-apollo'; + +import { client, store } from '@state/store'; +import Router from '@root/router'; + +class App extends Component { + componentWillMount() { + // eslint-disable-next-line no-unused-expressions + injectGlobal` + ${global} + `; + } + + render() { + return ( + + +
+ {Router} +
+
+
+ ); + } +} + +export default App; diff --git a/packages/cp-frontend/src/assets/triton_logo.png b/packages/cp-frontend/src/assets/triton_logo.png new file mode 100644 index 00000000..666fe0fe Binary files /dev/null and b/packages/cp-frontend/src/assets/triton_logo.png differ diff --git a/packages/cp-frontend/src/assets/triton_logo_dark.png b/packages/cp-frontend/src/assets/triton_logo_dark.png new file mode 100644 index 00000000..53aa24f8 Binary files /dev/null and b/packages/cp-frontend/src/assets/triton_logo_dark.png differ diff --git a/packages/cp-frontend/src/components/deployment-groups/empty.js b/packages/cp-frontend/src/components/deployment-groups/empty.js new file mode 100644 index 00000000..b95ad123 --- /dev/null +++ b/packages/cp-frontend/src/components/deployment-groups/empty.js @@ -0,0 +1,11 @@ +import React from 'react'; + +import { Col, Row } from 'react-styled-flexboxgrid'; + +export default () => ( + + +

you don't have any deployment groups

+ +
+); diff --git a/packages/cp-frontend/src/components/deployment-groups/index.js b/packages/cp-frontend/src/components/deployment-groups/index.js new file mode 100644 index 00000000..d7d458ff --- /dev/null +++ b/packages/cp-frontend/src/components/deployment-groups/index.js @@ -0,0 +1 @@ +export { default as EmptyDeployementGroups } from './empty'; diff --git a/packages/cp-frontend/src/components/instances/empty.js b/packages/cp-frontend/src/components/instances/empty.js new file mode 100644 index 00000000..f1ea081a --- /dev/null +++ b/packages/cp-frontend/src/components/instances/empty.js @@ -0,0 +1,12 @@ +import React from 'react'; + +import { Col, Row } from 'react-styled-flexboxgrid'; +import { P } from 'joyent-ui-toolkit'; + +export default () => ( + + +

You don't have any instances

+ +
+); diff --git a/packages/cp-frontend/src/components/instances/index.js b/packages/cp-frontend/src/components/instances/index.js new file mode 100644 index 00000000..f2137111 --- /dev/null +++ b/packages/cp-frontend/src/components/instances/index.js @@ -0,0 +1,2 @@ +export { default as EmptyInstances } from './empty'; +export { default as InstanceListItem } from './list-item'; diff --git a/packages/cp-frontend/src/components/instances/list-item.js b/packages/cp-frontend/src/components/instances/list-item.js new file mode 100644 index 00000000..7569d703 --- /dev/null +++ b/packages/cp-frontend/src/components/instances/list-item.js @@ -0,0 +1,33 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { + Card, + CardView, + CardMeta, + CardTitle, + CardOptions +} from 'joyent-ui-toolkit'; + +const InstanceCard = ({ + instance = {}, + onOptionsClick = () => null, + toggleCollapsed = () => null +}) => ( + + + + {instance.name} + + + + +); + +InstanceCard.propTypes = { + instance: PropTypes.object, + onOptionsClick: PropTypes.func, + toggleCollapsed: PropTypes.func +}; + +export default InstanceCard; diff --git a/packages/cp-frontend/src/components/layout/container.js b/packages/cp-frontend/src/components/layout/container.js new file mode 100644 index 00000000..7d3092df --- /dev/null +++ b/packages/cp-frontend/src/components/layout/container.js @@ -0,0 +1,12 @@ +import styled from 'styled-components'; +import { Grid } from 'react-styled-flexboxgrid'; + +import { breakpoints } from 'joyent-ui-toolkit'; + +export default styled(Grid)` + padding: 2rem; + + ${breakpoints.large` + padding: 0; + `} +`; diff --git a/packages/cp-frontend/src/components/layout/index.js b/packages/cp-frontend/src/components/layout/index.js new file mode 100644 index 00000000..d0d40032 --- /dev/null +++ b/packages/cp-frontend/src/components/layout/index.js @@ -0,0 +1 @@ +export { default as LayoutContainer } from './container'; diff --git a/packages/cp-frontend/src/components/messaging/error.js b/packages/cp-frontend/src/components/messaging/error.js new file mode 100644 index 00000000..75a55f01 --- /dev/null +++ b/packages/cp-frontend/src/components/messaging/error.js @@ -0,0 +1,14 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { P } from 'joyent-ui-toolkit'; + +const ErrorMessage = ({ message = "Ooops, there's been an error!!!" }) => { + return

{message}

; +}; + +ErrorMessage.propTypes = { + message: PropTypes.string +}; + +export default ErrorMessage; diff --git a/packages/cp-frontend/src/components/messaging/index.js b/packages/cp-frontend/src/components/messaging/index.js new file mode 100644 index 00000000..6fe4ab69 --- /dev/null +++ b/packages/cp-frontend/src/components/messaging/index.js @@ -0,0 +1,2 @@ +export { default as Loader } from './loader'; +export { default as ErrorMessage } from './error'; diff --git a/packages/cp-frontend/src/components/messaging/loader.js b/packages/cp-frontend/src/components/messaging/loader.js new file mode 100644 index 00000000..56b39190 --- /dev/null +++ b/packages/cp-frontend/src/components/messaging/loader.js @@ -0,0 +1,7 @@ +import React from 'react'; + +import { P } from 'joyent-ui-toolkit'; + +export default () => { + return

Loading...

; +}; diff --git a/packages/cp-frontend/src/components/navigation/breadcrumb.js b/packages/cp-frontend/src/components/navigation/breadcrumb.js new file mode 100644 index 00000000..76032c90 --- /dev/null +++ b/packages/cp-frontend/src/components/navigation/breadcrumb.js @@ -0,0 +1,73 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import { Link } from 'react-router-dom'; +import { Grid, Col, Row } from 'react-styled-flexboxgrid'; +import remcalc from 'remcalc'; +import unitcalc from 'unitcalc'; + +import { H2 } from 'joyent-ui-toolkit'; + +const StyledDiv = styled.div` + border-bottom: solid ${remcalc(1)} ${props => props.theme.grey}; + padding: ${unitcalc(4.5)} 0 ${unitcalc(4.5)} 0; + margin-bottom: ${remcalc(18)}; +`; + +const StyledH2 = styled(H2)` + color: ${props => props.theme.primary}; + margin: 0; +`; + +const BreadcrumbLink = styled(Link)` + text-decoration: none; + color: ${props => props.theme.primary}; +`; + +const BreadcrumbSpan = styled.span` + color: ${props => props.theme.text}; +`; + +function getBreadcrumbLinks(links) { + if (links.length) { + return links.reduce((breadcrumb, link, index) => { + if (breadcrumb.length) { + breadcrumb.push( + / + ); + } + breadcrumb.push( + + {link.name} + + ); + return breadcrumb; + }, []); + } + return null; +} + +const Breadcrumb = ({ links = [] }) => ( + + + + + + {getBreadcrumbLinks(links)} + + + + + +); + +Breadcrumb.propTypes = { + links: PropTypes.arrayOf( + PropTypes.shape({ + name: PropTypes.string, + pathname: PropTypes.string + }) + ) +}; + +export default Breadcrumb; diff --git a/packages/cp-frontend/src/components/navigation/header.js b/packages/cp-frontend/src/components/navigation/header.js new file mode 100644 index 00000000..6bc50e7a --- /dev/null +++ b/packages/cp-frontend/src/components/navigation/header.js @@ -0,0 +1,31 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; +import { Img } from 'normalized-styled-components'; +import styled from 'styled-components'; +import remcalc from 'remcalc'; +import unitcalc from 'unitcalc'; + +import Logo from '@assets/triton_logo.png'; +import { Col, Row } from 'react-styled-flexboxgrid'; + +const StyledHeader = styled.div` + background-color: ${props => props.theme.primaryDarkBrand}; + padding: ${unitcalc(2.5)} ${unitcalc(3)} ${unitcalc(2)} ${unitcalc(3)}; +`; + +const StyledLogo = styled(Img)` + width: ${remcalc(87)}; + height: ${remcalc(25)}; +`; + +export default () => ( + + + + + + + + + +); diff --git a/packages/cp-frontend/src/components/navigation/index.js b/packages/cp-frontend/src/components/navigation/index.js new file mode 100644 index 00000000..d5cc1a4d --- /dev/null +++ b/packages/cp-frontend/src/components/navigation/index.js @@ -0,0 +1,3 @@ +export { default as Breadcrumb } from './breadcrumb'; +export { default as Menu } from './menu'; +export { default as Header } from './header'; diff --git a/packages/cp-frontend/src/components/navigation/menu.js b/packages/cp-frontend/src/components/navigation/menu.js new file mode 100644 index 00000000..1cd0c966 --- /dev/null +++ b/packages/cp-frontend/src/components/navigation/menu.js @@ -0,0 +1,55 @@ +// TODO need to sort out navlinks + +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +import { NavLink } from 'react-router-dom'; +import remcalc from 'remcalc'; + +import { breakpoints, Ul, Li } from 'joyent-ui-toolkit'; +import { LayoutContainer } from '@components/layout'; + +const StyledHorizontalList = styled(Ul)` + padding: 0; +`; + +const StyledHorizontalListItem = styled(Li)` + ${breakpoints.smallOnly` + display: block; + `} + + & + li { + margin-left: ${remcalc(21)}; + } +`; + +const Menu = ({ links }) => { + const navLinks = links.map(link => { + return ( + + + {link.name} + + + ); + }); + + return ( + + + {navLinks} + + + ); +}; + +Menu.propTypes = { + links: PropTypes.arrayOf( + PropTypes.shape({ + name: PropTypes.string, + pathname: PropTypes.string + }) + ) +}; + +export default Menu; diff --git a/packages/cp-frontend/src/components/services/empty.js b/packages/cp-frontend/src/components/services/empty.js new file mode 100644 index 00000000..4a290be6 --- /dev/null +++ b/packages/cp-frontend/src/components/services/empty.js @@ -0,0 +1,57 @@ +import React from 'react'; +import styled from 'styled-components'; +import remcalc from 'remcalc'; + +import { LayoutContainer } from '@components/layout'; +import { Col, Row } from 'react-styled-flexboxgrid'; +import { Button, P, H2, H3 } from 'joyent-ui-toolkit'; + +const StyledBox = styled.div` + box-shadow: 0 2px 0 0 rgba(0, 0, 0, 0.05); + border: solid 1px #d8d8d8; + padding: ${remcalc('6 18 24')}; + + & + & { + margin-top: ${remcalc(24)}; + } +`; + +export default () => ( + + + +

Services

+ + + + + +

Import your services

+

+ You can import your services from a Git repository hosting service. Learn more. +

+ + + + +
+
+ + + + +

Alternatively, you can upload or edit manifest file.

+

+ Manifest is a file describing your services. It is similar to Docker Compose file. You can upload a file from you local machine or edit it manually. Learn more. +

+ + + +
+
+ +
+ +
+
+); diff --git a/packages/cp-frontend/src/components/services/index.js b/packages/cp-frontend/src/components/services/index.js new file mode 100644 index 00000000..b68cb6a3 --- /dev/null +++ b/packages/cp-frontend/src/components/services/index.js @@ -0,0 +1,3 @@ +export { default as EmptyServices } from './empty'; +export { default as ServiceListItem } from './list-item'; +export { default as ServicesTooltip } from './tooltip'; diff --git a/packages/cp-frontend/src/components/services/list-item.js b/packages/cp-frontend/src/components/services/list-item.js new file mode 100644 index 00000000..d674d361 --- /dev/null +++ b/packages/cp-frontend/src/components/services/list-item.js @@ -0,0 +1,125 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import styled from 'styled-components'; +// import forceArray from 'force-array'; + +// import ItemMetricGroup from '@components/item-metric-group'; +import { + Card, + CardView, + CardMeta, + CardTitle, + CardSubTitle, + CardDescription, + CardGroupView, + CardOptions, + CardHeader, + // CardInfo, + Anchor + // DataCentersIcon, + // HealthyIcon, + // InstancesMultipleIcon +} from 'joyent-ui-toolkit'; + +const TitleInnerContainer = styled.div` + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +`; + +const ServiceListItem = ({ + // onQuickActions=() => {}, + deploymentGroup = '', + service = {} +}) => { + const isChild = Boolean(service.parent); + + const children = service.children + ? service.children.map(service => ( + + )) + : null; + + const to = `/deployment-groups/${deploymentGroup}/services/${service.slug}`; + + const title = service.parent + ? + {service.name} + + : + + + {service.name} + + + ; + + const subtitle = {service.instances} instances; + + const onOptionsClick = evt => { + // onQuickActions(evt, service.uuid); + }; + + const header = isChild + ? null + : + + {title} + + {/* } + iconPosition="top" + label={`${service.instances} ${service.instances > 1 ? 'instances' : 'instance'}`} + /> */} + {/* } + label={service.datacenters[0].id} + /> */} + + + + ; + + const view = children + ? + {children} + + : + + {isChild && title} + {isChild && subtitle} + + {/* } label="Healthy" /> */} + + + {/* */} + ; + + return ( + 1} + > + {header} + {view} + + ); +}; + +ServiceListItem.propTypes = { + // onQuickActions: PropTypes.func, + deploymentGroup: PropTypes.string, + service: PropTypes.object.isRequired // define better +}; + +export default ServiceListItem; diff --git a/packages/cp-frontend/src/components/services/tooltip.js b/packages/cp-frontend/src/components/services/tooltip.js new file mode 100644 index 00000000..2725b05e --- /dev/null +++ b/packages/cp-frontend/src/components/services/tooltip.js @@ -0,0 +1,41 @@ +// import React from 'react'; +import PropTypes from 'prop-types'; + +// import Tooltip, { TooltipButton, TooltipDivider } from 'joyent-ui-toolkit'; + +const ServicesTooltip = ({ show, position, data, ...rest }) => { + if (!show) { + return null; + } + + return null; + + // return ( + // + //
  • + // Scale + //
  • + //
  • + // Start + //
  • + //
  • + // Restart + //
  • + // + //
  • + // Stop + //
  • + //
  • + // Delete + //
  • + //
    + // ); +}; + +ServicesTooltip.propTypes = { + data: PropTypes.object, + position: PropTypes.object, + show: PropTypes.bool +}; + +export default ServicesTooltip; diff --git a/packages/cp-frontend/src/containers/deployment-groups/index.js b/packages/cp-frontend/src/containers/deployment-groups/index.js new file mode 100644 index 00000000..b56566c6 --- /dev/null +++ b/packages/cp-frontend/src/containers/deployment-groups/index.js @@ -0,0 +1 @@ +export { default as DeploymentGroupList } from './list'; diff --git a/packages/cp-frontend/src/containers/deployment-groups/list.js b/packages/cp-frontend/src/containers/deployment-groups/list.js new file mode 100644 index 00000000..54c6364a --- /dev/null +++ b/packages/cp-frontend/src/containers/deployment-groups/list.js @@ -0,0 +1,93 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { graphql } from 'react-apollo'; +import { Link } from 'react-router-dom'; +import DeploymentGroupsQuery from '@graphql/DeploymentGroups.gql'; +import { Col, Row } from 'react-styled-flexboxgrid'; + +import { LayoutContainer } from '@components/layout'; +import { Loader, ErrorMessage } from '@components/messaging'; +import { EmptyDeployementGroups } from '@components/deployment-groups'; +import { Button } from 'joyent-ui-toolkit'; + +const DeploymentGroupList = ({ + location, + deploymentGroups, + loading, + error +}) => { + if (loading) { + return ( + + + + ); + } else if (error) { + return ( + + + + ); + } + + let emptyDeployementGroups = null; + let deploymentGroupList = null; + + if (deploymentGroups.length) { + const list = deploymentGroups.map((deploymentGroup, index) => { + return ( +

    + + {deploymentGroup.name} + +

    + ); + }); + + deploymentGroupList = ( + + +
      + {list} +
    + +
    + ); + } else { + emptyDeployementGroups = ; + } + + return ( + + {emptyDeployementGroups} + + + + + + {deploymentGroupList} + + ); +}; + +DeploymentGroupList.propTypes = { + deploymentGroups: PropTypes.arrayOf( + PropTypes.shape({ + uuid: PropTypes.string, + id: PropTypes.string, + name: PropTypes.string + }) + ) +}; + +const DeploymentGroupListWithData = graphql(DeploymentGroupsQuery, { + props: ({ data: { deploymentGroups, loading, error } }) => ({ + deploymentGroups, + loading, + error + }) +})(DeploymentGroupList); + +export default DeploymentGroupListWithData; diff --git a/packages/cp-frontend/src/containers/instances/index.js b/packages/cp-frontend/src/containers/instances/index.js new file mode 100644 index 00000000..df3e4f6f --- /dev/null +++ b/packages/cp-frontend/src/containers/instances/index.js @@ -0,0 +1 @@ +export { default as InstanceList } from './list'; diff --git a/packages/cp-frontend/src/containers/instances/list.js b/packages/cp-frontend/src/containers/instances/list.js new file mode 100644 index 00000000..ae307ba5 --- /dev/null +++ b/packages/cp-frontend/src/containers/instances/list.js @@ -0,0 +1,80 @@ +import React, { Component } from 'react'; +// import PropTypes from 'prop-types'; +import { compose, graphql } from 'react-apollo'; +import PortalQuery from '@graphql/Portal.gql'; +import InstancesQuery from '@graphql/Instances.gql'; + +import { LayoutContainer } from '@components/layout'; +import { Loader, ErrorMessage } from '@components/messaging'; +import { InstanceListItem, EmptyInstances } from '@components/instances'; + +class InstanceList extends Component { + render() { + const { instances, loading, error } = this.props; + console.log('instances = ', instances); + console.log('loading = ', loading); + console.log('error = ', error); + if (loading) { + return ( + + + + ); + } else if (error) { + return ( + + + + ); + } + + const instanceList = instances + ? instances.map((instance, index) => ( + null} + /> + )) + : ; + + return ( + +
    +

    Instance List

    +
    + {instanceList} +
    + ); + } +} + +const PortalGql = graphql(PortalQuery, {}); + +const InstanceListGql = graphql(InstancesQuery, { + options(props) { + const params = props.match.params; + const deploymentGroupSlug = params.deploymentGroup; + const serviceSlug = params.service; + return { + variables: { + deploymentGroupSlug, + serviceSlug + } + }; + }, + props: ({ data: { deploymentGroup, loading, error } }) => ({ + instances: deploymentGroup && deploymentGroup.services + ? deploymentGroup.services.reduce( + (instances, service) => instances.concat(service.instances), + [] + ) + : null, + loading, + error + }) +}); + +const InstanceListWithData = compose(PortalGql, InstanceListGql)(InstanceList); + +export default InstanceListWithData; diff --git a/packages/cp-frontend/src/containers/navigation/breadcrumb.js b/packages/cp-frontend/src/containers/navigation/breadcrumb.js new file mode 100644 index 00000000..d8f60479 --- /dev/null +++ b/packages/cp-frontend/src/containers/navigation/breadcrumb.js @@ -0,0 +1,52 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { Breadcrumb as BreadcrumbComponent } from '@components/navigation'; +import { + deploymentGroupBySlugSelector, + serviceBySlugSelector +} from '@root/state/selectors'; + +const Breadcrumb = ({ deploymentGroup, service, location }) => { + const path = location.pathname.split('/'); + + const links = [ + { + name: 'Dashboard', + pathname: '/' + } + ]; + + if (deploymentGroup) { + links.push({ + name: deploymentGroup.name, + pathname: path.slice(0, 3).join('/') + }); + } + + if (service) { + links.push({ + name: service.name, + pathname: path.slice(0, 5).join('/') + }); + } + + return ; +}; + +const ConnectedBreadcrumb = connect( + (state, ownProps) => { + const params = ownProps.match.params; + const deploymentGroupSlug = params.deploymentGroup; + const serviceSlug = params.service; + return { + deploymentGroup: deploymentGroupBySlugSelector(deploymentGroupSlug)( + state + ), + service: serviceBySlugSelector(serviceSlug)(state), + location: ownProps.location + }; + }, + dispatch => ({}) +)(Breadcrumb); + +export default ConnectedBreadcrumb; diff --git a/packages/cp-frontend/src/containers/navigation/index.js b/packages/cp-frontend/src/containers/navigation/index.js new file mode 100644 index 00000000..4e5c76e1 --- /dev/null +++ b/packages/cp-frontend/src/containers/navigation/index.js @@ -0,0 +1,2 @@ +export { default as Breadcrumb } from './breadcrumb'; +export { default as Menu } from './menu'; diff --git a/packages/cp-frontend/src/containers/navigation/menu.js b/packages/cp-frontend/src/containers/navigation/menu.js new file mode 100644 index 00000000..47cfc70f --- /dev/null +++ b/packages/cp-frontend/src/containers/navigation/menu.js @@ -0,0 +1,28 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { Menu as MenuComponent } from '@components/navigation'; + +const Menu = ({ sections, matchUrl }) => { + return ; +}; + +const ConnectedMenu = connect( + (state, ownProps) => { + const params = ownProps.match.params; + const matchUrl = ownProps.match.url; + const deploymentGroupSlug = params.deploymentGroup; + const serviceSlug = params.service; + + const sections = serviceSlug + ? state.ui.sections.services + : deploymentGroupSlug ? state.ui.sections.deploymentGroups : null; + + return { + sections, + matchUrl + }; + }, + dispatch => ({}) +)(Menu); + +export default ConnectedMenu; diff --git a/packages/cp-frontend/src/containers/service/index.js b/packages/cp-frontend/src/containers/service/index.js new file mode 100644 index 00000000..e69de29b diff --git a/packages/cp-frontend/src/containers/services/index.js b/packages/cp-frontend/src/containers/services/index.js new file mode 100644 index 00000000..ca469cb3 --- /dev/null +++ b/packages/cp-frontend/src/containers/services/index.js @@ -0,0 +1,3 @@ +export { default as ServiceList } from './list'; +export { default as ServicesTopology } from './topology'; +export { default as ServicesMenu } from './menu'; diff --git a/packages/cp-frontend/src/containers/services/list.js b/packages/cp-frontend/src/containers/services/list.js new file mode 100644 index 00000000..7e76fbbe --- /dev/null +++ b/packages/cp-frontend/src/containers/services/list.js @@ -0,0 +1,83 @@ +import React, { Component } from 'react'; +import { compose, graphql } from 'react-apollo'; +// import { connect } from 'react-redux'; +import styled from 'styled-components'; +// import { Link } from 'react-router-dom'; +import PortalQuery from '@graphql/Portal.gql'; +import ServicesQuery from '@graphql/Services.gql'; + +import { processServices } from '@root/state/selectors'; + +import { LayoutContainer } from '@components/layout'; +import { Loader, ErrorMessage } from '@components/messaging'; +import { ServiceListItem } from '@components/services'; + +const StyledContainer = styled.div` + position: relative; +`; + +class ServiceList extends Component { + render() { + const { deploymentGroup, services, loading, error } = this.props; + + if (loading) { + return ( + + + + ); + } else if (error) { + return ( + + + + ); + } + + const serviceList = services.map(service => ( + + )); + + return ( + + +
    + {/*
    */} + {serviceList} + {/* */} +
    + + + ); + } +} + +const PortalGql = graphql(PortalQuery, {}); + +const ServicesGql = graphql(ServicesQuery, { + options(props) { + return { + variables: { + deploymentGroupSlug: props.match.params.deploymentGroup + } + }; + }, + props: ({ data: { deploymentGroup, loading, error } }) => ({ + deploymentGroup, + services: deploymentGroup + ? processServices(deploymentGroup.services, null) + : null, + loading, + error + }) +}); + +const ServiceListWithData = compose(PortalGql, ServicesGql)(ServiceList); + +export default ServiceListWithData; diff --git a/packages/cp-frontend/src/containers/services/menu.js b/packages/cp-frontend/src/containers/services/menu.js new file mode 100644 index 00000000..d89f3607 --- /dev/null +++ b/packages/cp-frontend/src/containers/services/menu.js @@ -0,0 +1,100 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +// import { connect } from 'react-redux'; +import { Col, Row } from 'react-styled-flexboxgrid'; +import styled from 'styled-components'; +import remcalc from 'remcalc'; +import unitcalc from 'unitcalc'; + +import { LayoutContainer } from '@components/layout'; +// import { EmptyServices } from '@components/services'; +import { + Button, + H2, + FormGroup, + Input, + Toggle, + ToggleList, + Legend +} from 'joyent-ui-toolkit'; + +// import { servicesForTopologySelector } from '@state/selectors'; + +const StyledLegend = styled(Legend)` + float: left; + padding-top: ${unitcalc(2)}; + margin-right: ${unitcalc(1.5)}; +`; + +const PaddedRow = styled(Row)` + margin-bottom: ${remcalc(18)} +`; + +const StyledForm = styled(FormGroup)` + width: 60%; + float: left; + margin: 0; +`; + +// const StyledButton = styled(Button)` +// margin-left: ${remcalc(48)}; +// `; + +const StyledFilter = styled(Input)` + margin: 0; +`; + +const handleAddService = () => console.log('Adding a service...'); + +const ServicesMenu = ({ location, history: { push } }) => { + /* If(!services || !services.length) { + return ( + + ); + } */ + + const toggleValue = location.pathname.split('-').pop(); + + const handleToggle = evt => { + const value = evt.target.value; + if (value !== toggleValue) { + const index = location.pathname.lastIndexOf('-'); + const path = `${location.pathname.slice(0, index)}-${value}`; + push(path); + } + }; + + return ( + +

    Services

    + + + + View + + Topology + List + + + + + + + + + + + + +
    + ); +}; + +ServicesMenu.propTypes = { + location: PropTypes.object.isRequired, + history: PropTypes.object.isRequired +}; + +export default ServicesMenu; diff --git a/packages/cp-frontend/src/containers/services/topology.js b/packages/cp-frontend/src/containers/services/topology.js new file mode 100644 index 00000000..f4f9c87f --- /dev/null +++ b/packages/cp-frontend/src/containers/services/topology.js @@ -0,0 +1,76 @@ +import React from 'react'; +import { compose, graphql } from 'react-apollo'; +// import { connect } from 'react-redux'; +import styled from 'styled-components'; +import PortalQuery from '@graphql/Portal.gql'; +import ServicesQuery from '@graphql/ServicesTopology.gql'; +import unitcalc from 'unitcalc'; + +import { processServices } from '@root/state/selectors'; + +import { LayoutContainer } from '@components/layout'; +import { Loader, ErrorMessage } from '@components/messaging'; +// import { ServicesTooltip } from '@components/services'; + +/* import { Topology } from 'joyent-ui-toolkit'; */ +/*import ServicesTooltip from '@components/services/tooltip'; + +import { toggleTooltip } from '@state/actions';*/ + +const StyledBackground = styled.div` + background-color: ${props => props.theme.whiteActive}; +`; + +const StyledContainer = styled.div` + position: relative; + padding: ${unitcalc(4)}; +`; + +const ServicesTopology = ({ push, services, datacenter, loading, error }) => { + if (loading) { + return ( + + + + ); + } else if (error) { + return ( + + + + ); + } + + return ( + + + {/* */} + + + ); +}; + +const PortalGql = graphql(PortalQuery, {}); + +const ServicesGql = graphql(ServicesQuery, { + options(props) { + return { + variables: { + deploymentGroupSlug: props.match.params.deploymentGroup + } + }; + }, + props: ({ data: { deploymentGroup, loading, error } }) => ({ + services: deploymentGroup + ? processServices(deploymentGroup.services, null) + : null, + loading, + error + }) +}); + +const ServicesTopologyWithData = compose(PortalGql, ServicesGql)( + ServicesTopology +); + +export default ServicesTopologyWithData; diff --git a/packages/cp-frontend/src/graphql/DeploymentGroupInfo.gql b/packages/cp-frontend/src/graphql/DeploymentGroupInfo.gql new file mode 100644 index 00000000..93df779f --- /dev/null +++ b/packages/cp-frontend/src/graphql/DeploymentGroupInfo.gql @@ -0,0 +1,5 @@ +fragment DeploymentGroupInfo on DeploymentGroup { + uuid + name + slug +} diff --git a/packages/cp-frontend/src/graphql/DeploymentGroups.gql b/packages/cp-frontend/src/graphql/DeploymentGroups.gql new file mode 100644 index 00000000..5b02e15d --- /dev/null +++ b/packages/cp-frontend/src/graphql/DeploymentGroups.gql @@ -0,0 +1,7 @@ +#import "./DeploymentGroupInfo.gql" + +query DeploymentGroups { + deploymentGroups { + ...DeploymentGroupInfo + } +} diff --git a/packages/cp-frontend/src/graphql/Instances.gql b/packages/cp-frontend/src/graphql/Instances.gql new file mode 100644 index 00000000..923e1520 --- /dev/null +++ b/packages/cp-frontend/src/graphql/Instances.gql @@ -0,0 +1,15 @@ +#import "./DeploymentGroupInfo.gql" +#import "./ServiceInfo.gql" + +query Instances($deploymentGroupSlug: String!, $serviceSlug: String) { + deploymentGroup(slug: $deploymentGroupSlug) { + ...DeploymentGroupInfo + services(slug: $serviceSlug) { + ...ServiceInfo + instances { + uuid + name + } + } + } +} diff --git a/packages/cp-frontend/src/graphql/Portal.gql b/packages/cp-frontend/src/graphql/Portal.gql new file mode 100644 index 00000000..9918426c --- /dev/null +++ b/packages/cp-frontend/src/graphql/Portal.gql @@ -0,0 +1,9 @@ +query Portal { + portal { + username + datacenter { + uuid + region + } + } +} diff --git a/packages/cp-frontend/src/graphql/ServiceInfo.gql b/packages/cp-frontend/src/graphql/ServiceInfo.gql new file mode 100644 index 00000000..0a1d01ef --- /dev/null +++ b/packages/cp-frontend/src/graphql/ServiceInfo.gql @@ -0,0 +1,5 @@ +fragment ServiceInfo on Service { + uuid + name + slug +} diff --git a/packages/cp-frontend/src/graphql/Services.gql b/packages/cp-frontend/src/graphql/Services.gql new file mode 100644 index 00000000..4fe85705 --- /dev/null +++ b/packages/cp-frontend/src/graphql/Services.gql @@ -0,0 +1,15 @@ +#import "./DeploymentGroupInfo.gql" +#import "./ServiceInfo.gql" + +query Services($deploymentGroupSlug: String!){ + deploymentGroup(slug: $deploymentGroupSlug) { + ...DeploymentGroupInfo + services { + ...ServiceInfo + parent + instances { + uuid + } + } + } +} diff --git a/packages/cp-frontend/src/graphql/ServicesTopology.gql b/packages/cp-frontend/src/graphql/ServicesTopology.gql new file mode 100644 index 00000000..1f46b9c5 --- /dev/null +++ b/packages/cp-frontend/src/graphql/ServicesTopology.gql @@ -0,0 +1,16 @@ +#import "./DeploymentGroupInfo.gql" +#import "./ServiceInfo.gql" + +query Instances($deploymentGroupSlug: String!){ + deploymentGroup(slug: $deploymentGroupSlug) { + ...DeploymentGroupInfo + services { + ...ServiceInfo + parent + connections + instances { + uuid + } + } + } +} diff --git a/packages/cp-frontend/src/graphql/SingleMetrics.gql b/packages/cp-frontend/src/graphql/SingleMetrics.gql new file mode 100644 index 00000000..2eec5a72 --- /dev/null +++ b/packages/cp-frontend/src/graphql/SingleMetrics.gql @@ -0,0 +1,13 @@ +query SingleMetrics { + instanceMetric { + type { + uuid + name + machineId + } + data { + timestamp + value + } + } +} diff --git a/packages/cp-frontend/src/index.js b/packages/cp-frontend/src/index.js new file mode 100644 index 00000000..968445cc --- /dev/null +++ b/packages/cp-frontend/src/index.js @@ -0,0 +1,5 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './app'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/packages/cp-frontend/src/router.js b/packages/cp-frontend/src/router.js new file mode 100644 index 00000000..93f098ab --- /dev/null +++ b/packages/cp-frontend/src/router.js @@ -0,0 +1,111 @@ +import React from 'react'; +import { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom'; + +import { Header } from '@components/navigation'; + +import { Breadcrumb, Menu } from '@containers/navigation'; + +import { DeploymentGroupList } from '@containers/deployment-groups'; +import { + ServiceList, + ServicesTopology, + ServicesMenu +} from '@containers/services'; +import { InstanceList } from '@containers/instances'; + +const rootRedirect = p => ; + +const deploymentGroupRedirect = p => ( + +); + +const serviceRedirect = p => ( + +); + +const Router = ( + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +); + +export default Router; diff --git a/packages/cp-frontend/src/state/actions.js b/packages/cp-frontend/src/state/actions.js new file mode 100644 index 00000000..05a974e9 --- /dev/null +++ b/packages/cp-frontend/src/state/actions.js @@ -0,0 +1,8 @@ +import constantCase from 'constant-case'; +import { createAction } from 'redux-actions'; + +const APP = constantCase(process.env.APP_NAME); + +/******************************* UI *******************************/ + +export const addMemberToProject = createAction(`${APP}/PROJECT_ADD_MEMBER`); diff --git a/packages/cp-frontend/src/state/reducers/index.js b/packages/cp-frontend/src/state/reducers/index.js new file mode 100644 index 00000000..e69de29b diff --git a/packages/cp-frontend/src/state/selectors.js b/packages/cp-frontend/src/state/selectors.js new file mode 100644 index 00000000..cbcfef34 --- /dev/null +++ b/packages/cp-frontend/src/state/selectors.js @@ -0,0 +1,84 @@ +import { createSelector } from 'reselect'; + +const apollo = state => state.apollo; + +// redux selectors // + +const deploymentGroupBySlug = deploymentGroupSlug => + createSelector( + [apollo], + apollo => + apollo && apollo.data + ? Object.keys(apollo.data).reduce( + (dg, k) => + apollo.data[k].__typename === 'DeploymentGroup' && + apollo.data[k].slug === deploymentGroupSlug + ? apollo.data[k] + : dg, + null + ) + : null + ); + +const serviceBySlug = serviceSlug => + createSelector( + [apollo], + apollo => + apollo && apollo.data + ? Object.keys(apollo.data).reduce( + (s, k) => + apollo.data[k].__typename === 'Service' && + apollo.data[k].slug === serviceSlug + ? apollo.data[k] + : s, + null + ) + : null + ); + +// apollo gql utils // + +const findService = (services, uuid) => + services.reduce((service, s) => (s.uuid === uuid ? s : service), null); + +const getService = (service, index, datacenter) => ({ + index, + ...service, + // tmp for topology + metrics: [1, 2, 3].map(m => ({ + name: `${m}`, + value: `${m}` + })), + instances: service.instances.length, + datacenter +}); + +const processServices = (services, datacenter) => { + console.log('services = ', services); + return services.reduce((ss, s, i) => { + // check whether it exits in thing, if so, add as child + // if not, create and add as child + + if (s.parent) { + let parent = findService(ss, s.parent); + if (!parent) { + parent = { uuid: s.parent }; + ss.push(parent); + } + if (!parent.children) { + parent.children = []; + } + parent.children.push(getService(s, i, datacenter)); + } + if (!s.parent) { + ss.push(getService(s, i, datacenter)); + } + return ss; + }, []); +}; + +export { + deploymentGroupBySlug as deploymentGroupBySlugSelector, + serviceBySlug as serviceBySlugSelector, + processServices +}; diff --git a/packages/cp-frontend/src/state/state.js b/packages/cp-frontend/src/state/state.js new file mode 100644 index 00000000..96fa30a6 --- /dev/null +++ b/packages/cp-frontend/src/state/state.js @@ -0,0 +1,28 @@ +const state = { + ui: { + sections: { + deploymentGroups: [ + { + pathname: 'services', + name: 'Services' + }, + { + pathname: 'instances', + name: 'Instances' + }, + { + pathname: 'manifest', + name: 'Manifest' + } + ], + services: [ + { + pathname: 'instances', + name: 'Instances' + } + ] + } + } +}; + +export default state; diff --git a/packages/cp-frontend/src/state/store.js b/packages/cp-frontend/src/state/store.js new file mode 100644 index 00000000..c35eee2b --- /dev/null +++ b/packages/cp-frontend/src/state/store.js @@ -0,0 +1,39 @@ +import { createStore, combineReducers, applyMiddleware, compose } from 'redux'; +import { ApolloClient, createNetworkInterface } from 'react-apollo'; +import state from './state'; + +export const client = new ApolloClient({ + dataIdFromObject: o => { + const id = o.slug + ? o.slug + : o.id + ? o.id + : o.uuid + ? o.uuid + : o.timestamp + ? o.timestamp + : o.name ? o.name : 'apollo-cache-key-not-defined'; + return `${o.__typename}:${id}`; + }, + networkInterface: createNetworkInterface({ + uri: 'http://0.0.0.0:3000/graphql' + }) +}); + +export const store = createStore( + combineReducers({ + ui: s => { + return s ? s : state.ui; + }, + apollo: client.reducer() + }), + {}, // initial state + compose( + applyMiddleware(client.middleware()), + // If you are using the devToolsExtension, you can add it here also + // eslint-disable-next-line no-negated-condition + typeof window.__REDUX_DEVTOOLS_EXTENSION__ !== 'undefined' + ? window.__REDUX_DEVTOOLS_EXTENSION__() + : f => f + ) +); diff --git a/packages/cp-frontend/yarn.lock b/packages/cp-frontend/yarn.lock new file mode 100644 index 00000000..e6d0ebf9 --- /dev/null +++ b/packages/cp-frontend/yarn.lock @@ -0,0 +1,7176 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@timer/detect-port@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@timer/detect-port/-/detect-port-1.1.3.tgz#1383abd67f9a5d683df5276f8a92d60bdf9abb90" + dependencies: + address "^1.0.1" + debug "^2.6.0" + +"@types/async@^2.0.31": + version "2.0.40" + resolved "https://registry.yarnpkg.com/@types/async/-/async-2.0.40.tgz#ac02de68e66c004a61b7cb16df8b1db3a254cca9" + +"@types/graphql@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.9.1.tgz#b04ebe84bc997cc60dbea2ed4d0d4342c737f99d" + +"@types/isomorphic-fetch@0.0.34": + version "0.0.34" + resolved "https://registry.yarnpkg.com/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.34.tgz#3c3483e606c041378438e951464f00e4e60706d6" + +JSONStream@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + +abab@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +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-globals@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" + dependencies: + acorn "^4.0.4" + +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, acorn@^4.0.4: + 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" + +address@1.0.1, address@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.1.tgz#363f5d3f2be26d0655d8afd5a9562e4fc2194537" + +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.11.2, 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" + +ajv@^5.0.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.1.3.tgz#423d1c302c61e617081b30ca05f595ec51408e33" + 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" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +anser@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.2.5.tgz#5dcfc956eaa373b9c23010dd20dabec2ce19475b" + +anser@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anser/-/anser-1.3.0.tgz#65b42f01119edb5a2fc8ea6f0892274cbcbec6b1" + +ansi-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" + dependencies: + string-width "^1.0.1" + +ansi-escapes@^1.1.0, ansi-escapes@^1.4.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, ansi-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +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.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.0.0.tgz#5404e93a544c4fec7f048262977bebfe3155e0c1" + dependencies: + color-convert "^1.0.0" + +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" + +apollo-client@^1.1.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/apollo-client/-/apollo-client-1.2.2.tgz#5ec656bf19197ebd77156c58d2e0e765bef648a7" + dependencies: + graphql "^0.9.3" + graphql-anywhere "^3.0.1" + graphql-tag "^2.0.0" + redux "^3.4.0" + symbol-observable "^1.0.2" + whatwg-fetch "^2.0.0" + optionalDependencies: + "@types/async" "^2.0.31" + "@types/graphql" "^0.9.0" + "@types/isomorphic-fetch" "0.0.34" + +apollo@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/apollo/-/apollo-0.2.2.tgz#e409f53765bbf98efa3d127a2789c63bccd025d6" + dependencies: + breeze-async "0.1.0" + breeze-nexttick "0.1.0" + breeze-queue "0.2.0" + drip "1.1.0" + facet "0.3.0" + gaia-hash "0.1.1" + sherlock "1.0.0" + tea-extend "0.2.0" + tea-inherits "0.1.0" + tea-type "0.1.0" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + +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" + +aria-query@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.5.0.tgz#85e3152cd8cc5bab18dbed61cd9c4fce54fa79c3" + dependencies: + ast-types-flow "0.0.7" + +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-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +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, arrify@^1.0.1: + 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-flow@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.1.2, async@^2.1.4: + version "2.4.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7" + 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" + +atob@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + +autoprefixer@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.0.tgz#ae4913adc221fa6ca5ad3a6f8039f6a5c06b3877" + dependencies: + browserslist "^2.1.2" + caniuse-lite "^1.0.30000669" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.1" + postcss-value-parser "^3.2.3" + +autoprefixer@^6.0.0, autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +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" + +axobject-query@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" + dependencies: + ast-types-flow "0.0.7" + +babel-code-frame@6.22.0, babel-code-frame@^6.11.0, babel-code-frame@^6.16.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.1, babel-core@^6.0.0, babel-core@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.24.1" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + 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-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.18.0, babel-generator@^6.24.1: + 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-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.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-jest@20.0.3, babel-jest@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671" + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^4.0.0" + babel-preset-jest "^20.0.3" + +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: + 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-dynamic-import-node@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.0.2.tgz#adb5bc8f48a89311540395ae9f0cc3ed4b10bb2e" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-inline-react-svg@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-inline-react-svg/-/babel-plugin-inline-react-svg-0.4.0.tgz#940f77be66324f2c75a0fb64f287f459c40602a7" + dependencies: + babel-template "^6.15.0" + babel-traverse "^6.15.0" + babylon "^6.10.0" + lodash.isplainobject "^4.0.6" + resolve-from "^2.0.0" + svgo "^0.7.0" + +babel-plugin-istanbul@^4.0.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz#6ee6280410dcf59c7747518c3dfd98680958f102" + dependencies: + find-up "^2.1.0" + istanbul-lib-instrument "^1.7.1" + test-exclude "^4.1.0" + +babel-plugin-jest-hoist@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" + +babel-plugin-styled-components@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.1.4.tgz#b0e6d5bb01059bc7ab9118d3d686f6472ee8e91f" + dependencies: + stylis "2.0.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-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-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +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.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-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.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.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz#875d6bc9be761c58a2ae3feee5dc4895d8c7f921" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-constant-elements@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@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, 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-regenerator@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.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-preset-env@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.4.0.tgz#c8e02a3bcc7792f23cded68e0355b9d4c28f0f7a" + 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-jest@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a" + dependencies: + babel-plugin-jest-hoist "^20.0.3" + +babel-preset-react-app@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.0.0.tgz#f4505092f8bba0f0147c764dc72055fe46ac1416" + dependencies: + babel-plugin-dynamic-import-node "1.0.2" + babel-plugin-syntax-dynamic-import "6.18.0" + babel-plugin-transform-class-properties "6.24.1" + babel-plugin-transform-object-rest-spread "6.23.0" + babel-plugin-transform-react-constant-elements "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-plugin-transform-regenerator "6.24.1" + babel-plugin-transform-runtime "6.23.0" + babel-preset-env "1.4.0" + babel-preset-react "6.24.1" + +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.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.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.15.0, babel-template@^6.16.0, babel-template@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.10.0, babylon@^6.11.0, babylon@^6.12.0, babylon@^6.13.0, babylon@^6.15.0, babylon@^6.17.0: + version "6.17.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" + +balanced-match@^0.4.0, balanced-match@^0.4.1, balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +batch@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.3.tgz#3f3414f380321743bfc1042f9a83ff1d5824d464" + +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" + +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" + +bluebird@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +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" + +bowser@^1.0.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.7.0.tgz#169de4018711f994242bff9a8009e77a1f35e003" + +boxen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" + dependencies: + ansi-align "^1.1.0" + camelcase "^2.1.0" + chalk "^1.1.1" + cli-boxes "^1.0.0" + filled-array "^1.0.0" + object-assign "^4.0.1" + repeating "^2.0.0" + string-width "^1.0.1" + widest-line "^1.0.0" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + 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" + +breeze-async@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/breeze-async/-/breeze-async-0.1.0.tgz#ba4265949980a3d9d8bb9137a61a42e1f87da73a" + +breeze-nexttick@*, breeze-nexttick@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/breeze-nexttick/-/breeze-nexttick-0.1.0.tgz#d68a56655045d205cb6e36bfaf3c6b2b2c438b2a" + +breeze-queue@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/breeze-queue/-/breeze-queue-0.2.0.tgz#c05155cf0244964ba89943c8dcb65729198e8239" + dependencies: + breeze-nexttick "*" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-resolve@^1.11.2: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +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.1.1, browserslist@^1.1.3, browserslist@^1.3.6, browserslist@^1.4.0, browserslist@^1.5.2, browserslist@^1.7.6: + 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" + +browserslist@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.1.4.tgz#cc526af4a1312b7d2e05653e56d0c8ab70c0e053" + dependencies: + caniuse-lite "^1.0.30000670" + electron-to-chromium "^1.3.11" + +bser@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" + dependencies: + node-int64 "^0.4.0" + +bser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + dependencies: + node-int64 "^0.4.0" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +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" + +buffer@^5.0.3: + version "5.0.6" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.6.tgz#2ea669f7eec0b6eda05b08f8b5ff661b28573588" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + +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" + +bytes@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.3.0.tgz#d5b680a165b6201739acb611542aabc2d8ceb070" + +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" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0, camelcase@^2.0.1, camelcase@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000671" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000671.tgz#9f071bbc7b96994638ccbaf47829d58a1577a8ed" + +caniuse-lite@^1.0.30000669, caniuse-lite@^1.0.30000670: + version "1.0.30000671" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000671.tgz#c206c2f1a1feb34de46064407c4356818389bf1e" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +case-sensitive-paths-webpack-plugin@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.1.4.tgz#8aaedd5699a86cac2b34cf40d9b4145758978472" + +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, chokidar@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +ci-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + +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" + +clap@^1.0.9: + version "1.1.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.3.tgz#b3bd36e93dd4cbfb395a3c26896352445265c05b" + dependencies: + chalk "^1.1.3" + +clean-css@4.1.x: + version "4.1.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.3.tgz#07cfe8980edb20d455ddc23aadcf1e04c6e509ce" + dependencies: + source-map "0.5.x" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^1.0.1: + 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-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.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.0.3, 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" + +clone-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" + dependencies: + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" + +clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.2.tgz#2ba9fec3b4aa43d7a49d7e6c3561e92061b6bcec" + dependencies: + q "^1.1.2" + +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, color-convert@^1.3.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-diff@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/color-diff/-/color-diff-0.1.7.tgz#6db78cd9482a8e459d40821eaf4b503283dcb8e2" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colorguard@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/colorguard/-/colorguard-1.2.0.tgz#f3facaf5caaeba4ef54653d9fb25bb73177c0d84" + dependencies: + chalk "^1.1.1" + color-diff "^0.1.3" + log-symbols "^1.0.2" + object-assign "^4.0.1" + pipetteur "^2.0.0" + plur "^2.0.0" + postcss "^5.0.4" + postcss-reporter "^1.2.1" + text-table "^0.2.0" + yargs "^1.2.6" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +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.x, commander@~2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + 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" + +compressible@~2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.10.tgz#feda1c7f7617912732b29bf8cf26252a20b9eecd" + dependencies: + mime-db ">= 1.27.0 < 2" + +compression@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.6.2.tgz#cceb121ecc9d09c52d7ad0c3350ea93ddd402bc3" + dependencies: + accepts "~1.3.3" + bytes "2.3.0" + compressible "~2.0.8" + debug "~2.2.0" + on-headers "~1.0.1" + vary "~1.1.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.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" + +configstore@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" + dependencies: + dot-prop "^3.0.0" + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +connect-history-api-fallback@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +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" + +constant-case@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46" + dependencies: + snake-case "^2.1.0" + upper-case "^1.1.1" + +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" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type-parser@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.1.tgz#c3e56988c53c65127fb46d4032a3a900246fdc94" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +convert-source-map@^1.1.0, convert-source-map@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +core-js@^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@^2.1.0, cosmiconfig@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.3.tgz#952771eb0dddc1cb3fa2f6fbe51a522e93b3ee0a" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.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-error-class@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +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" + +create-react-class@^15.5.3: + version "15.5.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.5.3.tgz#fb0f7cae79339e9a179e194ef466efa3923820fe" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + +cross-env@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.0.tgz#565ccae4d09676441a5087f406fe7661a29c931b" + dependencies: + cross-spawn "^5.1.0" + is-windows "^1.0.0" + +cross-spawn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +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-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + +css-color-names@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.3.tgz#de0cef16f4d8aa8222a320d5b6d7e9bbada7b9f6" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@0.28.1: + version "0.28.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.1.tgz#220325599f8f00452d9ceb4c3ca6c8a66798642d" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^0.1.7" + +css-rule-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-rule-stream/-/css-rule-stream-1.1.0.tgz#3786e7198983d965a26e31957e09078cbb7705a2" + dependencies: + css-tokenize "^1.0.1" + duplexer2 "0.0.2" + ldjson-stream "^1.2.1" + through2 "^0.6.3" + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-to-react-native@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-2.0.4.tgz#cf4cc407558b3474d4ba8be1a2cd3b6ce713101b" + dependencies: + css-color-keywords "^1.0.0" + fbjs "^0.8.5" + postcss-value-parser "^3.3.0" + +css-tokenize@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-tokenize/-/css-tokenize-1.0.1.tgz#4625cb1eda21c143858b7f81d6803c1d26fc14be" + dependencies: + inherits "^2.0.1" + readable-stream "^1.0.33" + +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +css@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" + dependencies: + inherits "^2.0.1" + source-map "^0.1.38" + source-map-resolve "^0.3.0" + urix "^0.1.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4": + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + +"cssstyle@>= 0.2.37 < 0.3.0": + version "0.2.37" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" + dependencies: + cssom "0.3.x" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +damerau-levenshtein@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" + +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-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" + dependencies: + ms "2.0.0" + +debug@^2.1.1, debug@^2.2.0, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, 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, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +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" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del@^2.0.2, del@^2.2.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" + +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +diff@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +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" + +doiuse@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/doiuse/-/doiuse-2.6.0.tgz#1892d10b61a9a356addbf2b614933e81f8bb3834" + dependencies: + browserslist "^1.1.1" + caniuse-db "^1.0.30000187" + css-rule-stream "^1.1.0" + duplexer2 "0.0.2" + jsonfilter "^1.1.2" + ldjson-stream "^1.2.1" + lodash "^4.0.0" + multimatch "^2.0.0" + postcss "^5.0.8" + source-map "^0.4.2" + through2 "^0.6.3" + yargs "^3.5.4" + +dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +dom-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" + dependencies: + urijs "^1.16.1" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" + dependencies: + is-obj "^1.0.0" + +dotenv@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" + +drip@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/drip/-/drip-1.1.0.tgz#ccefb1e686d86fc115b70c9ec126f8f871bdfd7e" + dependencies: + tea-concat "0.1.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +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, electron-to-chromium@^1.3.11: + version "1.3.11" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.11.tgz#744761df1d67b492b322ce9aa0aba5393260eb61" + +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" + +emoji-regex@^6.1.0: + version "6.4.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.4.2.tgz#a30b6fee353d406d96cfb9fa765bdc82897eff6e" + +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.1 <0.2.0-0", 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" + +es-abstract@^1.4.3, es-abstract@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-error@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" + +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-promise@^4.0.5: + version "4.1.0" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.0.tgz#dda03ca8f9f89bc597e689842929de7ba8cebdf0" + +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" + +escodegen@^1.6.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +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-config-react-app@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-1.0.4.tgz#c0178f535a922236c53daafea4f397203db7d9af" + +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-loader@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.7.1.tgz#50b158dd6272dcefb97e984254837f81a5802ce0" + dependencies: + find-cache-dir "^0.1.1" + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce" + dependencies: + debug "2.2.0" + pkg-dir "^1.0.0" + +eslint-plugin-flowtype@2.33.0: + version "2.33.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.33.0.tgz#b2783814ed2ddcf729953b8f65ff73c90cabee4b" + dependencies: + lodash "^4.15.0" + +eslint-plugin-import@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e" + 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" + pkg-up "^1.0.0" + +eslint-plugin-jsx-a11y@5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.0.3.tgz#4a939f76ec125010528823331bf948cc573380b6" + dependencies: + aria-query "^0.5.0" + array-includes "^3.0.3" + ast-types-flow "0.0.7" + axobject-query "^0.1.0" + damerau-levenshtein "^1.0.0" + emoji-regex "^6.1.0" + jsx-ast-utils "^1.4.0" + +eslint-plugin-react@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.0.1.tgz#e78107e1e559c6e2b17786bb67c2e2a010ad0d2f" + dependencies: + doctrine "^2.0.0" + has "^1.0.1" + jsx-ast-utils "^1.3.4" + +eslint@3.19.0, 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@^2.6.0, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +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: + 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" + +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +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" + +exec-sh@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.0.tgz#14f75de3f20d286ef933099b2ce50a90359cef10" + dependencies: + merge "^1.1.3" + +execall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" + dependencies: + clone-regexp "^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" + +express@^4.13.3: + version "4.15.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.3.tgz#bab65d0f03aa80c358408972fc700f916944b662" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.7" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + finalhandler "~1.0.3" + fresh "0.5.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.4" + qs "6.4.0" + range-parser "~1.2.0" + send "0.15.3" + serve-static "1.12.3" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.0" + vary "~1.1.1" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +external-editor@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.4.tgz#1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972" + dependencies: + iconv-lite "^0.4.17" + jschardet "^1.4.2" + tmp "^0.0.31" + +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" + +extract-text-webpack-plugin@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.0.tgz#69315b885f876dbf96d3819f6a9f1cca7aebf159" + dependencies: + ajv "^4.11.2" + async "^2.1.2" + loader-utils "^1.0.2" + webpack-sources "^0.1.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +facet@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/facet/-/facet-0.3.0.tgz#1bf949d8a112e2045dda84259407def3deb62c1b" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^1.8.0: + version "1.9.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" + dependencies: + bser "1.0.2" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + dependencies: + bser "^2.0.0" + +fbjs@^0.8.5, 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: + 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" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.1.tgz#6b328ee1234a729e4e47d36375dd6d35c0e1db84" + dependencies: + loader-utils "^1.0.2" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.3.0.tgz#53149ea3460e3b2e024962a51648aa572cf98122" + +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" + +filled-array@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" + +finalhandler@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.3.tgz#ef47e77950e999780e86022a560e3217e0d0cc89" + dependencies: + debug "2.6.7" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + unpipe "~1.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.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" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +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" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +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" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-extra@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +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.17, fsevents@^1.0.0: + version "1.0.17" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +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, function-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +gaia-filter@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/gaia-filter/-/gaia-filter-0.1.0.tgz#e029ab04aafaa0137885b8e161e78a48f4eeaf6c" + dependencies: + tea-properties "0.1.0" + +gaia-hash@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/gaia-hash/-/gaia-hash-0.1.1.tgz#d969acbe16a2e5e4dc3d74ac28b24c87d36cf12d" + dependencies: + gaia-filter "0.1.0" + tea-extend "0.2.0" + tea-properties "0.1.0" + +gather-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" + +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@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +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@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +globby@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + +got@^5.0.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" + dependencies: + create-error-class "^3.0.1" + duplexer2 "^0.1.4" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + node-status-codes "^1.0.0" + object-assign "^4.0.1" + parse-json "^2.1.0" + pinkie-promise "^2.0.0" + read-all-stream "^3.0.0" + readable-stream "^2.0.5" + timed-out "^3.0.0" + unzip-response "^1.0.2" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +graphql-anywhere@^3.0.0, graphql-anywhere@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-3.0.1.tgz#73531db861174c8f212eafb9f8e84944b38b4e5a" + +graphql-tag@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.1.0.tgz#450b5049d2e1d8bc38f1c62b8225930a39aba770" + +graphql@^0.9.3: + version "0.9.6" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.9.6.tgz#514421e9d225c29dfc8fd305459abae58815ef2c" + dependencies: + iterall "^1.0.0" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + +gzip-size@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + dependencies: + duplexer "^0.1.1" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +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.0.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + dependencies: + inherits "^2.0.1" + +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" + +he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +history@^4.5.1, history@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.6.1.tgz#911cf8eb65728555a94f2b12780a0c531a14d2fd" + dependencies: + invariant "^2.2.1" + loose-envify "^1.2.0" + resolve-pathname "^2.0.0" + value-equal "^0.2.0" + warning "^3.0.0" + +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" + +hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" + +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.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-encoding-sniffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz#79bf7a785ea495fe66165e734153f363ff5437da" + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@1.2.1, html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-minifier@^3.2.3: + version "3.5.1" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.1.tgz#0fbba015129b4ac9a30b887aec66f39d57cd37a9" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.9.x" + he "1.1.x" + ncname "1.0.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.0.x" + +html-tags@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.1.1.tgz#869f43859f12d9bdc3892419e494a628aa1b204e" + +html-webpack-plugin@2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.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-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +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" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +hyphenate-style-name@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" + +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + +iconv-lite@^0.4.17, iconv-lite@~0.4.13: + version "0.4.17" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +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" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +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: + 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" + +inline-style-prefixer@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz#c153c7e88fd84fef5c602e95a8168b2770671fe7" + dependencies: + bowser "^1.0.0" + hyphenate-style-name "^1.0.1" + +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +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.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ipaddr.js@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" + +irregular-plurals@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +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-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-ci@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +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-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-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-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.0.2, 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-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" + dependencies: + isobject "^1.0.0" + +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-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-supported-regexp-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +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@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + +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@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" + +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" + +istanbul-api@^1.1.1: + version "1.1.8" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.8.tgz#a844e55c6f9aeee292e7f42942196f60b23dc93e" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.1.0" + istanbul-lib-hook "^1.0.6" + istanbul-lib-instrument "^1.7.1" + istanbul-lib-report "^1.1.0" + istanbul-lib-source-maps "^1.2.0" + istanbul-reports "^1.1.0" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528" + +istanbul-lib-hook@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" + istanbul-lib-coverage "^1.1.0" + semver "^5.3.0" + +istanbul-lib-report@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770" + dependencies: + istanbul-lib-coverage "^1.1.0" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66" + dependencies: + handlebars "^4.0.3" + +iterall@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.1.tgz#f7f0af11e9a04ec6426260f5019d9fcca4d50214" + +jest-changed-files@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" + +jest-cli@^20.0.3, jest-cli@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93" + dependencies: + ansi-escapes "^1.4.0" + callsites "^2.0.0" + chalk "^1.1.3" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + istanbul-api "^1.1.1" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-instrument "^1.4.2" + istanbul-lib-source-maps "^1.1.0" + jest-changed-files "^20.0.3" + jest-config "^20.0.4" + jest-docblock "^20.0.3" + jest-environment-jsdom "^20.0.3" + jest-haste-map "^20.0.4" + jest-jasmine2 "^20.0.4" + jest-message-util "^20.0.3" + jest-regex-util "^20.0.3" + jest-resolve-dependencies "^20.0.3" + jest-runtime "^20.0.4" + jest-snapshot "^20.0.3" + jest-util "^20.0.3" + micromatch "^2.3.11" + node-notifier "^5.0.2" + pify "^2.3.0" + slash "^1.0.0" + string-length "^1.0.1" + throat "^3.0.0" + which "^1.2.12" + worker-farm "^1.3.1" + yargs "^7.0.2" + +jest-config@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea" + dependencies: + chalk "^1.1.3" + glob "^7.1.1" + jest-environment-jsdom "^20.0.3" + jest-environment-node "^20.0.3" + jest-jasmine2 "^20.0.4" + jest-matcher-utils "^20.0.3" + jest-regex-util "^20.0.3" + jest-resolve "^20.0.4" + jest-validate "^20.0.3" + pretty-format "^20.0.3" + +jest-diff@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" + dependencies: + chalk "^1.1.3" + diff "^3.2.0" + jest-matcher-utils "^20.0.3" + pretty-format "^20.0.3" + +jest-docblock@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" + +jest-environment-jsdom@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99" + dependencies: + jest-mock "^20.0.3" + jest-util "^20.0.3" + jsdom "^9.12.0" + +jest-environment-node@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403" + dependencies: + jest-mock "^20.0.3" + jest-util "^20.0.3" + +jest-haste-map@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.4.tgz#653eb55c889ce3c021f7b94693f20a4159badf03" + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + jest-docblock "^20.0.3" + micromatch "^2.3.11" + sane "~1.6.0" + worker-farm "^1.3.1" + +jest-jasmine2@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1" + dependencies: + chalk "^1.1.3" + graceful-fs "^4.1.11" + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-matchers "^20.0.3" + jest-message-util "^20.0.3" + jest-snapshot "^20.0.3" + once "^1.4.0" + p-map "^1.1.1" + +jest-matcher-utils@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" + dependencies: + chalk "^1.1.3" + pretty-format "^20.0.3" + +jest-matchers@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" + dependencies: + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-message-util "^20.0.3" + jest-regex-util "^20.0.3" + +jest-message-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" + dependencies: + chalk "^1.1.3" + micromatch "^2.3.11" + slash "^1.0.0" + +jest-mock@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" + +jest-regex-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" + +jest-resolve-dependencies@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a" + dependencies: + jest-regex-util "^20.0.3" + +jest-resolve@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5" + dependencies: + browser-resolve "^1.11.2" + is-builtin-module "^1.0.0" + resolve "^1.3.2" + +jest-runtime@^20.0.4: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8" + dependencies: + babel-core "^6.0.0" + babel-jest "^20.0.3" + babel-plugin-istanbul "^4.0.0" + chalk "^1.1.3" + convert-source-map "^1.4.0" + graceful-fs "^4.1.11" + jest-config "^20.0.4" + jest-haste-map "^20.0.4" + jest-regex-util "^20.0.3" + jest-resolve "^20.0.4" + jest-util "^20.0.3" + json-stable-stringify "^1.0.1" + micromatch "^2.3.11" + strip-bom "3.0.0" + yargs "^7.0.2" + +jest-snapshot@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566" + dependencies: + chalk "^1.1.3" + jest-diff "^20.0.3" + jest-matcher-utils "^20.0.3" + jest-util "^20.0.3" + natural-compare "^1.4.0" + pretty-format "^20.0.3" + +jest-styled-components@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/jest-styled-components/-/jest-styled-components-2.1.1.tgz#62adfd65d0d52105db7176ba69946e71754c1a44" + dependencies: + css "^2.2.1" + +jest-util@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" + dependencies: + chalk "^1.1.3" + graceful-fs "^4.1.11" + jest-message-util "^20.0.3" + jest-mock "^20.0.3" + jest-validate "^20.0.3" + leven "^2.1.0" + mkdirp "^0.5.1" + +jest-validate@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab" + dependencies: + chalk "^1.1.3" + jest-matcher-utils "^20.0.3" + leven "^2.1.0" + pretty-format "^20.0.3" + +jest@20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.3.tgz#e4fd054c4f1170a116a00761da4cfdb73f1cdc33" + dependencies: + jest-cli "^20.0.3" + +jest@^20.0.3: + version "20.0.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac" + dependencies: + jest-cli "^20.0.4" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +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, js-yaml@^3.7.0: + 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" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jschardet@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-1.4.2.tgz#2aa107f142af4121d145659d44f50830961e699a" + +jsdom@^9.12.0: + version "9.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" + dependencies: + abab "^1.0.3" + acorn "^4.0.4" + acorn-globals "^3.1.0" + array-equal "^1.0.0" + content-type-parser "^1.0.1" + cssom ">= 0.3.2 < 0.4.0" + cssstyle ">= 0.2.37 < 0.3.0" + escodegen "^1.6.1" + html-encoding-sniffer "^1.0.1" + nwmatcher ">= 1.3.9 < 2.0.0" + parse5 "^1.5.1" + request "^2.79.0" + sax "^1.2.1" + symbol-tree "^3.2.1" + tough-cookie "^2.3.2" + webidl-conversions "^4.0.0" + whatwg-encoding "^1.0.1" + whatwg-url "^4.3.0" + xml-name-validator "^2.0.1" + +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: + 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" + +json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.0.tgz#92e7c7444e5ffd5fa32e6a9ae8b85034df8347d0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfilter@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/jsonfilter/-/jsonfilter-1.1.2.tgz#21ef7cedc75193813c75932e96a98be205ba5a11" + dependencies: + JSONStream "^0.8.4" + minimist "^1.1.0" + stream-combiner "^0.2.1" + through2 "^0.6.3" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonparse@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64" + +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.3.4, jsx-ast-utils@^1.4.0: + 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" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +known-css-properties@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.0.7.tgz#9104343a2adfd8ef3b07bdee7a325e4d44ed9371" + +latest-version@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" + dependencies: + package-json "^2.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + +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" + +ldjson-stream@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ldjson-stream/-/ldjson-stream-1.2.1.tgz#91beceda5ac4ed2b17e649fb777e7abfa0189c2b" + dependencies: + split2 "^0.2.1" + through2 "^0.6.1" + +leven@^2.1.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" + +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-fs-cache@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz#56e0bf08bd9708b26a765b68509840c8dec9fdbc" + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +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@^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" + +loader-utils@^1.0.2, loader-utils@^1.x: + 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" + +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-es@^4.17.3, lodash-es@^4.17.4, lodash-es@^4.2.0, lodash-es@^4.2.1: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" + +lodash._reinterpolate@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.cond@^4.3.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.isequal@^4.1.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.template@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" + dependencies: + lodash._reinterpolate "~3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316" + dependencies: + lodash._reinterpolate "~3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: + 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" + +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.2.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" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + dependencies: + tmpl "1.0.x" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +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" + +meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11: + 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 < 2": + version "1.28.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.28.0.tgz#fedd349be06d2865b7fc57d837c6de4f17d7ac3c" + +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.11, mime-types@~2.1.15, 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: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@1.3.x, mime@^1.3.4: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.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@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.5.1, mkdirp@0.5.x, "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" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + +nan@^2.3.0: + version "2.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" + +ncname@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +no-case@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" + dependencies: + lower-case "^1.1.1" + +node-fetch@^1.0.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.0.tgz#3ff6c56544f9b7fb00682338bb55ee6f54a8a0ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + +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-notifier@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.1.2.tgz#2fa9e12605fa10009d44549d6fcd8a63dde0e4ff" + dependencies: + growly "^1.3.0" + semver "^5.3.0" + shellwords "^0.1.0" + which "^1.2.12" + +node-pre-gyp@^0.6.29: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + 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" + +node-status-codes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" + +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" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + 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" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-selector@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-run-all@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.0.2.tgz#a84669348e6db6ccbe052200b4cdb6bfe034a4fe" + dependencies: + chalk "^1.1.3" + cross-spawn "^5.0.1" + minimatch "^3.0.2" + ps-tree "^1.0.1" + read-pkg "^2.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npmlog@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +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" + +"nwmatcher@>= 1.3.9 < 2.0.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.0.tgz#b4389362170e7ef9798c3c7716d80ebc0106fccf" + +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.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-hash@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.1.8.tgz#28a659cf987d96a4dabe7860289f3b5326c4a03c" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +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" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +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" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +onecolor@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.4.tgz#75a46f80da6c7aaa5b4daae17a47198bd9652494" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.0.0.tgz#f8870d7cd969b218030cb6ce5a1285e795931df3" + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, 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" + +original@>=0.0.5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +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-tmpdir@^1.0.0, os-tmpdir@^1.0.1, 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.0, 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-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" + +package-json@^2.0.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" + dependencies: + got "^5.0.0" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +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.1.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" + +parse5@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" + +parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +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-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@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-to-regexp@^1.0.1, path-to-regexp@^1.5.3: + 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" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +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, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pipetteur@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pipetteur/-/pipetteur-2.0.3.tgz#1955760959e8d1a11cb2a50ec83eec470633e49f" + dependencies: + onecolor "^3.0.4" + synesthesia "^1.0.1" + +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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26" + dependencies: + find-up "^1.0.0" + +plur@^2.0.0, plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +portfinder@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-flexbugs-fixes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.0.0.tgz#7b31cb6c27d0417a35a67914c295f83c403c7ed4" + dependencies: + postcss "^6.0.1" + +postcss-less@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-0.14.0.tgz#c631b089c6cce422b9a10f3a958d2bedd3819324" + dependencies: + postcss "^5.0.21" + +postcss-load-config@^1.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.5.tgz#c19d3e8b83eb1ac316f5621ef4c0ef5b3d1b8b3a" + dependencies: + loader-utils "^1.x" + postcss "^6.x" + postcss-load-config "^1.x" + schema-utils "^0.x" + +postcss-media-query-parser@^0.2.0, postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-reporter@^1.2.1, postcss-reporter@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-1.4.1.tgz#c136f0a5b161915f379dd3765c61075f7e7b9af2" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-reporter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-3.0.0.tgz#09ea0f37a444c5693878606e09b018ebeff7cf8f" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + +postcss-scss@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.4.1.tgz#ad771b81f0f72f5f4845d08aa60f93557653d54c" + dependencies: + postcss "^5.2.13" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.1.1, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.13, postcss@^5.2.16, postcss@^5.2.4: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1, postcss@^6.x: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" + dependencies: + chalk "^1.1.3" + source-map "^0.5.6" + supports-color "^3.2.3" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-bytes@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" + +pretty-error@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.0.tgz#87f4e9d706a24c87d6cbee9fabec001fcf8c75d8" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^20.0.3: + version "20.0.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" + dependencies: + ansi-regex "^2.1.1" + ansi-styles "^3.0.0" + +primer-support@*: + version "4.0.0" + resolved "https://registry.yarnpkg.com/primer-support/-/primer-support-4.0.0.tgz#3dbbb37e4e0f2ed2ea6035e0b79dd0cb33bae85e" + +primer-utilities@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/primer-utilities/-/primer-utilities-3.5.0.tgz#4b52d4bd376487952b094f458285268451fa906a" + dependencies: + primer-support "*" + +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" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@7.1.1, promise@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, 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" + +proxy-addr@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.3.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +ps-tree@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.1: + 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: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@^1.1.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +qs@6.4.0, qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^4.1.0: + 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: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + +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.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-apollo@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-1.2.0.tgz#4dc3f61bad9b2fe2c450bc7fbd4fab52004de474" + dependencies: + apollo-client "^1.1.2" + graphql-anywhere "^3.0.0" + graphql-tag "^2.0.0" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.1" + lodash.flatten "^4.2.0" + lodash.isequal "^4.1.1" + lodash.isobject "^3.0.2" + lodash.pick "^4.4.0" + object-assign "^4.0.1" + prop-types "^15.5.8" + optionalDependencies: + react-dom "0.14.x || 15.* || ^15.0.0 || ^16.0.0-alpha" + +react-dev-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-2.0.1.tgz#5843504d89f038f046258a871fc26071775fc065" + dependencies: + "@timer/detect-port" "1.1.3" + address "1.0.1" + anser "1.3.0" + babel-code-frame "6.22.0" + chalk "1.1.3" + cross-spawn "4.0.2" + escape-string-regexp "1.0.5" + filesize "3.3.0" + gzip-size "3.0.0" + html-entities "1.2.1" + inquirer "3.0.6" + opn "5.0.0" + recursive-readdir "2.2.1" + shell-quote "1.6.1" + sockjs-client "1.1.4" + strip-ansi "3.0.1" + text-table "0.2.0" + +"react-dom@0.14.x || 15.* || ^15.0.0 || ^16.0.0-alpha", 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-error-overlay@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-1.0.6.tgz#f40ba0791f05b5bb973f4ff66454a7c70f324fdc" + dependencies: + anser "1.2.5" + babel-code-frame "6.22.0" + babel-runtime "6.23.0" + react-dev-utils "^2.0.1" + settle-promise "1.0.0" + source-map "0.5.6" + +react-redux@^5.0.4: + version "5.0.5" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.5.tgz#f8e8c7b239422576e52d6b7db06439469be9846a" + dependencies: + create-react-class "^15.5.3" + hoist-non-react-statics "^1.0.3" + invariant "^2.0.0" + lodash "^4.2.0" + lodash-es "^4.2.0" + loose-envify "^1.1.0" + prop-types "^15.5.10" + +react-router-dom@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-4.1.1.tgz#3021ade1f2c160af97cf94e25594c5f294583025" + dependencies: + history "^4.5.1" + loose-envify "^1.3.1" + prop-types "^15.5.4" + react-router "^4.1.1" + +react-router@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.1.1.tgz#d448f3b7c1b429a6fbb03395099949c606b1fe95" + dependencies: + history "^4.6.0" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.2" + loose-envify "^1.3.1" + path-to-regexp "^1.5.3" + prop-types "^15.5.4" + warning "^3.0.0" + +react-scripts@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.0.6.tgz#09db92d4dd756f940b6eb71739b6f4b8232cefe3" + dependencies: + autoprefixer "7.1.0" + babel-core "6.24.1" + babel-eslint "7.2.3" + babel-jest "20.0.3" + babel-loader "7.0.0" + babel-preset-react-app "^3.0.0" + babel-runtime "6.23.0" + case-sensitive-paths-webpack-plugin "1.1.4" + chalk "1.1.3" + css-loader "0.28.1" + dotenv "4.0.0" + eslint "3.19.0" + eslint-config-react-app "^1.0.4" + eslint-loader "1.7.1" + eslint-plugin-flowtype "2.33.0" + eslint-plugin-import "2.2.0" + eslint-plugin-jsx-a11y "5.0.3" + eslint-plugin-react "7.0.1" + extract-text-webpack-plugin "2.1.0" + file-loader "0.11.1" + fs-extra "3.0.1" + html-webpack-plugin "2.28.0" + jest "20.0.3" + object-assign "4.1.1" + postcss-flexbugs-fixes "3.0.0" + postcss-loader "2.0.5" + promise "7.1.1" + react-dev-utils "^2.0.1" + react-error-overlay "^1.0.6" + style-loader "0.17.0" + sw-precache-webpack-plugin "0.9.1" + url-loader "0.5.8" + webpack "2.5.1" + webpack-dev-server "2.4.5" + webpack-manifest-plugin "1.1.0" + whatwg-fetch "2.0.3" + optionalDependencies: + fsevents "1.0.17" + +react-styled-flexboxgrid@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/react-styled-flexboxgrid/-/react-styled-flexboxgrid-1.1.2.tgz#3b0b45b1a8821f35f80ea2a7ee70d44b863b2c15" + +react-test-renderer@^15.5.4: + version "15.5.4" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-15.5.4.tgz#d4ebb23f613d685ea8f5390109c2d20fbf7c83bc" + dependencies: + fbjs "^0.8.9" + object-assign "^4.1.0" + +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-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-file-stdin@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/read-file-stdin/-/read-file-stdin-0.2.1.tgz#25eccff3a153b6809afacb23ee15387db9e0ee61" + dependencies: + gather-stream "^1.0.0" + +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@^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@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^1.0.33, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.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, readable-stream@^2.2.9: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +recursive-readdir@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" + dependencies: + minimatch "3.0.3" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +reduce-reducers@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/reduce-reducers/-/reduce-reducers-0.1.2.tgz#fa1b4718bc5292a71ddd1e5d839c9bea9770f14b" + +redux-actions@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/redux-actions/-/redux-actions-2.0.3.tgz#1550aba9def179166ccd234d07672104a736d889" + dependencies: + invariant "^2.2.1" + lodash "^4.13.1" + lodash-es "^4.17.4" + reduce-reducers "^0.1.0" + +redux-form@^6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.7.0.tgz#9fb0769e76f14febf1dd7686e02c4ab2d6f953aa" + dependencies: + deep-equal "^1.0.1" + es6-error "^4.0.0" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.2" + is-promise "^2.1.0" + lodash "^4.17.3" + lodash-es "^4.17.3" + prop-types "^15.5.6" + +redux@^3.4.0, redux@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/redux/-/redux-3.6.0.tgz#887c2b3d0b9bd86eca2be70571c27654c19e188d" + dependencies: + lodash "^4.2.1" + lodash-es "^4.2.1" + loose-envify "^1.1.0" + symbol-observable "^1.0.2" + +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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + +renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +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.79.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" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +reselect@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve-pathname@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.1.0.tgz#e8358801b86b83b17560d4e3c382d7aef2100944" + +resolve-url@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +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" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +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" + +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" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +sane@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" + dependencies: + anymatch "^1.3.0" + exec-sh "^0.2.0" + fb-watchman "^1.8.0" + minimatch "^3.0.2" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.10.0" + +sax@^1.2.1, sax@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" + +schema-utils@^0.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309" + dependencies: + debug "2.6.7" + 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 "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +serve-index@^1.7.2: + version "1.8.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.8.0.tgz#7c5d96c13fb131101f93c1c5774f8516a1e78d3b" + dependencies: + accepts "~1.3.3" + batch "0.5.3" + debug "~2.2.0" + escape-html "~1.0.3" + http-errors "~1.5.0" + mime-types "~2.1.11" + parseurl "~1.3.1" + +serve-static@1.12.3: + version "1.12.3" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.15.3" + +serviceworker-cache-polyfill@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" + +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.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +settle-promise@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/settle-promise/-/settle-promise-1.0.0.tgz#697adb58b821f387ce2757c06efc9de5f0ee33d8" + +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" + +shell-quote@1.6.1, shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shellwords@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.0.tgz#66afd47b6a12932d9071cbfd98a52e785cd0ba14" + +sherlock@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sherlock/-/sherlock-1.0.0.tgz#e246eacfd72c0e3b3e8243a6c9e55340d80c854e" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +simple-statistics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-4.1.0.tgz#9a9d4af9727a949f42085124eda8aae252ea93f4" + +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" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +snake-case@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" + dependencies: + no-case "^2.2.0" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sockjs-client@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5" + dependencies: + debug "^2.2.0" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.1" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.18: + version "0.3.18" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^0.1.7, source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +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-resolve@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.3.0" + urix "~0.1.0" + +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-url@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + +source-map@0.5.6, source-map@0.5.x, 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.1.38: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.4.2, 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" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +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" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +specificity@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.0.tgz#332472d4e5eb5af20821171933998a6bc3b1ce6f" + +split2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900" + dependencies: + through2 "~0.6.1" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + 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" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"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-combiner@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-http@^2.3.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a" + 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" + +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-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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +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-bom@3.0.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-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-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +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" + +style-loader@0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.17.0.tgz#e8254bccdb7af74bd58274e36107b4d5ab4df310" + dependencies: + loader-utils "^1.0.2" + +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + +styled-components@^2.0.0-15: + version "2.0.0-19" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-2.0.0-19.tgz#76f666dd40dd7c4194b76e176fd916b9aac96c94" + dependencies: + buffer "^5.0.3" + css-to-react-native "^2.0.3" + fbjs "^0.8.9" + hoist-non-react-statics "^1.2.0" + inline-style-prefixer "^2.0.5" + is-function "^1.0.1" + is-plain-object "^2.0.1" + prop-types "^15.5.4" + stylis "^2.0.0" + supports-color "^3.2.3" + +stylehacks@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.2.tgz#64c83e0438a68c9edf449e8c552a7d9ab6009b0b" + dependencies: + browserslist "^1.1.3" + chalk "^1.1.1" + log-symbols "^1.0.2" + minimist "^1.2.0" + plur "^2.1.2" + postcss "^5.0.18" + postcss-reporter "^1.3.3" + postcss-selector-parser "^2.0.0" + read-file-stdin "^0.2.1" + text-table "^0.2.0" + write-file-stdout "0.0.2" + +stylelint-config-primer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stylelint-config-primer/-/stylelint-config-primer-1.4.0.tgz#920addd90b408a622c52ece2fc004b4fbd7118fd" + dependencies: + stylelint-scss "^1.4.1" + stylelint-selector-no-utility "^1.5.0" + +stylelint-config-standard@^16.0.0: + version "16.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-16.0.0.tgz#bb7387bff1d7dd7186a52b3ebf885b2405d691bf" + +stylelint-processor-styled-components@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stylelint-processor-styled-components/-/stylelint-processor-styled-components-0.1.0.tgz#47cd66bbf39a94931bb2a445c2fc7017f536df2a" + dependencies: + babel-traverse "^6.16.0" + babylon "^6.12.0" + +stylelint-scss@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-1.4.4.tgz#091fcbd8b648c78ec3899853e54b975e0256cd4a" + dependencies: + lodash "^4.11.1" + postcss-media-query-parser "^0.2.3" + postcss-resolve-nested-selector "^0.1.1" + postcss-selector-parser "^2.0.0" + postcss-value-parser "^3.3.0" + stylelint "^7.0.3" + +stylelint-selector-no-utility@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/stylelint-selector-no-utility/-/stylelint-selector-no-utility-1.5.0.tgz#c11099efffb3b49c58ce1af58f2d48fb4e13c2cc" + dependencies: + primer-utilities "^3.0.0" + stylelint "^7.0.0" + +stylelint@^7.0.0, stylelint@^7.0.3, stylelint@^7.10.1: + version "7.10.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.10.1.tgz#209a7ce5e781fc2a62489fbb31ec0201ec675db2" + dependencies: + autoprefixer "^6.0.0" + balanced-match "^0.4.0" + chalk "^1.1.1" + colorguard "^1.2.0" + cosmiconfig "^2.1.1" + debug "^2.6.0" + doiuse "^2.4.1" + execall "^1.0.0" + file-entry-cache "^2.0.0" + get-stdin "^5.0.0" + globby "^6.0.0" + globjoin "^0.1.4" + html-tags "^1.1.1" + ignore "^3.2.0" + imurmurhash "^0.1.4" + known-css-properties "^0.0.7" + lodash "^4.17.4" + log-symbols "^1.0.2" + meow "^3.3.0" + micromatch "^2.3.11" + normalize-selector "^0.2.0" + postcss "^5.0.20" + postcss-less "^0.14.0" + postcss-media-query-parser "^0.2.0" + postcss-reporter "^3.0.0" + postcss-resolve-nested-selector "^0.1.1" + postcss-scss "^0.4.0" + postcss-selector-parser "^2.1.1" + postcss-value-parser "^3.1.1" + resolve-from "^2.0.0" + specificity "^0.3.0" + string-width "^2.0.0" + style-search "^0.1.0" + stylehacks "^2.3.2" + sugarss "^0.2.0" + svg-tags "^1.0.0" + table "^4.0.1" + +stylis@2.0.0, stylis@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-2.0.0.tgz#6785a6546bd73478799a67d49d67086953b50ad5" + +sugarss@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-0.2.0.tgz#ac34237563327c6ff897b64742bf6aec190ad39e" + dependencies: + postcss "^5.2.4" + +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, supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +sw-precache-webpack-plugin@0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.9.1.tgz#2381ff706fbb6cabdb20a20337de8e58fb49a2a7" + dependencies: + del "^2.2.2" + sw-precache "^5.0.0" + uglify-js "^2.8.5" + +sw-precache@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.1.1.tgz#928720957463e55ed56777e177c4699f35ec59b6" + dependencies: + dom-urls "^1.1.0" + es6-promise "^4.0.5" + glob "^7.1.1" + lodash.defaults "^4.2.0" + lodash.template "^4.4.0" + meow "^3.7.0" + mkdirp "^0.5.1" + pretty-bytes "^4.0.2" + sw-toolbox "^3.4.0" + update-notifier "^1.0.3" + +sw-toolbox@^3.4.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" + dependencies: + path-to-regexp "^1.0.1" + serviceworker-cache-polyfill "^4.0.0" + +symbol-observable@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +symbol-tree@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + +synesthesia@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/synesthesia/-/synesthesia-1.0.1.tgz#5ef95ea548c0d5c6e6f9bb4b0d0731dff864a777" + dependencies: + css-color-names "0.0.3" + +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" + +table@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" + 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" + +tea-concat@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tea-concat/-/tea-concat-0.1.0.tgz#ea2e907400fdd78a6334ce020fa3c69502d99e84" + +tea-extend@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/tea-extend/-/tea-extend-0.2.0.tgz#a820ecc6bc662538c61fe7510f35db475314d5a6" + +tea-inherits@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tea-inherits/-/tea-inherits-0.1.0.tgz#ba83fb9839e0fc59370f65ad999c8fc828d36122" + +tea-properties@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tea-properties/-/tea-properties-0.1.0.tgz#c5c81533da19f3c39afadd15c173a3b6cbc8d1eb" + +tea-type@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tea-type/-/tea-type-0.1.0.tgz#a138a6beb00ff4984874a4f75f3589ef1821af82" + +test-exclude@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +throat@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" + +through2@^0.6.1, through2@^0.6.3, through2@~0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timed-out@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" + +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" + +tmp@^0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + +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" + +toposort@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" + +tough-cookie@^2.3.2, 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" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +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" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +ua-parser-js@^0.7.9: + version "0.7.12" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" + +uglify-js@3.0.x: + version "3.0.11" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.11.tgz#81f594b9a24dad76e39da92f8f06e5b3bc8c2e11" + dependencies: + commander "~2.9.0" + source-map "~0.5.1" + +uglify-js@^2.6, uglify-js@^2.8.5: + version "2.8.27" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.27.tgz#47787f912b0f242e5b984343be8e35e95f694c9c" + 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" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +universalify@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" + +update-notifier@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" + dependencies: + boxen "^0.6.0" + chalk "^1.0.0" + configstore "^2.0.0" + is-npm "^1.0.0" + latest-version "^2.0.0" + lazy-req "^1.1.0" + semver-diff "^2.0.0" + xdg-basedir "^2.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +urijs@^1.16.1: + version "1.18.10" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.10.tgz#b94463eaba59a1a796036a467bb633c667f221ab" + +urix@^0.1.0, urix@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + +url-loader@0.5.8: + version "0.5.8" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.8.tgz#b9183b1801e0f847718673673040bc9dc1c715c5" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@^1.1.1, url-parse@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" + dependencies: + querystringify "~1.0.0" + requires-port "1.0.x" + +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" + +utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.1, uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +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" + +value-equal@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.2.1.tgz#c220a304361fce6994dbbedaa3c7e1a1b895871d" + +vary@~1.1.0, vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" + +vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +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" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + dependencies: + makeerror "1.0.x" + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + dependencies: + loose-envify "^1.0.0" + +watch@~0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" + +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" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + +webidl-conversions@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.1.tgz#8015a17ab83e7e1b311638486ace81da6ce206a0" + +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-dev-server@2.4.5: + version "2.4.5" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz#31384ce81136be1080b4b4cde0eb9b90e54ee6cf" + dependencies: + ansi-html "0.0.7" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + opn "4.0.2" + portfinder "^1.0.9" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.2" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.10.2" + yargs "^6.0.0" + +webpack-manifest-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.1.0.tgz#6b6c718aade8a2537995784b46bd2e9836057caa" + dependencies: + fs-extra "^0.30.0" + lodash ">=3.5 <5" + +webpack-sources@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" + dependencies: + source-list-map "~0.1.7" + source-map "~0.5.3" + +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" + +websocket-driver@>=0.5.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + +whatwg-encoding@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz#3c6c451a198ee7aec55b1ec61d0920c67801a5f4" + dependencies: + iconv-lite "0.4.13" + +whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0, whatwg-fetch@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +whatwg-url@^4.3.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +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.12, 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" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + +wordwrap@0.0.2, 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" + +worker-farm@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.3.1.tgz#4333112bb49b17aa050b87895ca6b2cacf40e5ff" + dependencies: + errno ">=0.1.1 <0.2.0-0" + xtend ">=4.0.0 <4.1.0-0" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^1.1.2: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-stdout@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" + +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" + +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + dependencies: + os-homedir "^1.0.0" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +xml-name-validator@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.0.0: + 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-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs@^1.2.6: + version "1.3.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.3.3.tgz#054de8b61f22eefdb7207059eaef9d6b83fb931a" + +yargs@^3.5.4: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + +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@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + 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 "^5.0.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" diff --git a/packages/cp-gql-mock-server/.eslintignore b/packages/cp-gql-mock-server/.eslintignore new file mode 100644 index 00000000..2b7cecf7 --- /dev/null +++ b/packages/cp-gql-mock-server/.eslintignore @@ -0,0 +1,2 @@ +.nyc_output +coverage \ No newline at end of file diff --git a/packages/cp-gql-mock-server/.eslintrc b/packages/cp-gql-mock-server/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/cp-gql-mock-server/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/cp-gql-mock-server/.tern-project b/packages/cp-gql-mock-server/.tern-project new file mode 100644 index 00000000..02c6bbe0 --- /dev/null +++ b/packages/cp-gql-mock-server/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} diff --git a/packages/cp-gql-mock-server/package.json b/packages/cp-gql-mock-server/package.json new file mode 100644 index 00000000..b1b8fbb9 --- /dev/null +++ b/packages/cp-gql-mock-server/package.json @@ -0,0 +1,28 @@ +{ + "name": "joyent-cp-gql-mock-server", + "version": "1.0.2", + "private": true, + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "src/index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0", + "start": "node src/index.js" + }, + "dependencies": { + "good": "^7.2.0", + "good-console": "^6.4.0", + "good-squeeze": "^5.0.2", + "graphql": "^0.9.6", + "graphql-server-hapi": "^0.7.2", + "graphql-tools": "^0.11.0", + "hapi": "^16.1.1", + "joi": "^10.5.0", + "joyent-cp-gql-schema": "^1.0.2" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0" + } +} diff --git a/packages/cp-gql-mock-server/src/data.json b/packages/cp-gql-mock-server/src/data.json new file mode 100644 index 00000000..7a3ad0fe --- /dev/null +++ b/packages/cp-gql-mock-server/src/data.json @@ -0,0 +1,172 @@ +{ + "datacenter": { + "uuid": "datacenter-uuid", + "region": "us-east-1" + }, + "portal": { + "username": "juditgreskovits" + }, + "deploymentGroups": [ + { + "uuid": "e0ea0c02-55cc-45fe-8064-3e5176a59401", + "slug": "forest-foundation-dev", + "name": "WarpRecords Blog" + }, + { + "uuid": "9fcb374d-a267-4c2a-9d9c-ba469b804639", + "slug": "forest-foundation-testing", + "name": "Forest Foundation Testing" + }, + { + "uuid": "ac2c2498-e865-4ee3-9e26-8c75a81cbe25", + "slug": "forest-foundation-production", + "name": "Forest Foundation Production" + } + ], + "services": [ + { + "uuid": "081a792c-47e0-4439-924b-2efa9788ae9e", + "slug": "nginx", + "name": "Nginx", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401", + "connections": [ + "be227788-74f1-4e5b-a85f-b5c71cbae8d8" + ] + }, + { + "uuid": "be227788-74f1-4e5b-a85f-b5c71cbae8d8", + "slug": "wordpress", + "name": "Wordpress", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401", + "connections": [ + "6a0eee76-c019-413b-9d5f-44712b55b993", + "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "4ee4103e-1a52-4099-a48e-01588f597c70" + ] + }, + { + "uuid": "6a0eee76-c019-413b-9d5f-44712b55b993", + "slug": "nfs", + "name": "NFS", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "slug": "memcached", + "name": "Memcached", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "4ee4103e-1a52-4099-a48e-01588f597c70", + "slug": "percona", + "name": "Percona", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "9572d367-c4ae-4fb1-8ad5-f5e3830e7034", + "slug": "primary", + "name": "Primary", + "parent": "4ee4103e-1a52-4099-a48e-01588f597c70", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "c8411ef0-ab39-42cb-a704-d20b170eff31", + "slug": "secondaries", + "name": "Secondaries", + "parent": "4ee4103e-1a52-4099-a48e-01588f597c70", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "97c68055-db88-45c9-ad49-f26da4264777", + "slug": "consul", + "name": "Consul", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "primary-consul", + "slug": "consul", + "name": "Consul", + "deploymentGroup": "9fcb374d-a267-4c2a-9d9c-ba469b804639" + }, + { + "uuid": "primary-nginx", + "slug": "nginx", + "name": "Nginx", + "deploymentGroup": "9fcb374d-a267-4c2a-9d9c-ba469b804639" + }, + { + "uuid": "primary-mongodb", + "slug": "mongodb", + "name": "MongoDB", + "deploymentGroup": "9fcb374d-a267-4c2a-9d9c-ba469b804639" + } + ], + "instances": [ + { + "uuid": "309ecd9f-ac03-474b-aff7-4bd2e743296c", + "name": "wordpress_01", + "service": "be227788-74f1-4e5b-a85f-b5c71cbae8d8", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "0db6db53-de6f-4378-839e-5d5b452fbaf2", + "name": "nfs_01", + "service": "6a0eee76-c019-413b-9d5f-44712b55b993", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "250c8a6c-7d02-49a9-8abd-e1c22773041d", + "name": "consul", + "service": "97c68055-db88-45c9-ad49-f26da4264777", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "2c921f3a-8bc3-4f57-9cd7-789ebae72061", + "name": "memcache_01", + "service": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "68d3046e-8e34-4f5d-a0e5-db3795a250fd", + "name": "memcache_02", + "service": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "2ea99763-3b44-4179-8393-d66d94961051", + "name": "memcache_03", + "service": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "25f6bc62-63b8-4959-908e-1f6d7ff6341d", + "name": "memcache_04", + "service": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "8be01042-0281-4a77-a357-25979e87bf3d", + "name": "memcache_05", + "service": "6d31aff4-de1e-4042-a983-fbd23d5c530c", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "3d652e9d-73e8-4a6f-8171-84fa83740662", + "name": "nginx", + "service": "081a792c-47e0-4439-924b-2efa9788ae9e", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "c3ec7633-a02b-4615-86a0-9e6faeaae94b", + "name": "percona-primary", + "service": "4ee4103e-1a52-4099-a48e-01588f597c70", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + }, + { + "uuid": "c2b5fec2-31e2-41a7-b7fc-cd0bb1822e76", + "name": "percona-secondary", + "service": "4ee4103e-1a52-4099-a48e-01588f597c70", + "deploymentGroup": "e0ea0c02-55cc-45fe-8064-3e5176a59401" + } + ] +} diff --git a/packages/cp-gql-mock-server/src/index.js b/packages/cp-gql-mock-server/src/index.js new file mode 100644 index 00000000..17d4d031 --- /dev/null +++ b/packages/cp-gql-mock-server/src/index.js @@ -0,0 +1,81 @@ +const schema = require('joyent-cp-gql-schema'); +const { graphqlHapi, graphiqlHapi } = require('graphql-server-hapi'); +const { makeExecutableSchema } = require('graphql-tools'); +const Good = require('good'); +const Hapi = require('hapi'); +const resolvers = require('./resolvers'); + +const server = new Hapi.Server({ + debug: { + log: ['error'], + request: ['error'] + } +}); + +const handlerError = err => { + if (err) { + // eslint-disable-next-line no-console + console.error(err); + process.exit(1); + } +}; + +server.connection({ + port: 3000 +}); + +server.register( + [ + { + register: Good, + options: { + reporters: { + console: [ + { + module: 'good-squeeze', + name: 'Squeeze', + args: [{ log: '*', response: '*' }] + }, + { + module: 'good-console' + }, + 'stdout' + ] + } + } + }, + { + register: graphiqlHapi, + options: { + path: '/graphiql', + graphiqlOptions: { + endpointURL: '/graphql' + } + } + }, + { + register: graphqlHapi, + options: { + path: '/graphql', + graphqlOptions: { + schema: makeExecutableSchema({ + typeDefs: schema.sync(), + resolvers + }) + }, + route: { + cors: true + } + } + } + ], + err => { + handlerError(err); + + server.start(err => { + handlerError(err); + // eslint-disable-next-line no-console + console.log(`server started at http://0.0.0.0:${server.info.port}`); + }); + } +); diff --git a/packages/cp-gql-mock-server/src/resolvers.js b/packages/cp-gql-mock-server/src/resolvers.js new file mode 100644 index 00000000..130f89a5 --- /dev/null +++ b/packages/cp-gql-mock-server/src/resolvers.js @@ -0,0 +1,52 @@ +const { + datacenter, + portal, + deploymentGroups, + services, + instances +} = require('./data.json'); + +const find = (query = {}) => item => + Object.keys(query).every(key => item[key] === query[key]); + +const cleanQuery = (q = {}) => JSON.parse(JSON.stringify(q)); + +const getServiceInstances = s => + Object.assign({}, s, { + instances: instances.filter(find({ service: s.uuid })).map(s => + Object.assign({}, s, { + slug: s.name + }) + ) + }); + +const getDeploymentGroupServices = dg => + Object.assign({}, dg, { + services: services + .filter(find({ deploymentGroup: dg.uuid })) + .map(getServiceInstances) + }); + +const getDeploymentGroups = query => + deploymentGroups + .filter(find(cleanQuery(query))) + .map(getDeploymentGroupServices); + +const getPortal = () => + Object.assign({}, portal, { + datacenter, + deploymentGroups: getDeploymentGroups() + }); + +const getServices = query => + services.filter(find(query)).map(getDeploymentGroupServices); + +module.exports = { + Query: { + portal: getPortal, + deploymentGroups: getDeploymentGroups, + deploymentGroup: query => getDeploymentGroups(query).shift(), + services: getServices, + service: query => getServices(query).shift() + } +}; diff --git a/packages/cp-gql-mock-server/yarn.lock b/packages/cp-gql-mock-server/yarn.lock new file mode 100644 index 00000000..bdf56cea --- /dev/null +++ b/packages/cp-gql-mock-server/yarn.lock @@ -0,0 +1,1222 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/boom@*": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@types/boom/-/boom-4.3.2.tgz#8f40fb142322958ff1bb520c2d8d20cf1dd3d468" + +"@types/catbox@*": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@types/catbox/-/catbox-7.1.0.tgz#adb0962f1cd9ba14d15efc0de91503364845e5f6" + dependencies: + "@types/boom" "*" + +"@types/graphql@^0.9.0": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@types/graphql/-/graphql-0.9.1.tgz#b04ebe84bc997cc60dbea2ed4d0d4342c737f99d" + +"@types/hapi@^16.0.0": + version "16.1.2" + resolved "https://registry.yarnpkg.com/@types/hapi/-/hapi-16.1.2.tgz#e782b399a11ef8934c3de3ab07aae9fb53cb0968" + dependencies: + "@types/boom" "*" + "@types/catbox" "*" + "@types/joi" "*" + "@types/mimos" "*" + "@types/node" "*" + "@types/podium" "*" + "@types/shot" "*" + +"@types/joi@*": + version "10.3.2" + resolved "https://registry.yarnpkg.com/@types/joi/-/joi-10.3.2.tgz#bc4ce6577c294710663d347ebe59087f375075a5" + +"@types/mime-db@*": + version "1.27.0" + resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.27.0.tgz#9bc014a1fd1fdf47649c1a54c6dd7966b8284792" + +"@types/mimos@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/mimos/-/mimos-3.0.0.tgz#20356e7381e9529c2a7e764c798be5a48cdeff96" + dependencies: + "@types/mime-db" "*" + +"@types/node@*": + version "7.0.22" + resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.22.tgz#4593f4d828bdd612929478ea40c67b4f403ca255" + +"@types/podium@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/podium/-/podium-1.0.0.tgz#bfaa2151be2b1d6109cc69f7faa9dac2cba3bb20" + +"@types/shot@*": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@types/shot/-/shot-3.4.0.tgz#459477c5187d3ebd303660ab099e7e9e0f3b656f" + dependencies: + "@types/node" "*" + +accept@2.x.x: + version "2.1.3" + resolved "https://registry.yarnpkg.com/accept/-/accept-2.1.3.tgz#ab0f5bda4c449bbe926aea607b3522562f5acf86" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + 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" + +ammo@2.x.x: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ammo/-/ammo-2.0.3.tgz#914bbcf65b043ed0f58a8a9d0196e250ec51e6a7" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +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" + +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" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +b64@3.x.x: + version "3.0.2" + resolved "https://registry.yarnpkg.com/b64/-/b64-3.0.2.tgz#7a9d60466adf7b8de114cbdf651a5fdfcc90894d" + +babel-code-frame@^6.16.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" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +boom@4.x.x, boom@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +call@4.x.x: + version "4.0.1" + resolved "https://registry.yarnpkg.com/call/-/call-4.0.1.tgz#9318189ee3ca03a54d03f3159882992a2254b034" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +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" + +catbox-memory@2.x.x: + version "2.0.4" + resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-2.0.4.tgz#433e255902caf54233d1286429c8f4df14e822d5" + dependencies: + hoek "4.x.x" + +catbox@7.x.x: + version "7.1.3" + resolved "https://registry.yarnpkg.com/catbox/-/catbox-7.1.3.tgz#9817edec5a921743282addfc9c45ace52847eebb" + dependencies: + boom "4.x.x" + hoek "4.x.x" + joi "10.x.x" + +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" + +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: + 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-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +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" + +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.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" + +content@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/content/-/content-3.0.3.tgz#000f8a01371b95c66afe99be9390fa6cb91aa87a" + dependencies: + boom "4.x.x" + +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" + +cryptiles@3.x.x: + version "3.1.1" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.1.tgz#86a9203f7367a0e9324bc7555ff0fcf5f81979ee" + dependencies: + boom "4.x.x" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +debug@^2.1.1: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +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.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" + +deprecated-decorator@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" + +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" + +duplexify@^3.1.2: + version "3.5.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" + dependencies: + end-of-stream "1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +end-of-stream@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" + dependencies: + once "~1.3.0" + +end-of-stream@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + 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-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@^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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fast-safe-stringify@1.1.x: + version "1.1.13" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-1.1.13.tgz#a01e9cd9c9e491715c98a75a42d5f0bbd107ff76" + +figures@^1.3.5: + 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" + +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" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +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" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +good-console@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/good-console/-/good-console-6.4.0.tgz#7294c9d90c4c9f059a082e180625495966d2ba59" + dependencies: + hoek "4.x.x" + joi "8.1.x" + json-stringify-safe "5.0.x" + moment "2.15.x" + +good-squeeze@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/good-squeeze/-/good-squeeze-5.0.2.tgz#a8e58242b4a0b32cdbdf317b60e73a19a7f0879b" + dependencies: + fast-safe-stringify "1.1.x" + hoek "4.x.x" + +good@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/good/-/good-7.2.0.tgz#c94daa44bfb96388f28f6ce8ac8bfd468c2df704" + dependencies: + hoek "4.x.x" + joi "10.x.x" + oppsy "1.x.x" + pumpify "1.3.x" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graphql-server-core@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/graphql-server-core/-/graphql-server-core-0.7.0.tgz#a658b3b0704f8a19b24254b64bef6b3d0ddce8ba" + optionalDependencies: + "@types/graphql" "^0.9.0" + +graphql-server-hapi@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/graphql-server-hapi/-/graphql-server-hapi-0.7.2.tgz#2fa55b8a000952f125af038404563e72d0ba05ab" + dependencies: + boom "^4.3.1" + graphql-server-core "^0.7.0" + graphql-server-module-graphiql "^0.7.2" + optionalDependencies: + "@types/graphql" "^0.9.0" + "@types/hapi" "^16.0.0" + +graphql-server-module-graphiql@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/graphql-server-module-graphiql/-/graphql-server-module-graphiql-0.7.2.tgz#aa1f2a26eadbf7127c1b077e633d5086da52b330" + +graphql-tools@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-0.11.0.tgz#14c372f6ddad7e63a757094d541a937d6b31b7da" + dependencies: + deprecated-decorator "^0.1.6" + lodash "^4.3.0" + uuid "^3.0.1" + optionalDependencies: + "@types/graphql" "^0.9.0" + +graphql@^0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-0.9.6.tgz#514421e9d225c29dfc8fd305459abae58815ef2c" + dependencies: + iterall "^1.0.0" + +hapi@^16.1.1: + version "16.1.1" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-16.1.1.tgz#0466db0703ba15cd00f07175ccf394d9cb56b1e0" + dependencies: + accept "2.x.x" + ammo "2.x.x" + boom "4.x.x" + call "4.x.x" + catbox "7.x.x" + catbox-memory "2.x.x" + cryptiles "3.x.x" + heavy "4.x.x" + hoek "4.x.x" + iron "4.x.x" + items "2.x.x" + joi "10.x.x" + mimos "3.x.x" + podium "^1.2.x" + shot "3.x.x" + statehood "5.x.x" + subtext "^4.3.x" + topo "2.x.x" + +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" + +heavy@4.x.x: + version "4.0.3" + resolved "https://registry.yarnpkg.com/heavy/-/heavy-4.0.3.tgz#976bba118b011b15fe904aa4f292a168bfc6232f" + dependencies: + boom "4.x.x" + hoek "4.x.x" + joi "10.x.x" + +hoek@4.x.x: + version "4.1.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.1.1.tgz#9cc573ffba2b7b408fb5e9c2a13796be94cddce9" + +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" + +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.1, inherits@^2.0.3, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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" + +iron@4.x.x: + version "4.0.4" + resolved "https://registry.yarnpkg.com/iron/-/iron-4.0.4.tgz#c1f8cc4c91454194ab8920d9247ba882e528061a" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + +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-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-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-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" + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isemail@2.x.x: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" + +items@2.x.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/items/-/items-2.1.1.tgz#8bd16d9c83b19529de5aea321acaada78364a198" + +iterall@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.1.1.tgz#f7f0af11e9a04ec6426260f5019d9fcca4d50214" + +joi@10.x.x, joi@^10.5.0: + version "10.5.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-10.5.0.tgz#4e3172a199c993b36aabe5a987b00b1b541c3059" + dependencies: + hoek "4.x.x" + isemail "2.x.x" + items "2.x.x" + topo "2.x.x" + +joi@8.1.x: + version "8.1.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-8.1.1.tgz#2d8b52a5d909d217ed47248577eefe8b1798f48f" + dependencies: + hoek "4.x.x" + isemail "2.x.x" + moment "2.x.x" + topo "2.x.x" + +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.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" + +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.x: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +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" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash@^4.0.0, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +mime-db@1.x.x: + version "1.28.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.28.0.tgz#fedd349be06d2865b7fc57d837c6de4f17d7ac3c" + +mimos@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/mimos/-/mimos-3.0.3.tgz#b9109072ad378c2b72f6a0101c43ddfb2b36641f" + dependencies: + hoek "4.x.x" + mime-db "1.x.x" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +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.15.x, moment@2.x.x: + version "2.15.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.15.2.tgz#1bfdedf6a6e345f322fe956d5df5bd08a8ce84dc" + +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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +nigel@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/nigel/-/nigel-2.0.2.tgz#93a1866fb0c52d87390aa75e2b161f4b5c75e5b1" + dependencies: + hoek "4.x.x" + vise "2.x.x" + +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" + +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" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +oppsy@1.x.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/oppsy/-/oppsy-1.0.2.tgz#98014cd6967653a83cfffa554226dc90050baad4" + dependencies: + hoek "4.x.x" + items "2.x.x" + +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" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +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-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +pez@2.x.x: + version "2.1.4" + resolved "https://registry.yarnpkg.com/pez/-/pez-2.1.4.tgz#73f822fa62d599d65c4606f490d54d345191bc7c" + dependencies: + b64 "3.x.x" + boom "4.x.x" + content "3.x.x" + hoek "4.x.x" + nigel "2.x.x" + +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" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +podium@^1.2.x: + version "1.2.5" + resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" + dependencies: + hoek "4.x.x" + items "2.x.x" + joi "10.x.x" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +pump@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@1.3.x: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.3.5.tgz#1b671c619940abcaeac0ad0e3a3c164be760993b" + dependencies: + duplexify "^3.1.2" + inherits "^2.0.1" + pump "^1.0.0" + +readable-stream@^2.0.0, readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +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: + 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" + +rimraf@^2.2.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shot@3.x.x: + version "3.4.0" + resolved "https://registry.yarnpkg.com/shot/-/shot-3.4.0.tgz#e7125ee72575ae5218349e933636808d790d4b92" + dependencies: + hoek "4.x.x" + joi "10.x.x" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +statehood@5.x.x: + version "5.0.1" + resolved "https://registry.yarnpkg.com/statehood/-/statehood-5.0.1.tgz#fc13c97b37751c18e70513d2b97e896ac8b73005" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + iron "4.x.x" + items "2.x.x" + joi "10.x.x" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +string-width@^1.0.1: + 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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +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" + +subtext@^4.3.x: + version "4.4.0" + resolved "https://registry.yarnpkg.com/subtext/-/subtext-4.4.0.tgz#0cf137965f47fe0e126a56a2488bb1c88dc93514" + dependencies: + boom "4.x.x" + content "3.x.x" + hoek "4.x.x" + pez "2.x.x" + wreck "10.x.x" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +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" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +topo@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" + dependencies: + hoek "4.x.x" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +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" + +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" + +uuid@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +vise@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vise/-/vise-2.0.2.tgz#6b08e8fb4cb76e3a50cd6dd0ec37338e811a0d39" + dependencies: + hoek "4.x.x" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +wreck@10.x.x: + version "10.0.0" + resolved "https://registry.yarnpkg.com/wreck/-/wreck-10.0.0.tgz#98ab882f85e16a526332507f101f5a7841162278" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +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" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" diff --git a/packages/cp-gql-schema/.eslintrc b/packages/cp-gql-schema/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/cp-gql-schema/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/cp-gql-schema/.tern-project b/packages/cp-gql-schema/.tern-project new file mode 100644 index 00000000..6d78dea5 --- /dev/null +++ b/packages/cp-gql-schema/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} \ No newline at end of file diff --git a/packages/cp-gql-schema/README.md b/packages/cp-gql-schema/README.md new file mode 100644 index 00000000..b72447da --- /dev/null +++ b/packages/cp-gql-schema/README.md @@ -0,0 +1,30 @@ +# joyent-portal-gql-cp-schema + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +[GraphQL](http://graphql.org) schema that represents the data structure and dependencies of the Container Pilot Portal. To be used by other packages so that they can lock and adapt properly to changes made to it, rather than having duplicates of this schema. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add --dev joyent-portal-gql-cp-schema +``` + +## Usage + +```js +const containerPilotSchema = require('joyent-portal-gql-cp-schema'); + +containerPilotSchema().then((schema) => console.log(schema)) +``` + +## License + +MPL-2.0 diff --git a/packages/cp-gql-schema/index.js b/packages/cp-gql-schema/index.js new file mode 100644 index 00000000..2a724415 --- /dev/null +++ b/packages/cp-gql-schema/index.js @@ -0,0 +1,8 @@ +const path = require('path'); +const { readFile } = require('mz/fs'); +const { readFileSync } = require('fs'); + +const file = path.join(__dirname, 'schema.gql'); + +module.exports = () => readFile(file, 'utf-8'); +module.exports.sync = () => readFileSync(file, 'utf-8'); diff --git a/packages/cp-gql-schema/package.json b/packages/cp-gql-schema/package.json new file mode 100644 index 00000000..476c334d --- /dev/null +++ b/packages/cp-gql-schema/package.json @@ -0,0 +1,19 @@ +{ + "name": "joyent-cp-gql-schema", + "version": "1.0.2", + "private": true, + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0" + }, + "dependencies": { + "mz": "^2.6.0" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0" + } +} diff --git a/packages/cp-gql-schema/schema.gql b/packages/cp-gql-schema/schema.gql new file mode 100644 index 00000000..76032b22 --- /dev/null +++ b/packages/cp-gql-schema/schema.gql @@ -0,0 +1,183 @@ +scalar Date +scalar Object + +type Portal { + username: String! + datacenter: Datacenter! # we can infer dockerhost from this + deploymentGroups: [DeploymentGroup]! +} + +type DeploymentGroup { + uuid: ID! + name: String! + slug: String! + services(slug: String): [Service]! + version: Version! + history: [Version]! +} + +type ServiceScale { + uuid: ID! + serviceName: String! + replicas: Int! +} + +enum ConvergenceActionType { + NOOP + CREATE + RECREATE + START +} + +type ConvergenceAction { + uuid: ID! + type: ConvergenceActionType! + service: String! # service name + machines: [String]! # instance machine ids +} + +type StateConvergencePlan { + uuid: ID! + running: Boolean! + actions: [ConvergenceAction]! +} + +type Version { + uuid: ID! + created: Date! # Either Int or define scalar + manifest: Manifest! + scale: [ServiceScale]! + plan: StateConvergencePlan +} + +enum ManifestType { + COMPOSE + MARIPOSA +} + +enum ManifestFormat { + JSON + YAML +} + +type Manifest { + uuid: ID! + created: Date! + type: ManifestType! + format: ManifestFormat! + raw: String! + obj: Object! +} + +# immutable +type Service { + uuid: ID! # unique id for db row + hash: String! # unique id for version of service + name: String! # human readable name + slug: String! + instances: [Instance]! + # metrics: [MetricType]! + currentMetrics: [CurrentMetric]! + connections: [String!] # list of serviceUuids + parent: ID # parent service uuid + package: Package! # we don't have this in current mock data +} + +# for metrics max / min (I guess) +type Package { + uuid: ID! + name: String! + type: String! + memory: Float! + disk: Float! + swap: Float! + lwps: Int! + vcpus: Int! + version: String! + group: String! +} + +enum InstanceStatus { + CREATED + RESTARTING + RUNNING + PAUSED + EXITED + DELETED +} + +type Instance { + uuid: ID! + slug: String! + name: String! + machineId: String! + status: InstanceStatus! + # metrics: [InstanceMetric]! +} + +type Datacenter { + uuid: String! + # name: String! # Do we have 'official' human readable names? + region: String! +} + +type InstanceMetric { + type: MetricType! + data: [MetricData]! +} + +type CurrentMetric { + name: String! + value: Float! + measurement: String! +} + +type MetricType { + uuid: ID! + name: String! + id: String! +} + +type MetricData { + timestamp: Int! + value: Float! +} + +# we probably wont use some of these queries or arguments +# but this way we expose the entire db through gql +type Query { + portal: Portal + deploymentGroups(name: String, slug: String): [DeploymentGroup] + deploymentGroup(uuid: ID, name: String, slug: String): DeploymentGroup + serviceScales(serviceName: String, versionUuid: ID): [ServiceScale] + serviceScale(uuid: ID!): ServiceScale + convergenceActions(type: ConvergenceActionType, service: String, versionUuid: ID): [ConvergenceAction] + convergenceAction(uuid: ID!): ConvergenceAction + stateConvergencePlans(running: Boolean, versionUuid: ID): [StateConvergencePlan] + stateConvergencePlan(uuid: ID!): StateConvergencePlan + versions(manifestUuid: ID, deploymentGroupUuid: ID): [Version] + version(uuid: ID, manifestUuid: ID): Version + manifests(type: String, deploymentGroupUuid: ID): [Manifest] + manifest(uuid: ID!): Manifest + services(name: String, slug: String, parentUuid: ID, deploymentGroupUuid: ID, deploymentGroupSlug: String): [Service] + service(uuid: ID, hash: ID): Service + packages(name: String, type: String, memory: Int, disk: Int, swap: Int, lwps: Int, vcpus: Int, version: String, group: String): [Package] + package(uuid: ID!): Package + instances(name: String!, machineId: ID, status: InstanceStatus, serviceUuid: ID, serviceSlug: String, deploymentGroupUuid: ID, deploymentGroupSlug: String): [Instance] + instance(uuid: ID!): Instance + datacenter(uuid: ID, region: String): Datacenter +} + +type Mutation { + createDeploymentGroup(name: String!) : DeploymentGroup + updateDeploymentGroup(uuid: ID!, name: String!) : DeploymentGroup + provisionManifest(deploymentGroupUuid: ID!, type: ManifestType!, format: ManifestFormat!, raw: String!) : Version + scale(service: ID!, replicas: Int!) : Version + stopServices(uuids: [ID]!) : [Service] + startServices(uuids: [ID]!) : [Service] + restartServices(uuids: [ID]!) : [Service] + deleteServices(uuids: [ID]!) : [Service] + stopInstances(uuids: [ID]!) : [Instance] + startInstances(uuids: [ID]!) : [Instance] + restartInstances(uuids: [ID]!) : [Instance] +} diff --git a/packages/cp-gql-schema/yarn.lock b/packages/cp-gql-schema/yarn.lock new file mode 100644 index 00000000..137bebaf --- /dev/null +++ b/packages/cp-gql-schema/yarn.lock @@ -0,0 +1,844 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + 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" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + +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" + +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" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +babel-code-frame@^6.16.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" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +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" + +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" + +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: + 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-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +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" + +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.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" + +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" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +debug@^2.1.1: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +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.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" + +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" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + 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-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@^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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^1.3.5: + 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" + +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" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +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" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +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" + +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" + +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: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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" + +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-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-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-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" + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +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.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" + +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" + +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" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash@^4.0.0, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +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" + +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" + +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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +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" + +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" + +once@^1.3.0: + 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" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +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-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +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" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +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: + 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" + +rimraf@^2.2.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +string-width@^1.0.1: + 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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +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" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +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" + +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" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +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" + +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" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +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" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" diff --git a/packages/cp-rdb-bootstrap/.eslintrc b/packages/cp-rdb-bootstrap/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/cp-rdb-bootstrap/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/cp-rdb-bootstrap/.tern-project b/packages/cp-rdb-bootstrap/.tern-project new file mode 100644 index 00000000..6d78dea5 --- /dev/null +++ b/packages/cp-rdb-bootstrap/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} \ No newline at end of file diff --git a/packages/cp-rdb-bootstrap/package.json b/packages/cp-rdb-bootstrap/package.json new file mode 100644 index 00000000..2c69e7d9 --- /dev/null +++ b/packages/cp-rdb-bootstrap/package.json @@ -0,0 +1,15 @@ +{ + "name": "joyent-cp-rdb-bootstrap", + "version": "1.0.2", + "private": true, + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0" + }, + "devDependencies": { + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0" + } +} diff --git a/packages/cp-rdb-bootstrap/yarn.lock b/packages/cp-rdb-bootstrap/yarn.lock new file mode 100644 index 00000000..f06112f0 --- /dev/null +++ b/packages/cp-rdb-bootstrap/yarn.lock @@ -0,0 +1,820 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + 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" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +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" + +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" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +babel-code-frame@^6.16.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" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +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" + +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" + +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: + 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-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +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" + +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.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" + +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" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +debug@^2.1.1: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +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.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" + +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" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + 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-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@^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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^1.3.5: + 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" + +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" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +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" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +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" + +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" + +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: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +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" + +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-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-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-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" + +isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +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.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" + +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" + +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" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lodash@^4.0.0, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +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" + +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" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +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" + +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" + +once@^1.3.0: + 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" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +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-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +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" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +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: + 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" + +rimraf@^2.2.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +string-width@^1.0.1: + 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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +strip-ansi@^3.0.0: + 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-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +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" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +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" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +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" + +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" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +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" + +xtend@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" diff --git a/packages/docker-compose-client/.baberc b/packages/docker-compose-client/.baberc new file mode 100644 index 00000000..9d461d08 --- /dev/null +++ b/packages/docker-compose-client/.baberc @@ -0,0 +1,7 @@ +{ + "env": { + "test": { + "plugins": ["istanbul"] + } + } +} diff --git a/packages/docker-compose-client/.eslintignore b/packages/docker-compose-client/.eslintignore new file mode 100644 index 00000000..2b7cecf7 --- /dev/null +++ b/packages/docker-compose-client/.eslintignore @@ -0,0 +1,2 @@ +.nyc_output +coverage \ No newline at end of file diff --git a/packages/docker-compose-client/.eslintrc b/packages/docker-compose-client/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/docker-compose-client/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/docker-compose-client/.tern-project b/packages/docker-compose-client/.tern-project new file mode 100644 index 00000000..6d78dea5 --- /dev/null +++ b/packages/docker-compose-client/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} \ No newline at end of file diff --git a/packages/docker-compose-client/README.md b/packages/docker-compose-client/README.md new file mode 100644 index 00000000..7dcbf34b --- /dev/null +++ b/packages/docker-compose-client/README.md @@ -0,0 +1,41 @@ +# docker-compose-client + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![npm](https://img.shields.io/npm/v/docker-compose-client.svg?style=flat-square)](https://npmjs.com/package/docker-compose-client) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +Server that exposes [CloudApi](https://apidocs.joyent.com/cloudapi/) through [GraphQL](http://graphql.org). + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add docker-compose-client +``` + +## Usage + +```js +const client = new DockerComposeClient(); + +const res = await client.provision({ + projectName: 'docker-compose-client', + manifest: ` + hello: + image: hello-world:latest + world: + image: consul:latest + node: + image: node:latest + ` +}); +``` + +## License + +MPL-2.0 diff --git a/packages/docker-compose-client/package.json b/packages/docker-compose-client/package.json new file mode 100644 index 00000000..40e64da7 --- /dev/null +++ b/packages/docker-compose-client/package.json @@ -0,0 +1,47 @@ +{ + "name": "docker-compose-client", + "version": "1.0.4", + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "src/index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text ava" + }, + "dependencies": { + "apr-awaitify": "^1.0.4", + "zerorpc": "^0.9.7" + }, + "devDependencies": { + "apr-intercept": "^1.0.4", + "ava": "0.19.1", + "babel-plugin-istanbul": "^4.1.3", + "babel-register": "^6.24.1", + "cross-env": "^5.0.0", + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0", + "js-yaml": "^3.8.4", + "nyc": "^10.3.2" + }, + "nyc": { + "sourceMap": false, + "instrument": false + }, + "babel": { + "sourceMaps": "inline", + "env": { + "test": { + "plugins": [ + "istanbul" + ] + } + } + }, + "ava": { + "tap": true, + "require": [ + "babel-register" + ], + "babel": "inherit" + } +} diff --git a/packages/docker-compose-client/src/index.js b/packages/docker-compose-client/src/index.js new file mode 100644 index 00000000..1210d54d --- /dev/null +++ b/packages/docker-compose-client/src/index.js @@ -0,0 +1,50 @@ +const { Client } = require('zerorpc'); +const { EventEmitter } = require('events'); +const awaitify = require('apr-awaitify'); + +class DockerComposeClient extends EventEmitter { + constructor(endpoint = 'tcp://0.0.0.0:4242') { + super(); + + this.client = new Client({ + heartbeatInterval: 60 * 4 * 1000, // 4m + timeout: 60 * 30 // 30m + }); + + this.client.connect(endpoint); + this.client.on('error', err => this.emit('error', err)); + + this._invoke = awaitify(this._invoke.bind(this)); + } + + // Why isn't client.connect async with error?? + _invoke(name, ...args) { + return this.client.invoke(name, ...args); + } + + close() { + return this.client.close(); + } + + provision({ projectName, manifest }) { + // eslint-disable-next-line camelcase + return this._invoke('up', { project_name: projectName }, manifest); + } + + scale({ projectName, services, manifest }) { + return this._invoke( + 'scale', + { + // eslint-disable-next-line camelcase + project_name: projectName, + services: Object.keys(services).map(name => ({ + name, + num: services[name] + })) + }, + manifest + ); + } +} + +module.exports = DockerComposeClient; diff --git a/packages/docker-compose-client/test/index.js b/packages/docker-compose-client/test/index.js new file mode 100644 index 00000000..1d487895 --- /dev/null +++ b/packages/docker-compose-client/test/index.js @@ -0,0 +1,120 @@ +const { name } = require('../package.json'); +const { safeLoad } = require('js-yaml'); +const { Server } = require('zerorpc'); +const intercept = require('apr-intercept'); +const test = require('ava'); + +const DockerComposeClient = require('../'); +const client = new DockerComposeClient(); + +const server = new Server({ + // eslint-disable-next-line object-shorthand + up: function(options, manifest, fn) { + if (typeof options !== 'object') { + return fn(new Error('Expected options')); + } + + if (typeof options.project_name !== 'string') { + return fn(new Error('Expected project name')); + } + + if (typeof manifest !== 'string') { + return fn(new Error('Expected manifest')); + } + + try { + safeLoad(manifest); + } catch (err) { + return fn(err); + } + + fn(null, { + projectName: options.project_name + }); + }, + // eslint-disable-next-line object-shorthand + scale: function(options, manifest, fn) { + if (typeof options !== 'object') { + return fn(new Error('Expected options')); + } + + if (typeof options.project_name !== 'string') { + return fn(new Error('Expected project name')); + } + + if (!Array.isArray(options.services)) { + return fn(new Error('Expected services')); + } + + if (typeof manifest !== 'string') { + return fn(new Error('Expected manifest')); + } + + try { + safeLoad(manifest); + } catch (err) { + return fn(err); + } + + fn(null, { + projectName: options.project_name, + services: options.services + }); + } +}); + +server.bind('tcp://0.0.0.0:4242'); + +test('provision', async t => { + const [err, res] = await intercept( + client.provision({ + projectName: name, + manifest: ` + hello: + image: hello-world:latest + world: + image: consul:latest + node: + image: node:latest + ` + }) + ); + + t.ifError(err); + + t.deepEqual(res, { + projectName: name + }); +}); + +test('scale', async t => { + const [err, res] = await intercept( + client.scale({ + projectName: name, + services: { + hello: 2, + world: 3 + }, + manifest: ` + hello: + image: hello-world:latest + world: + image: consul:latest + node: + image: node:latest + ` + }) + ); + + t.ifError(err); + + t.deepEqual(res, { + projectName: name, + services: [{ name: 'hello', num: 2 }, { name: 'world', num: 3 }] + }); +}); + +test.after(() => { + client.close(); + server.close(); +}); diff --git a/packages/docker-compose-client/yarn.lock b/packages/docker-compose-client/yarn.lock new file mode 100644 index 00000000..8068c62f --- /dev/null +++ b/packages/docker-compose-client/yarn.lock @@ -0,0 +1,3636 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ava/babel-plugin-throws-helper@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz#2fc1fe3c211a71071a4eca7b8f7af5842cd1ae7c" + +"@ava/babel-preset-stage-4@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.0.0.tgz#a613b5e152f529305422546b072d47facfb26291" + dependencies: + babel-plugin-check-es2015-constants "^6.8.0" + babel-plugin-syntax-trailing-function-commas "^6.20.0" + babel-plugin-transform-async-to-generator "^6.16.0" + babel-plugin-transform-es2015-destructuring "^6.19.0" + babel-plugin-transform-es2015-function-name "^6.9.0" + babel-plugin-transform-es2015-modules-commonjs "^6.18.0" + babel-plugin-transform-es2015-parameters "^6.21.0" + babel-plugin-transform-es2015-spread "^6.8.0" + babel-plugin-transform-es2015-sticky-regex "^6.8.0" + babel-plugin-transform-es2015-unicode-regex "^6.11.0" + babel-plugin-transform-exponentiation-operator "^6.8.0" + package-hash "^1.2.0" + +"@ava/babel-preset-transform-test-files@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz#cded1196a8d8d9381a509240ab92e91a5ec069f7" + dependencies: + "@ava/babel-plugin-throws-helper" "^2.0.0" + babel-plugin-espower "^2.3.2" + +"@ava/pretty-format@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@ava/pretty-format/-/pretty-format-1.1.0.tgz#d0a57d25eb9aeab9643bdd1a030642b91c123e28" + dependencies: + ansi-styles "^2.2.1" + esutils "^2.0.2" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + 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" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +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.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.0.0.tgz#5404e93a544c4fec7f048262977bebfe3155e0c1" + dependencies: + color-convert "^1.0.0" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +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" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +apr-awaitify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/apr-awaitify/-/apr-awaitify-1.0.4.tgz#a72074a0d333e090bb120be9f710fd106b48a90a" + +apr-intercept@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/apr-intercept/-/apr-intercept-1.0.4.tgz#01c64345f4af647b6b04f5aba4755195429b061a" + +aproba@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +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-exclude@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arr-exclude/-/arr-exclude-1.0.0.tgz#dfc7c2e552a270723ccda04cf3128c8cbfe5c631" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +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, array-uniq@^1.0.2: + 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, arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^1.4.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +auto-bind@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-1.1.0.tgz#93b864dc7ee01a326281775d5c75ca0a751e5961" + +ava-init@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ava-init/-/ava-init-0.2.0.tgz#9304c8b4c357d66e3dfdae1fbff47b1199d5c55d" + dependencies: + arr-exclude "^1.0.0" + execa "^0.5.0" + has-yarn "^1.0.0" + read-pkg-up "^2.0.0" + write-pkg "^2.0.0" + +ava@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/ava/-/ava-0.19.1.tgz#43dd82435ad19b3980ffca2488f05daab940b273" + dependencies: + "@ava/babel-preset-stage-4" "^1.0.0" + "@ava/babel-preset-transform-test-files" "^3.0.0" + "@ava/pretty-format" "^1.1.0" + arr-flatten "^1.0.1" + array-union "^1.0.1" + array-uniq "^1.0.2" + arrify "^1.0.0" + auto-bind "^1.1.0" + ava-init "^0.2.0" + babel-code-frame "^6.16.0" + babel-core "^6.17.0" + bluebird "^3.0.0" + caching-transform "^1.0.0" + chalk "^1.0.0" + chokidar "^1.4.2" + clean-stack "^1.1.1" + clean-yaml-object "^0.1.0" + cli-cursor "^2.1.0" + cli-spinners "^1.0.0" + cli-truncate "^1.0.0" + co-with-promise "^4.6.0" + code-excerpt "^2.1.0" + common-path-prefix "^1.0.0" + convert-source-map "^1.2.0" + core-assert "^0.2.0" + currently-unhandled "^0.4.1" + debug "^2.2.0" + diff "^3.0.1" + diff-match-patch "^1.0.0" + dot-prop "^4.1.0" + empower-core "^0.6.1" + equal-length "^1.0.0" + figures "^2.0.0" + find-cache-dir "^0.1.1" + fn-name "^2.0.0" + get-port "^3.0.0" + globby "^6.0.0" + has-flag "^2.0.0" + hullabaloo-config-manager "^1.0.0" + ignore-by-default "^1.0.0" + indent-string "^3.0.0" + is-ci "^1.0.7" + is-generator-fn "^1.0.0" + is-obj "^1.0.0" + is-observable "^0.2.0" + is-promise "^2.1.0" + jest-diff "19.0.0" + jest-snapshot "19.0.2" + js-yaml "^3.8.2" + last-line-stream "^1.0.0" + lodash.debounce "^4.0.3" + lodash.difference "^4.3.0" + lodash.flatten "^4.2.0" + lodash.isequal "^4.5.0" + loud-rejection "^1.2.0" + matcher "^0.1.1" + md5-hex "^2.0.0" + meow "^3.7.0" + mkdirp "^0.5.1" + ms "^0.7.1" + multimatch "^2.1.0" + observable-to-promise "^0.5.0" + option-chain "^0.1.0" + package-hash "^2.0.0" + pkg-conf "^2.0.0" + plur "^2.0.0" + pretty-ms "^2.0.0" + require-precompiled "^0.1.0" + resolve-cwd "^1.0.0" + slash "^1.0.0" + source-map-support "^0.4.0" + stack-utils "^1.0.0" + strip-ansi "^3.0.1" + strip-bom-buf "^1.0.0" + supports-color "^3.2.3" + time-require "^0.1.2" + unique-temp-dir "^1.0.0" + update-notifier "^2.1.0" + +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.16.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.17.0, babel-core@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.24.1" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + 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-generator@^6.1.0, babel-generator@^6.18.0, babel-generator@^6.24.1: + 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-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-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-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-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.8.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-espower@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" + dependencies: + babel-generator "^6.1.0" + babylon "^6.1.0" + call-matcher "^1.0.0" + core-js "^2.0.0" + espower-location-detector "^1.0.0" + espurify "^1.6.0" + estraverse "^4.1.1" + +babel-plugin-istanbul@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.3.tgz#6ee6280410dcf59c7747518c3dfd98680958f102" + dependencies: + find-up "^2.1.0" + istanbul-lib-instrument "^1.7.1" + test-exclude "^4.1.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-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-trailing-function-commas@^6.20.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.16.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-destructuring@^6.19.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-function-name@^6.9.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-modules-commonjs@^6.18.0: + 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-parameters@^6.21.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-spread@^6.8.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.8.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-unicode-regex@^6.11.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.8.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-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-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.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.16.0, babel-template@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.18.0, babel-traverse@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.18.0, babel-types@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babylon@^6.1.0, babylon@^6.11.0, babylon@^6.13.0, babylon@^6.15.0: + version "6.17.1" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +bindings@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.0.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +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" + +boxen@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.1.0.tgz#b1b69dd522305e807a99deee777dbd6e5167b102" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^1.1.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^0.1.0" + widest-line "^1.0.0" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + 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" + +buf-compare@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buf-compare/-/buf-compare-1.0.1.tgz#fef28da8b8113a0a0db4430b0b6467b69730b34a" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +caching-transform@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1" + dependencies: + md5-hex "^1.2.0" + mkdirp "^0.5.1" + write-file-atomic "^1.1.4" + +call-matcher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.0.1.tgz#5134d077984f712a54dad3cbf62de28dce416ca8" + dependencies: + core-js "^2.0.0" + deep-equal "^1.0.0" + espurify "^1.6.0" + estraverse "^4.0.0" + +call-signature@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996" + +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-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +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@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +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.2: + 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" + +ci-info@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" + +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +clean-stack@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-1.3.0.tgz#9e821501ae979986c46b1d66d2d432db2fd4ae31" + +clean-yaml-object@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^1.0.1: + 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-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.0.0.tgz#ef987ed3d48391ac3dab9180b406a742180d6e6a" + +cli-truncate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.0.0.tgz#21eb91f47b3f6560f004db77a769b4668d9c5518" + dependencies: + slice-ansi "0.0.4" + string-width "^2.0.0" + +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-with-promise@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co-with-promise/-/co-with-promise-4.6.0.tgz#413e7db6f5893a60b942cf492c4bec93db415ab7" + dependencies: + pinkie-promise "^1.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-excerpt@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/code-excerpt/-/code-excerpt-2.1.0.tgz#5dcc081e88f4a7e3b554e9e35d7ef232d47f8147" + dependencies: + convert-to-spaces "^1.0.1" + +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" + +common-path-prefix@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-1.0.0.tgz#cd52f6f0712e0baab97d6f9732874f22f47752c0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +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.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" + +configstore@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +convert-source-map@^1.1.0, convert-source-map@^1.2.0, convert-source-map@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +convert-to-spaces@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz#7e3e48bbe6d997b1417ddca2868204b4d3d85715" + +core-assert@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/core-assert/-/core-assert-0.2.1.tgz#f85e2cf9bfed28f773cc8b3fa5c5b69bdc02fe3f" + dependencies: + buf-compare "^1.0.0" + is-error "^2.2.0" + +core-js@^2.0.0, 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" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +cross-env@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.0.tgz#565ccae4d09676441a5087f406fe7661a29c931b" + dependencies: + cross-spawn "^5.1.0" + is-windows "^1.0.0" + +cross-spawn-async@^2.1.1: + version "2.2.5" + resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" + dependencies: + lru-cache "^4.0.0" + which "^1.2.8" + +cross-spawn@^4, cross-spawn@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +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-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +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-time@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/date-time/-/date-time-0.1.1.tgz#ed2f6d93d9790ce2fd66d5b5ff3edd5bbcbf3b07" + +debug-log@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@^2.1.1, debug@^2.2.0, debug@^2.6.3: + 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, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +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" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +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" + +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" + +diff-match-patch@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.0.tgz#1cc3c83a490d67f95d91e39f6ad1f2e086b63048" + +diff@^3.0.0, diff@^3.0.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dot-prop@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" + dependencies: + is-obj "^1.0.0" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +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" + +empower-core@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-0.6.1.tgz#6c187f502fcef7554d57933396aac655483772b1" + dependencies: + call-signature "0.0.2" + core-js "^2.0.0" + +equal-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/equal-length/-/equal-length-1.0.1.tgz#21ca112d48ab24b4e1e7ffc0e5339d31fdfc274c" + +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" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.21" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.21.tgz#19a725f9e51d0300bbc1e8e821109fd9daf55925" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-error@^4.0.1, es6-error@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98" + +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-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, 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@^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" + +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" + dependencies: + is-url "^1.2.1" + path-is-absolute "^1.0.0" + source-map "^0.5.0" + xtend "^4.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" + +espurify@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.7.0.tgz#1c5cf6cbccc32e6f639380bd4f991fab9ba9d226" + dependencies: + core-js "^2.0.0" + +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.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.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" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +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" + +execa@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3" + dependencies: + cross-spawn-async "^2.1.1" + is-stream "^1.1.0" + npm-run-path "^1.0.0" + object-assign "^4.0.1" + path-key "^1.0.0" + strip-eof "^1.0.0" + +execa@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36" + dependencies: + cross-spawn "^4.0.0" + get-stream "^2.2.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" + +figures@^1.3.5: + 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" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +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, find-up@^1.1.2: + 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" + +fn-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + +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" + +foreground-child@^1.3.3, foreground-child@^1.5.3: + version "1.5.6" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" + dependencies: + cross-spawn "^4" + signal-exit "^3.0.0" + +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" + +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.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +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" + +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-port@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.1.0.tgz#ef01b18a84ca6486970ff99e54446141a73ffd3e" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +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@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.0.0, globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +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" + +globby@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +handlebars@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +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-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has-yarn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-1.0.0.tgz#89e25db604b725c8f5976fff0addc921b828a5a7" + +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" + +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.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +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" + +hullabaloo-config-manager@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hullabaloo-config-manager/-/hullabaloo-config-manager-1.0.1.tgz#c72be7ba249a67c99b6ba3eb1f55837fa01acd8f" + dependencies: + dot-prop "^4.1.0" + es6-error "^4.0.2" + graceful-fs "^4.1.11" + indent-string "^3.1.0" + json5 "^0.5.1" + lodash.clonedeep "^4.5.0" + lodash.clonedeepwith "^4.5.0" + lodash.isequal "^4.5.0" + lodash.merge "^4.6.0" + md5-hex "^2.0.0" + package-hash "^2.0.0" + pkg-dir "^1.0.0" + resolve-from "^2.0.0" + +ignore-by-default@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +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, indent-string@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.1.0.tgz#08ff4334603388399b329e6b9538dc7a3cf5de7d" + +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.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^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: + 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" + +irregular-plurals@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" + +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-ci@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" + dependencies: + ci-info "^1.0.0" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +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-error@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-error/-/is-error-2.2.1.tgz#684a96d84076577c98f4cdb40c6d26a5123bf19c" + +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, is-finite@^1.0.1: + 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-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + +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-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.0.2, 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-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-observable@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" + dependencies: + symbol-observable "^0.2.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-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +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-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.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-url@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.2.tgz#498905a593bf47cc2d9e7f738372bbf7696c7f26" + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +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" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-lib-coverage@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.0.tgz#caca19decaef3525b5d6331d701f3f3b7ad48528" + +istanbul-lib-hook@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.6.tgz#c0866d1e81cf2d5319249510131fc16dee49231f" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.1.tgz#169e31bc62c778851a99439dd99c3cc12184d360" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.13.0" + istanbul-lib-coverage "^1.1.0" + semver "^5.3.0" + +istanbul-lib-report@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.0.tgz#444c4ecca9afa93cf584f56b10f195bf768c0770" + dependencies: + istanbul-lib-coverage "^1.1.0" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.0.tgz#8c7706d497e26feeb6af3e0c28fd5b0669598d0e" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.0.tgz#1ef3b795889219cfb5fad16365f6ce108d5f8c66" + dependencies: + handlebars "^4.0.3" + +jest-diff@19.0.0, jest-diff@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-19.0.0.tgz#d1563cfc56c8b60232988fbc05d4d16ed90f063c" + dependencies: + chalk "^1.1.3" + diff "^3.0.0" + jest-matcher-utils "^19.0.0" + pretty-format "^19.0.0" + +jest-file-exists@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-file-exists/-/jest-file-exists-19.0.0.tgz#cca2e587a11ec92e24cfeab3f8a94d657f3fceb8" + +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-message-util@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-19.0.0.tgz#721796b89c0e4d761606f9ba8cb828a3b6246416" + dependencies: + chalk "^1.1.1" + micromatch "^2.3.11" + +jest-mock@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-19.0.0.tgz#67038641e9607ab2ce08ec4a8cb83aabbc899d01" + +jest-snapshot@19.0.2: + version "19.0.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-19.0.2.tgz#9c1b216214f7187c38bfd5c70b1efab16b0ff50b" + dependencies: + chalk "^1.1.3" + jest-diff "^19.0.0" + jest-file-exists "^19.0.0" + jest-matcher-utils "^19.0.0" + jest-util "^19.0.2" + natural-compare "^1.4.0" + pretty-format "^19.0.0" + +jest-util@^19.0.2: + version "19.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-19.0.2.tgz#e0a0232a2ab9e6b2b53668bdb3534c2b5977ed41" + dependencies: + chalk "^1.1.1" + graceful-fs "^4.1.6" + jest-file-exists "^19.0.0" + jest-message-util "^19.0.0" + jest-mock "^19.0.0" + jest-validate "^19.0.2" + leven "^2.0.0" + mkdirp "^0.5.1" + +jest-validate@^19.0.2: + version "19.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-19.0.2.tgz#dc534df5f1278d5b63df32b14241d4dbf7244c0c" + dependencies: + chalk "^1.1.1" + jest-matcher-utils "^19.0.0" + leven "^2.0.0" + pretty-format "^19.0.0" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.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.5.1, js-yaml@^3.8.2, js-yaml@^3.8.4: + 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-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" + +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" + +last-line-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/last-line-stream/-/last-line-stream-1.0.0.tgz#d1b64d69f86ff24af2d04883a2ceee14520a5600" + dependencies: + through2 "^2.0.0" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazy-req@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4" + +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" + +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" + +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.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.clonedeepwith@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz#6ee30573a03a1a60d670a62ef33c10cf1afdbdd4" + +lodash.debounce@^4.0.3: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + +lodash.difference@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + +lodash.flatten@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.merge@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" + +lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +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: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0, loud-rejection@^1.2.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@^4.0.0, lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +matcher@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-0.1.2.tgz#ef20cbde64c24c50cc61af5b83ee0b1b8ff00101" + dependencies: + escape-string-regexp "^1.0.4" + +md5-hex@^1.2.0, md5-hex@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4" + dependencies: + md5-o-matic "^0.1.1" + +md5-hex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-2.0.0.tgz#d0588e9f1c74954492ecd24ac0ac6ce997d92e33" + dependencies: + md5-o-matic "^0.1.1" + +md5-o-matic@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3" + +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-source-map@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.3.tgz#da1415f2722a5119db07b14c4f973410863a2abf" + dependencies: + source-map "^0.5.3" + +micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +mime-db@~1.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" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +ms@^0.7.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + +msgpack@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/msgpack/-/msgpack-1.0.2.tgz#923e2c5cffa65c8418e9b228d1124793969c429c" + dependencies: + nan "^2.0.9" + +multimatch@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" + dependencies: + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +nan@^2.0.9, nan@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +nan@~2.3.0: + version "2.3.5" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.3.5.tgz#822a0dc266290ce4cd3a12282ca3e7e364668a08" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +node-pre-gyp@^0.6.29: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + 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" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + 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-run-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" + dependencies: + path-key "^1.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +nyc@^10.3.2: + version "10.3.2" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.3.2.tgz#f27f4d91f2a9db36c24f574ff5c6efff0233de46" + dependencies: + archy "^1.0.0" + arrify "^1.0.1" + caching-transform "^1.0.0" + convert-source-map "^1.3.0" + debug-log "^1.0.1" + default-require-extensions "^1.0.0" + find-cache-dir "^0.1.1" + find-up "^1.1.2" + foreground-child "^1.5.3" + glob "^7.0.6" + istanbul-lib-coverage "^1.1.0" + istanbul-lib-hook "^1.0.6" + istanbul-lib-instrument "^1.7.1" + istanbul-lib-report "^1.1.0" + istanbul-lib-source-maps "^1.2.0" + istanbul-reports "^1.1.0" + md5-hex "^1.2.0" + merge-source-map "^1.0.2" + micromatch "^2.3.11" + mkdirp "^0.5.0" + resolve-from "^2.0.0" + rimraf "^2.5.4" + signal-exit "^3.0.1" + spawn-wrap "1.2.4" + test-exclude "^4.1.0" + yargs "^7.1.0" + yargs-parser "^5.0.0" + +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" + +observable-to-promise@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/observable-to-promise/-/observable-to-promise-0.5.0.tgz#c828f0f0dc47e9f86af8a4977c5d55076ce7a91f" + dependencies: + is-observable "^0.2.0" + symbol-observable "^1.0.4" + +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" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +option-chain@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/option-chain/-/option-chain-0.1.1.tgz#e9b811e006f1c0f54802f28295bfc8970f8dcfbd" + dependencies: + object-assign "^4.0.1" + +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" + +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-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" + +package-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-1.2.0.tgz#003e56cd57b736a6ed6114cc2b81542672770e44" + dependencies: + md5-hex "^1.3.0" + +package-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-2.0.0.tgz#78ae326c89e05a4d813b68601977af05c00d2a0d" + dependencies: + graceful-fs "^4.1.11" + lodash.flattendeep "^4.4.0" + md5-hex "^2.0.0" + release-zalgo "^1.0.0" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +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" + +parse-ms@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-0.1.2.tgz#dd3fa25ed6c2efc7bdde12ad9b46c163aa29224e" + +parse-ms@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-1.0.1.tgz#56346d4749d78f23430ca0c713850aef91aa361d" + +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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +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" + +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, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-1.0.0.tgz#d1da67f5482563bb7cf57f286ae2822ecfbf3670" + dependencies: + pinkie "^1.0.0" + +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@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-conf@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279" + dependencies: + find-up "^2.0.0" + load-json-file "^2.0.0" + +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" + +plur@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/plur/-/plur-1.0.0.tgz#db85c6814f5e5e5a3b49efc28d604fec62975156" + +plur@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +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" + +pretty-ms@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-0.2.2.tgz#da879a682ff33a37011046f13d627f67c73b84f6" + dependencies: + parse-ms "^0.1.0" + +pretty-ms@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-2.1.0.tgz#4257c256df3fb0b451d6affaab021884126981dc" + dependencies: + is-finite "^1.0.1" + parse-ms "^1.0.0" + plur "^1.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" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-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.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +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" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +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" + +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" + +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + dependencies: + es6-error "^4.0.1" + +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + +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-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-precompiled@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/require-precompiled/-/require-precompiled-0.1.0.tgz#5a1b52eb70ebed43eb982e974c85ab59571e56fa" + +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-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f" + dependencies: + resolve-from "^2.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-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve@^1.1.6: + 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" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +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.3.3, rimraf@^2.5.1, rimraf@^2.5.4, 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" + +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" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +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" + +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.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +signal-exit@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-2.1.2.tgz#375879b1f92ebc3b334480d038dc546a6d558564" + +signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +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" + +sort-keys@^1.1.1, sort-keys@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-map-support@^0.4.0, 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.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" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +spawn-wrap@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40" + dependencies: + foreground-child "^1.3.3" + mkdirp "^0.5.0" + os-homedir "^1.0.1" + rimraf "^2.3.3" + signal-exit "^2.0.0" + which "^1.2.4" + +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.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + 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" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-utils@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + +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.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.1.tgz#62e200f039955a6810d8df0a33ffc0f013662d98" + dependencies: + safe-buffer "^5.0.1" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-buf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + dependencies: + is-utf8 "^0.2.1" + +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-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +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" + +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.2, supports-color@^3.2.3: + 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@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" + +symbol-observable@^1.0.4: + 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" + +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" + +term-size@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" + dependencies: + execa "^0.4.0" + +test-exclude@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.0.tgz#04ca70b7390dd38c98d4a003a173806ca7991c91" + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +time-require@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" + dependencies: + chalk "^0.4.0" + date-time "^0.1.1" + pretty-ms "^0.2.1" + text-table "^0.2.0" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +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" + +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" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@^2.6: + version "2.8.27" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.27.tgz#47787f912b0f242e5b984343be8e35e95f694c9c" + 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" + +uid2@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + +underscore@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.3.3.tgz#47ac53683daf832bfa952e1774417da47817ae42" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +unique-temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz#6dce95b2681ca003eebfb304a415f9cbabcc5385" + dependencies: + mkdirp "^0.5.1" + os-tmpdir "^1.0.1" + uid2 "0.0.3" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9" + dependencies: + boxen "^1.0.0" + chalk "^1.0.0" + configstore "^3.0.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + lazy-req "^2.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +user-home@^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" + +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" + +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.4, which@^1.2.8, 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" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +window-size@0.1.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@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-file-atomic@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.1.0.tgz#1769f4b551eedce419f0505deae2e26763542d37" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write-json-file@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.1.0.tgz#ba1cf3ac7ee89db26c3d528986e48421389046b7" + dependencies: + graceful-fs "^4.1.2" + make-dir "^1.0.0" + pify "^2.0.0" + sort-keys "^1.1.1" + write-file-atomic "^2.0.0" + +write-pkg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-2.1.0.tgz#353aa44c39c48c21440f5c08ce6abd46141c9c08" + dependencies: + sort-keys "^1.1.2" + write-json-file "^2.0.0" + +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" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xtend@^4.0.0, xtend@~4.0.1: + 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.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + 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 "^5.0.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" + +zerorpc@^0.9.7: + version "0.9.7" + resolved "https://registry.yarnpkg.com/zerorpc/-/zerorpc-0.9.7.tgz#64ddb32ce8c934bea5434ec81ca22e971045a860" + dependencies: + msgpack "1.0.2" + underscore "1.3.3" + uuid "^3.0.0" + zmq "2.x" + +zmq@2.x: + version "2.15.3" + resolved "https://registry.yarnpkg.com/zmq/-/zmq-2.15.3.tgz#66c6de82cc36b09734b820703776490a6fbbe624" + dependencies: + bindings "~1.2.1" + nan "~2.3.0" diff --git a/packages/eslint-config/.eslintrc b/packages/eslint-config/.eslintrc new file mode 100644 index 00000000..d811f404 --- /dev/null +++ b/packages/eslint-config/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "./index.js" +} diff --git a/packages/eslint-config/.tern-project b/packages/eslint-config/.tern-project new file mode 100644 index 00000000..6d78dea5 --- /dev/null +++ b/packages/eslint-config/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} \ No newline at end of file diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md new file mode 100644 index 00000000..52eb3bf5 --- /dev/null +++ b/packages/eslint-config/README.md @@ -0,0 +1,28 @@ +# eslint-config-joyent-portal + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add eslint-config-joyent-portal +``` + +## Usage + +```json +{ + "extends": "joyent-portal" +} +``` + +## License + +MPL-2.0 diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js new file mode 100644 index 00000000..ce645991 --- /dev/null +++ b/packages/eslint-config/index.js @@ -0,0 +1,21 @@ +// TODO wait for eslint/eslint#3458 + +module.exports = { + extends: ['eslint:recommended', 'xo-space/esnext', 'react-app', 'prettier'], + plugins: ['prettier'], + rules: { + 'prettier/prettier': [ + 'error', + { + useTabs: false, + printWidth: 80, + tabWidth: 2, + singleQuote: true, + trailingComma: 'none', + bracketSpacing: true, + jsxBracketSameLine: false, + semi: true + } + ] + } +}; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json new file mode 100644 index 00000000..654dee3d --- /dev/null +++ b/packages/eslint-config/package.json @@ -0,0 +1,23 @@ +{ + "name": "eslint-config-joyent-portal", + "version": "1.0.0", + "license": "MPL-2.0", + "repository": "github:yldio/joyent-portal", + "main": "index.js", + "scripts": { + "lint": "eslint . --fix --format=tap", + "test": "exit 0" + }, + "peerDependencies": { + "babel-eslint": "^7.2.3", + "eslint": "^3.19.0", + "eslint-config-prettier": "^2.1.0", + "eslint-config-react-app": "^0.6.2", + "eslint-config-xo-space": "^0.16.0", + "eslint-plugin-flowtype": "^2.33.0", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^5.0.3", + "eslint-plugin-prettier": "^2.0.1", + "eslint-plugin-react": "^7.0.1" + } +} diff --git a/packages/normalized-styled-components/.babelrc b/packages/normalized-styled-components/.babelrc new file mode 100644 index 00000000..8914de81 --- /dev/null +++ b/packages/normalized-styled-components/.babelrc @@ -0,0 +1,13 @@ +{ + "sourceMaps": "inline", + "plugins": [ + "styled-components" + ], + "env": { + "test": { + "presets": [ + "react-app" + ] + } + } +} diff --git a/packages/normalized-styled-components/.eslintignore b/packages/normalized-styled-components/.eslintignore new file mode 100644 index 00000000..6db80622 --- /dev/null +++ b/packages/normalized-styled-components/.eslintignore @@ -0,0 +1,3 @@ +.nyc_output +coverage +dist \ No newline at end of file diff --git a/packages/normalized-styled-components/.eslintrc b/packages/normalized-styled-components/.eslintrc new file mode 100644 index 00000000..14dc524b --- /dev/null +++ b/packages/normalized-styled-components/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "joyent-portal" +} diff --git a/packages/normalized-styled-components/.stylelintrc b/packages/normalized-styled-components/.stylelintrc new file mode 100644 index 00000000..42c893e9 --- /dev/null +++ b/packages/normalized-styled-components/.stylelintrc @@ -0,0 +1,5 @@ +{ + "syntax": "scss", + "processors": ["stylelint-processor-styled-components"], + "extends": ["stylelint-config-standard", "stylelint-config-primer"] +} \ No newline at end of file diff --git a/packages/normalized-styled-components/.tern-project b/packages/normalized-styled-components/.tern-project new file mode 100644 index 00000000..6d78dea5 --- /dev/null +++ b/packages/normalized-styled-components/.tern-project @@ -0,0 +1,10 @@ +{ + "libs": [ + "ecmascript" + ], + "plugins": { + "doc_comment": true, + "local-scope": true, + "node": true + } +} \ No newline at end of file diff --git a/packages/normalized-styled-components/README.md b/packages/normalized-styled-components/README.md new file mode 100644 index 00000000..579d6111 --- /dev/null +++ b/packages/normalized-styled-components/README.md @@ -0,0 +1,64 @@ +# normalized-styled-components + +[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MPL-2.0) +[![npm](https://img.shields.io/npm/v/normalized-styled-components.svg?style=flat-square)](https://npmjs.com/package/normalized-styled-components) +[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) + +[`normalize.css`](https://github.com/necolas/normalize.css) with a [`styled-components`](https://github.com/styled-components/styled-components) mindset. + +## Table of Contents + +- [Install](#install) +- [Usage](#usage) +- [License](#license) + +## Install + +``` +yarn add --dev normalized-styled-components +``` + +## Usage + +```js +import { Button } from 'normalized-styled-components'; + +export default () => ( + +) +``` +```css +.jdhBdT { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; + overflow: visible; + text-transform: none; + appearance: button; + -moz-appearance: button; + -webkit-appearance: button; +} + +.jdhBdT::-moz-focus-inner, +.jdhBdT[type="button"]::-moz-focus-inner, +.jdhBdT[type="reset"]::-moz-focus-inner, +.jdhBdT[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +.jdhBdT:-moz-focusring, +.jdhBdT[type="button"]:-moz-focusring, +.jdhBdT[type="reset"]:-moz-focusring, +.jdhBdT[type="submit"]:-moz-focusring { + outline: 0.0625rem dotted ButtonText; +} +``` +```html + +``` + +## License + +MPL-2.0 diff --git a/packages/normalized-styled-components/package.json b/packages/normalized-styled-components/package.json new file mode 100644 index 00000000..e2df9d2e --- /dev/null +++ b/packages/normalized-styled-components/package.json @@ -0,0 +1,63 @@ +{ + "name": "normalized-styled-components", + "version": "1.0.3", + "license": "MPL-2.0", + "description": "normalize.css with a styled-components mindset", + "keywords": [ + "normalizations", + "style", + "css", + "react", + "css", + "css-in-js", + "styled-components" + ], + "repository": "github:yldio/joyent-portal", + "main": "dist/normalized-styled-components.umd.js", + "jsnext:main": "dist/normalized-styled-components.es.js", + "module": "dist/normalized-styled-components.es.js", + "entry": "src/index.js", + "scripts": { + "lint:css": "exit 0 # stylelint \"./src/*.js\"", + "lint:js": "eslint . --fix --format=tap", + "lint": "run-s lint:*", + "test:unit": "cross-env NODE_ENV=test jest --coverage", + "test": "cross-env NODE_ENV=test run-s test:*", + "build": "cross-env bup", + "prepublish": "run-s build" + }, + "dependencies": { + "remcalc": "^1.0.3" + }, + "devDependencies": { + "babel-plugin-styled-components": "^1.1.4", + "babel-preset-react-app": "^3.0.0", + "bup": "^1.0.7", + "chalk": "^1.1.3", + "cross-env": "^5.0.0", + "eslint": "^3.19.0", + "eslint-config-joyent-portal": "1.0.0", + "jest": "^20.0.4", + "jest-diff": "^20.0.3", + "jest-matcher-utils": "^20.0.3", + "jest-snapshot": "^20.0.3", + "jest-styled-components": "^3.0.0-1", + "npm-run-all": "^4.0.2", + "react": "^15.5.4", + "react-test-renderer": "^15.5.4", + "strip-ansi": "^3.0.1", + "styled-components": "^2.0.0-19", + "stylelint": "^7.10.1", + "stylelint-config-primer": "^1.4.0", + "stylelint-config-standard": "^16.0.0", + "stylelint-processor-styled-components": "styled-components/stylelint-processor-styled-components#68b4c4f" + }, + "peerDependencies": { + "react": "*", + "styled-components": "*" + }, + "jest": { + "testEnvironment": "node", + "testRegex": "test/index.js" + } +} diff --git a/packages/normalized-styled-components/src/index.js b/packages/normalized-styled-components/src/index.js new file mode 100644 index 00000000..0cd671fe --- /dev/null +++ b/packages/normalized-styled-components/src/index.js @@ -0,0 +1,259 @@ +import styled from 'styled-components'; +import remcalc from 'remcalc'; + +export const Article = styled.article` + display: block; +`; + +export const Aside = styled.aside` + display: block; +`; + +export const Footer = styled.footer` + display: block; +`; + +export const Header = styled.header` + display: block; +`; + +export const Nav = styled.nav` + display: block; +`; + +export const Section = styled.section` + display: block; +`; + +export const FigCaption = styled.figcaption` + display: block; +`; + +export const Figure = styled.figure` + display: block; + margin: ${remcalc(16)} ${remcalc(40)}; +`; + +export const Main = styled.main` + display: block; +`; + +export const H1 = styled.h1` + font-size: ${remcalc(32)}; + margin: ${remcalc(10)} 0; +`; + +export const Hr = styled.hr` + box-sizing: content-box; + height: 0; + overflow: visible; +`; + +export const Pre = styled.pre` + font-family: monospace, monospace; + font-size: ${remcalc(16)}; +`; + +export const A = styled.a` + background-color: transparent; + text-decoration-skip: objects; +`; + +export const Abbr = styled.abbr` + &[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; + } +`; + +export const B = styled.b` + font-weight: bolder; +`; + +export const Strong = styled.strong` + font-weight: bolder; +`; + +export const Code = styled.code` + font-family: monospace, monospace; + font-size: ${remcalc(16)}; +`; + +export const Kbd = styled.kbd` + font-family: monospace, monospace; + font-size: ${remcalc(16)}; +`; + +export const Samp = styled.samp` + font-family: monospace, monospace; + font-size: ${remcalc(16)}; +`; + +export const Dfn = styled.dfn` + font-style: italic; +`; + +export const Mark = styled.mark` + background-color: #ff0; + color: #000; +`; + +export const Small = styled.small` + font-size: 80%; +`; + +export const Sub = styled.sub` + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + bottom: -0.25em; +`; + +export const Sup = styled.sup` + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + top: -0.5em; +`; + +export const Audio = styled.audio` + display: inline-block; + + &:not([controls]) { + display: none; + height: 0; + } +`; + +export const Video = styled.video` + display: inline-block; +`; + +export const Img = styled.img` + border-style: none; +`; + +export const Svg = styled.svg` + &:not(:root) { + overflow: hidden; + } +`; + +export const Button = styled.button` + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; + overflow: visible; + text-transform: none; + appearance: button; + + &::-moz-focus-inner, + &[type="button"]::-moz-focus-inner, + &[type="reset"]::-moz-focus-inner, + &[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; + } + + &:-moz-focusring, + &[type="button"]:-moz-focusring, + &[type="reset"]:-moz-focusring, + &[type="submit"]:-moz-focusring { + outline: ${remcalc(1)} dotted ButtonText; + } +`; + +export const Input = styled.input` + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; + overflow: visible; + + &[type="checkbox"], + &[type="radio"] { + box-sizing: border-box; + padding: 0; + } + + &[type="number"]::-webkit-inner-spin-button, + &[type="number"]::-webkit-outer-spin-button { + height: auto; + } + + &[type="search"] { + appearance: textfield; + outline-offset: ${remcalc(-2)}; + } + + &[type="search"]::-webkit-search-cancel-button, + &[type="search"]::-webkit-search-decoration { + appearance: none; + } + + &::-webkit-file-upload-button { + appearance: button; + font: inherit; + } +`; + +export const Optgroup = styled.optgroup` + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; +`; + +export const Select = styled.select` + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; + text-transform: none; +`; + +export const Textarea = styled.textarea` + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; + overflow: auto; +`; + +export const Fieldset = styled.fieldset` + padding: 0.35em 0.75em 0.625em; +`; + +export const Legend = styled.legend` + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; +`; + +export const Progress = styled.progress` + display: inline-block; + vertical-align: baseline; +`; + +export const Details = styled.details` + display: block; +`; + +export const Menu = styled.menu` + display: block; +`; + +export const Summary = styled.summary` + display: list-item; +`; + +export const Canvas = styled.canvas` + display: inline-block; +`; diff --git a/packages/normalized-styled-components/test/__snapshots__/index.js.snap b/packages/normalized-styled-components/test/__snapshots__/index.js.snap new file mode 100644 index 00000000..b256c254 --- /dev/null +++ b/packages/normalized-styled-components/test/__snapshots__/index.js.snap @@ -0,0 +1,473 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`renders correctly 1`] = ` +.lovCuy { + background-color: transparent; + text-decoration-skip: objects; +} + + +`; + +exports[`renders correctly 1`] = ` + + + +`; + +exports[`renders
    correctly 1`] = ` +.ikMeRt { + display: block; +} + +
    +`; + +exports[`renders