From c493719f199b2f7f2195499b1a5833f99d20461a Mon Sep 17 00:00:00 2001 From: Misty Stanley-Jones Date: Wed, 28 Sep 2016 14:40:26 -0700 Subject: [PATCH] Move docker-store docs to docker-store subdirectory --- Dockerfile | 17 - Jenkinsfile | 8 - README.md | 100 - circle.yml | 15 - client/index.js | 49 - container_configs/app-aws_prod.yml | 7 - container_configs/app-aws_stage.yml | 7 - container_configs/aws_prod.yml | 4 - container_configs/aws_stage.yml | 4 - {docs => docker-store}/Dockerfile | 0 {docs => docker-store}/Makefile | 0 {docs => docker-store}/README.md | 0 {docs => docker-store}/faq.md | 0 {docs => docker-store}/get-images.md | 0 .../images/store-browse.png | Bin {docs => docker-store}/images/store-get.png | Bin .../images/store-pullcmd.png | Bin .../images/store-search.png | Bin {docs => docker-store}/index.md | 0 {docs => docker-store}/join-us.md | 0 {docs => docker-store}/menu.md | 0 {docs => docker-store}/publish.md | 0 mocha.js | 16 - npm-shrinkwrap.json | 7923 ----------------- package.json | 143 - server/env.js | 21 - server/index.js | 2 - server/proxy.js | 173 - server/server.js | 94 - src/actions/account.js | 209 - src/actions/billing.js | 607 -- src/actions/internal.js | 15 - src/actions/marketplace.js | 371 - src/actions/nautilus.js | 88 - src/actions/publish.js | 316 - src/actions/repository.js | 120 - src/actions/root.js | 22 - src/actions/whitelist.js | 71 - src/components/Beta/BetaForm/emailSelect.js | 57 - src/components/Beta/BetaForm/index.js | 152 - src/components/Beta/BetaForm/styles.css | 15 - src/components/Beta/BetaForm/validations.js | 18 - src/components/Beta/index.js | 210 - src/components/Beta/styles.css | 132 - src/components/Home/CategoryCards/index.js | 167 - src/components/Home/CategoryCards/styles.css | 80 - src/components/Home/ChevronArrows/index.js | 49 - src/components/Home/ChevronArrows/styles.css | 44 - src/components/Home/DDCBanner/index.js | 70 - src/components/Home/DDCBanner/styles.css | 89 - .../Home/FeaturedContentRow/index.js | 99 - .../Home/FeaturedContentRow/styles.css | 43 - .../Home/HelpArticlesCards/index.js | 53 - .../Home/HelpArticlesCards/styles.css | 32 - .../Home/SearchWithAutocomplete/index.js | 147 - .../Home/SearchWithAutocomplete/styles.css | 59 - src/components/Home/index.js | 140 - src/components/Home/styles.css | 76 - src/components/Login/LoginForm/index.js | 222 - src/components/Login/LoginForm/styles.css | 19 - src/components/Login/index.js | 100 - src/components/Login/styles.css | 60 - src/components/RouteNotFound404/index.js | 25 - src/components/RouteNotFound404/styles.css | 17 - .../BillingProfile/AccountSelect/index.js | 37 - .../BillingProfile/AccountSelect/styles.css | 21 - .../account/BillingProfile/Invoices/index.js | 161 - .../BillingProfile/Invoices/styles.css | 47 - .../PaymentMethods/ContactForm/index.js | 215 - .../PaymentMethods/ContactForm/styles.css | 23 - .../PaymentMethods/EmailSelect/index.js | 44 - .../PaymentForm/CardExpiration/index.js | 71 - .../PaymentForm/CardExpiration/styles.css | 23 - .../PaymentMethods/PaymentForm/index.js | 136 - .../PaymentMethods/PaymentForm/styles.css | 49 - .../PaymentMethods/PaymentForm/validations.js | 47 - .../BillingProfile/PaymentMethods/index.js | 310 - .../BillingProfile/PaymentMethods/styles.css | 45 - .../account/BillingProfile/actions.js | 39 - .../account/BillingProfile/index.js | 266 - .../account/BillingProfile/lib/common.js | 11 - .../account/BillingProfile/lib/constants.js | 17 - .../account/BillingProfile/lib/countries.js | 8 - .../account/BillingProfile/lib/helpers.js | 1 - .../account/BillingProfile/styles.css | 22 - .../DDCInstructions/constants.js | 88 - .../Subscriptions/DDCInstructions/index.js | 185 - .../Subscriptions/DDCInstructions/styles.css | 119 - .../Subscriptions/SubscriptionDetail/index.js | 587 -- .../SubscriptionDetail/styles.css | 178 - .../Subscriptions/SubscriptionList/index.js | 317 - .../Subscriptions/SubscriptionList/styles.css | 96 - .../account/Subscriptions/helpers.js | 11 - src/components/account/Subscriptions/index.js | 365 - .../account/Subscriptions/styles.css | 5 - .../AdminHomeCreateRepositoryForm/index.js | 122 - .../AdminHomeCreateRepositoryForm/styles.css | 4 - src/components/admin/AdminHome/index.js | 176 - src/components/admin/AdminHome/styles.css | 29 - .../AdminRepositoryEditMetadataForm/index.js | 353 - .../styles.css | 62 - src/components/admin/AdminRepository/index.js | 73 - .../admin/AdminRepository/styles.css | 18 - src/components/admin/index.js | 18 - src/components/admin/styles.css | 18 - src/components/common/AngledTitleBox/index.js | 19 - .../common/AngledTitleBox/styles.css | 30 - .../AutocompleteSearchBar.test.js | 160 - .../common/AutocompleteSearchBar/index.js | 409 - .../common/AutocompleteSearchBar/styles.css | 42 - src/components/common/Avatar/index.js | 20 - src/components/common/BackButtonArea/index.js | 36 - .../common/BackButtonArea/styles.css | 21 - src/components/common/Button/Button.test.js | 71 - src/components/common/Button/index.js | 103 - src/components/common/Button/styles.css | 190 - src/components/common/Card/Card.test.js | 53 - src/components/common/Card/index.js | 54 - src/components/common/Card/styles.css | 37 - src/components/common/Checkbox/index.js | 31 - .../common/CircleGraph/CircleSVG.js | 88 - src/components/common/CircleGraph/circle.css | 24 - src/components/common/CircleGraph/index.js | 39 - src/components/common/CircleGraph/styles.css | 8 - .../common/CircularLoading/index.js | 33 - .../common/CircularLoading/styles.css | 67 - src/components/common/CodeBlock/index.js | 19 - src/components/common/CodeBlock/styles.css | 13 - .../common/CopyPullCommand/index.js | 94 - .../common/CopyPullCommand/styles.css | 36 - src/components/common/DevTools/index.js | 13 - .../common/DockerImage/DockerImage.test.js | 56 - src/components/common/DockerImage/getIcon.js | 131 - src/components/common/DockerImage/index.js | 47 - src/components/common/DockerImage/styles.css | 61 - src/components/common/Expand/index.js | 59 - src/components/common/Expand/styles.css | 23 - .../common/ExpandingContentBox/index.js | 67 - .../common/ExpandingContentBox/styles.css | 12 - src/components/common/FetchingError/index.js | 33 - .../common/FetchingError/styles.css | 10 - .../common/FullSectionLoading/index.js | 30 - .../common/FullSectionLoading/styles.css | 24 - .../common/FullscreenLoading/index.js | 23 - .../common/FullscreenLoading/styles.css | 19 - .../GlobalSearchBar/GlobalSearchBar.test.js | 78 - .../common/GlobalSearchBar/index.js | 47 - .../common/GlobalSearchBar/styles.css | 42 - src/components/common/Icon/index.js | 117 - src/components/common/Icon/lib/.eslintrc | 5 - src/components/common/Icon/lib/Add.js | 11 - .../common/Icon/lib/AmazonWebServices.js | 23 - src/components/common/Icon/lib/Analytics.js | 14 - src/components/common/Icon/lib/Angular.js | 17 - src/components/common/Icon/lib/Apple.js | 11 - .../common/Icon/lib/ApplicationServices.js | 14 - src/components/common/Icon/lib/ArrowBack.js | 16 - src/components/common/Icon/lib/Avatar.js | 11 - src/components/common/Icon/lib/Aws.js | 11 - src/components/common/Icon/lib/Azure.js | 11 - src/components/common/Icon/lib/BaseImages.js | 14 - .../common/Icon/lib/BittorrentSync.js | 11 - src/components/common/Icon/lib/Build.js | 13 - .../common/Icon/lib/BuildRepoIcon.js | 11 - src/components/common/Icon/lib/Burger.js | 16 - src/components/common/Icon/lib/Centos.js | 35 - .../common/Icon/lib/ChatBubbleIcon.js | 16 - src/components/common/Icon/lib/Check.js | 16 - src/components/common/Icon/lib/Chevron.js | 16 - src/components/common/Icon/lib/Clock.js | 11 - src/components/common/Icon/lib/Close.js | 11 - .../common/Icon/lib/CloudOutlineIcon.js | 29 - src/components/common/Icon/lib/Connect.js | 11 - src/components/common/Icon/lib/Container.js | 11 - src/components/common/Icon/lib/Copy.js | 14 - src/components/common/Icon/lib/Couchdb.js | 19 - src/components/common/Icon/lib/CreditCard.js | 16 - src/components/common/Icon/lib/DDCGraphic.js | 50 - src/components/common/Icon/lib/Dashboard.js | 11 - src/components/common/Icon/lib/Databases.js | 13 - src/components/common/Icon/lib/Datadog.js | 15 - src/components/common/Icon/lib/Debian.js | 11 - .../common/Icon/lib/Digitalocean.js | 61 - src/components/common/Icon/lib/Disconnect.js | 11 - src/components/common/Icon/lib/Docker.js | 31 - src/components/common/Icon/lib/DockerCloud.js | 11 - src/components/common/Icon/lib/DockerFlat.js | 11 - src/components/common/Icon/lib/DockerStore.js | 20 - .../common/Icon/lib/DockerStoreBeta.js | 24 - .../common/Icon/lib/DoubleChevron.js | 16 - src/components/common/Icon/lib/Download.js | 11 - src/components/common/Icon/lib/Dropdown.js | 11 - src/components/common/Icon/lib/Drupal.js | 23 - src/components/common/Icon/lib/Edit.js | 11 - .../common/Icon/lib/Elasticsearch.js | 21 - src/components/common/Icon/lib/Ellipsis.js | 11 - src/components/common/Icon/lib/Embed.js | 11 - .../common/Icon/lib/ExternalLink.js | 11 - src/components/common/Icon/lib/Favs.js | 11 - .../common/Icon/lib/FeaturedImages.js | 14 - src/components/common/Icon/lib/Fedora.js | 21 - src/components/common/Icon/lib/Fullscreen.js | 11 - src/components/common/Icon/lib/Github.js | 11 - src/components/common/Icon/lib/Glassfish.js | 28 - src/components/common/Icon/lib/Haproxy.js | 43 - src/components/common/Icon/lib/Img.js | 16 - src/components/common/Icon/lib/Influxdb.js | 18 - src/components/common/Icon/lib/Info.js | 16 - .../common/Icon/lib/Infrastructure.js | 14 - src/components/common/Icon/lib/Joomla.js | 18 - src/components/common/Icon/lib/Jumpstart.js | 11 - src/components/common/Icon/lib/Label.js | 11 - src/components/common/Icon/lib/Link.js | 11 - src/components/common/Icon/lib/Linux.js | 16 - src/components/common/Icon/lib/Love.js | 11 - src/components/common/Icon/lib/Mariadb.js | 18 - src/components/common/Icon/lib/Marketplace.js | 13 - src/components/common/Icon/lib/Memcached.js | 38 - .../common/Icon/lib/MessagingServices.js | 11 - src/components/common/Icon/lib/Mongodb.js | 67 - src/components/common/Icon/lib/MyStack.js | 11 - src/components/common/Icon/lib/Mysql.js | 16 - src/components/common/Icon/lib/Newrelic.js | 17 - src/components/common/Icon/lib/Node.js | 11 - .../common/Icon/lib/NodeOutlineIcon.js | 29 - src/components/common/Icon/lib/Nodecluster.js | 11 - .../common/Icon/lib/Notification.js | 11 - .../common/Icon/lib/OperatingSystems.js | 14 - src/components/common/Icon/lib/Org.js | 11 - src/components/common/Icon/lib/Packet.js | 11 - src/components/common/Icon/lib/Postgresql.js | 25 - src/components/common/Icon/lib/Private.js | 17 - .../common/Icon/lib/ProgrammingLanguages.js | 14 - src/components/common/Icon/lib/Public.js | 11 - src/components/common/Icon/lib/Python.js | 24 - src/components/common/Icon/lib/Rabbitmq.js | 11 - src/components/common/Icon/lib/RedHat.js | 33 - src/components/common/Icon/lib/Redis.js | 23 - src/components/common/Icon/lib/Refresh.js | 11 - src/components/common/Icon/lib/Repo.js | 11 - .../common/Icon/lib/RepoOutlineIcon.js | 29 - src/components/common/Icon/lib/Return.js | 16 - src/components/common/Icon/lib/Riak.js | 22 - src/components/common/Icon/lib/Run.js | 13 - src/components/common/Icon/lib/Search.js | 11 - src/components/common/Icon/lib/Service.js | 11 - .../common/Icon/lib/ServiceOutlineIcon.js | 29 - src/components/common/Icon/lib/Settings.js | 11 - src/components/common/Icon/lib/Shield.js | 17 - src/components/common/Icon/lib/Ship.js | 13 - src/components/common/Icon/lib/Slack.js | 11 - src/components/common/Icon/lib/Softlayer.js | 11 - src/components/common/Icon/lib/Stack.js | 11 - .../common/Icon/lib/StackOutlineIcon.js | 29 - src/components/common/Icon/lib/Star.js | 16 - src/components/common/Icon/lib/Storage.js | 14 - src/components/common/Icon/lib/Tomcat.js | 20 - src/components/common/Icon/lib/Tools.js | 11 - src/components/common/Icon/lib/Trash.js | 11 - src/components/common/Icon/lib/Tutum.js | 11 - src/components/common/Icon/lib/Ubuntu.js | 22 - src/components/common/Icon/lib/Upload.js | 16 - src/components/common/Icon/lib/Warning.js | 16 - src/components/common/Icon/lib/Wikimedia.js | 29 - src/components/common/Icon/lib/Windows.js | 16 - src/components/common/Icon/lib/WindowsText.js | 67 - src/components/common/Icon/lib/Wordpress.js | 17 - src/components/common/Icon/lib/_Svg.js | 65 - src/components/common/Icon/styles.css | 48 - .../common/ImageWithFallback/index.js | 109 - .../common/ImageWithFallback/styles.css | 27 - src/components/common/InfoCard/index.js | 56 - src/components/common/InfoCard/styles.css | 34 - src/components/common/Input/index.js | 61 - src/components/common/Input/styles.css | 6 - src/components/common/LabelField/index.js | 28 - src/components/common/LabelField/styles.css | 22 - src/components/common/List/index.js | 23 - src/components/common/List/styles.css | 10 - src/components/common/ListItem/index.js | 58 - src/components/common/ListItem/styles.css | 60 - .../common/LoadingIndicator/index.js | 10 - src/components/common/LoginForm/index.js | 219 - src/components/common/LoginForm/styles.css | 19 - src/components/common/MagicCarpet/index.js | 94 - src/components/common/MagicCarpet/styles.css | 52 - src/components/common/Markdown/index.js | 24 - src/components/common/Markdown/styles.css | 107 - src/components/common/Menu/index.js | 127 - src/components/common/Menu/styles.css | 55 - src/components/common/MenuButton/index.js | 146 - src/components/common/MenuButton/styles.css | 89 - src/components/common/Modal/index.js | 70 - src/components/common/Modal/styles.css | 7 - src/components/common/NodeProvider/getIcon.js | 25 - src/components/common/NodeProvider/index.js | 50 - src/components/common/NodeProvider/styles.css | 58 - src/components/common/Pagination/Page.js | 52 - .../common/Pagination/Pagination.test.js | 112 - src/components/common/Pagination/index.js | 114 - src/components/common/Pagination/styles.css | 49 - src/components/common/README.md | 33 - src/components/common/RadioButton/index.js | 10 - .../common/RadioButtonGroup/index.js | 24 - src/components/common/Select/Select.test.js | 17 - src/components/common/Select/index.js | 42 - src/components/common/Select/styles.css | 44 - src/components/common/Slider/Slider.test.js | 21 - src/components/common/Slider/index.js | 12 - src/components/common/Slider/slider.css | 287 - src/components/common/Slider/styles.css | 35 - src/components/common/StarRating/index.js | 60 - src/components/common/StarRating/styles.css | 16 - src/components/common/Tab/index.js | 55 - src/components/common/Tab/styles.css | 95 - src/components/common/Tabs/index.js | 66 - src/components/common/Tabs/styles.css | 15 - src/components/common/TagList/Tag/index.js | 28 - src/components/common/TagList/Tag/styles.css | 8 - src/components/common/TagList/TagList.test.js | 27 - src/components/common/TagList/index.js | 109 - src/components/common/TagList/styles.css | 10 - src/components/common/TextInputField/index.js | 23 - .../common/TextInputField/styles.css | 13 - src/components/common/ToggleSwitch/index.js | 11 - src/components/common/Tooltip/Tooltip.test.js | 30 - .../common/Tooltip/bootstrap_white.css | 250 - src/components/common/Tooltip/index.js | 81 - src/components/common/Tooltip/styles.css | 70 - src/components/common/Uptime/Uptime.test.js | 26 - src/components/common/Uptime/index.js | 62 - src/components/common/Uptime/styles.css | 17 - src/components/common/index.js | 45 - .../BundleDetail/DDCDetail/index.js | 227 - .../BundleDetail/DDCDetail/styles.css | 79 - .../marketplace/BundleDetail/index.js | 23 - .../DDCPurchase/PurchaseDetails/index.js | 479 - .../DDCPurchase/PurchaseDetails/styles.css | 64 - .../DDCPurchase/PurchaseForm/index.js | 654 -- .../DDCPurchase/PurchaseForm/styles.css | 104 - .../DDCPurchase/SignupLoginForm/index.js | 317 - .../DDCPurchase/SignupLoginForm/styles.css | 125 - .../DDCPurchase/TrialForm/index.js | 440 - .../DDCPurchase/TrialForm/styles.css | 60 - .../DDCPurchase/TrialForm/validations.js | 39 - .../marketplace/DDCPurchase/index.js | 373 - .../DDCPurchase/purchaseValidations.js | 73 - .../marketplace/DDCPurchase/styles.css | 133 - .../ImageDetail/CommunityImageDetail/index.js | 234 - .../CommunityImageDetail/styles.css | 81 - .../ImageDetailComments/Comment/index.js | 35 - .../ImageDetailComments/Comment/styles.css | 15 - .../ImageDetailComments/CommentList/index.js | 94 - .../CommentList/styles.css | 26 - .../ImageDetail/ImageDetailComments/index.js | 142 - .../ComponentGrid/index.js | 70 - .../ComponentGrid/styles.css | 5 - .../ImageDetailScanDetail/Layer/index.js | 241 - .../ImageDetailScanDetail/Layer/styles.css | 96 - .../LayerVulnerabilitiesTable/index.js | 213 - .../LayerVulnerabilitiesTable/styles.css | 113 - .../NautilusScan/index.js | 80 - .../ImageDetailScanDetail/ScanHeader/index.js | 93 - .../ScanHeader/styles.css | 38 - .../ImageDetailScanDetail/Square/index.js | 101 - .../ImageDetailScanDetail/Square/styles.css | 56 - .../ImageDetailScanDetail/index.js | 77 - .../RepositoryTagsList/index.js | 31 - .../RepositoryTagsListHeader/styles.css | 38 - .../ImageDetailTags/TagInfoArea/index.js | 35 - .../ImageDetailTags/TagInfoArea/styles.css | 21 - .../ImageDetailTags/UnscannedTagRow/index.js | 33 - .../UnscannedTagRow/styles.css | 10 - .../ImageDetail/ImageDetailTags/index.js | 189 - .../ImageDetail/ImageHeaderWithLogo/index.js | 32 - .../ImageHeaderWithLogo/styles.css | 38 - .../ImageDetail/PartnerImageDetail/index.js | 470 - .../ImageDetail/PartnerImageDetail/styles.css | 85 - .../marketplace/ImageDetail/index.js | 25 - .../marketplace/ProductDetailPage/index.js | 340 - .../marketplace/ProductDetailPage/styles.css | 252 - .../Purchase/AccountSelect/index.js | 41 - .../Purchase/AccountSelect/styles.css | 18 - .../Purchase/CardExpiration/index.js | 71 - .../Purchase/CardExpiration/styles.css | 23 - .../marketplace/Purchase/EmailSelect/index.js | 50 - .../Purchase/PurchaseDetails/index.js | 479 - .../Purchase/PurchaseDetails/styles.css | 64 - .../Purchase/PurchaseForm/index.js | 654 -- .../Purchase/PurchaseForm/styles.css | 104 - .../Purchase/SignupLoginForm/index.js | 317 - .../Purchase/SignupLoginForm/styles.css | 125 - src/components/marketplace/Purchase/index.js | 373 - .../Purchase/purchaseValidations.js | 72 - .../marketplace/Purchase/styles.css | 133 - .../CommunityImageSearchResult/index.js | 76 - .../CommunityImageSearchResult/styles.css | 25 - .../Search/EmptySearchResults/index.js | 82 - .../Search/EmptySearchResults/styles.css | 22 - .../marketplace/Search/FilterList/index.js | 71 - .../marketplace/Search/FilterList/styles.css | 22 - .../Search/ImageSearchResult/index.js | 205 - .../Search/ImageSearchResult/styles.css | 109 - .../marketplace/Search/SearchHeader/index.js | 148 - .../Search/SearchHeader/styles.css | 30 - src/components/marketplace/Search/index.js | 322 - src/components/marketplace/Search/styles.css | 52 - .../ProductDetailsForm/index.js | 336 - .../ProductDetailsForm/styles.css | 106 - .../PublisherDetailsForm/index.js | 81 - .../PublisherDetailsForm/styles.css | 55 - .../PublisherProductInformation/index.js | 342 - .../PublisherProductInformation/styles.css | 70 - .../PublisherSubmitSourceForm/index.js | 388 - .../PublisherSubmitSourceForm/styles.css | 126 - .../PublisherProductSource/index.js | 162 - .../PublisherProductSource/styles.css | 32 - .../PublisherProductSubmitted/index.js | 48 - .../PublisherProductSubmitted/styles.css | 26 - .../ProductTier/index.js | 229 - .../ProductTier/styles.css | 76 - .../PublisherProductTiers/index.js | 473 - .../PublisherProductTiers/styles.css | 71 - .../publisher/PublisherAddProduct/index.js | 257 - .../publisher/PublisherAddProduct/styles.css | 93 - .../PublisherSignupForm/index.js | 102 - .../PublisherSignupForm/styles.css | 19 - .../publisher/PublisherSignup/index.js | 161 - .../publisher/PublisherSignup/styles.css | 70 - src/components/publisher/index.js | 18 - src/components/root/Footer/index.js | 27 - src/components/root/Footer/styles.css | 28 - src/components/root/TopNav/index.js | 371 - src/components/root/TopNav/styles.css | 149 - src/components/root/index.js | 82 - src/components/root/styles.css | 19 - src/components/styleguide/asExample.js | 35 - .../styleguide/components/Avatar/api.md | 8 - .../styleguide/components/Avatar/header.md | 4 - .../styleguide/components/Avatar/index.js | 23 - .../styleguide/components/Button/api.md | 31 - .../styleguide/components/Button/header.md | 1 - .../styleguide/components/Button/index.js | 222 - .../styleguide/components/Card/api.md | 36 - .../styleguide/components/Card/header.md | 1 - .../styleguide/components/Card/index.js | 53 - .../components/CircularLoading/api.md | 15 - .../components/CircularLoading/header.md | 3 - .../components/CircularLoading/index.js | 20 - .../styleguide/components/CodeBlock/api.md | 26 - .../styleguide/components/CodeBlock/header.md | 1 - .../styleguide/components/CodeBlock/index.js | 20 - .../styleguide/components/DockerImage/api.md | 28 - .../components/DockerImage/header.md | 7 - .../components/DockerImage/index.js | 131 - .../styleguide/components/Icon/api.md | 21 - .../styleguide/components/Icon/header.md | 11 - .../styleguide/components/Icon/index.js | 40 - .../styleguide/components/LabelField/api.md | 21 - .../components/LabelField/header.md | 4 - .../styleguide/components/LabelField/index.js | 37 - .../styleguide/components/ListListItem/api.md | 41 - .../components/ListListItem/header.md | 5 - .../components/ListListItem/index.js | 85 - .../styleguide/components/Menu/api.md | 29 - .../styleguide/components/Menu/header.md | 3 - .../styleguide/components/Menu/index.js | 50 - .../styleguide/components/MenuButton/api.md | 28 - .../components/MenuButton/header.md | 3 - .../styleguide/components/MenuButton/index.js | 29 - .../styleguide/components/Modal/api.md | 40 - .../styleguide/components/Modal/header.md | 3 - .../styleguide/components/Modal/index.js | 43 - .../styleguide/components/NodeProvider/api.md | 28 - .../components/NodeProvider/header.md | 5 - .../components/NodeProvider/index.js | 73 - .../styleguide/components/Pagination/api.md | 42 - .../components/Pagination/header.md | 5 - .../styleguide/components/Pagination/index.js | 71 - .../styleguide/components/RadioButton/api.md | 26 - .../components/RadioButton/header.md | 3 - .../components/RadioButton/index.js | 36 - .../styleguide/components/Slider/api.md | 17 - .../styleguide/components/Slider/header.md | 7 - .../styleguide/components/Slider/index.js | 20 - .../styleguide/components/TabsTab/api.md | 45 - .../styleguide/components/TabsTab/header.md | 7 - .../styleguide/components/TabsTab/index.js | 121 - .../styleguide/components/TagList/api.md | 16 - .../styleguide/components/TagList/header.md | 1 - .../styleguide/components/TagList/index.js | 33 - .../styleguide/components/Timeline/api.md | 15 - .../styleguide/components/Timeline/header.md | 5 - .../styleguide/components/Timeline/index.js | 71 - .../styleguide/components/ToggleSwitch/api.md | 11 - .../components/ToggleSwitch/header.md | 5 - .../components/ToggleSwitch/index.js | 43 - .../styleguide/components/Tooltip/api.md | 59 - .../styleguide/components/Tooltip/header.md | 7 - .../styleguide/components/Tooltip/index.js | 132 - .../styleguide/components/Tooltip/styles.css | 19 - .../styleguide/components/Uptime/api.md | 26 - .../styleguide/components/Uptime/header.md | 4 - .../styleguide/components/Uptime/index.js | 39 - src/components/styleguide/components/index.js | 21 - src/components/styleguide/index.js | 13 - src/lib/__tests__/index.js | 57 - src/lib/constants/countries.js | 11 - src/lib/constants/defaults.js | 8 - src/lib/constants/eusa.js | 23 - src/lib/constants/fallbacks.js | 7 - src/lib/constants/index.js | 7 - src/lib/constants/landingPage.js | 109 - src/lib/constants/nautilus.js | 45 - src/lib/constants/overlays.js | 2 - src/lib/constants/publisherSteps.js | 6 - src/lib/constants/routes.js | 22 - src/lib/constants/searchFilters/index.js | 3 - src/lib/constants/searchFilters/platforms.js | 11 - src/lib/constants/searchFilters/sorting.js | 37 - src/lib/constants/searchFilters/sources.js | 14 - src/lib/constants/sizes.js | 5 - src/lib/constants/states/subscriptions.js | 9 - src/lib/constants/variants.js | 5 - src/lib/css/cookie-bar.css | 30 - src/lib/css/global.css | 137 - src/lib/css/mixins.css | 348 - src/lib/css/nprogress.css | 80 - src/lib/css/utilities.css | 2 - src/lib/css/variables.css | 276 - src/lib/decorators/StaticBox/index.js | 18 - src/lib/decorators/StaticBox/styles.css | 23 - src/lib/images/404@2x.png | Bin 93385 -> 0 bytes src/lib/images/verify.png | Bin 2459 -> 0 bytes src/lib/images/verify@2x.png | Bin 5121 -> 0 bytes src/lib/utils/authHeaders.js | 37 - src/lib/utils/base64.js | 137 - src/lib/utils/billing-plan-utils.js | 58 - src/lib/utils/blob.js | 211 - src/lib/utils/cookie-handler.js | 17 - src/lib/utils/create-bearer.js | 1 - src/lib/utils/create-jwt.js | 1 - src/lib/utils/email-validator.js | 5 - src/lib/utils/encodeForm.js | 14 - src/lib/utils/extract-from-uri.js | 6 - src/lib/utils/file-saver.js | 185 - src/lib/utils/format-categories.js | 8 - src/lib/utils/formatNumbers.js | 59 - src/lib/utils/get-largest-logo.js | 14 - src/lib/utils/isDevelopment.js | 9 - src/lib/utils/isStaging.js | 12 - src/lib/utils/md5.js | 191 - src/lib/utils/metrics.js | 17 - src/lib/utils/nautilus-utils.js | 204 - src/lib/utils/pagination.js | 10 - src/lib/utils/password-validator.js | 3 - src/lib/utils/product-utils.js | 42 - src/lib/utils/promise.js | 28 - src/lib/utils/publisherSteps.js | 24 - src/lib/utils/regexp-uuid.js | 2 - src/lib/utils/remove-undefined.js | 7 - src/lib/utils/repo-image-name.js | 5 - src/lib/utils/route-generator.js | 26 - src/lib/utils/string-utils.js | 4 - src/lib/utils/url-utils.js | 57 - src/lib/utils/whale.js | 11 - src/reducers/account/index.js | 135 - .../account/test/Account-reducers-test.js | 254 - src/reducers/billing/index.js | 323 - .../billing/test/Billing-reducers-test.js | 668 -- src/reducers/index.js | 40 - src/reducers/internal/index.js | 17 - src/reducers/internal/test/internal.test.js | 15 - src/reducers/marketplace/index.js | 410 - .../test/Marketplace-reducers-test.js | 764 -- src/reducers/publish/index.js | 215 - .../publish/test/Publish-reducers-test.js | 398 - src/reducers/root/index.js | 113 - src/reducers/root/test/Root-reducers-test.js | 178 - src/routes/index.js | 102 - src/routes/onEnter.js | 476 - src/store/index.js | 50 - src/store/middleware/error.js | 30 - src/store/middleware/index.js | 2 - src/store/middleware/redirect.js | 10 - tools/.eslintrc | 5 - tools/lib/file-exists.js | 14 - tools/lib/log.js | 26 - tools/lib/spawn.js | 26 - tools/runner.js | 72 - tools/scripts/aws_prod.sh | 4 - tools/scripts/aws_stage.sh | 4 - tools/scripts/deploy.sh | 226 - tools/scripts/deploy_prod.sh | 12 - tools/scripts/deploy_stage.sh | 12 - tools/scripts/funcs.sh | 228 - tools/scripts/hubboss-config.ini | 17 - tools/tasks/hooks/postmerge.js | 14 - tools/tasks/hooks/precommit.js | 45 - tools/tasks/linters/css.js | 5 - tools/tasks/linters/html.js | 5 - tools/tasks/linters/js.js | 5 - tools/tasks/shrinkwrap.js | 40 - tools/tasks/utils/exact-dep.js | 38 - tools/tasks/utils/files-changed.js | 19 - webpack.config.js | 112 - 606 files changed, 49687 deletions(-) delete mode 100644 Dockerfile delete mode 100644 Jenkinsfile delete mode 100644 README.md delete mode 100644 circle.yml delete mode 100755 client/index.js delete mode 100644 container_configs/app-aws_prod.yml delete mode 100644 container_configs/app-aws_stage.yml delete mode 100644 container_configs/aws_prod.yml delete mode 100644 container_configs/aws_stage.yml rename {docs => docker-store}/Dockerfile (100%) rename {docs => docker-store}/Makefile (100%) rename {docs => docker-store}/README.md (100%) rename {docs => docker-store}/faq.md (100%) rename {docs => docker-store}/get-images.md (100%) rename {docs => docker-store}/images/store-browse.png (100%) rename {docs => docker-store}/images/store-get.png (100%) rename {docs => docker-store}/images/store-pullcmd.png (100%) rename {docs => docker-store}/images/store-search.png (100%) rename {docs => docker-store}/index.md (100%) rename {docs => docker-store}/join-us.md (100%) rename {docs => docker-store}/menu.md (100%) rename {docs => docker-store}/publish.md (100%) delete mode 100644 mocha.js delete mode 100644 npm-shrinkwrap.json delete mode 100644 package.json delete mode 100644 server/env.js delete mode 100755 server/index.js delete mode 100644 server/proxy.js delete mode 100755 server/server.js delete mode 100644 src/actions/account.js delete mode 100644 src/actions/billing.js delete mode 100644 src/actions/internal.js delete mode 100755 src/actions/marketplace.js delete mode 100644 src/actions/nautilus.js delete mode 100644 src/actions/publish.js delete mode 100644 src/actions/repository.js delete mode 100644 src/actions/root.js delete mode 100644 src/actions/whitelist.js delete mode 100644 src/components/Beta/BetaForm/emailSelect.js delete mode 100644 src/components/Beta/BetaForm/index.js delete mode 100644 src/components/Beta/BetaForm/styles.css delete mode 100644 src/components/Beta/BetaForm/validations.js delete mode 100644 src/components/Beta/index.js delete mode 100644 src/components/Beta/styles.css delete mode 100644 src/components/Home/CategoryCards/index.js delete mode 100644 src/components/Home/CategoryCards/styles.css delete mode 100644 src/components/Home/ChevronArrows/index.js delete mode 100644 src/components/Home/ChevronArrows/styles.css delete mode 100644 src/components/Home/DDCBanner/index.js delete mode 100644 src/components/Home/DDCBanner/styles.css delete mode 100644 src/components/Home/FeaturedContentRow/index.js delete mode 100644 src/components/Home/FeaturedContentRow/styles.css delete mode 100644 src/components/Home/HelpArticlesCards/index.js delete mode 100644 src/components/Home/HelpArticlesCards/styles.css delete mode 100644 src/components/Home/SearchWithAutocomplete/index.js delete mode 100644 src/components/Home/SearchWithAutocomplete/styles.css delete mode 100644 src/components/Home/index.js delete mode 100644 src/components/Home/styles.css delete mode 100644 src/components/Login/LoginForm/index.js delete mode 100644 src/components/Login/LoginForm/styles.css delete mode 100644 src/components/Login/index.js delete mode 100644 src/components/Login/styles.css delete mode 100644 src/components/RouteNotFound404/index.js delete mode 100644 src/components/RouteNotFound404/styles.css delete mode 100644 src/components/account/BillingProfile/AccountSelect/index.js delete mode 100644 src/components/account/BillingProfile/AccountSelect/styles.css delete mode 100644 src/components/account/BillingProfile/Invoices/index.js delete mode 100644 src/components/account/BillingProfile/Invoices/styles.css delete mode 100644 src/components/account/BillingProfile/PaymentMethods/ContactForm/index.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/ContactForm/styles.css delete mode 100644 src/components/account/BillingProfile/PaymentMethods/EmailSelect/index.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/PaymentForm/CardExpiration/index.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/PaymentForm/CardExpiration/styles.css delete mode 100644 src/components/account/BillingProfile/PaymentMethods/PaymentForm/index.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/PaymentForm/styles.css delete mode 100644 src/components/account/BillingProfile/PaymentMethods/PaymentForm/validations.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/index.js delete mode 100644 src/components/account/BillingProfile/PaymentMethods/styles.css delete mode 100644 src/components/account/BillingProfile/actions.js delete mode 100644 src/components/account/BillingProfile/index.js delete mode 100644 src/components/account/BillingProfile/lib/common.js delete mode 100644 src/components/account/BillingProfile/lib/constants.js delete mode 100644 src/components/account/BillingProfile/lib/countries.js delete mode 100644 src/components/account/BillingProfile/lib/helpers.js delete mode 100644 src/components/account/BillingProfile/styles.css delete mode 100644 src/components/account/Subscriptions/DDCInstructions/constants.js delete mode 100644 src/components/account/Subscriptions/DDCInstructions/index.js delete mode 100644 src/components/account/Subscriptions/DDCInstructions/styles.css delete mode 100644 src/components/account/Subscriptions/SubscriptionDetail/index.js delete mode 100644 src/components/account/Subscriptions/SubscriptionDetail/styles.css delete mode 100644 src/components/account/Subscriptions/SubscriptionList/index.js delete mode 100644 src/components/account/Subscriptions/SubscriptionList/styles.css delete mode 100644 src/components/account/Subscriptions/helpers.js delete mode 100644 src/components/account/Subscriptions/index.js delete mode 100644 src/components/account/Subscriptions/styles.css delete mode 100644 src/components/admin/AdminHome/AdminHomeCreateRepositoryForm/index.js delete mode 100644 src/components/admin/AdminHome/AdminHomeCreateRepositoryForm/styles.css delete mode 100644 src/components/admin/AdminHome/index.js delete mode 100644 src/components/admin/AdminHome/styles.css delete mode 100644 src/components/admin/AdminRepository/AdminRepositoryEditMetadataForm/index.js delete mode 100644 src/components/admin/AdminRepository/AdminRepositoryEditMetadataForm/styles.css delete mode 100644 src/components/admin/AdminRepository/index.js delete mode 100644 src/components/admin/AdminRepository/styles.css delete mode 100644 src/components/admin/index.js delete mode 100644 src/components/admin/styles.css delete mode 100644 src/components/common/AngledTitleBox/index.js delete mode 100644 src/components/common/AngledTitleBox/styles.css delete mode 100644 src/components/common/AutocompleteSearchBar/AutocompleteSearchBar.test.js delete mode 100644 src/components/common/AutocompleteSearchBar/index.js delete mode 100644 src/components/common/AutocompleteSearchBar/styles.css delete mode 100644 src/components/common/Avatar/index.js delete mode 100644 src/components/common/BackButtonArea/index.js delete mode 100644 src/components/common/BackButtonArea/styles.css delete mode 100644 src/components/common/Button/Button.test.js delete mode 100644 src/components/common/Button/index.js delete mode 100644 src/components/common/Button/styles.css delete mode 100644 src/components/common/Card/Card.test.js delete mode 100644 src/components/common/Card/index.js delete mode 100644 src/components/common/Card/styles.css delete mode 100644 src/components/common/Checkbox/index.js delete mode 100644 src/components/common/CircleGraph/CircleSVG.js delete mode 100644 src/components/common/CircleGraph/circle.css delete mode 100644 src/components/common/CircleGraph/index.js delete mode 100644 src/components/common/CircleGraph/styles.css delete mode 100644 src/components/common/CircularLoading/index.js delete mode 100644 src/components/common/CircularLoading/styles.css delete mode 100644 src/components/common/CodeBlock/index.js delete mode 100644 src/components/common/CodeBlock/styles.css delete mode 100644 src/components/common/CopyPullCommand/index.js delete mode 100644 src/components/common/CopyPullCommand/styles.css delete mode 100644 src/components/common/DevTools/index.js delete mode 100644 src/components/common/DockerImage/DockerImage.test.js delete mode 100644 src/components/common/DockerImage/getIcon.js delete mode 100644 src/components/common/DockerImage/index.js delete mode 100644 src/components/common/DockerImage/styles.css delete mode 100644 src/components/common/Expand/index.js delete mode 100644 src/components/common/Expand/styles.css delete mode 100644 src/components/common/ExpandingContentBox/index.js delete mode 100644 src/components/common/ExpandingContentBox/styles.css delete mode 100644 src/components/common/FetchingError/index.js delete mode 100644 src/components/common/FetchingError/styles.css delete mode 100644 src/components/common/FullSectionLoading/index.js delete mode 100644 src/components/common/FullSectionLoading/styles.css delete mode 100644 src/components/common/FullscreenLoading/index.js delete mode 100644 src/components/common/FullscreenLoading/styles.css delete mode 100644 src/components/common/GlobalSearchBar/GlobalSearchBar.test.js delete mode 100644 src/components/common/GlobalSearchBar/index.js delete mode 100644 src/components/common/GlobalSearchBar/styles.css delete mode 100644 src/components/common/Icon/index.js delete mode 100644 src/components/common/Icon/lib/.eslintrc delete mode 100644 src/components/common/Icon/lib/Add.js delete mode 100644 src/components/common/Icon/lib/AmazonWebServices.js delete mode 100644 src/components/common/Icon/lib/Analytics.js delete mode 100644 src/components/common/Icon/lib/Angular.js delete mode 100644 src/components/common/Icon/lib/Apple.js delete mode 100644 src/components/common/Icon/lib/ApplicationServices.js delete mode 100644 src/components/common/Icon/lib/ArrowBack.js delete mode 100644 src/components/common/Icon/lib/Avatar.js delete mode 100644 src/components/common/Icon/lib/Aws.js delete mode 100644 src/components/common/Icon/lib/Azure.js delete mode 100644 src/components/common/Icon/lib/BaseImages.js delete mode 100644 src/components/common/Icon/lib/BittorrentSync.js delete mode 100644 src/components/common/Icon/lib/Build.js delete mode 100644 src/components/common/Icon/lib/BuildRepoIcon.js delete mode 100644 src/components/common/Icon/lib/Burger.js delete mode 100644 src/components/common/Icon/lib/Centos.js delete mode 100644 src/components/common/Icon/lib/ChatBubbleIcon.js delete mode 100644 src/components/common/Icon/lib/Check.js delete mode 100644 src/components/common/Icon/lib/Chevron.js delete mode 100644 src/components/common/Icon/lib/Clock.js delete mode 100644 src/components/common/Icon/lib/Close.js delete mode 100644 src/components/common/Icon/lib/CloudOutlineIcon.js delete mode 100644 src/components/common/Icon/lib/Connect.js delete mode 100644 src/components/common/Icon/lib/Container.js delete mode 100644 src/components/common/Icon/lib/Copy.js delete mode 100644 src/components/common/Icon/lib/Couchdb.js delete mode 100644 src/components/common/Icon/lib/CreditCard.js delete mode 100644 src/components/common/Icon/lib/DDCGraphic.js delete mode 100644 src/components/common/Icon/lib/Dashboard.js delete mode 100644 src/components/common/Icon/lib/Databases.js delete mode 100644 src/components/common/Icon/lib/Datadog.js delete mode 100644 src/components/common/Icon/lib/Debian.js delete mode 100644 src/components/common/Icon/lib/Digitalocean.js delete mode 100644 src/components/common/Icon/lib/Disconnect.js delete mode 100644 src/components/common/Icon/lib/Docker.js delete mode 100644 src/components/common/Icon/lib/DockerCloud.js delete mode 100644 src/components/common/Icon/lib/DockerFlat.js delete mode 100644 src/components/common/Icon/lib/DockerStore.js delete mode 100644 src/components/common/Icon/lib/DockerStoreBeta.js delete mode 100644 src/components/common/Icon/lib/DoubleChevron.js delete mode 100644 src/components/common/Icon/lib/Download.js delete mode 100644 src/components/common/Icon/lib/Dropdown.js delete mode 100644 src/components/common/Icon/lib/Drupal.js delete mode 100644 src/components/common/Icon/lib/Edit.js delete mode 100644 src/components/common/Icon/lib/Elasticsearch.js delete mode 100644 src/components/common/Icon/lib/Ellipsis.js delete mode 100644 src/components/common/Icon/lib/Embed.js delete mode 100644 src/components/common/Icon/lib/ExternalLink.js delete mode 100644 src/components/common/Icon/lib/Favs.js delete mode 100644 src/components/common/Icon/lib/FeaturedImages.js delete mode 100644 src/components/common/Icon/lib/Fedora.js delete mode 100644 src/components/common/Icon/lib/Fullscreen.js delete mode 100644 src/components/common/Icon/lib/Github.js delete mode 100644 src/components/common/Icon/lib/Glassfish.js delete mode 100644 src/components/common/Icon/lib/Haproxy.js delete mode 100644 src/components/common/Icon/lib/Img.js delete mode 100644 src/components/common/Icon/lib/Influxdb.js delete mode 100644 src/components/common/Icon/lib/Info.js delete mode 100644 src/components/common/Icon/lib/Infrastructure.js delete mode 100644 src/components/common/Icon/lib/Joomla.js delete mode 100644 src/components/common/Icon/lib/Jumpstart.js delete mode 100644 src/components/common/Icon/lib/Label.js delete mode 100644 src/components/common/Icon/lib/Link.js delete mode 100644 src/components/common/Icon/lib/Linux.js delete mode 100644 src/components/common/Icon/lib/Love.js delete mode 100644 src/components/common/Icon/lib/Mariadb.js delete mode 100644 src/components/common/Icon/lib/Marketplace.js delete mode 100644 src/components/common/Icon/lib/Memcached.js delete mode 100644 src/components/common/Icon/lib/MessagingServices.js delete mode 100644 src/components/common/Icon/lib/Mongodb.js delete mode 100644 src/components/common/Icon/lib/MyStack.js delete mode 100644 src/components/common/Icon/lib/Mysql.js delete mode 100644 src/components/common/Icon/lib/Newrelic.js delete mode 100644 src/components/common/Icon/lib/Node.js delete mode 100644 src/components/common/Icon/lib/NodeOutlineIcon.js delete mode 100644 src/components/common/Icon/lib/Nodecluster.js delete mode 100644 src/components/common/Icon/lib/Notification.js delete mode 100644 src/components/common/Icon/lib/OperatingSystems.js delete mode 100644 src/components/common/Icon/lib/Org.js delete mode 100644 src/components/common/Icon/lib/Packet.js delete mode 100644 src/components/common/Icon/lib/Postgresql.js delete mode 100644 src/components/common/Icon/lib/Private.js delete mode 100644 src/components/common/Icon/lib/ProgrammingLanguages.js delete mode 100644 src/components/common/Icon/lib/Public.js delete mode 100644 src/components/common/Icon/lib/Python.js delete mode 100644 src/components/common/Icon/lib/Rabbitmq.js delete mode 100644 src/components/common/Icon/lib/RedHat.js delete mode 100644 src/components/common/Icon/lib/Redis.js delete mode 100644 src/components/common/Icon/lib/Refresh.js delete mode 100644 src/components/common/Icon/lib/Repo.js delete mode 100644 src/components/common/Icon/lib/RepoOutlineIcon.js delete mode 100644 src/components/common/Icon/lib/Return.js delete mode 100644 src/components/common/Icon/lib/Riak.js delete mode 100644 src/components/common/Icon/lib/Run.js delete mode 100644 src/components/common/Icon/lib/Search.js delete mode 100644 src/components/common/Icon/lib/Service.js delete mode 100644 src/components/common/Icon/lib/ServiceOutlineIcon.js delete mode 100644 src/components/common/Icon/lib/Settings.js delete mode 100644 src/components/common/Icon/lib/Shield.js delete mode 100644 src/components/common/Icon/lib/Ship.js delete mode 100644 src/components/common/Icon/lib/Slack.js delete mode 100644 src/components/common/Icon/lib/Softlayer.js delete mode 100644 src/components/common/Icon/lib/Stack.js delete mode 100644 src/components/common/Icon/lib/StackOutlineIcon.js delete mode 100644 src/components/common/Icon/lib/Star.js delete mode 100644 src/components/common/Icon/lib/Storage.js delete mode 100644 src/components/common/Icon/lib/Tomcat.js delete mode 100644 src/components/common/Icon/lib/Tools.js delete mode 100644 src/components/common/Icon/lib/Trash.js delete mode 100644 src/components/common/Icon/lib/Tutum.js delete mode 100644 src/components/common/Icon/lib/Ubuntu.js delete mode 100644 src/components/common/Icon/lib/Upload.js delete mode 100644 src/components/common/Icon/lib/Warning.js delete mode 100644 src/components/common/Icon/lib/Wikimedia.js delete mode 100644 src/components/common/Icon/lib/Windows.js delete mode 100644 src/components/common/Icon/lib/WindowsText.js delete mode 100644 src/components/common/Icon/lib/Wordpress.js delete mode 100644 src/components/common/Icon/lib/_Svg.js delete mode 100644 src/components/common/Icon/styles.css delete mode 100644 src/components/common/ImageWithFallback/index.js delete mode 100644 src/components/common/ImageWithFallback/styles.css delete mode 100644 src/components/common/InfoCard/index.js delete mode 100644 src/components/common/InfoCard/styles.css delete mode 100644 src/components/common/Input/index.js delete mode 100644 src/components/common/Input/styles.css delete mode 100644 src/components/common/LabelField/index.js delete mode 100644 src/components/common/LabelField/styles.css delete mode 100644 src/components/common/List/index.js delete mode 100644 src/components/common/List/styles.css delete mode 100644 src/components/common/ListItem/index.js delete mode 100644 src/components/common/ListItem/styles.css delete mode 100644 src/components/common/LoadingIndicator/index.js delete mode 100644 src/components/common/LoginForm/index.js delete mode 100644 src/components/common/LoginForm/styles.css delete mode 100644 src/components/common/MagicCarpet/index.js delete mode 100644 src/components/common/MagicCarpet/styles.css delete mode 100644 src/components/common/Markdown/index.js delete mode 100644 src/components/common/Markdown/styles.css delete mode 100644 src/components/common/Menu/index.js delete mode 100644 src/components/common/Menu/styles.css delete mode 100644 src/components/common/MenuButton/index.js delete mode 100644 src/components/common/MenuButton/styles.css delete mode 100644 src/components/common/Modal/index.js delete mode 100644 src/components/common/Modal/styles.css delete mode 100644 src/components/common/NodeProvider/getIcon.js delete mode 100644 src/components/common/NodeProvider/index.js delete mode 100644 src/components/common/NodeProvider/styles.css delete mode 100644 src/components/common/Pagination/Page.js delete mode 100644 src/components/common/Pagination/Pagination.test.js delete mode 100644 src/components/common/Pagination/index.js delete mode 100644 src/components/common/Pagination/styles.css delete mode 100644 src/components/common/README.md delete mode 100644 src/components/common/RadioButton/index.js delete mode 100644 src/components/common/RadioButtonGroup/index.js delete mode 100644 src/components/common/Select/Select.test.js delete mode 100644 src/components/common/Select/index.js delete mode 100644 src/components/common/Select/styles.css delete mode 100644 src/components/common/Slider/Slider.test.js delete mode 100644 src/components/common/Slider/index.js delete mode 100644 src/components/common/Slider/slider.css delete mode 100644 src/components/common/Slider/styles.css delete mode 100644 src/components/common/StarRating/index.js delete mode 100644 src/components/common/StarRating/styles.css delete mode 100644 src/components/common/Tab/index.js delete mode 100644 src/components/common/Tab/styles.css delete mode 100644 src/components/common/Tabs/index.js delete mode 100644 src/components/common/Tabs/styles.css delete mode 100644 src/components/common/TagList/Tag/index.js delete mode 100644 src/components/common/TagList/Tag/styles.css delete mode 100644 src/components/common/TagList/TagList.test.js delete mode 100644 src/components/common/TagList/index.js delete mode 100644 src/components/common/TagList/styles.css delete mode 100644 src/components/common/TextInputField/index.js delete mode 100644 src/components/common/TextInputField/styles.css delete mode 100644 src/components/common/ToggleSwitch/index.js delete mode 100644 src/components/common/Tooltip/Tooltip.test.js delete mode 100644 src/components/common/Tooltip/bootstrap_white.css delete mode 100644 src/components/common/Tooltip/index.js delete mode 100644 src/components/common/Tooltip/styles.css delete mode 100644 src/components/common/Uptime/Uptime.test.js delete mode 100644 src/components/common/Uptime/index.js delete mode 100644 src/components/common/Uptime/styles.css delete mode 100644 src/components/common/index.js delete mode 100644 src/components/marketplace/BundleDetail/DDCDetail/index.js delete mode 100644 src/components/marketplace/BundleDetail/DDCDetail/styles.css delete mode 100644 src/components/marketplace/BundleDetail/index.js delete mode 100644 src/components/marketplace/DDCPurchase/PurchaseDetails/index.js delete mode 100644 src/components/marketplace/DDCPurchase/PurchaseDetails/styles.css delete mode 100644 src/components/marketplace/DDCPurchase/PurchaseForm/index.js delete mode 100644 src/components/marketplace/DDCPurchase/PurchaseForm/styles.css delete mode 100644 src/components/marketplace/DDCPurchase/SignupLoginForm/index.js delete mode 100644 src/components/marketplace/DDCPurchase/SignupLoginForm/styles.css delete mode 100644 src/components/marketplace/DDCPurchase/TrialForm/index.js delete mode 100644 src/components/marketplace/DDCPurchase/TrialForm/styles.css delete mode 100644 src/components/marketplace/DDCPurchase/TrialForm/validations.js delete mode 100644 src/components/marketplace/DDCPurchase/index.js delete mode 100644 src/components/marketplace/DDCPurchase/purchaseValidations.js delete mode 100644 src/components/marketplace/DDCPurchase/styles.css delete mode 100644 src/components/marketplace/ImageDetail/CommunityImageDetail/index.js delete mode 100644 src/components/marketplace/ImageDetail/CommunityImageDetail/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailComments/Comment/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailComments/Comment/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailComments/CommentList/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailComments/CommentList/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailComments/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/ComponentGrid/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/ComponentGrid/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/Layer/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/Layer/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/LayerVulnerabilitiesTable/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/LayerVulnerabilitiesTable/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/NautilusScan/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/ScanHeader/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/ScanHeader/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/Square/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/Square/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailScanDetail/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/RepositoryTagsList/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/RepositoryTagsListHeader/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/TagInfoArea/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/TagInfoArea/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/UnscannedTagRow/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/UnscannedTagRow/styles.css delete mode 100644 src/components/marketplace/ImageDetail/ImageDetailTags/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageHeaderWithLogo/index.js delete mode 100644 src/components/marketplace/ImageDetail/ImageHeaderWithLogo/styles.css delete mode 100644 src/components/marketplace/ImageDetail/PartnerImageDetail/index.js delete mode 100644 src/components/marketplace/ImageDetail/PartnerImageDetail/styles.css delete mode 100644 src/components/marketplace/ImageDetail/index.js delete mode 100644 src/components/marketplace/ProductDetailPage/index.js delete mode 100644 src/components/marketplace/ProductDetailPage/styles.css delete mode 100644 src/components/marketplace/Purchase/AccountSelect/index.js delete mode 100644 src/components/marketplace/Purchase/AccountSelect/styles.css delete mode 100644 src/components/marketplace/Purchase/CardExpiration/index.js delete mode 100644 src/components/marketplace/Purchase/CardExpiration/styles.css delete mode 100644 src/components/marketplace/Purchase/EmailSelect/index.js delete mode 100644 src/components/marketplace/Purchase/PurchaseDetails/index.js delete mode 100644 src/components/marketplace/Purchase/PurchaseDetails/styles.css delete mode 100644 src/components/marketplace/Purchase/PurchaseForm/index.js delete mode 100644 src/components/marketplace/Purchase/PurchaseForm/styles.css delete mode 100644 src/components/marketplace/Purchase/SignupLoginForm/index.js delete mode 100644 src/components/marketplace/Purchase/SignupLoginForm/styles.css delete mode 100644 src/components/marketplace/Purchase/index.js delete mode 100644 src/components/marketplace/Purchase/purchaseValidations.js delete mode 100644 src/components/marketplace/Purchase/styles.css delete mode 100644 src/components/marketplace/Search/CommunityImageSearchResult/index.js delete mode 100644 src/components/marketplace/Search/CommunityImageSearchResult/styles.css delete mode 100644 src/components/marketplace/Search/EmptySearchResults/index.js delete mode 100644 src/components/marketplace/Search/EmptySearchResults/styles.css delete mode 100644 src/components/marketplace/Search/FilterList/index.js delete mode 100644 src/components/marketplace/Search/FilterList/styles.css delete mode 100644 src/components/marketplace/Search/ImageSearchResult/index.js delete mode 100644 src/components/marketplace/Search/ImageSearchResult/styles.css delete mode 100644 src/components/marketplace/Search/SearchHeader/index.js delete mode 100644 src/components/marketplace/Search/SearchHeader/styles.css delete mode 100644 src/components/marketplace/Search/index.js delete mode 100644 src/components/marketplace/Search/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/ProductDetailsForm/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/ProductDetailsForm/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/PublisherDetailsForm/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/PublisherDetailsForm/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductInformation/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSource/PublisherSubmitSourceForm/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSource/PublisherSubmitSourceForm/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSource/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSource/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSubmitted/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductSubmitted/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductTiers/ProductTier/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductTiers/ProductTier/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductTiers/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/PublisherProductTiers/styles.css delete mode 100644 src/components/publisher/PublisherAddProduct/index.js delete mode 100644 src/components/publisher/PublisherAddProduct/styles.css delete mode 100644 src/components/publisher/PublisherSignup/PublisherSignupForm/index.js delete mode 100644 src/components/publisher/PublisherSignup/PublisherSignupForm/styles.css delete mode 100644 src/components/publisher/PublisherSignup/index.js delete mode 100644 src/components/publisher/PublisherSignup/styles.css delete mode 100644 src/components/publisher/index.js delete mode 100644 src/components/root/Footer/index.js delete mode 100644 src/components/root/Footer/styles.css delete mode 100644 src/components/root/TopNav/index.js delete mode 100644 src/components/root/TopNav/styles.css delete mode 100644 src/components/root/index.js delete mode 100644 src/components/root/styles.css delete mode 100644 src/components/styleguide/asExample.js delete mode 100644 src/components/styleguide/components/Avatar/api.md delete mode 100644 src/components/styleguide/components/Avatar/header.md delete mode 100644 src/components/styleguide/components/Avatar/index.js delete mode 100644 src/components/styleguide/components/Button/api.md delete mode 100644 src/components/styleguide/components/Button/header.md delete mode 100644 src/components/styleguide/components/Button/index.js delete mode 100644 src/components/styleguide/components/Card/api.md delete mode 100644 src/components/styleguide/components/Card/header.md delete mode 100644 src/components/styleguide/components/Card/index.js delete mode 100644 src/components/styleguide/components/CircularLoading/api.md delete mode 100644 src/components/styleguide/components/CircularLoading/header.md delete mode 100644 src/components/styleguide/components/CircularLoading/index.js delete mode 100644 src/components/styleguide/components/CodeBlock/api.md delete mode 100644 src/components/styleguide/components/CodeBlock/header.md delete mode 100644 src/components/styleguide/components/CodeBlock/index.js delete mode 100644 src/components/styleguide/components/DockerImage/api.md delete mode 100644 src/components/styleguide/components/DockerImage/header.md delete mode 100644 src/components/styleguide/components/DockerImage/index.js delete mode 100644 src/components/styleguide/components/Icon/api.md delete mode 100644 src/components/styleguide/components/Icon/header.md delete mode 100644 src/components/styleguide/components/Icon/index.js delete mode 100644 src/components/styleguide/components/LabelField/api.md delete mode 100644 src/components/styleguide/components/LabelField/header.md delete mode 100644 src/components/styleguide/components/LabelField/index.js delete mode 100644 src/components/styleguide/components/ListListItem/api.md delete mode 100644 src/components/styleguide/components/ListListItem/header.md delete mode 100644 src/components/styleguide/components/ListListItem/index.js delete mode 100644 src/components/styleguide/components/Menu/api.md delete mode 100644 src/components/styleguide/components/Menu/header.md delete mode 100644 src/components/styleguide/components/Menu/index.js delete mode 100644 src/components/styleguide/components/MenuButton/api.md delete mode 100644 src/components/styleguide/components/MenuButton/header.md delete mode 100644 src/components/styleguide/components/MenuButton/index.js delete mode 100644 src/components/styleguide/components/Modal/api.md delete mode 100644 src/components/styleguide/components/Modal/header.md delete mode 100644 src/components/styleguide/components/Modal/index.js delete mode 100644 src/components/styleguide/components/NodeProvider/api.md delete mode 100644 src/components/styleguide/components/NodeProvider/header.md delete mode 100644 src/components/styleguide/components/NodeProvider/index.js delete mode 100644 src/components/styleguide/components/Pagination/api.md delete mode 100644 src/components/styleguide/components/Pagination/header.md delete mode 100644 src/components/styleguide/components/Pagination/index.js delete mode 100644 src/components/styleguide/components/RadioButton/api.md delete mode 100644 src/components/styleguide/components/RadioButton/header.md delete mode 100644 src/components/styleguide/components/RadioButton/index.js delete mode 100644 src/components/styleguide/components/Slider/api.md delete mode 100644 src/components/styleguide/components/Slider/header.md delete mode 100644 src/components/styleguide/components/Slider/index.js delete mode 100644 src/components/styleguide/components/TabsTab/api.md delete mode 100644 src/components/styleguide/components/TabsTab/header.md delete mode 100644 src/components/styleguide/components/TabsTab/index.js delete mode 100644 src/components/styleguide/components/TagList/api.md delete mode 100644 src/components/styleguide/components/TagList/header.md delete mode 100644 src/components/styleguide/components/TagList/index.js delete mode 100644 src/components/styleguide/components/Timeline/api.md delete mode 100644 src/components/styleguide/components/Timeline/header.md delete mode 100644 src/components/styleguide/components/Timeline/index.js delete mode 100644 src/components/styleguide/components/ToggleSwitch/api.md delete mode 100644 src/components/styleguide/components/ToggleSwitch/header.md delete mode 100644 src/components/styleguide/components/ToggleSwitch/index.js delete mode 100644 src/components/styleguide/components/Tooltip/api.md delete mode 100644 src/components/styleguide/components/Tooltip/header.md delete mode 100644 src/components/styleguide/components/Tooltip/index.js delete mode 100644 src/components/styleguide/components/Tooltip/styles.css delete mode 100644 src/components/styleguide/components/Uptime/api.md delete mode 100644 src/components/styleguide/components/Uptime/header.md delete mode 100644 src/components/styleguide/components/Uptime/index.js delete mode 100644 src/components/styleguide/components/index.js delete mode 100644 src/components/styleguide/index.js delete mode 100644 src/lib/__tests__/index.js delete mode 100644 src/lib/constants/countries.js delete mode 100644 src/lib/constants/defaults.js delete mode 100644 src/lib/constants/eusa.js delete mode 100644 src/lib/constants/fallbacks.js delete mode 100644 src/lib/constants/index.js delete mode 100644 src/lib/constants/landingPage.js delete mode 100644 src/lib/constants/nautilus.js delete mode 100644 src/lib/constants/overlays.js delete mode 100644 src/lib/constants/publisherSteps.js delete mode 100644 src/lib/constants/routes.js delete mode 100644 src/lib/constants/searchFilters/index.js delete mode 100644 src/lib/constants/searchFilters/platforms.js delete mode 100644 src/lib/constants/searchFilters/sorting.js delete mode 100644 src/lib/constants/searchFilters/sources.js delete mode 100644 src/lib/constants/sizes.js delete mode 100644 src/lib/constants/states/subscriptions.js delete mode 100644 src/lib/constants/variants.js delete mode 100644 src/lib/css/cookie-bar.css delete mode 100644 src/lib/css/global.css delete mode 100644 src/lib/css/mixins.css delete mode 100644 src/lib/css/nprogress.css delete mode 100644 src/lib/css/utilities.css delete mode 100644 src/lib/css/variables.css delete mode 100644 src/lib/decorators/StaticBox/index.js delete mode 100644 src/lib/decorators/StaticBox/styles.css delete mode 100644 src/lib/images/404@2x.png delete mode 100644 src/lib/images/verify.png delete mode 100644 src/lib/images/verify@2x.png delete mode 100644 src/lib/utils/authHeaders.js delete mode 100644 src/lib/utils/base64.js delete mode 100644 src/lib/utils/billing-plan-utils.js delete mode 100644 src/lib/utils/blob.js delete mode 100644 src/lib/utils/cookie-handler.js delete mode 100644 src/lib/utils/create-bearer.js delete mode 100644 src/lib/utils/create-jwt.js delete mode 100644 src/lib/utils/email-validator.js delete mode 100644 src/lib/utils/encodeForm.js delete mode 100644 src/lib/utils/extract-from-uri.js delete mode 100644 src/lib/utils/file-saver.js delete mode 100644 src/lib/utils/format-categories.js delete mode 100644 src/lib/utils/formatNumbers.js delete mode 100644 src/lib/utils/get-largest-logo.js delete mode 100644 src/lib/utils/isDevelopment.js delete mode 100644 src/lib/utils/isStaging.js delete mode 100644 src/lib/utils/md5.js delete mode 100644 src/lib/utils/metrics.js delete mode 100644 src/lib/utils/nautilus-utils.js delete mode 100644 src/lib/utils/pagination.js delete mode 100644 src/lib/utils/password-validator.js delete mode 100644 src/lib/utils/product-utils.js delete mode 100644 src/lib/utils/promise.js delete mode 100644 src/lib/utils/publisherSteps.js delete mode 100644 src/lib/utils/regexp-uuid.js delete mode 100644 src/lib/utils/remove-undefined.js delete mode 100644 src/lib/utils/repo-image-name.js delete mode 100644 src/lib/utils/route-generator.js delete mode 100644 src/lib/utils/string-utils.js delete mode 100644 src/lib/utils/url-utils.js delete mode 100644 src/lib/utils/whale.js delete mode 100644 src/reducers/account/index.js delete mode 100644 src/reducers/account/test/Account-reducers-test.js delete mode 100644 src/reducers/billing/index.js delete mode 100644 src/reducers/billing/test/Billing-reducers-test.js delete mode 100644 src/reducers/index.js delete mode 100644 src/reducers/internal/index.js delete mode 100644 src/reducers/internal/test/internal.test.js delete mode 100644 src/reducers/marketplace/index.js delete mode 100644 src/reducers/marketplace/test/Marketplace-reducers-test.js delete mode 100644 src/reducers/publish/index.js delete mode 100644 src/reducers/publish/test/Publish-reducers-test.js delete mode 100644 src/reducers/root/index.js delete mode 100644 src/reducers/root/test/Root-reducers-test.js delete mode 100644 src/routes/index.js delete mode 100644 src/routes/onEnter.js delete mode 100755 src/store/index.js delete mode 100644 src/store/middleware/error.js delete mode 100644 src/store/middleware/index.js delete mode 100644 src/store/middleware/redirect.js delete mode 100644 tools/.eslintrc delete mode 100644 tools/lib/file-exists.js delete mode 100644 tools/lib/log.js delete mode 100644 tools/lib/spawn.js delete mode 100644 tools/runner.js delete mode 100755 tools/scripts/aws_prod.sh delete mode 100755 tools/scripts/aws_stage.sh delete mode 100755 tools/scripts/deploy.sh delete mode 100755 tools/scripts/deploy_prod.sh delete mode 100755 tools/scripts/deploy_stage.sh delete mode 100755 tools/scripts/funcs.sh delete mode 100644 tools/scripts/hubboss-config.ini delete mode 100644 tools/tasks/hooks/postmerge.js delete mode 100644 tools/tasks/hooks/precommit.js delete mode 100644 tools/tasks/linters/css.js delete mode 100644 tools/tasks/linters/html.js delete mode 100644 tools/tasks/linters/js.js delete mode 100644 tools/tasks/shrinkwrap.js delete mode 100644 tools/tasks/utils/exact-dep.js delete mode 100644 tools/tasks/utils/files-changed.js delete mode 100755 webpack.config.js diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index ad83a0cce7..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM node:6.0.0-slim - -RUN mkdir -p /usr/src/app -WORKDIR /usr/src/app - -COPY package.json /usr/src/app/ -COPY npm-shrinkwrap.json /usr/src/app/ -RUN npm install - -ENV NODE_ENV production - -COPY . /usr/src/app -RUN npm run build - -EXPOSE 3000 - -CMD ["npm", "start"] diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index fa29520b5f..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,8 +0,0 @@ -// Only run on Linux atm -wrappedNode(label: 'docker') { - deleteDir() - stage "checkout" - checkout scm - - documentationChecker("docs") -} diff --git a/README.md b/README.md deleted file mode 100644 index df2be37fdc..0000000000 --- a/README.md +++ /dev/null @@ -1,100 +0,0 @@ -# Mercury -[![Circle CI](https://circleci.com/gh/docker/mercury-ui.svg?style=shield&circle-token=03609595272ae7f08f9b7d0d276f2dff340d8735)](https://circleci.com/gh/docker/mercury-ui) [![codecov.io](https://codecov.io/github/docker/mercury-ui/coverage.svg?branch=master&token=y0dAFR3ipK)](https://codecov.io/github/docker/mercury-ui?branch=master) - - -### Develop - -- Download [Node](https://nodejs.org/en/) or install it via homebrew `brew install node` -- Install [React dev tools](https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi) and [Redux dev tools](https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd) - -In order to test user actions you will need to provide JWT authentication. -Add your JWT to your environment variables keyed by `DOCKERSTORE_TOKEN` -If you have CSRF token, key it in your environment variables by `DOCKERSTORE_CSRF` - -``` -npm install -npm run start -``` - -### Dockerize - -- Download [Docker for Mac or Windows](https://beta.docker.com/docs/) - -``` -docker build -t docker/mercury-ui . -docker run -p 3000:3000 docker/mercury-ui -``` - -### Deploy to staging & production - -#### Setup - -1. Ensure access to Staging and Production VPNs -2. Docker Infra adds your developer certificates to the store & hub aws teams. -3. Install pip: [instructions here](https://pip.pypa.io/en/stable/installing/) -3. Install hub-boss (globally for now): - ``` - git clone https://github.com/docker/saas-mega - cd saas-mega/tools/hub-boss - sudo pip install -r requirements.txt - sudo pip install -e . - ``` - -4. Follow the [Pass Runbook](https://docker.atlassian.net/wiki/display/DI/Pass+Runbook) to install `pass`, `gpg-agent` and `pinentry`. - -5. Set up Store TLS certificates to access the staging & production Docker Daemons (see [docs](https://docs.docker.com/engine/security/https/)) - ``` - mkdir -p ~/.docker/certs - cd ~/.docker/certs - - # Get ca cert & key from pass - pass show dev/teams/store/docker/store-ca-cert.pem > ca.pem - pass show dev/teams/store/docker/store-ca-key.pem > ca-key.pem - - # Generate a client private key - openssl genrsa -out key.pem 4096 - - # Generate client CSR - openssl req -subj '/CN=client' -new -key key.pem -out client.csr - - # Sign the public key - echo extendedKeyUsage = clientAuth > extfile.cnf - openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf - - # Fix permissions - chmod -v 0400 key.pem - chmod -v 0444 ca.pem cert.pem - - # cleanup - rm ca-key.pem - rm extfile.cnf - rm client.csr - rm ca.srl - ``` - - -#### Deploying to Staging - -1. Bump the app version: - ``` - git checkout master - git pull - npm version major # commits change with new major version in package.json, creates new git tag e.g. - git push origin master # push bump version commit - git push origin --tags # pushes newly created git tag - ``` - -2. Wait for the new version to [build on DockerHub](https://hub.docker.com/r/docker/mercury-ui/builds/) (e.g. `6.0.0`) -3. Connect to the Staging VPN -4. Deploy: `./tools/scripts/deploy_stage.sh # e.g: 5.0.0 6.0.0` - -#### Deploying to Production - -1. Connect to Production VPN -2. Alert the team that you're doing a production deploy -3. Deploy to production: `./tools/scripts/deploy_prod.sh ` - -#### Rolling-Back - -1. Notify team you're doing a UI roll-back: -2. `./tools/scripts/deploy_prod.sh ` diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 11ec547fcb..0000000000 --- a/circle.yml +++ /dev/null @@ -1,15 +0,0 @@ -machine: - services: - - docker - node: - version: 6.0.0 - -dependencies: - cache_directories: - - node_modules - -test: - override: - - npm run test:coverage - post: - - npm run codecov diff --git a/client/index.js b/client/index.js deleted file mode 100755 index 59ca8fb0e2..0000000000 --- a/client/index.js +++ /dev/null @@ -1,49 +0,0 @@ -import 'babel-polyfill'; - -import React from 'react'; -import { render } from 'react-dom'; -import { Provider } from 'react-redux'; -import { applyRouterMiddleware, Router, browserHistory } from 'react-router'; -import useScroll from 'react-router-scroll'; -import configureRoutes from 'routes'; -import configureStore from 'store'; -import getMuiTheme from 'material-ui/styles/getMuiTheme'; -import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'; -import { internalRouterReady } from 'actions/internal'; - -// Add global css styles -import 'lib/css/global.css'; - -const initialState = window.__INITIAL_STATE__; -const store = configureStore(initialState); -const routes = configureRoutes(store); - - -// Some components use react-tap-event-plugin to listen for touch events. -// This dependency is temporary and will go away once react v1.0 is released. -// Until then, be sure to inject this plugin at the start of your app. -// http://material-ui.com/#/get-started/installation -require('react-tap-event-plugin')(); - -browserHistory.listen(() => { - analytics.page(); -}); - -const muiTheme = getMuiTheme(); - -// useScroll ensures that the page scrolls to the top when you load a new route -// scroll behavior can be extended with a custom shouldUpdateScroll function -// see https://github.com/taion/react-router-scroll for more info - -store.dispatch(internalRouterReady()); -render(( - - - - - -), document.getElementById('app')); diff --git a/container_configs/app-aws_prod.yml b/container_configs/app-aws_prod.yml deleted file mode 100644 index 55d6c7df57..0000000000 --- a/container_configs/app-aws_prod.yml +++ /dev/null @@ -1,7 +0,0 @@ -web: - publish_all_ports: True - restart_policy: - MaximumRetryCount: 0 - Name: always - ports: - - 3000 diff --git a/container_configs/app-aws_stage.yml b/container_configs/app-aws_stage.yml deleted file mode 100644 index 55d6c7df57..0000000000 --- a/container_configs/app-aws_stage.yml +++ /dev/null @@ -1,7 +0,0 @@ -web: - publish_all_ports: True - restart_policy: - MaximumRetryCount: 0 - Name: always - ports: - - 3000 diff --git a/container_configs/aws_prod.yml b/container_configs/aws_prod.yml deleted file mode 100644 index fbf6f97585..0000000000 --- a/container_configs/aws_prod.yml +++ /dev/null @@ -1,4 +0,0 @@ -DEBUG: 'False' -SERVICE_NAME: 'mercury-ui' -RELEASE_STAGE: 'production' -NODE_ENV: 'production' diff --git a/container_configs/aws_stage.yml b/container_configs/aws_stage.yml deleted file mode 100644 index 944275c616..0000000000 --- a/container_configs/aws_stage.yml +++ /dev/null @@ -1,4 +0,0 @@ -DEBUG: 'True' -SERVICE_NAME: 'mercury-ui' -RELEASE_STAGE: 'staging' -NODE_ENV: 'production' diff --git a/docs/Dockerfile b/docker-store/Dockerfile similarity index 100% rename from docs/Dockerfile rename to docker-store/Dockerfile diff --git a/docs/Makefile b/docker-store/Makefile similarity index 100% rename from docs/Makefile rename to docker-store/Makefile diff --git a/docs/README.md b/docker-store/README.md similarity index 100% rename from docs/README.md rename to docker-store/README.md diff --git a/docs/faq.md b/docker-store/faq.md similarity index 100% rename from docs/faq.md rename to docker-store/faq.md diff --git a/docs/get-images.md b/docker-store/get-images.md similarity index 100% rename from docs/get-images.md rename to docker-store/get-images.md diff --git a/docs/images/store-browse.png b/docker-store/images/store-browse.png similarity index 100% rename from docs/images/store-browse.png rename to docker-store/images/store-browse.png diff --git a/docs/images/store-get.png b/docker-store/images/store-get.png similarity index 100% rename from docs/images/store-get.png rename to docker-store/images/store-get.png diff --git a/docs/images/store-pullcmd.png b/docker-store/images/store-pullcmd.png similarity index 100% rename from docs/images/store-pullcmd.png rename to docker-store/images/store-pullcmd.png diff --git a/docs/images/store-search.png b/docker-store/images/store-search.png similarity index 100% rename from docs/images/store-search.png rename to docker-store/images/store-search.png diff --git a/docs/index.md b/docker-store/index.md similarity index 100% rename from docs/index.md rename to docker-store/index.md diff --git a/docs/join-us.md b/docker-store/join-us.md similarity index 100% rename from docs/join-us.md rename to docker-store/join-us.md diff --git a/docs/menu.md b/docker-store/menu.md similarity index 100% rename from docs/menu.md rename to docker-store/menu.md diff --git a/docs/publish.md b/docker-store/publish.md similarity index 100% rename from docs/publish.md rename to docker-store/publish.md diff --git a/mocha.js b/mocha.js deleted file mode 100644 index 93ef005db6..0000000000 --- a/mocha.js +++ /dev/null @@ -1,16 +0,0 @@ -require('./server/env'); - -var jsdom = require('jsdom').jsdom; -var exposedProperties = ['window', 'navigator', 'document']; -global.document = jsdom(''); -global.window = document.defaultView; -Object.keys(document.defaultView).forEach((property) => { - if (typeof global[property] === 'undefined') { - exposedProperties.push(property); - global[property] = document.defaultView[property]; - } -}); -global.navigator = { - userAgent: 'node.js' -}; -documentRef = document; diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json deleted file mode 100644 index 18107c11db..0000000000 --- a/npm-shrinkwrap.json +++ /dev/null @@ -1,7923 +0,0 @@ -{ - "name": "mercury", - "version": "82.0.0", - "dependencies": { - "abab": { - "version": "1.0.3", - "from": "abab@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz" - }, - "abbrev": { - "version": "1.0.7", - "from": "abbrev@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - }, - "accepts": { - "version": "1.3.2", - "from": "accepts@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.2.tgz" - }, - "acorn": { - "version": "2.7.0", - "from": "acorn@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" - }, - "acorn-globals": { - "version": "1.0.9", - "from": "acorn-globals@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz" - }, - "acorn-jsx": { - "version": "2.0.1", - "from": "acorn-jsx@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-2.0.1.tgz" - }, - "add-dom-event-listener": { - "version": "1.0.1", - "from": "add-dom-event-listener@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.0.1.tgz" - }, - "align-text": { - "version": "0.1.4", - "from": "align-text@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz" - }, - "alphanum-sort": { - "version": "1.0.2", - "from": "alphanum-sort@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - }, - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - }, - "ansi-escapes": { - "version": "1.4.0", - "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz" - }, - "ansi-html": { - "version": "0.0.5", - "from": "ansi-html@0.0.5", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.5.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" - }, - "app-module-path": { - "version": "1.0.6", - "from": "app-module-path@1.0.6", - "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-1.0.6.tgz" - }, - "append-transform": { - "version": "0.3.0", - "from": "append-transform@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.3.0.tgz" - }, - "argparse": { - "version": "1.0.7", - "from": "argparse@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz" - }, - "argv": { - "version": "0.0.2", - "from": "argv@>=0.0.2", - "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz" - }, - "arr-diff": { - "version": "2.0.0", - "from": "arr-diff@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz" - }, - "arr-flatten": { - "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" - }, - "array-differ": { - "version": "1.0.0", - "from": "array-differ@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz" - }, - "array-equal": { - "version": "1.0.0", - "from": "array-equal@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" - }, - "array-filter": { - "version": "0.0.1", - "from": "array-filter@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz" - }, - "array-find-index": { - "version": "1.0.1", - "from": "array-find-index@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz" - }, - "array-flatten": { - "version": "1.1.1", - "from": "array-flatten@1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - }, - "array-map": { - "version": "0.0.0", - "from": "array-map@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz" - }, - "array-reduce": { - "version": "0.0.0", - "from": "array-reduce@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz" - }, - "array-union": { - "version": "1.0.1", - "from": "array-union@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" - }, - "array-uniq": { - "version": "1.0.2", - "from": "array-uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" - }, - "arrify": { - "version": "1.0.1", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" - }, - "asap": { - "version": "2.0.3", - "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert": { - "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "assertion-error": { - "version": "1.0.1", - "from": "assertion-error@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.1.tgz" - }, - "async": { - "version": "1.5.2", - "from": "async@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - }, - "async-each": { - "version": "1.0.0", - "from": "async-each@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.0.tgz" - }, - "attr-accept": { - "version": "1.0.3", - "from": "attr-accept@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.0.3.tgz" - }, - "autoprefixer": { - "version": "6.3.6", - "from": "autoprefixer@>=6.3.1 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.3.6.tgz" - }, - "aws-sdk": { - "version": "2.3.18", - "from": "aws-sdk@latest", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.3.18.tgz", - "dependencies": { - "sax": { - "version": "1.1.5", - "from": "sax@1.1.5", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.5.tgz" - } - } - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.3.2", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" - } - } - }, - "babel-code-frame": { - "version": "6.7.7", - "from": "babel-code-frame@>=6.7.7 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-core": { - "version": "6.7.7", - "from": "babel-core@6.7.7", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-eslint": { - "version": "6.0.4", - "from": "babel-eslint@6.0.4", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.0.4.tgz" - }, - "babel-generator": { - "version": "6.7.7", - "from": "babel-generator@>=6.7.7 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-helper-bindify-decorators": { - "version": "6.6.5", - "from": "babel-helper-bindify-decorators@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.6.5", - "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.7.5", - "from": "babel-helper-builder-react-jsx@>=6.7.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.7.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-helper-call-delegate": { - "version": "6.6.5", - "from": "babel-helper-call-delegate@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-define-map": { - "version": "6.6.5", - "from": "babel-helper-define-map@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.6.5", - "from": "babel-helper-explode-assignable-expression@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-explode-class": { - "version": "6.6.5", - "from": "babel-helper-explode-class@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-function-name": { - "version": "6.6.0", - "from": "babel-helper-function-name@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-get-function-arity": { - "version": "6.6.5", - "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-hoist-variables": { - "version": "6.6.5", - "from": "babel-helper-hoist-variables@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.6.0", - "from": "babel-helper-optimise-call-expression@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-regex": { - "version": "6.6.5", - "from": "babel-helper-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.7.0", - "from": "babel-helper-remap-async-to-generator@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helper-replace-supers": { - "version": "6.7.0", - "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-helpers": { - "version": "6.6.0", - "from": "babel-helpers@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-loader": { - "version": "6.2.4", - "from": "babel-loader@6.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.4.tgz" - }, - "babel-messages": { - "version": "6.7.2", - "from": "babel-messages@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-add-module-exports": { - "version": "0.1.4", - "from": "babel-plugin-add-module-exports@0.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.1.4.tgz" - }, - "babel-plugin-check-es2015-constants": { - "version": "6.7.2", - "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-react-transform": { - "version": "2.0.2", - "from": "babel-plugin-react-transform@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz" - }, - "babel-plugin-syntax-async-functions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-async-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-class-constructor-call": { - "version": "6.5.0", - "from": "babel-plugin-syntax-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-class-properties": { - "version": "6.5.0", - "from": "babel-plugin-syntax-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-decorators": { - "version": "6.5.0", - "from": "babel-plugin-syntax-decorators@>=6.1.18 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-do-expressions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.5.0", - "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-export-extensions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-flow": { - "version": "6.5.0", - "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-function-bind": { - "version": "6.5.0", - "from": "babel-plugin-syntax-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.5.0", - "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.5.0", - "from": "babel-plugin-syntax-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.5.0", - "from": "babel-plugin-syntax-trailing-function-commas@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.7.4", - "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.7.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-class-constructor-call": { - "version": "6.6.5", - "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-class-properties": { - "version": "6.6.0", - "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-decorators": { - "version": "6.6.5", - "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-decorators-legacy": { - "version": "1.3.4", - "from": "babel-plugin-transform-decorators-legacy@1.3.4", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators-legacy/-/babel-plugin-transform-decorators-legacy-1.3.4.tgz" - }, - "babel-plugin-transform-do-expressions": { - "version": "6.5.0", - "from": "babel-plugin-transform-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.7.7", - "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.7.1", - "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.7.1.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.7.7", - "from": "babel-plugin-transform-es2015-classes@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-destructuring@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.6.4", - "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.6.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.6.0", - "from": "babel-plugin-transform-es2015-for-of@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-function-name@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.7.7", - "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.7.0", - "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.6.5", - "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.6.0", - "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.6.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.5.0", - "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-export-extensions": { - "version": "6.5.0", - "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.7.0", - "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-function-bind": { - "version": "6.5.2", - "from": "babel-plugin-transform-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.5.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.6.5", - "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.5.0", - "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.7.5", - "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.7.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.5.0", - "from": "babel-plugin-transform-react-jsx-source@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.6.5", - "from": "babel-plugin-transform-regenerator@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.6.5", - "from": "babel-plugin-transform-strict-mode@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.6.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-polyfill": { - "version": "6.7.4", - "from": "babel-polyfill@6.7.4", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.7.4.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", - "dependencies": { - "core-js": { - "version": "1.2.6", - "from": "core-js@1.2.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - } - } - }, - "core-js": { - "version": "2.3.0", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz" - } - } - }, - "babel-preset-es2015": { - "version": "6.6.0", - "from": "babel-preset-es2015@6.6.0", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.6.0.tgz" - }, - "babel-preset-react": { - "version": "6.5.0", - "from": "babel-preset-react@6.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.5.0.tgz" - }, - "babel-preset-react-hmre": { - "version": "1.1.1", - "from": "babel-preset-react-hmre@1.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-hmre/-/babel-preset-react-hmre-1.1.1.tgz" - }, - "babel-preset-stage-0": { - "version": "6.5.0", - "from": "babel-preset-stage-0@6.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.5.0.tgz" - }, - "babel-preset-stage-1": { - "version": "6.5.0", - "from": "babel-preset-stage-1@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.5.0.tgz" - }, - "babel-preset-stage-2": { - "version": "6.5.0", - "from": "babel-preset-stage-2@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.5.0.tgz" - }, - "babel-preset-stage-3": { - "version": "6.5.0", - "from": "babel-preset-stage-3@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.5.0.tgz" - }, - "babel-regenerator-runtime": { - "version": "6.5.0", - "from": "babel-regenerator-runtime@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz" - }, - "babel-register": { - "version": "6.7.2", - "from": "babel-register@6.7.2", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", - "dependencies": { - "core-js": { - "version": "1.2.6", - "from": "core-js@1.2.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - } - } - }, - "core-js": { - "version": "2.3.0", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-runtime": { - "version": "6.6.1", - "from": "babel-runtime@6.6.1", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.6.1.tgz", - "dependencies": { - "core-js": { - "version": "2.3.0", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz" - } - } - }, - "babel-template": { - "version": "6.7.0", - "from": "babel-template@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-traverse": { - "version": "6.7.6", - "from": "babel-traverse@>=6.7.6 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.6.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babel-types": { - "version": "6.7.7", - "from": "babel-types@>=6.7.7 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.7.7.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "babylon": { - "version": "6.7.0", - "from": "babylon@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.7.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "balanced-match": { - "version": "0.4.1", - "from": "balanced-match@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "Base64": { - "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "base64-js": { - "version": "0.0.8", - "from": "base64-js@0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "basic-auth": { - "version": "1.0.4", - "from": "basic-auth@latest", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz" - }, - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.1.3 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" - }, - "binary-extensions": { - "version": "1.4.0", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz" - }, - "bl": { - "version": "1.1.2", - "from": "bl@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz" - }, - "bluebird": { - "version": "3.3.5", - "from": "bluebird@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.5.tgz" - }, - "boolbase": { - "version": "1.0.0", - "from": "boolbase@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "bowser": { - "version": "1.3.0", - "from": "bowser@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.3.0.tgz" - }, - "brace-expansion": { - "version": "1.1.4", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" - }, - "braces": { - "version": "1.8.4", - "from": "braces@>=1.8.2 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.4.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" - }, - "browserslist": { - "version": "1.3.1", - "from": "browserslist@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.3.1.tgz" - }, - "buffer": { - "version": "3.6.0", - "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz" - }, - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - }, - "bulk-require": { - "version": "0.2.1", - "from": "bulk-require@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/bulk-require/-/bulk-require-0.2.1.tgz" - }, - "bytes": { - "version": "2.2.0", - "from": "bytes@2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" - }, - "caller-path": { - "version": "0.1.0", - "from": "caller-path@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz" - }, - "callsites": { - "version": "0.2.0", - "from": "callsites@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz" - }, - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - }, - "camelcase-css": { - "version": "1.0.1", - "from": "camelcase-css@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-1.0.1.tgz" - }, - "camelcase-keys": { - "version": "2.1.0", - "from": "camelcase-keys@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "dependencies": { - "camelcase": { - "version": "2.1.1", - "from": "camelcase@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" - } - } - }, - "caniuse-api": { - "version": "1.4.1", - "from": "caniuse-api@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.4.1.tgz", - "dependencies": { - "shelljs": { - "version": "0.5.3", - "from": "shelljs@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz" - } - } - }, - "caniuse-db": { - "version": "1.0.30000460", - "from": "caniuse-db@>=1.0.30000444 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000460.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "center-align": { - "version": "0.1.3", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz" - }, - "chai": { - "version": "3.5.0", - "from": "chai@3.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz" - }, - "chai-enzyme": { - "version": "0.4.2", - "from": "chai-enzyme@0.4.2", - "resolved": "https://registry.npmjs.org/chai-enzyme/-/chai-enzyme-0.4.2.tgz" - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - }, - "charenc": { - "version": "0.0.1", - "from": "charenc@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.1.tgz" - }, - "cheerio": { - "version": "0.20.0", - "from": "cheerio@>=0.20.0 <0.21.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", - "dependencies": { - "jsdom": { - "version": "7.2.2", - "from": "jsdom@>=7.0.2 <8.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz" - } - } - }, - "chokidar": { - "version": "1.4.3", - "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.3.tgz" - }, - "cjson": { - "version": "0.3.3", - "from": "cjson@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz" - }, - "clap": { - "version": "1.1.0", - "from": "clap@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.0.tgz", - "dependencies": { - "chalk": { - "version": "1.1.1", - "from": "chalk@1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" - } - } - }, - "classnames": { - "version": "2.2.4", - "from": "classnames@2.2.4", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.4.tgz" - }, - "cli-cursor": { - "version": "1.0.2", - "from": "cli-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz" - }, - "cli-width": { - "version": "2.1.0", - "from": "cli-width@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz" - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - } - } - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - }, - "clone-regexp": { - "version": "1.0.0", - "from": "clone-regexp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz" - }, - "coa": { - "version": "1.0.1", - "from": "coa@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz" - }, - "code-point-at": { - "version": "1.0.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz" - }, - "codecov": { - "version": "1.0.1", - "from": "codecov@1.0.1", - "resolved": "https://registry.npmjs.org/codecov/-/codecov-1.0.1.tgz" - }, - "color": { - "version": "0.11.1", - "from": "color@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.1.tgz" - }, - "color-convert": { - "version": "0.5.3", - "from": "color-convert@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz" - }, - "color-diff": { - "version": "0.1.7", - "from": "color-diff@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/color-diff/-/color-diff-0.1.7.tgz" - }, - "color-name": { - "version": "1.1.1", - "from": "color-name@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz" - }, - "color-string": { - "version": "0.3.0", - "from": "color-string@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" - }, - "colorguard": { - "version": "1.2.0", - "from": "colorguard@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/colorguard/-/colorguard-1.2.0.tgz" - }, - "colormin": { - "version": "1.1.0", - "from": "colormin@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.0.tgz" - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, - "component-classes": { - "version": "1.2.6", - "from": "component-classes@>=1.2.5 <2.0.0", - "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz" - }, - "component-emitter": { - "version": "1.2.1", - "from": "component-emitter@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz" - }, - "component-indexof": { - "version": "0.0.3", - "from": "component-indexof@0.0.3", - "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz" - }, - "compressible": { - "version": "2.0.7", - "from": "compressible@>=2.0.7 <2.1.0", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.7.tgz" - }, - "compression": { - "version": "1.6.1", - "from": "compression@1.6.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.1.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "concat-stream": { - "version": "1.5.1", - "from": "concat-stream@>=1.4.7 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz" - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" - }, - "constants-browserify": { - "version": "0.0.1", - "from": "constants-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "content-disposition": { - "version": "0.5.1", - "from": "content-disposition@0.5.1", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "convert-source-map": { - "version": "1.2.0", - "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.2.0.tgz" - }, - "cookie": { - "version": "0.1.5", - "from": "cookie@0.1.5", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" - }, - "cookie-signature": { - "version": "1.0.6", - "from": "cookie-signature@1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "cookiejar": { - "version": "2.0.6", - "from": "cookiejar@2.0.6", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.6.tgz" - }, - "core-js": { - "version": "1.2.6", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "cosmiconfig": { - "version": "1.1.0", - "from": "cosmiconfig@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-1.1.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "country-list": { - "version": "0.0.3", - "from": "country-list@latest", - "resolved": "https://registry.npmjs.org/country-list/-/country-list-0.0.3.tgz" - }, - "cross-spawn-async": { - "version": "2.2.2", - "from": "cross-spawn-async@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.2.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" - } - } - }, - "crypt": { - "version": "0.0.1", - "from": "crypt@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz" - }, - "css-animation": { - "version": "1.2.5", - "from": "css-animation@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.2.5.tgz" - }, - "css-color-function": { - "version": "1.3.0", - "from": "css-color-function@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@0.1.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@>=0.7.4 <0.8.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - } - } - }, - "css-color-names": { - "version": "0.0.3", - "from": "css-color-names@0.0.3", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.3.tgz" - }, - "css-loader": { - "version": "0.23.1", - "from": "css-loader@0.23.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz" - }, - "css-modules-require-hook": { - "version": "4.0.0", - "from": "css-modules-require-hook@4.0.0", - "resolved": "https://registry.npmjs.org/css-modules-require-hook/-/css-modules-require-hook-4.0.0.tgz" - }, - "css-rule-stream": { - "version": "1.1.0", - "from": "css-rule-stream@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/css-rule-stream/-/css-rule-stream-1.1.0.tgz" - }, - "css-select": { - "version": "1.2.0", - "from": "css-select@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz" - }, - "css-selector-tokenizer": { - "version": "0.5.4", - "from": "css-selector-tokenizer@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz" - }, - "css-tokenize": { - "version": "1.0.1", - "from": "css-tokenize@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.0.33 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "css-what": { - "version": "2.1.0", - "from": "css-what@>=2.1.0 <2.2.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz" - }, - "cssesc": { - "version": "0.1.0", - "from": "cssesc@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz" - }, - "cssnano": { - "version": "3.5.2", - "from": "cssnano@>=2.6.1 <4.0.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.5.2.tgz" - }, - "csso": { - "version": "2.0.0", - "from": "csso@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz" - }, - "cssom": { - "version": "0.3.1", - "from": "cssom@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.1.tgz" - }, - "cssstyle": { - "version": "0.2.34", - "from": "cssstyle@>=0.2.29 <0.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.34.tgz" - }, - "d": { - "version": "0.1.1", - "from": "d@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" - }, - "dashdash": { - "version": "1.13.1", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "decamelize": { - "version": "1.2.0", - "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - }, - "deep-eql": { - "version": "0.1.3", - "from": "deep-eql@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "dependencies": { - "type-detect": { - "version": "0.1.1", - "from": "type-detect@0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" - } - } - }, - "deep-equal": { - "version": "1.0.1", - "from": "deep-equal@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - }, - "deep-is": { - "version": "0.1.3", - "from": "deep-is@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - }, - "define-properties": { - "version": "1.1.2", - "from": "define-properties@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz" - }, - "defined": { - "version": "1.0.0", - "from": "defined@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" - }, - "del": { - "version": "2.2.0", - "from": "del@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz", - "dependencies": { - "glob": { - "version": "7.0.3", - "from": "glob@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" - }, - "rimraf": { - "version": "2.5.2", - "from": "rimraf@>=2.2.8 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "depd": { - "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "destroy": { - "version": "1.0.4", - "from": "destroy@>=1.0.4 <1.1.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "detect-indent": { - "version": "3.0.1", - "from": "detect-indent@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz" - }, - "diff": { - "version": "1.4.0", - "from": "diff@1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" - }, - "doctrine": { - "version": "1.2.1", - "from": "doctrine@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.1.tgz", - "dependencies": { - "esutils": { - "version": "1.1.6", - "from": "esutils@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" - } - } - }, - "doiuse": { - "version": "2.3.0", - "from": "doiuse@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-2.3.0.tgz", - "dependencies": { - "camelcase": { - "version": "2.1.1", - "from": "camelcase@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" - }, - "cliui": { - "version": "3.2.0", - "from": "cliui@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.5.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - }, - "window-size": { - "version": "0.1.4", - "from": "window-size@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz" - }, - "yargs": { - "version": "3.32.0", - "from": "yargs@>=3.5.4 <4.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz" - } - } - }, - "dom-align": { - "version": "1.4.0", - "from": "dom-align@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.4.0.tgz" - }, - "dom-helpers": { - "version": "2.4.0", - "from": "dom-helpers@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" - }, - "dom-scroll-into-view": { - "version": "1.2.0", - "from": "dom-scroll-into-view@latest", - "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-1.2.0.tgz" - }, - "dom-serializer": { - "version": "0.1.0", - "from": "dom-serializer@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" - } - } - }, - "dom-walk": { - "version": "0.1.1", - "from": "dom-walk@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" - }, - "domain-browser": { - "version": "1.1.7", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz" - }, - "domelementtype": { - "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" - }, - "domhandler": { - "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" - }, - "domutils": { - "version": "1.5.1", - "from": "domutils@1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" - }, - "duplexer": { - "version": "0.1.1", - "from": "duplexer@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz" - }, - "duplexer2": { - "version": "0.0.2", - "from": "duplexer2@0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.9 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "element-class": { - "version": "0.2.2", - "from": "element-class@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/element-class/-/element-class-0.2.2.tgz" - }, - "emojis-list": { - "version": "1.0.1", - "from": "emojis-list@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-1.0.1.tgz" - }, - "encoding": { - "version": "0.1.12", - "from": "encoding@>=0.1.11 <0.2.0", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz" - }, - "enhanced-resolve": { - "version": "0.9.1", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - }, - "memory-fs": { - "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" - } - } - }, - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" - }, - "enzyme": { - "version": "2.2.0", - "from": "enzyme@2.2.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-2.2.0.tgz" - }, - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz" - }, - "error-ex": { - "version": "1.3.0", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz" - }, - "error-stack-parser": { - "version": "1.3.5", - "from": "error-stack-parser@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.5.tgz" - }, - "es-abstract": { - "version": "1.5.0", - "from": "es-abstract@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.5.0.tgz" - }, - "es-to-primitive": { - "version": "1.1.1", - "from": "es-to-primitive@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz" - }, - "es5-ext": { - "version": "0.10.11", - "from": "es5-ext@>=0.10.8 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz" - }, - "es6-iterator": { - "version": "2.0.0", - "from": "es6-iterator@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" - }, - "es6-map": { - "version": "0.1.3", - "from": "es6-map@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.3.tgz" - }, - "es6-promise": { - "version": "3.2.1", - "from": "es6-promise@latest", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz" - }, - "es6-set": { - "version": "0.1.4", - "from": "es6-set@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz" - }, - "es6-symbol": { - "version": "3.0.2", - "from": "es6-symbol@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.2.tgz" - }, - "es6-weak-map": { - "version": "2.0.1", - "from": "es6-weak-map@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz" - }, - "escape-html": { - "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "escodegen": { - "version": "1.8.0", - "from": "escodegen@>=1.6.1 <2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.0.tgz", - "dependencies": { - "source-map": { - "version": "0.2.0", - "from": "source-map@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" - } - } - }, - "escope": { - "version": "3.6.0", - "from": "escope@>=3.6.0 <4.0.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "dependencies": { - "estraverse": { - "version": "4.2.0", - "from": "estraverse@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" - } - } - }, - "eslint": { - "version": "2.8.0", - "from": "eslint@2.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.8.0.tgz", - "dependencies": { - "estraverse": { - "version": "4.2.0", - "from": "estraverse@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" - }, - "glob": { - "version": "7.0.3", - "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" - }, - "globals": { - "version": "9.6.0", - "from": "globals@>=9.2.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.6.0.tgz" - }, - "user-home": { - "version": "2.0.0", - "from": "user-home@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz" - } - } - }, - "eslint-config-airbnb": { - "version": "7.0.0", - "from": "eslint-config-airbnb@7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-7.0.0.tgz" - }, - "eslint-plugin-jsx-a11y": { - "version": "0.6.2", - "from": "eslint-plugin-jsx-a11y@0.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-0.6.2.tgz" - }, - "eslint-plugin-react": { - "version": "4.3.0", - "from": "eslint-plugin-react@4.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-4.3.0.tgz" - }, - "espree": { - "version": "3.1.3", - "from": "espree@3.1.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.3.tgz", - "dependencies": { - "acorn": { - "version": "3.1.0", - "from": "acorn@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" - } - } - }, - "esprima": { - "version": "2.7.2", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" - }, - "esrecurse": { - "version": "4.1.0", - "from": "esrecurse@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", - "dependencies": { - "estraverse": { - "version": "4.1.1", - "from": "estraverse@>=4.1.0 <4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" - } - } - }, - "estraverse": { - "version": "1.9.3", - "from": "estraverse@>=1.9.1 <2.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - }, - "etag": { - "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "event-emitter": { - "version": "0.3.4", - "from": "event-emitter@>=0.3.4 <0.4.0", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz" - }, - "event-stream": { - "version": "3.3.2", - "from": "event-stream@>=3.3.0 <3.4.0", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.2.tgz" - }, - "eventemitter3": { - "version": "1.2.0", - "from": "eventemitter3@1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz" - }, - "events": { - "version": "1.1.0", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" - }, - "execall": { - "version": "1.0.0", - "from": "execall@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz" - }, - "execSync": { - "version": "1.0.2", - "from": "execSync@1.0.2", - "resolved": "https://registry.npmjs.org/execSync/-/execSync-1.0.2.tgz" - }, - "exenv": { - "version": "1.2.0", - "from": "exenv@1.2.0", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.0.tgz" - }, - "exit-hook": { - "version": "1.1.1", - "from": "exit-hook@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz" - }, - "expand-brackets": { - "version": "0.1.5", - "from": "expand-brackets@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz" - }, - "expand-range": { - "version": "1.8.1", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz" - }, - "express": { - "version": "4.13.4", - "from": "express@4.13.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", - "dependencies": { - "accepts": { - "version": "1.2.13", - "from": "accepts@>=1.2.12 <1.3.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" - }, - "negotiator": { - "version": "0.5.3", - "from": "negotiator@0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" - }, - "qs": { - "version": "4.0.0", - "from": "qs@4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "vary": { - "version": "1.0.1", - "from": "vary@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" - } - } - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "extglob": { - "version": "0.3.2", - "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz" - }, - "extract-text-webpack-plugin": { - "version": "1.0.1", - "from": "extract-text-webpack-plugin@1.0.1", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-1.0.1.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "fast-levenshtein": { - "version": "1.1.3", - "from": "fast-levenshtein@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.3.tgz" - }, - "fastparse": { - "version": "1.1.1", - "from": "fastparse@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz" - }, - "fbjs": { - "version": "0.8.1", - "from": "fbjs@0.8.1", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.1.tgz" - }, - "figures": { - "version": "1.5.0", - "from": "figures@>=1.3.5 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.5.0.tgz" - }, - "file-entry-cache": { - "version": "1.2.4", - "from": "file-entry-cache@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz" - }, - "file-loader": { - "version": "0.8.5", - "from": "file-loader@0.8.5", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz" - }, - "filename-regex": { - "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" - }, - "fileset": { - "version": "0.2.1", - "from": "fileset@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-0.2.1.tgz", - "dependencies": { - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" - } - } - }, - "fill-range": { - "version": "2.2.3", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" - }, - "finalhandler": { - "version": "0.4.1", - "from": "finalhandler@0.4.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz" - }, - "find-up": { - "version": "1.1.2", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "dependencies": { - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" - } - } - }, - "findup-sync": { - "version": "0.1.3", - "from": "findup-sync@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - } - } - }, - "flat-cache": { - "version": "1.0.10", - "from": "flat-cache@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "flatten": { - "version": "1.0.2", - "from": "flatten@1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz" - }, - "flux-standard-action": { - "version": "0.6.1", - "from": "flux-standard-action@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.1.tgz", - "dependencies": { - "lodash.isplainobject": { - "version": "3.2.0", - "from": "lodash.isplainobject@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz" - }, - "lodash.keysin": { - "version": "3.0.8", - "from": "lodash.keysin@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz" - } - } - }, - "for-in": { - "version": "0.1.5", - "from": "for-in@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz" - }, - "for-own": { - "version": "0.1.4", - "from": "for-own@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.4.tgz" - }, - "foreach": { - "version": "2.0.5", - "from": "foreach@>=2.0.5 <3.0.0", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc3 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" - }, - "formatio": { - "version": "1.1.1", - "from": "formatio@1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz" - }, - "formidable": { - "version": "1.0.17", - "from": "formidable@>=1.0.14 <1.1.0", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz" - }, - "forwarded": { - "version": "0.1.0", - "from": "forwarded@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" - }, - "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "from": { - "version": "0.1.3", - "from": "from@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.3.tgz" - }, - "fsevents": { - "version": "1.0.12", - "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.12.tgz", - "dependencies": { - "ansi": { - "version": "0.3.1", - "from": "ansi@~0.3.1", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@^2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "are-we-there-yet": { - "version": "1.1.2", - "from": "are-we-there-yet@~1.1.2", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@^0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "async": { - "version": "1.5.2", - "from": "async@^1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@~0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.3.2", - "from": "aws4@^1.2.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@^4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "from": "pseudomap@^1.0.1", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - }, - "yallist": { - "version": "2.0.0", - "from": "yallist@^2.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" - } - } - } - } - }, - "bl": { - "version": "1.0.3", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz" - }, - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@2.x.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@~0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "chalk": { - "version": "1.1.3", - "from": "chalk@^1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@~1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.9.0", - "from": "commander@^2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@2.x.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "dashdash": { - "version": "1.13.0", - "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@^1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "debug": { - "version": "2.2.0", - "from": "debug@~2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "deep-extend": { - "version": "0.4.1", - "from": "deep-extend@~0.4.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "delegates": { - "version": "1.0.0", - "from": "delegates@^1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.0.1 <1.0.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@~3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@~0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@~1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" - }, - "fstream-ignore": { - "version": "1.0.3", - "from": "fstream-ignore@~1.0.3", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@^3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@^0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - } - } - }, - "gauge": { - "version": "1.2.7", - "from": "gauge@~1.2.5", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@^2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@^1.1.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@^4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@~2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@^2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "has-unicode": { - "version": "2.0.0", - "from": "has-unicode@^2.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@~1.1.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@*", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, - "is-my-json-valid": { - "version": "2.13.1", - "from": "is-my-json-valid@^2.12.4", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@^1.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@~1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@~1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "jsprim": { - "version": "1.2.2", - "from": "jsprim@^1.2.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" - }, - "lodash.pad": { - "version": "4.1.0", - "from": "lodash.pad@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz" - }, - "lodash.padend": { - "version": "4.2.0", - "from": "lodash.padend@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz" - }, - "lodash.padstart": { - "version": "4.2.0", - "from": "lodash.padstart@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" - }, - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - }, - "mime-db": { - "version": "1.22.0", - "from": "mime-db@~1.22.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" - }, - "mime-types": { - "version": "2.1.10", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "node-pre-gyp": { - "version": "0.6.25", - "from": "node-pre-gyp@0.6.25", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.25.tgz", - "dependencies": { - "nopt": { - "version": "3.0.6", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - } - } - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@~1.4.7", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "npmlog": { - "version": "2.0.3", - "from": "npmlog@~2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz" - }, - "oauth-sign": { - "version": "0.8.1", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" - }, - "once": { - "version": "1.3.3", - "from": "once@~1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@^2.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - }, - "pinkie-promise": { - "version": "2.0.0", - "from": "pinkie-promise@^2.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" - }, - "process-nextick-args": { - "version": "1.0.6", - "from": "process-nextick-args@~1.0.6", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" - }, - "qs": { - "version": "6.0.2", - "from": "qs@~6.0.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" - }, - "rc": { - "version": "1.1.6", - "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@^1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - } - } - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@^2.0.0 || ^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - }, - "request": { - "version": "2.69.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" - }, - "rimraf": { - "version": "2.5.2", - "from": "rimraf@~2.5.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", - "dependencies": { - "glob": { - "version": "7.0.3", - "from": "glob@^7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz", - "dependencies": { - "inflight": { - "version": "1.0.4", - "from": "inflight@^1.0.4", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "3.0.0", - "from": "minimatch@2 || 3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@^0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.3.3", - "from": "once@^1.3.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@^1.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - } - } - }, - "semver": { - "version": "5.1.0", - "from": "semver@~5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@1.x.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "sshpk": { - "version": "1.7.4", - "from": "sshpk@^1.7.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "strip-json-comments": { - "version": "1.0.4", - "from": "strip-json-comments@~1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, - "tar": { - "version": "2.2.1", - "from": "tar@~2.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" - }, - "tar-pack": { - "version": "3.1.3", - "from": "tar-pack@~3.1.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz" - }, - "tough-cookie": { - "version": "2.2.2", - "from": "tough-cookie@~2.2.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "tunnel-agent": { - "version": "0.4.2", - "from": "tunnel-agent@~0.4.1", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" - }, - "tweetnacl": { - "version": "0.14.3", - "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" - }, - "uid-number": { - "version": "0.0.6", - "from": "uid-number@~0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@~1.0.1", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@^4.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - } - } - }, - "function-bind": { - "version": "1.1.0", - "from": "function-bind@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" - }, - "gather-stream": { - "version": "1.0.0", - "from": "gather-stream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz" - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "generic-names": { - "version": "1.0.1", - "from": "generic-names@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.1.tgz" - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - }, - "getpass": { - "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "github-markdown-css": { - "version": "2.2.1", - "from": "github-markdown-css@2.2.1", - "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-2.2.1.tgz" - }, - "glob": { - "version": "3.2.11", - "from": "glob@>=3.1.13 <4.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "dependencies": { - "minimatch": { - "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" - } - } - }, - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" - }, - "glob-to-regexp": { - "version": "0.1.0", - "from": "glob-to-regexp@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.1.0.tgz" - }, - "global": { - "version": "4.3.0", - "from": "global@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.0.tgz" - }, - "globals": { - "version": "8.18.0", - "from": "globals@>=8.3.0 <9.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-8.18.0.tgz" - }, - "globby": { - "version": "4.0.0", - "from": "globby@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-4.0.0.tgz", - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - } - } - }, - "globjoin": { - "version": "0.1.4", - "from": "globjoin@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz" - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - }, - "growl": { - "version": "1.8.1", - "from": "growl@1.8.1", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz" - }, - "handlebars": { - "version": "4.0.5", - "from": "handlebars@>=4.0.3 <5.0.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.4 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" - }, - "has": { - "version": "1.0.1", - "from": "has@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" - }, - "has-own": { - "version": "1.0.0", - "from": "has-own@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-own/-/has-own-1.0.0.tgz" - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" - }, - "history": { - "version": "2.1.1", - "from": "history@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-2.1.1.tgz", - "dependencies": { - "query-string": { - "version": "3.0.3", - "from": "query-string@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz" - } - } - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "hoist-non-react-statics": { - "version": "1.0.5", - "from": "hoist-non-react-statics@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.5.tgz" - }, - "home-or-tmp": { - "version": "1.0.0", - "from": "home-or-tmp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz" - }, - "hosted-git-info": { - "version": "2.1.4", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" - }, - "html": { - "version": "0.0.10", - "from": "html@0.0.10", - "resolved": "https://registry.npmjs.org/html/-/html-0.0.10.tgz" - }, - "html-comment-regex": { - "version": "1.1.0", - "from": "html-comment-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.0.tgz" - }, - "html-entities": { - "version": "1.2.0", - "from": "html-entities@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.0.tgz" - }, - "htmllint": { - "version": "0.2.7", - "from": "htmllint@>=0.2.4 <0.3.0", - "resolved": "https://registry.npmjs.org/htmllint/-/htmllint-0.2.7.tgz", - "dependencies": { - "asap": { - "version": "1.0.0", - "from": "asap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" - }, - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, - "promise": { - "version": "6.1.0", - "from": "promise@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" - } - } - }, - "htmllint-cli": { - "version": "0.0.4", - "from": "htmllint-cli@0.0.4", - "resolved": "https://registry.npmjs.org/htmllint-cli/-/htmllint-cli-0.0.4.tgz", - "dependencies": { - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - }, - "ansi-styles": { - "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" - }, - "asap": { - "version": "1.0.0", - "from": "asap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" - }, - "bluebird": { - "version": "2.10.2", - "from": "bluebird@>=2.3.11 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" - }, - "chalk": { - "version": "0.5.1", - "from": "chalk@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" - }, - "glob": { - "version": "4.5.3", - "from": "glob@>=4.1.3 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" - }, - "has-ansi": { - "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" - }, - "promise": { - "version": "6.1.0", - "from": "promise@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" - }, - "strip-ansi": { - "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" - }, - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" - } - } - }, - "htmlparser2": { - "version": "3.8.3", - "from": "htmlparser2@>=3.8.1 <3.9.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "dependencies": { - "entities": { - "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "http-browserify": { - "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "https-browserify": { - "version": "0.0.0", - "from": "https-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@>=0.4.13 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" - }, - "icss-replace-symbols": { - "version": "1.0.2", - "from": "icss-replace-symbols@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz" - }, - "ieee754": { - "version": "1.1.6", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" - }, - "ignore": { - "version": "3.1.2", - "from": "ignore@>=3.0.10 <4.0.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.1.2.tgz" - }, - "imurmurhash": { - "version": "0.1.4", - "from": "imurmurhash@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - }, - "indent-string": { - "version": "2.1.0", - "from": "indent-string@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "dependencies": { - "repeating": { - "version": "2.0.1", - "from": "repeating@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" - } - } - }, - "indexes-of": { - "version": "1.0.1", - "from": "indexes-of@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - }, - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - }, - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "inline-style-prefix-all": { - "version": "2.0.2", - "from": "inline-style-prefix-all@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/inline-style-prefix-all/-/inline-style-prefix-all-2.0.2.tgz" - }, - "inline-style-prefixer": { - "version": "1.0.4", - "from": "inline-style-prefixer@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-1.0.4.tgz" - }, - "inquirer": { - "version": "0.12.0", - "from": "inquirer@>=0.12.0 <0.13.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz" - }, - "interpret": { - "version": "0.6.6", - "from": "interpret@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" - }, - "invariant": { - "version": "2.2.1", - "from": "invariant@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz" - }, - "invert-kv": { - "version": "1.0.0", - "from": "invert-kv@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" - }, - "ipaddr.js": { - "version": "1.0.5", - "from": "ipaddr.js@1.0.5", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" - }, - "irregular-plurals": { - "version": "1.1.0", - "from": "irregular-plurals@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.1.0.tgz" - }, - "is-absolute": { - "version": "0.1.7", - "from": "is-absolute@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" - }, - "is-absolute-url": { - "version": "2.0.0", - "from": "is-absolute-url@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.0.0.tgz" - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - }, - "is-buffer": { - "version": "1.1.3", - "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz" - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - }, - "is-callable": { - "version": "1.1.3", - "from": "is-callable@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz" - }, - "is-date-object": { - "version": "1.0.1", - "from": "is-date-object@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" - }, - "is-dotfile": { - "version": "1.0.2", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz" - }, - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" - }, - "is-extendable": { - "version": "0.1.1", - "from": "is-extendable@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - }, - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" - }, - "is-integer": { - "version": "1.0.6", - "from": "is-integer@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz" - }, - "is-my-json-valid": { - "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" - }, - "is-number": { - "version": "2.1.0", - "from": "is-number@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz" - }, - "is-path-cwd": { - "version": "1.0.0", - "from": "is-path-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" - }, - "is-path-in-cwd": { - "version": "1.0.0", - "from": "is-path-in-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz" - }, - "is-path-inside": { - "version": "1.0.0", - "from": "is-path-inside@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" - }, - "is-plain-obj": { - "version": "1.1.0", - "from": "is-plain-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - }, - "is-posix-bracket": { - "version": "0.1.1", - "from": "is-posix-bracket@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz" - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" - }, - "is-promise": { - "version": "2.1.0", - "from": "is-promise@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, - "is-regex": { - "version": "1.0.3", - "from": "is-regex@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.3.tgz" - }, - "is-regexp": { - "version": "1.0.0", - "from": "is-regexp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" - }, - "is-relative": { - "version": "0.1.3", - "from": "is-relative@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" - }, - "is-resolvable": { - "version": "1.0.0", - "from": "is-resolvable@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" - }, - "is-stream": { - "version": "1.1.0", - "from": "is-stream@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" - }, - "is-subset": { - "version": "0.1.1", - "from": "is-subset@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz" - }, - "is-supported-regexp-flag": { - "version": "1.0.0", - "from": "is-supported-regexp-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz" - }, - "is-svg": { - "version": "2.0.0", - "from": "is-svg@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.0.0.tgz" - }, - "is-symbol": { - "version": "1.0.1", - "from": "is-symbol@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz" - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "is-utf8": { - "version": "0.2.1", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "isexe": { - "version": "1.1.2", - "from": "isexe@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" - }, - "isobject": { - "version": "2.1.0", - "from": "isobject@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "from": "isomorphic-fetch@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "istanbul": { - "version": "1.0.0-alpha.2", - "from": "istanbul@1.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-1.0.0-alpha.2.tgz" - }, - "istanbul-api": { - "version": "1.0.0-alpha.13", - "from": "istanbul-api@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.0.0-alpha.13.tgz" - }, - "istanbul-lib-coverage": { - "version": "1.0.0-alpha.4", - "from": "istanbul-lib-coverage@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0-alpha.4.tgz" - }, - "istanbul-lib-hook": { - "version": "1.0.0-alpha.4", - "from": "istanbul-lib-hook@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0-alpha.4.tgz" - }, - "istanbul-lib-instrument": { - "version": "1.0.0-alpha.6", - "from": "istanbul-lib-instrument@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.0.0-alpha.6.tgz" - }, - "istanbul-lib-report": { - "version": "1.0.0-alpha.3", - "from": "istanbul-lib-report@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.0.0-alpha.3.tgz", - "dependencies": { - "glob": { - "version": "7.0.3", - "from": "glob@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" - }, - "rimraf": { - "version": "2.5.2", - "from": "rimraf@>=2.4.3 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" - }, - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.0.0-alpha.10", - "from": "istanbul-lib-source-maps@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.0.0-alpha.10.tgz", - "dependencies": { - "glob": { - "version": "7.0.3", - "from": "glob@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" - }, - "rimraf": { - "version": "2.5.2", - "from": "rimraf@>=2.4.4 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" - } - } - }, - "istanbul-reports": { - "version": "1.0.0-alpha.4", - "from": "istanbul-reports@>=1.0.0-alpha <2.0.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.0.0-alpha.4.tgz" - }, - "jade": { - "version": "0.26.3", - "from": "jade@0.26.3", - "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "dependencies": { - "commander": { - "version": "0.6.1", - "from": "commander@0.6.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz" - }, - "mkdirp": { - "version": "0.3.0", - "from": "mkdirp@0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" - } - } - }, - "jju": { - "version": "1.3.0", - "from": "jju@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz" - }, - "jmespath": { - "version": "0.15.0", - "from": "jmespath@0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "jquery": { - "version": "3.0.0", - "from": "jquery@>=1.4.3", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.0.0.tgz" - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" - }, - "js-tokens": { - "version": "1.0.3", - "from": "js-tokens@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.3.tgz" - }, - "js-yaml": { - "version": "3.6.0", - "from": "js-yaml@>=3.6.0 <3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.0.tgz" - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "jsdom": { - "version": "8.4.1", - "from": "jsdom@8.4.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.4.1.tgz", - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "from": "webidl-conversions@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - } - } - }, - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - }, - "json-loader": { - "version": "0.5.4", - "from": "json-loader@0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz" - }, - "json-parse-helpfulerror": { - "version": "1.0.3", - "from": "json-parse-helpfulerror@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz" - }, - "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "json-stable-stringify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" - }, - "jsonfilter": { - "version": "1.1.2", - "from": "jsonfilter@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsonfilter/-/jsonfilter-1.1.2.tgz", - "dependencies": { - "stream-combiner": { - "version": "0.2.2", - "from": "stream-combiner@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz" - } - } - }, - "jsonify": { - "version": "0.0.0", - "from": "jsonify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - }, - "jsonparse": { - "version": "0.0.5", - "from": "jsonparse@0.0.5", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.5.tgz" - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "JSONStream": { - "version": "0.8.4", - "from": "JSONStream@>=0.8.4 <0.9.0", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz" - }, - "jsprim": { - "version": "1.2.2", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" - }, - "keycode": { - "version": "2.1.2", - "from": "keycode@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.2.tgz" - }, - "kind-of": { - "version": "3.0.2", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz" - }, - "lazy-cache": { - "version": "1.0.4", - "from": "lazy-cache@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz" - }, - "lcid": { - "version": "1.0.0", - "from": "lcid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" - }, - "ldjson-stream": { - "version": "1.2.1", - "from": "ldjson-stream@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz" - }, - "levn": { - "version": "0.3.0", - "from": "levn@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - }, - "liftoff": { - "version": "0.12.1", - "from": "liftoff@>=0.12.1 <0.13.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-0.12.1.tgz", - "dependencies": { - "extend": { - "version": "1.3.0", - "from": "extend@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-1.3.0.tgz" - }, - "minimist": { - "version": "0.2.0", - "from": "minimist@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.2.0.tgz" - } - } - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "loader-utils": { - "version": "0.2.14", - "from": "loader-utils@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.14.tgz", - "dependencies": { - "json5": { - "version": "0.5.0", - "from": "json5@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz" - } - } - }, - "lodash": { - "version": "4.11.2", - "from": "lodash@4.11.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.11.2.tgz" - }, - "lodash-es": { - "version": "4.11.2", - "from": "lodash-es@>=4.2.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.11.2.tgz" - }, - "lodash._arrayeach": { - "version": "3.0.0", - "from": "lodash._arrayeach@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" - }, - "lodash._baseassign": { - "version": "3.2.0", - "from": "lodash._baseassign@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "lodash._basecallback": { - "version": "3.3.1", - "from": "lodash._basecallback@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz" - }, - "lodash._baseclone": { - "version": "4.5.7", - "from": "lodash._baseclone@>=4.5.0 <4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz" - }, - "lodash._basecopy": { - "version": "3.0.1", - "from": "lodash._basecopy@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" - }, - "lodash._baseeach": { - "version": "3.0.4", - "from": "lodash._baseeach@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz", - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "lodash._basefor": { - "version": "3.0.3", - "from": "lodash._basefor@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz" - }, - "lodash._baseindexof": { - "version": "3.1.0", - "from": "lodash._baseindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" - }, - "lodash._baseisequal": { - "version": "3.0.7", - "from": "lodash._baseisequal@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz", - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "lodash._baseiteratee": { - "version": "4.6.1", - "from": "lodash._baseiteratee@>=4.6.0 <4.7.0", - "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.6.1.tgz" - }, - "lodash._baseuniq": { - "version": "3.0.3", - "from": "lodash._baseuniq@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz" - }, - "lodash._bindcallback": { - "version": "3.0.1", - "from": "lodash._bindcallback@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "from": "lodash._cacheindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" - }, - "lodash._createassigner": { - "version": "3.1.1", - "from": "lodash._createassigner@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" - }, - "lodash._createcache": { - "version": "3.1.2", - "from": "lodash._createcache@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz" - }, - "lodash._createcompounder": { - "version": "3.0.0", - "from": "lodash._createcompounder@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz" - }, - "lodash._getnative": { - "version": "3.9.1", - "from": "lodash._getnative@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" - }, - "lodash._keyprefix": { - "version": "2.4.2", - "from": "lodash._keyprefix@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash._keyprefix/-/lodash._keyprefix-2.4.2.tgz" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "from": "lodash._reinterpolate@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" - }, - "lodash._root": { - "version": "3.0.1", - "from": "lodash._root@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" - }, - "lodash._stringtopath": { - "version": "4.7.1", - "from": "lodash._stringtopath@>=4.7.0 <4.8.0", - "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.7.1.tgz" - }, - "lodash.assign": { - "version": "4.0.8", - "from": "lodash.assign@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.8.tgz" - }, - "lodash.assigninwith": { - "version": "4.0.6", - "from": "lodash.assigninwith@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.assigninwith/-/lodash.assigninwith-4.0.6.tgz" - }, - "lodash.camelcase": { - "version": "3.0.1", - "from": "lodash.camelcase@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz" - }, - "lodash.debounce": { - "version": "4.0.6", - "from": "lodash.debounce@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.6.tgz" - }, - "lodash.deburr": { - "version": "3.2.0", - "from": "lodash.deburr@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz" - }, - "lodash.escape": { - "version": "4.0.0", - "from": "lodash.escape@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.0.tgz" - }, - "lodash.foreach": { - "version": "3.0.3", - "from": "lodash.foreach@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-3.0.3.tgz" - }, - "lodash.isarguments": { - "version": "3.0.8", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.8.tgz" - }, - "lodash.isarray": { - "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - }, - "lodash.isfunction": { - "version": "2.4.1", - "from": "lodash.isfunction@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz" - }, - "lodash.isplainobject": { - "version": "4.0.4", - "from": "lodash.isplainobject@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.4.tgz" - }, - "lodash.istypedarray": { - "version": "3.0.6", - "from": "lodash.istypedarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz" - }, - "lodash.keys": { - "version": "4.0.6", - "from": "lodash.keys@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.6.tgz" - }, - "lodash.keysin": { - "version": "4.1.3", - "from": "lodash.keysin@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.1.3.tgz" - }, - "lodash.memoize": { - "version": "2.4.1", - "from": "lodash.memoize@>=2.4.1 <3.0.0", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-2.4.1.tgz" - }, - "lodash.merge": { - "version": "4.4.0", - "from": "lodash.merge@>=4.3.5 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.4.0.tgz" - }, - "lodash.pairs": { - "version": "3.0.1", - "from": "lodash.pairs@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.pairs/-/lodash.pairs-3.0.1.tgz", - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "lodash.pickby": { - "version": "4.3.0", - "from": "lodash.pickby@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.3.0.tgz" - }, - "lodash.rest": { - "version": "4.0.2", - "from": "lodash.rest@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.2.tgz" - }, - "lodash.restparam": { - "version": "3.6.1", - "from": "lodash.restparam@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" - }, - "lodash.template": { - "version": "4.2.4", - "from": "lodash.template@>=4.2.4 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.2.4.tgz" - }, - "lodash.templatesettings": { - "version": "4.0.1", - "from": "lodash.templatesettings@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.0.1.tgz" - }, - "lodash.throttle": { - "version": "4.0.1", - "from": "lodash.throttle@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - }, - "lodash.uniq": { - "version": "3.2.2", - "from": "lodash.uniq@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-3.2.2.tgz" - }, - "lodash.words": { - "version": "3.2.0", - "from": "lodash.words@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz" - }, - "log-symbols": { - "version": "1.0.2", - "from": "log-symbols@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz" - }, - "lolex": { - "version": "1.3.2", - "from": "lolex@1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz" - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" - }, - "loose-envify": { - "version": "1.1.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz" - }, - "lost": { - "version": "6.7.2", - "from": "lost@6.7.2", - "resolved": "https://registry.npmjs.org/lost/-/lost-6.7.2.tgz", - "dependencies": { - "object-assign": { - "version": "2.0.0", - "from": "object-assign@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz" - } - } - }, - "loud-rejection": { - "version": "1.3.0", - "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.3.0.tgz" - }, - "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" - }, - "map-obj": { - "version": "1.0.1", - "from": "map-obj@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - }, - "map-stream": { - "version": "0.1.0", - "from": "map-stream@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" - }, - "marked": { - "version": "0.3.5", - "from": "marked@0.3.5", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" - }, - "material-ui": { - "version": "0.15.0", - "from": "material-ui@0.15.0", - "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.15.0.tgz" - }, - "md5": { - "version": "2.1.0", - "from": "md5@latest", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.1.0.tgz" - }, - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "memory-fs": { - "version": "0.3.0", - "from": "memory-fs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz" - }, - "meow": { - "version": "3.7.0", - "from": "meow@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" - }, - "merge-descriptors": { - "version": "1.0.1", - "from": "merge-descriptors@1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - }, - "methods": { - "version": "1.1.2", - "from": "methods@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - }, - "micromatch": { - "version": "2.3.8", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.8.tgz", - "dependencies": { - "normalize-path": { - "version": "2.0.1", - "from": "normalize-path@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" - } - } - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "mime-db": { - "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" - }, - "mime-types": { - "version": "2.1.11", - "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" - }, - "min-document": { - "version": "2.18.0", - "from": "min-document@>=2.6.1 <3.0.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.18.0.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" - }, - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "mocha": { - "version": "2.4.5", - "from": "mocha@2.4.5", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.4.5.tgz", - "dependencies": { - "commander": { - "version": "2.3.0", - "from": "commander@2.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.2", - "from": "escape-string-regexp@1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz" - }, - "glob": { - "version": "3.2.3", - "from": "glob@3.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz" - }, - "graceful-fs": { - "version": "2.0.3", - "from": "graceful-fs@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - }, - "supports-color": { - "version": "1.2.0", - "from": "supports-color@1.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz" - } - } - }, - "mocha-lcov-reporter": { - "version": "1.2.0", - "from": "mocha-lcov-reporter@1.2.0", - "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.2.0.tgz" - }, - "moment": { - "version": "2.13.0", - "from": "moment@2.13.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "multimatch": { - "version": "2.1.0", - "from": "multimatch@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - } - } - }, - "mute-stream": { - "version": "0.0.5", - "from": "mute-stream@0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" - }, - "nan": { - "version": "2.3.2", - "from": "nan@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.2.tgz" - }, - "negotiator": { - "version": "0.6.0", - "from": "negotiator@0.6.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.0.tgz" - }, - "node-fetch": { - "version": "1.5.1", - "from": "node-fetch@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.5.1.tgz" - }, - "node-libs-browser": { - "version": "0.5.3", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process": { - "version": "0.11.2", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@>=1.4.7 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "nodegit-promise": { - "version": "4.0.0", - "from": "nodegit-promise@>=4.0.0 <4.1.0", - "resolved": "https://registry.npmjs.org/nodegit-promise/-/nodegit-promise-4.0.0.tgz" - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - }, - "normalize-package-data": { - "version": "2.3.5", - "from": "normalize-package-data@>=2.3.2 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" - }, - "normalize-path": { - "version": "1.0.0", - "from": "normalize-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz" - }, - "normalize-range": { - "version": "0.1.2", - "from": "normalize-range@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" - }, - "normalize-selector": { - "version": "0.2.0", - "from": "normalize-selector@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz" - }, - "normalize-url": { - "version": "1.5.0", - "from": "normalize-url@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.5.0.tgz" - }, - "normalize.css": { - "version": "4.1.1", - "from": "normalize.css@4.1.1", - "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-4.1.1.tgz" - }, - "normalizr": { - "version": "2.0.1", - "from": "normalizr@2.0.1", - "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-2.0.1.tgz" - }, - "npm": { - "version": "3.8.7", - "from": "npm@3.8.7", - "resolved": "https://registry.npmjs.org/npm/-/npm-3.8.7.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@>=1.0.7 <1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansicolors": { - "version": "0.3.2", - "from": "ansicolors@>=0.3.2 <0.4.0", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" - }, - "ansistyles": { - "version": "0.1.3", - "from": "ansistyles@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz" - }, - "aproba": { - "version": "1.0.1", - "from": "aproba@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.1.tgz" - }, - "archy": { - "version": "1.0.0", - "from": "archy@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" - }, - "chownr": { - "version": "1.0.1", - "from": "chownr@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" - }, - "cmd-shim": { - "version": "2.0.2", - "from": "cmd-shim@2.0.2", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz" - }, - "columnify": { - "version": "1.5.4", - "from": "columnify@1.5.4", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.5.4.tgz", - "dependencies": { - "wcwidth": { - "version": "1.0.0", - "from": "wcwidth@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.0.tgz", - "dependencies": { - "defaults": { - "version": "1.0.3", - "from": "defaults@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "dependencies": { - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - } - } - } - } - } - } - }, - "config-chain": { - "version": "1.1.10", - "from": "config-chain@1.1.10", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz", - "dependencies": { - "proto-list": { - "version": "1.2.4", - "from": "proto-list@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" - } - } - }, - "debuglog": { - "version": "1.0.1", - "from": "debuglog@1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" - }, - "dezalgo": { - "version": "1.0.3", - "from": "dezalgo@>=1.0.3 <1.1.0", - "dependencies": { - "asap": { - "version": "2.0.3", - "from": "asap@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" - } - } - }, - "editor": { - "version": "1.0.0", - "from": "editor@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz" - }, - "fs-vacuum": { - "version": "1.2.7", - "from": "fs-vacuum@>=1.2.7 <1.3.0", - "resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.7.tgz" - }, - "fs-write-stream-atomic": { - "version": "1.0.8", - "from": "fs-write-stream-atomic@1.0.8" - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@>=1.0.8 <1.1.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" - }, - "fstream-npm": { - "version": "1.0.7", - "from": "fstream-npm@>=1.0.7 <1.1.0", - "dependencies": { - "fstream-ignore": { - "version": "1.0.3", - "from": "fstream-ignore@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.2", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - } - } - } - } - }, - "glob": { - "version": "7.0.3", - "from": "glob@7.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - }, - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - }, - "has-unicode": { - "version": "2.0.0", - "from": "has-unicode@2.0.0", - "resolved": "file:../has-unicode" - }, - "hosted-git-info": { - "version": "2.1.4", - "from": "hosted-git-info@>=2.1.4 <2.2.0" - }, - "iferr": { - "version": "0.1.5", - "from": "iferr@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" - }, - "imurmurhash": { - "version": "0.1.4", - "from": "imurmurhash@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - }, - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <1.1.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@>=1.3.4 <1.4.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, - "init-package-json": { - "version": "1.9.3", - "from": "init-package-json@>=1.9.3 <1.10.0", - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1" - } - } - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0" - } - } - }, - "promzard": { - "version": "0.3.0", - "from": "promzard@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz" - } - } - }, - "lockfile": { - "version": "1.0.1", - "from": "lockfile@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz" - }, - "lodash._baseindexof": { - "version": "3.1.0", - "from": "lodash._baseindexof@3.1.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" - }, - "lodash._baseuniq": { - "version": "4.5.1", - "from": "lodash._baseuniq@4.5.1", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.5.1.tgz", - "dependencies": { - "lodash._createset": { - "version": "4.0.1", - "from": "lodash._createset@>=4.0.0 <4.1.0", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.1.tgz" - }, - "lodash._setcache": { - "version": "4.1.1", - "from": "lodash._setcache@>=4.1.0 <4.2.0", - "resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.1.tgz" - } - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "from": "lodash._bindcallback@3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "from": "lodash._cacheindexof@3.0.2", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" - }, - "lodash._createcache": { - "version": "3.1.2", - "from": "lodash._createcache@3.1.2", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz" - }, - "lodash._getnative": { - "version": "3.9.1", - "from": "lodash._getnative@3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" - }, - "lodash.clonedeep": { - "version": "4.3.2", - "from": "lodash.clonedeep@4.3.2", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.3.2.tgz", - "dependencies": { - "lodash._baseclone": { - "version": "4.5.3", - "from": "lodash._baseclone@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.3.tgz" - } - } - }, - "lodash.isarray": { - "version": "4.0.0", - "from": "lodash.isarray@latest", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-4.0.0.tgz" - }, - "lodash.keys": { - "version": "4.0.6", - "from": "lodash.keys@>=4.0.5 <4.1.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.6.tgz" - }, - "lodash.restparam": { - "version": "3.6.1", - "from": "lodash.restparam@3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" - }, - "lodash.union": { - "version": "4.2.1", - "from": "lodash.union@4.2.1", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.2.1.tgz", - "dependencies": { - "lodash._baseflatten": { - "version": "4.1.1", - "from": "lodash._baseflatten@>=4.1.0 <4.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-4.1.1.tgz" - }, - "lodash.rest": { - "version": "4.0.1", - "from": "lodash.rest@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.1.tgz" - } - } - }, - "lodash.uniq": { - "version": "4.2.1", - "from": "lodash.uniq@4.2.1", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.2.1.tgz" - }, - "lodash.without": { - "version": "4.1.2", - "from": "lodash.without@4.1.2", - "resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.1.2.tgz", - "dependencies": { - "lodash._basedifference": { - "version": "4.4.1", - "from": "lodash._basedifference@>=4.4.0 <4.5.0", - "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-4.4.1.tgz", - "dependencies": { - "lodash._setcache": { - "version": "4.1.1", - "from": "lodash._setcache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash._setcache/-/lodash._setcache-4.1.1.tgz" - } - } - }, - "lodash.rest": { - "version": "4.0.1", - "from": "lodash.rest@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.1.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "node-gyp": { - "version": "3.3.1", - "from": "node-gyp@3.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz", - "dependencies": { - "glob": { - "version": "4.5.3", - "from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "dependencies": { - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - } - } - }, - "minimatch": { - "version": "1.0.0", - "from": "minimatch@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "dependencies": { - "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "path-array": { - "version": "1.0.1", - "from": "path-array@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz", - "dependencies": { - "array-index": { - "version": "1.0.0", - "from": "array-index@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz", - "dependencies": { - "debug": { - "version": "2.2.0", - "from": "debug@*", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "es6-symbol": { - "version": "3.0.2", - "from": "es6-symbol@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.2.tgz", - "dependencies": { - "d": { - "version": "0.1.1", - "from": "d@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" - }, - "es5-ext": { - "version": "0.10.11", - "from": "es5-ext@>=0.10.10 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz", - "dependencies": { - "es6-iterator": { - "version": "2.0.0", - "from": "es6-iterator@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" - } - } - } - } - } - } - } - } - } - } - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=3.0.6 <3.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - }, - "normalize-git-url": { - "version": "3.0.1", - "from": "normalize-git-url@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/normalize-git-url/-/normalize-git-url-3.0.1.tgz" - }, - "normalize-package-data": { - "version": "2.3.5", - "from": "normalize-package-data@>=2.3.5 <2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "dependencies": { - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "dependencies": { - "builtin-modules": { - "version": "1.1.1", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - } - } - } - } - }, - "npm-cache-filename": { - "version": "1.0.2", - "from": "npm-cache-filename@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz" - }, - "npm-install-checks": { - "version": "3.0.0", - "from": "npm-install-checks@3.0.0" - }, - "npm-package-arg": { - "version": "4.1.0", - "from": "npm-package-arg@>=4.1.0 <4.2.0" - }, - "npm-registry-client": { - "version": "7.1.0", - "from": "npm-registry-client@latest", - "dependencies": { - "concat-stream": { - "version": "1.5.1", - "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", - "dependencies": { - "typedarray": { - "version": "0.0.6", - "from": "typedarray@>=0.0.5 <0.1.0", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - } - } - }, - "retry": { - "version": "0.8.0", - "from": "retry@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.8.0.tgz" - } - } - }, - "npm-user-validate": { - "version": "0.1.2", - "from": "npm-user-validate@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-0.1.2.tgz" - }, - "npmlog": { - "version": "2.0.3", - "from": "npmlog@>=2.0.2 <2.1.0", - "dependencies": { - "ansi": { - "version": "0.3.1", - "from": "ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" - }, - "are-we-there-yet": { - "version": "1.1.2", - "from": "are-we-there-yet@>=1.1.2 <1.2.0", - "dependencies": { - "delegates": { - "version": "1.0.0", - "from": "delegates@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - } - } - }, - "gauge": { - "version": "1.2.7", - "from": "gauge@>=1.2.5 <1.3.0", - "dependencies": { - "lodash.pad": { - "version": "4.1.0", - "from": "lodash.pad@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - } - } - }, - "lodash.padend": { - "version": "4.2.0", - "from": "lodash.padend@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@>=4.0.0 <5.0.0" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@>=4.0.0 <5.0.0" - } - } - }, - "lodash.padstart": { - "version": "4.2.0", - "from": "lodash.padstart@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@>=4.0.0 <5.0.0" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@>=4.0.0 <5.0.0" - } - } - } - } - } - } - }, - "once": { - "version": "1.3.3", - "from": "once@>=1.3.3 <1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "opener": { - "version": "1.4.1", - "from": "opener@>=1.4.1 <1.5.0", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.1.tgz" - }, - "osenv": { - "version": "0.1.3", - "from": "osenv@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", - "dependencies": { - "os-homedir": { - "version": "1.0.1", - "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" - }, - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - } - } - }, - "path-is-inside": { - "version": "1.0.1", - "from": "path-is-inside@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" - }, - "read": { - "version": "1.0.7", - "from": "read@>=1.0.7 <1.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "dependencies": { - "mute-stream": { - "version": "0.0.5", - "from": "mute-stream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" - } - } - }, - "read-cmd-shim": { - "version": "1.0.1", - "from": "read-cmd-shim@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz" - }, - "read-installed": { - "version": "4.0.3", - "from": "read-installed@>=4.0.3 <4.1.0", - "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", - "dependencies": { - "util-extend": { - "version": "1.0.3", - "from": "util-extend@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz" - } - } - }, - "read-package-json": { - "version": "2.0.3", - "from": "read-package-json@2.0.3", - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "glob@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1" - } - } - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0" - } - } - }, - "json-parse-helpfulerror": { - "version": "1.0.3", - "from": "json-parse-helpfulerror@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "dependencies": { - "jju": { - "version": "1.2.1", - "from": "jju@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.2.1.tgz" - } - } - } - } - }, - "read-package-tree": { - "version": "5.1.2", - "from": "read-package-tree@>=5.1.2 <5.2.0", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.2.tgz" - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "version": "1.0.6", - "from": "process-nextick-args@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - }, - "readdir-scoped-modules": { - "version": "1.0.2", - "from": "readdir-scoped-modules@1.0.2", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz" - }, - "realize-package-specifier": { - "version": "3.0.1", - "from": "realize-package-specifier@>=3.0.1 <3.1.0" - }, - "request": { - "version": "2.70.0", - "from": "request@latest", - "resolved": "https://registry.npmjs.org/request/-/request-2.70.0.tgz", - "dependencies": { - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.3.2", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "from": "pseudomap@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - }, - "yallist": { - "version": "2.0.0", - "from": "yallist@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" - } - } - } - } - }, - "bl": { - "version": "1.1.2", - "from": "bl@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc3 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", - "dependencies": { - "async": { - "version": "1.5.2", - "from": "async@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - } - } - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.2 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "dependencies": { - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.8.1 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "dependencies": { - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - }, - "is-my-json-valid": { - "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", - "dependencies": { - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dependencies": { - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - } - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - } - } - }, - "pinkie-promise": { - "version": "2.0.0", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", - "dependencies": { - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - } - } - } - } - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "dependencies": { - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "jsprim": { - "version": "1.2.2", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", - "dependencies": { - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - } - } - }, - "sshpk": { - "version": "1.7.4", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz", - "dependencies": { - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "dashdash": { - "version": "1.13.0", - "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.0.1 <1.0.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "tweetnacl": { - "version": "0.14.3", - "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.10", - "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", - "dependencies": { - "mime-db": { - "version": "1.22.0", - "from": "mime-db@>=1.22.0 <1.23.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@>=1.4.7 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "oauth-sign": { - "version": "0.8.1", - "from": "oauth-sign@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" - }, - "qs": { - "version": "6.1.0", - "from": "qs@>=6.1.0 <6.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "tough-cookie": { - "version": "2.2.2", - "from": "tough-cookie@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "tunnel-agent": { - "version": "0.4.2", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" - } - } - }, - "retry": { - "version": "0.9.0", - "from": "retry@latest", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.9.0.tgz" - }, - "rimraf": { - "version": "2.5.2", - "from": "rimraf@>=2.5.1 <2.6.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" - }, - "semver": { - "version": "5.1.0", - "from": "semver@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" - }, - "sha": { - "version": "2.0.1", - "from": "sha@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz" - }, - "slide": { - "version": "1.1.6", - "from": "slide@>=1.1.6 <1.2.0", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" - }, - "sorted-object": { - "version": "2.0.0", - "from": "sorted-object@latest", - "resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.0.tgz" - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@*", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "tar": { - "version": "2.2.1", - "from": "tar@>=2.2.1 <2.3.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - } - } - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, - "uid-number": { - "version": "0.0.6", - "from": "uid-number@0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" - }, - "umask": { - "version": "1.1.0", - "from": "umask@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz" - }, - "unique-filename": { - "version": "1.1.0", - "from": "unique-filename@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "dependencies": { - "unique-slug": { - "version": "2.0.0", - "from": "unique-slug@>=2.0.0 <3.0.0" - } - } - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "dependencies": { - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "dependencies": { - "spdx-license-ids": { - "version": "1.2.0", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.0.tgz" - } - } - }, - "spdx-expression-parse": { - "version": "1.0.2", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz", - "dependencies": { - "spdx-exceptions": { - "version": "1.0.4", - "from": "spdx-exceptions@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz" - }, - "spdx-license-ids": { - "version": "1.2.0", - "from": "spdx-license-ids@>=1.0.0 <2.0.0" - } - } - } - } - }, - "validate-npm-package-name": { - "version": "2.2.2", - "from": "validate-npm-package-name@>=2.2.2 <2.3.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-2.2.2.tgz", - "dependencies": { - "builtins": { - "version": "0.0.7", - "from": "builtins@0.0.7", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-0.0.7.tgz" - } - } - }, - "which": { - "version": "1.2.4", - "from": "which@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz", - "dependencies": { - "is-absolute": { - "version": "0.1.7", - "from": "is-absolute@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "dependencies": { - "is-relative": { - "version": "0.1.3", - "from": "is-relative@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" - } - } - }, - "isexe": { - "version": "1.1.1", - "from": "isexe@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.1.tgz" - } - } - }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, - "write-file-atomic": { - "version": "1.1.4", - "from": "write-file-atomic@>=1.1.4 <2.0.0" - } - } - }, - "npm-run-all": { - "version": "1.8.0", - "from": "npm-run-all@1.8.0", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-1.8.0.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - } - } - }, - "nprogress": { - "version": "0.2.0", - "from": "nprogress@0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" - }, - "nth-check": { - "version": "1.0.1", - "from": "nth-check@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz" - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - }, - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - }, - "numeral": { - "version": "1.5.3", - "from": "numeral@1.5.3", - "resolved": "https://registry.npmjs.org/numeral/-/numeral-1.5.3.tgz" - }, - "nwmatcher": { - "version": "1.3.7", - "from": "nwmatcher@>=1.3.7 <2.0.0", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.7.tgz" - }, - "oauth-sign": { - "version": "0.8.1", - "from": "oauth-sign@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" - }, - "object-assign": { - "version": "4.1.0", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" - }, - "object-keys": { - "version": "1.0.9", - "from": "object-keys@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.9.tgz" - }, - "object.assign": { - "version": "4.0.3", - "from": "object.assign@>=4.0.3 <5.0.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.3.tgz" - }, - "object.omit": { - "version": "2.0.0", - "from": "object.omit@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz" - }, - "object.values": { - "version": "1.0.3", - "from": "object.values@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.3.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "on-headers": { - "version": "1.0.1", - "from": "on-headers@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" - }, - "once": { - "version": "1.3.3", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "onecolor": { - "version": "2.4.2", - "from": "onecolor@>=2.4.0 <2.5.0", - "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-2.4.2.tgz" - }, - "onetime": { - "version": "1.1.0", - "from": "onetime@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } - } - }, - "optionator": { - "version": "0.8.1", - "from": "optionator@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.1.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "os-homedir": { - "version": "1.0.1", - "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" - }, - "os-locale": { - "version": "1.4.0", - "from": "os-locale@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" - }, - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, - "pako": { - "version": "0.2.8", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" - }, - "parse5": { - "version": "1.5.1", - "from": "parse5@>=1.5.1 <2.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz" - }, - "parseurl": { - "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "path-exists": { - "version": "1.0.0", - "from": "path-exists@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "path-is-inside": { - "version": "1.0.1", - "from": "path-is-inside@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" - }, - "path-parse": { - "version": "1.0.5", - "from": "path-parse@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" - }, - "path-to-regexp": { - "version": "0.1.7", - "from": "path-to-regexp@0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "pause-stream": { - "version": "0.0.11", - "from": "pause-stream@0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" - }, - "pbkdf2-compat": { - "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - }, - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - }, - "pipetteur": { - "version": "2.0.2", - "from": "pipetteur@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pipetteur/-/pipetteur-2.0.2.tgz", - "dependencies": { - "onecolor": { - "version": "3.0.1", - "from": "onecolor@3.0.1", - "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-3.0.1.tgz" - } - } - }, - "pixrem": { - "version": "3.0.0", - "from": "pixrem@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-3.0.0.tgz" - }, - "pleeease-filters": { - "version": "3.0.0", - "from": "pleeease-filters@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-3.0.0.tgz" - }, - "plur": { - "version": "2.1.2", - "from": "plur@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz" - }, - "pluralize": { - "version": "1.2.1", - "from": "pluralize@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz" - }, - "postcss": { - "version": "5.0.21", - "from": "postcss@>=5.0.6 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.21.tgz", - "dependencies": { - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" - } - } - }, - "postcss-calc": { - "version": "5.2.1", - "from": "postcss-calc@5.2.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.2.1.tgz" - }, - "postcss-color-function": { - "version": "2.0.1", - "from": "postcss-color-function@2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-2.0.1.tgz" - }, - "postcss-color-gray": { - "version": "3.0.0", - "from": "postcss-color-gray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-3.0.0.tgz", - "dependencies": { - "color": { - "version": "0.7.3", - "from": "color@>=0.7.3 <0.8.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.7.3.tgz" - }, - "color-name": { - "version": "1.0.1", - "from": "color-name@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.0.1.tgz" - }, - "color-string": { - "version": "0.2.4", - "from": "color-string@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.2.4.tgz" - } - } - }, - "postcss-color-hex-alpha": { - "version": "2.0.0", - "from": "postcss-color-hex-alpha@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz", - "dependencies": { - "color": { - "version": "0.10.1", - "from": "color@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz" - } - } - }, - "postcss-color-hwb": { - "version": "2.0.0", - "from": "postcss-color-hwb@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-2.0.0.tgz", - "dependencies": { - "color": { - "version": "0.10.1", - "from": "color@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz" - } - } - }, - "postcss-color-rebeccapurple": { - "version": "2.0.0", - "from": "postcss-color-rebeccapurple@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.0.tgz", - "dependencies": { - "color": { - "version": "0.9.0", - "from": "color@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.9.0.tgz" - } - } - }, - "postcss-color-rgba-fallback": { - "version": "2.2.0", - "from": "postcss-color-rgba-fallback@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz" - }, - "postcss-colormin": { - "version": "2.2.0", - "from": "postcss-colormin@>=2.1.8 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.0.tgz" - }, - "postcss-convert-values": { - "version": "2.3.4", - "from": "postcss-convert-values@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.3.4.tgz" - }, - "postcss-cssnext": { - "version": "2.5.2", - "from": "postcss-cssnext@2.5.2", - "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-2.5.2.tgz" - }, - "postcss-custom-media": { - "version": "5.0.1", - "from": "postcss-custom-media@5.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz" - }, - "postcss-custom-properties": { - "version": "5.0.1", - "from": "postcss-custom-properties@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-5.0.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - } - } - }, - "postcss-custom-selectors": { - "version": "3.0.0", - "from": "postcss-custom-selectors@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.1", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "from": "postcss-discard-comments@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz" - }, - "postcss-discard-duplicates": { - "version": "2.0.1", - "from": "postcss-discard-duplicates@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.1.tgz" - }, - "postcss-discard-empty": { - "version": "2.1.0", - "from": "postcss-discard-empty@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz" - }, - "postcss-discard-unused": { - "version": "2.2.1", - "from": "postcss-discard-unused@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.1.tgz" - }, - "postcss-each": { - "version": "0.9.1", - "from": "postcss-each@0.9.1", - "resolved": "https://registry.npmjs.org/postcss-each/-/postcss-each-0.9.1.tgz" - }, - "postcss-filter-plugins": { - "version": "2.0.0", - "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.0.tgz" - }, - "postcss-font-variant": { - "version": "2.0.0", - "from": "postcss-font-variant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-2.0.0.tgz" - }, - "postcss-import": { - "version": "8.1.0", - "from": "postcss-import@8.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-8.1.0.tgz", - "dependencies": { - "resolve": { - "version": "1.1.7", - "from": "resolve@>=1.1.7 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" - } - } - }, - "postcss-initial": { - "version": "1.5.1", - "from": "postcss-initial@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-1.5.1.tgz" - }, - "postcss-js": { - "version": "0.1.2", - "from": "postcss-js@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-0.1.2.tgz" - }, - "postcss-less": { - "version": "0.9.0", - "from": "postcss-less@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-0.9.0.tgz" - }, - "postcss-loader": { - "version": "0.8.2", - "from": "postcss-loader@0.8.2", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.2.tgz" - }, - "postcss-media-minmax": { - "version": "2.1.2", - "from": "postcss-media-minmax@2.1.2", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz" - }, - "postcss-merge-idents": { - "version": "2.1.5", - "from": "postcss-merge-idents@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.5.tgz" - }, - "postcss-merge-longhand": { - "version": "2.0.1", - "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz" - }, - "postcss-merge-rules": { - "version": "2.0.8", - "from": "postcss-merge-rules@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.8.tgz" - }, - "postcss-message-helpers": { - "version": "2.0.0", - "from": "postcss-message-helpers@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" - }, - "postcss-minify-font-values": { - "version": "1.0.4", - "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.4.tgz" - }, - "postcss-minify-gradients": { - "version": "1.0.1", - "from": "postcss-minify-gradients@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.1.tgz" - }, - "postcss-minify-params": { - "version": "1.0.4", - "from": "postcss-minify-params@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.0.4.tgz" - }, - "postcss-minify-selectors": { - "version": "2.0.4", - "from": "postcss-minify-selectors@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.0.4.tgz" - }, - "postcss-mixins": { - "version": "4.0.1", - "from": "postcss-mixins@4.0.1", - "resolved": "https://registry.npmjs.org/postcss-mixins/-/postcss-mixins-4.0.1.tgz" - }, - "postcss-modules-extract-imports": { - "version": "1.0.0", - "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0.tgz" - }, - "postcss-modules-local-by-default": { - "version": "1.0.1", - "from": "postcss-modules-local-by-default@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.1.tgz" - }, - "postcss-modules-parser": { - "version": "1.1.0", - "from": "postcss-modules-parser@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-parser/-/postcss-modules-parser-1.1.0.tgz" - }, - "postcss-modules-scope": { - "version": "1.0.0", - "from": "postcss-modules-scope@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0.tgz" - }, - "postcss-modules-values": { - "version": "1.1.2", - "from": "postcss-modules-values@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.1.2.tgz" - }, - "postcss-nested": { - "version": "1.0.0", - "from": "postcss-nested@1.0.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-1.0.0.tgz" - }, - "postcss-nesting": { - "version": "2.3.1", - "from": "postcss-nesting@>=2.0.5 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-2.3.1.tgz" - }, - "postcss-normalize-charset": { - "version": "1.1.0", - "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.0.tgz" - }, - "postcss-normalize-url": { - "version": "3.0.7", - "from": "postcss-normalize-url@>=3.0.7 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.7.tgz" - }, - "postcss-ordered-values": { - "version": "2.1.0", - "from": "postcss-ordered-values@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.1.0.tgz" - }, - "postcss-pseudo-class-any-link": { - "version": "1.0.0", - "from": "postcss-pseudo-class-any-link@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz" - }, - "postcss-pseudoelements": { - "version": "3.0.0", - "from": "postcss-pseudoelements@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz" - }, - "postcss-reduce-idents": { - "version": "2.3.0", - "from": "postcss-reduce-idents@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.3.0.tgz" - }, - "postcss-reduce-transforms": { - "version": "1.0.3", - "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.3.tgz" - }, - "postcss-reporter": { - "version": "1.3.3", - "from": "postcss-reporter@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-1.3.3.tgz" - }, - "postcss-resolve-nested-selector": { - "version": "0.1.1", - "from": "postcss-resolve-nested-selector@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz" - }, - "postcss-scss": { - "version": "0.1.7", - "from": "postcss-scss@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-0.1.7.tgz" - }, - "postcss-selector-matches": { - "version": "2.0.1", - "from": "postcss-selector-matches@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-2.0.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.1", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" - } - } - }, - "postcss-selector-not": { - "version": "2.0.0", - "from": "postcss-selector-not@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.1", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" - } - } - }, - "postcss-selector-parser": { - "version": "1.3.3", - "from": "postcss-selector-parser@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz" - }, - "postcss-simple-vars": { - "version": "1.2.0", - "from": "postcss-simple-vars@1.2.0", - "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-1.2.0.tgz" - }, - "postcss-svgo": { - "version": "2.1.3", - "from": "postcss-svgo@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.3.tgz" - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "from": "postcss-unique-selectors@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz" - }, - "postcss-value-parser": { - "version": "3.3.0", - "from": "postcss-value-parser@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" - }, - "postcss-zindex": { - "version": "2.1.1", - "from": "postcss-zindex@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.1.1.tgz" - }, - "prelude-ls": { - "version": "1.1.2", - "from": "prelude-ls@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - }, - "prepend-http": { - "version": "1.0.3", - "from": "prepend-http@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz" - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" - }, - "private": { - "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" - }, - "process": { - "version": "0.5.2", - "from": "process@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz" - }, - "process-nextick-args": { - "version": "1.0.6", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" - }, - "progress": { - "version": "1.1.8", - "from": "progress@>=1.1.8 <2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" - }, - "promise": { - "version": "7.1.1", - "from": "promise@>=7.1.1 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz" - }, - "promisify-node": { - "version": "0.4.0", - "from": "promisify-node@0.4.0", - "resolved": "https://registry.npmjs.org/promisify-node/-/promisify-node-0.4.0.tgz" - }, - "proxy-addr": { - "version": "1.0.10", - "from": "proxy-addr@>=1.0.10 <1.1.0", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz" - }, - "proxy-middleware": { - "version": "0.15.0", - "from": "proxy-middleware@0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz" - }, - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" - }, - "ps-tree": { - "version": "1.0.1", - "from": "ps-tree@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.0.1.tgz" - }, - "pseudomap": { - "version": "1.0.2", - "from": "pseudomap@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - }, - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - }, - "q": { - "version": "1.4.1", - "from": "q@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" - }, - "qs": { - "version": "6.1.0", - "from": "qs@6.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz" - }, - "query-string": { - "version": "4.1.0", - "from": "query-string@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.1.0.tgz" - }, - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "randomatic": { - "version": "1.1.5", - "from": "randomatic@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz" - }, - "range-parser": { - "version": "1.0.3", - "from": "range-parser@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" - }, - "raw-loader": { - "version": "0.5.1", - "from": "raw-loader@0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz" - }, - "rc-align": { - "version": "2.3.0", - "from": "rc-align@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.3.0.tgz" - }, - "rc-animate": { - "version": "2.0.4", - "from": "rc-animate@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.0.4.tgz" - }, - "rc-slider": { - "version": "3.7.0", - "from": "rc-slider@3.7.0", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-3.7.0.tgz" - }, - "rc-tooltip": { - "version": "3.3.2", - "from": "rc-tooltip@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.3.2.tgz" - }, - "rc-trigger": { - "version": "1.5.0", - "from": "rc-trigger@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-1.5.0.tgz" - }, - "rc-util": { - "version": "3.1.3", - "from": "rc-util@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-3.1.3.tgz" - }, - "react": { - "version": "15.1.0", - "from": "react@15.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-15.1.0.tgz" - }, - "react-addons-create-fragment": { - "version": "15.1.0", - "from": "react-addons-create-fragment@>=15.0.1 <16.0.0", - "resolved": "https://registry.npmjs.org/react-addons-create-fragment/-/react-addons-create-fragment-15.1.0.tgz" - }, - "react-addons-css-transition-group": { - "version": "15.0.2", - "from": "react-addons-css-transition-group@15.0.2", - "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.0.2.tgz" - }, - "react-addons-test-utils": { - "version": "15.0.2", - "from": "react-addons-test-utils@15.0.2", - "resolved": "https://registry.npmjs.org/react-addons-test-utils/-/react-addons-test-utils-15.0.2.tgz" - }, - "react-addons-transition-group": { - "version": "15.1.0", - "from": "react-addons-transition-group@>=15.0.1 <16.0.0", - "resolved": "https://registry.npmjs.org/react-addons-transition-group/-/react-addons-transition-group-15.1.0.tgz" - }, - "react-addons-update": { - "version": "15.1.0", - "from": "react-addons-update@>=15.0.1 <16.0.0", - "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.1.0.tgz" - }, - "react-cookie": { - "version": "0.4.5", - "from": "react-cookie@0.4.5", - "resolved": "https://registry.npmjs.org/react-cookie/-/react-cookie-0.4.5.tgz" - }, - "react-deep-force-update": { - "version": "1.0.1", - "from": "react-deep-force-update@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz" - }, - "react-dom": { - "version": "15.0.2", - "from": "react-dom@15.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.0.2.tgz" - }, - "react-dropzone": { - "version": "3.5.0", - "from": "react-dropzone@latest", - "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.5.0.tgz" - }, - "react-event-listener": { - "version": "0.1.2", - "from": "react-event-listener@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.1.2.tgz" - }, - "react-input-autosize": { - "version": "0.6.13", - "from": "react-input-autosize@>=0.6.10 <0.7.0", - "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-0.6.13.tgz" - }, - "react-lazy-cache": { - "version": "3.0.1", - "from": "react-lazy-cache@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz" - }, - "react-modal": { - "version": "1.2.1", - "from": "react-modal@1.2.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.2.1.tgz", - "dependencies": { - "lodash.assign": { - "version": "3.2.0", - "from": "lodash.assign@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz" - }, - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "react-notification": { - "version": "5.0.3", - "from": "react-notification@5.0.3", - "resolved": "https://registry.npmjs.org/react-notification/-/react-notification-5.0.3.tgz" - }, - "react-proxy": { - "version": "1.1.8", - "from": "react-proxy@>=1.1.7 <2.0.0", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz" - }, - "react-redux": { - "version": "4.4.5", - "from": "react-redux@4.4.5", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.5.tgz" - }, - "react-router": { - "version": "2.4.0", - "from": "react-router@2.4.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.4.0.tgz" - }, - "react-router-scroll": { - "version": "0.2.0", - "from": "react-router-scroll@latest", - "resolved": "https://registry.npmjs.org/react-router-scroll/-/react-router-scroll-0.2.0.tgz" - }, - "react-select": { - "version": "1.0.0-beta12", - "from": "react-select@1.0.0-beta12", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-1.0.0-beta12.tgz" - }, - "react-tap-event-plugin": { - "version": "1.0.0", - "from": "react-tap-event-plugin@1.0.0", - "resolved": "https://registry.npmjs.org/react-tap-event-plugin/-/react-tap-event-plugin-1.0.0.tgz", - "dependencies": { - "fbjs": { - "version": "0.2.1", - "from": "fbjs@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.2.1.tgz" - }, - "whatwg-fetch": { - "version": "0.9.0", - "from": "whatwg-fetch@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" - } - } - }, - "react-transform-catch-errors": { - "version": "1.0.2", - "from": "react-transform-catch-errors@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz" - }, - "react-transform-hmr": { - "version": "1.0.4", - "from": "react-transform-hmr@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz" - }, - "read-cache": { - "version": "1.0.0", - "from": "read-cache@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz" - }, - "read-file-stdin": { - "version": "0.2.1", - "from": "read-file-stdin@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz" - }, - "read-json-sync": { - "version": "1.1.1", - "from": "read-json-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.1.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - }, - "readdirp": { - "version": "2.0.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "readline2": { - "version": "1.0.1", - "from": "readline2@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz" - }, - "recompose": { - "version": "0.17.0", - "from": "recompose@>=0.17.0 <0.18.0", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.17.0.tgz" - }, - "redbox-react": { - "version": "1.2.3", - "from": "redbox-react@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.2.3.tgz" - }, - "redent": { - "version": "1.0.0", - "from": "redent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" - }, - "reduce-component": { - "version": "1.0.1", - "from": "reduce-component@1.0.1", - "resolved": "https://registry.npmjs.org/reduce-component/-/reduce-component-1.0.1.tgz" - }, - "reduce-css-calc": { - "version": "1.2.3", - "from": "reduce-css-calc@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.2.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - } - } - }, - "reduce-function-call": { - "version": "1.0.1", - "from": "reduce-function-call@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - } - } - }, - "reduce-reducers": { - "version": "0.1.2", - "from": "reduce-reducers@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/reduce-reducers/-/reduce-reducers-0.1.2.tgz" - }, - "redux": { - "version": "3.5.2", - "from": "redux@3.5.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.5.2.tgz" - }, - "redux-actions": { - "version": "0.9.1", - "from": "redux-actions@0.9.1", - "resolved": "https://registry.npmjs.org/redux-actions/-/redux-actions-0.9.1.tgz" - }, - "redux-devtools": { - "version": "3.2.0", - "from": "redux-devtools@3.2.0", - "resolved": "https://registry.npmjs.org/redux-devtools/-/redux-devtools-3.2.0.tgz" - }, - "redux-form": { - "version": "5.2.2", - "from": "redux-form@5.2.2", - "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-5.2.2.tgz" - }, - "redux-logger": { - "version": "2.6.1", - "from": "redux-logger@2.6.1", - "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.6.1.tgz" - }, - "redux-promise-middleware": { - "version": "3.0.0", - "from": "redux-promise-middleware@3.0.0", - "resolved": "https://registry.npmjs.org/redux-promise-middleware/-/redux-promise-middleware-3.0.0.tgz" - }, - "redux-thunk": { - "version": "2.0.1", - "from": "redux-thunk@2.0.1", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.0.1.tgz" - }, - "regenerate": { - "version": "1.2.1", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" - }, - "regex-cache": { - "version": "0.4.3", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" - }, - "regexpu-core": { - "version": "1.0.0", - "from": "regexpu-core@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz" - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" - }, - "repeat-string": { - "version": "1.5.4", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz" - }, - "repeating": { - "version": "1.1.3", - "from": "repeating@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz" - }, - "request": { - "version": "2.72.0", - "from": "request@>=2.42.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz" - }, - "require-from-string": { - "version": "1.1.0", - "from": "require-from-string@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.1.0.tgz" - }, - "require-uncached": { - "version": "1.0.2", - "from": "require-uncached@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz" - }, - "reselect": { - "version": "2.5.1", - "from": "reselect@latest", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-2.5.1.tgz" - }, - "resolve": { - "version": "0.7.4", - "from": "resolve@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.7.4.tgz" - }, - "resolve-from": { - "version": "1.0.1", - "from": "resolve-from@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz" - }, - "restore-cursor": { - "version": "1.0.1", - "from": "restore-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" - }, - "rgb": { - "version": "0.1.0", - "from": "rgb@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz" - }, - "rgb-hex": { - "version": "1.0.0", - "from": "rgb-hex@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-1.0.0.tgz" - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" - }, - "rimraf": { - "version": "2.1.4", - "from": "rimraf@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.1.4.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "ripemd160@0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "run-async": { - "version": "0.1.0", - "from": "run-async@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" - }, - "rx-lite": { - "version": "3.1.2", - "from": "rx-lite@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz" - }, - "samsam": { - "version": "1.1.2", - "from": "samsam@1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz" - }, - "sax": { - "version": "1.2.1", - "from": "sax@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" - }, - "scroll-behavior": { - "version": "0.7.0", - "from": "scroll-behavior@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/scroll-behavior/-/scroll-behavior-0.7.0.tgz" - }, - "seekout": { - "version": "1.0.2", - "from": "seekout@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/seekout/-/seekout-1.0.2.tgz" - }, - "semver": { - "version": "4.3.6", - "from": "semver@>=4.1.0 <5.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" - }, - "send": { - "version": "0.13.1", - "from": "send@0.13.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz" - }, - "serve-static": { - "version": "1.10.2", - "from": "serve-static@>=1.10.2 <1.11.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "sha.js@2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - }, - "shallowequal": { - "version": "0.2.2", - "from": "shallowequal@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", - "dependencies": { - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - } - } - }, - "shebang-regex": { - "version": "1.0.0", - "from": "shebang-regex@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - }, - "shell-quote": { - "version": "1.6.0", - "from": "shell-quote@>=1.4.3 <2.0.0", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.0.tgz" - }, - "shelljs": { - "version": "0.6.0", - "from": "shelljs@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - }, - "signal-exit": { - "version": "2.1.2", - "from": "signal-exit@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz" - }, - "simple-assign": { - "version": "0.1.0", - "from": "simple-assign@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz" - }, - "sinon": { - "version": "1.17.3", - "from": "sinon@1.17.3", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.3.tgz" - }, - "slash": { - "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - }, - "slice-ansi": { - "version": "0.0.4", - "from": "slice-ansi@0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "sort-keys": { - "version": "1.1.1", - "from": "sort-keys@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.1.tgz" - }, - "source-list-map": { - "version": "0.1.6", - "from": "source-list-map@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.6.tgz" - }, - "source-map": { - "version": "0.5.6", - "from": "source-map@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" - }, - "source-map-support": { - "version": "0.2.10", - "from": "source-map-support@>=0.2.10 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", - "dependencies": { - "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" - } - } - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" - }, - "spdx-exceptions": { - "version": "1.0.4", - "from": "spdx-exceptions@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz" - }, - "spdx-expression-parse": { - "version": "1.0.2", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" - }, - "spdx-license-ids": { - "version": "1.2.1", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.1.tgz" - }, - "specificity": { - "version": "0.1.5", - "from": "specificity@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.1.5.tgz" - }, - "split": { - "version": "0.3.3", - "from": "split@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz" - }, - "split2": { - "version": "0.2.1", - "from": "split2@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz" - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - }, - "sshpk": { - "version": "1.8.3", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "stackframe": { - "version": "0.3.1", - "from": "stackframe@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - }, - "stream-browserify": { - "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.1.14", - "from": "readable-stream@>=1.0.27-1 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - } - } - }, - "stream-combiner": { - "version": "0.0.4", - "from": "stream-combiner@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" - }, - "strict-uri-encode": { - "version": "1.1.0", - "from": "strict-uri-encode@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "string-width": { - "version": "1.0.1", - "from": "string-width@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.1.tgz" - }, - "string.prototype.padend": { - "version": "3.0.0", - "from": "string.prototype.padend@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - }, - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" - }, - "strip-indent": { - "version": "1.0.1", - "from": "strip-indent@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" - }, - "strip-json-comments": { - "version": "1.0.4", - "from": "strip-json-comments@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" - }, - "style-loader": { - "version": "0.13.1", - "from": "style-loader@0.13.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz" - }, - "stylehacks": { - "version": "2.3.0", - "from": "stylehacks@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-2.3.0.tgz" - }, - "stylelint": { - "version": "6.2.2", - "from": "stylelint@6.2.2", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-6.2.2.tgz", - "dependencies": { - "get-stdin": { - "version": "5.0.1", - "from": "get-stdin@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz" - }, - "resolve-from": { - "version": "2.0.0", - "from": "resolve-from@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz" - } - } - }, - "stylelint-config-standard": { - "version": "6.0.0", - "from": "stylelint-config-standard@6.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-6.0.0.tgz" - }, - "sugarss": { - "version": "0.1.3", - "from": "sugarss@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-0.1.3.tgz" - }, - "superagent": { - "version": "1.8.3", - "from": "superagent@1.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-1.8.3.tgz", - "dependencies": { - "form-data": { - "version": "1.0.0-rc3", - "from": "form-data@1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "qs": { - "version": "2.3.3", - "from": "qs@2.3.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" - }, - "readable-stream": { - "version": "1.0.27-1", - "from": "readable-stream@1.0.27-1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz" - } - } - }, - "superagent-promise": { - "version": "1.1.0", - "from": "superagent-promise@1.1.0", - "resolved": "https://registry.npmjs.org/superagent-promise/-/superagent-promise-1.1.0.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, - "svgo": { - "version": "0.6.6", - "from": "svgo@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz" - }, - "symbol-observable": { - "version": "0.2.4", - "from": "symbol-observable@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz" - }, - "symbol-tree": { - "version": "3.1.4", - "from": "symbol-tree@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" - }, - "synesthesia": { - "version": "1.0.1", - "from": "synesthesia@1.0.1", - "resolved": "https://registry.npmjs.org/synesthesia/-/synesthesia-1.0.1.tgz" - }, - "table": { - "version": "3.7.8", - "from": "table@>=3.7.8 <4.0.0", - "resolved": "https://registry.npmjs.org/table/-/table-3.7.8.tgz" - }, - "tapable": { - "version": "0.1.10", - "from": "tapable@>=0.1.8 <0.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz" - }, - "temp": { - "version": "0.5.1", - "from": "temp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.5.1.tgz" - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.6 <3.0.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "through2": { - "version": "0.6.5", - "from": "through2@>=0.6.3 <0.7.0", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.0.34", - "from": "readable-stream@>=1.0.33-1 <1.1.0-0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - } - } - }, - "timers-browserify": { - "version": "1.4.2", - "from": "timers-browserify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "dependencies": { - "process": { - "version": "0.11.2", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" - } - } - }, - "to-fast-properties": { - "version": "1.0.2", - "from": "to-fast-properties@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.2.tgz" - }, - "tough-cookie": { - "version": "2.2.2", - "from": "tough-cookie@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "tr46": { - "version": "0.0.3", - "from": "tr46@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - }, - "trim-newlines": { - "version": "1.0.0", - "from": "trim-newlines@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" - }, - "trim-right": { - "version": "1.0.1", - "from": "trim-right@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - }, - "tryit": { - "version": "1.0.2", - "from": "tryit@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.2", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" - }, - "tv4": { - "version": "1.2.7", - "from": "tv4@>=1.2.7 <2.0.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.2.7.tgz" - }, - "tweetnacl": { - "version": "0.13.3", - "from": "tweetnacl@>=0.13.0 <0.14.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" - }, - "type-check": { - "version": "0.3.2", - "from": "type-check@>=0.3.2 <0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - }, - "type-detect": { - "version": "1.0.0", - "from": "type-detect@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" - }, - "type-is": { - "version": "1.6.12", - "from": "type-is@>=1.6.6 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz" - }, - "typedarray": { - "version": "0.0.6", - "from": "typedarray@>=0.0.5 <0.1.0", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "ua-parser-js": { - "version": "0.7.10", - "from": "ua-parser-js@>=0.7.9 <0.8.0", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz" - }, - "uglify-js": { - "version": "2.6.2", - "from": "uglify-js@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "uniq": { - "version": "1.0.1", - "from": "uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - }, - "uniqid": { - "version": "1.0.0", - "from": "uniqid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-1.0.0.tgz" - }, - "uniqs": { - "version": "2.0.0", - "from": "uniqs@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - } - } - }, - "url-loader": { - "version": "0.5.7", - "from": "url-loader@0.5.7", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.7.tgz", - "dependencies": { - "mime": { - "version": "1.2.11", - "from": "mime@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - } - } - }, - "url-pattern": { - "version": "1.0.1", - "from": "url-pattern@latest", - "resolved": "https://registry.npmjs.org/url-pattern/-/url-pattern-1.0.1.tgz" - }, - "urlgrey": { - "version": "0.4.1", - "from": "urlgrey@>=0.4.0", - "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.1.tgz" - }, - "user-home": { - "version": "1.1.1", - "from": "user-home@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <1.0.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "uuid": { - "version": "2.0.2", - "from": "uuid@2.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.2.tgz" - }, - "uuid-v4": { - "version": "0.1.0", - "from": "uuid-v4@latest", - "resolved": "https://registry.npmjs.org/uuid-v4/-/uuid-v4-0.1.0.tgz" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - }, - "vary": { - "version": "1.1.0", - "from": "vary@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" - }, - "velocity-animate": { - "version": "1.2.3", - "from": "velocity-animate@>=1.2.3 <2.0.0", - "resolved": "https://registry.npmjs.org/velocity-animate/-/velocity-animate-1.2.3.tgz" - }, - "velocity-react": { - "version": "1.1.5", - "from": "velocity-react@1.1.5", - "resolved": "https://registry.npmjs.org/velocity-react/-/velocity-react-1.1.5.tgz", - "dependencies": { - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" - }, - "warning": { - "version": "2.1.0", - "from": "warning@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz" - }, - "watchpack": { - "version": "0.2.9", - "from": "watchpack@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "dependencies": { - "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - }, - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "webidl-conversions": { - "version": "2.0.1", - "from": "webidl-conversions@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz" - }, - "webpack": { - "version": "1.13.0", - "from": "webpack@1.13.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.0.tgz", - "dependencies": { - "acorn": { - "version": "3.1.0", - "from": "acorn@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" - }, - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" - } - } - }, - "webpack-core": { - "version": "0.6.8", - "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } - }, - "webpack-dev-middleware": { - "version": "1.6.1", - "from": "webpack-dev-middleware@1.6.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.6.1.tgz" - }, - "webpack-hot-middleware": { - "version": "2.10.0", - "from": "webpack-hot-middleware@2.10.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.10.0.tgz" - }, - "webpack-sources": { - "version": "0.1.2", - "from": "webpack-sources@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.2.tgz" - }, - "whatwg-fetch": { - "version": "1.0.0", - "from": "whatwg-fetch@>=0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.0.0.tgz" - }, - "whatwg-url": { - "version": "2.0.1", - "from": "whatwg-url@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz", - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "from": "webidl-conversions@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - } - } - }, - "whatwg-url-compat": { - "version": "0.6.5", - "from": "whatwg-url-compat@>=0.6.5 <0.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz" - }, - "whet.extend": { - "version": "0.9.9", - "from": "whet.extend@>=0.9.9 <0.10.0", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" - }, - "which": { - "version": "1.2.4", - "from": "which@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.4.tgz" - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "wordwrap": { - "version": "1.0.0", - "from": "wordwrap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" - }, - "wrap-ansi": { - "version": "2.0.0", - "from": "wrap-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.0.0.tgz" - }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, - "write": { - "version": "0.2.1", - "from": "write@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" - }, - "write-file-stdout": { - "version": "0.0.2", - "from": "write-file-stdout@0.0.2", - "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz" - }, - "xml-name-validator": { - "version": "2.0.1", - "from": "xml-name-validator@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz" - }, - "xml2js": { - "version": "0.4.15", - "from": "xml2js@0.4.15", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.15.tgz" - }, - "xmlbuilder": { - "version": "2.6.2", - "from": "xmlbuilder@2.6.2", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.6.2.tgz", - "dependencies": { - "lodash": { - "version": "3.5.0", - "from": "lodash@>=3.5.0 <3.6.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.5.0.tgz" - } - } - }, - "xregexp": { - "version": "3.1.0", - "from": "xregexp@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.1.0.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - }, - "y18n": { - "version": "3.2.1", - "from": "y18n@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz" - }, - "yallist": { - "version": "2.0.0", - "from": "yallist@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" - }, - "yargs": { - "version": "1.3.3", - "from": "yargs@>=1.3.3 <2.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" - } - } -} \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index a31afc1a43..0000000000 --- a/package.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "name": "mercury", - "version": "82.0.0", - "description": "Mercury", - "main": "index.js", - "private": true, - "author": "Docker Inc.", - "license": "UNLICENSED", - "engines": { - "node": "~6.0.0", - "npm": "~3.8.7" - }, - "config": { - "lintDirs": "client common server tools" - }, - "scripts": { - "build": "NODE_ENV=production webpack -p --progress --colors", - "codecov": "codecov -t $CODECOV_REPOSITORY_TOKEN", - "lint:css": "stylelint \"**/*.css\"", - "lint:html": "htmllint server/**/*.html client/**/*.html src/**/*.html", - "lint:js:fix": "eslint eslint src/components/common/AutocompleteSearchBar/index.js --fix", - "lint:js": "eslint $npm_package_config_lintDirs --fix", - "lint": "npm-run-all lint:*", - "postmerge": "npm run runner -- hooks/postmerge", - "precommit": "npm run runner -- hooks/precommit $npm_package_config_lintDirs", - "runner": "node tools/runner", - "shrinkwrap": "npm run runner -- shrinkwrap", - "start": "node server/index.js", - "test:coverage": "istanbul cover --report text --report lcov _mocha mocha.js src/**/*test.js -x mocha.js -x src/**/*test.js", - "test": "mocha mocha.js src/**/*test.js" - }, - "dependencies": { - "app-module-path": "1.0.6", - "aws-sdk": "2.3.18", - "babel-core": "6.7.7", - "babel-eslint": "6.0.4", - "babel-loader": "6.2.4", - "babel-plugin-add-module-exports": "0.1.4", - "babel-plugin-transform-decorators-legacy": "1.3.4", - "babel-polyfill": "6.7.4", - "babel-preset-es2015": "6.6.0", - "babel-preset-react": "6.5.0", - "babel-preset-react-hmre": "1.1.1", - "babel-preset-stage-0": "6.5.0", - "babel-register": "6.7.2", - "babel-runtime": "6.6.1", - "basic-auth": "1.0.4", - "chai": "3.5.0", - "chai-enzyme": "0.4.2", - "classnames": "2.2.4", - "codecov": "1.0.1", - "compression": "1.6.1", - "country-list": "0.0.3", - "css-loader": "0.23.1", - "css-modules-require-hook": "4.0.0", - "dom-scroll-into-view": "1.2.0", - "enzyme": "2.2.0", - "es6-promise": "3.2.1", - "eslint": "2.8.0", - "eslint-config-airbnb": "7.0.0", - "eslint-plugin-jsx-a11y": "0.6.2", - "eslint-plugin-react": "4.3.0", - "eventemitter3": "1.2.0", - "express": "4.13.4", - "extract-text-webpack-plugin": "1.0.1", - "fbjs": "0.8.1", - "file-loader": "0.8.5", - "github-markdown-css": "2.2.1", - "htmllint-cli": "0.0.4", - "istanbul": "1.0.0-alpha.2", - "jsdom": "8.4.1", - "json-loader": "0.5.4", - "lodash": "4.11.2", - "lost": "6.7.2", - "marked": "0.3.5", - "material-ui": "0.15.0", - "md5": "2.1.0", - "mocha": "2.4.5", - "mocha-lcov-reporter": "1.2.0", - "moment": "2.13.0", - "normalize.css": "4.1.1", - "normalizr": "2.0.1", - "npm": "3.8.7", - "npm-run-all": "1.8.0", - "nprogress": "0.2.0", - "numeral": "1.5.3", - "postcss-calc": "5.2.1", - "postcss-color-function": "2.0.1", - "postcss-cssnext": "2.5.2", - "postcss-custom-media": "5.0.1", - "postcss-each": "0.9.1", - "postcss-import": "8.1.0", - "postcss-loader": "0.8.2", - "postcss-media-minmax": "2.1.2", - "postcss-mixins": "4.0.1", - "postcss-nested": "1.0.0", - "postcss-simple-vars": "1.2.0", - "promisify-node": "0.4.0", - "proxy-middleware": "0.15.0", - "qs": "6.1.0", - "raw-loader": "0.5.1", - "rc-slider": "3.7.0", - "react": "15.1.0", - "react-addons-css-transition-group": "15.0.2", - "react-addons-test-utils": "15.0.2", - "react-cookie": "0.4.5", - "react-dom": "15.0.2", - "react-dropzone": "3.5.0", - "react-modal": "1.2.1", - "react-notification": "5.0.3", - "react-redux": "4.4.5", - "react-router": "2.4.0", - "react-router-scroll": "0.2.0", - "react-select": "1.0.0-beta12", - "react-tap-event-plugin": "1.0.0", - "redux": "3.5.2", - "redux-actions": "0.9.1", - "redux-devtools": "3.2.0", - "redux-form": "5.2.2", - "redux-logger": "2.6.1", - "redux-promise-middleware": "3.0.0", - "redux-thunk": "2.0.1", - "reselect": "2.5.1", - "sinon": "1.17.3", - "style-loader": "0.13.1", - "stylelint": "6.2.2", - "stylelint-config-standard": "6.0.0", - "superagent": "1.8.3", - "superagent-promise": "1.1.0", - "url-loader": "0.5.7", - "url-pattern": "1.0.1", - "uuid": "2.0.2", - "uuid-v4": "0.1.0", - "velocity-react": "1.1.5", - "webpack": "1.13.0", - "webpack-dev-middleware": "1.6.1", - "webpack-hot-middleware": "2.10.0" - }, - "devDependencies": {}, - "optionalDependencies": { - "husky": "0.11.3" - } -} diff --git a/server/env.js b/server/env.js deleted file mode 100644 index 4166d377ae..0000000000 --- a/server/env.js +++ /dev/null @@ -1,21 +0,0 @@ -var path = require('path'); -var fs = require('fs'); - -require('css-modules-require-hook')({ - generateScopedName: '[name]__[local]___[hash:base64:5]', -}); - -require('app-module-path').addPath(path.join(__dirname, '..', 'src')); -require('app-module-path') - .addPath(path.join(__dirname, '..', 'src', 'components')); -require('app-module-path') - .addPath(path.join(__dirname, '..', 'src', 'lib', 'css')); -require('babel-register', { - plugins: ['add-module-exports'], -}); - -// Webpack loaders aren't used Server-side, so we need to handle .md files -require.extensions['.md'] = function (module, filename) { - // eslint-disable-next-line - module.exports = fs.readFileSync(filename, 'utf8'); -}; diff --git a/server/index.js b/server/index.js deleted file mode 100755 index 7873eef13a..0000000000 --- a/server/index.js +++ /dev/null @@ -1,2 +0,0 @@ -require('./env'); -require('./server'); diff --git a/server/proxy.js b/server/proxy.js deleted file mode 100644 index 4c8cb95dde..0000000000 --- a/server/proxy.js +++ /dev/null @@ -1,173 +0,0 @@ -/* -Based on code from: https://github.com/chimurai/http-proxy-middleware -Includes Fixes: - - Fixed bug where domains with `-` would not work when rewriting cookie headers - -The MIT License (MIT) - -Copyright (c) 2015 Steven Chim - -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. -*/ - -/* eslint-disable */ - -var os = require('os'); -var http = require('http'); -var https = require('https'); -var owns = {}.hasOwnProperty; - -module.exports = function proxyMiddleware(options) { - //enable ability to quickly pass a url for shorthand setup - if(typeof options === 'string'){ - options = require('url').parse(options); - } - - var httpLib = options.protocol === 'https:' ? https : http; - var request = httpLib.request; - - options = options || {}; - options.hostname = options.hostname; - options.port = options.port; - options.pathname = options.pathname || '/'; - - return function (req, resp, next) { - var url = req.url; - // You can pass the route within the options, as well - if (typeof options.route === 'string') { - if (url === options.route) { - url = ''; - } else if (url.slice(0, options.route.length) === options.route) { - url = url.slice(options.route.length); - } else { - return next(); - } - } - - //options for this request - var opts = extend({}, options); - if (url && url.charAt(0) === '?') { // prevent /api/resource/?offset=0 - if (options.pathname.length > 1 && options.pathname.charAt(options.pathname.length - 1) === '/') { - opts.path = options.pathname.substring(0, options.pathname.length - 1) + url; - } else { - opts.path = options.pathname + url; - } - } else if (url) { - opts.path = slashJoin(options.pathname, url); - } else { - opts.path = options.pathname; - } - opts.method = req.method; - opts.headers = options.headers ? merge(req.headers, options.headers) : req.headers; - - applyViaHeader(req.headers, opts, opts.headers); - - if (!options.preserveHost) { - // Forwarding the host breaks dotcloud - delete opts.headers.host; - } - - var myReq = request(opts, function (myRes) { - var statusCode = myRes.statusCode - , headers = myRes.headers - , location = headers.location; - // Fix the location - if (((statusCode > 300 && statusCode < 304) || statusCode === 201) && location && location.indexOf(options.href) > -1) { - // absoulte path - headers.location = location.replace(options.href, slashJoin('/', slashJoin((options.route || ''), ''))); - } - applyViaHeader(myRes.headers, opts, myRes.headers); - rewriteCookieHosts(myRes.headers, opts, myRes.headers, req); - resp.writeHead(myRes.statusCode, myRes.headers); - myRes.on('error', function (err) { - next(err); - }); - myRes.pipe(resp); - }); - myReq.on('error', function (err) { - next(err); - }); - if (!req.readable) { - myReq.end(); - } else { - req.pipe(myReq); - } - }; -}; - -function applyViaHeader(existingHeaders, opts, applyTo) { - if (!opts.via) return; - - var viaName = (true === opts.via) ? os.hostname() : opts.via; - var viaHeader = '1.1 ' + viaName; - if(existingHeaders.via) { - viaHeader = existingHeaders.via + ', ' + viaHeader; - } - - applyTo.via = viaHeader; -} - -function rewriteCookieHosts(existingHeaders, opts, applyTo, req) { - if (!opts.cookieRewrite || !owns.call(existingHeaders, 'set-cookie')) { - return; - } - - var existingCookies = existingHeaders['set-cookie'], - rewrittenCookies = [], - rewriteHostname = (true === opts.cookieRewrite) ? os.hostname() : opts.cookieRewrite; - - if (!Array.isArray(existingCookies)) { - existingCookies = [ existingCookies ]; - } - - for (var i = 0; i < existingCookies.length; i++) { - - // Fixed bug where domains with `-` would not work when rewriting cookie headers - var rewrittenCookie = existingCookies[i].replace(/(Domain)=[a-z\.-_-]*?(;|$)/gi, '$1=' + rewriteHostname + '$2'); - - if (!req.connection.encrypted) { - rewrittenCookie = rewrittenCookie.replace(/;\s*?(Secure)/i, ''); - } - rewrittenCookies.push(rewrittenCookie); - } - - applyTo['set-cookie'] = rewrittenCookies; -} - -function slashJoin(p1, p2) { - var trailing_slash = false; - - if (p1.length && p1[p1.length - 1] === '/') { trailing_slash = true; } - if (trailing_slash && p2.length && p2[0] === '/') {p2 = p2.substring(1); } - - return p1 + p2; -} - -function extend(obj, src) { - for (var key in src) if (owns.call(src, key)) obj[key] = src[key]; - return obj; -} - -//merges data without changing state in either argument -function merge(src1, src2) { - var merged = {}; - extend(merged, src1); - extend(merged, src2); - return merged; -} diff --git a/server/server.js b/server/server.js deleted file mode 100755 index 8b6922ef34..0000000000 --- a/server/server.js +++ /dev/null @@ -1,94 +0,0 @@ -import webpack from 'webpack'; -import webpackDevMiddleware from 'webpack-dev-middleware'; -import webpackHotMiddleware from 'webpack-hot-middleware'; -import webpackConfig from '../webpack.config'; -import path from 'path'; -import Express from 'express'; -import url from 'url'; -import compression from 'compression'; -import proxy from './proxy'; - -const server = new Express(); -const port = 3000; - -server.disable('x-powered-by'); -server.use(compression()); - -server.use('/_health', (req, res) => { - res.sendStatus(200); -}); - -// In development: enable hot reloading -// In production: serve pre-built static assets -if (process.env.NODE_ENV !== 'production') { - const compiler = webpack(webpackConfig); - server.use(webpackDevMiddleware(compiler, { - noInfo: true, - publicPath: webpackConfig.output.publicPath, - })); - - // Proxy requests to avoid CORS errors - // For /v2 endpoint, rewrite cookie Domains to localhost - // This makes the login & logout work in development - const proxyOptions = url.parse('https://store-stage.docker.com/v2'); - proxyOptions.cookieRewrite = 'localhost'; - server.use('/v2', proxy(proxyOptions)); - server.use('/api', proxy('https://store-stage.docker.com/api')); - - // Client-side hot reload - server.use(webpackHotMiddleware(compiler)); - - // Server-side hot reload - compiler.plugin('done', () => { - Object.keys(require.cache).forEach(id => { - if (id.indexOf(path.resolve(__dirname, '..', 'src')) !== -1 || - id.indexOf(path.resolve(__dirname)) !== -1) { - delete require.cache[id]; - } - }); - }); -} else { - server.use('/dist', Express.static('dist')); -} - -server.use((req, res) => { - res.send(` - - - - Docker Store - - - - - - ${process.env.NODE_ENV === 'production' ? - '' : ''} - - -
- - - - - `); -}); - -server.listen(port, error => { - if (error) { - console.error(error); - return; - } - - console.info(`Server is listening at http://localhost:${port}.`); -}); diff --git a/src/actions/account.js b/src/actions/account.js deleted file mode 100644 index d727c15803..0000000000 --- a/src/actions/account.js +++ /dev/null @@ -1,209 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { createAction } from 'redux-actions'; -import { jwt } from 'lib/utils/authHeaders'; -import { post } from 'superagent'; -import { readCookie } from 'lib/utils/cookie-handler'; - -const DOCKERCLOUD_HOST = ''; -const ACCOUNT_BASE_URL = `${DOCKERCLOUD_HOST}/v2`; - -// eslint-disable-next-line -export const ACCOUNT_FETCH_CURRENT_USER_INFORMATION = 'ACCOUNT_FETCH_CURRENT_USER_INFORMATION'; -export const ACCOUNT_FETCH_USER_EMAILS = 'ACCOUNT_FETCH_USER_EMAILS'; -export const ACCOUNT_FETCH_USER_INFORMATION = 'ACCOUNT_FETCH_USER_INFORMATION'; -export const ACCOUNT_FETCH_USER_NAMESPACES = 'ACCOUNT_FETCH_USER_NAMESPACES'; -export const ACCOUNT_FETCH_USER_ORGS = 'ACCOUNT_FETCH_USER_ORGS'; -export const ACCOUNT_LOGOUT = 'ACCOUNT_LOGOUT'; -export const ACCOUNT_TOGGLE_MAGIC_CARPET = 'ACCOUNT_TOGGLE_MAGIC_CARPET'; -export const ACCOUNT_SELECT_NAMESPACE = 'ACCOUNT_SELECT_NAMESPACE'; - -export const login = (username, password) => { - return new Promise((resolve, reject) => { - const endpoint = '/v2/users/login/'; - const req = post(endpoint) - .set('Content-Type', 'application/json') - .set('Accept', 'application/json') - .set('X-CSRFToken', readCookie('csrftoken')); - - req.send({ username, password }).end((err, res) => { - if (err) { - const errors = {}; - let body = {}; - - try { - body = JSON.parse(res.text); - } catch (e) { - errors._error = res.text; - reject(errors); - } - - if (body.detail) { - errors._error = body.detail; - } - - if (body.username) { - errors.username = body.username[0]; - } - - if (body.password) { - errors.password = body.password[0]; - } - - reject(errors); - return; - } - - resolve(); - }); - }); -}; - -export const signup = (email, username, password, redirect_value) => { - return new Promise((resolve, reject) => { - const endpoint = '/v2/users/signup/'; - const req = post(endpoint) - .set('Content-Type', 'application/json') - .set('Accept', 'application/json') - .set('X-CSRFToken', readCookie('csrftoken')); - - req.send({ email, username, password, redirect_value }).end((err, res) => { - if (err) { - const errors = {}; - let body = {}; - - try { - body = JSON.parse(res.text); - } catch (e) { - errors._error = res.text; - reject(errors); - } - - if (body.detail) { - errors._error = body.detail; - } - - if (body.email) { - errors.email = body.email[0]; - } - - if (body.username) { - errors.username = body.username[0]; - } - - if (body.password) { - errors.password = body.password[0]; - } - - reject(errors); - return; - } - - resolve(); - }); - }); -}; - - -export function accountLogout() { - const accountUrl = `${ACCOUNT_BASE_URL}/user/logout`; - return { - type: ACCOUNT_LOGOUT, - payload: { - promise: - request - .post(accountUrl) - .set(jwt()) - .set('Accept', '*/*') - .end() - .then((res) => res.body), - }, - }; -} - -/* -Sample JSON for user fetch - { - "id": "4663b07ca74111e492090242ac110143", - "username": "test1", - "full_name": "asdfasdfasdf", - "location": "asdf", - "company": "stuff", - "gravatar_email": "", - "is_staff": false, - "is_admin": false, - "profile_url": "", - "date_joined": "2014-09-23T19:42:13Z", - "gravatar_url": "https://secure.gravatar.com/avatar/88d62a9d7579193eea16d4f5ddee3f62.jpg?s=80&r=g&d=mm", - "type": "User" - } -*/ -export function accountFetchUser({ namespace, isOrg }) { - const userOrOrg = isOrg ? 'orgs' : 'users'; - const accountUrl = `${ACCOUNT_BASE_URL}/${userOrOrg}/${namespace}/`; - return { - type: ACCOUNT_FETCH_USER_INFORMATION, - payload: { - promise: request - .get(accountUrl) - .set(jwt()) - .end() - .then((res) => res.body), - }, - }; -} - -export function accountFetchCurrentUser({ shouldRedirectToLogin } = {}) { - const url = `${ACCOUNT_BASE_URL}/user/`; - return { - type: ACCOUNT_FETCH_CURRENT_USER_INFORMATION, - meta: { - shouldRedirectToLogin, - }, - payload: { - promise: - request - .get(url) - .set(jwt()) - .end() - .then((res) => res.body), - }, - }; -} - -export function accountFetchUserEmails({ user }) { - const url = `${ACCOUNT_BASE_URL}/emailaddresses/`; - return { - type: ACCOUNT_FETCH_USER_EMAILS, - payload: { - promise: - request - .get(url) - .set(jwt()) - .query({ user }) - .end() - .then((res) => res.body), - }, - }; -} - -export function accountFetchUserOrgs() { - // Fetches user objects for all namespaces you have access to - not just own - const url = `${ACCOUNT_BASE_URL}/user/orgs/`; - return { - type: ACCOUNT_FETCH_USER_ORGS, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(jwt()) - .query({ page_size: 100 }) - .end() - .then((res) => res.body), - }, - }; -} - -export const accountSelectNamespace = createAction(ACCOUNT_SELECT_NAMESPACE); -export const accountToggleMagicCarpet = - createAction(ACCOUNT_TOGGLE_MAGIC_CARPET); diff --git a/src/actions/billing.js b/src/actions/billing.js deleted file mode 100644 index 3c98384d54..0000000000 --- a/src/actions/billing.js +++ /dev/null @@ -1,607 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { merge } from 'lodash'; -import isStaging from 'lib/utils/isStaging'; -import isDev from 'lib/utils/isDevelopment'; -import encodeForm from 'lib/utils/encodeForm'; -import createBearer from 'lib/utils/create-bearer'; -import { bearer } from 'lib/utils/authHeaders'; -import bugsnagNotify from 'lib/utils/metrics'; -import { isProductBundle } from 'lib/utils/product-utils'; -import { - marketplaceFetchBundleDetail, - marketplaceFetchRepositoryDetail, -} from 'actions/marketplace'; - -/* eslint-disable max-len */ -export const BILLING_CREATE_PAYMENT_METHOD = 'BILLING_CREATE_PAYMENT_METHOD'; -export const BILLING_CREATE_PAYMENT_TOKEN = 'BILLING_CREATE_PAYMENT_TOKEN'; -export const BILLING_CREATE_PRODUCT = 'BILLING_CREATE_PRODUCT'; -export const BILLING_CREATE_PROFILE = 'BILLING_CREATE_PROFILE'; -export const BILLING_CREATE_SUBSCRIPTION = 'BILLING_CREATE_SUBSCRIPTION'; -export const BILLING_DELETE_PAYMENT_METHOD = 'BILLING_DELETE_PAYMENT_METHOD'; -export const BILLING_DELETE_SUBSCRIPTION = 'BILLING_DELETE_SUBSCRIPTION'; -export const BILLING_FETCH_INVOICE_PDF = 'BILLING_FETCH_INVOICE_PDF'; -export const BILLING_FETCH_INVOICES = 'BILLING_FETCH_INVOICES'; -export const BILLING_FETCH_LICENSE_DETAIL = 'BILLING_FETCH_LICENSE_DETAIL'; -export const BILLING_FETCH_LICENSE_FILE = 'BILLING_FETCH_LICENSE_FILE'; -export const BILLING_FETCH_PAYMENT_METHODS = 'BILLING_FETCH_PAYMENT_METHODS'; -export const BILLING_FETCH_PRODUCT = 'BILLING_FETCH_PRODUCT'; -export const BILLING_FETCH_PROFILE_SUBSCRIPTIONS = 'BILLING_FETCH_PROFILE_SUBSCRIPTIONS'; -export const BILLING_FETCH_PROFILE_SUBSCRIPTIONS_AND_PRODUCTS = 'BILLING_FETCH_PROFILE_SUBSCRIPTIONS_AND_PRODUCTS'; -export const BILLING_FETCH_PROFILE = 'BILLING_FETCH_PROFILE'; -export const BILLING_SET_DEFAULT_PAYMENT_METHOD = 'BILLING_SET_DEFAULT_PAYMENT_METHOD'; -export const BILLING_UPDATE_PROFILE = 'BILLING_UPDATE_PROFILE'; -export const BILLING_UPDATE_SUBSCRIPTION = 'BILLING_UPDATE_SUBSCRIPTION'; - -const BILLING_HOST = ''; -export const BILLING_BASE_URL = `${BILLING_HOST}/api/billing/v4`; - -/* - * ============================================================================= - * BILLING PRODUCT CALLS - * - Calls associated with the product catalog & plans - * ============================================================================= - */ -export function billingFetchProduct({ id }) { - const url = `${BILLING_BASE_URL}/products/${id}/`; - return { - type: BILLING_FETCH_PRODUCT, - meta: { id }, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export const billingCreateProduct = ({ id, body }) => dispatch => { - const url = `${BILLING_BASE_URL}/products/${id}/`; - return dispatch({ - type: BILLING_CREATE_PRODUCT, - meta: { id }, - payload: { - promise: - request - .put(url) - .accept('application/json') - .set(bearer()) - .send(body) - .end() - .then((res) => res.body), - }, - }); -}; - - -/* - * ============================================================================= - * USER BILLING CALLS - * - Calls associated with a User's billing/subscription information - * - Must include JWT and docker_id - * ============================================================================= - */ - -//------------------------------------------------------------------------------ -// PAYMENTS & PAYMENT METHODS -//------------------------------------------------------------------------------ - -export function billingFetchPaymentMethods({ docker_id }) { - const url = `${BILLING_BASE_URL}/accounts/${docker_id}/payment-methods/`; - return { - type: BILLING_FETCH_PAYMENT_METHODS, - meta: { - docker_id, - shouldRedirectToLogin: true, - }, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -/* - NOTE: Stripe's api only accepts x-www-form-urlencoded data - NOTE: 'billforwardCreatePayment' is chained to this function and requires - `billforward-id`. The `billforward-id` is being passed through to the - create payment function via the META here. -*/ -function createCardToken({ - cvc, - exp_month, - exp_year, - name_first, - name_last, - number, -}, meta) { - // TODO ENV VAR - nathan - move const variables to environment - const stripeUrl = 'https://api.stripe.com/v1/tokens'; - let stripeToken = 'pk_live_89IjovLdwh2MTzV7JsGJK3qk'; - if (isStaging() || isDev()) { - stripeToken = 'pk_test_DMJYisAqHlWvFPgRfkKayAcF'; - } - const card = { - name: `${name_first} ${name_last}`, - cvc, - number, - exp_month, - exp_year, - }; - const encoded = encodeForm({ card }); - return { - type: BILLING_CREATE_PAYMENT_TOKEN, - payload: { - promise: request.post(stripeUrl) - .accept('application/json') - .type('application/x-www-form-urlencoded') - .set('Authorization', createBearer(stripeToken)) - .send(encoded) - .then((res) => { - return { - body: res.body, - meta, - }; - }, (res) => { - /* - 402 PAYMENT REQUIRED error occurs when user has incorrectly input - their card information. We don't care about user error - only if - something goes wrong on our end. - */ - if (res.status !== 402 || !isDev()) { - bugsnagNotify('STRIPE TOKEN ERR', res.message); - } - }), - }, - }; -} - -/* - NOTE: This is the call to billforward that actually adds a payment method - to a user's billing profile. - This call requires a billforward-id (accountID) which is DIFFERENT than the - docker_id - Hence why 'billingCreatePaymentMethod' is NOT being wrapped by - the getAccountFromNamespace decorator. -*/ -function billforwardCreatePayment({ - '@type': type, - accountID, - cardID, - defaultPaymentMethod, - gateway, - stripeToken, -}) { - // TODO ENV VAR - nathan - move const variables to environment - let billforwardUrl = - 'https://api.billforward.net/v1/tokenization/auth-capture'; - let billforwardToken = '650cbe35-4aca-4820-a7d1-accec8a7083a'; - if (isStaging() || isDev()) { - billforwardUrl = - 'https://api-sandbox.billforward.net:443/v1/tokenization/auth-capture'; - billforwardToken = 'ec687f76-c1b6-4d71-b919-4fe99202ca13'; - } - return { - type: BILLING_CREATE_PAYMENT_METHOD, - payload: { - promise: request.post(billforwardUrl) - .accept('application/json') - .type('application/json') - .set('Authorization', createBearer(billforwardToken)) - .send({ - '@type': type, - accountID, - cardID, - defaultPaymentMethod, - gateway, - stripeToken, - }) - .then((res) => res.body.results, (res) => { - if (!isDev()) { - bugsnagNotify('BF AUTH CAPTURE ERR', res.message); - } - }), - }, - }; -} - -export const billingCreatePaymentMethod = ({ - billforward_id, - cvc, - exp_month, - exp_year, - name_first, - name_last, - number, -}) => dispatch => { - const cardData = { - cvc, - exp_month, - exp_year, - name_first, - name_last, - number, - }; - /* - NOTE: - Creating a payment method requires 2 parts - 1 - Generating a token from Stripe's api - 2 - Sending generated token to Billforward's api to attach payment method to - a relevant billing profile. - */ - return dispatch(createCardToken(cardData, { billforward_id })) - .then((res) => { - const tokenObject = res.value.body; - const stripeToken = tokenObject.id; - const cardID = tokenObject.card.id; - const accountID = res.value.meta.billforward_id; - const bfData = { - '@type': 'StripeAuthCaptureRequest', - accountID, - cardID, - defaultPaymentMethod: true, - gateway: 'Stripe', - stripeToken, - }; - return dispatch(billforwardCreatePayment(bfData)); - }); -}; - -// Note: No response from this endpoint. Should refetch payment methods in then -export const billingSetDefaultPaymentMethod = ({ docker_id, card_id }) => { - const url = - `${BILLING_BASE_URL}/accounts/${docker_id}/payment-methods/${card_id}/`; - return { - type: BILLING_SET_DEFAULT_PAYMENT_METHOD, - payload: { - promise: request - .patch(url) - .set(bearer()) - .send({ - default: true, - }) - .end() - .then((res) => res.body), - }, - }; -}; - -// Note: No response from this endpoint. Should refetch payment methods in then -export const billingDeletePaymentMethod = ({ docker_id, card_id }) => { - const url = - `${BILLING_BASE_URL}/accounts/${docker_id}/payment-methods/${card_id}/`; - return { - type: BILLING_DELETE_PAYMENT_METHOD, - payload: { - promise: request - .del(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -//------------------------------------------------------------------------------ -// PROFILES -//------------------------------------------------------------------------------ -export const billingFetchProfile = ({ docker_id, isOrg }) => dispatch => { - const url = `${BILLING_BASE_URL}/accounts/${docker_id}/`; - return dispatch({ - type: BILLING_FETCH_PROFILE, - meta: { docker_id, isOrg }, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => { - /* - NOTE: required billforward-account-id must be pulled from the header - */ - return merge( - {}, - res.body, - { profile: - { billforward_id: res.header['billforward-account-id'] }, - } - ); - }), - }, - }); -}; - -/* NOTE: A sample profile includes information such as... - * profile: { - * first_name, - * last_name, - * email, - * primary_phone, - * company_name, - * job_function, - * addresses, - * } - */ -export function billingCreateProfile({ - docker_id, - profile, -}) { - const url = `${BILLING_BASE_URL}/accounts/${docker_id}/`; - return { - type: BILLING_CREATE_PROFILE, - meta: { docker_id }, - payload: { - promise: - request - .put(url) - .set(bearer()) - .send({ profile }) - .end() - .then((res) => { - /* - NOTE: required billforward-account-id must be pulled from the header - */ - return merge( - {}, - res.body, - { profile: - { billforward_id: res.header['billforward-account-id'] }, - } - ); - }), - }, - }; -} - -export function billingUpdateProfile({ - addresses, - company_name, - docker_id, - email, - first_name, - job_function, - last_name, - phone_primary, -}) { - const url = `${BILLING_BASE_URL}/accounts/${docker_id}/profile/`; - return { - type: BILLING_UPDATE_PROFILE, - meta: { docker_id }, - payload: { - promise: - request - .patch(url) - .set(bearer()) - .send({ - addresses, - company_name, - email, - first_name, - last_name, - job_function, - phone_primary, - }) - .end() - .then((res) => res.body), - }, - }; -} - -//------------------------------------------------------------------------------ -// INVOICES -//------------------------------------------------------------------------------ -export function billingFetchInvoices({ docker_id }) { - const url = `${BILLING_BASE_URL}/invoices/`; - return { - type: BILLING_FETCH_INVOICES, - meta: { shouldRedirectToLogin: true }, - payload: { - promise: - request - .get(url) - .query({ docker_id }) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export function billingFetchInvoicePDF({ docker_id, invoice_id }) { - const url = `${BILLING_BASE_URL}/invoices/${invoice_id}`; - // Undocumented responseType property - // https://github.com/visionmedia/superagent/pull/888/files - return { - type: BILLING_FETCH_INVOICE_PDF, - payload: { - promise: - request - .get(url) - .query({ docker_id }) - .set(bearer()) - .accept('application/pdf') - .responseType('blob') - .end() - .then(({ xhr }) => { - // xhr.response is a Blob - return xhr.response; - }), - }, - }; -} - -//------------------------------------------------------------------------------ -// LICENSES -//------------------------------------------------------------------------------ -export const billingFetchLicenseDetail = ({ subscription_id }) => { - const url = `${BILLING_BASE_URL}/subscriptions/${subscription_id}/license-detail/`; - return { - type: BILLING_FETCH_LICENSE_DETAIL, - meta: { subscription_id }, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -export const billingFetchLicenseFile = ({ subscription_id }) => { - const url = `${BILLING_BASE_URL}/subscriptions/${subscription_id}/license-file/`; - return { - type: BILLING_FETCH_LICENSE_FILE, - meta: { subscription_id }, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -//------------------------------------------------------------------------------ -// SUBSCRIPTIONS -//------------------------------------------------------------------------------ -// TODO Kristie Replace this with the composition API when it is available -export const billingFetchProfileSubscriptionsAndProducts = ({ docker_id }) => dispatch => { - const url = `${BILLING_BASE_URL}/subscriptions/`; - return dispatch({ - type: BILLING_FETCH_PROFILE_SUBSCRIPTIONS_AND_PRODUCTS, - payload: { - promise: - request - .get(url) - .query({ docker_id }) - .set(bearer()) - .end() - .then((res) => { - const results = res.body || []; - // For each subscription, we must fetch the product details - // from billing AND from product catalog - const promises = results.map((sub) => { - const { product_id: id, subscription_id } = sub; - const getProductDetails = [ - // Do not make this call bubble up the err - dispatch(billingFetchProduct({ id })).catch(() => {}), - ]; - if (isProductBundle(id)) { - getProductDetails.push( - dispatch(marketplaceFetchBundleDetail({ id })) - ); - // Fetch license details for DDC - getProductDetails.push( - dispatch(billingFetchLicenseDetail({ subscription_id })) - .catch(() => {}) // Do not make this call bubble up the err - ); - } else { - getProductDetails.push( - dispatch(marketplaceFetchRepositoryDetail({ id })) - .catch(() => {}) - ); - } - return Promise.when(getProductDetails); - }); - return Promise.when(promises).then(() => results); - }), - }, - }); -}; - -export const billingFetchProfileSubscriptions = ({ docker_id }) => dispatch => { - const url = `${BILLING_BASE_URL}/subscriptions/`; - return dispatch({ - type: BILLING_FETCH_PROFILE_SUBSCRIPTIONS, - payload: { - promise: - request - .get(url) - .query({ docker_id }) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }); -}; - -export function billingCreateSubscription({ - docker_id, - eusa, - name, - pricing_components, // Array of objects - product_id, - product_rate_plan, -}) { - const params = { - docker_id, - eusa, - name, - pricing_components, - product_id, - product_rate_plan, - }; - const url = `${BILLING_BASE_URL}/subscriptions/`; - return { - type: BILLING_CREATE_SUBSCRIPTION, - payload: { - promise: - request - .post(url) - .query({ docker_id }) - .set(bearer()) - .send(params) - .end() - .then((res) => res.body), - }, - }; -} - -// body is the request body -export const billingUpdateSubscription = - ({ subscription_id, body }) => dispatch => { - const url = `${BILLING_BASE_URL}/subscriptions/${subscription_id}/`; - return dispatch({ - type: BILLING_UPDATE_SUBSCRIPTION, - meta: { subscription_id }, - payload: { - promise: - request - .patch(url) - .accept('application/json') - .set(bearer()) - .send(body) - .end() - .then((res) => res.body), - }, - }); - }; - -export const billingDeleteSubscription = ({ subscription_id }) => dispatch => { - const url = `${BILLING_BASE_URL}/subscriptions/${subscription_id}/`; - return dispatch({ - type: BILLING_DELETE_SUBSCRIPTION, - meta: { subscription_id }, - payload: { - promise: - request - .del(url) - .accept('application/json') - .set(bearer()) - .send() - .end() - .then((res) => res.body), - }, - }); -}; diff --git a/src/actions/internal.js b/src/actions/internal.js deleted file mode 100644 index 4c33a23e7d..0000000000 --- a/src/actions/internal.js +++ /dev/null @@ -1,15 +0,0 @@ -export const INTERNAL_ROUTER_READY = 'INTERNAL_ROUTER_READY'; -export const INTERNAL_STORE_IDLE = 'INTERNAL_STORE_IDLE'; - -export function internalRouterReady() { - return { - type: INTERNAL_ROUTER_READY, - }; -} - -export function internalStoreIdle(state) { - return { - type: INTERNAL_STORE_IDLE, - payload: state, - }; -} diff --git a/src/actions/marketplace.js b/src/actions/marketplace.js deleted file mode 100755 index f6fbb18fe6..0000000000 --- a/src/actions/marketplace.js +++ /dev/null @@ -1,371 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { bearer } from 'lib/utils/authHeaders'; -import { DEFAULT_SEARCH_PAGE_SIZE } from 'lib/constants/defaults'; -import { OFFICIAL } from 'lib/constants/searchFilters/sources'; -// TODO Kristie 5/17/16 Use actual API when it is ready -import searchPlatformFilters from 'lib/constants/searchFilters/platforms'; -import isStaging from 'lib/utils/isStaging'; -import sanitize from 'lib/utils/remove-undefined'; -import trim from 'lodash/trim'; - -/* eslint-disable max-len */ -export const MARKETPLACE_FETCH_AUTOCOMPLETE_SUGGESTIONS = 'MARKETPLACE_FETCH_AUTOCOMPLETE_SUGGESTIONS'; -export const MARKETPLACE_FETCH_BUNDLE_DETAIL = 'MARKETPLACE_FETCH_BUNDLE_DETAIL'; -export const MARKETPLACE_FETCH_BUNDLE_SUMMARY = 'MARKETPLACE_FETCH_BUNDLE_SUMMARY'; -export const MARKETPLACE_FETCH_CATEGORIES = 'MARKETPLACE_FETCH_CATEGORIES'; -export const MARKETPLACE_FETCH_MOST_POPULAR = 'MARKETPLACE_FETCH_MOST_POPULAR'; -export const MARKETPLACE_FETCH_FEATURED = 'MARKETPLACE_FETCH_FEATURED'; -export const MARKETPLACE_FETCH_PLATFORMS = 'MARKETPLACE_FETCH_PLATFORMS'; -export const MARKETPLACE_FETCH_REPOSITORY_DETAIL = 'MARKETPLACE_FETCH_REPOSITORY_DETAIL'; -export const MARKETPLACE_FETCH_REPOSITORY_SUMMARY = 'MARKETPLACE_FETCH_REPOSITORY_SUMMARY'; -export const MARKETPLACE_SEARCH = 'MARKETPLACE_SEARCH'; -export const MARKETPLACE_CREATE_REPOSITORY = 'MARKETPLACE_CREATE_REPOSITORY'; -export const MARKETPLACE_EDIT_REPOSITORY = 'MARKETPLACE_EDIT_REPOSITORY'; -export const MARKETPLACE_DELETE_REPOSITORY = 'MARKETPLACE_DELETE_REPOSITORY'; - -const MARKETPLACE_HOST = ''; -const MARKETPLACE_BASE_URL = `${MARKETPLACE_HOST}/api/content/v1`; - -const MARKETPLACE_PRIVATE_HOST = process.env.NODE_ENV !== 'production' || isStaging() ? - 'https://mercury-content.s.stage-us-east-1.aws.dckr.io' : - 'https://mercury-content.s.us-east-1.aws.dckr.io'; -const MARKETPLACE_PRIVATE_BASE_URL = `${MARKETPLACE_PRIVATE_HOST}/api/private/content`; -/* eslint-enable max-len */ - -export function marketplaceSearch({ - q, - category, - order, - page, - page_size = DEFAULT_SEARCH_PAGE_SIZE, - platform, - sort, - // Unless explicitly specified, do not include community results - source = OFFICIAL, - }) { - // Trim whitespace from query - // eslint-disable-next-line no-param-reassign - q = trim(q); - const params = { - q, - category, - order, - page, - page_size, - platform, - sort, - source, - }; - - // Track browse and search separately - if (q === '' && page_size === '99') { - analytics.track('browse', sanitize({ category, platform, source })); - } else { - analytics.track('search', sanitize({ q, category, platform, source })); - } - const url = `${MARKETPLACE_BASE_URL}/repositories/search`; - return { - type: MARKETPLACE_SEARCH, - meta: { q, page, page_size }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .query(params) - .end() - .then((res) => res.body), - }, - }; -} - -// Fetch the suggestions for the drop down on global search -export function marketplaceFetchAutocompleteSuggestions({ q }) { - const page = 1; - const page_size = 6; - const params = { q, page, page_size }; - - const url = `${MARKETPLACE_BASE_URL}/repositories/search`; - return { - type: MARKETPLACE_FETCH_AUTOCOMPLETE_SUGGESTIONS, - meta: params, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .query(params) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceFetchRepositorySummary({ id }) { - const url = - `${MARKETPLACE_BASE_URL}/repositories/${id}/summary`; - return { - type: MARKETPLACE_FETCH_REPOSITORY_SUMMARY, - meta: { id }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceFetchRepositoryDetail({ id }) { - const url = `${MARKETPLACE_BASE_URL}/repositories/${id}`; - return { - type: MARKETPLACE_FETCH_REPOSITORY_DETAIL, - meta: { id }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceFetchBundleSummary({ id }) { - const url = `${MARKETPLACE_BASE_URL}/bundles/${id}/summary`; - return { - type: MARKETPLACE_FETCH_BUNDLE_SUMMARY, - meta: { id }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceFetchBundleDetail({ id, shouldRedirectToLogin }) { - const url = `${MARKETPLACE_BASE_URL}/bundles/${id}`; - return { - type: MARKETPLACE_FETCH_BUNDLE_DETAIL, - meta: { - id, - shouldRedirectToLogin, - }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceFetchCategories() { - const url = `${MARKETPLACE_BASE_URL}/categories`; - return { - type: MARKETPLACE_FETCH_CATEGORIES, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} - -// TODO Kristie 5/17/16 Use actual API when it is ready -export function marketplaceFetchPlatforms() { - return { - type: MARKETPLACE_FETCH_PLATFORMS, - payload: { - promise: new Promise((resolve) => { - resolve(searchPlatformFilters); - }), - }, - }; -} - -// ----------------------------------------------------------------------------- -// Home page special searches -// ----------------------------------------------------------------------------- -// Most Popular Images (fetch 9) -export function marketplaceFetchMostPopular() { - const params = { page_size: 9, source: OFFICIAL }; - const url = `${MARKETPLACE_BASE_URL}/repositories/search`; - return { - type: MARKETPLACE_FETCH_MOST_POPULAR, - meta: params, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .query(params) - .end() - .then((res) => res.body), - }, - }; -} - -// Newest Images (fetch 9) -export function marketplaceFetchFeatured() { - const params = { - page_size: 9, - category: 'featured', - source: OFFICIAL, - }; - const url = `${MARKETPLACE_BASE_URL}/repositories/search`; - return { - type: MARKETPLACE_FETCH_FEATURED, - meta: params, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .query(params) - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceCreateRepository({ - name, - namespace, - reponame, - publisher, - short_description, - full_description, - categories, - platforms, - source, - logo_url, - screenshots, - links, - eusa, - download_attribute, - instructions, -}) { - const url = `${MARKETPLACE_PRIVATE_BASE_URL}/repositories/`; - const body = { - name, - namespace, - reponame, - publisher, - short_description, - full_description, - categories, - platforms, - source, - logo_url, - screenshots, - links, - eusa, - download_attribute, - instructions, - }; - return { - type: MARKETPLACE_CREATE_REPOSITORY, - meta: body, - payload: { - promise: - request - .post(url) - .set(bearer()) - .send(body) - .accept('application/json') - .type('application/json') - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceEditRepository({ - id, - name, - namespace, - reponame, - publisher, - short_description, - full_description, - categories, - platforms, - source, - logo_url, - screenshots, - links, - eusa, - download_attribute, - instructions, -}) { - const body = { - name, - namespace, - reponame, - publisher, - short_description, - full_description, - categories, - platforms, - logo_url, - source, - screenshots, - links, - eusa, - download_attribute, - instructions, - }; - const url = `${MARKETPLACE_PRIVATE_BASE_URL}/repositories/${id}`; - return { - type: MARKETPLACE_EDIT_REPOSITORY, - meta: body, - payload: { - promise: - request - .patch(url) - .set(bearer()) - .send(body) - .accept('application/json') - .type('application/json') - .end() - .then((res) => res.body), - }, - }; -} - -export function marketplaceDeleteRepository({ id }) { - const url = `${MARKETPLACE_PRIVATE_BASE_URL}/repositories/${id}`; - return { - type: MARKETPLACE_DELETE_REPOSITORY, - payload: { - promise: - request - .del(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -} diff --git a/src/actions/nautilus.js b/src/actions/nautilus.js deleted file mode 100644 index 510e4e34c2..0000000000 --- a/src/actions/nautilus.js +++ /dev/null @@ -1,88 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { normalize } from 'normalizr'; -import { jwt } from 'lib/utils/authHeaders'; -import { normalizers } from 'lib/constants/nautilus'; -import { DEFAULT_TAGS_PAGE_SIZE } from 'lib/constants/defaults'; - -export const NAUTILUS_FETCH_TAGS_AND_SCANS = 'NAUTILUS_FETCH_TAGS_AND_SCANS'; -export const NAUTILUS_FETCH_SCAN_DETAIL = 'NAUTILUS_FETCH_SCAN_DETAIL'; - -// Don't need to proxy the nautilus api -const NAUTILUS_HOST = ''; -const NAUTILUS_BASE_URL = `${NAUTILUS_HOST}/api/nautilus/v1/repositories`; - -const DOCKERHUB_HOST = ''; -const DOCKERHUB_BASE_URL = `${DOCKERHUB_HOST}/v2/repositories`; - - -export const nautilusFetchTagsAndScans = ({ - id, - namespace, - reponame, - page = 1, - page_size = DEFAULT_TAGS_PAGE_SIZE, -}) => { - const scansUrl = `${NAUTILUS_BASE_URL}/summaries/${namespace}/${reponame}/`; - const tagsUrl = `${DOCKERHUB_BASE_URL}/${namespace}/${reponame}/tags/`; - return { - type: NAUTILUS_FETCH_TAGS_AND_SCANS, - meta: { id, namespace, reponame, page, page_size }, - payload: { - promise: new Promise((resolve, reject) => { - // Fetch all of the tags for this repository (paginated) - request.get(tagsUrl) - .set(jwt()) - .query({ page, page_size }) - .end() - .then( - // onSuccess of fetch tags, attempt to fetch the scans - ({ body: tags }) => { - // Fetch all of the scans for this repository - request.get(scansUrl) - .set(jwt()) - .end() - .then( - // onSuccess of fetch scans, return both tags and scans - ({ body: scans }) => { resolve([tags, scans]); }, - // onError of fetch scans, only return tags - () => { resolve([tags]); }, - ); - }, - // onError of fetch tags, reject the promise (error) - reject - ); - }), - }, - }; -}; - -export const nautilusFetchScanDetail = ({ id, namespace, reponame, tag }) => { - const url = `${NAUTILUS_BASE_URL}/result`; - const params = { detailed: 1, namespace, reponame, tag }; - return { - type: NAUTILUS_FETCH_SCAN_DETAIL, - meta: { ...params, id }, - payload: { - promise: - request - .get(url) - .set(jwt()) - .query(params) - .end() - .then(({ body }) => { - // The API response contains a 'scan' resource within an object - // inside 'scan_details' - const { image, latest_scan_status, scan_details } = body; - // Normalize the API result using the 'scan' normalizer schema - // TODO Kristie 5/11/16 Do we need the reponame and tag? - const normalized = normalize({ - latest_scan_status, - reponame: image.reponame, - tag: image.tag, - ...scan_details, - }, normalizers.scan); - return normalized; - }), - }, - }; -}; diff --git a/src/actions/publish.js b/src/actions/publish.js deleted file mode 100644 index a6d6d9433b..0000000000 --- a/src/actions/publish.js +++ /dev/null @@ -1,316 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { bearer } from 'lib/utils/authHeaders'; - -/* eslint-disable max-len */ -export const PUBLISH_ACCEPT_VENDOR_AGREEMENT = 'PUBLISH_ACCEPT_VENDOR_AGREEMENT'; -export const PUBLISH_ADD_PRODUCT_TIERS = 'PUBLISH_ADD_PRODUCT_TIERS'; -export const PUBLISH_CREATE_PRODUCT = 'PUBLISH_CREATE_PRODUCT'; -export const PUBLISH_DELETE_PRODUCT_TIERS = 'PUBLISH_DELETE_PRODUCT_TIERS'; -export const PUBLISH_FETCH_PRODUCT_DETAILS = 'PUBLISH_FETCH_PRODUCT_DETAILS'; -export const PUBLISH_FETCH_PRODUCT_LIST = 'PUBLISH_FETCH_PRODUCT_LIST'; -export const PUBLISH_FETCH_PRODUCT_TIERS = 'PUBLISH_FETCH_PRODUCT_TIERS'; -export const PUBLISH_GET_PUBLISHERS = 'PUBLISH_GET_PUBLISHERS'; -export const PUBLISH_GET_SIGNUP = 'PUBLISH_GET_SIGNUP'; -export const PUBLISH_GET_VENDOR_AGREEMENT = 'PUBLISH_GET_VENDOR_AGREEMENT'; -export const PUBLISH_SUBSCRIBE = 'PUBLISH_SUBSCRIBE'; -export const PUBLISH_UPDATE_PRODUCT_DETAILS = 'PUBLISH_UPDATE_PRODUCT_DETAILS'; -export const PUBLISH_UPDATE_PRODUCT_REPOS = 'PUBLISH_UPDATE_PRODUCT_REPOS'; -export const PUBLISH_UPDATE_PRODUCT_TIERS = 'PUBLISH_UPDATE_PRODUCT_TIERS'; -export const PUBLISH_UPDATE_PUBLISHER_INFO = 'PUBLISH_UPDATE_PUBLISHER_INFO'; - -const PUBLISH_HOST = ''; -export const PUBLISH_BASE_URL = `${PUBLISH_HOST}/api/publish/v1`; - -export const publishSubscribe = ({ - first_name, - last_name, - company, - phone_number, - email, -}) => { - const url = `${PUBLISH_BASE_URL}/signups`; - return { - type: PUBLISH_SUBSCRIBE, - payload: { - promise: - request - .post(url) - .set(bearer()) - .send({ - first_name, - last_name, - company, - phone_number, - email, - }) - .end() - .then(res => res.body), - }, - }; -}; - -export const publishGetSignup = () => { - const url = `${PUBLISH_BASE_URL}/signups`; - return { - type: PUBLISH_GET_SIGNUP, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishGetPublishers = () => { - const url = `${PUBLISH_BASE_URL}/publishers`; - return { - type: PUBLISH_GET_PUBLISHERS, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -// NOTE: no reducers for this action yet -export const publishUpdatePublisherInfo = (data) => { - const url = `${PUBLISH_BASE_URL}/publishers`; - /* - data: - { - "email": "nandhini@docker.com", - "first_name": "Nandhini", - "last_name": "Santhanam", - "company": "Docker,Inc", - "phone_number": "2222222222", - "links": [{ - "name": "google.com", - "label": "website" - }] - } - */ - return { - type: PUBLISH_UPDATE_PUBLISHER_INFO, - payload: { - promise: - request - .patch(url) - .accept('application/json') - .set(bearer()) - .send(data) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishFetchProductList = () => { - const url = `${PUBLISH_BASE_URL}/products`; - return { - type: PUBLISH_FETCH_PRODUCT_LIST, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishFetchProductDetails = ({ product_id }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}`; - return { - type: PUBLISH_FETCH_PRODUCT_DETAILS, - payload: { - promise: - request - .get(url) - .set(bearer()) - .accept('application/json') - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishGetVendorAgreement = () => { - const url = `${PUBLISH_BASE_URL}/vendor-agreement`; - return { - type: PUBLISH_GET_VENDOR_AGREEMENT, - payload: { - promise: - request - .get(url) - .accept('application/json') - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -// NOTE: no reducers for this action yet -export const publishCreateProduct = ({ name, status, repositories }) => { - const body = { - name, - status, - repositories, - }; - const url = `${PUBLISH_BASE_URL}/products`; - return { - type: PUBLISH_CREATE_PRODUCT, - meta: body, - payload: { - promise: - request - .post(url) - .set(bearer()) - .send(body) - .accept('application/json') - .type('application/json') - .end() - .then((res) => res.body), - }, - }; -}; - -// NOTE: no reducers for this action yet -export const publishUpdateProductRepos = ({ product_id, repoSources }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/repositories`; - return { - type: PUBLISH_UPDATE_PRODUCT_REPOS, - payload: { - promise: - request - .put(url) - .set(bearer()) - .send(repoSources) - .accept('application/json') - .type('application/json') - .end() - .then((res) => res.body), - }, - }; -}; - -// NOTE: no reducers for this action yet -export const publishUpdateProductDetails = ({ product_id, details }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/`; - /* - details: - { - name, * required - status, * required - product_type, - full_description, - short_description, - categories, - platforms, - links, - screenshots, - } - */ - return { - type: PUBLISH_UPDATE_PRODUCT_DETAILS, - payload: { - promise: - request - .patch(url) - .set(bearer()) - .send(details) - .accept('application/json') - .type('application/json') - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishAcceptVendorAgreement = () => { - const url = `${PUBLISH_BASE_URL}/accept-vendor-agreement`; - return { - type: PUBLISH_ACCEPT_VENDOR_AGREEMENT, - payload: { - promise: - request - .post(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishFetchProductTiers = ({ product_id }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/rate-plans`; - return { - type: PUBLISH_FETCH_PRODUCT_TIERS, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishCreateProductTiers = ({ product_id, tiersList }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/rate-plans`; - return { - type: PUBLISH_ADD_PRODUCT_TIERS, - payload: { - promise: - request - .post(url) - .set(bearer()) - .send(tiersList) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishUpdateProductTiers = ({ product_id, tiersObject }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/rate-plans`; - return { - type: PUBLISH_UPDATE_PRODUCT_TIERS, - payload: { - promise: - request - .put(url) - .set(bearer()) - .send(tiersObject) - .end() - .then((res) => res.body), - }, - }; -}; - -export const publishDeleteProductTiers = ({ product_id, tier_id }) => { - const url = `${PUBLISH_BASE_URL}/products/${product_id}/rate-plans/${tier_id}`; - return { - type: PUBLISH_DELETE_PRODUCT_TIERS, - payload: { - promise: - request - .del(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; diff --git a/src/actions/repository.js b/src/actions/repository.js deleted file mode 100644 index 5e0f8982bf..0000000000 --- a/src/actions/repository.js +++ /dev/null @@ -1,120 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { - DEFAULT_TAGS_PAGE_SIZE, - DEFAULT_COMMENTS_PAGE_SIZE, -} from 'lib/constants/defaults'; -import { jwt } from 'lib/utils/authHeaders'; - -/* eslint-disable max-len */ -export const REPOSITORY_FETCH_COMMENTS = 'REPOSITORY_FETCH_COMMENTS'; -export const REPOSITORY_FETCH_OWNED_NAMESPACES = 'REPOSITORY_FETCH_OWNED_NAMESPACES'; -export const REPOSITORY_FETCH_REPOSITORIES_FOR_NAMESPACE = 'REPOSITORY_FETCH_REPOSITORIES_FOR_NAMESPACE'; -export const REPOSITORY_FETCH_IMAGE_DETAIL = 'REPOSITORY_FETCH_IMAGE_DETAIL'; -export const REPOSITORY_FETCH_IMAGE_TAGS = 'REPOSITORY_FETCH_IMAGE_TAGS'; -/* eslint-enable max-len */ - -const DOCKERHUB_HOST = ''; -const DOCKERHUB_BASE_URL = `${DOCKERHUB_HOST}/v2/repositories`; - -export function repositoryFetchImageDetail({ - namespace, - reponame, -}) { - const url = `${DOCKERHUB_BASE_URL}/${namespace}/${reponame}/`; - return ({ - type: REPOSITORY_FETCH_IMAGE_DETAIL, - meta: { namespace, reponame }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .end() - .then((res) => res.body), - }, - }); -} - -export function repositoryFetchImageTags({ - // Temporary until the marketplace tags service is up - id, - isCertified = false, - namespace, - page = 1, - page_size = DEFAULT_TAGS_PAGE_SIZE, - reponame, -}) { - const url = `${DOCKERHUB_BASE_URL}/${namespace}/${reponame}/tags/`; - const params = { page_size, page }; - return ({ - type: REPOSITORY_FETCH_IMAGE_TAGS, - meta: { id, isCertified, namespace, reponame, page, page_size }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .query(params) - .end() - .then((res) => res.body), - }, - }); -} - - -export function repositoryFetchComments({ - id, - isCertified = false, - namespace, - reponame, - page = 1, - page_size = DEFAULT_COMMENTS_PAGE_SIZE, -}) { - const url = `${DOCKERHUB_BASE_URL}/${namespace}/${reponame}/comments/`; - const params = { page_size, page }; - return ({ - type: REPOSITORY_FETCH_COMMENTS, - meta: { id, isCertified, page, page_size, namespace, reponame }, - payload: { - promise: - request - .get(url) - .accept('application/json') - .query(params) - .end() - .then((res) => res.body), - }, - }); -} - -export function repositoryFetchOwnedNamespaces() { - const url = `${DOCKERHUB_BASE_URL}/namespaces/`; - return { - type: REPOSITORY_FETCH_OWNED_NAMESPACES, - payload: { - promise: - request - .get(url) - .set(jwt()) - .end() - .then((res) => res.body), - }, - }; -} - -export function repositoryFetchRepositoriesForNamespace({ namespace }) { - const url = `${DOCKERHUB_BASE_URL}/${namespace}/`; - return { - type: REPOSITORY_FETCH_REPOSITORIES_FOR_NAMESPACE, - meta: { namespace }, - payload: { - promise: - request - .get(url) - .set(jwt()) - .query({ page_size: 0 }) - .end() - .then((res) => res.body), - }, - }; -} diff --git a/src/actions/root.js b/src/actions/root.js deleted file mode 100644 index abee0fcedb..0000000000 --- a/src/actions/root.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createAction } from 'redux-actions'; -/* eslint-disable max-len */ - -// TODO: tests - nathan 06/3/16 Write tests for redirect -export const FINISH_PAGE_TRANSITION = 'FINISH_PAGE_TRANSITION'; -export const REDIRECT = 'REDIRECT'; -export const ROOT_CHANGE_GLOBAL_SEARCH_VALUE = 'ROOT_CHANGE_GLOBAL_SEARCH_VALUE'; -export const START_PAGE_TRANSITION = 'START_PAGE_TRANSITION'; - -export const redirectTo = createAction(REDIRECT); - -export const startPageTransition = createAction(START_PAGE_TRANSITION); -export const finishPageTransition = createAction(FINISH_PAGE_TRANSITION); - -export const rootChangeGlobalSearchValue = ({ value }) => { - return { - type: ROOT_CHANGE_GLOBAL_SEARCH_VALUE, - payload: { value }, - }; -}; - -/* eslint-enable */ diff --git a/src/actions/whitelist.js b/src/actions/whitelist.js deleted file mode 100644 index 3443066ed1..0000000000 --- a/src/actions/whitelist.js +++ /dev/null @@ -1,71 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import { bearer } from 'lib/utils/authHeaders'; - -/* eslint-disable max-len */ -export const WHITELIST_FETCH_AUTHORIZATION = 'WHITELIST_FETCH_AUTHORIZATION'; -export const WHITELIST_SUBSCRIBE_TO_BETA = 'WHITELIST_SUBSCRIBE_TO_BETA'; -export const WHITELIST_AM_I_WAITING = 'WHITELIST_AM_I_WAITING'; - -const WHITELIST_HOST = ''; -export const WHITELIST_BASE_URL = `${WHITELIST_HOST}/api/whitelist/v1`; - -//------------------------------------------------------------------------------ -// AUTHORIZATION -//------------------------------------------------------------------------------ - -export const whitelistFetchAuthorization = () => { - const url = `${WHITELIST_BASE_URL}/authorize`; - return { - type: WHITELIST_FETCH_AUTHORIZATION, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then((res) => res.body), - }, - }; -}; - -// http://store-stage.docker.com/api/whitelist/v1/consumer_interest -export const whitelistAmIWaiting = () => { - const url = `${WHITELIST_BASE_URL}/consumer_interest`; - return { - type: WHITELIST_AM_I_WAITING, - payload: { - promise: - request - .get(url) - .set(bearer()) - .end() - .then(res => res.body), - }, - }; -}; - -export const whitelistSubscribeToBeta = ({ - first_name, - last_name, - company, - email, -}) => { - const url = `${WHITELIST_BASE_URL}/consumer_interest`; - return { - type: WHITELIST_SUBSCRIBE_TO_BETA, - payload: { - promise: - request - .post(url) - .set(bearer()) - .send({ - first_name, - last_name, - company, - email, - }) - .end() - .then(res => res.body), - }, - }; -}; diff --git a/src/components/Beta/BetaForm/emailSelect.js b/src/components/Beta/BetaForm/emailSelect.js deleted file mode 100644 index b9bb624e3c..0000000000 --- a/src/components/Beta/BetaForm/emailSelect.js +++ /dev/null @@ -1,57 +0,0 @@ -import React, { PropTypes } from 'react'; -import { - Select, - Input, -} from 'common'; - -import css from './styles.css'; - -const Emails = ({ - accountEmails, - fields, - onSelectChange, - initialized = {}, -}) => { - let emails; - if (accountEmails.length <= 1) { - emails = ( - - ); - } else { - emails = ( - - - - - - - ); - } -} - -export default reduxForm({ - form: 'betaForm', - fields, - validate, -}, -mapStateToProps, -dispatcher, -)(BetaForm); diff --git a/src/components/Beta/BetaForm/styles.css b/src/components/Beta/BetaForm/styles.css deleted file mode 100644 index 541bd46767..0000000000 --- a/src/components/Beta/BetaForm/styles.css +++ /dev/null @@ -1,15 +0,0 @@ -@import "utilities"; - -.main { - @mixin clearfix; -} - -.input { - margin-bottom: $space-lg; - width: 100%; -} - -.submit { - cursor: pointer; - margin: $space-xs 0; -} diff --git a/src/components/Beta/BetaForm/validations.js b/src/components/Beta/BetaForm/validations.js deleted file mode 100644 index fa78eedfb4..0000000000 --- a/src/components/Beta/BetaForm/validations.js +++ /dev/null @@ -1,18 +0,0 @@ -export default (values) => { - const errors = {}; - const { - firstName, - lastName, - company, - } = values; - if (!firstName) { - errors.firstName = 'Required'; - } - if (!lastName) { - errors.lastName = 'Required'; - } - if (!company) { - errors.company = 'Required'; - } - return errors; -}; diff --git a/src/components/Beta/index.js b/src/components/Beta/index.js deleted file mode 100644 index 318ec4577c..0000000000 --- a/src/components/Beta/index.js +++ /dev/null @@ -1,210 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import isStaging from 'lib/utils/isStaging'; -import isDev from 'lib/utils/isDevelopment'; -import css from './styles.css'; -import LoginForm from 'common/LoginForm'; -import BetaForm from './BetaForm'; -import { - accountFetchCurrentUser, - accountFetchUserEmails, -} from 'actions/account'; -import { - whitelistAmIWaiting, - whitelistFetchAuthorization, -} from 'actions/whitelist'; -import routes from 'lib/constants/routes'; -import { readCookie } from 'lib/utils/cookie-handler'; -import DDCBanner from 'components/Home/DDCBanner'; -import HelpArticlesCards from 'components/Home/HelpArticlesCards'; -const { array, bool, func, object, shape } = PropTypes; - -const mapStateToProps = ({ account }) => { - const { currentUser, isCurrentUserBetalisted, userEmails } = account; - return { - currentUser: currentUser || {}, - isCurrentUserBetalisted, - userEmails, - }; -}; - -const dispatcher = { - accountFetchCurrentUser, - accountFetchUserEmails, - whitelistAmIWaiting, - whitelistFetchAuthorization, -}; - -@connect(mapStateToProps, dispatcher) -export default class Beta extends Component { - static propTypes = { - currentUser: object.isRequired, - isCurrentUserBetalisted: bool.isRequired, - location: object.isRequired, - userEmails: shape({ - results: array, - }), - accountFetchCurrentUser: func.isRequired, - accountFetchUserEmails: func.isRequired, - whitelistAmIWaiting: func.isRequired, - whitelistFetchAuthorization: func.isRequired, - } - - static contextTypes = { - router: shape({ - push: func.isRequired, - }).isRequired, - } - - state = { error: '' } - - onError = (error) => { - this.setState({ error }); - } - - maybeRenderError() { - const { error } = this.state; - return error ?
{error}
: null; - } - - betaSuccess = (values) => { - // onSuccess of beta signup submission - // We need to fetch whether a user has access to the whitelist - const { currentUser } = this.props; - this.props.whitelistAmIWaiting(); - analytics.identify(currentUser.id, { - firstName: values.firstName, - lastName: values.lastName, - company: values.company, - }, () => { - analytics.track('Signed Up for Private Beta'); - }); - }; - - loginSuccess = () => { - analytics.track('Logged In on Beta Page'); - - // If user is on the whitelist then redirect them to the landing page - this.props.whitelistFetchAuthorization().then(() => { - this.context.router.replace({ pathname: routes.home() }); - }); - - this.props.accountFetchCurrentUser().then(user => { - const username = user.username; - this.props.whitelistAmIWaiting(); - this.props.accountFetchUserEmails({ user: username }).then(emails => { - // If user is already authorized, send them to the landing page - - const primaryEmails = emails && - emails.results && - emails.results.filter(r => r.primary); - const primaryEmail = primaryEmails && - primaryEmails.length && - primaryEmails[0].email; - - if (user && primaryEmail) { - analytics.identify(user.id, { - Docker_Hub_User_Name__c: user.username, - username: user.username, - dockerUUID: user.id, - point_of_entry: 'docker_store', - email: primaryEmail, - }); - } - }); - }); - } - - renderLogin() { - const endpoint = '/v2/users/login/'; - let registerUrl = 'https://cloud.docker.com/'; - let forgotPasswordUrl = 'https://cloud.docker.com/reset-password'; - if (isStaging() || isDev()) { - registerUrl = 'https://cloud-stage.docker.com/'; - forgotPasswordUrl = 'https://cloud-stage.docker.com/reset-password'; - } - return ( -
-
- Login with your Docker ID to access the Beta -
- {this.maybeRenderError()} - -
- ); - } - - renderBetaSignup() { - const { userEmails } = this.props; - return ( -
-
- Currently Beta is invite-only. - Fill in the form below to request your invite. -
-
- -
-
- ); - } - - renderHero() { - const { - currentUser, - isCurrentUserBetalisted, - userEmails, - } = this.props; - let form; - const isLoggedIn = currentUser && currentUser.id || false; - if (isLoggedIn && !!userEmails.results && userEmails.results.length > 0) { - if (isCurrentUserBetalisted) { - form = ( -
- Thank you! We've received your request and we'll email you - when you are accepted to the Beta. -
- ); - } else { - form = this.renderBetaSignup(); - } - } else { - form = this.renderLogin(); - } - return ( -
-
-
-
Docker Store Beta
- {form} -
-
-
- ); - } - - render() { - return ( -
- {this.renderHero()} - - -
- ); - } -} diff --git a/src/components/Beta/styles.css b/src/components/Beta/styles.css deleted file mode 100644 index 8c80a1990d..0000000000 --- a/src/components/Beta/styles.css +++ /dev/null @@ -1,132 +0,0 @@ -@import "utilities"; - -$hero-height: 550px; -$featured-height: 250px; -$section-padding: 64px; -$color-ddc-background: #1b4255; - -/* Hero and NavBar */ -.home { - top: calc($topnav-height * -1); - position: relative; - width: 100%; -} - -.heroWrapper { - min-height: $hero-height; - position: relative; - padding: $topnav-height 0; - - /* set fallback in case multiple background images are not supported */ - background-color: $color-dodger-blue; - background-image: - linear-gradient(to bottom, rgba(0, 191, 165, 0.8) 0%, transparent 100%), - linear-gradient(-74deg, transparent 90%, rgba(255, 255, 255, 0.23) 20%), - linear-gradient(-74deg, transparent 83%, rgba(255, 255, 255, 0.18) 15%), - linear-gradient(-74deg, transparent 76%, rgba(255, 255, 255, 0.1) 15%), - linear-gradient(to top, #127ab1, #1799e0, #1796db); -} - -.title { - @mixin display2; - @mixin semiBold; -} - -.logo { - margin: 0; - padding: 0; -} - -.navBar { - display: flex; - height: $topnav-height; - color: $color-white; - align-items: center; - justify-content: space-between; - - .rightNavLinks { - @mixin fontSize 2; - display: inline-flex; - - & > * { - margin-right: $space-sm; - margin-left: $space-sm; - } - } -} - -.heroContent { - @mixin flexCentered; - height: calc($hero-height - $topnav-height); - margin-top: $topnav-height; - flex-direction: column; - text-align: center; - color: $color-white; -} - -.subText { - @mixin subhead; - margin-bottom: $space-xxxl; -} - -.login { - display: flex; - flex-direction: column; - align-items: center; -} - -.form { - display: inline-flex; - flex-direction: column; - width: $input-width-large; - button { - width: 100%; - } - .signupFlow { - display: flex; - justify-content: space-between; - margin: $space-xs 0; - } -} - -.betaThanks { - width: $input-width-xlarge; - margin: $space-xl 0; -} - -.error { - @mixin fontSize 2; - top: 0; - width: 100%; - text-align: center; - background: $color-variant-panic; - padding: $space-sm $space-xs; -} - -/* Content sections */ -.sectionWrapper { - padding-bottom: $section-padding; - & > div { - padding-top: $section-padding; - } -} - -/* Help Articles */ -.articles { - @mixin 2columnsResponsive 4, 8; -} - -.helpArticlesCards { - align-self: stretch; - margin-bottom: $space-sm; -} - -.helpArticlesHeadline { - @mixin fontSize 6; - margin-bottom: $space-sm; -} - -.helpArticlesDescription { - @mixin fontSize 2; - margin-bottom: $space-xl; -} diff --git a/src/components/Home/CategoryCards/index.js b/src/components/Home/CategoryCards/index.js deleted file mode 100644 index 8a1173fb84..0000000000 --- a/src/components/Home/CategoryCards/index.js +++ /dev/null @@ -1,167 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import css from './styles.css'; -import { - ApplicationServicesIcon, - DatabasesIcon, - MessagingServicesIcon, - OperatingSystemsIcon, - ProgrammingLanguagesIcon, - StorageIcon, - AnalyticsIcon, - // ApplicationFrameworkIcon, - InfrastructureIcon, - BaseImagesIcon, - FeaturedImagesIcon, - ToolsIcon, -} from 'common'; -import { - ANALYTICS_CATEGORY, - APPLICATION_FRAMEWORK_CATEGORY, - APPLICATION_INFRASTRUCTURE_CATEGORY, - APPLICATION_SERVICES_CATEGORY, - BASE_CATEGORY, - DATABASE_CATEGORY, - FEATURED_CATEGORY, - LANGUAGES_CATEGORY, - MESSAGING_CATEGORY, - OS_CATEGORY, - STORAGE_CATEGORY, - TOOLS_CATEGORY, -} from 'lib/constants/landingPage'; -import ChevronArrows from '../ChevronArrows'; -import findKey from 'lodash/findKey'; -const { func, object } = PropTypes; -const noOp = () => {}; - -export default class CategoryCards extends Component { - static propTypes = { - categories: object.isRequired, - categoryDescriptions: object.isRequired, - goToCategory: func.isRequired, - } - - state = { - firstCategoryIndex: 0, - } - - setFirstCategoryIndex = (i) => () => { - this.setState({ - firstCategoryIndex: i, - }); - } - - getIcon = (category) => { - switch (category.name) { - case ANALYTICS_CATEGORY: - return ; - // TODO Get real icon for framework - case APPLICATION_FRAMEWORK_CATEGORY: - return ; - case APPLICATION_INFRASTRUCTURE_CATEGORY: - return ; - case APPLICATION_SERVICES_CATEGORY: - return ; - case BASE_CATEGORY: - return ; - case DATABASE_CATEGORY: - return ; - case FEATURED_CATEGORY: - return ; - case LANGUAGES_CATEGORY: - return ; - case MESSAGING_CATEGORY: - return ; - case OS_CATEGORY: - return ; - case STORAGE_CATEGORY: - return ; - case TOOLS_CATEGORY: - return ; - default: - return ; - } - } - - renderCard = (category, index) => { - const { categories, goToCategory } = this.props; - const { name, description } = category; - const categoryName = findKey(categories, (label) => label === name); - const backgroundClass = `card${index}`; - return ( -
-
- {this.getIcon(category)} -
-
-
{name}
-
{description}
-
-
- ); - } - - render() { - const { - analytics, - application_framework, - application_services, - application_infrastructure, - base, - database, - featured, - languages, - messaging, - os, - storage, - tools, - } = this.props.categoryDescriptions; - const categories = [ - featured, - database, - base, - languages, - application_services, - messaging, - os, - analytics, - application_framework, - storage, - tools, - application_infrastructure, - ]; - const numCategories = categories.length; - const { firstCategoryIndex } = this.state; - const numShowing = 6; - const lastCategoryIndex = firstCategoryIndex + numShowing - 1; - const displayCategories = - categories.slice(firstCategoryIndex, lastCategoryIndex + 1); - const isPreviousDisabled = firstCategoryIndex === 0; - const isNextDisabled = lastCategoryIndex === numCategories - 1; - const onClickNext = isNextDisabled ? - noOp : this.setFirstCategoryIndex(lastCategoryIndex + 1); - const onClickPrevious = isPreviousDisabled ? - noOp : this.setFirstCategoryIndex(firstCategoryIndex - numShowing); - return ( -
-
-
- Everything you need to build applications for your business -
- -
-
- {displayCategories.map(this.renderCard)} -
-
- ); - } -} diff --git a/src/components/Home/CategoryCards/styles.css b/src/components/Home/CategoryCards/styles.css deleted file mode 100644 index ccdef46d1a..0000000000 --- a/src/components/Home/CategoryCards/styles.css +++ /dev/null @@ -1,80 +0,0 @@ -@import "utilities"; - -$category-icon-size: 100px; - -.sectionTitle { - @mixin fontSize 7; -} - -.sectionTitleWrapper { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: $space-xl; -} - -.categoryCards { - @mixin 3columnsResponsive; -} - -.card { - color: $color-white; - border-radius: $corner-size; - height: 240px; - margin-top: $space-sm; - position: relative; - overflow: hidden; - cursor: pointer; -} - -.cardContent { - position: absolute; - top: $space-xxxl; - left: 90px; - right: 54px; -} - -.icon { - @mixin square $category-icon-size; - fill: rgba(255, 255, 255, 0.35); -} - -.iconWrapper { - position: absolute; - top: 30px; - left: calc($category-icon-size * -0.2); -} - -.cardTitle { - @mixin fontSize 7; - font-weight: bold; - margin-bottom: $space-sm; -} - -.cardDescription { - @mixin fontSize 2; -} - -.card0 { - background-color: #8460ff; -} - -.card1 { - background-color: #ff4081; -} - -.card2 { - background-color: $color-fiord; -} - -.card3 { - background-color: $color-dodger-blue; -} - -.card4 { - background-color: $color-robins-egg-blue; -} - -.card5 { - background-color: $color-koromiko; -} diff --git a/src/components/Home/ChevronArrows/index.js b/src/components/Home/ChevronArrows/index.js deleted file mode 100644 index acb03ba3ed..0000000000 --- a/src/components/Home/ChevronArrows/index.js +++ /dev/null @@ -1,49 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import css from './styles.css'; -import { ChevronIcon } from 'common'; -import classnames from 'classnames'; -import { LARGE } from 'lib/constants/sizes'; -const { bool, func } = PropTypes; - -export default class ChevronArrows extends Component { - static propTypes = { - isNextDisabled: bool, - isPreviousDisabled: bool, - onClickNext: func.isRequired, - onClickPrevious: func.isRequired, - } - - _onClickNext = () => { - if (!this.props.isNextDisabled) { - this.props.onClickNext(); - } - } - - _onClickPrevious = () => { - if (!this.props.isPreviousDisabled) { - this.props.onClickPrevious(); - } - } - - render() { - const { isNextDisabled, isPreviousDisabled } = this.props; - const nextClasses = classnames({ - [css.icon]: true, - [css.disabled]: isNextDisabled, - }); - const previousClasses = classnames({ - [css.icon]: true, - [css.disabled]: isPreviousDisabled, - }); - return ( -
-
- -
-
- -
-
- ); - } -} diff --git a/src/components/Home/ChevronArrows/styles.css b/src/components/Home/ChevronArrows/styles.css deleted file mode 100644 index 873a3aeffa..0000000000 --- a/src/components/Home/ChevronArrows/styles.css +++ /dev/null @@ -1,44 +0,0 @@ -@import "utilities"; - -.icon { - fill: $color-fiord; -} - -.disabled { - fill: $color-loblolly; - user-select: none; -} - -.previous, -.next { - @mixin square $space-xxxl; - @mixin flexCentered; - color: $color-regent-gray; - display: inline-flex; - background-color: $color-white; - cursor: pointer; - &:hover { - background-color: $color-athens-gray; - } -} - -.previous { - box-shadow: - inset 0 -1px 0 0 #e0e4e7, - inset 1px 0 0 0 rgba(224, 227, 231, 0.6); -} - -.next { - box-shadow: - inset -1px 0 0 0 rgba(224, 227, 231, 0.6), - inset 0 -1px 0 0 #e0e4e7, - inset 1px 0 0 0 rgba(224, 227, 231, 0.6); -} - -.previous > svg { - transform: rotate(90deg); -} - -.next > svg { - transform: rotate(-90deg); -} diff --git a/src/components/Home/DDCBanner/index.js b/src/components/Home/DDCBanner/index.js deleted file mode 100644 index 52fdc7a0a4..0000000000 --- a/src/components/Home/DDCBanner/index.js +++ /dev/null @@ -1,70 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { Link } from 'react-router'; -import css from './styles.css'; -import { AngledTitleBox } from 'common'; -import { DDC } from 'lib/constants/landingPage'; -import { DDC_ID, DDC_TRIAL_PLAN } from 'lib/constants/eusa'; -import routes from 'lib/constants/routes'; -const { bool } = PropTypes; - -/* eslint-disable max-len */ -export default class DDCBanner extends Component { - static propTypes = { - isBetaPage: bool, - } - - render() { - const { isBetaPage } = this.props; - const { title, DTR, UCP, CS } = DDC; - const ddcDetail = routes.bundleDetail({ id: DDC_ID }); - const ddcPurchase = routes.bundleDetailPurchase({ id: DDC_ID }); - const ddcTrial = `${ddcPurchase}?plan=${DDC_TRIAL_PLAN}`; - let featuredContent; - if (isBetaPage) { - featuredContent = ( - - ); - } - const ddcWrapperClass = isBetaPage ? css.ddcWrapperBeta : css.ddcWrapper; - const ddcSectionClass = isBetaPage ? css.ddcSectionBeta : css.ddcSection; - const buttonClass = isBetaPage ? css.buttonBeta : css.button; - return ( -
-
- {featuredContent} -
-
-
-
{title}
- - 30 Day FREE Evaluation - - - Get Datacenter - -
-
-
-
-
{DTR.name}
-
{DTR.description}
-
-
-
{UCP.name}
-
{UCP.description}
-
-
-
{CS.name}
-
{CS.description}
-
-
-
-
-
- ); - } -} -/* eslint-enable */ diff --git a/src/components/Home/DDCBanner/styles.css b/src/components/Home/DDCBanner/styles.css deleted file mode 100644 index dba3840da3..0000000000 --- a/src/components/Home/DDCBanner/styles.css +++ /dev/null @@ -1,89 +0,0 @@ -@import "utilities"; - -$color-ddc-background: #1b4255; - -/* DDC */ -.ddcWrapper { - background-color: $color-ddc-background; - color: $color-white; -} - -.ddcWrapperBeta { - background-color: $color-white; - color: $color-fiord; -} - -.ddcSection, -.ddcSectionBeta { - @mixin 2columnsResponsive 4.5, 7.5; -} - -.ddcSection { - padding-top: $space-xxxxl; - padding-bottom: $space-xxxxl; -} - -.ddcSectionBeta { - padding-bottom: 64px; -} - -.titleBox { - padding-top: 64px; - padding-bottom: $space-xl; -} - -.titleAndButtons { - padding-bottom: $space-lg; - - @media (min-width: $screen-md) { - padding-bottom: 0; - } -} - -.DDCComponents { - @mixin 3columns 4, 4, 4; -} - -.DDC { - flex-direction: column; -} - -.DDCName { - @mixin fontSize 4; - margin-bottom: $space-xl; -} - -.DDCDescription { - @mixin fontSize 1; - width: 95%; -} - -.DDCtitle { - @mixin fontSize 7; - margin-bottom: $space-xl; - width: 80%; - & > a { - text-decoration: none; - } -} - -.button, -.buttonBeta { - @mixin fontSize 2; - @mixin semiBold; - text-decoration: none; - padding: $space-sm $space-md; - display: inline-block; - box-sizing: border-box; - border-radius: $corner-size; - margin-right: $space-sm; -} - -.button { - border: 2px solid $color-white; -} - -.buttonBeta { - color: $color-dodger-blue; - border: 2px solid $color-dodger-blue; -} diff --git a/src/components/Home/FeaturedContentRow/index.js b/src/components/Home/FeaturedContentRow/index.js deleted file mode 100644 index 0c478abac2..0000000000 --- a/src/components/Home/FeaturedContentRow/index.js +++ /dev/null @@ -1,99 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import css from './styles.css'; -import { AngledTitleBox } from 'common'; -import ChevronArrows from '../ChevronArrows'; -import ImageSearchResult from 'marketplace/Search/ImageSearchResult'; -const { array, bool, object, string } = PropTypes; -import classnames from 'classnames'; -const noOp = () => {}; - -export default class FeaturedContentRow extends Component { - static propTypes = { - className: string, - description: string.isRequired, - headline: string.isRequired, - images: array.isRequired, - isFetching: bool, - location: object.isRequired, - title: string.isRequired, - } - - state = { - firstImageIndex: 0, - } - - setFirstImageIndex = (i) => () => { - this.setState({ - firstImageIndex: i, - }); - } - - renderImage = (image) => { - const { location } = this.props; - return ( - - ); - } - - render() { - const { - description, - headline, - images = [], - title, - } = this.props; - const { firstImageIndex } = this.state; - const numImages = images.length; - - let numShowing = 3; - if (typeof window !== 'undefined' && - typeof window.matchMedia !== 'undefined') { - // Reduce the amount of results showing on a small screen - const isMedium = !window.matchMedia('(min-width: 960px)').matches; - const isSmall = !window.matchMedia('(min-width: 820px)').matches; - if (isSmall) { - numShowing = 1; - } else if (isMedium) { - numShowing = 2; - } - } - const lastImageIndex = firstImageIndex + numShowing - 1; - const displayImages = images.slice(firstImageIndex, lastImageIndex + 1); - // The first image showing is the first image available - const isPreviousDisabled = firstImageIndex === 0; - // The last image that could possibly be showing is the last image available - // or there is a not full row - const isNextDisabled = lastImageIndex >= numImages - 1; - const onClickNext = isNextDisabled ? - noOp : this.setFirstImageIndex(lastImageIndex + 1); - const onClickPrevious = isPreviousDisabled ? - noOp : this.setFirstImageIndex(firstImageIndex - numShowing); - const classes = classnames({ - [css.contentRow]: true, - [this.props.className]: !!this.props.className, - }); - return ( -
-
- -
{headline}
-
{description}
- -
-
- {displayImages.map(this.renderImage)} -
-
- ); - } -} diff --git a/src/components/Home/FeaturedContentRow/styles.css b/src/components/Home/FeaturedContentRow/styles.css deleted file mode 100644 index eea4b9f150..0000000000 --- a/src/components/Home/FeaturedContentRow/styles.css +++ /dev/null @@ -1,43 +0,0 @@ -@import "utilities"; - -.contentRow { - @mixin 2columns 3, 9; -} - -.images { - lost-flex-container: row; - justify-content: center; - & > * { - lost-column: 1; - } - - @media (min-width: $screen-md) { - & > * { - lost-column: 1/3; - } - } -} - -.contentDescription { - padding-right: $space-lg; - min-width: 240px; -} - -.title { - margin-bottom: $space-xl; -} - -.headline { - @mixin fontSize 7; - margin-bottom: $space-sm; -} - -.description { - @mixin fontSize 2; - margin-bottom: $space-xl; -} - -div.imageWrapper { - padding-top: 0; - margin-bottom: $space-sm; -} diff --git a/src/components/Home/HelpArticlesCards/index.js b/src/components/Home/HelpArticlesCards/index.js deleted file mode 100644 index 622d7d2155..0000000000 --- a/src/components/Home/HelpArticlesCards/index.js +++ /dev/null @@ -1,53 +0,0 @@ -import React, { Component } from 'react'; -import css from './styles.css'; -import { Card, AngledTitleBox } from 'common'; -import { helpArticles } from 'lib/constants/landingPage'; -const { - // small, - // large, - blogPost, -} = helpArticles; - -/* eslint-disable max-len */ -export default class HelpArticlesCards extends Component { - // Two card article layout - leaving for when we switch back - // render() { - // return ( - //
- // - // - //
{small.name}
- //
- // {small.description} - //
- //
- // - // - //
{large.name}
- //
- // {large.description} - //
- //
- //
- // ); - // } - - render() { - const blogPostLink = 'https://blog.docker.com/2016/06/docker-store/'; - return ( -
- - -
{blogPost.name}
-
- {blogPost.description} -
- - Read More - -
-
- ); - } -} -/* eslint-enable */ diff --git a/src/components/Home/HelpArticlesCards/styles.css b/src/components/Home/HelpArticlesCards/styles.css deleted file mode 100644 index 1549261000..0000000000 --- a/src/components/Home/HelpArticlesCards/styles.css +++ /dev/null @@ -1,32 +0,0 @@ -@import "utilities"; - -/* Help Articles */ -.articles { - @mixin wrapped; - padding-top: 64px; - padding-bottom: 64px; -} - -.helpArticlesCards { - align-self: stretch; -} - -.titleBox { - margin-bottom: $space-xl; -} - -.helpArticlesHeadline { - @mixin fontSize 6; - margin-bottom: $space-sm; -} - -.helpArticlesDescription { - @mixin fontSize 2; - margin-bottom: $space-xl; -} - -.link { - @mixin fontSize 2; - @mixin semiBold; - color: $color-fiord; -} diff --git a/src/components/Home/SearchWithAutocomplete/index.js b/src/components/Home/SearchWithAutocomplete/index.js deleted file mode 100644 index 74e788d86c..0000000000 --- a/src/components/Home/SearchWithAutocomplete/index.js +++ /dev/null @@ -1,147 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import css from './styles.css'; -import { AutocompleteSearchBar } from 'common'; -import { - marketplaceFetchAutocompleteSuggestions, - marketplaceSearch, -} from 'actions/marketplace'; -import { rootChangeGlobalSearchValue } from 'actions/root'; -import formatCategories from 'lib/utils/format-categories'; -import routes from 'lib/constants/routes'; -import debounce from 'lodash/debounce'; -import { DEFAULT_DEBOUNCE_TIME } from 'lib/constants/defaults'; -const { array, bool, func, object, shape } = PropTypes; - -const mapStateToProps = ({ root }) => { - const { autocomplete } = root; - return { autocomplete }; -}; - -const dispatcher = { - marketplaceFetchAutocompleteSuggestions, - marketplaceSearch, - rootChangeGlobalSearchValue, -}; - -/* - * Search to be used in the LandingPage with the same autocomplete functionality - * as the global search bar - */ -@connect(mapStateToProps, dispatcher) -export default class SearchWithAutocomplete extends Component { - static propTypes = { - autocomplete: shape({ - isFetching: bool, - suggestions: array, - }), - location: object.isRequired, - marketplaceFetchAutocompleteSuggestions: func.isRequired, - marketplaceSearch: func.isRequired, - rootChangeGlobalSearchValue: func.isRequired, - } - - static contextTypes = { - router: shape({ - push: func.isRequired, - }).isRequired, - } - - constructor(props) { - super(props); - // Make sure there is one debounce function per component instance - // http://stackoverflow.com/a/28046731/5965502 - this.debouncedFetchAutocompleteSuggestions = debounce( - this.debouncedFetchAutocompleteSuggestions, - DEFAULT_DEBOUNCE_TIME - ); - } - - state = { - searchQuery: '', - } - - componentWillUnmount() { - this.debouncedFetchAutocompleteSuggestions.cancel(); - } - - onSearchQueryChange = (e, value) => { - // Remove this synthetic event from the pool so that we can still access the - // event asyncronously (for debouncing) - // https://facebook.github.io/react/docs/events.html#event-pooling - e.persist(); - // change the value showing in the search bar - this.setState({ searchQuery: value }); - // fetch new suggestions (debounced) - this.debouncedFetchAutocompleteSuggestions(e, value); - } - - onSelectAutosuggestItem = (value, item) => { - const { id } = item; - // Jump to the product detail page for this result - const detail = routes.imageDetail({ id }); - this.context.router.push(detail); - } - - debouncedFetchAutocompleteSuggestions = (e, value) => { - this.props.marketplaceFetchAutocompleteSuggestions({ q: value }); - } - - // Search Bar form has been submitted - search = (q) => { - // change the value in the global search bar - // this.props.rootChangeGlobalSearchValue({ value }); - // fire search action and transition to search results page - this.props.marketplaceSearch({ q }); - const pathname = routes.search(); - const { state } = this.props.location; - // search from global search bar will have a query (q) (no page num or size) - const query = { q }; - this.context.router.push({ pathname, query, state }); - } - - renderAutocompleteItem = (item, isHighlighted) => { - const { id, name, categories } = item; - const catNames = formatCategories(categories); - const catText = catNames ? ` in ${catNames}` : ''; - const itemClass = isHighlighted ? css.highlightedResult : css.result; - return ( -
- {name} - {catText} -
- ); - }; - - render() { - const { autocomplete } = this.props; - const { searchQuery } = this.state; - const { suggestions = [] } = autocomplete; - const menuTitle = ( -
- Suggested Results -
- ); - const getItemValue = (item) => item.id; - const classNames = { - icon: css.icon, - input: css.input, - wrapper: css.wrapper, - }; - return ( - - ); - } -} diff --git a/src/components/Home/SearchWithAutocomplete/styles.css b/src/components/Home/SearchWithAutocomplete/styles.css deleted file mode 100644 index e168843cf3..0000000000 --- a/src/components/Home/SearchWithAutocomplete/styles.css +++ /dev/null @@ -1,59 +0,0 @@ -@import "utilities"; - -/* Search Bar */ -$search-bar-height: 58px; - -/* SVG size SMALL */ -$icon-offset: calc(($search-bar-height - $icon-size-small) / 2); - -.wrapper { - width: 60%; - min-width: 400px; -} - -.icon { - fill: $color-regent-gray; - position: absolute; - top: $icon-offset; - left: $icon-offset; -} - -.input { - @mixin fontSize 4; - text-indent: calc($icon-offset + $space-sm); - height: $search-bar-height; - color: $color-regent-gray; -} - -/* Search Autocomplete Results */ -.result { - padding: $space-sm; - cursor: default; - text-align: left; -} - -.highlightedResult { - padding: $space-sm; - cursor: default; - background: $color-variant-light-shade-hover; - text-align: left; -} - -.menuTitle { - @mixin fontSize 2; - font-weight: 600; - padding: $space-md $space-sm; - cursor: default; - color: $color-fiord; - text-align: left; -} - -.resultName { - @mixin fontSize 2; - color: $color-fiord; -} - -.resultCategories { - @mixin fontSize 1; - color: $color-regent-gray; -} diff --git a/src/components/Home/index.js b/src/components/Home/index.js deleted file mode 100644 index a5ba56beb2..0000000000 --- a/src/components/Home/index.js +++ /dev/null @@ -1,140 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import css from './styles.css'; -import { categoryDescriptions } from 'lib/constants/landingPage'; -import CategoryCards from './CategoryCards'; -import DDCBanner from './DDCBanner'; -import FeaturedContentRow from './FeaturedContentRow'; -import HelpArticlesCards from './HelpArticlesCards'; -import SearchWithAutocomplete from './SearchWithAutocomplete'; -import routes from 'lib/constants/routes'; -const { array, bool, func, object, shape } = PropTypes; - -const mapStateToProps = ({ marketplace, root }) => { - const { categories } = marketplace.filters; - const { mostPopular, featured } = root.landingPage; - return { - categories, - mostPopular, - featured, - }; -}; - -@connect(mapStateToProps) -export default class Home extends Component { - static propTypes = { - autocomplete: shape({ - isFetching: bool, - suggestions: array, - }), - categories: object.isRequired, - location: object.isRequired, - mostPopular: shape({ - isFetching: bool, - images: array, - }), - featured: shape({ - isFetching: bool, - images: array, - }), - } - - static contextTypes = { - router: shape({ - push: func.isRequired, - }).isRequired, - } - - goToCategory = (category) => () => { - const query = { category }; - const { state } = this.props.location; - const pathname = routes.search(); - this.context.router.push({ pathname, query, state }); - } - - renderHero() { - return ( -
-
-
-
Search The Docker Store
-
- Find Trusted and Enterprise Ready Containers -
- -
-
-
- ); - } - - renderFeaturedRow1() { - const { location, featured } = this.props; - // TODO Kristie 7/18/16 Make this sound better :) - const featuredHeadline = 'Featured Images'; - const featuredTitle = 'Image Spotlight'; - const featuredDescription = - 'Curated images, ready to use. Verified and secure.'; - return ( -
- -
- ); - } - - renderFeaturedRow2() { - const { location, mostPopular } = this.props; - const popularHeadline = 'Most Popular Containers on the Store'; - const popularTitle = 'Most Popular'; - const popularDescription = - 'Most popular content from our trusted partners on the Docker Store'; - return ( -
- -
- ); - } - - - renderCategoryCards() { - const { categories } = this.props; - return ( -
- -
- ); - } - - render() { - return ( -
- {this.renderHero()} - {this.renderFeaturedRow1()} - - {this.renderFeaturedRow2()} - {this.renderCategoryCards()} - -
- ); - } -} diff --git a/src/components/Home/styles.css b/src/components/Home/styles.css deleted file mode 100644 index 3633406885..0000000000 --- a/src/components/Home/styles.css +++ /dev/null @@ -1,76 +0,0 @@ -@import "utilities"; - -$hero-height: 500px; -$section-padding: 64px; - -/* Hero and NavBar */ -.home { - top: calc($topnav-height * -1); - position: relative; - width: 100%; -} - -.heroWrapper { - min-height: $hero-height; - position: relative; - padding: $topnav-height 0; - - /* set fallback in case multiple background images are not supported */ - background-color: $color-dodger-blue; - background-image: - linear-gradient(to bottom, rgba(0, 191, 165, 0.8) 0%, transparent 100%), - linear-gradient(-74deg, transparent 90%, rgba(255, 255, 255, 0.23) 20%), - linear-gradient(-74deg, transparent 83%, rgba(255, 255, 255, 0.18) 15%), - linear-gradient(-74deg, transparent 76%, rgba(255, 255, 255, 0.1) 15%), - linear-gradient(to top, #127ab1, #1799e0, #1796db); -} - -.title { - @mixin display2; - @mixin semiBold; -} - -.logo { - margin: 0; - padding: 0; -} - -.navBar { - display: flex; - height: $topnav-height; - color: $color-white; - align-items: center; - justify-content: space-between; - - .rightNavLinks { - @mixin fontSize 2; - display: inline-flex; - - & > * { - margin-right: $space-sm; - margin-left: $space-sm; - } - } -} - -.heroContent { - @mixin flexCentered; - height: $hero-height; - flex-direction: column; - text-align: center; - color: $color-white; -} - -.subText { - @mixin headline; - margin-bottom: $space-xxxl; -} - -/* Content sections */ -.sectionWrapper { - padding-bottom: $section-padding; -} - -.paddedRow { - padding-top: $section-padding; -} diff --git a/src/components/Login/LoginForm/index.js b/src/components/Login/LoginForm/index.js deleted file mode 100644 index fbd0f016d3..0000000000 --- a/src/components/Login/LoginForm/index.js +++ /dev/null @@ -1,222 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { post } from 'superagent'; -import Input from 'common/Input'; -import Button from 'common/Button'; -import css from './styles.css'; -import isValidPassword from 'lib/utils/password-validator'; - -const { string, func, bool } = PropTypes; - -// Not sure where this should go yet -const isValidDockerID = (val = '') => val.length; - -// NOTE: This component has to be refactored, as it was developed -// in a rush for Docker Store's launch -export default class LoginForm extends Component { - static propTypes = { - endpoint: string, - onSuccess: func, - onError: func, - autoFocus: bool, - csrftoken: string, - } - - static defaultProps = { - onSuccess() {}, - onError() {}, - } - - static getInput(value, label) { - return ( - - ); - } - - state = { - id: '', - password: '', - inProgress: false, - errors: { - id: '', - password: '', - - // This field is disregarded in the form. - // If we encounter it through the ajax call, - // it's passed as-is to the onError callback() - // detail: '', - }, - } - - getHintStyle(value) { - return !value ? { color: 'white', opacity: 0.6 } : null; - } - - handleChange(which, ev) { - this.setState({ [which]: ev.target.value }); - } - - isValidState() { - const { id, password } = this.state; - return isValidDockerID(id) && isValidPassword(password); - } - - validateDefault(which, { allowEmpty = false } = {}) { - const { id, password } = this.state; - let errors = Object.assign({}, this.state.errors); - - const errorId = () => { - if ((allowEmpty && !id.length) || isValidDockerID(id)) return null; - return ' '; - }; - - const errorPassword = () => { - if ((allowEmpty && !password.length) || isValidPassword(password)) { - return null; - } - return ' '; - }; - - switch (which) { - case 'id': errors.id = errorId(); break; - case 'password': errors.password = errorPassword(); break; - default: - errors = { - id: errorId(), - password: errorPassword(), - }; - } - - this.setState({ errors }); - } - - handleSubmit = (ev) => { - ev.preventDefault(); - - if (!this.isValidState()) { - this.validateDefault(); - return; - } - - const { password } = this.state; - const id = this.state.id && this.state.id.toLowerCase(); - const { endpoint, onSuccess, onError, csrftoken } = this.props; - - this.setState({ - inProgress: true, - errors: { - id: null, - password: null, - }, - }); - - const req = post(endpoint) - .set('Content-Type', 'application/json') - .set('Accept', 'application/json'); - - if (csrftoken) { - req.set('X-CSRFToken', csrftoken); - } - - req.send({ password, username: id }).end((err, res) => { - this.setState({ inProgress: false }); - if (err) { - const errors = {}; - let body = {}; - - try { - body = JSON.parse(res.text); - } catch (e) { - onError(res.text); - return; - } - - if (err.status === 401) { - errors.id = ' '; - errors.password = ' '; - } - - if (body.detail) { - onError(body.detail); - } - - if (body.username) { - errors.id = body.username[0]; - } - - if (body.password) { - errors.password = body.password[0]; - } - - if (Object.keys(errors).length) { - this.setState({ errors }); - } - - return; - } - - onSuccess({ username: id, token: res.body.token }); - }); - } - - resetFields() { - this.setState({ id: '', password: '' }); - } - - renderInputID(value) { - const { autoFocus } = this.props; - const baseInput = LoginForm.getInput(value, 'Docker ID'); - const errorText = this.state.errors.id; - const hintStyle = this.getHintStyle(value); - const onChange = (ev) => this.handleChange('id', ev); - const onBlur = () => this.validateDefault('id', { allowEmpty: true }); - return React.cloneElement( - baseInput, - { onChange, onBlur, hintStyle, errorText, autoFocus } - ); - } - - renderInputPassword(value) { - const baseInput = LoginForm.getInput(value, 'Password'); - const errorText = this.state.errors.password; - const hintStyle = this.getHintStyle(value); - const onChange = (ev) => this.handleChange('password', ev); - const onBlur = () => this.validateDefault('password', { allowEmpty: true }); - return React.cloneElement( - baseInput, - { onChange, onBlur, hintStyle, errorText, type: 'password' } - ); - } - - render() { - const { id, password, inProgress } = this.state; - const inputID = this.renderInputID(id); - const inputPassword = this.renderInputPassword(password); - - return ( -
-
- {inputID} - {inputPassword} - -
-
- ); - } -} diff --git a/src/components/Login/LoginForm/styles.css b/src/components/Login/LoginForm/styles.css deleted file mode 100644 index 6d16231ae8..0000000000 --- a/src/components/Login/LoginForm/styles.css +++ /dev/null @@ -1,19 +0,0 @@ -@import "utilities"; - -.main { - @mixin clearfix; -} - -.input { - margin-bottom: $space-lg; - width: 100%; -} - -.login { - cursor: pointer; - float: right; - margin-left: 0; - margin-right: 0; - margin-top: $space-xl; - width: 110px; -} diff --git a/src/components/Login/index.js b/src/components/Login/index.js deleted file mode 100644 index 8abf623f21..0000000000 --- a/src/components/Login/index.js +++ /dev/null @@ -1,100 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import { Link } from 'react-router'; -import staticBox from 'lib/decorators/StaticBox'; -import { readCookie } from 'lib/utils/cookie-handler'; -import isStaging from 'lib/utils/isStaging'; -import isDev from 'lib/utils/isDevelopment'; -import { - accountFetchCurrentUser, - accountFetchUserEmails, -} from 'actions/account'; -import { DockerFlatIcon as DockerFlat } from 'common/Icon'; -import LoginForm from './LoginForm'; -import css from './styles.css'; -import qs from 'qs'; -import { - isValidUrl, - isQsPathSecure, -} from 'lib/utils/url-utils'; -import routes from 'lib/constants/routes'; - -const { func, shape } = PropTypes; -const dispatcher = { accountFetchCurrentUser, accountFetchUserEmails }; - -@staticBox -@connect(null, dispatcher) -export default class Login extends Component { - static propTypes = { - accountFetchCurrentUser: func.isRequired, - accountFetchUserEmails: func.isRequired, - } - - static contextTypes = { - router: shape({ - replace: func.isRequired, - }).isRequired, - } - - state = { error: '' } - - onError = (error) => { - this.setState({ error }); - } - - navigate = () => { - let query = window && window.location.search; - // Scrape off first '?' from search - if (query[0] === '?') { - query = query.substring(1, query.length); - } - const { next } = qs.parse(query); - const nextUrl = `${window.location.origin}${next}`; - - if (isValidUrl(nextUrl) && isQsPathSecure(next)) { - window.location = nextUrl; - } else { - window.location = routes.home(); - } - } - - maybeRenderError() { - const { error } = this.state; - return error ?
{error}
: null; - } - - render() { - const endpoint = '/v2/users/login/'; - let registerUrl = 'https://cloud.docker.com/'; - let forgotPasswordUrl = 'https://cloud.docker.com/reset-password'; - if (isStaging() || isDev()) { - registerUrl = 'https://cloud-stage.docker.com/'; - forgotPasswordUrl = 'https://cloud-stage.docker.com/reset-password'; - } - return ( -
- {this.maybeRenderError()} -
- - - -

Welcome to the Docker Store

-

Login with your Docker ID

-
-
- -
- -
- ); - } -} diff --git a/src/components/Login/styles.css b/src/components/Login/styles.css deleted file mode 100644 index d242d78b55..0000000000 --- a/src/components/Login/styles.css +++ /dev/null @@ -1,60 +0,0 @@ -@import "utilities"; - -.banner { - text-align: center; - margin-bottom: $space-xxxxl; - - svg { - @mixin square 70px; - fill: $color-white; - } - - h1 { - @mixin fontSize 5; - font-weight: 700; - margin: 0; - } - - p { - @mixin fontSize 2; - } -} - -.form { - margin-bottom: $space-xxxxl; -} - -.more { - position: absolute; - bottom: 20px; - width: 100%; - - a { - @mixin linkUnstyled; - display: inline-block; - width: 50%; - text-align: left; - padding-left: $space-lg; - - &:first-child { - padding-left: 0; - text-align: right; - padding-right: $space-lg; - border-right: 1px solid white; - } - - &:hover { - text-decoration: underline; - } - } -} - -.error { - @mixin fontSize 2; - position: absolute; - top: 0; - width: 100%; - text-align: center; - background: $color-variant-panic; - padding: $space-sm $space-xs; -} diff --git a/src/components/RouteNotFound404/index.js b/src/components/RouteNotFound404/index.js deleted file mode 100644 index 114dc7be2b..0000000000 --- a/src/components/RouteNotFound404/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import React, { Component } from 'react'; -import css from './styles.css'; - -// Note: must include image like this so that webpack picks it up -import image404 from 'lib/images/404@2x.png'; - -/* eslint-disable max-len */ - -export default class RouteNotFound404 extends Component { - render() { - return ( -
-
- 404 Route Not Found -
-
- ); - } -} - -/* eslint-enable */ diff --git a/src/components/RouteNotFound404/styles.css b/src/components/RouteNotFound404/styles.css deleted file mode 100644 index ce07403251..0000000000 --- a/src/components/RouteNotFound404/styles.css +++ /dev/null @@ -1,17 +0,0 @@ -@import "utilities"; - -.wrapper { - min-height: 100vh; - display: flex; - flex-direction: column; - & > div { - flex: 1 auto; - align-self: center; - } -} - -.img { - /* scale to persist square */ - max-width: 100vw; - max-height: 100vw; -} diff --git a/src/components/account/BillingProfile/AccountSelect/index.js b/src/components/account/BillingProfile/AccountSelect/index.js deleted file mode 100644 index 99eb292ae3..0000000000 --- a/src/components/account/BillingProfile/AccountSelect/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import React, { PropTypes } from 'react'; -import { Select } from '../lib/common'; -import { noOp } from '../lib/helpers'; -import css from './styles.css'; -const { string, func, array } = PropTypes; - -const Accounts = ({ options, onSelectChange, selectedNamespace }) => { - let accountSelects = null; - if (options.length > 1) { - accountSelects = ( -
-
- Account -
- - -
-
- - -
-
- - -
-
- Address -
-
- -
-
- - -
-
- - - ); - } else { - emails = ( - {}} - placeholder="Month" - onChange={onSelectChange('expMonth')} - className={monthClass} - options={generateMonths()} - ignoreCase - clearable={false} - /> - - -
-
- - - -
- - {warning} - - - ); - } -} - -const fields = [ - 'cardNumber', - 'cvv', - 'firstName', - 'lastName', - 'expMonth', - 'expYear', -]; - -const mapStateToProps = ({ account, billing }) => { - const { - profiles, - paymentMethods, - } = billing; - const { - namespaceObjects, - selectedNamespace, - } = account; - const selectedUser = namespaceObjects.results[selectedNamespace] || {}; - const billingProfile = profiles.results[selectedUser.id]; - return { - billingPaymentError: paymentMethods.error, - billingProfile, - }; -}; - -export default reduxForm({ - form: 'paymentMethodsForm', - fields, - validate, -}, -mapStateToProps, -)(PaymentMethodsForm); diff --git a/src/components/account/BillingProfile/PaymentMethods/PaymentForm/styles.css b/src/components/account/BillingProfile/PaymentMethods/PaymentForm/styles.css deleted file mode 100644 index 9d633a1d99..0000000000 --- a/src/components/account/BillingProfile/PaymentMethods/PaymentForm/styles.css +++ /dev/null @@ -1,49 +0,0 @@ -@import "utilities"; - -.form { - padding: $space-sm; -} - -.row { - @mixin 2columns 6, 6; -} - -.cardRow { - @mixin 3columns 6, 2, 4; - margin-top: $space-md; -} - -.postalRow { - @mixin 3columns 4, 2, 6; -} - -.title { - @mixin fontSize 2; - color: $color-fiord; - font-weight: bold; -} - -.error { - @mixin fontSize 2; - font-weight: bold; - color: $color-variant-panic; -} - -.submit { - cursor: pointer; - margin-top: $space-lg; -} - -.warning { - color: $color-variant-panic; - margin - display: flex; - flex-direction: column; - margin: 0 $space-md; - - .icon { - display: flex; - align-items: center; - justify-content: center; - } -} diff --git a/src/components/account/BillingProfile/PaymentMethods/PaymentForm/validations.js b/src/components/account/BillingProfile/PaymentMethods/PaymentForm/validations.js deleted file mode 100644 index a1e7d20c70..0000000000 --- a/src/components/account/BillingProfile/PaymentMethods/PaymentForm/validations.js +++ /dev/null @@ -1,47 +0,0 @@ -export default (values) => { - const errors = {}; - const { - cardNumber, - cvv, - expMonth, - expYear, - firstName, - lastName, - } = values; - if (!firstName) { - errors.firstName = 'Required'; - } - if (!lastName) { - errors.lastName = 'Required'; - } - if (!cardNumber) { - errors.cardNumber = 'Required'; - } - if (!cvv) { - errors.cvv = 'Required'; - } - if (!expMonth) { - errors.expMonth = 'Required'; - } - if (!expYear) { - errors.expYear = 'Required'; - } - const date = new Date(); - if ( - values.expMonth < (date.getMonth() + 1) && - values.expYear <= date.getFullYear() - ) { - errors.expMonth = 'Required'; - errors.expYear = 'Required'; - } - /* - TODO: feature - nathan 05/19/16 - Luhn card number check. - cvv check. - expiration check. - billing address validations check - email check? - account check? (already has a plan associated) - */ - return errors; -}; diff --git a/src/components/account/BillingProfile/PaymentMethods/index.js b/src/components/account/BillingProfile/PaymentMethods/index.js deleted file mode 100644 index a493889a0b..0000000000 --- a/src/components/account/BillingProfile/PaymentMethods/index.js +++ /dev/null @@ -1,310 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import map from 'lodash/map'; -import isEmpty from 'lodash/isEmpty'; -import sortBy from 'lodash/sortBy'; -import find from 'lodash/find'; -import { - billingCreatePaymentMethod, - billingDeletePaymentMethod, - billingFetchPaymentMethods, - billingSetDefaultPaymentMethod, - billingUpdateProfile, -} from '../actions'; -import { - Card, - Button, - FetchingError, - FullscreenLoading, - WarningIcon, -} from '../lib/common'; -import { - TINY, -} from '../lib/constants'; -import PaymentForm from './PaymentForm'; -import ContactForm from './ContactForm'; -import css from './styles.css'; - -const dispatcher = { - billingCreatePaymentMethod, - billingDeletePaymentMethod, - billingFetchPaymentMethods, - billingSetDefaultPaymentMethod, - billingUpdateProfile, -}; - -const mapStateToProps = ({ billing }) => { - const { - paymentMethods, - } = billing; - return { - paymentMethods, - }; -}; - -const { object, bool, shape, func } = PropTypes; - -@connect(mapStateToProps, dispatcher) -export default class PaymentMethodsView extends Component { - static propTypes = { - billingProfile: object.isRequired, - paymentMethods: shape({ - isFetching: bool.isRequired, - results: object.isrequired, - }), - selectedUser: object.isRequired, - // actions - billingCreatePaymentMethod: func.isRequired, - billingDeletePaymentMethod: func.isRequired, - billingFetchPaymentMethods: func.isRequired, - billingSetDefaultPaymentMethod: func.isRequired, - billingUpdateProfile: func.isRequired, - } - - state = { - selectedCardId: '', - defaultPaymentWarning: '', - } - - setDefaultCard = (bfId) => () => { - const { - selectedUser, - billingSetDefaultPaymentMethod: setDefaultPaymentMethod, - billingFetchPaymentMethods: fetchPaymentMethods, - } = this.props; - const { id: docker_id } = selectedUser; - setDefaultPaymentMethod({ - card_id: bfId, - docker_id, - }).then(() => { - fetchPaymentMethods({ docker_id }); - }); - } - - addCard = (data, shouldFetch) => { - const { - billingProfile, - selectedUser, - billingCreatePaymentMethod: createPaymentMethod, - billingFetchPaymentMethods: fetchPaymentMethods, - } = this.props; - const { id: docker_id } = selectedUser; - const billforward_id = billingProfile && billingProfile.billforward_id; - const paymentInfo = { - billforward_id, - name_first: data.firstName, - name_last: data.lastName, - cvc: data.cvv, - number: data.cardNumber, - exp_month: data.expMonth, - exp_year: data.expYear, - }; - if (!!shouldFetch) { - return createPaymentMethod(paymentInfo).then(() => { - fetchPaymentMethods({ docker_id }); - }); - } - return createPaymentMethod(paymentInfo); - } - - replaceCard = (bfId) => (data) => { - const addCard = this.addCard; - const deleteCard = this.deleteCard; - addCard(data).then(() => { - deleteCard(bfId)(); - }); - } - - deleteCard = (bfId) => () => { - const { - selectedUser, - billingDeletePaymentMethod: deletePaymentMethod, - billingFetchPaymentMethods: fetchPaymentMethods, - } = this.props; - const { id: docker_id } = selectedUser; - deletePaymentMethod({ docker_id, card_id: bfId }).then(() => { - fetchPaymentMethods({ docker_id }); - }); - } - - updateBillingProfile = (values) => { - const { - selectedUser, - billingUpdateProfile: updateProfile, - } = this.props; - const { - address1, - city, - company, - country, - email, - firstName, - job, - lastName, - phone, - postalCode, - province, - } = values; - const docker_id = selectedUser.id; - const address = { - address_line_1: address1, - city, - province, - country, - post_code: postalCode, - primary_address: true, - }; - const submitData = { - addresses: [ - address, - ], - company_name: company, - docker_id, - email, - first_name: firstName, - job_function: job, - last_name: lastName, - phone_primary: phone, - }; - updateProfile(submitData).then(() => { - const keys = selectedUser.type === 'User' ? { - dockerUUID: selectedUser.id, - Docker_Hub_User_Name__c: selectedUser.username, - } : { - dockerUUID: selectedUser.id, - Docker_Hub_Organization_Name__c: selectedUser.orgname, - }; - - analytics.track('account_info_update', { - ...keys, - email, - firstName, - lastName, - jobFunction: job, - address: address1, - postalCode, - state: province, - city, - country, - phone, - }); - }); - } - - renderCardInfo = (card, idx) => { - const { - bf_payment_method_id: cardId, - description, - expiry_month, - expiry_year, - card_type, - default: defaultCard, - } = card; - const isDefault = defaultCard ? 'Default' : ''; - const endsWith = description.replace(/#*/, 'x'); - let selected = - cardId === this.state.selectedCardId ? css.selected : ''; - if (!this.state.selectedCardId && defaultCard) { - selected = css.selected; - } - const selectCard = () => { this.setState({ selectedCardId: cardId }); }; - return ( - - {isDefault} -
- {card_type} ending in {endsWith} -
-
- Expires: {expiry_month}/{expiry_year} -
-
- ); - } - - render() { - // TODO design - nathan make this GORGEOUS. because it's ugly af right now - const { - paymentMethods, - } = this.props; - const { - selectedCardId, - } = this.state; - if (paymentMethods.isFetching) { - return ; - } else if (!isEmpty(paymentMethods.fetchingError)) { - return ( -
- -
- ); - } else if (paymentMethods.results.length < 1) { - return ( - - No Payment Methods to show - - ); - } - let cardActions; - const defaultCard = find(paymentMethods.results, card => card.default); - let defaultSelected = false; - let paymentFormSubmit = this.addCard; - if (selectedCardId && defaultCard.bf_payment_method_id !== selectedCardId) { - cardActions = ( -
-
- - -
-
-   - Warning: Changing your default payment method will - change your default payment for ALL subscriptions -
-
- ); - } else if ( - defaultCard.bf_payment_method_id === selectedCardId || !selectedCardId - ) { - defaultSelected = true; - paymentFormSubmit = this.replaceCard(defaultCard.bf_payment_method_id); - } - - const sortedPaymentMethods = - sortBy(paymentMethods.results, method => !method.default); - - const splitForms = ( -
- - -
- ); - - return ( - -
-
Credit Cards
- {map(sortedPaymentMethods, this.renderCardInfo)} -
- {cardActions} - {splitForms} -
- ); - } -} diff --git a/src/components/account/BillingProfile/PaymentMethods/styles.css b/src/components/account/BillingProfile/PaymentMethods/styles.css deleted file mode 100644 index 448202a2aa..0000000000 --- a/src/components/account/BillingProfile/PaymentMethods/styles.css +++ /dev/null @@ -1,45 +0,0 @@ -@import "utilities"; - -.title { - @mixin fontSize 2; - color: $color-fiord; - font-weight: bold; -} - -.updateCardRow { - margin-bottom: $space-md; -} - -.warning { - color: $color-variant-panic; - margin - display: flex; - align-items: center; - margin: 0 $space-md; -} - -.paymentMethod { - display: inline-flex; - width: 22%; - min-width: 200px; - margin: $space-md; - &.selected { - border: 1px solid $color-variant-primary-hover; - } - &:hover { - border: 1px solid $color-variant-primary-light; - cursor: pointer; - } -} - -.splitForms { - @mixin 2columns 6, 6; - > div:first-child { - border-right: 1px solid $color-loblolly; - } -} - -.submit { - cursor: pointer; - margin: $space-xs $space-md; -} diff --git a/src/components/account/BillingProfile/actions.js b/src/components/account/BillingProfile/actions.js deleted file mode 100644 index acfa772362..0000000000 --- a/src/components/account/BillingProfile/actions.js +++ /dev/null @@ -1,39 +0,0 @@ -import { - billingCreatePaymentMethod, - billingDeletePaymentMethod, - billingFetchInvoices, - billingFetchPaymentMethods, - billingFetchProduct, - billingFetchProfile, - billingFetchProfileSubscriptions, - billingSetDefaultPaymentMethod, - billingUpdateProfile, -} from 'actions/billing'; - -import { - accountFetchCurrentUser, - accountFetchUser, - accountFetchUserEmails, - accountSelectNamespace, -} from 'actions/account'; - -import { - repositoryFetchOwnedNamespaces, -} from 'actions/repository'; - -export default { - accountFetchCurrentUser, - accountFetchUser, - accountFetchUserEmails, - accountSelectNamespace, - billingCreatePaymentMethod, - billingDeletePaymentMethod, - billingFetchInvoices, - billingFetchPaymentMethods, - billingFetchProduct, - billingFetchProfile, - billingFetchProfileSubscriptions, - billingSetDefaultPaymentMethod, - billingUpdateProfile, - repositoryFetchOwnedNamespaces, -}; diff --git a/src/components/account/BillingProfile/index.js b/src/components/account/BillingProfile/index.js deleted file mode 100644 index c450aa7a0d..0000000000 --- a/src/components/account/BillingProfile/index.js +++ /dev/null @@ -1,266 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; - -import InvoicesView from './Invoices'; -import PaymentMethodsView from './PaymentMethods'; - -import { - accountFetchCurrentUser, - accountFetchUser, - accountFetchUserEmails, - accountSelectNamespace, - billingFetchInvoices, - billingFetchPaymentMethods, - billingFetchProfile, - repositoryFetchOwnedNamespaces, -} from './actions'; -import { - AccountSelect, - Card, - FullscreenLoading, - Tab, - Tabs, -} from './lib/common'; -import { - PAYMENTS, - METHODS, -} from './lib/constants'; - -import css from './styles.css'; -const { arrayOf, func, object, string, shape, bool } = PropTypes; - -const mapStateToProps = ({ account, billing }) => { - const { - currentUser, - namespaceObjects, - ownedNamespaces, - selectedNamespace, - } = account; - const { - profiles, - } = billing; - return { - billingProfiles: profiles, - currentUser, - namespaceObjects, - ownedNamespaces, - selectedNamespace, - }; -}; -const dispatcher = { - accountFetchUser, - accountFetchUserEmails, - accountFetchCurrentUser, - accountSelectNamespace, - billingFetchInvoices, - billingFetchPaymentMethods, - billingFetchProfile, - repositoryFetchOwnedNamespaces, -}; - -@connect(mapStateToProps, dispatcher) -export default class BillingProfile extends Component { - static propTypes={ - billingProfiles: shape({ - isFetching: bool.isRequired, - results: object.isRequired, - }), - currentUser: object.isRequired, - namespaceObjects: object.isRequired, - // List of namespace strings owned by User - ownedNamespaces: arrayOf(string), - selectedNamespace: string.isRequired, - // Action Props - accountFetchUser: func.isRequired, - accountFetchUserEmails: func.isRequired, - accountFetchCurrentUser: func.isRequired, - accountSelectNamespace: func.isRequired, - billingFetchInvoices: func.isRequired, - billingFetchPaymentMethods: func.isRequired, - billingFetchProfile: func.isRequired, - repositoryFetchOwnedNamespaces: func.isRequired, - }; - - state = { - currentView: PAYMENTS, - isInitializing: true, - selectedNamespace: '', - } - - componentWillMount() { - const { - // actions - accountFetchCurrentUser: fetchCurrentUser, - accountFetchUserEmails: fetchUserEmails, - accountSelectNamespace: selectNamespace, - billingFetchInvoices: fetchInvoices, - billingFetchPaymentMethods: fetchPaymentMethods, - billingFetchProfile: fetchBillingProfiles, - repositoryFetchOwnedNamespaces: fetchOwnedNamespaces, - } = this.props; - Promise.when([ - fetchCurrentUser().then((userRes) => { - const { username: namespace, id: docker_id } = userRes.value; - return Promise.when([ - fetchInvoices({ docker_id }), - fetchUserEmails({ user: namespace }), - selectNamespace({ namespace }), - fetchBillingProfiles({ docker_id, isOrg: false }).then((res) => { - if (res.value.profile) { - fetchPaymentMethods({ docker_id }); - } - }), - ]); - }), - fetchOwnedNamespaces(), - ]).then(() => { - this.setState({ isInitializing: false }); - }).catch(() => { - this.setState({ isInitializing: false }); - }); - } - - onSelectPage = (e, value) => { - this.setState({ currentView: value }); - } - - onSelectNamespace = ({ value }) => { - const { - currentUser, - namespaceObjects, - // actions - accountFetchUser: fetchUser, - accountSelectNamespace: selectNamespace, - billingFetchPaymentMethods: fetchPaymentMethods, - billingFetchProfile: fetchBillingProfiles, - billingFetchInvoices: fetchInvoices, - } = this.props; - this.setState({ initializing: true }); - const fetchedNamespaces = namespaceObjects.results; - if (fetchedNamespaces[value]) { - const userOrg = fetchedNamespaces[value]; - const { type, id: docker_id } = userOrg; - const isOrg = type === 'Organization'; - return Promise.when([ - fetchInvoices({ docker_id }), - selectNamespace({ namespace: value }), - fetchBillingProfiles({ docker_id, isOrg }).then((res) => { - if (res.value.profile) { - fetchPaymentMethods({ docker_id }); - } - }), - ]).then(() => { - this.setState({ - isInitializing: false, - }); - }).catch(() => { - this.setState({ - isInitializing: false, - }); - }); - } - const isOrg = value !== currentUser.username; - // fetching user info vs. org info locally hits different api's which - // requires knowing which endpoint to hit. - // unnecessary in production since v2/users will redirect to v2/orgs - return fetchUser({ namespace: value, isOrg }).then((userRes) => { - const { id: docker_id } = userRes.value; - return Promise.when([ - fetchInvoices({ docker_id }), - selectNamespace({ namespace: value }), - fetchBillingProfiles({ docker_id, isOrg }) - .then((billingRes) => { - if (billingRes.value.profile) { - fetchPaymentMethods({ namespace: value, docker_id }); - } - }), - ]).then(() => { - this.setState({ - isInitializing: false, - }); - }).catch(() => { - this.setState({ - isInitializing: false, - }); - }); - }); - } - - generateSelectOptions(namespaces) { - return namespaces.map((option) => { - return { value: option, label: option }; - }); - } - - render() { - const { - currentView, - isInitializing, - } = this.state; - const { - billingProfiles, - namespaceObjects, - ownedNamespaces, - selectedNamespace, - } = this.props; - const isLoading = namespaceObjects.isFetching || billingProfiles.isFetching; - if (isInitializing || isLoading) { - return ; - } - const selectedUser = namespaceObjects.results[selectedNamespace]; - const billingProfile = billingProfiles.results[selectedUser.id]; - // IF NAMESPACE HAS NO BILLING PROFILE RENDER EMPTY CARD - if (!billingProfile) { - // TODO: design - nathan 6/8/16 - MAKE PRETTIER NO CONTENT PAGE - return ( -
-
- -
-
- No Billing Profile to display -
-
- ); - } - - let content; - if (currentView === PAYMENTS) { - content = ; - } else if (currentView === METHODS) { - content = ( - ); - } - return ( -
-
- - Billing History - Payment Methods - - -
-
- {content} -
-
- ); - } -} diff --git a/src/components/account/BillingProfile/lib/common.js b/src/components/account/BillingProfile/lib/common.js deleted file mode 100644 index e84d638898..0000000000 --- a/src/components/account/BillingProfile/lib/common.js +++ /dev/null @@ -1,11 +0,0 @@ -export AccountSelect from '../AccountSelect'; -export Button from 'common/Button'; -export Card from 'common/Card'; -export DownloadIcon from 'common/Icon/lib/Download'; -export FetchingError from 'common/FetchingError'; -export FullscreenLoading from 'common/FullscreenLoading'; -export Input from 'common/Input'; -export Select from 'common/Select'; -export Tab from 'common/Tab'; -export Tabs from 'common/Tabs'; -export WarningIcon from 'common/Icon/lib/Warning'; diff --git a/src/components/account/BillingProfile/lib/constants.js b/src/components/account/BillingProfile/lib/constants.js deleted file mode 100644 index 5172677e79..0000000000 --- a/src/components/account/BillingProfile/lib/constants.js +++ /dev/null @@ -1,17 +0,0 @@ -const PAYMENTS = 'Payments'; -const METHODS = 'Methods'; -const TINY = 'tiny'; -const SMALL = 'small'; -const REGULAR = 'regular'; -const LARGE = 'large'; -const XLARGE = 'xlarge'; - -export default { - PAYMENTS, - METHODS, - TINY, - SMALL, - REGULAR, - LARGE, - XLARGE, -}; diff --git a/src/components/account/BillingProfile/lib/countries.js b/src/components/account/BillingProfile/lib/countries.js deleted file mode 100644 index 00a48b9855..0000000000 --- a/src/components/account/BillingProfile/lib/countries.js +++ /dev/null @@ -1,8 +0,0 @@ -const countries = require('country-list')(); - -export const countryOptions = countries.getCodes().map(code => { - const label = countries.getName(code); - return { label, value: code }; -}); - -export const countryGetCodeFromName = name => countries.getCode(name); diff --git a/src/components/account/BillingProfile/lib/helpers.js b/src/components/account/BillingProfile/lib/helpers.js deleted file mode 100644 index 676ae121fd..0000000000 --- a/src/components/account/BillingProfile/lib/helpers.js +++ /dev/null @@ -1 +0,0 @@ -export const noOp = () => {}; diff --git a/src/components/account/BillingProfile/styles.css b/src/components/account/BillingProfile/styles.css deleted file mode 100644 index bc8c78dbd4..0000000000 --- a/src/components/account/BillingProfile/styles.css +++ /dev/null @@ -1,22 +0,0 @@ -@import "utilities"; - -.navigation { - @mixin 2columns 6, 6; -} - -.emptyNav { - display: flex; - justify-content: flex-end; -} - -.tabs { - display: flex; - align-items: center; - button { - cursor: pointer; - } -} - -.content { - margin: $space-xxl 0; -} diff --git a/src/components/account/Subscriptions/DDCInstructions/constants.js b/src/components/account/Subscriptions/DDCInstructions/constants.js deleted file mode 100644 index 07a19ccb93..0000000000 --- a/src/components/account/Subscriptions/DDCInstructions/constants.js +++ /dev/null @@ -1,88 +0,0 @@ -/* eslint-disable max-len */ - -/* Evaluate DDC on */ - -export const evaluationInstructions = { - toInstallDDC: { - 1: 'Get Docker Toolbox', - 2: 'Download license into your project directory', - 3: 'Run the following command in the same directory', - }, - pullCommand: '$ docker run alexmavr/ddc-in-a-box | bash', - scriptTiming: 'The script will take approximately 15-20 mins depending on your internet connectivity.', -}; - -// Right side Additional Information -export const additionalInformation = [ - { - title: 'System Requirements', - bulletPoints: [ - '5GB hard drive space', - '2GB of RAM', - 'Internet connectivity (downloads ~4GB)', - 'docker-machine & bash (included in Docker Toolbox)', - 'Your license file downloaded to a directory on your machine', - ], - }, { - title: 'What this container does', - bulletPoints: [ - 'Creates a VM using docker-machine', - 'Installs Universal Control Plane 1.1', - 'Installs Trusted Registry 2.0', - 'Configures authentication in both systems with a default user', - 'Configures licensing in both products', - 'Configures UCP to trust the registry service in DTR', - ], - }, { - title: 'Advanced Options', - bulletPoints: [ - 'You can set 3 environment variables for this script, related to the use of docker-machine:', - ], - environmentVariables: [ - { - variable: 'MACHINE_DRIVER', - description: 'The default is \'virtualbox\'', - }, { - variable: 'MACHINE_DRIVER_FLAGS', - description: 'The default is "--virtualbox-memory 2048 --virtualbox-disk-size 16000"', - }, { - variable: 'MACHINE_NAME', - description: 'The default is = \'ddc-eval\'', - }, - ], - }, -]; - -/* Deploy on */ - -export const AWS = { - label: 'AWS using Quickstart', - url: 'https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=DockerDatacenter&templateURL=https://s3-us-west-2.amazonaws.com/ddc-on-aws-public/ddc_on_aws.json', -}; - -export const Azure = { - label: 'Microsoft Azure from the Marketplace ', - url: 'https://azure.microsoft.com/en-us/marketplace/partners/docker/dockerdatacenterdocker-datacenter/', -}; - -export const Linux = { - label: 'Linux', - url: 'https://docs.docker.com/docker-trusted-registry/cs-engine/install/', -}; - -// Links in the right column - -export const UCPGuide = { - label: 'Guide for Universal Control Plane', - url: 'https://docs.docker.com/ucp/install-sandbox/', -}; - -export const DTRGuide = { - label: 'Guide for Docker Trusted Registry', - url: 'https://docs.docker.com/docker-trusted-registry/install/install-dtr/', -}; - -export const prodInstall = { - label: 'Planning a Production Ready Install', - url: 'https://docs.docker.com/ucp/installation/plan-production-install/', -}; diff --git a/src/components/account/Subscriptions/DDCInstructions/index.js b/src/components/account/Subscriptions/DDCInstructions/index.js deleted file mode 100644 index 2bcf048f54..0000000000 --- a/src/components/account/Subscriptions/DDCInstructions/index.js +++ /dev/null @@ -1,185 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { - ClockIcon, - AmazonWebServicesIcon, - AzureIcon, - AppleIcon, - WindowsTextIcon, - LinuxIcon, - BackButtonArea, - CopyPullCommand, - Expand, -} from 'common'; -import { - additionalInformation, - AWS, - Azure, - DTRGuide, - evaluationInstructions, - Linux, - prodInstall, - UCPGuide, -} from './constants.js'; -import map from 'lodash/map'; -import { DDC_ID } from 'lib/constants/eusa'; -import css from './styles.css'; -const { func } = PropTypes; - -export default class DDCInstructions extends Component { - static propTypes = { - showSubscriptionDetail: func.isRequired, - } - - showSubscriptionDetail = () => { - this.props.showSubscriptionDetail(DDC_ID); - } - - // utility method to generate links - linkTo = ({ url, label }) => { - return {label}; - } - - renderEvaluateDDCOn() { - const { - toInstallDDC, - pullCommand, - scriptTiming, - } = evaluationInstructions; - const clock = ; - const toolboxLink = 'https://docs.docker.com/toolbox/overview/'; - const getDockerLink = this.linkTo({ - label: toInstallDDC[1], - url: toolboxLink, - }); - const [sysRequirements, scriptDoes, advOptions] = additionalInformation; - const mkBulletPoints = (text, index) => { - return
  • {text}
  • ; - }; - const mkEnvVars = ({ variable, description }, index) => { - return ( -
  • -
    {variable}
    -
    {description}
    -
  • - ); - }; - return ( -
    -
    -
    - {'Option 1: '} - Evaluate a single node on your desktop -
    -
    - - -
    -
    -
    1. {getDockerLink}
    -
    2. {toInstallDDC[2]}
    -
    3. {toInstallDDC[3]}
    -
    -
    - -
    -
    {clock} {scriptTiming}
    -
    -
    -
    Additional Information
    -
    - -
      - {map(sysRequirements.bulletPoints, mkBulletPoints)} -
    -
    -
    -
    - -
      - {map(scriptDoes.bulletPoints, mkBulletPoints)} -
    -
    -
    -
    - -
      -
    • - {advOptions.bulletPoints[0]} -
    • - {map(advOptions.environmentVariables, mkEnvVars)} -
    -
    -
    -
    -
    - ); - } - - renderGuideLink = ({ url, label }) => { - return ( -
    - {this.linkTo({ url, label })} -
    - ); - } - - renderDeployOn = () => { - const guideLinks = [ - UCPGuide, - DTRGuide, - prodInstall, - ]; - return ( -
    -
    -
    - {'Option 2: '} - Deploy on -
    -
    -
    - - {this.linkTo({ url: AWS.url, label: AWS.label })} -
    -
    - - {this.linkTo({ url: Azure.url, label: Azure.label })} -
    -
    - - {this.linkTo({ url: Linux.url, label: Linux.label })} -
    -
    -
    -
    -
    Resources
    - {map(guideLinks, this.renderGuideLink)} -
    -
    - ); - } - - render() { - const supportText = - 'Having trouble getting setup? Please contact '; - const mailTo = 'mailto:support@docker.com?subject=Docker Datacenter'; - const supportLink = - this.linkTo({ url: mailTo, label: 'support@docker.com' }); - return ( -
    - -
    - Getting Started with Docker Datacenter -
    - {this.renderEvaluateDDCOn()} -
    - {this.renderDeployOn()} -
    -
    {supportText} {supportLink}
    -
    - ); - } -} diff --git a/src/components/account/Subscriptions/DDCInstructions/styles.css b/src/components/account/Subscriptions/DDCInstructions/styles.css deleted file mode 100644 index 20515e920a..0000000000 --- a/src/components/account/Subscriptions/DDCInstructions/styles.css +++ /dev/null @@ -1,119 +0,0 @@ -@import "utilities"; - -.hr { - margin-top: $space-xxl; - margin-bottom: $space-xxl; -} - -.title { - @mixin fontSize 6; - margin-bottom: $space-sm; -} - -.link { - text-decoration: underline; - cursor: pointer; - display: inline-block; - color: $color-fiord; -} - -.semiBold { - @mixin semiBold; -} - -/* must scale svgs with inline styles/width/height set */ -.logo { - height: $icon-size-xlarge !important; - width: auto !important; - margin-bottom: $space-md; -} - -.logo + .logo { - margin-left: $space-xxl; -} - -.section { - @mixin 2columns 8, 4; - @mixin fontSize 2; -} - -.sectionTitle { - margin-bottom: $space-xxl; -} - -.listTitle { - @mixin fontSize 3; - margin-bottom: $space-md; -} - -/* Evaluating */ -.installSteps { - margin-bottom: $space-lg; -} - -.pullCommand { - width: 60%; - margin-bottom: $space-sm; -} - -.licenseHelpText { - @mixin fontSize 0; - display: flex; - align-items: center; - color: $color-regent-gray; - margin-bottom: $space-sm; -} - -.clock { - @mixin square $space-md; - fill: $color-regent-gray; - margin-right: $space-xs; -} - -/* Additional Information */ -$ul-padding: $space-xxxl; -$li-padding: $space-sm; - -.expandWrapper { - margin-bottom: $space-lg; -} - -.expandContent { - color: $color-regent-gray; - margin-bottom: $space-md; - padding-left: $li-padding; -} - -.expandContentNoBullet { - composes: expandContent; - - /* Hide the bullet point */ - display: inherit; -} - -.list { - padding-left: $ul-padding; -} - -.envVar { - text-transform: uppercase; - color: $color-fiord; -} - -/* Deploy and Resources */ -.guideLink { - margin-bottom: $space-md; -} - -.deployBlocks { - display: flex; - align-items: flex-end; -} - -.deployBlock { - display: flex; - flex-direction: column; - text-align: center; - align-items: center; - margin-right: $space-xxxxl; -} diff --git a/src/components/account/Subscriptions/SubscriptionDetail/index.js b/src/components/account/Subscriptions/SubscriptionDetail/index.js deleted file mode 100644 index d67c9398e2..0000000000 --- a/src/components/account/Subscriptions/SubscriptionDetail/index.js +++ /dev/null @@ -1,587 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import { - BackButtonArea, - Button, - Card, - CheckIcon, - CloseIcon, - CopyPullCommand, - DownloadIcon, - ImageWithFallback, - Markdown, - Modal, -} from 'common'; -import { FALLBACK_IMAGE_SRC, FALLBACK_ELEMENT } from 'lib/constants/fallbacks'; -import filter from 'lodash/filter'; -import find from 'lodash/find'; -import map from 'lodash/map'; -import startCase from 'lodash/startCase'; -// Blob is a polyfill to support older browsers -require('lib/utils/blob'); -import { saveAs } from 'lib/utils/file-saver'; -import moment from 'moment'; -import classnames from 'classnames'; -import getLogo from 'lib/utils/get-largest-logo'; -import { SMALL } from 'lib/constants/sizes'; -import isStaging from 'lib/utils/isStaging'; -import isDev from 'lib/utils/isDevelopment'; -import { isPullableProduct } from 'lib/utils/product-utils'; -import { DOCKER, DOCKER_GUID } from 'lib/constants/defaults'; -import { DDC_TRIAL_PLAN, DDC_ID } from 'lib/constants/eusa'; -import { ACTIVE, CANCELLED } from 'lib/constants/states/subscriptions'; -import { - billingDeleteSubscription, - billingFetchLicenseFile, - billingFetchProfileSubscriptions, -} from 'actions/billing'; -import css from './styles.css'; -const { arrayOf, bool, func, object, shape, string } = PropTypes; - -// Has a subscription been created within the past day? -const isNewSubscription = (subscription) => { - const YESTERDAY = moment().subtract(1, 'days').startOf('day'); - return moment(subscription.initial_period_start).isAfter(YESTERDAY); -}; - -const isExpiredLicense = (expiration) => { - return moment().isAfter(expiration); -}; - -const dispatcher = { - deleteSubscription: billingDeleteSubscription, - fetchLicenseFile: billingFetchLicenseFile, - fetchSubscriptions: billingFetchProfileSubscriptions, -}; - -@connect(null, dispatcher) -export default class SubscriptionDetail extends Component { - static propTypes = { - deleteInfo: shape({ - error: string, - isDeleting: bool, - subscription_id: string, - }), - deleteSubscription: func.isRequired, - error: string, - fetchLicenseFile: func.isRequired, - fetchSubscriptions: func.isRequired, - licenses: shape({ - isFetching: bool, - // Licenses are keyed off of subscription_id - results: object, - error: string, - }), - selectedNamespace: string.isRequired, - selectedProductSubscriptions: arrayOf(object).isRequired, - showDDCInstructions: func.isRequired, - showSubscriptionList: func.isRequired, - selectedUserOrOrg: object.isRequired, - } - - state = { - cancelSubscriptionId: '', - cancelSubscriptionName: '', - showCancelConfirmation: false, - downloadLicenseSubscriptionId: '', - downloadLicenseError: false, - } - - hideCancelConfirmation = () => { - this.setState({ - cancelSubscriptionId: '', - cancelSubscriptionName: '', - showCancelConfirmation: false, - }); - } - - showCancelConfirmation = ({ subscription_id, subscription_name }) => () => { - this.setState({ - cancelSubscriptionId: subscription_id, - cancelSubscriptionName: subscription_name, - showCancelConfirmation: true, - }); - } - - cancelSubscription = () => { - const { cancelSubscriptionId: subscription_id } = this.state; - const { - deleteSubscription, - fetchSubscriptions, - selectedUserOrOrg, - } = this.props; - deleteSubscription({ subscription_id }).then(() => { - fetchSubscriptions({ docker_id: selectedUserOrOrg.id }); - }); - } - - downloadLicense = ({ - subscription_id, - subscription_name, - product_rate_plan, - }) => () => { - const { fetchLicenseFile } = this.props; - this.setState({ - downloadLicenseSubscriptionId: subscription_id, - downloadLicenseError: false, - }, () => { - fetchLicenseFile({ subscription_id }) - .then((res) => { - // value contains the API response - const downloadContent = JSON.stringify(res.value); - this.setState({ downloadLicenseSubscriptionId: '' }); - const blob = new Blob([downloadContent], { - type: 'text/plain;charset=utf-8', - }); - saveAs(blob, `${subscription_name}.lic`, true); - analytics.track('download_license', { - license_tier: product_rate_plan, - }); - }) - .catch(() => { - this.setState({ downloadLicenseError: true }); - }); - }); - } - - // Returns true if the given subscription can be cancelled, false otherwise. - // - // A subscription may not be cancelled if: - // 1. The initiator does not own the subscription OR - // 2. The subscription is already in a cancelled state OR - // 3. This is an 'offline' subscription. - // Note that the presence of a subscription origin implies that this - // is an offline subscription. - canCancelSubscription(subscription) { - const { isOwner } = this.props.selectedUserOrOrg; - const { state, origin } = subscription; - - if (!isOwner) { - return false; - } - - if (state === CANCELLED) { - return false; - } - - if (origin) { - return false; - } - - return true; - } - - renderProductSubscriptionSummary = (subs) => { - // Subs is an array containing one or more subscriptions for the - // same product id. When rendering the *product* information (and - // aggregated subscription info), we must look at at least one subscription - // to understand the product information. There is guaranteed to be at least - // one sub, so we can get the information out of the first one. - if (!subs || !subs.length) { - return null; - } - const { - label: productName, - links, - publisher_id, - publisher, - } = subs[0]; - const numActiveSubscriptions = - filter(subs, ({ state }) => state === ACTIVE).length; - let partnerName; - let dockerPublisherID = DOCKER_GUID; - if (isStaging() || isDev()) { - dockerPublisherID = DOCKER; - } - if (publisher_id !== dockerPublisherID) { - partnerName = ( -
    - - {publisher.name} -
    - ); - } - const addS = numActiveSubscriptions === 1 ? '' : 's'; - const licenses = ( - {`${numActiveSubscriptions} active subscription${addS}`} - ); - let licenseAgreement; - // Add license agreement if it exists in the links - if (links) { - const link = find(links, ({ label }) => label === 'License Agreement'); - if (link) { - const { label: text, url } = link; - licenseAgreement = - | {text}; - } - } - return ( -
    -
    -
    {productName}
    - {partnerName} -
    -
    - {this.props.selectedNamespace} | {licenses} {licenseAgreement} -
    -
    - ); - } - - renderCancelSubscriptionLine(subscription) { - const { isDeleting, subscription_id: deletingId } = this.props.deleteInfo; - const { subscription_name, subscription_id } = subscription; - - if (!this.canCancelSubscription(subscription)) { - return null; - } - - const isDeletingThisSub = isDeleting && deletingId === subscription_id; - if (isDeletingThisSub) { - return
    Canceling Subscription...
    ; - } - const subInfo = { subscription_id, subscription_name }; - return ( -
    - Cancel Subscription -
    - ); - } - - renderPullCommand(subscription) { - // TODO Kristie 8/17/19 Fix this when we actually set up the new - // subscriptions page (and per sub pull commands) - // This is a known issue until then - const { - plans: productPlans, - product_rate_plan: currentRatePlanID, - } = subscription; - // TODO Kristie 8/17/19 This needs to be synced with billing - let currentPlanDetail = find(productPlans, ({ id }) => { - return id === currentRatePlanID; - }); - // TODO Kristie 8/17/19 Remove this when billing plan ids are in sync with - // the product plan ids - if (!currentPlanDetail) { - currentPlanDetail = productPlans[0]; - } - const { repositories, default_version } = currentPlanDetail; - // Assumption: there is only one repo per rate plan - this may change in the - // future - if (!repositories || !repositories[0]) { - return null; - } - const { namespace, reponame } = repositories[0]; - return ( - - ); - } - - renderPricingComponents(subscription) { - const { - pricing_components, - // The specific rate plan that this subscription is subscribed to - product_rate_plan: sub_rate_plan, - // All possible rate plans and their pricing components for this product - rate_plans, - } = subscription; - // Find the rate plan that matches this subscription's rate plan - const plan = find(rate_plans, (rp) => rp.name === sub_rate_plan); - // Do not show this user cancelled subscriptions if they are not an owner - if (!plan || !pricing_components || !pricing_components.length) { - return null; - } - const comps = pricing_components.map((pc) => { - // Find the pricing component (with full information) from the billing - // plan which matches this subscription's pricing component - const priceCompInfo = find(plan.pricing_components, comp => { - // Comp is the full information from billing api, pc is this sub's - // data with the amount purchased (value) - return comp === pc.name; - }); - // Fallback to this subscription's component "name" - const label = priceCompInfo && priceCompInfo.label || pc.name; - return `${pc.value} ${label}`; - }); - return ( -
    -
    {plan.label}
    -
    {comps.join(', ')}
    -
    - ); - } - - renderDownloadLicense(subscription) { - const { downloadLicenseError, downloadLicenseSubscriptionId } = this.state; - const { subscription_id } = subscription; - const isDownloadingThisLicense = - subscription_id === downloadLicenseSubscriptionId; - const downloadError = isDownloadingThisLicense && downloadLicenseError; - let text = 'License Key'; - if (isDownloadingThisLicense && !downloadError) { - text = 'Downloading License...'; - } else if (isDownloadingThisLicense && downloadError) { - text = 'Error Downloading License'; - } - const icon = ; - const classes = classnames({ - [css.downloadLicense]: true, - [css.downloadLicenseError]: isDownloadingThisLicense && downloadError, - }); - return ( -
    - {icon} {text} -
    - ); - } - - renderLicense(subscription) { - const { isOwner } = this.props.selectedUserOrOrg; - const { subscription_id, eusa, state, product_rate_plan } = subscription; - const { results } = this.props.licenses; - // Find this license in results - const license = results[subscription_id]; - // Do not render a license for a cancelled subscription - if (!license || state === CANCELLED) { - return null; - } - const { expiration } = license; - const isLicenseExpired = isExpiredLicense(expiration); - const isLegalAccepted = eusa && eusa.accepted; - let licenseLine; - - if (!isLegalAccepted) { - const text = isOwner ? 'Accept terms to download' - : 'Admin must accept terms to download'; - licenseLine =
    {text}
    ; - } else if (isLicenseExpired) { - licenseLine =
    Expired License
    ; - } else { - licenseLine = this.renderDownloadLicense(subscription); - } - let expirationDate; - // TODO Kristie 6/10/16 Incorporate other non-recurring subscriptions - if (product_rate_plan === DDC_TRIAL_PLAN) { - expirationDate =
    Expires {moment(expiration).format('l')}
    ; - } - return ( -
    - {expirationDate} - {licenseLine} -
    - ); - } - - // A single subscription for this product - renderSubscriptionLine = (subscription) => { - const { subscription_name, subscription_id, state } = subscription; - const { isOwner } = this.props.selectedUserOrOrg; - if (!isOwner && state === CANCELLED) { - return null; - } - // TODO Kristie 6/1/16 Include edit sub name - // TODO Kristie 6/1/16 Include purchased by or registered - return ( -
    -
    -
    -
    -
    {subscription_name}
    - {this.renderPricingComponents(subscription)} - {this.renderCancelSubscriptionLine(subscription)} -
    -
    -
    {startCase(state)}
    - {this.renderLicense(subscription)} -
    -
    -
    - ); - } - - renderNewSubscriptionNotification() { - const { selectedProductSubscriptions: subs } = this.props; - if (!subs || !subs.length) { - return null; - } - const { name, label } = subs[0]; - // TODO Get hint from API for paid subscription or not - const isProductPaid = name === 'devddc'; - const newSubscriptions = filter(subs, (s) => isNewSubscription(s)); - if (!newSubscriptions.length) { - return null; - } - let header; - const details = 'Your subscription details are below.'; - if (isProductPaid) { - header = `Payment Successful! Thank you for purchasing ${label}`; - } else { - header = `Thank you for subscribing to ${label}`; - } - return ( - -
    {header}
    - {details} -
    - ); - } - - renderErrorNotification() { - // TODO Kristie 6/2/16 Error dismissal - const { error } = this.props.deleteInfo; - if (!error) { - return null; - } - return ( - -
    Error
    - {['Sorry, we could not cancel your subscription.', - 'Please try again.'].join(' ')} -
    - ); - } - - renderCancelSubscriptionModal = () => { - const { - cancelSubscriptionId, - cancelSubscriptionName, - showCancelConfirmation, - } = this.state; - const { isDeleting, subscription_id: deletingId } = this.props.deleteInfo; - const isDeletingThisSub = cancelSubscriptionId === deletingId && isDeleting; - return ( - -
    - -
    -
    - {`Cancel ${cancelSubscriptionName}?`} -
    -
    - This action cannot be undone. -
    - -
    - ); - } - - renderDDCInstructions() { - const setupText = 'To install DDC on your machine, VM, or cloud instance '; - const instructionsLink = ( -
    - follow these instructions -
    - ); - const supportText = - 'If you need assistance with your subscription please contact'; - const mailTo = 'mailto:support@docker.com?subject=Docker Datacenter'; - const supportLink = ( - {'support@docker.com'} - ); - return ( -
    -
    -
    Setup Guide
    -
    - {setupText} {instructionsLink} -
    -
    -
    -
    Customer Support
    -
    - {supportText} {supportLink} -
    -
    -
    - ); - } - - renderInstructions() { - const { selectedProductSubscriptions: subs } = this.props; - // At least one subscription otherwise render would have returned null - const { product_id, instructions } = subs[0]; - if (product_id === DDC_ID) { - return this.renderDDCInstructions(); - } - if (!instructions) { - return null; - } - return ( -
    - -
    - ); - } - - renderSubscriptionHeader = (subs) => { - const sampleSub = subs[0]; - const { logo_url, product_id } = sampleSub; - const src = getLogo(logo_url); - let pullCommand; - if (isPullableProduct(product_id)) { - pullCommand = this.renderPullCommand(sampleSub); - } - return ( -
    -
    - - {this.renderProductSubscriptionSummary(subs)} -
    - {pullCommand} -
    - ); - } - - render() { - const { - selectedProductSubscriptions: subs, - showSubscriptionList, - } = this.props; - if (!subs || !subs.length) { - return null; - } - const { product_id } = subs[0]; - const maybeNewSubNotification = this.renderNewSubscriptionNotification(); - const maybeErrorNotication = this.renderErrorNotification(); - const maybeCancelSubscriptionModal = this.renderCancelSubscriptionModal(); - const maybeInstructions = this.renderInstructions(); - return ( -
    - - - {maybeNewSubNotification} - {maybeErrorNotication} - {this.renderSubscriptionHeader(subs)} - {map(subs, this.renderSubscriptionLine)} - {maybeCancelSubscriptionModal} - - {maybeInstructions} -
    - ); - } -} diff --git a/src/components/account/Subscriptions/SubscriptionDetail/styles.css b/src/components/account/Subscriptions/SubscriptionDetail/styles.css deleted file mode 100644 index 0164854ebb..0000000000 --- a/src/components/account/Subscriptions/SubscriptionDetail/styles.css +++ /dev/null @@ -1,178 +0,0 @@ -@import "utilities"; - -$card-padding: 64px; - -.product { - display: flex; - align-items: center; - margin-bottom: $space-xs; -} - -.icon { - @mixin storeIcon; - margin-right: $space-xl; -} - -.nameAndLicense { - @mixin fontSize 2; - color: $color-regent-gray; -} - -.subscriptionSummary, -.partnerName { - display: flex; - align-items: center; -} - -.summaryAndPullCommand { - @mixin 2columnsResponsive 7, 5; -} - -.pullText { - @mixin fontSize 1; -} - -.productName { - @mixin fontSize 4; - @mixin semiBold; - margin-right: $space-xs; -} - -.check { - fill: $color-robins-egg-blue; - margin-right: $space-xxs; -} - -.marketplaceIcon { - fill: $color-regent-gray; - margin-left: $space-xxs; -} - -.subscriptionDetailCard { - padding: $card-padding; - margin-bottom: $space-xxl; -} - -.subscriptionLine { - @mixin fontSize 2; - color: $color-regent-gray; - display: flex; - align-items: center; - justify-content: space-between; - padding-top: calc($space-xl - 1em); - padding-bottom: calc($space-xl - 1em); -} - -.subscriptionName, -.licenseStatus { - @mixin fontSize 3; - color: $color-fiord; -} - -.subscriptionName { - @mixin semiBold; -} - -.licenseInformation { - text-align: right; -} - -.downloadLicense { - @mixin fontSize 2; - display: flex; - font-weight: bold; - color: $color-dodger-blue; - align-items: center; - justify-content: flex-end; - cursor: pointer; - & > svg { - fill: $color-dodger-blue; - margin-right: $space-xxs; - } -} - -.downloadLicenseError { - color: $color-carnation; - & > svg { - fill: $color-carnation; - } -} - -.newSubscription { - background-color: $color-robins-egg-blue; - box-shadow: 0 2px 4px 0 $color-regent-gray; - margin-bottom: $space-xxxl; - color: $color-white; - position: relative; -} - -.error { - background-color: $color-carnation; - box-shadow: 0 2px 4px 0 $color-regent-gray; - margin-bottom: $space-xxxl; - color: $color-white; - position: relative; -} - -.notificationHeader { - font-weight: 600; - margin-bottom: $space-sm; -} - -.closeModal { - position: absolute; - top: $space-md; - right: $space-md; -} - -.close { - fill: $color-white; -} - -.modal { - background: $color-white; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - position: relative; -} - -.cancelHeader { - @mixin fontSize 5; - margin-bottom: $space-sm; -} - -.cancelDetail { - @mixin fontSize 3; - color: $color-regent-gray; - margin-bottom: $space-xl; -} - -.underlined { - text-decoration: underline; - cursor: pointer; -} - -/* DDC Instructions */ -.instructionsSection { - padding-right: $card-padding; - padding-left: $card-padding; - margin-bottom: $space-xxl; -} - -.instructionsHeader { - @mixin fontSize 3; - @mixin semiBold; - margin-bottom: $space-xl; -} - -.instructionsDetail { - @mixin fontSize 2; -} - -.link { - composes: underlined; - display: inline-block; - color: $color-fiord; -} diff --git a/src/components/account/Subscriptions/SubscriptionList/index.js b/src/components/account/Subscriptions/SubscriptionList/index.js deleted file mode 100644 index d8809906d0..0000000000 --- a/src/components/account/Subscriptions/SubscriptionList/index.js +++ /dev/null @@ -1,317 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { connect } from 'react-redux'; -import { - Button, - Card, - CheckIcon, - ImageWithFallback, - FullscreenLoading, - FetchingError, - Select, -} from 'common'; -import { FALLBACK_IMAGE_SRC, FALLBACK_ELEMENT } from 'lib/constants/fallbacks'; -import css from './styles.css'; -import { - filter, - find, - get, - map, - sortBy, -} from 'lodash'; -import getLogo from 'lib/utils/get-largest-logo'; -import { SMALL } from 'lib/constants/sizes'; -import { PRIMARY, PANIC } from 'lib/constants/variants'; -import isStaging from 'lib/utils/isStaging'; -import isDev from 'lib/utils/isDevelopment'; -import { DOCKER, DOCKER_GUID } from 'lib/constants/defaults'; -import { ACTIVE, CANCELLED } from 'lib/constants/states/subscriptions'; -import { EUSA_LINK } from 'lib/constants/eusa'; -import { - billingFetchProfileSubscriptions, - billingUpdateSubscription, - - BILLING_BASE_URL, -} from 'actions/billing'; -const noOp = () => {}; -const { array, bool, func, shape, string, object } = PropTypes; - -const dispatcher = { - fetchSubscriptions: billingFetchProfileSubscriptions, - updateSubscription: billingUpdateSubscription, -}; -@connect(null, dispatcher) -export default class SubscriptionList extends Component { - static propTypes = { - currentUserNamespace: string, - dockerSubscriptions: array.isRequired, - isFetching: bool, - fetchSubscriptions: func.isRequired, - namespaceObjects: shape({ - isFetching: bool, - results: object, - error: string, - }).isRequired, - onSelectNamespace: func.isRequired, - partnerSubscriptions: array.isRequired, - selectedNamespace: string.isRequired, - showSubscriptionDetail: func.isRequired, - updateInfo: object, - updateSubscription: func.isRequired, - selectedUserOrOrg: object, - error: string, - } - - onSubscriptionClick = (productId) => () => { - this.props.showSubscriptionDetail(productId); - } - - acceptEusa = ({ subscription_id, product_id }) => () => { - const payload = { eusa: { accepted: true } }; - const { id: docker_id } = this.props.selectedUserOrOrg; - this.props.updateSubscription({ subscription_id, body: payload }) - .then(() => { - // Fetch all the subscriptions so you have the most updated - this.props.fetchSubscriptions({ docker_id }).then(() => { - // Transition to the detail page for this product to download license - this.props.showSubscriptionDetail(product_id); - }); - }); - } - - // Returns the EUSA url associated with the given subscription. - determineEUSA(subscription) { - const { origin } = subscription; - - // Use a partner specific EUSA where applicable. - // TODO - This will be obtained from the product catalog in the near future. - if (origin === 'hpe') { - return `${BILLING_BASE_URL}/eusa/hpe/eusa.pdf`; - } - - // Use the standard Docker software EUSA - return EUSA_LINK; - } - - renderEusaAcceptance(subs) { - const { - namespaceObjects, - selectedNamespace, - updateInfo, - } = this.props; - // All subscriptions that require legal acceptance need to have the legal - // terms accepted - const { eusa_acceptance_required, product_id } = subs[0]; - const isOwner = - get(namespaceObjects, ['results', selectedNamespace, 'isOwner']); - if (!eusa_acceptance_required || !isOwner) { - return null; - } - // See if you have to acccept terms for any subscriptions - const subscriptionToAccept = find(subs, ({ eusa, state }) => { - return eusa && !eusa.accepted && state !== CANCELLED; - }); - // All subscriptions have accepted terms --> no action needed - if (!subscriptionToAccept) { - return null; - } - const { subscription_id } = subscriptionToAccept; - // Prevent clicking on the buttons here from clicking on the parent div - const stopProp = (e) => { - e.stopPropagation(); - }; - // Grab that subscription's isUpdating and error information - const { error, isUpdating } = updateInfo[subscription_id] || {}; - let buttonText = 'Accept Terms'; - if (isUpdating && !error) { - buttonText = 'Accepting Terms...'; - } else if (error) { - buttonText = 'Error! Please Try Again'; - } - - const eusaLink = this.determineEUSA(subscriptionToAccept); - - // We only have to cover the EUSA link because all trials will be created - // through the online form and will have accepted eval terms - return ( -
    - To access your License keys, please accept the - - Terms of Service - - -
    - ); - } - - renderProductSubscriptionSummary = (subs) => { - if (!subs || !subs.length) { - return null; - } - const { - publisher_id, - publisher = {}, - label, - } = subs[0]; - const numActiveSubscriptions = - filter(subs, ({ state }) => state === ACTIVE).length; - let partnerName; - let dockerPublisherID = DOCKER_GUID; - if (isStaging() || isDev()) { - dockerPublisherID = DOCKER; - } - if (publisher_id !== dockerPublisherID) { - partnerName = ( -
    - - {publisher.name} -
    - ); - } - const addS = numActiveSubscriptions === 1 ? '' : 's'; - const licenses = ( - {`${numActiveSubscriptions} active subscription${addS}`} - ); - return ( -
    -
    -
    {label}
    - {partnerName} -
    -
    - {licenses} -
    -
    - ); - } - - renderProductSubscriptions = (subs) => { - // Subscription is an array containing one or more subscriptions for the - // same product id - const { product_id, logo_url } = subs[0]; - const src = getLogo(logo_url); - const maybeEusaAcceptance = this.renderEusaAcceptance(subs); - return ( - -
    - - {this.renderProductSubscriptionSummary(subs)} -
    -
    {maybeEusaAcceptance}
    -
    - ); - } - - renderNoSubscriptions(type) { - return ( - You have no {type} subscriptions. - ); - } - - renderPartnerSubscriptionList() { - const { partnerSubscriptions } = this.props; - let subs = map(partnerSubscriptions, this.renderProductSubscriptions); - if (!partnerSubscriptions.length) { - return null; - } - return ( -
    -
    Docker Partner Services
    -
    {subs}
    -
    - ); - } - - renderDockerSubscriptionList() { - const { dockerSubscriptions } = this.props; - let subs = map(dockerSubscriptions, this.renderProductSubscriptions); - if (!dockerSubscriptions.length) { - subs = this.renderNoSubscriptions('Docker'); - } - return ( -
    -
    -
    Docker Services
    -
    {this.renderNamespaceSelect()}
    -
    -
    {subs}
    -
    - ); - } - - renderNamespaceSelect() { - const { namespaceObjects, currentUserNamespace } = this.props; - let options = map(namespaceObjects.results, (userObj) => { - const namespace = userObj.username || userObj.orgname; - return { value: namespace, label: namespace }; - }); - if (!namespaceObjects.results[currentUserNamespace]) { - // current user should be included in namespace objects - // BUT if it's not, we should add it to the front - options.unshift( - { value: currentUserNamespace, label: currentUserNamespace } - ); - } - options = sortBy(options, (option) => { - return option.value !== currentUserNamespace; - }); - return ( -
    - Account - -
    -
    - store /  /  -
    -
    - -
    -
    - -
    -
    - -
    - - ); - } -} - -export default reduxForm({ - form: 'adminHomeCreateRepository', - fields: [ - 'display_name', - 'namespace', - 'reponame', - 'publisher.id', - 'publisher.name', - ], - validate: values => { - const errors = {}; - if (!values.display_name) { - errors.display_name = 'Required'; - } - - if (!values.namespace) { - errors.namespace = 'Required'; - } else if (!/^[a-z0-9_]+$/.test(values.namespace)) { - errors.namespace = 'Invalid namespace'; - } - - if (!values.reponame) { - errors.reponame = 'Required'; - } else if (!/^[a-zA-Z0-9-_.]+$/.test(values.reponame)) { - errors.reponame = 'Invalid reponame'; - } - - errors.publisher = {}; - if (!values.publisher.id) { - errors.publisher.id = 'Required'; - } else if (!/^[a-z0-9_]+$/.test(values.publisher.id)) { - errors.publisher.id = 'Invalid Publisher ID'; - } - - if (!values.publisher.name) { - errors.publisher.name = 'Required'; - } - - return errors; - }, -})(AdminHomeCreateRepositoryForm); diff --git a/src/components/admin/AdminHome/AdminHomeCreateRepositoryForm/styles.css b/src/components/admin/AdminHome/AdminHomeCreateRepositoryForm/styles.css deleted file mode 100644 index 91af324694..0000000000 --- a/src/components/admin/AdminHome/AdminHomeCreateRepositoryForm/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -.buttons { - display: flex; - justify-content: flex-end; -} diff --git a/src/components/admin/AdminHome/index.js b/src/components/admin/AdminHome/index.js deleted file mode 100644 index c1476b4d67..0000000000 --- a/src/components/admin/AdminHome/index.js +++ /dev/null @@ -1,176 +0,0 @@ -import React, { PropTypes } from 'react'; -import { Table, - TableBody, - TableHeader, - TableHeaderColumn, - TableRow, - TableRowColumn, -} from 'material-ui/Table'; -import { - Link, -} from 'react-router'; -import { - Button, - Modal, - Card, -} from 'components/common'; -import { - marketplaceCreateRepository, - marketplaceDeleteRepository, -} from 'actions/marketplace'; -import { billingCreateProduct } from 'actions/billing'; -import { connect } from 'react-redux'; -import routes from 'lib/constants/routes'; -import AdminHomeCreateRepositoryForm from './AdminHomeCreateRepositoryForm'; -import get from 'lodash/get'; -import css from './styles.css'; - -const { func, object, array } = PropTypes; - -const mapStateToProps = ({ marketplace }, { params }) => { - const summaries = get(marketplace, ['search', 'pages', 1, 'results'], []); - return { - params, - summaries, - }; -}; - -const mapDispatch = { - billingCreateProduct, - marketplaceCreateRepository, - marketplaceDeleteRepository, -}; - -@connect(mapStateToProps, mapDispatch) -export default class Admin extends React.Component { - static propTypes = { - params: object, - summaries: array, - billingCreateProduct: func, - marketplaceCreateRepository: func, - marketplaceDeleteRepository: func, - } - - static contextTypes = { - router: object.isRequired, - } - - state = { isModalOpen: false } - - handleSubmit = (values) => { - const defaultValues = { - categories: [], - platforms: [], - default_version: {}, - }; - this.props.marketplaceCreateRepository({ - ...defaultValues, - ...values, - source: 'official', - }).then(res => { - const id = res.value.product_id; - return this.props.billingCreateProduct({ id, body: { - name: `${values.namespace}-${values.reponame}`, - label: values.display_name, - publisher_id: values.publisher.id, - rate_plans: [{ - name: 'free', - label: 'Free', - duration: 1, - duration_period: 'year', - trial: 0, - trial_period: 'none', - currency: 'USD', - }], - } }).then(() => { - this.context.router.push(routes.adminRepository({ id })); - }); - }).catch(err => { - // TODO (jmorgan): show error text in form if creating a product failed - console.log(err); - }); - } - - openModal = () => { - this.setState({ isModalOpen: true }); - } - - closeModal = () => { - this.setState({ isModalOpen: false }); - } - - deleteRepository = (id) => () => { - const result = confirm('Are you sure you want to delete this repository?'); - if (result) { - this.props.marketplaceDeleteRepository({ id }); - } - }; - - render() { - return ( -
    -
    -

    {this.props.summaries.length} Repositories

    -
    -
    - -
    -
    -
    - - - - Name - Publisher - Repository - - Status - - - - - - - {this.props.summaries.map(s => { - return ( - - {s.display_name} - {s.publisher.name} - - store/{s.namespace}/{s.reponame} - - - LIVE - - - - Edit → - - - - - Delete × - - - - ); - })} - -
    - - - - - -
    - ); - } -} diff --git a/src/components/admin/AdminHome/styles.css b/src/components/admin/AdminHome/styles.css deleted file mode 100644 index 5f69f39bb7..0000000000 --- a/src/components/admin/AdminHome/styles.css +++ /dev/null @@ -1,29 +0,0 @@ -.header { - display: flex; - flex-direction: row; - margin-top: 10px; -} - -.new { - flex: 1 0; - display: flex; - justify-content: flex-end; - align-items: center; - - .nomargin { - margin: 0; - } -} - -.modal { - padding: 0; - width: 600px !important; -} - -.monospace { - font-family: monospace; -} - -.smallColumn { - width: 110px !important; -} diff --git a/src/components/admin/AdminRepository/AdminRepositoryEditMetadataForm/index.js b/src/components/admin/AdminRepository/AdminRepositoryEditMetadataForm/index.js deleted file mode 100644 index eb108ceda7..0000000000 --- a/src/components/admin/AdminRepository/AdminRepositoryEditMetadataForm/index.js +++ /dev/null @@ -1,353 +0,0 @@ -const request = require('superagent-promise')(require('superagent'), Promise); -import React, { Component, PropTypes } from 'react'; -import { reduxForm } from 'redux-form'; -import { DOWNLOAD_ATTRIBUTES_READABLE } from 'lib/constants/eusa'; -import { Input, Button, LabelField, Checkbox } from 'components/common'; -import uuid from 'uuid-v4'; -import css from './styles.css'; -import { jwt } from 'lib/utils/authHeaders'; - -class AdminRepositoryEditMetadataForm extends Component { - static propTypes = { - categories: PropTypes.object.isRequired, - platforms: PropTypes.object.isRequired, - fields: PropTypes.object.isRequired, - submitting: PropTypes.bool.isRequired, - handleSubmit: PropTypes.func.isRequired, - } - - onChangeCategory = (name) => (e) => { - let categories = this.props.fields.categories.value || []; - if (e.target.checked) { - categories.push({ name, label: this.props.categories[name] }); - } else { - categories = categories.filter(c => c.name !== name); - } - this.props.fields.categories.onChange(categories); - } - - onChangePlatform = (name) => (e) => { - let platforms = this.props.fields.platforms.value || []; - if (e.target.checked) { - platforms.push({ name, label: this.props.platforms[name] }); - } else { - platforms = platforms.filter(c => c.name !== name); - } - this.props.fields.platforms.onChange(platforms); - } - - onChangePreviewFile = (e) => { - const file = e.target.files[0]; - if (!file) { - return; - } - - const extension = file.name.split('.').pop(); - if (extension !== 'png') { - console.err('Need png extension'); - return; - } - - request - .get('/api/ui/admin/signed-s3-put') - .set(jwt()) - .accept('application/json') - .query({ - 'file-name': - `${this.props.fields.id.value}-${uuid()}-logo_large.${extension}`, - 'file-type': file.type, - }) - .end() - .then((res) => { - const data = JSON.parse(res.text); - return request - .put(data.signedRequest) - .set('Content-Type', file.type) - .send(file) - .end().then(() => { - this.props.fields.logo_url.large.onChange(data.url); - }); - }).catch(err => { - // TODO (jmorgan): show error text in form if creating a product failed - console.log(err); - }); - } - - onChangeScreenshotFile = (screenshot) => (e) => { - const file = e.target.files[0]; - if (!file) { - return; - } - - const extension = file.name.split('.').pop(); - if (extension !== 'png') { - console.err('Need png extension'); - return; - } - - request - .get('/api/ui/admin/signed-s3-put') - .accept('application/json') - .query({ - 'file-name': - // eslint-disable-next-line - `${this.props.fields.id.value}-${uuid()}-screenshot_large.${extension}`, - 'file-type': file.type, - }) - .end() - .then((res) => { - const data = JSON.parse(res.text); - return request - .put(data.signedRequest) - .set('Content-Type', file.type) - .send(file) - .end().then(() => { - screenshot.url.onChange(data.url); - }); - }).catch(err => { - // TODO (jmorgan): show error text in form if creating a product failed - console.log(err); - }); - } - - render() { - const { - fields: { - display_name, - namespace, - reponame, - publisher, - short_description, - full_description, - categories, - platforms, - logo_url, - screenshots, - links, - eusa, - download_attribute, - instructions, - }, - submitting, - handleSubmit, - } = this.props; - - return ( -
    - - - - -
    - store /  - -  /  - -
    -
    - - - - - - - - - - -
    - - - -
    -
    - -
    - {!screenshots.length &&
    No Screenshots
    } - {screenshots.map((screenshot, index) => -
    -

    Screenshot {index + 1}

    -
    -
    - -
    -     - -
    -
    - )} -
    - -
    -
    -
    - -