From 9b8fd075570b86388cc027fb90182221b1008a75 Mon Sep 17 00:00:00 2001 From: kunw Date: Fri, 24 Feb 2017 18:14:10 +0800 Subject: [PATCH] Remove unused files --- harbor-app/.editorconfig | 20 - harbor-app/.gitignore | 9 - harbor-app/.travis.yml | 10 - harbor-app/CODE_OF_CONDUCT.md | 19 - harbor-app/CONTRIBUTING.md | 113 - harbor-app/Clarity Seed_LICENSE_MIT.txt | 16 - harbor-app/Clarity Seed_NOTICE.txt | 8 - harbor-app/README.md | 121 - harbor-app/angular-cli.json | 67 - harbor-app/e2e/app.e2e-spec.ts | 17 - harbor-app/e2e/app.po.ts | 13 - harbor-app/e2e/tsconfig.json | 25 - harbor-app/karma.conf.js | 44 - harbor-app/logo.png | Bin 5534 -> 0 bytes harbor-app/package.json | 58 - harbor-app/protractor.config.js | 32 - .../account-settings-modal.component.html | 55 - .../account-settings-modal.component.ts | 103 - harbor-app/src/app/account/account.module.ts | 23 - .../password/forgot-password.component.html | 0 .../password/forgot-password.component.ts | 10 - .../password/password-setting.component.html | 55 - .../password/password-setting.component.ts | 98 - .../password/password-setting.service.ts | 35 - .../app/account/password/password-setting.ts | 11 - .../app/account/sign-in/sign-in.component.css | 7 - .../account/sign-in/sign-in.component.html | 38 - .../app/account/sign-in/sign-in.component.ts | 130 - .../app/account/sign-in/sign-in.service.ts | 42 - .../account/sign-up/sign-up.component.html | 1 - .../app/account/sign-up/sign-up.component.ts | 10 - harbor-app/src/app/app.component.html | 1 - harbor-app/src/app/app.component.scss | 8 - harbor-app/src/app/app.component.spec.ts | 46 - harbor-app/src/app/app.component.ts | 12 - harbor-app/src/app/app.module.ts | 27 - .../app/base/base-routing-resolver.service.ts | 23 - .../src/app/base/base-routing.module.ts | 44 - harbor-app/src/app/base/base.module.ts | 37 - .../src/app/base/footer/footer.component.html | 0 .../src/app/base/footer/footer.component.ts | 10 - .../global-search.component.html | 5 - .../global-search/global-search.component.ts | 44 - .../global-search/global-search.service.ts | 41 - .../global-search/search-result.component.css | 39 - .../search-result.component.html | 11 - .../global-search/search-result.component.ts | 80 - .../app/base/global-search/search-results.ts | 7 - .../harbor-shell/harbor-shell.component.css | 7 - .../harbor-shell/harbor-shell.component.html | 30 - .../harbor-shell/harbor-shell.component.ts | 80 - harbor-app/src/app/base/modal-event.ts | 5 - harbor-app/src/app/base/modal-events.const.ts | 2 - .../base/navigator/navigator.component.css | 16 - .../base/navigator/navigator.component.html | 42 - .../app/base/navigator/navigator.component.ts | 70 - harbor-app/src/app/base/search-event.ts | 4 - harbor-app/src/app/core/core.module.ts | 22 - .../app/dashboard/dashboard.component.html | 54 - .../src/app/dashboard/dashboard.component.ts | 20 - .../src/app/dashboard/dashboard.module.ts | 10 - .../app/global-message/message.component.html | 7 - .../app/global-message/message.component.ts | 26 - .../src/app/global-message/message.service.ts | 14 - harbor-app/src/app/harbor-routing.module.ts | 27 - harbor-app/src/app/index.ts | 2 - .../src/app/log/audit-log.component.html | 44 - harbor-app/src/app/log/audit-log.component.ts | 138 - harbor-app/src/app/log/audit-log.css | 3 - harbor-app/src/app/log/audit-log.service.ts | 35 - harbor-app/src/app/log/audit-log.ts | 30 - harbor-app/src/app/log/log.module.ts | 11 - .../action-project.component.html | 11 - .../action-project.component.ts | 30 - .../create-project.component.html | 29 - .../create-project.component.ts | 59 - .../project/create-project/create-project.css | 0 .../list-project/list-project.component.html | 24 - .../list-project/list-project.component.ts | 25 - .../add-member/add-member.component.html | 37 - .../member/add-member/add-member.component.ts | 61 - .../app/project/member/member.component.html | 38 - .../app/project/member/member.component.ts | 93 - .../src/app/project/member/member.service.ts | 52 - harbor-app/src/app/project/member/member.ts | 25 - .../project-detail.component.html | 18 - .../project-detail.component.ts | 18 - .../project/project-detail/project-detail.css | 11 - .../project-routing-resolver.service.ts | 25 - .../src/app/project/project-routing.module.ts | 64 - .../src/app/project/project.component.html | 23 - .../src/app/project/project.component.ts | 93 - harbor-app/src/app/project/project.css | 3 - harbor-app/src/app/project/project.module.ts | 46 - harbor-app/src/app/project/project.service.ts | 62 - harbor-app/src/app/project/project.ts | 32 - harbor-app/src/app/replication/job.ts | 7 - harbor-app/src/app/replication/policy.ts | 7 - .../replication/replication.component.html | 132 - .../app/replication/replication.component.ts | 24 - .../src/app/replication/replication.module.ts | 10 - harbor-app/src/app/repository/repo.ts | 9 - .../app/repository/repository.component.html | 38 - .../app/repository/repository.component.ts | 18 - .../src/app/repository/repository.module.ts | 10 - harbor-app/src/app/repository/repository.ts | 5 - .../src/app/service/auth-guard.service.ts | 8 - harbor-app/src/app/service/base.service.ts | 18 - .../app/shared/filter/filter.component.css | 4 - .../app/shared/filter/filter.component.html | 4 - .../src/app/shared/filter/filter.component.ts | 43 - .../harbor-action-overflow.html | 10 - .../harbor-action-overflow.ts | 9 - .../app/shared/max-length-ext.directive.ts | 50 - harbor-app/src/app/shared/session-user.ts | 11 - harbor-app/src/app/shared/session.service.ts | 110 - harbor-app/src/app/shared/shared.module.ts | 33 - .../src/app/shared/sign-in-credential.ts | 15 - .../src/app/user/new-user-form.component.html | 72 - .../src/app/user/new-user-form.component.ts | 52 - .../app/user/new-user-modal.component.html | 19 - .../src/app/user/new-user-modal.component.ts | 106 - harbor-app/src/app/user/user.component.css | 32 - harbor-app/src/app/user/user.component.html | 37 - harbor-app/src/app/user/user.component.ts | 121 - harbor-app/src/app/user/user.module.ts | 23 - harbor-app/src/app/user/user.service.ts | 59 - harbor-app/src/app/user/user.ts | 15 - .../src/environments/environment.prod.ts | 3 - harbor-app/src/environments/environment.ts | 8 - harbor-app/src/favicon.ico | Bin 15086 -> 0 bytes harbor-app/src/images/Step1.png | Bin 73813 -> 0 bytes harbor-app/src/images/Step2.png | Bin 82221 -> 0 bytes harbor-app/src/images/Step3.png | Bin 87798 -> 0 bytes harbor-app/src/images/clarity_logo.svg | 22 - harbor-app/src/index.html | 13 - harbor-app/src/main.ts | 12 - harbor-app/src/polyfills.ts | 22 - harbor-app/src/styles.css | 1 - harbor-app/src/test.ts | 32 - harbor-app/src/tsconfig.json | 25 - harbor-app/src/typings.d.ts | 2 - harbor-app/tslint.json | 114 - harbor-app/typings.json | 5 - harbor-app/yarn.lock | 6743 ----------------- 145 files changed, 11316 deletions(-) delete mode 100644 harbor-app/.editorconfig delete mode 100644 harbor-app/.gitignore delete mode 100644 harbor-app/.travis.yml delete mode 100644 harbor-app/CODE_OF_CONDUCT.md delete mode 100644 harbor-app/CONTRIBUTING.md delete mode 100644 harbor-app/Clarity Seed_LICENSE_MIT.txt delete mode 100644 harbor-app/Clarity Seed_NOTICE.txt delete mode 100644 harbor-app/README.md delete mode 100644 harbor-app/angular-cli.json delete mode 100644 harbor-app/e2e/app.e2e-spec.ts delete mode 100644 harbor-app/e2e/app.po.ts delete mode 100644 harbor-app/e2e/tsconfig.json delete mode 100644 harbor-app/karma.conf.js delete mode 100644 harbor-app/logo.png delete mode 100644 harbor-app/package.json delete mode 100644 harbor-app/protractor.config.js delete mode 100644 harbor-app/src/app/account/account-settings/account-settings-modal.component.html delete mode 100644 harbor-app/src/app/account/account-settings/account-settings-modal.component.ts delete mode 100644 harbor-app/src/app/account/account.module.ts delete mode 100644 harbor-app/src/app/account/password/forgot-password.component.html delete mode 100644 harbor-app/src/app/account/password/forgot-password.component.ts delete mode 100644 harbor-app/src/app/account/password/password-setting.component.html delete mode 100644 harbor-app/src/app/account/password/password-setting.component.ts delete mode 100644 harbor-app/src/app/account/password/password-setting.service.ts delete mode 100644 harbor-app/src/app/account/password/password-setting.ts delete mode 100644 harbor-app/src/app/account/sign-in/sign-in.component.css delete mode 100644 harbor-app/src/app/account/sign-in/sign-in.component.html delete mode 100644 harbor-app/src/app/account/sign-in/sign-in.component.ts delete mode 100644 harbor-app/src/app/account/sign-in/sign-in.service.ts delete mode 100644 harbor-app/src/app/account/sign-up/sign-up.component.html delete mode 100644 harbor-app/src/app/account/sign-up/sign-up.component.ts delete mode 100644 harbor-app/src/app/app.component.html delete mode 100644 harbor-app/src/app/app.component.scss delete mode 100644 harbor-app/src/app/app.component.spec.ts delete mode 100644 harbor-app/src/app/app.component.ts delete mode 100644 harbor-app/src/app/app.module.ts delete mode 100644 harbor-app/src/app/base/base-routing-resolver.service.ts delete mode 100644 harbor-app/src/app/base/base-routing.module.ts delete mode 100644 harbor-app/src/app/base/base.module.ts delete mode 100644 harbor-app/src/app/base/footer/footer.component.html delete mode 100644 harbor-app/src/app/base/footer/footer.component.ts delete mode 100644 harbor-app/src/app/base/global-search/global-search.component.html delete mode 100644 harbor-app/src/app/base/global-search/global-search.component.ts delete mode 100644 harbor-app/src/app/base/global-search/global-search.service.ts delete mode 100644 harbor-app/src/app/base/global-search/search-result.component.css delete mode 100644 harbor-app/src/app/base/global-search/search-result.component.html delete mode 100644 harbor-app/src/app/base/global-search/search-result.component.ts delete mode 100644 harbor-app/src/app/base/global-search/search-results.ts delete mode 100644 harbor-app/src/app/base/harbor-shell/harbor-shell.component.css delete mode 100644 harbor-app/src/app/base/harbor-shell/harbor-shell.component.html delete mode 100644 harbor-app/src/app/base/harbor-shell/harbor-shell.component.ts delete mode 100644 harbor-app/src/app/base/modal-event.ts delete mode 100644 harbor-app/src/app/base/modal-events.const.ts delete mode 100644 harbor-app/src/app/base/navigator/navigator.component.css delete mode 100644 harbor-app/src/app/base/navigator/navigator.component.html delete mode 100644 harbor-app/src/app/base/navigator/navigator.component.ts delete mode 100644 harbor-app/src/app/base/search-event.ts delete mode 100644 harbor-app/src/app/core/core.module.ts delete mode 100644 harbor-app/src/app/dashboard/dashboard.component.html delete mode 100644 harbor-app/src/app/dashboard/dashboard.component.ts delete mode 100644 harbor-app/src/app/dashboard/dashboard.module.ts delete mode 100644 harbor-app/src/app/global-message/message.component.html delete mode 100644 harbor-app/src/app/global-message/message.component.ts delete mode 100644 harbor-app/src/app/global-message/message.service.ts delete mode 100644 harbor-app/src/app/harbor-routing.module.ts delete mode 100644 harbor-app/src/app/index.ts delete mode 100644 harbor-app/src/app/log/audit-log.component.html delete mode 100644 harbor-app/src/app/log/audit-log.component.ts delete mode 100644 harbor-app/src/app/log/audit-log.css delete mode 100644 harbor-app/src/app/log/audit-log.service.ts delete mode 100644 harbor-app/src/app/log/audit-log.ts delete mode 100644 harbor-app/src/app/log/log.module.ts delete mode 100644 harbor-app/src/app/project/action-project/action-project.component.html delete mode 100644 harbor-app/src/app/project/action-project/action-project.component.ts delete mode 100644 harbor-app/src/app/project/create-project/create-project.component.html delete mode 100644 harbor-app/src/app/project/create-project/create-project.component.ts delete mode 100644 harbor-app/src/app/project/create-project/create-project.css delete mode 100644 harbor-app/src/app/project/list-project/list-project.component.html delete mode 100644 harbor-app/src/app/project/list-project/list-project.component.ts delete mode 100644 harbor-app/src/app/project/member/add-member/add-member.component.html delete mode 100644 harbor-app/src/app/project/member/add-member/add-member.component.ts delete mode 100644 harbor-app/src/app/project/member/member.component.html delete mode 100644 harbor-app/src/app/project/member/member.component.ts delete mode 100644 harbor-app/src/app/project/member/member.service.ts delete mode 100644 harbor-app/src/app/project/member/member.ts delete mode 100644 harbor-app/src/app/project/project-detail/project-detail.component.html delete mode 100644 harbor-app/src/app/project/project-detail/project-detail.component.ts delete mode 100644 harbor-app/src/app/project/project-detail/project-detail.css delete mode 100644 harbor-app/src/app/project/project-routing-resolver.service.ts delete mode 100644 harbor-app/src/app/project/project-routing.module.ts delete mode 100644 harbor-app/src/app/project/project.component.html delete mode 100644 harbor-app/src/app/project/project.component.ts delete mode 100644 harbor-app/src/app/project/project.css delete mode 100644 harbor-app/src/app/project/project.module.ts delete mode 100644 harbor-app/src/app/project/project.service.ts delete mode 100644 harbor-app/src/app/project/project.ts delete mode 100644 harbor-app/src/app/replication/job.ts delete mode 100644 harbor-app/src/app/replication/policy.ts delete mode 100644 harbor-app/src/app/replication/replication.component.html delete mode 100644 harbor-app/src/app/replication/replication.component.ts delete mode 100644 harbor-app/src/app/replication/replication.module.ts delete mode 100644 harbor-app/src/app/repository/repo.ts delete mode 100644 harbor-app/src/app/repository/repository.component.html delete mode 100644 harbor-app/src/app/repository/repository.component.ts delete mode 100644 harbor-app/src/app/repository/repository.module.ts delete mode 100644 harbor-app/src/app/repository/repository.ts delete mode 100644 harbor-app/src/app/service/auth-guard.service.ts delete mode 100644 harbor-app/src/app/service/base.service.ts delete mode 100644 harbor-app/src/app/shared/filter/filter.component.css delete mode 100644 harbor-app/src/app/shared/filter/filter.component.html delete mode 100644 harbor-app/src/app/shared/filter/filter.component.ts delete mode 100644 harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.html delete mode 100644 harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.ts delete mode 100644 harbor-app/src/app/shared/max-length-ext.directive.ts delete mode 100644 harbor-app/src/app/shared/session-user.ts delete mode 100644 harbor-app/src/app/shared/session.service.ts delete mode 100644 harbor-app/src/app/shared/shared.module.ts delete mode 100644 harbor-app/src/app/shared/sign-in-credential.ts delete mode 100644 harbor-app/src/app/user/new-user-form.component.html delete mode 100644 harbor-app/src/app/user/new-user-form.component.ts delete mode 100644 harbor-app/src/app/user/new-user-modal.component.html delete mode 100644 harbor-app/src/app/user/new-user-modal.component.ts delete mode 100644 harbor-app/src/app/user/user.component.css delete mode 100644 harbor-app/src/app/user/user.component.html delete mode 100644 harbor-app/src/app/user/user.component.ts delete mode 100644 harbor-app/src/app/user/user.module.ts delete mode 100644 harbor-app/src/app/user/user.service.ts delete mode 100644 harbor-app/src/app/user/user.ts delete mode 100644 harbor-app/src/environments/environment.prod.ts delete mode 100644 harbor-app/src/environments/environment.ts delete mode 100644 harbor-app/src/favicon.ico delete mode 100644 harbor-app/src/images/Step1.png delete mode 100644 harbor-app/src/images/Step2.png delete mode 100644 harbor-app/src/images/Step3.png delete mode 100644 harbor-app/src/images/clarity_logo.svg delete mode 100644 harbor-app/src/index.html delete mode 100644 harbor-app/src/main.ts delete mode 100644 harbor-app/src/polyfills.ts delete mode 100644 harbor-app/src/styles.css delete mode 100644 harbor-app/src/test.ts delete mode 100644 harbor-app/src/tsconfig.json delete mode 100644 harbor-app/src/typings.d.ts delete mode 100644 harbor-app/tslint.json delete mode 100644 harbor-app/typings.json delete mode 100644 harbor-app/yarn.lock diff --git a/harbor-app/.editorconfig b/harbor-app/.editorconfig deleted file mode 100644 index 2fef24f1d..000000000 --- a/harbor-app/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -# http://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 4 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true - - -[*.md] -max_line_length = 0 -trim_trailing_whitespace = true - -# Indentation override -#[lib/**.js] -#[{package.json,.travis.yml}] -#[**/**.js] diff --git a/harbor-app/.gitignore b/harbor-app/.gitignore deleted file mode 100644 index 5d90f1648..000000000 --- a/harbor-app/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -coverage/ -dist/ -html-report/ -node_modules/ -typings/ -**/*npm-debug.log.* -**/*yarn-error.log.* -.idea/ -.DS_Store diff --git a/harbor-app/.travis.yml b/harbor-app/.travis.yml deleted file mode 100644 index 48e09f831..000000000 --- a/harbor-app/.travis.yml +++ /dev/null @@ -1,10 +0,0 @@ -language: node_js -node_js: - - "6.0" - -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 diff --git a/harbor-app/CODE_OF_CONDUCT.md b/harbor-app/CODE_OF_CONDUCT.md deleted file mode 100644 index dde656bd3..000000000 --- a/harbor-app/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,19 +0,0 @@ -Contributor Code of Conduct -====================== - -As contributors and maintainers of the Clarity project, we pledge to respect everyone who contributes by posting issues, updating documentation, submitting pull requests, providing feedback in comments, and any other activities. - -Communication through any of Clarity's channels (GitHub, mailing lists, Twitter, and so on) must be constructive and never resort to personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. - -We promise to extend courtesy and respect to everyone involved in this project, regardless of gender, gender identity, sexual orientation, disability, age, race, ethnicity, religion, or level of experience. We expect anyone contributing to the Clarity project to do the same. - -If any member of the community violates this code of conduct, the maintainers of the Clarity project may take action, including removing issues, comments, and PRs or blocking accounts, as deemed appropriate. - -If you are subjected to or witness unacceptable behavior, or have any other concerns, please communicate with us. - -If you have suggestions to improve this Code of Conduct, please submit an issue or PR. - - -**Attribution** - -This Code of Conduct is adapted from the Angular project, version 0.3a-angular, available at this page: https://github.com/angular/code-of-conduct/blob/master/CODE_OF_CONDUCT.md \ No newline at end of file diff --git a/harbor-app/CONTRIBUTING.md b/harbor-app/CONTRIBUTING.md deleted file mode 100644 index 15d09672d..000000000 --- a/harbor-app/CONTRIBUTING.md +++ /dev/null @@ -1,113 +0,0 @@ - - -# Contributing to clarity-seed - -The clarity-seed project team welcomes contributions from the community. Follow the guidelines to contribute to the seed. - -## Contribution Guidelines - -Before you start working with Clarity, please complete the following steps: - -- Read our [code of conduct](/CODE_OF_CONDUCT.md). -- Read our [Developer Certificate of Origin](https://cla.vmware.com/dco). All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. - -## Contribution Flow - -Here are the typical steps in a contributor's workflow: - -- [Fork](https://help.github.com/articles/fork-a-repo/) the main Clarity seed repository. -- Clone your fork and set the upstream remote to the main Clarity repository. -- Set your name and e-mail in the Git configuration for signing. -- Create a topic branch from where you want to base your work. -- Make commits of logical units. -- Make sure your commit messages are in the proper format (see below). -- Push your changes to a topic branch in your fork of the repository. -- [Submit a pull request](https://help.github.com/articles/about-pull-requests/). - -Example: - -``` shell -# Clone your forked repository -git clone git@github.com:/clarity-seed.git - -# Navigate to the directory -cd clarity-seed - -# Set name and e-mail configuration -git config user.name "John Doe" -git config user.email johndoe@example.com - -# Setup the upstream remote -git remote add upstream https://github.com/vmware/clarity-seed.git - -# Create a topic branch for your changes -git checkout -b my-new-feature master - -# After making the desired changes, commit and push to your fork -git commit -a -s -git push origin my-new-feature -``` - -### Staying In Sync With Upstream - -When your branch gets out of sync with the master branch, use the following to update: - -``` shell -git checkout my-new-feature -git fetch -a -git pull --rebase upstream master -git push --force-with-lease origin my-new-feature -``` - -### Updating Pull Requests - -If your PR fails to pass CI, or requires changes based on code review, you'll most likely want to squash these changes into existing commits. - -If your pull request contains a single commit, or your changes are related to the most recent commit, you can amend the commit. - -``` shell -git add . -git commit --amend -git push --force-with-lease origin my-new-feature -``` - -If you need to squash changes into an earlier commit, use the following: - -``` shell -git add . -git commit --fixup -git rebase -i --autosquash master -git push --force-with-lease origin my-new-feature -``` - -Make sure you add a comment to the PR indicating that your changes are ready to review. GitHub does not generate a notification when you use git push. - -### Formatting Commit Messages - -Use this format for your commit message: - -``` - - - - -Signed-off-by: Your Name -``` - -#### Writing Guidelines - -These documents provide guidance creating a well-crafted commit message: - - * [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/) - * [Closing Issues Via Commit Messages](https://help.github.com/articles/closing-issues-via-commit-messages/) - -## Reporting Bugs and Creating Issues - -You can submit an issue or a bug to our [GitHub repository](https://github.com/vmware/clarity-seed/issues). You must provide: - -* Instruction on how to replicate the issue -* The version number of Angular -* The version number of Clarity -* The version number of Node -* The browser name and version number -* The OS running the seed diff --git a/harbor-app/Clarity Seed_LICENSE_MIT.txt b/harbor-app/Clarity Seed_LICENSE_MIT.txt deleted file mode 100644 index d336bce7b..000000000 --- a/harbor-app/Clarity Seed_LICENSE_MIT.txt +++ /dev/null @@ -1,16 +0,0 @@ -Clarity Seed - -Copyright © 2016 VMware, Inc. All rights reserved - -The MIT license (the “License”) set forth below applies to all parts of the Clarity Seed project. You may not use this file except in compliance with the License.  - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - diff --git a/harbor-app/Clarity Seed_NOTICE.txt b/harbor-app/Clarity Seed_NOTICE.txt deleted file mode 100644 index 7d47a3de7..000000000 --- a/harbor-app/Clarity Seed_NOTICE.txt +++ /dev/null @@ -1,8 +0,0 @@ -Clarity Seed - -Copyright (c) 2016 VMware, Inc. All Rights Reserved. - -This product is licensed to you under the MIT license (the "MIT License"). You may not use this product except in compliance with the MIT License. - -This product may include a number of subcomponents with separate copyright notices and license terms. Your use of these subcomponents is subject to the terms and conditions of the subcomponent's license, as noted in the LICENSE file. - diff --git a/harbor-app/README.md b/harbor-app/README.md deleted file mode 100644 index b7b51fa70..000000000 --- a/harbor-app/README.md +++ /dev/null @@ -1,121 +0,0 @@ -![Clarity](logo.png) - -Clarity Seed -============ -This is a seed project for Angular 2 applications using [Clarity](https://github.com/vmware/clarity). For more information on the Clarity Design System, visit the [Clarity website](https://vmware.github.io/clarity/). - -We offer this seed project in three different build systems: - -1. **Angular-CLI version (branch: master)** - -2. Webpack 2 version (branch: webpack) - -3. SystemJS version (branch: systemjs) - -Getting started ----------------------------------- - -#### Angular-CLI version - -This seed version provides the following out of the box: - -- Angular 2 application with [clarity-icons](https://www.npmjs.com/package/clarity-icons), [clarity-ui](https://www.npmjs.com/package/clarity-ui) and [clarity-angular](https://www.npmjs.com/package/clarity-angular) included -- Development and production builds -- Unit test setup with Jasmine and Karma -- End-to-end test setup with Protractor -- SASS processor -- TSLint -- And other goodies that come with [Angular-CLI](https://github.com/angular/angular-cli#generating-and-serving-an-angular2-project-via-a-development-server) (v1.0.0-beta.20-4) - -#### Installation -*Prerequisite*: Please install Angular-CLI by following [these instructions](https://github.com/angular/angular-cli#installation). -*Note*: Even though it's optional, we recommend you to use [yarn](https://yarnpkg.com/) instead of `npm install` for installing the dependencies. - -```bash -git clone https://github.com/vmware/clarity-seed.git -cd clarity-seed - -# install the project's dependencies -yarn # or run "npm install" - -# starts the application in dev mode and watches your files for livereload -ng serve -``` - -#### Using Angular-CLI -```bash -# generating a new component -ng g component my-new-component - -# generating a new directive -ng g directive my-new-directive - -# to learn more about Angular-CLI commands and their usages -ng help -``` - -For comprehensive documentation on Angular-CLI, please see their [github repository](https://github.com/angular/angular-cli). - -#### Test and build scripts - -```bash -# running unit tests -ng test - -# running e2e tests -ng e2e - -# dev build -ng build - -# prod build -ng build --prod -``` - -## Documentation - - -For documentation on the Clarity Design System, including a list of components and example usage, see [our website](https://vmware.github.io/clarity). - - -#### Directory structure -``` -. -β”œβ”€β”€ README.md - -β”œβ”€β”€ karma.conf.js <- configuration of the test runner -β”œβ”€β”€ package.json <- dependencies of the project -β”œβ”€β”€ protractor.config.js <- e2e tests configuration -β”œβ”€β”€ src/ <- source code of the application -β”‚Β Β  β”œβ”€β”€ app/ -β”‚Β Β  β”‚Β Β  └── component/ -β”‚Β Β  β”‚Β Β  └── .component.html -β”‚Β Β  β”‚Β Β  └── .component.scss -β”‚Β Β  β”‚Β Β  └── .component.spec.ts -β”‚Β Β  β”‚Β Β  └── .component.ts -β”‚Β Β  β”‚Β Β  └── app.component.html -β”‚Β Β  β”‚Β Β  └── app.component.scss -β”‚Β Β  β”‚Β Β  └── app.component.ts -β”‚Β Β  β”‚Β Β  └── app.e2e-spec.js <- sample e2e spec file -β”‚Β Β  β”‚Β Β  └── app.module.ts -β”‚Β Β  β”‚Β Β  └── app.routing.ts -β”‚Β Β  β”‚Β Β  └── main.ts <- boostrap file for the angular app -β”‚Β Β  └── index.html -β”œβ”€β”€ angular-cli.json <- configuration of the angular-cli -β”œβ”€β”€ tsconfig.json <- configuration of the typescript project -β”œβ”€β”€ tslint.json <- sample configuration file for tslint -└── yarn.lock -``` - - -## Contributing - -The Clarity project team welcomes contributions from the community. For more detailed information, see [CONTRIBUTING.md](CONTRIBUTING.md). - -## License - -The clarity-seed project is licensed under the MIT license. - -## Feedback - -If you find a bug or want to request a new feature, please open a [GitHub issue](https://github.com/vmware/clarity-seed/issues). diff --git a/harbor-app/angular-cli.json b/harbor-app/angular-cli.json deleted file mode 100644 index 334eba7d4..000000000 --- a/harbor-app/angular-cli.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "project": { - "version": "1.0.0-beta.20-4", - "name": "clarity-seed" - }, - "apps": [ - { - "root": "src", - "outDir": "dist", - "assets": [ - "images", - "favicon.ico" - ], - "index": "index.html", - "main": "main.ts", - "test": "test.ts", - "tsconfig": "tsconfig.json", - "prefix": "app", - "mobile": false, - "styles": [ - "../node_modules/clarity-icons/clarity-icons.min.css", - "../node_modules/clarity-ui/clarity-ui.min.css", - "styles.css" - ], - "scripts": [ - "../node_modules/core-js/client/shim.min.js", - "../node_modules/mutationobserver-shim/dist/mutationobserver.min.js", - "../node_modules/@webcomponents/custom-elements/custom-elements.min.js", - "../node_modules/clarity-icons/clarity-icons.min.js", - "../node_modules/web-animations-js/web-animations.min.js" - ], - "environments": { - "source": "environments/environment.ts", - "dev": "environments/environment.ts", - "prod": "environments/environment.prod.ts" - } - } - ], - "addons": [], - "packages": [], - "e2e": { - "protractor": { - "config": "./protractor.config.js" - } - }, - "test": { - "karma": { - "config": "./karma.conf.js" - } - }, - "defaults": { - "styleExt": "scss", - "prefixInterfaces": false, - "inline": { - "style": false, - "template": false - }, - "spec": { - "class": false, - "component": true, - "directive": true, - "module": false, - "pipe": true, - "service": true - } - } -} diff --git a/harbor-app/e2e/app.e2e-spec.ts b/harbor-app/e2e/app.e2e-spec.ts deleted file mode 100644 index 2a79f0051..000000000 --- a/harbor-app/e2e/app.e2e-spec.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {ClaritySeedAppHome} from './app.po'; - -fdescribe('clarity-seed app', function () { - - let expectedMsg: string = 'This is a Clarity seed application. This is the default page that loads for the application.'; - - let page: ClaritySeedAppHome; - - beforeEach(() => { - page = new ClaritySeedAppHome(); - }); - - it('should display: ' + expectedMsg, () => { - page.navigateTo(); - expect(page.getParagraphText()).toEqual(expectedMsg) - }); -}); diff --git a/harbor-app/e2e/app.po.ts b/harbor-app/e2e/app.po.ts deleted file mode 100644 index cd1cdaadc..000000000 --- a/harbor-app/e2e/app.po.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { browser, element, by } from 'protractor'; - - -export class ClaritySeedAppHome { - - navigateTo() { - return browser.get('/'); - } - - getParagraphText() { - return element(by.css('my-app p')).getText(); - } -} diff --git a/harbor-app/e2e/tsconfig.json b/harbor-app/e2e/tsconfig.json deleted file mode 100644 index dbb7b36d9..000000000 --- a/harbor-app/e2e/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "rootDir": "../", - "baseUrl": "", - "declaration": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "module": "commonjs", - "moduleResolution": "node", - "outDir": "dist/out-tsc-e2e", - "sourceMap": true, - "target": "es5", - "typeRoots": [ - "node_modules/@types" - ], - "types": [ - "jasmine" - ] - }, - "exclude": [ - "node_modules", - "dist" - ] -} diff --git a/harbor-app/karma.conf.js b/harbor-app/karma.conf.js deleted file mode 100644 index c96997aef..000000000 --- a/harbor-app/karma.conf.js +++ /dev/null @@ -1,44 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/0.13/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', 'angular-cli'], - plugins: [ - require('karma-jasmine'), - require('karma-phantomjs-launcher'), - require('karma-mocha-reporter'), - require('karma-remap-istanbul'), - require('angular-cli/plugins/karma') - ], - files: [ - {pattern: './src/test.ts', watched: false} - ], - preprocessors: { - './src/test.ts': ['angular-cli'] - }, - mime: { - 'text/x-typescript': ['ts', 'tsx'] - }, - remapIstanbulReporter: { - reports: { - html: 'coverage', - lcovonly: './coverage/coverage.lcov' - } - }, - angularCli: { - config: './angular-cli.json', - environment: 'dev' - }, - reporters: config.angularCli && config.angularCli.codeCoverage - ? ['mocha', 'karma-remap-istanbul'] - : ['mocha'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['PhantomJS'], - singleRun: true - }); -}; diff --git a/harbor-app/logo.png b/harbor-app/logo.png deleted file mode 100644 index 274e12ef9dd615d53fb485f9df861162990fb2a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5534 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 diff --git a/harbor-app/package.json b/harbor-app/package.json deleted file mode 100644 index cf7068e87..000000000 --- a/harbor-app/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "clarity-seed", - "version": "0.8.0", - "description": "Angular-CLI starter for a Clarity project", - "angular-cli": {}, - "scripts": { - "start": "ng serve --host 0.0.0.0 --proxy-config proxy.config.json", - "lint": "tslint \"src/**/*.ts\"", - "test": "ng test --single-run", - "pree2e": "webdriver-manager update", - "e2e": "protractor" - }, - "private": true, - "dependencies": { - "@angular/common": "^2.4.1", - "@angular/compiler": "^2.4.1", - "@angular/core": "^2.4.1", - "@angular/forms": "^2.4.1", - "@angular/http": "^2.4.1", - "@angular/platform-browser": "^2.4.1", - "@angular/platform-browser-dynamic": "^2.4.1", - "@angular/router": "^3.4.1", - "@webcomponents/custom-elements": "1.0.0-alpha.3", - "clarity-angular": "^0.8.0", - "clarity-icons": "^0.8.0", - "clarity-ui": "^0.8.0", - "core-js": "^2.4.1", - "mutationobserver-shim": "^0.3.2", - "rxjs": "^5.0.1", - "ts-helpers": "^1.1.1", - "web-animations-js": "^2.2.1", - "zone.js": "^0.7.2" - }, - "devDependencies": { - "@angular/compiler-cli": "^2.4.1", - "@types/core-js": "^0.9.34", - "@types/jasmine": "^2.2.30", - "@types/node": "^6.0.42", - "angular-cli": "^1.0.0-beta.24", - "bootstrap": "4.0.0-alpha.5", - "codelyzer": "~1.0.0-beta.3", - "enhanced-resolve": "^3.0.0", - "jasmine-core": "2.4.1", - "jasmine-spec-reporter": "2.5.0", - "karma": "1.2.0", - "karma-cli": "^1.0.1", - "karma-jasmine": "^1.0.2", - "karma-mocha-reporter": "^2.2.1", - "karma-phantomjs-launcher": "^1.0.0", - "karma-remap-istanbul": "^0.2.1", - "protractor": "4.0.9", - "ts-node": "1.2.1", - "tslint": "^4.1.1", - "typescript": "~2.0.3", - "typings": "^1.4.0", - "webdriver-manager": "10.2.5" - } -} \ No newline at end of file diff --git a/harbor-app/protractor.config.js b/harbor-app/protractor.config.js deleted file mode 100644 index 169743b34..000000000 --- a/harbor-app/protractor.config.js +++ /dev/null @@ -1,32 +0,0 @@ -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/docs/referenceConf.js - -/*global jasmine */ -var SpecReporter = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - useAllAngular2AppRoots: true, - beforeLaunch: function() { - require('ts-node').register({ - project: 'e2e' - }); - }, - onPrepare: function() { - jasmine.getEnv().addReporter(new SpecReporter()); - } -}; diff --git a/harbor-app/src/app/account/account-settings/account-settings-modal.component.html b/harbor-app/src/app/account/account-settings/account-settings-modal.component.html deleted file mode 100644 index 1fb92e62e..000000000 --- a/harbor-app/src/app/account/account-settings/account-settings-modal.component.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - \ No newline at end of file diff --git a/harbor-app/src/app/account/account-settings/account-settings-modal.component.ts b/harbor-app/src/app/account/account-settings/account-settings-modal.component.ts deleted file mode 100644 index cc2ce9d65..000000000 --- a/harbor-app/src/app/account/account-settings/account-settings-modal.component.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Component, OnInit, ViewChild, AfterViewChecked } from '@angular/core'; -import { NgForm } from '@angular/forms'; - -import { SessionUser } from '../../shared/session-user'; -import { SessionService } from '../../shared/session.service'; - -@Component({ - selector: "account-settings-modal", - templateUrl: "account-settings-modal.component.html" -}) - -export class AccountSettingsModalComponent implements OnInit, AfterViewChecked { - opened: boolean = false; - staticBackdrop: boolean = true; - account: SessionUser; - error: any; - alertClose: boolean = true; - - private isOnCalling: boolean = false; - private formValueChanged: boolean = false; - - accountFormRef: NgForm; - @ViewChild("accountSettingsFrom") accountForm: NgForm; - - constructor(private session: SessionService) { } - - ngOnInit(): void { - //Value copy - this.account = Object.assign({}, this.session.getCurrentUser()); - } - - public get isValid(): boolean { - return this.accountForm && this.accountForm.valid; - } - - public get showProgress(): boolean { - return this.isOnCalling; - } - - public get errorMessage(): string { - if(this.error){ - if(this.error.message){ - return this.error.message; - }else{ - if(this.error._body){ - return this.error._body; - } - } - } - return ""; - } - - ngAfterViewChecked(): void { - if (this.accountFormRef != this.accountForm) { - this.accountFormRef = this.accountForm; - if (this.accountFormRef) { - this.accountFormRef.valueChanges.subscribe(data => { - if (this.error) { - this.error = null; - } - this.formValueChanged = true; - }); - } - } - } - - open() { - this.account = Object.assign({}, this.session.getCurrentUser()); - this.formValueChanged = false; - - this.opened = true; - } - - close() { - this.opened = false; - } - - submit() { - if (!this.isValid || this.isOnCalling) { - return; - } - - //Double confirm session is valid - let cUser = this.session.getCurrentUser(); - if (!cUser) { - return; - } - - this.isOnCalling = true; - - this.session.updateAccountSettings(this.account) - .then(() => { - this.isOnCalling = false; - this.close(); - }) - .catch(error => { - this.isOnCalling = false; - this.error = error; - this.alertClose = false; - }); - } - -} \ No newline at end of file diff --git a/harbor-app/src/app/account/account.module.ts b/harbor-app/src/app/account/account.module.ts deleted file mode 100644 index f6816b44d..000000000 --- a/harbor-app/src/app/account/account.module.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { CoreModule } from '../core/core.module'; - -import { SignInComponent } from './sign-in/sign-in.component'; -import { PasswordSettingComponent } from './password/password-setting.component'; -import { AccountSettingsModalComponent } from './account-settings/account-settings-modal.component'; -import { SharedModule } from '../shared/shared.module'; - -import { PasswordSettingService } from './password/password-setting.service'; - -@NgModule({ - imports: [ - CoreModule, - RouterModule, - SharedModule - ], - declarations: [SignInComponent, PasswordSettingComponent, AccountSettingsModalComponent], - exports: [SignInComponent, PasswordSettingComponent, AccountSettingsModalComponent], - - providers: [PasswordSettingService] -}) -export class AccountModule { } \ No newline at end of file diff --git a/harbor-app/src/app/account/password/forgot-password.component.html b/harbor-app/src/app/account/password/forgot-password.component.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/harbor-app/src/app/account/password/forgot-password.component.ts b/harbor-app/src/app/account/password/forgot-password.component.ts deleted file mode 100644 index 307b4ec3e..000000000 --- a/harbor-app/src/app/account/password/forgot-password.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; -import { Router } from '@angular/router'; - -@Component({ - selector: 'forgot-password', - templateUrl: "forgot-password.component.html" -}) -export class ForgotPasswordComponent { - // constructor(private router: Router){} -} \ No newline at end of file diff --git a/harbor-app/src/app/account/password/password-setting.component.html b/harbor-app/src/app/account/password/password-setting.component.html deleted file mode 100644 index e5a72891d..000000000 --- a/harbor-app/src/app/account/password/password-setting.component.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - \ No newline at end of file diff --git a/harbor-app/src/app/account/password/password-setting.component.ts b/harbor-app/src/app/account/password/password-setting.component.ts deleted file mode 100644 index 6e221b672..000000000 --- a/harbor-app/src/app/account/password/password-setting.component.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Component, ViewChild, AfterViewChecked } from '@angular/core'; -import { Router } from '@angular/router'; -import { NgForm } from '@angular/forms'; - -import { PasswordSettingService } from './password-setting.service'; -import { SessionService } from '../../shared/session.service'; - -@Component({ - selector: 'password-setting', - templateUrl: "password-setting.component.html" -}) -export class PasswordSettingComponent implements AfterViewChecked { - opened: boolean = false; - oldPwd: string = ""; - newPwd: string = ""; - reNewPwd: string = ""; - - private formValueChanged: boolean = false; - private onCalling: boolean = false; - - pwdFormRef: NgForm; - @ViewChild("changepwdForm") pwdForm: NgForm; - constructor(private passwordService: PasswordSettingService, private session: SessionService){} - - //If form is valid - public get isValid(): boolean { - if (this.pwdForm && this.pwdForm.form.get("newPassword")) { - return this.pwdForm.valid && - this.pwdForm.form.get("newPassword").value === this.pwdForm.form.get("reNewPassword").value; - } - return false; - } - - public get valueChanged(): boolean { - return this.formValueChanged; - } - - public get showProgress(): boolean { - return this.onCalling; - } - - ngAfterViewChecked() { - if (this.pwdFormRef != this.pwdForm) { - this.pwdFormRef = this.pwdForm; - if (this.pwdFormRef) { - this.pwdFormRef.valueChanges.subscribe(data => { - this.formValueChanged = true; - }); - } - } - } - - //Open modal dialog - open(): void { - this.opened = true; - this.pwdForm.reset(); - } - - //Close the moal dialog - close(): void { - this.opened = false; - } - - //handle the ok action - doOk(): void { - if (this.onCalling) { - return;//To avoid duplicate click events - } - - if (!this.isValid) { - return;//Double confirm - } - - //Double confirm session is valid - let cUser = this.session.getCurrentUser(); - if(!cUser){ - return; - } - - //Call service - this.onCalling = true; - - this.passwordService.changePassword(cUser.user_id, - { - new_password: this.pwdForm.value.newPassword, - old_password: this.pwdForm.value.oldPassword - }) - .then(() => { - this.onCalling = false; - this.close(); - }) - .catch(error => { - this.onCalling = false; - console.error(error);//TODO: - }); - //TODO:publish the successful message to general messae box - } -} \ No newline at end of file diff --git a/harbor-app/src/app/account/password/password-setting.service.ts b/harbor-app/src/app/account/password/password-setting.service.ts deleted file mode 100644 index 94b2af793..000000000 --- a/harbor-app/src/app/account/password/password-setting.service.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Headers, Http, RequestOptions } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; - -import { PasswordSetting } from './password-setting'; - -const passwordChangeEndpoint = "/api/users/:user_id/password"; - -@Injectable() -export class PasswordSettingService { - private headers: Headers = new Headers({ - "Accept": 'application/json', - "Content-Type": 'application/json' - }); - private options: RequestOptions = new RequestOptions({ - 'headers': this.headers - }); - - constructor(private http: Http) { } - - changePassword(userId: number, setting: PasswordSetting): Promise { - if(!setting || setting.new_password.trim()==="" || setting.old_password.trim()===""){ - return Promise.reject("Invalid data"); - } - - let putUrl = passwordChangeEndpoint.replace(":user_id", userId+""); - return this.http.put(putUrl, JSON.stringify(setting), this.options) - .toPromise() - .then(() => null) - .catch(error=>{ - return Promise.reject(error); - }); - } - -} diff --git a/harbor-app/src/app/account/password/password-setting.ts b/harbor-app/src/app/account/password/password-setting.ts deleted file mode 100644 index c06e26a49..000000000 --- a/harbor-app/src/app/account/password/password-setting.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * - * Struct for password change - * - * @export - * @class PasswordSetting - */ -export class PasswordSetting { - old_password: string; - new_password: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/account/sign-in/sign-in.component.css b/harbor-app/src/app/account/sign-in/sign-in.component.css deleted file mode 100644 index 6004a33f6..000000000 --- a/harbor-app/src/app/account/sign-in/sign-in.component.css +++ /dev/null @@ -1,7 +0,0 @@ -.progress-size-small { - height: 0.5em !important; -} - -.visibility-hidden { - visibility: hidden; -} \ No newline at end of file diff --git a/harbor-app/src/app/account/sign-in/sign-in.component.html b/harbor-app/src/app/account/sign-in/sign-in.component.html deleted file mode 100644 index e9790e90f..000000000 --- a/harbor-app/src/app/account/sign-in/sign-in.component.html +++ /dev/null @@ -1,38 +0,0 @@ - \ No newline at end of file diff --git a/harbor-app/src/app/account/sign-in/sign-in.component.ts b/harbor-app/src/app/account/sign-in/sign-in.component.ts deleted file mode 100644 index 81dd8ac5a..000000000 --- a/harbor-app/src/app/account/sign-in/sign-in.component.ts +++ /dev/null @@ -1,130 +0,0 @@ -import { Component } from '@angular/core'; -import { Router } from '@angular/router'; -import { Input, ViewChild, AfterViewChecked } from '@angular/core'; -import { NgForm } from '@angular/forms'; - -import { SessionService } from '../../shared/session.service'; -import { SignInCredential } from '../../shared/sign-in-credential'; - -//Define status flags for signing in states -export const signInStatusNormal = 0; -export const signInStatusOnGoing = 1; -export const signInStatusError = -1; - -@Component({ - selector: 'sign-in', - templateUrl: "sign-in.component.html", - styleUrls: ['sign-in.component.css'] -}) - -export class SignInComponent implements AfterViewChecked { - //Form reference - signInForm: NgForm; - @ViewChild('signInForm') currentForm: NgForm; - - //Status flag - signInStatus: number = 0; - - //Initialize sign in credential - @Input() signInCredential: SignInCredential = { - principal: "", - password: "" - }; - - constructor( - private router: Router, - private session: SessionService - ) { } - - //For template accessing - get statusError(): number { - return signInStatusError; - } - - get statusOnGoing(): number { - return signInStatusOnGoing; - } - - //Validate the related fields - private validate(): boolean { - return true; - //return this.signInForm.valid; - } - - //General error handler - private handleError(error) { - //Set error status - this.signInStatus = signInStatusError; - - let message = error.status ? error.status + ":" + error.statusText : error; - console.error("An error occurred when signing in:", message); - } - - //Hande form values changes - private formChanged() { - if (this.currentForm === this.signInForm) { - return; - } - this.signInForm = this.currentForm; - if (this.signInForm) { - this.signInForm.valueChanges - .subscribe(data => { - this.updateState(); - }); - } - - } - - //Implement interface - //Watch the view change only when view is in error state - ngAfterViewChecked() { - if (this.signInStatus === signInStatusError) { - this.formChanged(); - } - } - - //Update the status if we have done some changes - updateState(): void { - if (this.signInStatus === signInStatusError) { - this.signInStatus = signInStatusNormal; //reset - } - } - - //Trigger the signin action - signIn(): void { - //Should validate input firstly - if (!this.validate() || this.signInStatus === signInStatusOnGoing) { - return; - } - - //Start signing in progress - this.signInStatus = signInStatusOnGoing; - - //Call the service to send out the http request - this.session.signIn(this.signInCredential) - .then(() => { - //Set status - this.signInStatus = signInStatusNormal; - - //Validate the sign-in session - this.session.retrieveUser() - .then(user => { - //Routing to the right location - let nextRoute = ["/harbor", "projects"]; - this.router.navigate(nextRoute); - }) - .catch(error => { - this.handleError(error); - }); - }) - .catch(error => { - this.handleError(error); - }); - } - - //Help user navigate to the sign up - signUp(): void { - let nextRoute = ["/harbor", "signup"]; - this.router.navigate(nextRoute); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/account/sign-in/sign-in.service.ts b/harbor-app/src/app/account/sign-in/sign-in.service.ts deleted file mode 100644 index e67e86304..000000000 --- a/harbor-app/src/app/account/sign-in/sign-in.service.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Headers, Http, URLSearchParams } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; - -import { SignInCredential } from './sign-in-credential'; - -const url_prefix = '/ng'; -const signInUrl = url_prefix + '/login'; -/** - * - * Define a service to provide sign in methods - * - * @export - * @class SignInService - */ -@Injectable() -export class SignInService { - private headers = new Headers({ - "Content-Type": 'application/x-www-form-urlencoded' - }); - - constructor(private http: Http) {} - - //Handle the related exceptions - private handleError(error: any): Promise{ - return Promise.reject(error.message || error); - } - - //Submit signin form to backend (NOT restful service) - signIn(signInCredential: SignInCredential): Promise{ - //Build the form package - const body = new URLSearchParams(); - body.set('principal', signInCredential.principal); - body.set('password', signInCredential.password); - - //Trigger Http - return this.http.post(signInUrl, body.toString(), { headers: this.headers }) - .toPromise() - .then(()=>null) - .catch(this.handleError); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/account/sign-up/sign-up.component.html b/harbor-app/src/app/account/sign-up/sign-up.component.html deleted file mode 100644 index fae4c1f44..000000000 --- a/harbor-app/src/app/account/sign-up/sign-up.component.html +++ /dev/null @@ -1 +0,0 @@ -

Placeholder for signup

\ No newline at end of file diff --git a/harbor-app/src/app/account/sign-up/sign-up.component.ts b/harbor-app/src/app/account/sign-up/sign-up.component.ts deleted file mode 100644 index 3d97950fa..000000000 --- a/harbor-app/src/app/account/sign-up/sign-up.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; -import { Router } from '@angular/router'; - -@Component({ - selector: 'sign-up', - templateUrl: "sign-up.component.html" -}) -export class SignUpComponent { - // constructor(private router: Router){} -} \ No newline at end of file diff --git a/harbor-app/src/app/app.component.html b/harbor-app/src/app/app.component.html deleted file mode 100644 index 90c6b6463..000000000 --- a/harbor-app/src/app/app.component.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/harbor-app/src/app/app.component.scss b/harbor-app/src/app/app.component.scss deleted file mode 100644 index 7077d42f7..000000000 --- a/harbor-app/src/app/app.component.scss +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (c) 2016 VMware, Inc. All Rights Reserved. -// This software is released under MIT license. -// The full license information can be found in LICENSE in the root directory of this project. -.clr-icon { - &.clr-clarity-logo { - background-image: url(../images/clarity_logo.svg); - } -} diff --git a/harbor-app/src/app/app.component.spec.ts b/harbor-app/src/app/app.component.spec.ts deleted file mode 100644 index 7c62f733e..000000000 --- a/harbor-app/src/app/app.component.spec.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* tslint:disable:no-unused-variable */ - -// import { TestBed, async, ComponentFixture } from '@angular/core/testing'; -// import { AppComponent } from './app.component'; -// import { HomeComponent } from "./home/home.component"; -// import { AboutComponent } from "./about/about.component"; -// import { ClarityModule } from "clarity-angular"; -// import { ROUTING } from "./app.routing"; -// import { APP_BASE_HREF } from "@angular/common"; - -// describe('AppComponent', () => { - -// let fixture: ComponentFixture; -// let compiled: any; - -// beforeEach(() => { -// TestBed.configureTestingModule({ -// declarations: [ -// AppComponent, -// AboutComponent, -// HomeComponent -// ], -// imports: [ -// ClarityModule, -// ROUTING -// ], -// providers: [{provide: APP_BASE_HREF, useValue: '/'}] -// }); - -// fixture = TestBed.createComponent(AppComponent); -// fixture.detectChanges(); -// compiled = fixture.nativeElement; - - -// }); - -// afterEach(() => { -// fixture.destroy(); -// }); - -// it('should create the app', async(() => { -// expect(compiled).toBeTruthy(); -// })); - - -// }); diff --git a/harbor-app/src/app/app.component.ts b/harbor-app/src/app/app.component.ts deleted file mode 100644 index 637138ddb..000000000 --- a/harbor-app/src/app/app.component.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Component } from '@angular/core'; -// import { Router } from '@angular/router'; - -@Component({ - selector: 'harbor-app', - templateUrl: 'app.component.html', - styleUrls: [] -}) -export class AppComponent { - // constructor(private router: Router) { - // } -} diff --git a/harbor-app/src/app/app.module.ts b/harbor-app/src/app/app.module.ts deleted file mode 100644 index ff31693bb..000000000 --- a/harbor-app/src/app/app.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HttpModule } from '@angular/http'; -import { ClarityModule } from 'clarity-angular'; -import { AppComponent } from './app.component'; - -import { BaseModule } from './base/base.module'; -import { HarborRoutingModule } from './harbor-routing.module'; -import { SharedModule } from './shared/shared.module'; -import { AccountModule } from './account/account.module'; - -@NgModule({ - declarations: [ - AppComponent, - ], - imports: [ - SharedModule, - BaseModule, - AccountModule, - HarborRoutingModule - ], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule { -} diff --git a/harbor-app/src/app/base/base-routing-resolver.service.ts b/harbor-app/src/app/base/base-routing-resolver.service.ts deleted file mode 100644 index 47c04fa2c..000000000 --- a/harbor-app/src/app/base/base-routing-resolver.service.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Injectable } from '@angular/core'; -import { - Router, Resolve, ActivatedRouteSnapshot, RouterStateSnapshot -} from '@angular/router'; - -import { SessionService } from '../shared/session.service'; -import { SessionUser } from '../shared/session-user'; - -@Injectable() -export class BaseRoutingResolver implements Resolve { - - constructor(private session: SessionService, private router: Router) { } - - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise { - return this.session.retrieveUser() - .then(sessionUser => { - return sessionUser; - }) - .catch(error => { - console.info("Anonymous user"); - }); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/base-routing.module.ts b/harbor-app/src/app/base/base-routing.module.ts deleted file mode 100644 index ef9a25dcc..000000000 --- a/harbor-app/src/app/base/base-routing.module.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; -import { HarborShellComponent } from './harbor-shell/harbor-shell.component'; - -import { DashboardComponent } from '../dashboard/dashboard.component'; -import { ProjectComponent } from '../project/project.component'; -import { UserComponent } from '../user/user.component'; - -import { BaseRoutingResolver } from './base-routing-resolver.service'; - -const baseRoutes: Routes = [ - { - path: 'harbor', - component: HarborShellComponent, - children: [ - { - path: 'dashboard', - component: DashboardComponent - }, - { - path: 'projects', - component: ProjectComponent - }, - { - path: 'users', - component: UserComponent, - resolve: { - projectsResolver: BaseRoutingResolver - } - } - ] - }]; - -@NgModule({ - imports: [ - RouterModule.forChild(baseRoutes) - ], - exports: [RouterModule], - - providers: [BaseRoutingResolver] -}) -export class BaseRoutingModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/base/base.module.ts b/harbor-app/src/app/base/base.module.ts deleted file mode 100644 index 4a34f4558..000000000 --- a/harbor-app/src/app/base/base.module.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { NgModule } from '@angular/core'; -import { SharedModule } from '../shared/shared.module'; - -import { DashboardModule } from '../dashboard/dashboard.module'; -import { ProjectModule } from '../project/project.module'; -import { UserModule } from '../user/user.module'; -import { AccountModule } from '../account/account.module'; - -import { NavigatorComponent } from './navigator/navigator.component'; -import { GlobalSearchComponent } from './global-search/global-search.component'; -import { FooterComponent } from './footer/footer.component'; -import { HarborShellComponent } from './harbor-shell/harbor-shell.component'; -import { SearchResultComponent } from './global-search/search-result.component'; - -import { BaseRoutingModule } from './base-routing.module'; - -@NgModule({ - imports: [ - SharedModule, - DashboardModule, - ProjectModule, - UserModule, - BaseRoutingModule, - AccountModule - ], - declarations: [ - NavigatorComponent, - GlobalSearchComponent, - FooterComponent, - HarborShellComponent, - SearchResultComponent - ], - exports: [ HarborShellComponent ] -}) -export class BaseModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/base/footer/footer.component.html b/harbor-app/src/app/base/footer/footer.component.html deleted file mode 100644 index e69de29bb..000000000 diff --git a/harbor-app/src/app/base/footer/footer.component.ts b/harbor-app/src/app/base/footer/footer.component.ts deleted file mode 100644 index dfeb55110..000000000 --- a/harbor-app/src/app/base/footer/footer.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; -import { Router } from '@angular/router'; - -@Component({ - selector: 'footer', - templateUrl: "footer.component.html" -}) -export class FooterComponent { - // constructor(private router: Router){} -} \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/global-search.component.html b/harbor-app/src/app/base/global-search/global-search.component.html deleted file mode 100644 index 4e75d3657..000000000 --- a/harbor-app/src/app/base/global-search/global-search.component.html +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/global-search.component.ts b/harbor-app/src/app/base/global-search/global-search.component.ts deleted file mode 100644 index 1e6e39a9b..000000000 --- a/harbor-app/src/app/base/global-search/global-search.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Component, Output, EventEmitter, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; -import { Subject } from 'rxjs/Subject'; -import { Observable } from 'rxjs/Observable'; -import { SearchEvent } from '../search-event'; - -import 'rxjs/add/operator/debounceTime'; -import 'rxjs/add/operator/distinctUntilChanged'; - -const deBounceTime = 500; //ms - -@Component({ - selector: 'global-search', - templateUrl: "global-search.component.html" -}) -export class GlobalSearchComponent implements OnInit { - //Publish search event to parent - @Output() searchEvt = new EventEmitter(); - - //Keep search term as Subject - private searchTerms = new Subject(); - - //Implement ngOnIni - ngOnInit(): void { - this.searchTerms - .debounceTime(deBounceTime) - .distinctUntilChanged() - .subscribe(term => { - this.searchEvt.emit({ - term: term - }); - }); - } - - //Handle the term inputting event - search(term: string): void { - //Send event only when term is not empty - - let nextTerm = term.trim(); - if (nextTerm != "") { - this.searchTerms.next(nextTerm); - } - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/global-search.service.ts b/harbor-app/src/app/base/global-search/global-search.service.ts deleted file mode 100644 index db5993b4d..000000000 --- a/harbor-app/src/app/base/global-search/global-search.service.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Headers, Http, RequestOptions } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; - -import { SearchResults } from './search-results'; - -const searchEndpoint = "/api/search"; -/** - * Declare service to handle the global search - * - * - * @export - * @class GlobalSearchService - */ -@Injectable() -export class GlobalSearchService { - private headers = new Headers({ - "Content-Type": 'application/json' - }); - private options = new RequestOptions({ - headers: this.headers - }); - - constructor(private http: Http) { } - - /** - * Search related artifacts with the provided keyword - * - * @param {string} keyword - * @returns {Promise} - * - * @memberOf GlobalSearchService - */ - doSearch(term: string): Promise { - let searchUrl = searchEndpoint + "?q=" + term; - - return this.http.get(searchUrl, this.options).toPromise() - .then(response => response.json() as SearchResults) - .catch(error => error); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/search-result.component.css b/harbor-app/src/app/base/global-search/search-result.component.css deleted file mode 100644 index 8ec5634e1..000000000 --- a/harbor-app/src/app/base/global-search/search-result.component.css +++ /dev/null @@ -1,39 +0,0 @@ -.search-overlay { - display: block; - position: absolute; - height: 94%; - width: 97%; - /*shoud be lesser than 1000 to aoivd override the popup menu*/ - z-index: 999; - box-sizing: border-box; - background: #fafafa; -} - -.search-header { - display: inline-block; - width: 100%; - position: relative; -} - -.search-title { - margin-top: 0px; - font-size: 28px; - letter-spacing: normal; - color: #000; -} - -.search-close { - position: absolute; - right: 24px; - cursor: pointer; -} - -.search-parent-override { - position: relative !important; -} - -.search-spinner { - top: 50%; - left: 50%; - position: absolute; -} \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/search-result.component.html b/harbor-app/src/app/base/global-search/search-result.component.html deleted file mode 100644 index e1cb968cd..000000000 --- a/harbor-app/src/app/base/global-search/search-result.component.html +++ /dev/null @@ -1,11 +0,0 @@ -
-
- Search results - - - -
- -
Search...
-
Results is showing here!
-
\ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/search-result.component.ts b/harbor-app/src/app/base/global-search/search-result.component.ts deleted file mode 100644 index ffc1598eb..000000000 --- a/harbor-app/src/app/base/global-search/search-result.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Component, Output, EventEmitter } from '@angular/core'; - -import { GlobalSearchService } from './global-search.service'; -import { SearchResults } from './search-results'; - -@Component({ - selector: "search-result", - templateUrl: "search-result.component.html", - styleUrls: ["search-result.component.css"], - - providers: [GlobalSearchService] -}) - -export class SearchResultComponent { - @Output() closeEvt = new EventEmitter(); - - searchResults: SearchResults; - - //Open or close - private stateIndicator: boolean = false; - //Search in progress - private onGoing: boolean = true; - - //Whether or not mouse point is onto the close indicator - private mouseOn: boolean = false; - - constructor(private search: GlobalSearchService) { } - - public get state(): boolean { - return this.stateIndicator; - } - - public get done(): boolean { - return !this.onGoing; - } - - public get hover(): boolean { - return this.mouseOn; - } - - //Handle mouse event of close indicator - mouseAction(over: boolean): void { - this.mouseOn = over; - } - - //Show the results - show(): void { - this.stateIndicator = true; - } - - //Close the result page - close(): void { - //Tell shell close - this.closeEvt.emit(true); - - this.stateIndicator = false; - } - - //Call search service to complete the search request - doSearch(term: string): void { - //Confirm page is displayed - if (!this.stateIndicator) { - this.show(); - } - - //Show spinner - this.onGoing = true; - - this.search.doSearch(term) - .then(searchResults => { - this.onGoing = false; - this.searchResults = searchResults; - console.info(searchResults); - }) - .catch(error => { - this.onGoing = false; - console.error(error);//TODO: Use general erro handler - }); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/global-search/search-results.ts b/harbor-app/src/app/base/global-search/search-results.ts deleted file mode 100644 index 7911c3465..000000000 --- a/harbor-app/src/app/base/global-search/search-results.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Project } from '../../project/project'; -import { Repository } from '../../repository/repository'; - -export class SearchResults { - projects: Project[]; - repositories: Repository[]; -} \ No newline at end of file diff --git a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.css b/harbor-app/src/app/base/harbor-shell/harbor-shell.component.css deleted file mode 100644 index e7e6c8deb..000000000 --- a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.css +++ /dev/null @@ -1,7 +0,0 @@ -.side-nav-override { - box-shadow: 6px 0px 0px 0px #ccc; -} - -.container-override { - position: relative !important; -} \ No newline at end of file diff --git a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.html b/harbor-app/src/app/base/harbor-shell/harbor-shell.component.html deleted file mode 100644 index 32a7281e1..000000000 --- a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.html +++ /dev/null @@ -1,30 +0,0 @@ - - - -
-
- - - -
- -
-
- - \ No newline at end of file diff --git a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.ts b/harbor-app/src/app/base/harbor-shell/harbor-shell.component.ts deleted file mode 100644 index 926c7ac73..000000000 --- a/harbor-app/src/app/base/harbor-shell/harbor-shell.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; -import { Router, ActivatedRoute } from '@angular/router'; - -import { ModalEvent } from '../modal-event'; -import { SearchEvent } from '../search-event'; -import { modalAccountSettings, modalPasswordSetting } from '../modal-events.const'; - -import { AccountSettingsModalComponent } from '../../account/account-settings/account-settings-modal.component'; -import { SearchResultComponent } from '../global-search/search-result.component'; -import { PasswordSettingComponent } from '../../account/password/password-setting.component'; -import { NavigatorComponent } from '../navigator/navigator.component'; - -@Component({ - selector: 'harbor-shell', - templateUrl: 'harbor-shell.component.html', - styleUrls: ["harbor-shell.component.css"] -}) - -export class HarborShellComponent implements OnInit { - - @ViewChild(AccountSettingsModalComponent) - private accountSettingsModal: AccountSettingsModalComponent; - - @ViewChild(SearchResultComponent) - private searchResultComponet: SearchResultComponent; - - @ViewChild(PasswordSettingComponent) - private pwdSetting: PasswordSettingComponent; - - @ViewChild(NavigatorComponent) - private navigator: NavigatorComponent; - - //To indicator whwther or not the search results page is displayed - //We need to use this property to do some overriding work - private isSearchResultsOpened: boolean = false; - - constructor(private route: ActivatedRoute) { } - - ngOnInit() { - this.route.data.subscribe(data => { - //dummy - }); - } - - public get showSearch(): boolean { - return this.isSearchResultsOpened; - } - - //Open modal dialog - openModal(event: ModalEvent): void { - switch (event.modalName) { - case modalAccountSettings: - this.accountSettingsModal.open(); - break; - case modalPasswordSetting: - this.pwdSetting.open(); - break; - default: - break; - } - } - - //Handle the global search event and then let the result page to trigger api - doSearch(event: SearchEvent): void { - //Once this method is called - //the search results page must be opened - this.isSearchResultsOpened = true; - - //Call the child component to do the real work - this.searchResultComponet.doSearch(event.term); - } - - //Search results page closed - //remove the related ovevriding things - searchClose(event: boolean): void { - if (event) { - this.isSearchResultsOpened = false; - } - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/modal-event.ts b/harbor-app/src/app/base/modal-event.ts deleted file mode 100644 index cef981802..000000000 --- a/harbor-app/src/app/base/modal-event.ts +++ /dev/null @@ -1,5 +0,0 @@ -//Define a object to store the modal event -export class ModalEvent { - modalName: string; - modalFlag: boolean; //true for open, false for close -} \ No newline at end of file diff --git a/harbor-app/src/app/base/modal-events.const.ts b/harbor-app/src/app/base/modal-events.const.ts deleted file mode 100644 index 6a8dca0ad..000000000 --- a/harbor-app/src/app/base/modal-events.const.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const modalAccountSettings= "account-settings"; -export const modalPasswordSetting = "password-setting"; \ No newline at end of file diff --git a/harbor-app/src/app/base/navigator/navigator.component.css b/harbor-app/src/app/base/navigator/navigator.component.css deleted file mode 100644 index f567136a5..000000000 --- a/harbor-app/src/app/base/navigator/navigator.component.css +++ /dev/null @@ -1,16 +0,0 @@ -.sign-in-override { - padding-left: 0px !important; - padding-right: 5px !important; -} - -.sign-up-override { - padding-left: 5px !important; -} - -.custom-divider { - display: inline-block; - border-right: 2px inset snow; - padding: 2px 0px 2px 0px; - vertical-align: middle; - height: 24px; -} \ No newline at end of file diff --git a/harbor-app/src/app/base/navigator/navigator.component.html b/harbor-app/src/app/base/navigator/navigator.component.html deleted file mode 100644 index 652175c3e..000000000 --- a/harbor-app/src/app/base/navigator/navigator.component.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -
-
- - - -
- - - - - - - - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/base/navigator/navigator.component.ts b/harbor-app/src/app/base/navigator/navigator.component.ts deleted file mode 100644 index 95e05b6c4..000000000 --- a/harbor-app/src/app/base/navigator/navigator.component.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Component, Output, EventEmitter, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; - -import { ModalEvent } from '../modal-event'; -import { SearchEvent } from '../search-event'; -import { modalAccountSettings, modalPasswordSetting } from '../modal-events.const'; - -import { SessionUser } from '../../shared/session-user'; -import { SessionService } from '../../shared/session.service'; - -@Component({ - selector: 'navigator', - templateUrl: "navigator.component.html", - styleUrls: ["navigator.component.css"] -}) - -export class NavigatorComponent implements OnInit { - // constructor(private router: Router){} - @Output() showAccountSettingsModal = new EventEmitter(); - @Output() searchEvt = new EventEmitter(); - @Output() showPwdChangeModal = new EventEmitter(); - - private sessionUser: SessionUser = null; - - constructor(private session: SessionService, private router: Router) { } - - ngOnInit(): void { - this.sessionUser = this.session.getCurrentUser(); - } - - public get isSessionValid(): boolean { - return this.sessionUser != null; - } - - public get accountName(): string { - return this.sessionUser?this.sessionUser.username: ""; - } - - //Open the account setting dialog - openAccountSettingsModal(): void { - this.showAccountSettingsModal.emit({ - modalName: modalAccountSettings, - modalFlag: true - }); - } - - //Open change password dialog - openChangePwdModal(): void { - this.showPwdChangeModal.emit({ - modalName: modalPasswordSetting, - modalFlag: true - }); - } - - //Only transfer the search event to the parent shell - transferSearchEvent(evt: SearchEvent): void { - this.searchEvt.emit(evt); - } - - //Log out system - logOut(): void { - this.session.signOff() - .then(() => { - this.sessionUser = null; - //Naviagte to the sign in route - this.router.navigate(["/sign-in"]); - }) - .catch()//TODO: - } -} \ No newline at end of file diff --git a/harbor-app/src/app/base/search-event.ts b/harbor-app/src/app/base/search-event.ts deleted file mode 100644 index 11658f940..000000000 --- a/harbor-app/src/app/base/search-event.ts +++ /dev/null @@ -1,4 +0,0 @@ -//Define a object to store the search event -export class SearchEvent { - term: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/core/core.module.ts b/harbor-app/src/app/core/core.module.ts deleted file mode 100644 index a18380aa9..000000000 --- a/harbor-app/src/app/core/core.module.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HttpModule } from '@angular/http'; -import { ClarityModule } from 'clarity-angular'; - -@NgModule({ - imports: [ - BrowserModule, - FormsModule, - HttpModule, - ClarityModule.forRoot() - ], - exports: [ - BrowserModule, - FormsModule, - HttpModule, - ClarityModule - ] -}) -export class CoreModule { -} diff --git a/harbor-app/src/app/dashboard/dashboard.component.html b/harbor-app/src/app/dashboard/dashboard.component.html deleted file mode 100644 index a96a15ee4..000000000 --- a/harbor-app/src/app/dashboard/dashboard.component.html +++ /dev/null @@ -1,54 +0,0 @@ -

Dashboard

-
-
-
-
-

Why user Harbor?

-

- Project Harbor is an enterprise-class registry server, which extends the open source Docker Registry server by adding the functionality usually required by an enterprise, such as security, control, and management. Harbor is primarily designed to be a private registry - providing the needed security and control that enterprises require. It also helps minimize ... -

-
- -
-
- -
-
-
-

Activities

-

- ... -

-
-
-
-
-
-
- - Name - Version - Count - - {{r.name}} - {{r.version}} - {{r.count}} - - {{repositories.length}} item(s) - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/dashboard/dashboard.component.ts b/harbor-app/src/app/dashboard/dashboard.component.ts deleted file mode 100644 index acc0ac96a..000000000 --- a/harbor-app/src/app/dashboard/dashboard.component.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -import { Repository } from '../repository/repository'; - -@Component({ - selector: 'dashboard', - templateUrl: 'dashboard.component.html' -}) -export class DashboardComponent implements OnInit { - repositories: Repository[]; - - ngOnInit(): void { - this.repositories = [ - { name: 'Ubuntu', version: '14.04', count: 1 }, - { name: 'MySQL', version: 'Latest', count: 2 }, - { name: 'Photon', version: '1.0', count: 3 } - ]; - } - -} \ No newline at end of file diff --git a/harbor-app/src/app/dashboard/dashboard.module.ts b/harbor-app/src/app/dashboard/dashboard.module.ts deleted file mode 100644 index e00cfd5c3..000000000 --- a/harbor-app/src/app/dashboard/dashboard.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { DashboardComponent } from './dashboard.component'; -import { SharedModule } from '../shared/shared.module'; - -@NgModule({ - imports: [ SharedModule ], - declarations: [ DashboardComponent ], - exports: [ DashboardComponent ] -}) -export class DashboardModule {} \ No newline at end of file diff --git a/harbor-app/src/app/global-message/message.component.html b/harbor-app/src/app/global-message/message.component.html deleted file mode 100644 index 283e40ad9..000000000 --- a/harbor-app/src/app/global-message/message.component.html +++ /dev/null @@ -1,7 +0,0 @@ - -
- - {{globalMessage}} - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/global-message/message.component.ts b/harbor-app/src/app/global-message/message.component.ts deleted file mode 100644 index 6d00c19a9..000000000 --- a/harbor-app/src/app/global-message/message.component.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Component } from '@angular/core'; -import { MessageService } from './message.service'; - -@Component({ - selector: 'global-message', - templateUrl: 'message.component.html' -}) -export class MessageComponent { - - globalMessageOpened: boolean; - globalMessage: string; - - constructor(messageService: MessageService) { - messageService.messageAnnounced$.subscribe( - message=>{ - this.globalMessageOpened = true; - this.globalMessage = message; - console.log('received message:' + message); - } - ) - } - - onClose() { - this.globalMessageOpened = false; - } -} \ No newline at end of file diff --git a/harbor-app/src/app/global-message/message.service.ts b/harbor-app/src/app/global-message/message.service.ts deleted file mode 100644 index 834ae2ca3..000000000 --- a/harbor-app/src/app/global-message/message.service.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Subject } from 'rxjs/Subject'; - -@Injectable() -export class MessageService { - - private messageAnnouncedSource = new Subject(); - - messageAnnounced$ = this.messageAnnouncedSource.asObservable(); - - announceMessage(message: string) { - this.messageAnnouncedSource.next(message); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/harbor-routing.module.ts b/harbor-app/src/app/harbor-routing.module.ts deleted file mode 100644 index 1282b5c29..000000000 --- a/harbor-app/src/app/harbor-routing.module.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { NgModule } from '@angular/core'; - -import { RouterModule, Routes } from '@angular/router'; - -import { SignInComponent } from './account/sign-in/sign-in.component'; -import { HarborShellComponent } from './base/harbor-shell/harbor-shell.component'; - -import { BaseRoutingResolver } from './base/base-routing-resolver.service'; - -const harborRoutes: Routes = [ - { - path: 'harbor', - component: HarborShellComponent - }, - { path: '', redirectTo: '/harbor', pathMatch: 'full' }, - { path: 'sign-in', component: SignInComponent } -]; - -@NgModule({ - imports: [ - RouterModule.forRoot(harborRoutes) - ], - exports: [RouterModule] -}) -export class HarborRoutingModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/index.ts b/harbor-app/src/app/index.ts deleted file mode 100644 index 875bdb2f2..000000000 --- a/harbor-app/src/app/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './app.component'; -export * from './app.module'; diff --git a/harbor-app/src/app/log/audit-log.component.html b/harbor-app/src/app/log/audit-log.component.html deleted file mode 100644 index 1be59aeb2..000000000 --- a/harbor-app/src/app/log/audit-log.component.html +++ /dev/null @@ -1,44 +0,0 @@ -
-
-
-
- -
-
- -
-
-
-
- - - - -
-
- - -
-
- - Username - Repository Name - Tag - Operation - Timestamp - - {{l.username}} - {{l.repo_name}} - {{l.repo_tag}} - {{l.operation}} - {{l.op_time}} - - {{ (auditLogs ? auditLogs.length : 0) }} item(s) - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/log/audit-log.component.ts b/harbor-app/src/app/log/audit-log.component.ts deleted file mode 100644 index 375a3007c..000000000 --- a/harbor-app/src/app/log/audit-log.component.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute, Params, Router } from '@angular/router'; - -import { AuditLog } from './audit-log'; -import { SessionUser } from '../shared/session-user'; - -import { AuditLogService } from './audit-log.service'; -import { SessionService } from '../shared/session.service'; -import { MessageService } from '../global-message/message.service'; - -export const optionalSearch: {} = {0: 'Advanced', 1: 'Simple'}; - - -export class FilterOption { - key: string; - description: string; - checked: boolean; - - constructor(private iKey: string, private iDescription: string, private iChecked: boolean) { - this.key = iKey; - this.description = iDescription; - this.checked = iChecked; - } - - toString(): string { - return 'key:' + this.key + ', description:' + this.description + ', checked:' + this.checked + '\n'; - } -} - -@Component({ - selector: 'audit-log', - templateUrl: './audit-log.component.html', - styleUrls: [ 'audit-log.css' ] -}) -export class AuditLogComponent implements OnInit { - - currentUser: SessionUser; - projectId: number; - queryParam: AuditLog = new AuditLog(); - auditLogs: AuditLog[]; - - toggleName = optionalSearch; - currentOption: number = 0; - filterOptions: FilterOption[] = [ - new FilterOption('all', 'All Operations', true), - new FilterOption('pull', 'Pull', true), - new FilterOption('push', 'Push', true), - new FilterOption('create', 'Create', true), - new FilterOption('delete', 'Delete', true), - new FilterOption('others', 'Others', true) - ]; - - constructor(private route: ActivatedRoute, private router: Router, private auditLogService: AuditLogService, private messageService: MessageService) { - //Get current user from registered resolver. - this.route.data.subscribe(data=>this.currentUser = data['auditLogResolver']); - } - - ngOnInit(): void { - this.projectId = +this.route.snapshot.parent.params['id']; - console.log('Get projectId from route params snapshot:' + this.projectId); - this.queryParam.project_id = this.projectId; - this.retrieve(this.queryParam); - } - - retrieve(queryParam: AuditLog): void { - this.auditLogService - .listAuditLogs(queryParam) - .subscribe( - response=>this.auditLogs = response, - error=>{ - this.router.navigate(['/harbor', 'projects']); - this.messageService.announceMessage('Failed to list audit logs with project ID:' + queryParam.project_id); - } - ); - } - - doSearchAuditLogs(searchUsername: string): void { - this.queryParam.username = searchUsername; - this.retrieve(this.queryParam); - } - - doSearchByTimeRange(strDate: string, target: string): void { - let oneDayOffset = 3600 * 24; - switch(target) { - case 'begin': - this.queryParam.begin_timestamp = new Date(strDate).getTime() / 1000; - break; - case 'end': - this.queryParam.end_timestamp = new Date(strDate).getTime() / 1000 + oneDayOffset; - break; - } - console.log('Search audit log filtered by time range, begin: ' + this.queryParam.begin_timestamp + ', end:' + this.queryParam.end_timestamp); - this.retrieve(this.queryParam); - } - - doSearchByOptions() { - let selectAll = true; - let operationFilter: string[] = []; - for(var i in this.filterOptions) { - let filterOption = this.filterOptions[i]; - if(filterOption.checked) { - operationFilter.push(this.filterOptions[i].key); - }else{ - selectAll = false; - } - } - if(selectAll) { - operationFilter = []; - } - this.queryParam.keywords = operationFilter.join('/'); - this.retrieve(this.queryParam); - console.log('Search option filter:' + operationFilter.join('/')); - } - - toggleOptionalName(option: number): void { - (option === 1) ? this.currentOption = 0 : this.currentOption = 1; - } - - toggleFilterOption(option: string): void { - let selectedOption = this.filterOptions.find(value =>(value.key === option)); - selectedOption.checked = !selectedOption.checked; - if(selectedOption.key === 'all') { - this.filterOptions.filter(value=> value.key !== selectedOption.key).forEach(value => value.checked = selectedOption.checked); - } else { - if(!selectedOption.checked) { - this.filterOptions.find(value=>value.key === 'all').checked = false; - } - let selectAll = true; - this.filterOptions.filter(value=> value.key !== 'all').forEach(value =>{ - if(!value.checked) { - selectAll = false; - } - }); - this.filterOptions.find(value=>value.key === 'all').checked = selectAll; - } - this.doSearchByOptions(); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/log/audit-log.css b/harbor-app/src/app/log/audit-log.css deleted file mode 100644 index 32fc27c22..000000000 --- a/harbor-app/src/app/log/audit-log.css +++ /dev/null @@ -1,3 +0,0 @@ -.advance-option { - font-size: 12px; -} diff --git a/harbor-app/src/app/log/audit-log.service.ts b/harbor-app/src/app/log/audit-log.service.ts deleted file mode 100644 index ce0ac3e7a..000000000 --- a/harbor-app/src/app/log/audit-log.service.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Http, Headers, RequestOptions } from '@angular/http'; - -import { BaseService } from '../service/base.service'; - -import { AuditLog } from './audit-log'; - -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/catch'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/observable/throw'; - -export const urlPrefix = ''; - -@Injectable() -export class AuditLogService extends BaseService { - - constructor(private http: Http) { - super(); - } - - listAuditLogs(queryParam: AuditLog): Observable { - return this.http - .post(urlPrefix + `/api/projects/${queryParam.project_id}/logs/filter`, { - begin_timestamp: queryParam.begin_timestamp, - end_timestamp: queryParam.end_timestamp, - keywords: queryParam.keywords, - operation: queryParam.operation, - project_id: queryParam.project_id, - username: queryParam.username }) - .map(response=>response.json() as AuditLog[]) - .catch(error=>this.handleError(error)); - } - -} \ No newline at end of file diff --git a/harbor-app/src/app/log/audit-log.ts b/harbor-app/src/app/log/audit-log.ts deleted file mode 100644 index d008a9ef6..000000000 --- a/harbor-app/src/app/log/audit-log.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - { - "log_id": 3, - "user_id": 0, - "project_id": 0, - "repo_name": "library/mysql", - "repo_tag": "5.6", - "guid": "", - "operation": "push", - "op_time": "2017-02-14T09:22:58Z", - "username": "admin", - "keywords": "", - "BeginTime": "0001-01-01T00:00:00Z", - "begin_timestamp": 0, - "EndTime": "0001-01-01T00:00:00Z", - "end_timestamp": 0 - } -*/ -export class AuditLog { - log_id: number; - project_id: number; - username: string; - repo_name: string; - repo_tag: string; - operation: string; - op_time: Date; - begin_timestamp: number = 0; - end_timestamp: number = 0; - keywords: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/log/log.module.ts b/harbor-app/src/app/log/log.module.ts deleted file mode 100644 index 307df9dea..000000000 --- a/harbor-app/src/app/log/log.module.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { NgModule } from '@angular/core'; -import { AuditLogComponent } from './audit-log.component'; -import { SharedModule } from '../shared/shared.module'; -import { AuditLogService } from './audit-log.service'; -@NgModule({ - imports: [ SharedModule ], - declarations: [ AuditLogComponent ], - providers: [ AuditLogService ], - exports: [ AuditLogComponent ] -}) -export class LogModule {} \ No newline at end of file diff --git a/harbor-app/src/app/project/action-project/action-project.component.html b/harbor-app/src/app/project/action-project/action-project.component.html deleted file mode 100644 index 9ec7c700b..000000000 --- a/harbor-app/src/app/project/action-project/action-project.component.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - \ No newline at end of file diff --git a/harbor-app/src/app/project/action-project/action-project.component.ts b/harbor-app/src/app/project/action-project/action-project.component.ts deleted file mode 100644 index 7542d3b7e..000000000 --- a/harbor-app/src/app/project/action-project/action-project.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { Project } from '../project'; -import { ProjectService } from '../project.service'; - -@Component({ - selector: 'action-project', - templateUrl: 'action-project.component.html' -}) -export class ActionProjectComponent { - - @Output() togglePublic = new EventEmitter(); - @Output() deleteProject = new EventEmitter(); - - @Input() project: Project; - - constructor(private projectService: ProjectService) {} - - toggle() { - if(this.project) { - this.project.public === 0 ? this.project.public = 1 : this.project.public = 0; - this.togglePublic.emit(this.project); - } - } - - delete() { - if(this.project) { - this.deleteProject.emit(this.project); - } - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/create-project/create-project.component.html b/harbor-app/src/app/project/create-project/create-project.component.html deleted file mode 100644 index 81e3dca69..000000000 --- a/harbor-app/src/app/project/create-project/create-project.component.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/harbor-app/src/app/project/create-project/create-project.component.ts b/harbor-app/src/app/project/create-project/create-project.component.ts deleted file mode 100644 index a72c2e178..000000000 --- a/harbor-app/src/app/project/create-project/create-project.component.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Component, EventEmitter, Output } from '@angular/core'; -import { Response } from '@angular/http'; - -import { Project } from '../project'; -import { ProjectService } from '../project.service'; - -import { MessageService } from '../../global-message/message.service'; - -@Component({ - selector: 'create-project', - templateUrl: 'create-project.component.html', - styleUrls: [ 'create-project.css' ] -}) -export class CreateProjectComponent { - - project: Project = new Project(); - createProjectOpened: boolean; - - errorMessage: string; - hasError: boolean; - - @Output() create = new EventEmitter(); - - constructor(private projectService: ProjectService, private messageService: MessageService) {} - - onSubmit() { - this.hasError = false; - this.projectService - .createProject(this.project.name, this.project.public ? 1 : 0) - .subscribe( - status=>{ - this.create.emit(true); - this.createProjectOpened = false; - }, - error=>{ - this.hasError = true; - if (error instanceof Response) { - switch(error.status) { - case 409: - this.errorMessage = 'Project name already exists.'; - break; - case 400: - this.errorMessage = 'Project name is illegal.'; - break; - default: - this.errorMessage = 'Unknown error for project name.'; - this.messageService.announceMessage(this.errorMessage); - } - } - }); - } - - newProject() { - this.hasError = false; - this.project = new Project(); - this.createProjectOpened = true; - } -} - diff --git a/harbor-app/src/app/project/create-project/create-project.css b/harbor-app/src/app/project/create-project/create-project.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/harbor-app/src/app/project/list-project/list-project.component.html b/harbor-app/src/app/project/list-project/list-project.component.html deleted file mode 100644 index 004b96696..000000000 --- a/harbor-app/src/app/project/list-project/list-project.component.html +++ /dev/null @@ -1,24 +0,0 @@ - - Name - Public/Private - Repositories - Creation time - Description - - - {{p.name}} - {{p.public == 1 ? 'Public': 'Private'}} - {{p.repo_count}} - {{p.creation_time}} - - {{p.description}} - - - - - - {{ (projects ? projects.length : 0) }} item(s) - \ No newline at end of file diff --git a/harbor-app/src/app/project/list-project/list-project.component.ts b/harbor-app/src/app/project/list-project/list-project.component.ts deleted file mode 100644 index 104371bcf..000000000 --- a/harbor-app/src/app/project/list-project/list-project.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Component, EventEmitter, Output, Input } from '@angular/core'; -import { Project } from '../project'; -import { ProjectService } from '../project.service'; - - -@Component({ - selector: 'list-project', - templateUrl: 'list-project.component.html' -}) -export class ListProjectComponent { - - @Input() projects: Project[]; - - @Output() toggle = new EventEmitter(); - @Output() delete = new EventEmitter(); - - toggleProject(p: Project) { - this.toggle.emit(p); - } - - deleteProject(p: Project) { - this.delete.emit(p); - } - -} \ No newline at end of file diff --git a/harbor-app/src/app/project/member/add-member/add-member.component.html b/harbor-app/src/app/project/member/add-member/add-member.component.html deleted file mode 100644 index 4242e199e..000000000 --- a/harbor-app/src/app/project/member/add-member/add-member.component.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/harbor-app/src/app/project/member/add-member/add-member.component.ts b/harbor-app/src/app/project/member/add-member/add-member.component.ts deleted file mode 100644 index ad5cf5454..000000000 --- a/harbor-app/src/app/project/member/add-member/add-member.component.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Component, Input, EventEmitter, Output } from '@angular/core'; -import { Response } from '@angular/http'; -import { MemberService } from '../member.service'; -import { MessageService } from '../../../global-message/message.service'; -import { Member } from '../member'; - -@Component({ - selector: 'add-member', - templateUrl: 'add-member.component.html' -}) -export class AddMemberComponent { - - member: Member = new Member(); - addMemberOpened: boolean; - errorMessage: string; - hasError: boolean; - - @Input() projectId: number; - @Output() added = new EventEmitter(); - - constructor(private memberService: MemberService, private messageService: MessageService) {} - - onSubmit(): void { - this.hasError = false; - console.log('Adding member:' + JSON.stringify(this.member)); - this.memberService - .addMember(this.projectId, this.member.username, this.member.role_id) - .subscribe( - response=>{ - console.log('Added member successfully.'); - this.added.emit(true); - this.addMemberOpened = false; - }, - error=>{ - this.hasError = true; - if (error instanceof Response) { - switch(error.status){ - case 404: - this.errorMessage = 'Username does not exist.'; - break; - case 409: - this.errorMessage = 'Username already exists.'; - break; - default: - this.errorMessage = 'Unknow error occurred while adding member.'; - this.messageService.announceMessage(this.errorMessage); - } - } - console.log('Failed to add member of project:' + this.projectId, ' with error:' + error); - } - ); - - - } - - openAddMemberModal(): void { - this.hasError = false; - this.member = new Member(); - this.addMemberOpened = true; - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/member/member.component.html b/harbor-app/src/app/project/member/member.component.html deleted file mode 100644 index df6e372f6..000000000 --- a/harbor-app/src/app/project/member/member.component.html +++ /dev/null @@ -1,38 +0,0 @@ -
-
-
-
- - -
-
- -
-
- - Name - Role - Action - - {{u.username}} - {{roleInfo[u.role_id]}} - - - - - - - - {{ (members ? members.length : 0) }} item(s) - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/project/member/member.component.ts b/harbor-app/src/app/project/member/member.component.ts deleted file mode 100644 index a88036977..000000000 --- a/harbor-app/src/app/project/member/member.component.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; -import { ActivatedRoute, Params, Router } from '@angular/router'; - -import { SessionUser } from '../../shared/session-user'; -import { Member } from './member'; -import { MemberService } from './member.service'; - -import { AddMemberComponent } from './add-member/add-member.component'; - -import { MessageService } from '../../global-message/message.service'; - -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/switchMap'; -import 'rxjs/add/operator/catch'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/observable/throw'; - -export const roleInfo: {} = { 1: 'ProjectAdmin', 2: 'Developer', 3: 'Guest'}; - -@Component({ - templateUrl: 'member.component.html' -}) -export class MemberComponent implements OnInit { - - currentUser: SessionUser; - members: Member[]; - projectId: number; - roleInfo = roleInfo; - - @ViewChild(AddMemberComponent) - addMemberComponent: AddMemberComponent; - - constructor(private route: ActivatedRoute, private router: Router, private memberService: MemberService, private messageService: MessageService) { - //Get current user from registered resolver. - this.route.data.subscribe(data=>this.currentUser = data['memberResolver']); - } - - retrieve(projectId:number, username: string) { - this.memberService - .listMembers(projectId, username) - .subscribe( - response=>this.members = response, - error=>{ - this.router.navigate(['/harbor', 'projects']); - this.messageService.announceMessage('Failed to get project member with project ID:' + projectId); - } - ); - } - - ngOnInit() { - //Get projectId from route params snapshot. - this.projectId = +this.route.snapshot.parent.params['id']; - console.log('Get projectId from route params snapshot:' + this.projectId); - - this.retrieve(this.projectId, ''); - } - - openAddMemberModal() { - this.addMemberComponent.openAddMemberModal(); - } - - addedMember() { - this.retrieve(this.projectId, ''); - } - - changeRole(userId: number, roleId: number) { - this.memberService - .changeMemberRole(this.projectId, userId, roleId) - .subscribe( - response=>{ - console.log('Successful change role with user ' + userId + ' to roleId ' + roleId); - this.retrieve(this.projectId, ''); - }, - error => this.messageService.announceMessage('Failed to change role with user ' + userId + ' to roleId ' + roleId) - ); - } - - deleteMember(userId: number) { - this.memberService - .deleteMember(this.projectId, userId) - .subscribe( - response=>{ - console.log('Successful change role with user ' + userId); - this.retrieve(this.projectId, ''); - }, - error => this.messageService.announceMessage('Failed to change role with user ' + userId) - ); - } - - doSearch(searchMember) { - this.retrieve(this.projectId, searchMember); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/member/member.service.ts b/harbor-app/src/app/project/member/member.service.ts deleted file mode 100644 index e4897f23d..000000000 --- a/harbor-app/src/app/project/member/member.service.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Http } from '@angular/http'; - -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/catch'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/observable/throw'; - -import { BaseService } from '../../service/base.service'; -import { Member } from './member'; - -export const urlPrefix = ''; - -@Injectable() -export class MemberService extends BaseService { - - constructor(private http: Http) { - super(); - } - - listMembers(projectId: number, username: string): Observable { - console.log('Get member from project_id:' + projectId + ', username:' + username); - return this.http - .get(urlPrefix + `/api/projects/${projectId}/members?username=${username}`) - .map(response=>response.json()) - .catch(error=>this.handleError(error)); - } - - addMember(projectId: number, username: string, roleId: number): Observable { - console.log('Adding member with username:' + username + ', roleId:' + roleId + ' under projectId:' + projectId); - return this.http - .post(urlPrefix + `/api/projects/${projectId}/members`, { username: username, roles: [ roleId ] }) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } - - changeMemberRole(projectId: number, userId: number, roleId: number): Observable { - console.log('Changing member role with userId:' + ' to roleId:' + roleId + ' under projectId:' + projectId); - return this.http - .put(urlPrefix + `/api/projects/${projectId}/members/${userId}`, { roles: [ roleId ]}) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } - - deleteMember(projectId: number, userId: number): Observable { - console.log('Deleting member role with userId:' + userId + ' under projectId:' + projectId); - return this.http - .delete(urlPrefix + `/api/projects/${projectId}/members/${userId}`) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/member/member.ts b/harbor-app/src/app/project/member/member.ts deleted file mode 100644 index d58a55654..000000000 --- a/harbor-app/src/app/project/member/member.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* -{ - "user_id": 1, - "username": "admin", - "email": "", - "password": "", - "realname": "", - "comment": "", - "deleted": 0, - "role_name": "projectAdmin", - "role_id": 1, - "has_admin_role": 0, - "reset_uuid": "", - "creation_time": "0001-01-01T00:00:00Z", - "update_time": "0001-01-01T00:00:00Z" -} -*/ - -export class Member { - user_id: number; - username: string; - role_name: string; - has_admin_role: number; - role_id: number; -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project-detail/project-detail.component.html b/harbor-app/src/app/project/project-detail/project-detail.component.html deleted file mode 100644 index eab409e8c..000000000 --- a/harbor-app/src/app/project/project-detail/project-detail.component.html +++ /dev/null @@ -1,18 +0,0 @@ -

{{currentProject.name}}

- - diff --git a/harbor-app/src/app/project/project-detail/project-detail.component.ts b/harbor-app/src/app/project/project-detail/project-detail.component.ts deleted file mode 100644 index aa92405a5..000000000 --- a/harbor-app/src/app/project/project-detail/project-detail.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; - -import { Project } from '../project'; - -@Component({ - selector: 'project-detail', - templateUrl: "project-detail.component.html", - styleUrls: [ 'project-detail.css' ] -}) -export class ProjectDetailComponent { - - currentProject: Project; - - constructor(private route: ActivatedRoute, private router: Router) { - this.route.data.subscribe(data=>this.currentProject = data['projectResolver']); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project-detail/project-detail.css b/harbor-app/src/app/project/project-detail/project-detail.css deleted file mode 100644 index 585bd5154..000000000 --- a/harbor-app/src/app/project/project-detail/project-detail.css +++ /dev/null @@ -1,11 +0,0 @@ -.display-in-line { - display: inline-block; -} - -.project-title { - margin-left: 10px; -} - -.pull-right { - float: right !important; -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project-routing-resolver.service.ts b/harbor-app/src/app/project/project-routing-resolver.service.ts deleted file mode 100644 index 92e80906f..000000000 --- a/harbor-app/src/app/project/project-routing-resolver.service.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router'; - -import { Project } from './project'; -import { ProjectService } from './project.service'; - -@Injectable() -export class ProjectRoutingResolver implements Resolve{ - - constructor(private projectService: ProjectService, private router: Router) {} - - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise { - let projectId = route.params['id']; - return this.projectService - .getProject(projectId) - .then(project=> { - if(project) { - return project; - } else { - this.router.navigate(['/harbor', 'projects']); - return null; - } - }); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project-routing.module.ts b/harbor-app/src/app/project/project-routing.module.ts deleted file mode 100644 index 452c3340b..000000000 --- a/harbor-app/src/app/project/project-routing.module.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; - -import { HarborShellComponent } from '../base/harbor-shell/harbor-shell.component'; -import { ProjectComponent } from './project.component'; -import { ProjectDetailComponent } from './project-detail/project-detail.component'; - -import { RepositoryComponent } from '../repository/repository.component'; -import { ReplicationComponent } from '../replication/replication.component'; -import { MemberComponent } from './member/member.component'; -import { AuditLogComponent } from '../log/audit-log.component'; - -import { BaseRoutingResolver } from '../base/base-routing-resolver.service'; -import { ProjectRoutingResolver } from './project-routing-resolver.service'; - -const projectRoutes: Routes = [ - { - path: 'harbor', - component: HarborShellComponent, - resolve: { - harborResolver: BaseRoutingResolver - }, - children: [ - { - path: 'projects', - component: ProjectComponent, - resolve: { - projectsResolver: BaseRoutingResolver - } - }, - { - path: 'projects/:id', - component: ProjectDetailComponent, - resolve: { - projectResolver: ProjectRoutingResolver - }, - children: [ - { path: 'repository', component: RepositoryComponent }, - { path: 'replication', component: ReplicationComponent }, - { - path: 'member', component: MemberComponent, - resolve: { - memberResolver: BaseRoutingResolver - } - }, - { - path: 'log', component: AuditLogComponent, - resolve: { - auditLogResolver: BaseRoutingResolver - } - } - ] - } - ] - } -]; - -@NgModule({ - imports: [ - RouterModule.forChild(projectRoutes) - ], - exports: [RouterModule] -}) -export class ProjectRoutingModule { } \ No newline at end of file diff --git a/harbor-app/src/app/project/project.component.html b/harbor-app/src/app/project/project.component.html deleted file mode 100644 index 22fe2526a..000000000 --- a/harbor-app/src/app/project/project.component.html +++ /dev/null @@ -1,23 +0,0 @@ -

Projects

-
-
- - -
-
- - - - - -
-
- -
-
\ No newline at end of file diff --git a/harbor-app/src/app/project/project.component.ts b/harbor-app/src/app/project/project.component.ts deleted file mode 100644 index 98d28a026..000000000 --- a/harbor-app/src/app/project/project.component.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; - -import { Router } from '@angular/router'; - -import { Project } from './project'; -import { ProjectService } from './project.service'; - -import { CreateProjectComponent } from './create-project/create-project.component'; - -import { ListProjectComponent } from './list-project/list-project.component'; - -import { MessageService } from '../global-message/message.service'; - -export const types: {} = { 0: 'My Projects', 1: 'Public Projects'}; - -@Component({ - selector: 'project', - templateUrl: 'project.component.html', - styleUrls: [ 'project.css' ] -}) -export class ProjectComponent implements OnInit { - - selected = []; - changedProjects: Project[]; - projectTypes = types; - - @ViewChild(CreateProjectComponent) - creationProject: CreateProjectComponent; - - @ViewChild(ListProjectComponent) - listProject: ListProjectComponent; - - currentFilteredType: number = 0; - lastFilteredType: number = 0; - - constructor(private projectService: ProjectService, private messageService: MessageService){} - - ngOnInit(): void { - this.retrieve('', this.lastFilteredType); - } - - retrieve(name: string, isPublic: number): void { - this.projectService - .listProjects(name, isPublic) - .subscribe( - response => this.changedProjects = response, - error => this.messageService.announceMessage(error)); - } - - openModal(): void { - this.creationProject.newProject(); - } - - createProject(created: boolean) { - if(created) { - this.retrieve('', this.lastFilteredType); - } - } - - doSearchProjects(projectName: string): void { - console.log('Search for project name:' + projectName); - this.retrieve(projectName, this.lastFilteredType); - } - - doFilterProjects(filteredType: number): void { - console.log('Filter projects with type:' + types[filteredType]); - this.lastFilteredType = filteredType; - this.currentFilteredType = filteredType; - this.retrieve('', this.lastFilteredType); - } - - toggleProject(p: Project) { - this.projectService - .toggleProjectPublic(p.project_id, p.public) - .subscribe( - response=>console.log('Successful toggled project_id:' + p.project_id), - error=>this.messageService.announceMessage(error) - ); - } - - deleteProject(p: Project) { - this.projectService - .deleteProject(p.project_id) - .subscribe( - response=>{ - console.log('Successful delete project_id:' + p.project_id); - this.retrieve('', this.lastFilteredType); - }, - error=>console.log(error) - ); - } - -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project.css b/harbor-app/src/app/project/project.css deleted file mode 100644 index 2613a0fc3..000000000 --- a/harbor-app/src/app/project/project.css +++ /dev/null @@ -1,3 +0,0 @@ -.my-project-pull-right { - float: right; -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project.module.ts b/harbor-app/src/app/project/project.module.ts deleted file mode 100644 index 4d4eef544..000000000 --- a/harbor-app/src/app/project/project.module.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { NgModule } from '@angular/core'; - -import { SharedModule } from '../shared/shared.module'; -import { RepositoryModule } from '../repository/repository.module'; -import { ReplicationModule } from '../replication/replication.module'; -import { LogModule } from '../log/log.module'; - -import { ProjectComponent } from './project.component'; -import { CreateProjectComponent } from './create-project/create-project.component'; -import { ActionProjectComponent } from './action-project/action-project.component'; -import { ListProjectComponent } from './list-project/list-project.component'; - -import { ProjectDetailComponent } from './project-detail/project-detail.component'; - -import { MemberComponent } from './member/member.component'; -import { AddMemberComponent } from './member/add-member/add-member.component'; - -import { ProjectRoutingModule } from './project-routing.module'; - -import { ProjectService } from './project.service'; -import { MemberService } from './member/member.service'; -import { ProjectRoutingResolver } from './project-routing-resolver.service'; - -@NgModule({ - imports: [ - SharedModule, - RepositoryModule, - ReplicationModule, - LogModule, - ProjectRoutingModule - ], - declarations: [ - ProjectComponent, - CreateProjectComponent, - ActionProjectComponent, - ListProjectComponent, - ProjectDetailComponent, - MemberComponent, - AddMemberComponent - ], - exports: [ ProjectComponent ], - providers: [ ProjectRoutingResolver, ProjectService, MemberService ] -}) -export class ProjectModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project.service.ts b/harbor-app/src/app/project/project.service.ts deleted file mode 100644 index 32153ed74..000000000 --- a/harbor-app/src/app/project/project.service.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Injectable } from '@angular/core'; - -import { Http, Headers, RequestOptions } from '@angular/http'; -import { Project } from './project'; - -import { BaseService } from '../service/base.service'; - -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/operator/catch'; -import 'rxjs/add/operator/map'; -import 'rxjs/add/observable/throw'; - -const url_prefix = ''; - -@Injectable() -export class ProjectService extends BaseService { - - headers = new Headers({'Content-type': 'application/json'}); - options = new RequestOptions({'headers': this.headers}); - - constructor(private http: Http) { - super(); - } - - getProject(projectId: number): Promise { - return this.http - .get(url_prefix + `/api/projects/${projectId}`) - .toPromise() - .then(response=>response.json() as Project) - .catch(error=>Observable.throw(error)); - } - - listProjects(name: string, isPublic: number): Observable{ - return this.http - .get(url_prefix + `/api/projects?project_name=${name}&is_public=${isPublic}`, this.options) - .map(response=>response.json()) - .catch(this.handleError); - } - - createProject(name: string, isPublic: number): Observable { - return this.http - .post(url_prefix + `/api/projects`, - JSON.stringify({'project_name': name, 'public': isPublic}) - , this.options) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } - - toggleProjectPublic(projectId: number, isPublic: number): Observable { - return this.http - .put(url_prefix + `/api/projects/${projectId}/publicity`, { 'public': isPublic }, this.options) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } - - deleteProject(projectId: number): Observable { - return this.http - .delete(url_prefix + `/api/projects/${projectId}`) - .map(response=>response.status) - .catch(error=>Observable.throw(error)); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/project/project.ts b/harbor-app/src/app/project/project.ts deleted file mode 100644 index 1c6d73014..000000000 --- a/harbor-app/src/app/project/project.ts +++ /dev/null @@ -1,32 +0,0 @@ -/* - [ - { - "project_id": 1, - "owner_id": 1, - "name": "library", - "creation_time": "2017-02-10T07:57:56Z", - "creation_time_str": "", - "deleted": 0, - "owner_name": "", - "public": 1, - "Togglable": true, - "update_time": "2017-02-10T07:57:56Z", - "current_user_role_id": 1, - "repo_count": 0 - } - ] -*/ -export class Project { - project_id: number; - owner_id: number; - name: string; - creation_time: Date; - creation_time_str: string; - deleted: number; - owner_name: string; - public: number; - Togglable: boolean; - update_time: Date; - current_user_role_id: number; - repo_count: number; -} \ No newline at end of file diff --git a/harbor-app/src/app/replication/job.ts b/harbor-app/src/app/replication/job.ts deleted file mode 100644 index e09648be9..000000000 --- a/harbor-app/src/app/replication/job.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class Job { - name: string; - status: string; - operation: string; - creationTime: string; - endTime: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/replication/policy.ts b/harbor-app/src/app/replication/policy.ts deleted file mode 100644 index be8d58ded..000000000 --- a/harbor-app/src/app/replication/policy.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class Policy { - name: string; - status: string; - destination: string; - lastStartTime: string; - description: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/replication/replication.component.html b/harbor-app/src/app/replication/replication.component.html deleted file mode 100644 index 173f91a86..000000000 --- a/harbor-app/src/app/replication/replication.component.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - -
-
-
-
- -
-
- -
-
- - Name - Status - Destination - Last start time - Description - Action - - {{p.name}} - {{p.status}} - {{p.destination}} - {{p.lastStartTime}} - {{p.description}} - - - - - - - - {{policies.length}} item(s) - -
-
- Replication Jobs for 'project01/sync_01' -
-
- - - - - -
-
- - Name - Status - Operation - Creation time - End time - Logs - - {{j.name}} - {{j.status}} - {{j.operation}} - {{j.creationTime}} - {{j.endTime}} - - - {{jobs.length}} item(s) - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/replication/replication.component.ts b/harbor-app/src/app/replication/replication.component.ts deleted file mode 100644 index 00b22a726..000000000 --- a/harbor-app/src/app/replication/replication.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Policy } from './policy'; -import { Job } from './job'; - -@Component({ - selector: 'replicaton', - templateUrl: 'replication.component.html' -}) -export class ReplicationComponent implements OnInit { - policies: Policy[]; - jobs: Job[]; - - ngOnInit(): void { - this.policies = [ - { name: 'sync_01', status: 'Disabled', destination: '10.117.5.135', lastStartTime: '2016-12-21 17:52:35', description: 'test'}, - { name: 'sync_02', status: 'Enabled', destination: '10.117.5.117', lastStartTime: '2016-12-21 12:22:47', description: 'test'}, - ]; - this.jobs = [ - { name: 'project01/ubuntu:14.04', status: 'Finished', operation: 'Transfer', creationTime: '2016-12-21 17:53:50', endTime: '2016-12-21 17:55:01'}, - { name: 'project01/mysql:5.6', status: 'Finished', operation: 'Transfer', creationTime: '2016-12-21 17:54:20', endTime: '2016-12-21 17:55:05'}, - { name: 'project01/photon:latest', status: 'Finished', operation: 'Transfer', creationTime: '2016-12-21 17:54:50', endTime: '2016-12-21 17:55:15'} - ]; - } -} \ No newline at end of file diff --git a/harbor-app/src/app/replication/replication.module.ts b/harbor-app/src/app/replication/replication.module.ts deleted file mode 100644 index 52c488fbf..000000000 --- a/harbor-app/src/app/replication/replication.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { ReplicationComponent } from './replication.component'; -import { SharedModule } from '../shared/shared.module'; - -@NgModule({ - imports: [ SharedModule ], - declarations: [ ReplicationComponent ], - exports: [ ReplicationComponent ] -}) -export class ReplicationModule {} \ No newline at end of file diff --git a/harbor-app/src/app/repository/repo.ts b/harbor-app/src/app/repository/repo.ts deleted file mode 100644 index 48bb056d9..000000000 --- a/harbor-app/src/app/repository/repo.ts +++ /dev/null @@ -1,9 +0,0 @@ -export class Repo { - name: string; - status: string; - tag: string; - author: string; - dockerVersion: string; - created: string; - pullCommand: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/repository/repository.component.html b/harbor-app/src/app/repository/repository.component.html deleted file mode 100644 index bffb836bf..000000000 --- a/harbor-app/src/app/repository/repository.component.html +++ /dev/null @@ -1,38 +0,0 @@ -
-
-
-
- - - - - -
-
- - Name - Status - Tag - Author - Docker version - Created - Pull Command - - {{r.name}} - {{r.status}} - {{r.tag}} - {{r.author}} - {{r.dockerVersion}} - {{r.created}} - {{r.pullCommand}} - - {{repos.length}} item(s) - -
-
\ No newline at end of file diff --git a/harbor-app/src/app/repository/repository.component.ts b/harbor-app/src/app/repository/repository.component.ts deleted file mode 100644 index b21a0a0f7..000000000 --- a/harbor-app/src/app/repository/repository.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Repo } from './repo'; - - -@Component({ - selector: 'repository', - templateUrl: 'repository.component.html' -}) -export class RepositoryComponent implements OnInit { - repos: Repo[]; - ngOnInit(): void { - this.repos = [ - { name: 'ubuntu', status: 'ready', tag: '14.04', author: 'Admin', dockerVersion: '1.10.1', created: '2016-10-10', pullCommand: 'docker pull 10.117.5.61/project01/ubuntu:14.04' }, - { name: 'mysql', status: 'ready', tag: '5.6', author: 'docker', dockerVersion: '1.11.2', created: '2016-09-23', pullCommand: 'docker pull 10.117.5.61/project01/mysql:5.6' }, - { name: 'photon', status: 'ready', tag: 'latest', author: 'Admin', dockerVersion: '1.10.1', created: '2016-11-10', pullCommand: 'docker pull 10.117.5.61/project01/photon:latest' }, - ]; - } -} \ No newline at end of file diff --git a/harbor-app/src/app/repository/repository.module.ts b/harbor-app/src/app/repository/repository.module.ts deleted file mode 100644 index 446149a9a..000000000 --- a/harbor-app/src/app/repository/repository.module.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RepositoryComponent } from './repository.component'; -import { SharedModule } from '../shared/shared.module'; - -@NgModule({ - imports: [ SharedModule ], - declarations: [ RepositoryComponent ], - exports: [ RepositoryComponent ] -}) -export class RepositoryModule {} \ No newline at end of file diff --git a/harbor-app/src/app/repository/repository.ts b/harbor-app/src/app/repository/repository.ts deleted file mode 100644 index bc43a81ed..000000000 --- a/harbor-app/src/app/repository/repository.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class Repository { - name:string; - version:string; - count:number; -} \ No newline at end of file diff --git a/harbor-app/src/app/service/auth-guard.service.ts b/harbor-app/src/app/service/auth-guard.service.ts deleted file mode 100644 index 4c1fbcea4..000000000 --- a/harbor-app/src/app/service/auth-guard.service.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Injectable } from '@angular/core'; -import { CanActivate } from '@angular/router'; - -export class AuthGuard implements CanActivate { - canActivate() { - return true; - } -} \ No newline at end of file diff --git a/harbor-app/src/app/service/base.service.ts b/harbor-app/src/app/service/base.service.ts deleted file mode 100644 index 617b916db..000000000 --- a/harbor-app/src/app/service/base.service.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Http, Response} from '@angular/http'; -import { Observable } from 'rxjs/Observable'; - -export abstract class BaseService { - protected handleError(error: Response | any) { - // In a real world app, we might use a remote logging infrastructure - let errMsg: string; - if (error instanceof Response) { - const body = error.json() || ''; - const err = body.error || JSON.stringify(body); - errMsg = `${error.status} - ${error.statusText || ''} ${err}`; - } else { - errMsg = error.message ? error.message : error.toString(); - } - console.error(errMsg); - return Observable.throw(errMsg); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/filter/filter.component.css b/harbor-app/src/app/shared/filter/filter.component.css deleted file mode 100644 index 98d8eccf5..000000000 --- a/harbor-app/src/app/shared/filter/filter.component.css +++ /dev/null @@ -1,4 +0,0 @@ -.filter-icon { - position: relative; - right: -12px; -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/filter/filter.component.html b/harbor-app/src/app/shared/filter/filter.component.html deleted file mode 100644 index 302b00362..000000000 --- a/harbor-app/src/app/shared/filter/filter.component.html +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/harbor-app/src/app/shared/filter/filter.component.ts b/harbor-app/src/app/shared/filter/filter.component.ts deleted file mode 100644 index 1c7061a89..000000000 --- a/harbor-app/src/app/shared/filter/filter.component.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core'; -import { Subject } from 'rxjs/Subject'; -import { Observable } from 'rxjs/Observable'; - -import 'rxjs/add/operator/debounceTime'; -import 'rxjs/add/operator/distinctUntilChanged'; - - -@Component({ - selector: 'grid-filter', - templateUrl: 'filter.component.html', - styleUrls: ['filter.component.css'] -}) - -export class FilterComponent implements OnInit{ - private placeHolder: string = ""; - private currentValue: string = ""; - private leadingSpacesAdded: boolean = false; - private filerAction: Function; - - private filterTerms = new Subject(); - - @Output("filter") private filterEvt = new EventEmitter(); - - @Input("filterPlaceholder") - public set flPlaceholder(placeHolder: string) { - this.placeHolder = placeHolder; - } - - ngOnInit(): void { - this.filterTerms - .debounceTime(300) - .distinctUntilChanged() - .subscribe(terms => { - this.filterEvt.emit(terms); - }); - } - - valueChange(): void { - //Send out filter terms - this.filterTerms.next(this.currentValue.trim()); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.html b/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.html deleted file mode 100644 index 8a24fa978..000000000 --- a/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.ts b/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.ts deleted file mode 100644 index f17802676..000000000 --- a/harbor-app/src/app/shared/harbor-action-overflow/harbor-action-overflow.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {Component} from "@angular/core"; - -@Component({ - selector: "harbor-action-overflow", - templateUrl: "harbor-action-overflow.html" -}) - -export class HarborActionOverflow { -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/max-length-ext.directive.ts b/harbor-app/src/app/shared/max-length-ext.directive.ts deleted file mode 100644 index f96e9e01f..000000000 --- a/harbor-app/src/app/shared/max-length-ext.directive.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { Directive, OnChanges, Input, SimpleChanges } from '@angular/core'; -import { ValidatorFn, AbstractControl, Validator, NG_VALIDATORS, Validators } from '@angular/forms'; - -export const assiiChars = /[\u4e00-\u9fa5]/; - -export function maxLengthExtValidator(length: number): ValidatorFn { - return (control: AbstractControl): { [key: string]: any } => { - const value: string = control.value - if (!value || value.trim() === "") { - return null; - } - - const regExp = new RegExp(assiiChars, 'i'); - let count = 0; - let len = value.length; - - for (var i = 0; i < len; i++) { - if (regExp.test(value[i])) { - count += 3; - } else { - count++; - } - } - return count > length ? { 'maxLengthExt': count } : null; - } -} - -@Directive({ - selector: '[maxLengthExt]', - providers: [{ provide: NG_VALIDATORS, useExisting: MaxLengthExtValidatorDirective, multi: true }] -}) - -export class MaxLengthExtValidatorDirective implements Validator, OnChanges { - @Input() maxLengthExt: number; - private valFn = Validators.nullValidator; - - ngOnChanges(changes: SimpleChanges): void { - const change = changes['maxLengthExt']; - if (change) { - const val: number = change.currentValue; - this.valFn = maxLengthExtValidator(val); - } else { - this.valFn = Validators.nullValidator; - } - } - - validate(control: AbstractControl): { [key: string]: any } { - return this.valFn(control); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/session-user.ts b/harbor-app/src/app/shared/session-user.ts deleted file mode 100644 index 4c418ca30..000000000 --- a/harbor-app/src/app/shared/session-user.ts +++ /dev/null @@ -1,11 +0,0 @@ -//Define the session user -export class SessionUser { - user_id: number; - username: string; - email: string; - realname: string; - role_name?: string; - role_id?: number; - has_admin_role?: number; - comment: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/session.service.ts b/harbor-app/src/app/shared/session.service.ts deleted file mode 100644 index 7dacc4533..000000000 --- a/harbor-app/src/app/shared/session.service.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Headers, Http, URLSearchParams } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; - -import { SessionUser } from './session-user'; -import { SignInCredential } from './sign-in-credential'; - -const urlPrefix = ''; -const signInUrl = urlPrefix + '/login'; -const currentUserEndpint = urlPrefix + "/api/users/current"; -const signOffEndpoint = urlPrefix + "/log_out"; -const accountEndpoint = urlPrefix + "/api/users/:id"; - -/** - * Define related methods to handle account and session corresponding things - * - * @export - * @class SessionService - */ -@Injectable() -export class SessionService { - currentUser: SessionUser = null; - - private headers = new Headers({ - "Content-Type": 'application/json' - }); - - private formHeaders = new Headers({ - "Content-Type": 'application/x-www-form-urlencoded' - }); - - constructor(private http: Http) {} - - //Handle the related exceptions - private handleError(error: any): Promise{ - return Promise.reject(error.message || error); - } - - //Submit signin form to backend (NOT restful service) - signIn(signInCredential: SignInCredential): Promise{ - //Build the form package - const body = new URLSearchParams(); - body.set('principal', signInCredential.principal); - body.set('password', signInCredential.password); - - //Trigger Http - return this.http.post(signInUrl, body.toString(), { headers: this.formHeaders }) - .toPromise() - .then(()=>null) - .catch(error => this.handleError(error)); - } - - /** - * Get the related information of current signed in user from backend - * - * @returns {Promise} - * - * @memberOf SessionService - */ - retrieveUser(): Promise { - return this.http.get(currentUserEndpint, { headers: this.headers }).toPromise() - .then(response => { - this.currentUser = response.json() as SessionUser; - return this.currentUser; - }) - .catch(error => this.handleError(error)) - } - - /** - * For getting info - */ - getCurrentUser(): SessionUser { - return this.currentUser; - } - - /** - * Log out the system - */ - signOff(): Promise { - return this.http.get(signOffEndpoint, { headers: this.headers }).toPromise() - .then(() => { - //Destroy current session cache - this.currentUser = null; - }) //Nothing returned - .catch(error => this.handleError(error)) - } - - /** - * - * Update accpunt settings - * - * @param {SessionUser} account - * @returns {Promise} - * - * @memberOf SessionService - */ - updateAccountSettings(account: SessionUser): Promise{ - if(!account){ - return Promise.reject("Invalid account settings"); - } - console.info(account); - let putUrl = accountEndpoint.replace(":id", account.user_id+""); - return this.http.put(putUrl, JSON.stringify(account), { headers: this.headers }).toPromise() - .then(() => { - //Retrieve current session user - return this.retrieveUser(); - }) - .catch(error => this.handleError(error)) - } -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/shared.module.ts b/harbor-app/src/app/shared/shared.module.ts deleted file mode 100644 index 71f8f18f9..000000000 --- a/harbor-app/src/app/shared/shared.module.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CoreModule } from '../core/core.module'; -//import { AccountModule } from '../account/account.module'; - -import { SessionService } from '../shared/session.service'; -import { MessageComponent } from '../global-message/message.component'; -import { MessageService } from '../global-message/message.service'; -import { MaxLengthExtValidatorDirective } from './max-length-ext.directive'; -import { FilterComponent } from './filter/filter.component'; -import { HarborActionOverflow } from './harbor-action-overflow/harbor-action-overflow'; - -@NgModule({ - imports: [ - CoreModule - ], - declarations: [ - MessageComponent, - MaxLengthExtValidatorDirective, - FilterComponent, - HarborActionOverflow - ], - exports: [ - CoreModule, - MessageComponent, - MaxLengthExtValidatorDirective, - FilterComponent, - HarborActionOverflow - ], - providers: [SessionService, MessageService] -}) -export class SharedModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/shared/sign-in-credential.ts b/harbor-app/src/app/shared/sign-in-credential.ts deleted file mode 100644 index eb639416e..000000000 --- a/harbor-app/src/app/shared/sign-in-credential.ts +++ /dev/null @@ -1,15 +0,0 @@ - -/** - * Declare class for store the sign in data, - * two prperties: - * principal: The username used to sign in - * password: The password used to sign in - * - * @export - * @class SignInCredential - */ - -export class SignInCredential { - principal: string; - password: string; -} \ No newline at end of file diff --git a/harbor-app/src/app/user/new-user-form.component.html b/harbor-app/src/app/user/new-user-form.component.html deleted file mode 100644 index d4f77f917..000000000 --- a/harbor-app/src/app/user/new-user-form.component.html +++ /dev/null @@ -1,72 +0,0 @@ -
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
\ No newline at end of file diff --git a/harbor-app/src/app/user/new-user-form.component.ts b/harbor-app/src/app/user/new-user-form.component.ts deleted file mode 100644 index 1e47d6495..000000000 --- a/harbor-app/src/app/user/new-user-form.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Component, ViewChild, AfterViewChecked, Output, EventEmitter } from '@angular/core'; -import { NgForm } from '@angular/forms'; - -import { User } from './user'; - -@Component({ - selector: 'new-user-form', - templateUrl: 'new-user-form.component.html' -}) - -export class NewUserFormComponent implements AfterViewChecked { - newUser: User = new User(); - confirmedPwd: string = ""; - - newUserFormRef: NgForm; - @ViewChild("newUserFrom") newUserForm: NgForm; - - //Notify the form value changes - @Output() valueChange = new EventEmitter(); - - public get isValid(): boolean { - let pwdEqualStatus = true; - if(this.newUserForm.controls["confirmPassword"] && - this.newUserForm.controls["newPassword"]){ - pwdEqualStatus = this.newUserForm.controls["confirmPassword"].value === this.newUserForm.controls["newPassword"].value; - } - return this.newUserForm && - this.newUserForm.valid && pwdEqualStatus; - } - - ngAfterViewChecked(): void { - if (this.newUserFormRef != this.newUserForm) { - this.newUserFormRef = this.newUserForm; - if (this.newUserFormRef) { - this.newUserFormRef.valueChanges.subscribe(data => { - this.valueChange.emit(true); - }); - } - } - } - - //Return the current user data - getData(): User { - return this.newUser; - } - - reset(): void { - if(this.newUserForm){ - this.newUserForm.reset(); - } - } -} \ No newline at end of file diff --git a/harbor-app/src/app/user/new-user-modal.component.html b/harbor-app/src/app/user/new-user-modal.component.html deleted file mode 100644 index 9539d9ee7..000000000 --- a/harbor-app/src/app/user/new-user-modal.component.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - \ No newline at end of file diff --git a/harbor-app/src/app/user/new-user-modal.component.ts b/harbor-app/src/app/user/new-user-modal.component.ts deleted file mode 100644 index 33186c938..000000000 --- a/harbor-app/src/app/user/new-user-modal.component.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Component, ViewChild, Output,EventEmitter } from '@angular/core'; -import { NgForm } from '@angular/forms'; - -import { NewUserFormComponent } from './new-user-form.component'; -import { User } from './user'; - -import { SessionService } from '../shared/session.service'; -import { UserService } from './user.service'; - -@Component({ - selector: "new-user-modal", - templateUrl: "new-user-modal.component.html" -}) - -export class NewUserModalComponent { - opened: boolean = false; - alertClose: boolean = true; - private error: any; - private onGoing: boolean = false; - - @Output() addNew = new EventEmitter(); - - constructor(private session: SessionService, - private userService: UserService) { } - - @ViewChild(NewUserFormComponent) - private newUserForm: NewUserFormComponent; - - private getNewUser(): User { - return this.newUserForm.getData(); - } - - public get inProgress(): boolean { - return this.onGoing; - } - - public get isValid(): boolean { - return this.newUserForm.isValid; - } - - public get errorMessage(): string { - if (this.error) { - if (this.error.message) { - return this.error.message; - } else { - if (this.error._body) { - return this.error._body; - } - } - } - return ""; - } - - formValueChange(flag: boolean): void { - if (!this.alertClose) { - this.alertClose = true;//If alert is shown, then close it - } - } - - open(): void { - this.opened = true; - } - - close(): void { - this.newUserForm.reset();//Reset form - this.opened = false; - } - - //Create new user - create(): void { - //Double confirm everything is ok - //Form is valid - if(!this.isValid){ - return; - } - - //We have new user data - let u = this.getNewUser(); - if(!u){ - return; - } - - //Session is ok and role is matched - let account = this.session.getCurrentUser(); - if(!account || account.has_admin_role === 0){ - return; - } - - //Start process - this.onGoing = true; - - this.userService.addUser(u) - .then(() => { - this.onGoing = false; - //TODO: - //As no response data returned, can not add it to list directly - - this.addNew.emit(u); - this.close(); - }) - .catch(error => { - this.onGoing = false; - this.error = error; - }); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/user/user.component.css b/harbor-app/src/app/user/user.component.css deleted file mode 100644 index eb5e65fee..000000000 --- a/harbor-app/src/app/user/user.component.css +++ /dev/null @@ -1,32 +0,0 @@ -.custom-h2 { - margin-top: 0px !important; -} - -.custom-add-button { - font-size: medium; - margin-left: -12px; -} - -.filter-icon { - position: relative; - right: -12px; -} - -.filter-pos { - float: right; - margin-right: 24px; - position: relative; - top: 8px; -} - -.action-panel-pos { - position: relative; - top: 20px; -} - -.refresh-btn { - position: absolute; - right: -4px; - top: 8px; - cursor: pointer; -} \ No newline at end of file diff --git a/harbor-app/src/app/user/user.component.html b/harbor-app/src/app/user/user.component.html deleted file mode 100644 index 22624ea12..000000000 --- a/harbor-app/src/app/user/user.component.html +++ /dev/null @@ -1,37 +0,0 @@ -
-

Users

-
- - - - - - - - - -
-
- - Name - Administrator - Email - Registration time - - {{user.username}} - {{user.has_admin_role?"Yes":"No"}} - {{user.email}} - - {{user.creation_time}} - - {{user.has_admin_role?"Disable administrator":"Enable administrator"}} - - Delete - - - - {{users.length}} users - -
- -
\ No newline at end of file diff --git a/harbor-app/src/app/user/user.component.ts b/harbor-app/src/app/user/user.component.ts deleted file mode 100644 index f6fd35ab0..000000000 --- a/harbor-app/src/app/user/user.component.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; -import 'rxjs/add/operator/toPromise'; - -import { UserService } from './user.service'; -import { User } from './user'; -import { NewUserModalComponent } from './new-user-modal.component'; - -@Component({ - selector: 'harbor-user', - templateUrl: 'user.component.html', - styleUrls: ['user.component.css'], - - providers: [UserService] -}) - -export class UserComponent implements OnInit { - users: User[] = []; - originalUsers: Promise; - private onGoing: boolean = false; - - @ViewChild(NewUserModalComponent) - private newUserDialog: NewUserModalComponent; - - constructor(private userService: UserService) { } - - private isMatchFilterTerm(terms: string, testedItem: string): boolean { - return testedItem.indexOf(terms) != -1; - } - - public get inProgress(): boolean { - return this.onGoing; - } - - ngOnInit(): void { - this.refreshUser(); - } - - //Filter items by keywords - doFilter(terms: string): void { - this.originalUsers.then(users => { - if (terms.trim() === "") { - this.users = users; - } else { - this.users = users.filter(user => { - return this.isMatchFilterTerm(terms, user.username); - }) - } - }); - } - - //Disable the admin role for the specified user - changeAdminRole(user: User): void { - //Double confirm user is existing - if (!user || user.user_id === 0) { - return; - } - - //Value copy - let updatedUser: User = Object.assign({}, user); - - if (updatedUser.has_admin_role === 0) { - updatedUser.has_admin_role = 1;//Set as admin - } else { - updatedUser.has_admin_role = 0;//Set as none admin - } - - this.userService.updateUser(updatedUser) - .then(() => { - //Change view now - user.has_admin_role = updatedUser.has_admin_role; - }) - .catch(error => console.error(error))//TODO: - } - - //Delete the specified user - deleteUser(userId: number): void { - if (userId === 0) { - return; - } - - this.userService.deleteUser(userId) - .then(() => { - //Remove it from current user list - //and then view refreshed - this.originalUsers.then(users => { - this.users = users.filter(user => user.user_id != userId); - }); - }) - .catch(error => console.error(error));//TODO: - } - - //Refresh the user list - refreshUser(): void { - //Start to get - this.onGoing = true; - - this.originalUsers = this.userService.getUsers() - .then(users => { - this.onGoing = false; - - this.users = users; - return users; - }) - .catch(error => { - this.onGoing = false; - console.error(error);//TODO: - }); - } - - //Add new user - addNewUser(): void { - this.newUserDialog.open(); - } - - //Add user to the user list - addUserToList(user: User): void { - //Currently we can only add it by reloading all - this.refreshUser(); - } - -} diff --git a/harbor-app/src/app/user/user.module.ts b/harbor-app/src/app/user/user.module.ts deleted file mode 100644 index 8bc9ce570..000000000 --- a/harbor-app/src/app/user/user.module.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { NgModule } from '@angular/core'; -import { SharedModule } from '../shared/shared.module'; -import { UserComponent } from './user.component'; -import { NewUserFormComponent } from './new-user-form.component'; -import { NewUserModalComponent } from './new-user-modal.component'; - -@NgModule({ - imports: [ - SharedModule - ], - declarations: [ - UserComponent, - NewUserFormComponent, - NewUserModalComponent - ], - exports: [ - UserComponent, - NewUserFormComponent - ] -}) -export class UserModule { - -} \ No newline at end of file diff --git a/harbor-app/src/app/user/user.service.ts b/harbor-app/src/app/user/user.service.ts deleted file mode 100644 index c3e09ffe9..000000000 --- a/harbor-app/src/app/user/user.service.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Headers, Http, RequestOptions } from '@angular/http'; -import 'rxjs/add/operator/toPromise'; - -import { User } from './user'; - -const userMgmtEndpoint = '/api/users'; - -/** - * Define related methods to handle account and session corresponding things - * - * @export - * @class SessionService - */ -@Injectable() -export class UserService { - private httpOptions = new RequestOptions({ - headers: new Headers({ - "Content-Type": 'application/json' - }) - }); - - constructor(private http: Http) { } - - //Handle the related exceptions - private handleError(error: any): Promise { - return Promise.reject(error.message || error); - } - - //Get the user list - getUsers(): Promise { - return this.http.get(userMgmtEndpoint, this.httpOptions).toPromise() - .then(response => response.json() as User[]) - .catch(error => this.handleError(error)); - } - - //Add new user - addUser(user: User): Promise { - return this.http.post(userMgmtEndpoint, JSON.stringify(user), this.httpOptions).toPromise() - .then(() => null) - .catch(error => this.handleError(error)); - } - - //Delete the specified user - deleteUser(userId: number): Promise { - return this.http.delete(userMgmtEndpoint+"/"+userId, this.httpOptions) - .toPromise() - .then(() => null) - .catch(error => this.handleError(error)); - } - - //Update user to enable/disable the admin role - updateUser(user: User): Promise { - return this.http.put(userMgmtEndpoint+"/"+user.user_id, JSON.stringify(user), this.httpOptions) - .toPromise() - .then(() => null) - .catch(error => this.handleError(error)); - } -} \ No newline at end of file diff --git a/harbor-app/src/app/user/user.ts b/harbor-app/src/app/user/user.ts deleted file mode 100644 index f8c53fab7..000000000 --- a/harbor-app/src/app/user/user.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * For user management - * - * @export - * @class User - */ -export class User { - user_id: number; - username: string; - email: string; - password?: string; - comment?: string; - has_admin_role: number; - creation_time: string; -} \ No newline at end of file diff --git a/harbor-app/src/environments/environment.prod.ts b/harbor-app/src/environments/environment.prod.ts deleted file mode 100644 index 3612073bc..000000000 --- a/harbor-app/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/harbor-app/src/environments/environment.ts b/harbor-app/src/environments/environment.ts deleted file mode 100644 index 00313f166..000000000 --- a/harbor-app/src/environments/environment.ts +++ /dev/null @@ -1,8 +0,0 @@ -// The file contents for the current environment will overwrite these during build. -// The build system defaults to the dev environment which uses `environment.ts`, but if you do -// `ng build --env=prod` then `environment.prod.ts` will be used instead. -// The list of which env maps to which file can be found in `angular-cli.json`. - -export const environment = { - production: false -}; diff --git a/harbor-app/src/favicon.ico b/harbor-app/src/favicon.ico deleted file mode 100644 index e6be46d4d02212579b9bba500909f4fe8261bc9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 diff --git a/harbor-app/src/images/Step1.png b/harbor-app/src/images/Step1.png deleted file mode 100644 index 4ddbefa08a69794ca5da34b717c9a362b55b33af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73813 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

A_N%9>TX&E=g0)@9Ng^+9HqsoxB_=t|r7lvBm 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 diff --git a/harbor-app/src/images/Step2.png b/harbor-app/src/images/Step2.png deleted file mode 100644 index 64ab8a04b44b1536e49ba69baf9d15567d2a41f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82221 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 - - - - logo - Created with Sketch. - - - - - diff --git a/harbor-app/src/index.html b/harbor-app/src/index.html deleted file mode 100644 index bfd2a9a91..000000000 --- a/harbor-app/src/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - Clarity Seed App - - - - - -Loading... - - diff --git a/harbor-app/src/main.ts b/harbor-app/src/main.ts deleted file mode 100644 index 5c3c52040..000000000 --- a/harbor-app/src/main.ts +++ /dev/null @@ -1,12 +0,0 @@ -import './polyfills.ts'; - -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { enableProdMode } from '@angular/core'; -import { environment } from './environments/environment'; -import { AppModule } from './app/'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/harbor-app/src/polyfills.ts b/harbor-app/src/polyfills.ts deleted file mode 100644 index f26b6d8b6..000000000 --- a/harbor-app/src/polyfills.ts +++ /dev/null @@ -1,22 +0,0 @@ -// This file includes polyfills needed by Angular 2 and is loaded before -// the app. You can add your own extra polyfills to this file. -import 'core-js/es6/symbol'; -import 'core-js/es6/object'; -import 'core-js/es6/function'; -import 'core-js/es6/parse-int'; -import 'core-js/es6/parse-float'; -import 'core-js/es6/number'; -import 'core-js/es6/math'; -import 'core-js/es6/string'; -import 'core-js/es6/date'; -import 'core-js/es6/array'; -import 'core-js/es6/regexp'; -import 'core-js/es6/map'; -import 'core-js/es6/set'; -import 'core-js/es6/reflect'; - -import 'core-js/es7/reflect'; - - -import 'zone.js/dist/zone'; - diff --git a/harbor-app/src/styles.css b/harbor-app/src/styles.css deleted file mode 100644 index 90d4ee007..000000000 --- a/harbor-app/src/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/harbor-app/src/test.ts b/harbor-app/src/test.ts deleted file mode 100644 index 81af89096..000000000 --- a/harbor-app/src/test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import './polyfills.ts'; - -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy.js'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare var __karma__: any; -declare var require: any; - -// Prevent Karma from running prematurely. -__karma__.loaded = function () {}; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); -// Then we find all the tests. -let context = require.context('./', true, /\.spec\.ts/); -// And load the modules. -context.keys().map(context); -// Finally, start Karma to run the tests. -__karma__.start(); diff --git a/harbor-app/src/tsconfig.json b/harbor-app/src/tsconfig.json deleted file mode 100644 index e67ce7c76..000000000 --- a/harbor-app/src/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "", - "declaration": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "lib": [ - "es6", - "dom" - ], - "mapRoot": "./", - "module": "commonjs", - "moduleResolution": "node", - "outDir": "../dist/out-tsc", - "sourceMap": true, - "target": "es5", - "typeRoots": [ - "../node_modules/@types" - ] - }, - "exclude": [ - "node_modules", - "dist" - ] -} diff --git a/harbor-app/src/typings.d.ts b/harbor-app/src/typings.d.ts deleted file mode 100644 index ea52695ac..000000000 --- a/harbor-app/src/typings.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -// Typings reference file, you can add your own global typings here -// https://www.typescriptlang.org/docs/handbook/writing-declaration-files.html diff --git a/harbor-app/tslint.json b/harbor-app/tslint.json deleted file mode 100644 index ad0093e94..000000000 --- a/harbor-app/tslint.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "rulesDirectory": [ - "node_modules/codelyzer" - ], - "rules": { - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "curly": true, - "eofline": true, - "forin": true, - "indent": [ - true, - "spaces" - ], - "label-position": true, - "label-undefined": true, - "max-line-length": [ - true, - 140 - ], - "member-access": false, - "member-ordering": [ - true, - "static-before-instance", - "variables-before-functions" - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-key": true, - "no-duplicate-variable": true, - "no-empty": false, - "no-eval": true, - "no-inferrable-types": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unused-expression": true, - "no-unused-variable": true, - "no-unreachable": true, - "no-use-before-declare": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-whitespace" - ], - "quotemark": [ - true, - "single" - ], - "radix": true, - "semicolon": [ - "always" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - - "directive-selector-prefix": [true, "app"], - "component-selector-prefix": [true, "app"], - "directive-selector-name": [true, "camelCase"], - "component-selector-name": [true, "kebab-case"], - "directive-selector-type": [true, "attribute"], - "component-selector-type": [true, "element"], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "templates-use-public": true, - "invoke-injectable": true - } -} diff --git a/harbor-app/typings.json b/harbor-app/typings.json deleted file mode 100644 index 8628705b9..000000000 --- a/harbor-app/typings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "globalDependencies": { - "es6-shim": "registry:dt/es6-shim#0.31.2+20160602141504" - } -} diff --git a/harbor-app/yarn.lock b/harbor-app/yarn.lock deleted file mode 100644 index a81a78a68..000000000 --- a/harbor-app/yarn.lock +++ /dev/null @@ -1,6743 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@angular-cli/ast-tools@^1.0.1": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@angular-cli/ast-tools/-/ast-tools-1.0.14.tgz#300f83dee68fbfd9b9d45c336597ab5bdf424d0d" - dependencies: - "@angular/tsc-wrapped" "^0.5.0" - denodeify "^1.2.1" - rxjs "^5.0.1" - typescript "~2.0.3" - -"@angular-cli/base-href-webpack@^1.0.0": - version "1.0.14" - resolved "https://registry.yarnpkg.com/@angular-cli/base-href-webpack/-/base-href-webpack-1.0.14.tgz#575f604f55f4c171608d3c377dc40d26858b49d6" - -"@angular/common@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-2.4.3.tgz#78d96bd2f8a1a105f635cd25e362ba5704b47f56" - -"@angular/compiler-cli@2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-2.2.3.tgz#d632bbf856802a20fc5589cb472f98fef5f011c4" - dependencies: - "@angular/tsc-wrapped" "^0.3.0" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - -"@angular/compiler-cli@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-2.4.3.tgz#8339c2f428d29df3ea0eac17f08d296fc87eb160" - dependencies: - "@angular/tsc-wrapped" "0.5.1" - minimist "^1.2.0" - reflect-metadata "^0.1.2" - -"@angular/compiler@2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-2.2.3.tgz#5a96b8b6c620ffe0c3b87b2f254e588abeb77a12" - -"@angular/compiler@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-2.4.3.tgz#76a41916f90eda66643107740c4a9ae45cb7a6c1" - -"@angular/core@2.2.3": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-2.2.3.tgz#18b09740bf51bdeb906153704e771bce53fecdf6" - -"@angular/core@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-2.4.3.tgz#a72a13bb9f01659b8388558cd6e3a570a8434b1c" - -"@angular/forms@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-2.4.3.tgz#0b4f59b8074e3d0fe987781e0f2af1ca1eec212b" - -"@angular/http@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/http/-/http-2.4.3.tgz#d8afca7362efb010600fde02360e01e848579be6" - -"@angular/platform-browser-dynamic@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-2.4.3.tgz#d65cc9bc4487e2a86e2c6f6641c711fccfa90c5a" - -"@angular/platform-browser@^2.4.1": - version "2.4.3" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-2.4.3.tgz#eba8588d2fffc39d0b85a9180c297d9ca2f1f3a4" - -"@angular/router@^3.4.1": - version "3.4.3" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-3.4.3.tgz#19846caa1f87d9b83f005f45a2be15b6744db8fd" - -"@angular/tsc-wrapped@0.5.1", "@angular/tsc-wrapped@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-0.5.1.tgz#7a69bec999eef41903dddaaccdc862cfcface52c" - dependencies: - tsickle "^0.2" - -"@angular/tsc-wrapped@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-0.3.0.tgz#98cdeb5c38d145b187c0ad0397a8d98b217f33f2" - dependencies: - tsickle "^0.1.7" - -"@ngtools/webpack@^1.0.0": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.2.3.tgz#968e1994bf38115502df615b27654f7676d337a7" - dependencies: - enhanced-resolve "^2.3.0" - loader-utils "^0.2.16" - magic-string "^0.16.0" - source-map "^0.5.6" - -"@types/core-js@^0.9.34": - version "0.9.35" - resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.35.tgz#444064e63711cdcc62ea844d27642f6efc2285f2" - -"@types/jasmine@^2.2.30", "@types/jasmine@^2.2.31": - version "2.5.41" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.41.tgz#d5e86161a0af80d52062b310a33ed65b051a0713" - -"@types/node@^6.0.35", "@types/node@^6.0.42": - version "6.0.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.60.tgz#e7e134ebc674ae6ed93c36c767739b110d2c57fc" - -"@types/q@^0.0.30": - version "0.0.30" - resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.30.tgz#fd7ee1af40f21cdd1f519268073b3432ec17d7a3" - -"@types/selenium-webdriver@~2.53.30": - version "2.53.39" - resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.39.tgz#15ff93392c339abd39d6d3a04e715faa9a263cf3" - -"@webcomponents/custom-elements@1.0.0-alpha.3": - version "1.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/@webcomponents/custom-elements/-/custom-elements-1.0.0-alpha.3.tgz#340d8cc8307730540ac92276c9a49149f6fc0116" - -abbrev@1, abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -accepts@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.1.4.tgz#d71c96f7d41d0feda2c38cd14e8a27c04158df4a" - dependencies: - mime-types "~2.0.4" - negotiator "0.4.9" - -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@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -adm-zip@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" - -adm-zip@0.4.7, adm-zip@^0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" - -after@0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.1.tgz#ab5d4fb883f596816d3515f8f791c0af486dd627" - -agent-base@2: - version "2.0.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" - dependencies: - extend "~3.0.0" - semver "~5.0.1" - -ajv@^4.7.0: - version "4.10.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.4.tgz#c0974dd00b3464984892d6010aa9c2c945933254" - 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@1.0.0, amdefine@>=0.0.4: - version "1.0.0" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.0.tgz#fd17474700cb5cc9c2b709f0be9d23ce3c198c33" - -angular-cli@^1.0.0-beta.24: - version "1.0.0-beta.22-1" - resolved "https://registry.yarnpkg.com/angular-cli/-/angular-cli-1.0.0-beta.22-1.tgz#efea89b17dcbd74ca3bb7e4a6bbacabf565e610f" - dependencies: - "@angular-cli/ast-tools" "^1.0.1" - "@angular-cli/base-href-webpack" "^1.0.0" - "@angular/compiler" "2.2.3" - "@angular/compiler-cli" "2.2.3" - "@angular/core" "2.2.3" - "@ngtools/webpack" "^1.0.0" - angular2-template-loader "^0.5.0" - chalk "^1.1.3" - common-tags "^1.3.1" - compression-webpack-plugin "^0.3.2" - configstore "^2.0.0" - core-js "^2.4.0" - css-loader "^0.23.1" - debug "^2.1.3" - denodeify "^1.2.1" - diff "^2.2.2" - ember-cli-normalize-entity-name "^1.0.0" - ember-cli-preprocess-registry "^2.0.0" - ember-cli-string-utils "^1.0.0" - enhanced-resolve "^2.3.0" - exists-sync "0.0.3" - extract-text-webpack-plugin "^2.0.0-beta.4" - file-loader "^0.8.5" - findup "0.1.5" - fs-extra "^0.30.0" - get-caller-file "^1.0.0" - git-repo-info "^1.0.4" - glob "^7.0.3" - html-webpack-plugin "^2.19.0" - inflection "^1.7.0" - inquirer "^0.12.0" - is-git-url "^0.2.0" - isbinaryfile "^2.0.3" - istanbul-instrumenter-loader "^0.2.0" - json-loader "^0.5.4" - karma-sourcemap-loader "^0.3.7" - karma-webpack "^1.8.0" - leek "0.0.21" - less "^2.7.1" - less-loader "^2.2.3" - lodash "^4.11.1" - markdown-it "4.3.0" - markdown-it-terminal "0.0.3" - minimatch "^3.0.0" - mkdirp "^0.5.1" - node-modules-path "^1.0.0" - node-sass "^3.10.1" - nopt "^3.0.1" - npm-run-all "^3.0.0" - offline-plugin "^3.4.1" - opn "4.0.1" - ora "^0.2.0" - parse5 "^2.1.5" - portfinder "1.0.9" - postcss-loader "^0.9.1" - protractor "^3.3.0" - quick-temp "0.1.5" - raw-loader "^0.5.1" - readline2 "0.1.1" - reflect-metadata "^0.1.8" - remap-istanbul "^0.6.4" - resolve "^1.1.7" - rimraf "^2.5.3" - rsvp "^3.0.17" - rxjs "5.0.0-beta.12" - sass-loader "^3.2.0" - script-loader "^0.7.0" - semver "^5.1.0" - silent-error "^1.0.0" - source-map-loader "^0.1.5" - sourcemap-istanbul-instrumenter-loader "^0.2.0" - string-replace-loader "^1.0.3" - style-loader "^0.13.1" - stylus "^0.54.5" - stylus-loader "^2.1.0" - temp "0.8.3" - through "^2.3.6" - ts-loader "^0.8.2" - tslint "^3.15.1" - tslint-loader "^2.1.4" - typescript "~2.0.3" - url-loader "^0.5.7" - uuid "^3.0.0" - walk-sync "^0.2.6" - webpack "2.1.0-beta.25" - webpack-dev-server "2.1.0-beta.9" - webpack-md5-hash "0.0.5" - webpack-merge "^0.14.0" - yam "0.0.18" - zone.js "^0.6.23" - -angular2-template-loader@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/angular2-template-loader/-/angular2-template-loader-0.5.0.tgz#a16db190faaf9f8e8e9410f3c468370de75127a6" - dependencies: - codecov "^1.0.1" - loader-utils "^0.2.15" - -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.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@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-1.1.1.tgz#41c847194646375e6a1a5d10c3ca054ef9fc980d" - -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.1.0, ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansicolors@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.2.1.tgz#be089599097b74a5c9c4a84a0cdbcdb62bd87aef" - -any-promise@^1.0.0, any-promise@^1.1.0, any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -aproba@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" - -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.2" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.0 || ^1.1.13" - -argparse@^1.0.7, argparse@~1.0.2: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -argv@>=0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" - -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.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" - -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-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-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - -array-to-error@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-to-error/-/array-to-error-1.1.1.tgz#d68812926d14097a205579a667eeaf1856a44c07" - dependencies: - array-to-sentence "^1.1.0" - -array-to-sentence@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/array-to-sentence/-/array-to-sentence-1.1.0.tgz#c804956dafa53232495b205a9452753a258d39fc" - -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" - -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asn1.js@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^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: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -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" - -async-disk-cache@^1.0.0: - version "1.0.9" - resolved "https://registry.yarnpkg.com/async-disk-cache/-/async-disk-cache-1.0.9.tgz#23bafb823184f463407e474e8d5f87899f72ca63" - dependencies: - debug "^2.1.3" - istextorbinary "2.1.0" - mkdirp "^0.5.0" - rimraf "^2.5.3" - rsvp "^3.0.18" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - -async@0.2.x, async@~0.2.6: - version "0.2.10" - resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" - -async@1.x, async@^1.3.0, 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@^0.9.0, async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -async@^2.0.1, async@^2.1.2: - version "2.1.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -autoprefixer@^6.3.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.6.1.tgz#11a4077abb4b313253ec2f6e1adb91ad84253519" - dependencies: - browserslist "~1.5.1" - caniuse-db "^1.0.30000604" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.8" - 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.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -babel-code-frame@^6.20.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.20.0.tgz#b968f839090f9a8bc6d41938fb96cb84f7387b26" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^2.0.0" - -babel-runtime@^6.18.0: - version "6.20.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -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-arraybuffer@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz#474df4a9f2da24e05df3158c3b1db3c3cd46a154" - -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -base64id@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f" - -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.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - -benchmark@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/benchmark/-/benchmark-1.0.0.tgz#2f1e2fa4c359f11122aa183082218e957e390c73" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - -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" - -"binaryextensions@1 || 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.0.0.tgz#e597d1a7a6a3558a2d1c7241a16c99965e6aa40f" - -bl@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.0.3.tgz#fc5421a28fd4226036c3b3891a66a25bc64d226e" - dependencies: - readable-stream "~2.0.5" - -blank-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/blank-object/-/blank-object-1.0.2.tgz#f990793fbe9a8c8dd013fb3219420bec81d5f4b9" - -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - -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.1.1, bluebird@^3.3.0, bluebird@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - -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" - -body-parser@^1.12.4: - version "1.16.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.16.0.tgz#924a5e472c6229fb9d69b85a20d5f2532dec788b" - dependencies: - bytes "2.4.0" - content-type "~1.0.2" - debug "2.6.0" - depd "~1.1.0" - http-errors "~1.5.1" - iconv-lite "0.4.15" - on-finished "~2.3.0" - qs "6.2.1" - raw-body "~2.2.0" - type-is "~1.6.14" - -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" - -bootstrap@4.0.0-alpha.5: - version "4.0.0-alpha.5" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.0.0-alpha.5.tgz#a126b648c3bd2f52b8fad4bbc5e2d0ad2abf7064" - dependencies: - jquery "1.9.1 - 3" - tether "^1.3.7" - -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: - 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" - -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - dependencies: - expand-range "^0.1.0" - -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" - -broccoli-clean-css@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/broccoli-clean-css/-/broccoli-clean-css-1.1.0.tgz#9db143d9af7e0ae79c26e3ac5a9bb2d720ea19fa" - dependencies: - broccoli-persistent-filter "^1.1.6" - clean-css-promise "^0.1.0" - inline-source-map-comment "^1.0.5" - json-stable-stringify "^1.0.0" - -broccoli-funnel@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.1.0.tgz#dfb91a37c902456456de4a40a1881948d65b27d9" - dependencies: - array-equal "^1.0.0" - blank-object "^1.0.1" - broccoli-plugin "^1.3.0" - debug "^2.2.0" - exists-sync "0.0.4" - fast-ordered-set "^1.0.0" - fs-tree-diff "^0.5.3" - heimdalljs "^0.2.0" - minimatch "^3.0.0" - mkdirp "^0.5.0" - path-posix "^1.0.0" - rimraf "^2.4.3" - symlink-or-copy "^1.0.0" - walk-sync "^0.3.1" - -broccoli-kitchen-sink-helpers@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/broccoli-kitchen-sink-helpers/-/broccoli-kitchen-sink-helpers-0.3.1.tgz#77c7c18194b9664163ec4fcee2793444926e0c06" - dependencies: - glob "^5.0.10" - mkdirp "^0.5.1" - -broccoli-merge-trees@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.1.tgz#16a7494ed56dbe61611f6c2d4817cfbaad2a3055" - dependencies: - broccoli-plugin "^1.3.0" - can-symlink "^1.0.0" - fast-ordered-set "^1.0.2" - fs-tree-diff "^0.5.4" - heimdalljs "^0.2.1" - heimdalljs-logger "^0.1.7" - rimraf "^2.4.3" - symlink-or-copy "^1.0.0" - -broccoli-persistent-filter@^1.1.6: - version "1.2.13" - resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.2.13.tgz#61368669e2b8f35238fdd38a2a896597e4a1c821" - dependencies: - async-disk-cache "^1.0.0" - blank-object "^1.0.1" - broccoli-plugin "^1.0.0" - fs-tree-diff "^0.5.2" - hash-for-dep "^1.0.2" - heimdalljs "^0.2.1" - heimdalljs-logger "^0.1.7" - md5-hex "^1.0.2" - mkdirp "^0.5.1" - promise-map-series "^0.2.1" - rsvp "^3.0.18" - symlink-or-copy "^1.0.1" - walk-sync "^0.3.1" - -broccoli-plugin@^1.0.0, broccoli-plugin@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/broccoli-plugin/-/broccoli-plugin-1.3.0.tgz#bee704a8e42da08cb58e513aaa436efb7f0ef1ee" - dependencies: - promise-map-series "^0.2.1" - quick-temp "^0.1.3" - rimraf "^2.3.4" - symlink-or-copy "^1.1.8" - -brorand@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5" - -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.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f" - 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.0.1, browserslist@^1.5.2, browserslist@~1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.2.tgz#1c82fde0ee8693e6d15c49b7bff209dc06298c56" - dependencies: - caniuse-db "^1.0.30000604" - -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" - -builtin-modules@^1.0.0: - 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" - -bytes@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.4.0.tgz#7d97196f9d5baf7f6935e25985549edd2a6c2339" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - -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.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" - -can-symlink@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/can-symlink/-/can-symlink-1.0.0.tgz#97b607d8a84bb6c6e228b902d864ecb594b9d219" - dependencies: - tmp "0.0.28" - -caniuse-api@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.5.2.tgz#8f393c682f661c0a997b77bba6e826483fb3600e" - dependencies: - browserslist "^1.0.1" - caniuse-db "^1.0.30000346" - lodash.memoize "^4.1.0" - lodash.uniq "^4.3.0" - shelljs "^0.7.0" - -caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000604: - version "1.0.30000613" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000613.tgz#639133b7a5380c1416f9701d23d54d093dd68299" - -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" - -cardinal@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-0.5.0.tgz#00d5f661dbd4aabfdf7d41ce48a5a59bca35a291" - dependencies: - ansicolors "~0.2.1" - redeyed "~0.5.0" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -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" - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - -chokidar@^1.4.1, chokidar@^1.4.3, chokidar@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" - dependencies: - inherits "^2.0.1" - -clap@^1.0.9: - version "1.1.2" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.1.2.tgz#316545bf22229225a2cecaa6824cd2f56a9709ed" - dependencies: - chalk "^1.1.3" - -clarity-angular@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/clarity-angular/-/clarity-angular-0.8.2.tgz#224813b33e567c5ee7c8bc5a2b845b9bc2f34395" - -clarity-icons@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/clarity-icons/-/clarity-icons-0.8.2.tgz#908a7d8c9b4666d6799e74ec1db07f475d1efeb3" - -clarity-ui@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/clarity-ui/-/clarity-ui-0.8.2.tgz#8e6e2c30c81caa6d0eb7940e72de1e99bfa6127c" - -clean-css-promise@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/clean-css-promise/-/clean-css-promise-0.1.1.tgz#43f3d2c8dfcb2bf071481252cd9b76433c08eecb" - dependencies: - array-to-error "^1.0.0" - clean-css "^3.4.5" - pinkie-promise "^2.0.0" - -clean-css@3.4.x, clean-css@^3.4.5: - version "3.4.23" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.23.tgz#604fbbca24c12feb59b02f00b84f1fb7ded6d001" - dependencies: - commander "2.8.x" - source-map "0.4.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, cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-spinners@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - -clone@^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.1" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.1.tgz#7f959346cfc8719e3f7233cd6852854a7c67d8a3" - 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" - -codecov@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/codecov/-/codecov-1.0.1.tgz#97260ceac0e96b8eda8d562006558a53a139dffd" - dependencies: - argv ">=0.0.2" - execSync "1.0.2" - request ">=2.42.0" - urlgrey ">=0.4.0" - -codelyzer@~1.0.0-beta.3: - version "1.0.0-beta.4" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-1.0.0-beta.4.tgz#9b5e39222a024500a5bbbecfc95d6392ab851d03" - dependencies: - css-selector-tokenizer "^0.7.0" - cssauron "^1.4.0" - sprintf-js "^1.0.3" - -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-name@^1.0.0, color-name@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - -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" - -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.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@1.1.2, colors@^1.0.3, colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -colors@~0.6.0-1: - version "0.6.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" - -columnify@^1.5.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" - dependencies: - strip-ansi "^3.0.0" - wcwidth "^1.0.0" - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - dependencies: - lodash "^4.5.0" - -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.8.x: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@2.9.x, commander@^2.8.1, 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" - -commander@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" - -common-tags@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" - dependencies: - babel-runtime "^6.18.0" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" - -component-emitter@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.0.tgz#ccd113a86388d06482d03de3fc7df98526ba8efe" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - -compressible@~2.0.8: - version "2.0.9" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.9.tgz#6daab4e2b599c2770dd9e21e7a891b1c5a755425" - dependencies: - mime-db ">= 1.24.0 < 2" - -compression-webpack-plugin@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-0.3.2.tgz#1edfb0e749d7366d3e701670c463359b2c0cf704" - dependencies: - async "0.2.x" - webpack-sources "^0.1.0" - optionalDependencies: - node-zopfli "^2.0.0" - -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.0, concat-stream@^1.4.7: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -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" - -connect@^3.3.5: - version "3.5.0" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.5.0.tgz#b357525a0b4c1f50599cd983e1d9efeea9677198" - dependencies: - debug "~2.2.0" - finalhandler "0.5.0" - parseurl "~1.3.1" - utils-merge "1.0.0" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -content-disposition@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" - -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-js@^2.2.0, core-js@^2.4.0, core-js@^2.4.1: - 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-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: - version "1.1.2" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^1.0.0" - sha.js "^2.3.6" - -create-hmac@^1.1.0, create-hmac@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" - dependencies: - create-hash "^1.1.0" - inherits "^2.0.1" - -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - -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" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - -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-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.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.23.1.tgz#9fa23f2b5c0965235910ad5ecef3b8a36390fe50" - dependencies: - css-selector-tokenizer "^0.5.1" - cssnano ">=2.6.1 <4" - loader-utils "~0.2.2" - lodash.camelcase "^3.0.1" - 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" - source-list-map "^0.1.4" - -css-parse@1.7.x: - version "1.7.0" - resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" - -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.5.1: - version "0.5.4" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz#139bafd34a35fd0c1428487049e0699e6f6a2c21" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - -css-selector-tokenizer@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz#6445f582c7930d241dcc5007a43d6fcb8f073152" - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -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-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - -cssauron@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" - dependencies: - through X.X.X - -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.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.2.1.tgz#51fbb5347e50e81e6ed51668a48490ae6fe2afe2" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" - -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" - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - -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" - -dateformat@^1.0.11: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" - -debug@*, debug@2, debug@2.6.0, debug@^2.1.0, debug@^2.1.3, 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" - -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -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" - -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-extend@^0.4.0, deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -defaults@^1.0.2, defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - dependencies: - clone "^1.0.2" - -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.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -denodeify@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" - -depd@~1.1.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" - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - -diff@^2.1.1, diff@^2.2.1, diff@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/diff/-/diff-2.2.3.tgz#60eafd0d28ee906e4e8ff0a52c1229521033bf99" - -diff@^3.0.1: - 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" - -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-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -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" - -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" - -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: - 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" - -editions@^1.1.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.3.tgz#0907101bdda20fac3cbe334c27cbd0688dc99a5b" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -ejs@^2.3.4: - version "2.5.5" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.5.tgz#6ef4e954ea7dcf54f66aad2fe7aa421932d9ed77" - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" - -elliptic@^6.0.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - inherits "^2.0.1" - -ember-cli-normalize-entity-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" - dependencies: - silent-error "^1.0.0" - -ember-cli-preprocess-registry@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-preprocess-registry/-/ember-cli-preprocess-registry-2.0.0.tgz#45c8b985eba06bb443b3abce1c3c6220fdcb8094" - dependencies: - broccoli-clean-css "^1.1.0" - broccoli-funnel "^1.0.0" - broccoli-merge-trees "^1.0.0" - debug "^2.2.0" - exists-sync "0.0.3" - lodash "^3.10.0" - process-relative-require "^1.0.0" - silent-error "^1.0.0" - -ember-cli-string-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.0.0.tgz#d07b17d0b6223c42e09bfb835ee2b8466ec9b88e" - -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" - -engine.io-client@1.6.9: - version "1.6.9" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.6.9.tgz#1d6ad48048a5083c95096943b29d36efdb212401" - dependencies: - component-emitter "1.1.2" - component-inherit "0.0.3" - debug "2.2.0" - engine.io-parser "1.2.4" - has-cors "1.1.0" - indexof "0.0.1" - parsejson "0.0.1" - parseqs "0.0.2" - parseuri "0.0.4" - ws "1.0.1" - xmlhttprequest-ssl "1.5.1" - yeast "0.1.2" - -engine.io-parser@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.2.4.tgz#e0897b0bf14e792d4cd2a5950553919c56948c42" - dependencies: - after "0.8.1" - arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.2" - blob "0.0.4" - has-binary "0.1.6" - utf8 "2.1.0" - -engine.io@1.6.10: - version "1.6.10" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.6.10.tgz#f87d84e1bd21d1a2ec7f8deef0c62054acdfb27a" - dependencies: - accepts "1.1.4" - base64id "0.1.0" - debug "2.2.0" - engine.io-parser "1.2.4" - ws "1.0.1" - -enhanced-resolve@^0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - -enhanced-resolve@^2.2.0, enhanced-resolve@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz#a115c32504b6302e85a76269d7a57ccdd962e359" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.3.0" - object-assign "^4.0.1" - tapable "^0.2.3" - -enhanced-resolve@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.0.3.tgz#df14c06b5fc5eecade1094c9c5a12b4b3edc0b62" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.5" - -ensure-posix-path@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - -entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - -errno@^0.1.1, 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.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.4.3: - version "1.6.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" - 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" - -es6-promise@^3.0.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - -es6-promise@~4.0.3: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" - -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" - -escodegen@1.8.x: - 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" - -esprima-fb@~12001.1.0-dev-harmony-fb: - version "12001.1.0-dev-harmony-fb" - resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-12001.1.0-dev-harmony-fb.tgz#d84400384ba95ce2678c617ad24a7f40808da915" - -esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -etag@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" - -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" - -execSync@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/execSync/-/execSync-1.0.2.tgz#1f42eda582225180053224ecdd3fd1960fdb3139" - dependencies: - temp "~0.5.1" - -exists-sync@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.3.tgz#b910000bedbb113b378b82f5f5a7638107622dcf" - -exists-sync@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/exists-sync/-/exists-sync-0.0.4.tgz#9744c2c428cc03b01060db454d4b12f0ef3c8879" - -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - -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@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - -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.14.0" - resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" - dependencies: - accepts "~1.3.3" - array-flatten "1.1.1" - content-disposition "0.5.1" - content-type "~1.0.2" - cookie "0.3.1" - cookie-signature "1.0.6" - debug "~2.2.0" - depd "~1.1.0" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - finalhandler "0.5.0" - fresh "0.3.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.2" - qs "6.2.0" - range-parser "~1.2.0" - send "0.14.1" - serve-static "~1.11.1" - type-is "~1.6.13" - utils-merge "1.0.0" - vary "~1.1.0" - -extend@3, extend@^3.0.0, extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -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.0.0-beta.4: - version "2.0.0-beta.5" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.0.0-beta.5.tgz#595e32ae2466ad2129a928328485fcc064ce57f0" - dependencies: - async "^2.1.2" - loader-utils "^0.2.3" - webpack-sources "^0.1.0" - -extract-zip@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.5.0.tgz#92ccf6d81ef70a9fa4c1747114ccef6d8688a6c4" - dependencies: - concat-stream "1.5.0" - debug "0.7.4" - mkdirp "0.5.0" - yauzl "2.4.1" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fancy-log@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" - dependencies: - chalk "^1.1.1" - time-stamp "^1.0.0" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fast-ordered-set@^1.0.0, fast-ordered-set@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/fast-ordered-set/-/fast-ordered-set-1.0.3.tgz#3fbb36634f7be79e4f7edbdb4a357dee25d184eb" - dependencies: - blank-object "^1.0.1" - -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.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.0.tgz#d9ccf0e789e7db725d74bc4877d23aa42972ac50" - dependencies: - websocket-driver ">=0.5.1" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -figures@^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-loader@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.8.5.tgz#9275d031fe780f27d47f5f4af02bd43713cc151b" - dependencies: - loader-utils "~0.2.5" - -filename-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" - -fileset@0.2.x: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fileset/-/fileset-0.2.1.tgz#588ef8973c6623b2a76df465105696b96aac8067" - dependencies: - glob "5.x" - minimatch "2.x" - -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@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - statuses "~1.3.0" - unpipe "~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" - -findup-sync@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" - dependencies: - glob "~5.0.0" - -findup@0.1.5, findup@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/findup/-/findup-0.1.5.tgz#8ad929a3393bac627957a7e5de4623b06b0e2ceb" - dependencies: - colors "~0.6.0-1" - commander "~2.1.0" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -for-in@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" - -for-own@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" - dependencies: - for-in "^0.1.5" - -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.0.0, form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~1.0.0-rc3: - version "1.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" - dependencies: - async "^2.0.1" - combined-stream "^1.0.5" - mime-types "^2.1.11" - -forwarded@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" - -fresh@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" - -from@~0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" - -fs-extra@^0.16.3: - version "0.16.5" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.16.5.tgz#1ad661fa6c86c9608cd1b49efc6fce834939a750" - dependencies: - graceful-fs "^3.0.5" - jsonfile "^2.0.0" - rimraf "^2.2.8" - -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-extra@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-tree-diff@^0.5.2, fs-tree-diff@^0.5.3, fs-tree-diff@^0.5.4: - version "0.5.6" - resolved "https://registry.yarnpkg.com/fs-tree-diff/-/fs-tree-diff-0.5.6.tgz#342665749e8dca406800b672268c8f5073f3e623" - dependencies: - heimdalljs-logger "^0.1.7" - object-assign "^4.1.0" - path-posix "^1.0.0" - symlink-or-copy "^1.1.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.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.2, fstream@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" - 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" - -gauge@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" - 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" - supports-color "^0.2.0" - wide-align "^1.1.0" - -gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" - dependencies: - globule "^1.0.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.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" - -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" - -git-repo-info@^1.0.4: - version "1.4.0" - resolved "https://registry.yarnpkg.com/git-repo-info/-/git-repo-info-1.4.0.tgz#ed210221defd3fdefce8b16ac61985cabe242e4a" - -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@5.x, glob@^5.0.10, glob@^5.0.15, glob@~5.0.0: - 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.x: - version "7.0.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" - dependencies: - inherits "2" - minimatch "0.3" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~6.0: - 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" - -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" - -globule@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" - dependencies: - glob "~7.1.1" - lodash "~4.16.4" - minimatch "~3.0.2" - -glogg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" - dependencies: - sparkles "^1.0.0" - -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@^3.0.5: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - dependencies: - natives "^1.1.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-fs@~1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -gulp-util@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.7.tgz#78925c4b8f8b49005ac01a011c557e6218941cbb" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^1.0.11" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - -handle-thing@^1.2.4: - version "1.2.5" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" - -handlebars@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" - dependencies: - async "^1.4.0" - optimist "^0.6.1" - source-map "^0.4.4" - optionalDependencies: - uglify-js "^2.6" - -har-validator@~2.0.2, har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-binary@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.6.tgz#25326f39cfa4f616ad8787894e3af2cfbc7b6e10" - dependencies: - isarray "0.0.1" - -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" - dependencies: - isarray "0.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - -has-unicode@^2.0.0, has-unicode@^2.0.1: - 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-for-dep@^1.0.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/hash-for-dep/-/hash-for-dep-1.1.2.tgz#e3347ed92960eb0bb53a2c6c2b70e36d75b7cd0c" - dependencies: - broccoli-kitchen-sink-helpers "^0.3.1" - heimdalljs "^0.2.3" - heimdalljs-logger "^0.1.7" - resolve "^1.1.6" - -hash.js@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" - dependencies: - inherits "^2.0.1" - -hasha@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-2.2.0.tgz#78d7cbfc1e6d66303fe79837365984517b2f6ee1" - dependencies: - is-stream "^1.0.1" - pinkie-promise "^2.0.0" - -hawk@~3.1.0, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -he@1.1.x: - version "1.1.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.0.tgz#29319d49beec13a9b1f3c4f9b2a6dde4859bb2a7" - -heimdalljs-logger@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/heimdalljs-logger/-/heimdalljs-logger-0.1.7.tgz#10e340af5c22a811e34522d9b9397675ad589ca4" - dependencies: - debug "^2.2.0" - heimdalljs "^0.2.0" - -heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/heimdalljs/-/heimdalljs-0.2.3.tgz#35b82a6a4d73541fc4fb88d2fe2b23608fb4f779" - dependencies: - rsvp "~3.2.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hosted-git-info@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -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-minifier@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.2.3.tgz#d2ff536e24d95726c332493d8f77d84dbed85372" - dependencies: - camel-case "3.0.x" - clean-css "3.4.x" - commander "2.9.x" - he "1.1.x" - ncname "1.0.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "2.7.x" - -html-webpack-plugin@^2.19.0: - version "2.26.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.26.0.tgz#ba97c8a66f912b85df80d2aeea65966c8bd9249e" - 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.4: - version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - -http-errors@~1.5.0, http-errors@~1.5.1: - 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-proxy-agent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz#cc1ce38e453bf984a0f7702d2dd59c73d081284a" - dependencies: - agent-base "2" - debug "2" - extend "3" - -http-proxy-middleware@~0.17.1: - version "0.17.3" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.3.tgz#940382147149b856084f5534752d5b5a8168cd1d" - dependencies: - http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" - -http-proxy@^1.13.0, 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" - -https-proxy-agent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" - dependencies: - agent-base "2" - debug "2" - extend "3" - -iconv-lite@0.4.15: - version "0.4.15" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" - -icss-replace-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -image-size@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - -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" - -inflection@^1.7.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.10.0.tgz#5bffcb1197ad3e81050f8e17e21668087ee9eb2f" - -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.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.4, ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -inline-source-map-comment@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/inline-source-map-comment/-/inline-source-map-comment-1.0.5.tgz#50a8a44c2a790dfac441b5c94eccd5462635faf6" - dependencies: - chalk "^1.0.0" - get-stdin "^4.0.1" - minimist "^1.1.1" - sum-up "^1.0.1" - xtend "^4.0.0" - -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.1" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" - -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" - -ipaddr.js@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" - -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-absolute@^0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" - dependencies: - is-relative "^0.2.1" - is-windows "^0.2.0" - -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.0.2, is-buffer@~1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" - -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-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-dotfile@^1.0.0: - version "1.0.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-git-url@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/is-git-url/-/is-git-url-0.2.3.tgz#445200d6fbd6da028fb5e01440d9afc93f3ccb64" - -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.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - 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@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - -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-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-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.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637" - -is-relative@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" - dependencies: - is-unc-path "^0.1.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-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-unc-path@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" - dependencies: - unc-path-regex "^0.1.0" - -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@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - -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" - -isbinaryfile@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-2.0.4.tgz#d23592e6a6f093efb84c2e6152056be294e414a1" - -isbinaryfile@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - -isexe@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" - -isobject@^2.0.0, isobject@^2.1.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-instrumenter-loader@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-0.2.0.tgz#643e4e5e4e8f9466863a29a977d283ab372c019c" - dependencies: - istanbul "0.x.x" - loader-utils "0.x.x" - object-assign "4.x.x" - -istanbul@0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.3.tgz#5b714ee0ae493ac5ef204b99f3872bceef73d53a" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - fileset "0.2.x" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -istanbul@0.x.x, istanbul@^0.4.3: - version "0.4.5" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -istextorbinary@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.1.0.tgz#dbed2a6f51be2f7475b68f89465811141b758874" - dependencies: - binaryextensions "1 || 2" - editions "^1.1.1" - textextensions "1 || 2" - -jasmine-core@2.4.1, jasmine-core@~2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.4.1.tgz#6f83ab3a0f16951722ce07d206c773d57cc838be" - -jasmine-core@~2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" - -jasmine-spec-reporter@2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-2.5.0.tgz#12e4782e6445c0dfabb8def4c52edd30f6362d42" - dependencies: - colors "1.1.2" - -jasmine@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.4.1.tgz#9016dda453213d27ac6d43dc4ea97315a189085e" - dependencies: - exit "^0.1.2" - glob "^3.2.11" - jasmine-core "~2.4.0" - -jasmine@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.5.2.tgz#6283cef7085c095cc25d651e954df004f7e3e421" - dependencies: - exit "^0.1.2" - glob "^7.0.6" - jasmine-core "~2.5.2" - -jasminewd2@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-0.0.10.tgz#94f48ae2bc946cad643035467b4bb7ea9c1075ef" - -jasminewd2@0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-0.0.9.tgz#d6be40841d440dbe1ceee5a078de62683b0e56a7" - -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" - -"jquery@1.9.1 - 3": - version "3.1.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.1.1.tgz#347c1c21c7e004115e0a4da32cece041fad3c8a3" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" - -js-tokens@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" - -js-yaml@3.x: - 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" - -js-yaml@~3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -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.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.2.6.tgz#f6efc93c06a04de9aec53053df2559bb19e2038b" - -json3@3.3.2, json3@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - -json5@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^2.0.0, 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" - -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.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -karma-cli@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" - dependencies: - resolve "^1.1.6" - -karma-jasmine@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" - -karma-mocha-reporter@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.1.tgz#8508b2f0925433a6417f0c528e53fcb411745758" - dependencies: - chalk "1.1.3" - -karma-phantomjs-launcher@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" - dependencies: - lodash "^4.0.1" - phantomjs-prebuilt "^2.1.7" - -karma-remap-istanbul@^0.2.1: - version "0.2.2" - resolved "https://registry.yarnpkg.com/karma-remap-istanbul/-/karma-remap-istanbul-0.2.2.tgz#1cdf6c85a55c6b20e9c7149c0a8c55533038d9d9" - dependencies: - istanbul "^0.4.3" - remap-istanbul "^0.6.4" - -karma-sourcemap-loader@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" - dependencies: - graceful-fs "^4.1.2" - -karma-webpack@^1.8.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-1.8.1.tgz#39d5fd2edeea3cc3ef5b405989b37d5b0e6a3b4e" - dependencies: - async "~0.9.0" - loader-utils "^0.2.5" - lodash "^3.8.0" - source-map "^0.1.41" - webpack-dev-middleware "^1.0.11" - -karma@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.2.0.tgz#6dca89ec25f4753f120f834c89398098040fd63e" - dependencies: - bluebird "^3.3.0" - body-parser "^1.12.4" - chokidar "^1.4.1" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.3.5" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - glob "^7.0.3" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^3.8.0" - log4js "^0.6.31" - mime "^1.3.4" - minimatch "^3.0.0" - optimist "^0.6.1" - qjobs "^1.1.4" - rimraf "^2.3.3" - socket.io "1.4.7" - source-map "^0.5.3" - tmp "0.0.28" - useragent "^2.1.9" - -kew@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/kew/-/kew-0.7.0.tgz#79d93d2d33363d6fdd2970b335d9141ad591d79b" - -kind-of@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" - dependencies: - is-buffer "^1.0.2" - -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" - -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" - -leek@0.0.21: - version "0.0.21" - resolved "https://registry.yarnpkg.com/leek/-/leek-0.0.21.tgz#09804bf70f8aefbba745f5d56d2a4debf22711ff" - dependencies: - debug "^2.1.0" - lodash.assign "^3.2.0" - request "^2.27.0" - rsvp "^3.0.21" - -less-loader@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528" - dependencies: - loader-utils "^0.2.5" - -less@^2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.2.11" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.72.0" - source-map "^0.5.3" - -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" - -linkify-it@~1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a" - dependencies: - uc.micro "^1.0.1" - -listify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/listify/-/listify-1.0.0.tgz#03ca7ba2d150d4267773f74e57558d1053d2bee3" - -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" - -loader-runner@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.2.0.tgz#824c1b699c4e7a2b6501b85902d5b862bf45b3fa" - -loader-utils@0.2.x, loader-utils@0.x.x, loader-utils@^0.2.11, loader-utils@^0.2.14, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.3, loader-utils@^0.2.5, loader-utils@^0.2.6, loader-utils@^0.2.7, loader-utils@^0.2.9, loader-utils@~0.2.2, loader-utils@~0.2.5: - 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" - -lockfile@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.3.tgz#2638fc39a0331e9cac1a04b71799931c9c50df79" - -lodash._arraycopy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" - -lodash._arrayeach@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" - -lodash._baseassign@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basecallback@^3.0.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" - dependencies: - lodash._baseisequal "^3.0.0" - lodash._bindcallback "^3.0.0" - lodash.isarray "^3.0.0" - lodash.pairs "^3.0.0" - -lodash._basecopy@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" - -lodash._baseeach@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" - dependencies: - lodash.keys "^3.0.0" - -lodash._basefind@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae" - -lodash._basefindindex@^3.0.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f" - -lodash._basefor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" - -lodash._baseisequal@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" - dependencies: - lodash.isarray "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" - -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - -lodash._bindcallback@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" - -lodash._createassigner@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" - dependencies: - lodash._bindcallback "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash.restparam "^3.0.0" - -lodash._createcompounder@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz#5dd2cb55372d6e70e0e2392fb2304d6631091075" - dependencies: - lodash.deburr "^3.0.0" - lodash.words "^3.0.0" - -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" - -lodash._isiterateecall@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" - -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash._root@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" - -lodash.assign@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" - dependencies: - lodash._baseassign "^3.0.0" - lodash._createassigner "^3.0.0" - lodash.keys "^3.0.0" - -lodash.assign@^4.0.3, lodash.assign@^4.0.6, lodash.assign@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.camelcase@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz#932c8b87f8a4377897c67197533282f97aeac298" - dependencies: - lodash._createcompounder "^3.0.0" - -lodash.clonedeep@^4.3.2: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - -lodash.deburr@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.deburr/-/lodash.deburr-3.2.0.tgz#6da8f54334a366a7cf4c4c76ef8d80aa1b365ed5" - dependencies: - lodash._root "^3.0.0" - -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - -lodash.find@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad" - dependencies: - lodash._basecallback "^3.0.0" - lodash._baseeach "^3.0.0" - lodash._basefind "^3.0.0" - lodash._basefindindex "^3.0.0" - lodash.isarray "^3.0.0" - lodash.keys "^3.0.0" - -lodash.indexof@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" - -lodash.isequal@^4.2.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - -lodash.isplainobject@^3.0.0, lodash.isplainobject@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz#9a8238ae16b200432960cd7346512d0123fbf4c5" - dependencies: - lodash._basefor "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.keysin "^3.0.0" - -lodash.istypedarray@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" - -lodash.keys@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.keysin@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" - dependencies: - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.memoize@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - -lodash.merge@^3.0.2, lodash.merge@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-3.3.2.tgz#0d90d93ed637b1878437bb3e21601260d7afe994" - dependencies: - lodash._arraycopy "^3.0.0" - lodash._arrayeach "^3.0.0" - lodash._createassigner "^3.0.0" - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - lodash.isplainobject "^3.0.0" - lodash.istypedarray "^3.0.0" - lodash.keys "^3.0.0" - lodash.keysin "^3.0.0" - lodash.toplainobject "^3.0.0" - -lodash.pairs@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" - dependencies: - lodash.keys "^3.0.0" - -lodash.restparam@^3.0.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - -lodash.toplainobject@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" - dependencies: - lodash._basecopy "^3.0.0" - lodash.keysin "^3.0.0" - -lodash.uniq@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - -lodash.words@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.words/-/lodash.words-3.2.0.tgz#4e2a8649bc08745b17c695b1a3ce8fee596623b3" - dependencies: - lodash._root "^3.0.0" - -lodash@^3.10.0, lodash@^3.10.1, lodash@^3.8.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.3.0, lodash@^4.5.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -lodash@~4.16.4: - version "4.16.6" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" - -log-update@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" - dependencies: - ansi-escapes "^1.0.0" - cli-cursor "^1.0.2" - -log4js@^0.6.31: - version "0.6.38" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" - dependencies: - readable-stream "~1.0.2" - semver "~4.3.3" - -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: - 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.3" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.3.tgz#c92393d976793eee5ba4edb583cf8eae35bd9bfb" - -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@2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - -lru-cache@2.2.x: - version "2.2.4" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" - -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" - -magic-string@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.16.0.tgz#970ebb0da7193301285fb1aa650f39bdd81eb45a" - dependencies: - vlq "^0.2.1" - -make-error-cause@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/make-error-cause/-/make-error-cause-1.2.2.tgz#df0388fcd0b37816dff0a5fb8108939777dcbc9d" - dependencies: - make-error "^1.2.0" - -make-error@^1.1.1, make-error@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.1.tgz#9a6dfb4844423b9f145806728d05c6e935670e75" - -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" - -markdown-it-terminal@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/markdown-it-terminal/-/markdown-it-terminal-0.0.3.tgz#c77a8533c2170b46d2a907a3c3452d4d7f4aa5db" - dependencies: - ansi-styles "^2.1.0" - cardinal "^0.5.0" - cli-table "^0.3.1" - lodash.merge "^3.3.2" - markdown-it "^4.4.0" - -markdown-it@4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.3.0.tgz#0ee2b0724079d186b3f04b7345ce395ae47cc474" - dependencies: - argparse "~1.0.2" - entities "~1.1.1" - linkify-it "~1.2.0" - mdurl "~1.0.0" - uc.micro "^1.0.0" - -markdown-it@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414" - dependencies: - argparse "~1.0.2" - entities "~1.1.1" - linkify-it "~1.2.0" - mdurl "~1.0.0" - uc.micro "^1.0.0" - -matcher-collection@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.0.4.tgz#2f66ae0869996f29e43d0b62c83dd1d43e581755" - dependencies: - minimatch "^3.0.2" - -math-expression-evaluator@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.14.tgz#39511771ed9602405fba9affff17eb4d2a3843ab" - dependencies: - lodash.indexof "^4.0.5" - -md5-hex@^1.0.2: - 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-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" - -md5@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -mdurl@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - -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.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - -memory-fs@^0.3.0, memory-fs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -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" - -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.24.0 < 2", mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - -mime-db@~1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" - -mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - -mime-types@~2.0.4: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" - dependencies: - mime-db "~1.12.0" - -mime@1.2.x: - version "1.2.11" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" - -mime@1.3.4, mime@^1.2.11, mime@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimatch@0.3: - version "0.3.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" - dependencies: - lru-cache "2" - sigmund "~1.0.0" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@2.x: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - -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.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" - dependencies: - minimist "0.0.8" - -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" - -mktemp@~0.3.4: - version "0.3.5" - resolved "https://registry.yarnpkg.com/mktemp/-/mktemp-0.3.5.tgz#a1504c706d0d2b198c6a0eb645f7fdaf8181f7de" - -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" - dependencies: - duplexer2 "0.0.2" - -mutationobserver-shim@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.2.tgz#f4d5dae7a4971a2207914fb5a90ebd514b65acca" - -mute-stream@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.4.tgz#a9219960a6d5d5d046597aee51252c6655f7177e" - -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.0, nan@^2.3.0, nan@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.5.0.tgz#aa8f1e34531d807e9e27755b234b4a6ec0c152a8" - -natives@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" - -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.4.9: - version "0.4.9" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.4.9.tgz#92e46b6db53c7e421ed64a2bc94f08be7630df3f" - -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-gyp@^3.3.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.5.0.tgz#a8fe5e611d079ec16348a3eb960e78e11c85274a" - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - minimatch "^3.0.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "2" - rimraf "2" - semver "2.x || 3.x || 4 || 5" - tar "^2.0.0" - which "1" - -node-libs-browser@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-1.1.1.tgz#2a38243abedd7dffcd07a97c9aca5668975a6fea" - 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 "^1.4.2" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-modules-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" - -node-pre-gyp@^0.6.29, node-pre-gyp@^0.6.4: - version "0.6.32" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" - dependencies: - mkdirp "~0.5.1" - nopt "~3.0.6" - npmlog "^4.0.1" - rc "~1.1.6" - request "^2.79.0" - rimraf "~2.5.4" - semver "~5.3.0" - tar "~2.2.1" - tar-pack "~3.3.0" - -node-sass@^3.10.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-3.13.1.tgz#7240fbbff2396304b4223527ed3020589c004fc2" - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash.assign "^4.2.0" - lodash.clonedeep "^4.3.2" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.3.2" - node-gyp "^3.3.1" - npmlog "^4.0.0" - request "^2.61.0" - sass-graph "^2.1.1" - -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" - -node-uuid@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" - -node-zopfli@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-zopfli/-/node-zopfli-2.0.2.tgz#a7a473ae92aaea85d4c68d45bbf2c944c46116b8" - dependencies: - commander "^2.8.1" - defaults "^1.0.2" - nan "^2.0.0" - node-pre-gyp "^0.6.4" - -"nopt@2 || 3", nopt@3.x, nopt@^3.0.1, nopt@~3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - 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@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.0.tgz#c2bb50035edee62cd81edb2d45da68dc25e3423e" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - -npm-run-all@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-3.1.2.tgz#c7e3faf4aa0a59bf0dcfc12601166151692171cf" - dependencies: - chalk "^1.1.3" - cross-spawn "^4.0.0" - minimatch "^3.0.2" - object-assign "^4.0.1" - pinkie-promise "^2.0.1" - ps-tree "^1.0.1" - read-pkg "^1.1.0" - read-pkg-up "^1.0.1" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.2.tgz#d03950e0e78ce1527ba26d2a7592e9348ac3e75f" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.1" - 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" - -oauth-sign@~0.8.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.x.x, 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-assign@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -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" - -object.pick@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.2.0.tgz#b5392bee9782da6d9fb7d6afaf539779f1234c2b" - dependencies: - isobject "^2.1.0" - -obuf@^1.0.0, obuf@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - -offline-plugin@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-3.4.2.tgz#ddbb9eec3e8fd052ec51e03c56afdc33b0a331a2" - dependencies: - deep-extend "^0.4.0" - ejs "^2.3.4" - es6-promise "^3.0.2" - loader-utils "0.2.x" - minimatch "^3.0.2" - -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.x, once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.3: - 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" - -opn@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.1.tgz#9bd30ee3eba4fd533be2c83d56329a4e58913bf8" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.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" - -optimist@^0.6.1, optimist@~0.6.0: - 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: - 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" - -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" - -ora@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" - dependencies: - chalk "^1.1.1" - cli-cursor "^1.0.2" - cli-spinners "^0.1.2" - object-assign "^4.0.1" - -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: - 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, osenv@^0.1.0: - 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" - -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.0" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.0.tgz#2619f90fd6c829ed0b958f1c84ed03a745a6d70a" - dependencies: - no-case "^2.2.0" - -parse-asn1@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" - 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@^2.1.5: - version "2.2.3" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-2.2.3.tgz#0c4fc41c1000c5e6b93d48b03f8083837834e9f6" - -parsejson@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.1.tgz#9b10c6c0d825ab589e685153826de0a3ba278bcc" - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.2.tgz#9dfe70b2cddac388bde4f35b1f240fa58adbe6c7" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.4.tgz#806582a39887e1ea18dd5e2fe0e01902268e9350" - dependencies: - better-assert "~1.0.0" - -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-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-posix@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/path-posix/-/path-posix-1.0.0.tgz#06b26113f56beab042545a23bfa88003ccac260f" - -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-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" - -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.9" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" - dependencies: - create-hmac "^1.1.2" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -phantomjs-prebuilt@^2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0" - dependencies: - es6-promise "~4.0.3" - extract-zip "~1.5.0" - fs-extra "~1.0.0" - hasha "~2.2.0" - kew "~0.7.0" - progress "~1.1.8" - request "~2.79.0" - request-progress "~2.0.1" - which "~1.2.10" - -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, pinkie-promise@^2.0.1: - 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, pinkie@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -popsicle-proxy-agent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz#b9133c55d945759ab7ee61b7711364620d3aeadc" - dependencies: - http-proxy-agent "^1.0.0" - https-proxy-agent "^1.0.0" - -popsicle-retry@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/popsicle-retry/-/popsicle-retry-3.2.1.tgz#e06e866533b42a7a123eb330cbe63a7cebcba10c" - dependencies: - any-promise "^1.1.0" - xtend "^4.0.1" - -popsicle-rewrite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz#1dd4e8ea9c3182351fb820f87934d992f7fb9007" - -popsicle-status@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/popsicle-status/-/popsicle-status-2.0.0.tgz#54e12722376efba0a353abdf53cbf1ce0e852efa" - -popsicle@^8.0.2: - version "8.2.0" - resolved "https://registry.yarnpkg.com/popsicle/-/popsicle-8.2.0.tgz#ff4401005cab43a9418a91410611c00197712d21" - dependencies: - any-promise "^1.3.0" - arrify "^1.0.0" - concat-stream "^1.4.7" - form-data "^2.0.0" - make-error-cause "^1.2.1" - throwback "^1.1.0" - tough-cookie "^2.0.0" - xtend "^4.0.0" - -portfinder@1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.9.tgz#b1ac8755d092afc0433f1c4832fa17d6d1f5d830" - 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.1" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.1.tgz#dc5421b6ae6f779ef6bfd47352b94abe59d0316b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.0.tgz#08c6d06130fe58a91a21ff50829e1aad6a3a1acc" - 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.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.2.tgz#02be520e91571ffb10738766a981d5770989bb32" - 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-loader@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-0.9.1.tgz#87a3e70f58e46d68a75badc6725d9ea4773fd1d7" - dependencies: - loader-utils "^0.2.14" - postcss "^5.0.19" - -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.1" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.1.tgz#5e5640020ce43cddd343c73bba91c9a358d1fe0f" - 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.0.1" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.1.tgz#8fb3fef9a6dd0420d3f6d4353cf1ff73f2b2a341" - dependencies: - postcss "^5.0.4" - -postcss-modules-local-by-default@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.1.1.tgz#29a10673fa37d19251265ca2ba3150d9040eb4ce" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-scope@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.0.2.tgz#ff977395e5e06202d7362290b88b1e8cd049de29" - dependencies: - css-selector-tokenizer "^0.6.0" - postcss "^5.0.4" - -postcss-modules-values@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.2.2.tgz#f0e7d476fe1ed88c5e4c7f97533a3e772ad94ca1" - dependencies: - icss-replace-symbols "^1.0.2" - postcss "^5.0.14" - -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-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.2.tgz#3d70f5adda130da51c7c0c2fc023f56b1374fe08" - 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.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.19, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.8: - version "5.2.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.10.tgz#b58b64e04f66f838b7bc7cb41f7dac168568a945" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.1.2" - -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-error@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.0.2.tgz#a7db19cbb529ca9f0af3d3a2f77d5caf8e5dec23" - dependencies: - renderkid "~2.0.0" - utila "~0.4" - -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-relative-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/process-relative-require/-/process-relative-require-1.0.0.tgz#1590dfcf5b8f2983ba53e398446b68240b4cc68a" - dependencies: - node-modules-path "^1.0.0" - -process@^0.11.0, process@~0.11.0: - version "0.11.9" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" - -progress@~1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -promise-finally@^2.0.1, promise-finally@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/promise-finally/-/promise-finally-2.2.1.tgz#22616c4ba902916e988bd46c54d7caa08910cd77" - dependencies: - any-promise "^1.3.0" - -promise-map-series@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/promise-map-series/-/promise-map-series-0.2.3.tgz#c2d377afc93253f6bd03dbb77755eb88ab20a847" - dependencies: - rsvp "^3.0.14" - -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" - -protractor@4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-4.0.9.tgz#152f72e3729b2576226e370dc308699cccfa77ba" - dependencies: - "@types/jasmine" "^2.2.31" - "@types/node" "^6.0.35" - "@types/q" "^0.0.30" - "@types/selenium-webdriver" "~2.53.30" - adm-zip "0.4.7" - chalk "^1.1.3" - glob "^7.0.3" - jasmine "2.5.2" - jasminewd2 "0.0.10" - optimist "~0.6.0" - q "1.4.1" - saucelabs "~1.3.0" - selenium-webdriver "2.53.3" - source-map-support "~0.4.0" - webdriver-manager "^10.2.2" - -protractor@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/protractor/-/protractor-3.3.0.tgz#7f4468306ac29a315086daf64a2b4a15c0bc1317" - dependencies: - adm-zip "0.4.7" - chalk "^1.1.3" - glob "~6.0" - jasmine "2.4.1" - jasminewd2 "0.0.9" - optimist "~0.6.0" - q "1.4.1" - request "~2.67.0" - saucelabs "~1.0.1" - selenium-webdriver "2.52.0" - source-map-support "~0.4.0" - -proxy-addr@~1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" - dependencies: - forwarded "~0.1.0" - ipaddr.js "1.2.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.4.1, q@^1.1.2, q@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -qjobs@^1.1.4: - version "1.1.5" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" - -qs@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - -qs@6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.1.tgz#ce03c5ff0935bc1d9d69a9f14cbd18e568d67625" - -qs@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-5.2.1.tgz#801fee030e0b9450d6385adc48a4cc55b44aedfc" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -query-string@^4.1.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d" - 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" - -quick-temp@0.1.5, quick-temp@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/quick-temp/-/quick-temp-0.1.5.tgz#0d0d67f0fb6a589a0e142f90985f76cdbaf403f7" - dependencies: - mktemp "~0.3.4" - rimraf "~2.2.6" - underscore.string "~2.3.3" - -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" - -raw-body@~2.2.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" - -raw-loader@^0.5.1, raw-loader@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" - -rc@^1.0.1, rc@^1.1.5, rc@^1.1.6, rc@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~1.0.4" - -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-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, read-pkg@^1.1.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" - -readable-stream@1.0, readable-stream@~1.0.2: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.0: - 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" - -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.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - 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" - -readable-stream@~2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" - 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" - -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@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-0.1.1.tgz#99443ba6e83b830ef3051bfd7dc241a82728d568" - dependencies: - mute-stream "0.0.4" - strip-ansi "^2.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" - -redeyed@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-0.5.0.tgz#7ab000e60ee3875ac115d29edb32c1403c6c25d1" - dependencies: - esprima-fb "~12001.1.0-dev-harmony-fb" - -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" - -reflect-metadata@^0.1.2, reflect-metadata@^0.1.8: - version "0.1.9" - resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.9.tgz#987238dc87a516895fe457f130435ffbd763a4d4" - -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.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb" - -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" - -registry-auth-token@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" - dependencies: - rc "^1.1.6" - -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" - -remap-istanbul@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/remap-istanbul/-/remap-istanbul-0.6.4.tgz#ac551eff1aa641504b4f318d0303dda61e3bb695" - dependencies: - amdefine "1.0.0" - gulp-util "3.0.7" - istanbul "0.4.3" - source-map ">=0.5.6" - through2 "2.0.1" - -renderkid@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.0.tgz#1859753e7a5adbf35443aba0d4e4579e78abee85" - 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@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - -request-progress@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-2.0.1.tgz#5d36bb57961c673aa5b788dbc8141fdf23b44e08" - dependencies: - throttleit "^1.0.0" - -request@2, request@>=2.42.0, request@^2.27.0, request@^2.61.0, request@^2.69.0, request@^2.72.0, request@^2.79.0, request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - 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" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -request@~2.67.0: - version "2.67.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.67.0.tgz#8af74780e2bf11ea0ae9aa965c11f11afd272742" - dependencies: - aws-sign2 "~0.6.0" - bl "~1.0.0" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~1.0.0-rc3" - har-validator "~2.0.2" - hawk "~3.1.0" - 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" - node-uuid "~1.4.7" - oauth-sign "~0.8.0" - qs "~5.2.0" - stringstream "~0.0.4" - tough-cookie "~2.2.0" - tunnel-agent "~0.4.1" - -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" - -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" - -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.6, resolve@^1.1.7: - version "1.2.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.3.4, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@~2.5.1, rimraf@~2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -rimraf@~2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.1.4.tgz#5a6eb62eeda068f51ede50f29b3e5cd22f3d9bb2" - optionalDependencies: - graceful-fs "~1" - -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - -ripemd160@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" - -rsvp@^3.0.14, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21: - version "3.3.3" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.3.3.tgz#34633caaf8bc66ceff4be3c2e1dffd032538a813" - -rsvp@~3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a" - -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - dependencies: - once "^1.3.0" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - -rxjs@5.0.0-beta.12: - version "5.0.0-beta.12" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.0.0-beta.12.tgz#cdfde2d8c4639d20ae7794bff8fddf32da7ad337" - dependencies: - symbol-observable "^1.0.1" - -rxjs@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.0.3.tgz#fc8bdf464ebf938812748e4196788f392fef9754" - dependencies: - symbol-observable "^1.0.1" - -sass-graph@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.1.2.tgz#965104be23e8103cb7e5f710df65935b317da57b" - dependencies: - glob "^7.0.0" - lodash "^4.0.0" - yargs "^4.7.1" - -sass-loader@^3.2.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-3.2.3.tgz#742e81fd8170a8771a979e18622501674a88e355" - dependencies: - async "^1.4.0" - loader-utils "^0.2.5" - object-assign "^4.0.1" - -saucelabs@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.0.1.tgz#b50a100d9c5a4140748b35335a6e5d70017dadf9" - dependencies: - https-proxy-agent "^1.0.0" - -saucelabs@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" - dependencies: - https-proxy-agent "^1.0.0" - -sax@0.5.x: - version "0.5.8" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" - -sax@0.6.x: - version "0.6.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" - -sax@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" - -script-loader@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/script-loader/-/script-loader-0.7.0.tgz#685dc7e7069e0dee7a92674f0ebc5b0f55baa5ec" - dependencies: - raw-loader "~0.5.1" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - -selenium-webdriver@2.52.0: - version "2.52.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.52.0.tgz#d2dcb2f51b48733d6c42829e52767ecee2bf4b6b" - dependencies: - adm-zip "0.4.4" - rimraf "^2.2.8" - tmp "0.0.24" - ws "^1.0.1" - xml2js "0.4.4" - -selenium-webdriver@2.53.3: - version "2.53.3" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" - dependencies: - adm-zip "0.4.4" - rimraf "^2.2.8" - tmp "0.0.24" - ws "^1.0.1" - xml2js "0.4.4" - -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@2.x || 3.x || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -semver@~4.3.3: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" - -semver@~5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" - -send@0.14.1: - version "0.14.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" - dependencies: - debug "~2.2.0" - depd "~1.1.0" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.7.0" - fresh "0.3.0" - http-errors "~1.5.0" - mime "1.3.4" - ms "0.7.1" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.0" - -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.11.1: - version "1.11.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.14.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setprototypeof@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" - -sha.js@^2.3.6: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" - dependencies: - inherits "^2.0.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.0: - version "0.7.6" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -silent-error@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.0.1.tgz#71b7d503d1c6f94882b51b56be879b113cb4822c" - dependencies: - debug "^2.2.0" - -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" - -socket.io-adapter@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.4.0.tgz#fb9f82ab1aa65290bf72c3657955b930a991a24f" - dependencies: - debug "2.2.0" - socket.io-parser "2.2.2" - -socket.io-client@1.4.6: - version "1.4.6" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.4.6.tgz#49b0ba537efd15b8297c84016e642e1c7c752c3d" - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "1.2.0" - debug "2.2.0" - engine.io-client "1.6.9" - has-binary "0.1.7" - indexof "0.0.1" - object-component "0.0.3" - parseuri "0.0.4" - socket.io-parser "2.2.6" - to-array "0.1.4" - -socket.io-parser@2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.2.tgz#3d7af6b64497e956b7d9fe775f999716027f9417" - dependencies: - benchmark "1.0.0" - component-emitter "1.1.2" - debug "0.7.4" - isarray "0.0.1" - json3 "3.2.6" - -socket.io-parser@2.2.6: - version "2.2.6" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.2.6.tgz#38dfd61df50dcf8ab1d9e2091322bf902ba28b99" - dependencies: - benchmark "1.0.0" - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" - -socket.io@1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.4.7.tgz#92b7f7cb88c5797d4daee279fe8075dbe6d3fa1c" - dependencies: - debug "2.2.0" - engine.io "1.6.10" - has-binary "0.1.7" - socket.io-adapter "0.4.0" - socket.io-client "1.4.6" - socket.io-parser "2.2.6" - -sockjs-client@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" - 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@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.4, 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-map-loader@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.1.6.tgz#c09903da6d73b9e53b7ed8ee5245597051e98e91" - dependencies: - async "^0.9.0" - loader-utils "~0.2.2" - source-map "~0.1.33" - -source-map-support@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" - dependencies: - source-map "0.1.32" - -source-map-support@^0.4.0, source-map-support@^0.4.2, source-map-support@~0.4.0: - version "0.4.10" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.10.tgz#d7b19038040a14c0837a18e630a196453952b378" - dependencies: - source-map "^0.5.3" - -source-map@0.1.32: - version "0.1.32" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" - dependencies: - amdefine ">=0.0.4" - -source-map@0.1.x, source-map@^0.1.41, source-map@~0.1.33: - 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.x, 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.5.6, 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.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" - -sourcemap-istanbul-instrumenter-loader@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/sourcemap-istanbul-instrumenter-loader/-/sourcemap-istanbul-instrumenter-loader-0.2.0.tgz#8fd72e8abd16ded58918a7474db5bb3d0dbbcacd" - dependencies: - istanbul "0.x.x" - loader-utils "0.x.x" - object-assign "4.x.x" - -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" - -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.15: - version "2.0.18" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.18.tgz#43fc9c56be2cccc12bb3e2754aa971154e836ea6" - dependencies: - debug "^2.2.0" - hpack.js "^2.1.6" - obuf "^1.1.0" - readable-stream "^2.0.1" - wbuf "^1.4.0" - -spdy@^3.4.1: - version "3.4.4" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.4.tgz#e0406407ca90ff01b553eb013505442649f5a819" - dependencies: - debug "^2.2.0" - handle-thing "^1.2.4" - http-deceiver "^1.2.4" - select-hose "^2.0.0" - spdy-transport "^2.0.15" - -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.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@^1.7.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" - -"statuses@>= 1.3.1 < 2", statuses@~1.3.0: - 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.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.6.2" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.2.tgz#bdfe40d2ee9262eb6bf2255bb3ad0ec0cdd6526d" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.1.0" - 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-replace-loader@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string-replace-loader/-/string-replace-loader-1.0.5.tgz#e2b0d4fcd611f0d41ca433bbf50e029450e37a3d" - dependencies: - loader-utils "^0.2.11" - lodash "^3.10.1" - -string-template@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" - -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.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" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-2.0.1.tgz#df62c1aa94ed2f114e1d0f21fd1d50482b79a60e" - dependencies: - ansi-regex "^1.0.0" - -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@^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@^1.0.2, strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -strip-json-comments@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -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" - -stylus-loader@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-2.4.0.tgz#2ffbf2854a2071086b88bc338f423ad985b43544" - dependencies: - loader-utils "^0.2.9" - when "~3.6.x" - -stylus@^0.54.5: - version "0.54.5" - resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" - dependencies: - css-parse "1.7.x" - debug "*" - glob "7.0.x" - mkdirp "0.5.x" - sax "0.5.x" - source-map "0.1.x" - -sum-up@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sum-up/-/sum-up-1.0.3.tgz#1c661f667057f63bcb7875aa1438bc162525156e" - dependencies: - chalk "^1.0.0" - -supports-color@^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" - -supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -svgo@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.1.tgz#287320fed972cb097e72c2bb1685f96fe08f8034" - dependencies: - coa "~1.0.1" - colors "~1.1.2" - csso "~2.2.1" - js-yaml "~3.6.1" - mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -symbol-observable@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" - -symlink-or-copy@^1.0.0, symlink-or-copy@^1.0.1, symlink-or-copy@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/symlink-or-copy/-/symlink-or-copy-1.1.8.tgz#cabe61e0010c1c023c173b25ee5108b37f4b4aa3" - -tapable@^0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - -tapable@^0.2.3, tapable@^0.2.5, tapable@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" - -tar-pack@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" - 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.0.0, tar@~2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -temp@0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" - dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" - -temp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.5.1.tgz#77ab19c79aa7b593cbe4fac2441768cad987b8df" - dependencies: - rimraf "~2.1.4" - -tether@^1.3.7: - version "1.4.0" - resolved "https://registry.yarnpkg.com/tether/-/tether-1.4.0.tgz#0f9fa171f75bf58485d8149e94799d7ae74d1c1a" - -"textextensions@1 || 2": - version "2.0.1" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.0.1.tgz#be8cf22d65379c151319f88f0335ad8f667abdca" - -thenify@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.2.1.tgz#251fd1c80aff6e5cf57cb179ab1fcb724269bd11" - dependencies: - any-promise "^1.0.0" - -throat@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.0.0.tgz#e7c64c867cbb3845f10877642f7b60055b8ec0d6" - -throttleit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" - -through2@2.0.1, through2@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" - dependencies: - readable-stream "~2.0.0" - xtend "~4.0.0" - -through@2, through@X.X.X, through@^2.3.6, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -throwback@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/throwback/-/throwback-1.1.1.tgz#f007e7c17604a6d16d7a07c41aa0e8fedc6184a4" - dependencies: - any-promise "^1.3.0" - -time-stamp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" - -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@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - dependencies: - process "~0.11.0" - -tmp@0.0.24: - version "0.0.24" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" - -tmp@0.0.28: - version "0.0.28" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" - dependencies: - os-tmpdir "~1.0.1" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -toposort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.0.tgz#b66cf385a1a8a8e68e45b8259e7f55875e8b06ef" - -touch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" - dependencies: - nopt "~1.0.10" - -tough-cookie@^2.0.0, 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" - -tough-cookie@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.2.2.tgz#c83a1830f4e5ef0b93ef2a3488e724f8de016ac7" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -ts-helpers@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ts-helpers/-/ts-helpers-1.1.2.tgz#fc69be9f1f3baed01fb1a0ef8d4cfe748814d835" - -ts-loader@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-0.8.2.tgz#7331296d13d5b3105cd905cebca39143eed2b255" - dependencies: - arrify "^1.0.0" - colors "^1.0.3" - enhanced-resolve "^0.9.0" - loader-utils "^0.2.6" - object-assign "^2.0.0" - semver "^5.0.1" - -ts-node@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-1.2.1.tgz#108f1e43366e25f5223e8549fa7c6dcf780eda23" - dependencies: - arrify "^1.0.0" - chalk "^1.1.1" - diff "^2.1.1" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - pinkie "^2.0.4" - source-map-support "^0.4.0" - tsconfig "^5.0.2" - xtend "^4.0.0" - -tsconfig@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-5.0.3.tgz#5f4278e701800967a8fc383fd19648878f2a6e3a" - dependencies: - any-promise "^1.3.0" - parse-json "^2.2.0" - strip-bom "^2.0.0" - strip-json-comments "^2.0.0" - -tsickle@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.1.7.tgz#bfe8f4cdcdaf9a40b84a729a38480c2f824f18ab" - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.4.2" - source-map-support "^0.3.1" - -tsickle@^0.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.2.4.tgz#98f4837bf45eb142a90fec751f8e30c6a5bc7c06" - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.5.6" - source-map-support "^0.4.2" - -tslint-loader@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/tslint-loader/-/tslint-loader-2.1.5.tgz#77abdfd9bf13d7133a6efa4447a1690783c4bb49" - dependencies: - loader-utils "^0.2.7" - mkdirp "^0.5.1" - object-assign "^4.0.1" - rimraf "^2.4.4" - strip-json-comments "^1.0.2" - -tslint@^3.15.1: - version "3.15.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-3.15.1.tgz#da165ca93d8fdc2c086b51165ee1bacb48c98ea5" - dependencies: - colors "^1.1.2" - diff "^2.2.1" - findup-sync "~0.3.0" - glob "^7.0.3" - optimist "~0.6.0" - resolve "^1.1.7" - underscore.string "^3.3.4" - -tslint@^4.1.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.3.1.tgz#28f679c53ca4b273688bcb6fcf0dde7ff1bb2169" - dependencies: - babel-code-frame "^6.20.0" - colors "^1.1.2" - diff "^3.0.1" - findup-sync "~0.3.0" - glob "^7.1.1" - optimist "~0.6.0" - resolve "^1.1.7" - underscore.string "^3.3.4" - update-notifier "^1.0.2" - -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.4.1: - 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.13, type-is@~1.6.14: - version "1.6.14" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.13" - -typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@^2.0.3, typescript@~2.0.3: - version "2.0.10" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.0.10.tgz#ccdd4ed86fd5550a407101a0814012e1b3fac3dd" - -typings-core@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/typings-core/-/typings-core-1.6.1.tgz#ce4b2931ea2f19bb8f3dacbec69983ac4e964a37" - dependencies: - any-promise "^1.3.0" - array-uniq "^1.0.2" - configstore "^2.0.0" - debug "^2.2.0" - detect-indent "^4.0.0" - graceful-fs "^4.1.2" - has "^1.0.1" - invariant "^2.2.0" - is-absolute "^0.2.3" - listify "^1.0.0" - lockfile "^1.0.1" - make-error-cause "^1.2.1" - mkdirp "^0.5.1" - object.pick "^1.1.1" - parse-json "^2.2.0" - popsicle "^8.0.2" - popsicle-proxy-agent "^3.0.0" - popsicle-retry "^3.2.0" - popsicle-rewrite "^1.0.0" - popsicle-status "^2.0.0" - promise-finally "^2.0.1" - rc "^1.1.5" - rimraf "^2.4.4" - sort-keys "^1.0.0" - string-template "^1.0.0" - strip-bom "^2.0.0" - thenify "^3.1.0" - throat "^3.0.0" - touch "^1.0.0" - typescript "^2.0.3" - xtend "^4.0.0" - zip-object "^0.1.0" - -typings@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/typings/-/typings-1.5.0.tgz#b9d236cf1d37460854f8c671ea495d9405b8103f" - dependencies: - any-promise "^1.3.0" - archy "^1.0.0" - bluebird "^3.1.1" - chalk "^1.0.0" - cli-truncate "^0.2.1" - columnify "^1.5.2" - elegant-spinner "^1.0.1" - has-unicode "^2.0.1" - listify "^1.0.0" - log-update "^1.0.2" - minimist "^1.2.0" - promise-finally "^2.2.1" - typings-core "^1.6.1" - update-notifier "^1.0.0" - wordwrap "^1.0.0" - xtend "^4.0.1" - -uc.micro@^1.0.0, uc.micro@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" - -uglify-js@2.7.x, uglify-js@^2.6, uglify-js@~2.7.3: - version "2.7.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" - dependencies: - async "~0.2.6" - source-map "~0.5.1" - uglify-to-browserify "~1.0.0" - yargs "~3.10.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" - -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - -unc-path-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - -underscore.string@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" - dependencies: - sprintf-js "^1.0.3" - util-deprecate "^1.0.2" - -underscore.string@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d" - -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" - -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@^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.0, update-notifier@^1.0.2: - 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" - -url-loader@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.7.tgz#67e8779759f8000da74994906680c943a9b0925d" - dependencies: - loader-utils "0.2.x" - mime "1.2.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: - version "1.1.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" - dependencies: - querystringify "0.0.x" - 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" - -urlgrey@>=0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" - -useragent@^2.1.9: - version "2.1.10" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.10.tgz#2456c5c2b722b47f3d8321ed257b490a3d9bb2af" - dependencies: - lru-cache "2.2.x" - -utf8@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.0.tgz#0cfec5c8052d44a23e3aaa908104e8075f95dfd5" - -util-deprecate@^1.0.2, 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" - -vary@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" - -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" - -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vlq@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" - -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" - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - -walk-sync@^0.2.6: - version "0.2.7" - resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969" - dependencies: - ensure-posix-path "^1.0.0" - matcher-collection "^1.0.0" - -walk-sync@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.1.tgz#558a16aeac8c0db59c028b73c66f397684ece465" - dependencies: - ensure-posix-path "^1.0.0" - matcher-collection "^1.0.0" - -watchpack@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.2.0.tgz#15d4620f1e7471f13fcb551d5c030d2c3eb42dbb" - dependencies: - async "^2.1.2" - chokidar "^1.4.3" - graceful-fs "^4.1.2" - -wbuf@^1.1.0, wbuf@^1.4.0: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - dependencies: - defaults "^1.0.3" - -web-animations-js@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/web-animations-js/-/web-animations-js-2.2.2.tgz#7c3aa5382c5eade70cd206880d56a37869630638" - -webdriver-manager@10.2.5, webdriver-manager@^10.2.2: - version "10.2.5" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-10.2.5.tgz#6433c1a64b038388c295ed0dc9daa71e5df5024e" - dependencies: - adm-zip "^0.4.7" - chalk "^1.1.1" - del "^2.2.0" - glob "^7.0.3" - ini "^1.3.4" - minimist "^1.2.0" - q "^1.4.1" - request "^2.69.0" - rimraf "^2.5.2" - semver "^5.3.0" - -webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.4.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz#a1c67a3dfd8a5c5d62740aa0babe61758b4c84aa" - 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.1.0-beta.9: - version "2.1.0-beta.9" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.1.0-beta.9.tgz#45745a4a6b84849c63e3a21dfab3be7bdb897554" - dependencies: - chokidar "^1.6.0" - compression "^1.5.2" - connect-history-api-fallback "^1.3.0" - express "^4.13.3" - http-proxy-middleware "~0.17.1" - opn "4.0.2" - serve-index "^1.7.2" - sockjs "0.3.18" - sockjs-client "1.1.1" - spdy "^3.4.1" - strip-ansi "^3.0.0" - supports-color "^3.1.1" - webpack-dev-middleware "^1.4.0" - yargs "^4.7.1" - -webpack-md5-hash@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/webpack-md5-hash/-/webpack-md5-hash-0.0.5.tgz#d9f1899ead664459dd8b6b0c926ac71cfbd7bc7a" - dependencies: - md5 "^2.0.0" - -webpack-merge@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-0.14.1.tgz#d6bfe6d9360a024e1e7f8e6383ae735f1737cd23" - dependencies: - lodash.find "^3.2.1" - lodash.isequal "^4.2.0" - lodash.isplainobject "^3.2.0" - lodash.merge "^3.3.2" - -webpack-sources@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.4.tgz#ccc2c817e08e5fa393239412690bb481821393cd" - dependencies: - source-list-map "~0.1.7" - source-map "~0.5.3" - -webpack@2.1.0-beta.25: - version "2.1.0-beta.25" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.1.0-beta.25.tgz#c35ff4da4ee70344a2f14c35258d95412709e9ed" - dependencies: - acorn "^3.2.0" - ajv "^4.7.0" - async "^1.3.0" - clone "^1.0.2" - enhanced-resolve "^2.2.0" - interpret "^1.0.0" - loader-runner "^2.2.0" - loader-utils "^0.2.11" - memory-fs "~0.3.0" - mkdirp "~0.5.0" - node-libs-browser "^1.0.0" - object-assign "^4.0.1" - source-map "^0.5.3" - supports-color "^3.1.0" - tapable "~0.2.3" - uglify-js "~2.7.3" - watchpack "^1.0.0" - webpack-sources "^0.1.0" - yargs "^4.7.1" - -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" - -when@~3.6.x: - version "3.6.4" - resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" - -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, which@^1.1.1, which@^1.2.9, which@~1.2.10: - version "1.2.12" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" - dependencies: - isexe "^1.1.1" - -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -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.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@^1.0.0, wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - -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.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -ws@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.0.1.tgz#7d0b2a2e58cddd819039c29c9de65045e1b310e9" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -ws@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -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" - -xml2js@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" - dependencies: - sax "0.6.x" - xmlbuilder ">=1.0.0" - -xmlbuilder@>=1.0.0: - version "8.2.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" - -xmlhttprequest-ssl@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.1.tgz#3b7741fea4a86675976e908d296d4445961faa67" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yallist@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" - -yam@0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/yam/-/yam-0.0.18.tgz#e5cab771f0fc80ca599814cb9c269cb8bff00e2c" - dependencies: - findup "^0.1.5" - fs-extra "^0.16.3" - lodash.merge "^3.0.2" - -yargs-parser@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" - dependencies: - camelcase "^3.0.0" - lodash.assign "^4.0.6" - -yargs@^4.7.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" - dependencies: - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - lodash.assign "^4.0.3" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.1" - which-module "^1.0.0" - window-size "^0.2.0" - y18n "^3.2.1" - yargs-parser "^2.4.1" - -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" - -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - dependencies: - fd-slicer "~1.0.1" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - -zip-object@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/zip-object/-/zip-object-0.1.0.tgz#c1a0da04c88c837756e248680a03ff902ec3f53a" - -zone.js@^0.6.23: - version "0.6.26" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.6.26.tgz#067c13b8b80223a89b62e9dc82680f09762c4636" - -zone.js@^0.7.2: - version "0.7.6" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009"