WooCommerce Gutenberg Products Block - Version 1.1.2

Version Description

  • 2018-09-07 =
  • Fix - Refactor to remove withAPIData usage, as the class was removed in Gutenberg 3.7.

=

Download this release

Release Info

Developer claudiulodro
Plugin Icon 128x128 WooCommerce Gutenberg Products Block
Version 1.1.2
Comparing to
See all releases

Code changes from version 1.1.1 to 1.1.2

assets/css/gutenberg-products-block-rtl.css CHANGED
@@ -1 +1 @@
1
- .wc-products-block-preview{overflow:hidden}.wc-products-block-preview .product-preview{float:right;text-align:center;margin-left:3.8%}.wc-products-block-preview.cols-1 .product-preview{float:none;margin-left:0}.wc-products-block-preview.cols-2 .product-preview{width:48%}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n){margin-left:0}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n+1){clear:both}.wc-products-block-preview.cols-3 .product-preview{width:30.75%}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n){margin-left:0}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n+1){clear:both}.wc-products-block-preview.cols-4 .product-preview{width:22.05%}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n){margin-left:0}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview{width:16.9%}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n){margin-left:0}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview.cols-6 .product-preview{width:13.5%}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n){margin-left:0}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n+1){clear:both}.wc-products-block-preview.cols-6 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview .product-add-to-cart{display:inline-block;background:#ababab;border-radius:1.5em;color:#fff;cursor:pointer;padding:.75em 1.25em;line-height:1.2em;margin-top:.5em;margin-bottom:1em}.wc-products-settings{background-color:#f8f9f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;position:relative}.wc-products-settings__title{margin:0;padding:1.5rem 0;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-settings__title .dashicon{vertical-align:top;margin-left:.25em}.wc-products-settings__footer{margin:2em 0 0;padding:1.5em 0;border-top:1px solid #e6eaee;text-align:center}.wc-products-settings__footer .button{padding-right:1.5em;padding-left:1.5em}.wc-products-display-options--popover+.wc-products-settings__footer,.wc-products-settings-heading+.wc-products-settings__footer{margin-top:-2em;border-top:none}p.wc-products-block-description{margin:2em 0 1.5em 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;text-align:center}.wc-products-display-options{margin:0 0 2.5em}.wc-products-display-options__option{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 auto;padding:1.25em 1.5em;max-width:80%;background:#fff;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee;cursor:pointer}.wc-products-display-options__option:last-of-type{border-bottom-width:1px}.wc-products-display-options__option--attribute,.wc-products-display-options__option--best_selling,.wc-products-display-options__option--featured,.wc-products-display-options__option--on_sale,.wc-products-display-options__option--top_rated{display:none;background-color:#fdfdfd;padding-top:1em;padding-bottom:1em}.wc-products-display-options__option--attribute .wc-products-display-options__option-title,.wc-products-display-options__option--best_selling .wc-products-display-options__option-title,.wc-products-display-options__option--featured .wc-products-display-options__option-title,.wc-products-display-options__option--on_sale .wc-products-display-options__option-title,.wc-products-display-options__option--top_rated .wc-products-display-options__option-title{font-size:1.15em}.wc-products-display-options__option--attribute .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--best_selling .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--featured .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--on_sale .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--top_rated .wc-products-display-options__icon .dashicon{height:20px;width:20px}.wc-products-display-options__option--current{cursor:default}.wc-products-display-options__option--current .wc-products-display-options__option-title{color:#86909b}.wc-products-display-options__option-content{width:85%;-ms-flex-item-align:center;align-self:center}.wc-products-display-options__option-title{display:block;font-size:1.25em}p.wc-products-display-options__option-description{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;color:#86909b}.wc-products-display-options__icon{-ms-flex-item-align:center;align-self:center;margin-right:auto;color:#b9bcc2}.wc-products-display-options__icon .dashicon{height:25px;width:25px}.wc-products-display-options--popover{position:absolute;left:-2em;max-width:60%;margin:0;z-index:999;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);margin-top:-2.15em}.wc-products-display-options--popover .wc-products-display-options__option{margin:0;max-width:none}.wc-products-display-options--popover__arrow{width:2em;height:1.25em;position:absolute;top:-1.15em;left:30%;overflow:hidden}.wc-products-display-options--popover__arrow:after{content:'';position:absolute;width:1.25em;height:1.25em;background:#fff;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);top:.625em;right:.3125em;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);border:1px solid #e6eaee}.wc-products-display-options--extended .wc-products-display-options__option--attribute,.wc-products-display-options--extended .wc-products-display-options__option--best_selling,.wc-products-display-options--extended .wc-products-display-options__option--featured,.wc-products-display-options--extended .wc-products-display-options__option--on_sale,.wc-products-display-options--extended .wc-products-display-options__option--top_rated{display:-webkit-box;display:-ms-flexbox;display:flex}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--category{border-bottom-width:1px}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--filter{margin-top:.5em}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--attribute{margin-bottom:.5em;border-bottom-width:1px}.wc-products-settings-heading{margin:0 0 2em 0;padding:1em 2em;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-list-card{position:relative;margin-right:auto;margin-left:auto;padding:0 1em;overflow:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__input-wrapper{position:relative;background:#fff;margin:0 0 1em}.wc-products-list-card .wc-products-list-card__input-wrapper .dashicon{position:absolute;top:calc(1em - 1px);right:1em;z-index:1}.wc-products-list-card input[type=search]{position:relative;width:100%;margin:0;padding:1em 3em 1em 1.25em;border-radius:0;background:0 0;border-color:#e6eaee;box-shadow:none;z-index:2}.wc-products-list-card .wc-products-list-card__results{max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__results ul{list-style:none}.wc-products-list-card .wc-products-list-card__results ul li{margin:0;border:1px solid #e6eaee;border-bottom-width:0}.wc-products-list-card .wc-products-list-card__results ul li:last-child{border-bottom-width:1px}.wc-products-list-card .wc-products-list-card__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:.75em 1.25em;background:#fff;border-bottom:1px solid #e6eaee}.wc-products-list-card:after{content:'';position:absolute;right:0;bottom:0;width:100%;height:1.5em;background:-webkit-linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%);background:linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%)}.wc-products-list-card--taxonomy .wc-products-list-card__taxonomy-count{text-align:center;width:30px;font-size:.8em;border:1px solid #e9e9e9;border-radius:1em;color:#aaa}.wc-products-list-card--taxonomy input[type=checkbox]{position:relative;margin-top:0;margin-left:.75em;border-radius:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li{margin-top:-1px}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:last-child{border-bottom-width:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul{display:none;padding:1em 3.25em 1em 1.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open{margin:.5em 0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul{display:block}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li .wc-products-list-card__taxonomy-count{margin-right:auto}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button{cursor:pointer;color:#666;margin:0 auto 0 1em;padding:0 .75em 0 0;border:none;border-radius:0;background:0 0;outline:0;text-decoration:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button .dashicon{-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-ms-flexbox;display:flex}.wc-products-list-card--taxonomy-category input[type=checkbox]:indeterminate:before{position:absolute;top:0;bottom:0;left:0;right:0;content:'';margin:42% 20%;width:60%;background:#0073aa}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul{padding:1em 3.25em 1em 1.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li .wc-products-list-card__content{padding:0;background:0 0;border:none}.wc-products-list-card--taxonomy-atributes__atribute{margin:-1px 0 0;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee}.wc-products-list-card--taxonomy-atributes__atribute:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open{margin-top:.5em;margin-bottom:.5em}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__taxonomy-count{margin-right:auto}.wc-products-list-card--taxonomy-atributes input[type=radio]{position:relative;margin-top:0;margin-left:.75em;border-radius:100%}.wc-products-list-card--specific{overflow:visible}.wc-products-list-card--specific:after{content:none}.wc-products-list-card--specific .wc-products-list-card__item{position:relative;border:none}.wc-products-list-card--specific .wc-products-list-card__item img{margin:0;outline:4px solid #00a0d2;outline-offset:-4px}.wc-products-list-card--specific .wc-products-list-card__item button{position:absolute;top:0;left:0;background:#00a0d2;padding:0;margin:0;border:none;margin-right:auto;line-height:10px;cursor:pointer}.wc-products-list-card--specific .wc-products-list-card__item .dashicon{color:#fff}.wc-products-list-card--specific .wc-products-list-card__input-wrapper{margin:0}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-1 .wc-products-list-card__item{width:100%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-2 .wc-products-list-card__item{width:50%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-3 .wc-products-list-card__item{width:33.3333333333%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-4 .wc-products-list-card__item{width:25%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-5 .wc-products-list-card__item{width:20%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-6 .wc-products-list-card__item{width:16.6666666667%}.wc-products-list-card--specific .wc-products-list-card__results{max-height:none;overflow:visible}.wc-products-list-card--specific .wc-products-list-card__results h3{margin:0 0 1em;font-size:1em}.wc-products-list-card--specific .wc-products-list-card__results ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -.5em -1em}.wc-products-list-card--specific .wc-products-list-card__results ul li{border:none;padding:0 .5em;margin:0 0 1em}.wc-products-list-card--specific .wc-products-list-card__results .wc-products-list-card__content{position:relative;display:block;padding:0;background:0 0;border:none}.wc-products-list-card__search-wrapper{position:relative;margin:0 0 1.5em}.wc-products-list-card__search-results{width:100%;list-style:none;background:#fff;margin:-1px 0 0;border:1px solid #e6eaee;box-shadow:0 1px 3px #e6eaee}.wc-products-list-card__search-results>div{max-height:175px;overflow-y:auto}.wc-products-list-card__search-results .wc-products-list-card__content{position:relative;border-width:1px 0 0;border-style:solid;border-color:#e6eaee;-webkit-transition:opacity .7s;transition:opacity .7s;cursor:pointer;color:#00a0d2}.wc-products-list-card__search-results .wc-products-list-card__content--added{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content:hover{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content--transition-exit-active{opacity:0}.wc-products-list-card__search-results .wc-products-list-card__content:first-child{border-top-width:0}.wc-products-list-card__search-results .wc-products-list-card__content img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:2.5em;height:2.5em;margin:0 0 0 1em}.wc-products-list-card__search-results .wc-products-list-card__content .dashicon{color:#0073aa;margin-right:auto}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item img{outline:0}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item button{display:none}.wc-products-list-card__search-no-results{display:block;margin:1em 0 0}.wc-products-list-card__search-no-selected{display:block;margin:-.75em 0 0}.wc-products-list-card__results-wrapper{position:relative;overflow:hidden}@media only screen and (min-width:700px){.wc-products-settings-heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wc-products-list-card{max-width:480px}}.edit-post-sidebar .wc-products-scope-descriptions{margin-bottom:1.5em;position:relative;padding-right:46px;padding-top:1em;padding-bottom:1.5em;border-bottom:1px solid #e6eaee;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.edit-post-sidebar h3{font-weight:500;margin-bottom:5px;color:#555d66}.edit-post-sidebar .scope-description{font-size:12px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink{margin-right:1em;min-width:24px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink a{cursor:pointer}
1
+ .wc-products-block-preview{overflow:hidden}.wc-products-block-preview .product-preview{float:right;text-align:center;margin-left:3.8%}.wc-products-block-preview.cols-1 .product-preview{float:none;margin-left:0}.wc-products-block-preview.cols-2 .product-preview{width:48%}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n){margin-left:0}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n+1){clear:both}.wc-products-block-preview.cols-3 .product-preview{width:30.75%}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n){margin-left:0}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n+1){clear:both}.wc-products-block-preview.cols-4 .product-preview{width:22.05%}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n){margin-left:0}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview{width:16.9%}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n){margin-left:0}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview.cols-6 .product-preview{width:13.5%}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n){margin-left:0}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n+1){clear:both}.wc-products-block-preview.cols-6 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview .product-add-to-cart{display:inline-block;background:#ababab;border-radius:1.5em;color:#fff;cursor:pointer;padding:.75em 1.25em;line-height:1.2em;margin-top:.5em;margin-bottom:1em}.wc-products-settings{background-color:#f8f9f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;position:relative}.wc-products-settings__title{margin:0;padding:1.5rem 0;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-settings__title .dashicon{vertical-align:top;margin-left:.25em}.wc-products-settings__footer{margin:2em 0 0;padding:1.5em 0;border-top:1px solid #e6eaee;text-align:center}.wc-products-settings__footer .button{padding-right:1.5em;padding-left:1.5em}.wc-products-display-options--popover+.wc-products-settings__footer,.wc-products-settings-heading+.wc-products-settings__footer{margin-top:-2em;border-top:none}p.wc-products-block-description{margin:2em 0 1.5em 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;text-align:center}.wc-products-display-options{margin:0 0 2.5em}.wc-products-display-options__option{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:0 auto;padding:1.25em 1.5em;max-width:80%;background:#fff;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee;cursor:pointer}.wc-products-display-options__option:last-of-type{border-bottom-width:1px}.wc-products-display-options__option--attribute,.wc-products-display-options__option--best_selling,.wc-products-display-options__option--featured,.wc-products-display-options__option--on_sale,.wc-products-display-options__option--top_rated{display:none;background-color:#fdfdfd;padding-top:1em;padding-bottom:1em}.wc-products-display-options__option--attribute .wc-products-display-options__option-title,.wc-products-display-options__option--best_selling .wc-products-display-options__option-title,.wc-products-display-options__option--featured .wc-products-display-options__option-title,.wc-products-display-options__option--on_sale .wc-products-display-options__option-title,.wc-products-display-options__option--top_rated .wc-products-display-options__option-title{font-size:1.15em}.wc-products-display-options__option--attribute .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--best_selling .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--featured .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--on_sale .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--top_rated .wc-products-display-options__icon .dashicon{height:20px;width:20px}.wc-products-display-options__option--current{cursor:default}.wc-products-display-options__option--current .wc-products-display-options__option-title{color:#86909b}.wc-products-display-options__option-content{width:85%;align-self:center}.wc-products-display-options__option-title{display:block;font-size:1.25em}p.wc-products-display-options__option-description{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;color:#86909b}.wc-products-display-options__icon{align-self:center;margin-right:auto;color:#b9bcc2}.wc-products-display-options__icon .dashicon{height:25px;width:25px}.wc-products-display-options--popover{position:absolute;left:-2em;max-width:60%;margin:0;z-index:999;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);margin-top:-2.15em}.wc-products-display-options--popover .wc-products-display-options__option{margin:0;max-width:none}.wc-products-display-options--popover__arrow{width:2em;height:1.25em;position:absolute;top:-1.15em;left:30%;overflow:hidden}.wc-products-display-options--popover__arrow:after{content:'';position:absolute;width:1.25em;height:1.25em;background:#fff;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);top:.625em;right:.3125em;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);border:1px solid #e6eaee}.wc-products-display-options--extended .wc-products-display-options__option--attribute,.wc-products-display-options--extended .wc-products-display-options__option--best_selling,.wc-products-display-options--extended .wc-products-display-options__option--featured,.wc-products-display-options--extended .wc-products-display-options__option--on_sale,.wc-products-display-options--extended .wc-products-display-options__option--top_rated{display:-webkit-box;display:flex}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--category{border-bottom-width:1px}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--filter{margin-top:.5em}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--attribute{margin-bottom:.5em;border-bottom-width:1px}.wc-products-settings-heading{margin:0 0 2em 0;padding:1em 2em;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-list-card{position:relative;margin-right:auto;margin-left:auto;padding:0 1em;overflow:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__input-wrapper{position:relative;background:#fff;margin:0 0 1em}.wc-products-list-card .wc-products-list-card__input-wrapper .dashicon{position:absolute;top:calc(1em - 1px);right:1em;z-index:1}.wc-products-list-card input[type=search]{position:relative;width:100%;margin:0;padding:1em 3em 1em 1.25em;border-radius:0;background:0 0;border-color:#e6eaee;box-shadow:none;z-index:2}.wc-products-list-card .wc-products-list-card__results{max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__results ul{list-style:none}.wc-products-list-card .wc-products-list-card__results ul li{margin:0;border:1px solid #e6eaee;border-bottom-width:0}.wc-products-list-card .wc-products-list-card__results ul li:last-child{border-bottom-width:1px}.wc-products-list-card .wc-products-list-card__content{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:.75em 1.25em;background:#fff;border-bottom:1px solid #e6eaee}.wc-products-list-card:after{content:'';position:absolute;right:0;bottom:0;width:100%;height:1.5em;background:-webkit-linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%);background:linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%)}.wc-products-list-card--taxonomy .wc-products-list-card__taxonomy-count{text-align:center;width:30px;font-size:.8em;border:1px solid #e9e9e9;border-radius:1em;color:#aaa}.wc-products-list-card--taxonomy input[type=checkbox]{position:relative;margin-top:0;margin-left:.75em;border-radius:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results{padding-bottom:1.3em}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li{margin-top:-1px}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:last-child{border-bottom-width:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul{display:none;padding:1em 3.25em 1em 1.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open{margin:.5em 0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul{display:block}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li .wc-products-list-card__taxonomy-count{margin-right:auto}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button{cursor:pointer;color:#666;margin:0 auto 0 1em;padding:0 .75em 0 0;border:none;border-radius:0;background:0 0;outline:0;text-decoration:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button .dashicon{align-self:center;display:-webkit-box;display:flex}.wc-products-list-card--taxonomy-category input[type=checkbox]:indeterminate:before{position:absolute;top:0;bottom:0;left:0;right:0;content:'';margin:42% 20%;width:60%;background:#0073aa}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results{padding-bottom:1.3em}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul{padding:1em 3.25em 1em 1.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li .wc-products-list-card__content{padding:0;background:0 0;border:none}.wc-products-list-card--taxonomy-atributes__atribute{margin:-1px 0 0;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee}.wc-products-list-card--taxonomy-atributes__atribute:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open{margin-top:.5em;margin-bottom:.5em}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__taxonomy-count{margin-right:auto}.wc-products-list-card--taxonomy-atributes input[type=radio]{position:relative;margin-top:0;margin-left:.75em;border-radius:100%}.wc-products-list-card--specific{overflow:visible}.wc-products-list-card--specific:after{content:none}.wc-products-list-card--specific .wc-products-list-card__item{position:relative;border:none}.wc-products-list-card--specific .wc-products-list-card__item img{margin:0;outline:4px solid #00a0d2;outline-offset:-4px}.wc-products-list-card--specific .wc-products-list-card__item button{position:absolute;top:0;left:0;background:#00a0d2;padding:0;margin:0;border:none;margin-right:auto;line-height:10px;cursor:pointer}.wc-products-list-card--specific .wc-products-list-card__item .dashicon{color:#fff}.wc-products-list-card--specific .wc-products-list-card__input-wrapper{margin:0}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-1 .wc-products-list-card__item{width:100%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-2 .wc-products-list-card__item{width:50%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-3 .wc-products-list-card__item{width:33.3333333333%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-4 .wc-products-list-card__item{width:25%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-5 .wc-products-list-card__item{width:20%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-6 .wc-products-list-card__item{width:16.6666666667%}.wc-products-list-card--specific .wc-products-list-card__results{max-height:none;overflow:visible}.wc-products-list-card--specific .wc-products-list-card__results h3{margin:0 0 1em;font-size:1em}.wc-products-list-card--specific .wc-products-list-card__results ul{display:-webkit-box;display:flex;flex-wrap:wrap;margin:0 -.5em -1em}.wc-products-list-card--specific .wc-products-list-card__results ul li{border:none;padding:0 .5em;margin:0 0 1em}.wc-products-list-card--specific .wc-products-list-card__results .wc-products-list-card__content{position:relative;display:block;padding:0;background:0 0;border:none}.wc-products-list-card__search-wrapper{position:relative;margin:0 0 1.5em}.wc-products-list-card__search-results{width:100%;list-style:none;background:#fff;margin:-1px 0 0;border:1px solid #e6eaee;box-shadow:0 1px 3px #e6eaee}.wc-products-list-card__search-results>div{max-height:175px;overflow-y:auto}.wc-products-list-card__search-results .wc-products-list-card__content{position:relative;border-width:1px 0 0;border-style:solid;border-color:#e6eaee;-webkit-transition:opacity .7s;transition:opacity .7s;cursor:pointer;color:#00a0d2}.wc-products-list-card__search-results .wc-products-list-card__content--added{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content:hover{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content--transition-exit-active{opacity:0}.wc-products-list-card__search-results .wc-products-list-card__content:first-child{border-top-width:0}.wc-products-list-card__search-results .wc-products-list-card__content img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:2.5em;height:2.5em;margin:0 0 0 1em}.wc-products-list-card__search-results .wc-products-list-card__content .dashicon{color:#0073aa;margin-right:auto}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item img{outline:0}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item button{display:none}.wc-products-list-card__search-no-results{display:block;margin:1em 0 0}.wc-products-list-card__search-no-selected{display:block;margin:-.75em 0 0}.wc-products-list-card__results-wrapper{position:relative;overflow:hidden}@media only screen and (min-width:700px){.wc-products-settings-heading{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.wc-products-list-card{max-width:480px}}.edit-post-sidebar .wc-products-scope-descriptions{margin-bottom:1.5em;position:relative;padding-right:46px;padding-top:1em;padding-bottom:1.5em;border-bottom:1px solid #e6eaee;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.edit-post-sidebar h3{font-weight:500;margin-bottom:5px;color:#555d66}.edit-post-sidebar .scope-description{font-size:12px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink{margin-right:1em;min-width:24px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink a{cursor:pointer}
assets/css/gutenberg-products-block.css CHANGED
@@ -1 +1 @@
1
- .wc-products-block-preview{overflow:hidden}.wc-products-block-preview .product-preview{float:left;text-align:center;margin-right:3.8%}.wc-products-block-preview.cols-1 .product-preview{float:none;margin-right:0}.wc-products-block-preview.cols-2 .product-preview{width:48%}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n){margin-right:0}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n+1){clear:both}.wc-products-block-preview.cols-3 .product-preview{width:30.75%}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n){margin-right:0}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n+1){clear:both}.wc-products-block-preview.cols-4 .product-preview{width:22.05%}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n){margin-right:0}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview{width:16.9%}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n){margin-right:0}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview.cols-6 .product-preview{width:13.5%}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n){margin-right:0}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n+1){clear:both}.wc-products-block-preview.cols-6 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview .product-add-to-cart{display:inline-block;background:#ababab;border-radius:1.5em;color:#fff;cursor:pointer;padding:.75em 1.25em;line-height:1.2em;margin-top:.5em;margin-bottom:1em}.wc-products-settings{background-color:#f8f9f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;position:relative}.wc-products-settings__title{margin:0;padding:1.5rem 0;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-settings__title .dashicon{vertical-align:top;margin-right:.25em}.wc-products-settings__footer{margin:2em 0 0;padding:1.5em 0;border-top:1px solid #e6eaee;text-align:center}.wc-products-settings__footer .button{padding-left:1.5em;padding-right:1.5em}.wc-products-display-options--popover+.wc-products-settings__footer,.wc-products-settings-heading+.wc-products-settings__footer{margin-top:-2em;border-top:none}p.wc-products-block-description{margin:2em 0 1.5em 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;text-align:center}.wc-products-display-options{margin:0 0 2.5em}.wc-products-display-options__option{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 auto;padding:1.25em 1.5em;max-width:80%;background:#fff;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee;cursor:pointer}.wc-products-display-options__option:last-of-type{border-bottom-width:1px}.wc-products-display-options__option--attribute,.wc-products-display-options__option--best_selling,.wc-products-display-options__option--featured,.wc-products-display-options__option--on_sale,.wc-products-display-options__option--top_rated{display:none;background-color:#fdfdfd;padding-top:1em;padding-bottom:1em}.wc-products-display-options__option--attribute .wc-products-display-options__option-title,.wc-products-display-options__option--best_selling .wc-products-display-options__option-title,.wc-products-display-options__option--featured .wc-products-display-options__option-title,.wc-products-display-options__option--on_sale .wc-products-display-options__option-title,.wc-products-display-options__option--top_rated .wc-products-display-options__option-title{font-size:1.15em}.wc-products-display-options__option--attribute .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--best_selling .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--featured .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--on_sale .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--top_rated .wc-products-display-options__icon .dashicon{height:20px;width:20px}.wc-products-display-options__option--current{cursor:default}.wc-products-display-options__option--current .wc-products-display-options__option-title{color:#86909b}.wc-products-display-options__option-content{width:85%;-ms-flex-item-align:center;align-self:center}.wc-products-display-options__option-title{display:block;font-size:1.25em}p.wc-products-display-options__option-description{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;color:#86909b}.wc-products-display-options__icon{-ms-flex-item-align:center;align-self:center;margin-left:auto;color:#b9bcc2}.wc-products-display-options__icon .dashicon{height:25px;width:25px}.wc-products-display-options--popover{position:absolute;right:-2em;max-width:60%;margin:0;z-index:999;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);margin-top:-2.15em}.wc-products-display-options--popover .wc-products-display-options__option{margin:0;max-width:none}.wc-products-display-options--popover__arrow{width:2em;height:1.25em;position:absolute;top:-1.15em;right:30%;overflow:hidden}.wc-products-display-options--popover__arrow:after{content:'';position:absolute;width:1.25em;height:1.25em;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);top:.625em;left:.3125em;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);border:1px solid #e6eaee}.wc-products-display-options--extended .wc-products-display-options__option--attribute,.wc-products-display-options--extended .wc-products-display-options__option--best_selling,.wc-products-display-options--extended .wc-products-display-options__option--featured,.wc-products-display-options--extended .wc-products-display-options__option--on_sale,.wc-products-display-options--extended .wc-products-display-options__option--top_rated{display:-webkit-box;display:-ms-flexbox;display:flex}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--category{border-bottom-width:1px}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--filter{margin-top:.5em}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--attribute{margin-bottom:.5em;border-bottom-width:1px}.wc-products-settings-heading{margin:0 0 2em 0;padding:1em 2em;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-list-card{position:relative;margin-left:auto;margin-right:auto;padding:0 1em;overflow:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__input-wrapper{position:relative;background:#fff;margin:0 0 1em}.wc-products-list-card .wc-products-list-card__input-wrapper .dashicon{position:absolute;top:calc(1em - 1px);left:1em;z-index:1}.wc-products-list-card input[type=search]{position:relative;width:100%;margin:0;padding:1em 1.25em 1em 3em;border-radius:0;background:0 0;border-color:#e6eaee;box-shadow:none;z-index:2}.wc-products-list-card .wc-products-list-card__results{max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__results ul{list-style:none}.wc-products-list-card .wc-products-list-card__results ul li{margin:0;border:1px solid #e6eaee;border-bottom-width:0}.wc-products-list-card .wc-products-list-card__results ul li:last-child{border-bottom-width:1px}.wc-products-list-card .wc-products-list-card__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:.75em 1.25em;background:#fff;border-bottom:1px solid #e6eaee}.wc-products-list-card:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1.5em;background:-webkit-linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%);background:linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%)}.wc-products-list-card--taxonomy .wc-products-list-card__taxonomy-count{text-align:center;width:30px;font-size:.8em;border:1px solid #e9e9e9;border-radius:1em;color:#aaa}.wc-products-list-card--taxonomy input[type=checkbox]{position:relative;margin-top:0;margin-right:.75em;border-radius:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li{margin-top:-1px}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:last-child{border-bottom-width:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul{display:none;padding:1em 1.25em 1em 3.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open{margin:.5em 0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul{display:block}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li .wc-products-list-card__taxonomy-count{margin-left:auto}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button{cursor:pointer;color:#666;margin:0 1em 0 auto;padding:0 0 0 .75em;border:none;border-radius:0;background:0 0;outline:0;text-decoration:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button .dashicon{-ms-flex-item-align:center;align-self:center;display:-webkit-box;display:-ms-flexbox;display:flex}.wc-products-list-card--taxonomy-category input[type=checkbox]:indeterminate:before{position:absolute;top:0;bottom:0;right:0;left:0;content:'';margin:42% 20%;width:60%;background:#0073aa}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul{padding:1em 1.25em 1em 3.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li .wc-products-list-card__content{padding:0;background:0 0;border:none}.wc-products-list-card--taxonomy-atributes__atribute{margin:-1px 0 0;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee}.wc-products-list-card--taxonomy-atributes__atribute:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open{margin-top:.5em;margin-bottom:.5em}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__taxonomy-count{margin-left:auto}.wc-products-list-card--taxonomy-atributes input[type=radio]{position:relative;margin-top:0;margin-right:.75em;border-radius:100%}.wc-products-list-card--specific{overflow:visible}.wc-products-list-card--specific:after{content:none}.wc-products-list-card--specific .wc-products-list-card__item{position:relative;border:none}.wc-products-list-card--specific .wc-products-list-card__item img{margin:0;outline:4px solid #00a0d2;outline-offset:-4px}.wc-products-list-card--specific .wc-products-list-card__item button{position:absolute;top:0;right:0;background:#00a0d2;padding:0;margin:0;border:none;margin-left:auto;line-height:10px;cursor:pointer}.wc-products-list-card--specific .wc-products-list-card__item .dashicon{color:#fff}.wc-products-list-card--specific .wc-products-list-card__input-wrapper{margin:0}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-1 .wc-products-list-card__item{width:100%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-2 .wc-products-list-card__item{width:50%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-3 .wc-products-list-card__item{width:33.3333333333%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-4 .wc-products-list-card__item{width:25%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-5 .wc-products-list-card__item{width:20%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-6 .wc-products-list-card__item{width:16.6666666667%}.wc-products-list-card--specific .wc-products-list-card__results{max-height:none;overflow:visible}.wc-products-list-card--specific .wc-products-list-card__results h3{margin:0 0 1em;font-size:1em}.wc-products-list-card--specific .wc-products-list-card__results ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -.5em -1em}.wc-products-list-card--specific .wc-products-list-card__results ul li{border:none;padding:0 .5em;margin:0 0 1em}.wc-products-list-card--specific .wc-products-list-card__results .wc-products-list-card__content{position:relative;display:block;padding:0;background:0 0;border:none}.wc-products-list-card__search-wrapper{position:relative;margin:0 0 1.5em}.wc-products-list-card__search-results{width:100%;list-style:none;background:#fff;margin:-1px 0 0;border:1px solid #e6eaee;box-shadow:0 1px 3px #e6eaee}.wc-products-list-card__search-results>div{max-height:175px;overflow-y:auto}.wc-products-list-card__search-results .wc-products-list-card__content{position:relative;border-width:1px 0 0;border-style:solid;border-color:#e6eaee;-webkit-transition:opacity .7s;transition:opacity .7s;cursor:pointer;color:#00a0d2}.wc-products-list-card__search-results .wc-products-list-card__content--added{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content:hover{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content--transition-exit-active{opacity:0}.wc-products-list-card__search-results .wc-products-list-card__content:first-child{border-top-width:0}.wc-products-list-card__search-results .wc-products-list-card__content img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:2.5em;height:2.5em;margin:0 1em 0 0}.wc-products-list-card__search-results .wc-products-list-card__content .dashicon{color:#0073aa;margin-left:auto}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item img{outline:0}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item button{display:none}.wc-products-list-card__search-no-results{display:block;margin:1em 0 0}.wc-products-list-card__search-no-selected{display:block;margin:-.75em 0 0}.wc-products-list-card__results-wrapper{position:relative;overflow:hidden}@media only screen and (min-width:700px){.wc-products-settings-heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.wc-products-list-card{max-width:480px}}.edit-post-sidebar .wc-products-scope-descriptions{margin-bottom:1.5em;position:relative;padding-left:46px;padding-top:1em;padding-bottom:1.5em;border-bottom:1px solid #e6eaee;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.edit-post-sidebar h3{font-weight:500;margin-bottom:5px;color:#555d66}.edit-post-sidebar .scope-description{font-size:12px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink{margin-left:1em;min-width:24px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink a{cursor:pointer}
1
+ .wc-products-block-preview{overflow:hidden}.wc-products-block-preview .product-preview{float:left;text-align:center;margin-right:3.8%}.wc-products-block-preview.cols-1 .product-preview{float:none;margin-right:0}.wc-products-block-preview.cols-2 .product-preview{width:48%}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n){margin-right:0}.wc-products-block-preview.cols-2 .product-preview:nth-of-type(2n+1){clear:both}.wc-products-block-preview.cols-3 .product-preview{width:30.75%}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n){margin-right:0}.wc-products-block-preview.cols-3 .product-preview:nth-of-type(3n+1){clear:both}.wc-products-block-preview.cols-4 .product-preview{width:22.05%}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n){margin-right:0}.wc-products-block-preview.cols-4 .product-preview:nth-of-type(4n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview{width:16.9%}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n){margin-right:0}.wc-products-block-preview.cols-5 .product-preview:nth-of-type(5n+1){clear:both}.wc-products-block-preview.cols-5 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview.cols-6 .product-preview{width:13.5%}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n){margin-right:0}.wc-products-block-preview.cols-6 .product-preview:nth-of-type(6n+1){clear:both}.wc-products-block-preview.cols-6 .product-preview .product-add-to-cart{font-size:.75em}.wc-products-block-preview .product-add-to-cart{display:inline-block;background:#ababab;border-radius:1.5em;color:#fff;cursor:pointer;padding:.75em 1.25em;line-height:1.2em;margin-top:.5em;margin-bottom:1em}.wc-products-settings{background-color:#f8f9f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;position:relative}.wc-products-settings__title{margin:0;padding:1.5rem 0;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-settings__title .dashicon{vertical-align:top;margin-right:.25em}.wc-products-settings__footer{margin:2em 0 0;padding:1.5em 0;border-top:1px solid #e6eaee;text-align:center}.wc-products-settings__footer .button{padding-left:1.5em;padding-right:1.5em}.wc-products-display-options--popover+.wc-products-settings__footer,.wc-products-settings-heading+.wc-products-settings__footer{margin-top:-2em;border-top:none}p.wc-products-block-description{margin:2em 0 1.5em 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;text-align:center}.wc-products-display-options{margin:0 0 2.5em}.wc-products-display-options__option{display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:0 auto;padding:1.25em 1.5em;max-width:80%;background:#fff;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee;cursor:pointer}.wc-products-display-options__option:last-of-type{border-bottom-width:1px}.wc-products-display-options__option--attribute,.wc-products-display-options__option--best_selling,.wc-products-display-options__option--featured,.wc-products-display-options__option--on_sale,.wc-products-display-options__option--top_rated{display:none;background-color:#fdfdfd;padding-top:1em;padding-bottom:1em}.wc-products-display-options__option--attribute .wc-products-display-options__option-title,.wc-products-display-options__option--best_selling .wc-products-display-options__option-title,.wc-products-display-options__option--featured .wc-products-display-options__option-title,.wc-products-display-options__option--on_sale .wc-products-display-options__option-title,.wc-products-display-options__option--top_rated .wc-products-display-options__option-title{font-size:1.15em}.wc-products-display-options__option--attribute .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--best_selling .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--featured .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--on_sale .wc-products-display-options__icon .dashicon,.wc-products-display-options__option--top_rated .wc-products-display-options__icon .dashicon{height:20px;width:20px}.wc-products-display-options__option--current{cursor:default}.wc-products-display-options__option--current .wc-products-display-options__option-title{color:#86909b}.wc-products-display-options__option-content{width:85%;align-self:center}.wc-products-display-options__option-title{display:block;font-size:1.25em}p.wc-products-display-options__option-description{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:1em;color:#86909b}.wc-products-display-options__icon{align-self:center;margin-left:auto;color:#b9bcc2}.wc-products-display-options__icon .dashicon{height:25px;width:25px}.wc-products-display-options--popover{position:absolute;right:-2em;max-width:60%;margin:0;z-index:999;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);margin-top:-2.15em}.wc-products-display-options--popover .wc-products-display-options__option{margin:0;max-width:none}.wc-products-display-options--popover__arrow{width:2em;height:1.25em;position:absolute;top:-1.15em;right:30%;overflow:hidden}.wc-products-display-options--popover__arrow:after{content:'';position:absolute;width:1.25em;height:1.25em;background:#fff;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);top:.625em;left:.3125em;box-shadow:0 2px 10px 0 rgba(0,0,0,.1);border:1px solid #e6eaee}.wc-products-display-options--extended .wc-products-display-options__option--attribute,.wc-products-display-options--extended .wc-products-display-options__option--best_selling,.wc-products-display-options--extended .wc-products-display-options__option--featured,.wc-products-display-options--extended .wc-products-display-options__option--on_sale,.wc-products-display-options--extended .wc-products-display-options__option--top_rated{display:-webkit-box;display:flex}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--category{border-bottom-width:1px}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--filter{margin-top:.5em}.wc-products-display-options--extended:not(.wc-products-display-options--popover) .wc-products-display-options__option--attribute{margin-bottom:.5em;border-bottom-width:1px}.wc-products-settings-heading{margin:0 0 2em 0;padding:1em 2em;text-align:center;border-bottom:1px solid #e6eaee}.wc-products-list-card{position:relative;margin-left:auto;margin-right:auto;padding:0 1em;overflow:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__input-wrapper{position:relative;background:#fff;margin:0 0 1em}.wc-products-list-card .wc-products-list-card__input-wrapper .dashicon{position:absolute;top:calc(1em - 1px);left:1em;z-index:1}.wc-products-list-card input[type=search]{position:relative;width:100%;margin:0;padding:1em 1.25em 1em 3em;border-radius:0;background:0 0;border-color:#e6eaee;box-shadow:none;z-index:2}.wc-products-list-card .wc-products-list-card__results{max-height:200px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.wc-products-list-card .wc-products-list-card__results ul{list-style:none}.wc-products-list-card .wc-products-list-card__results ul li{margin:0;border:1px solid #e6eaee;border-bottom-width:0}.wc-products-list-card .wc-products-list-card__results ul li:last-child{border-bottom-width:1px}.wc-products-list-card .wc-products-list-card__content{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:.75em 1.25em;background:#fff;border-bottom:1px solid #e6eaee}.wc-products-list-card:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:1.5em;background:-webkit-linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%);background:linear-gradient(rgba(255,255,255,.1) 0,#f8f9f9 100%)}.wc-products-list-card--taxonomy .wc-products-list-card__taxonomy-count{text-align:center;width:30px;font-size:.8em;border:1px solid #e9e9e9;border-radius:1em;color:#aaa}.wc-products-list-card--taxonomy input[type=checkbox]{position:relative;margin-top:0;margin-right:.75em;border-radius:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results{padding-bottom:1.3em}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li{margin-top:-1px}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li:last-child{border-bottom-width:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul{display:none;padding:1em 1.25em 1em 3.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li ul li:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open{margin:.5em 0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul{display:block}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li label{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.wc-products-list-card--taxonomy-category .wc-products-list-card__results ul li.wc-products-list-card__accordion-open ul li .wc-products-list-card__taxonomy-count{margin-left:auto}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button{cursor:pointer;color:#666;margin:0 1em 0 auto;padding:0 0 0 .75em;border:none;border-radius:0;background:0 0;outline:0;text-decoration:none}.wc-products-list-card--taxonomy-category .wc-products-list-card__accordion-button .dashicon{align-self:center;display:-webkit-box;display:flex}.wc-products-list-card--taxonomy-category input[type=checkbox]:indeterminate:before{position:absolute;top:0;bottom:0;right:0;left:0;content:'';margin:42% 20%;width:60%;background:#0073aa}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results{padding-bottom:1.3em}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul{padding:1em 1.25em 1em 3.25em;background:#fdfdfd;border-bottom:1px solid #e6eaee}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li{margin-bottom:.25em;border:none}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__results ul li .wc-products-list-card__content{padding:0;background:0 0;border:none}.wc-products-list-card--taxonomy-atributes__atribute{margin:-1px 0 0;border-width:1px 1px 0;border-style:solid;border-color:#e6eaee}.wc-products-list-card--taxonomy-atributes__atribute:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open{margin-top:.5em;margin-bottom:.5em}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:first-child{margin-top:0}.wc-products-list-card--taxonomy-atributes__atribute.wc-products-list-card__accordion-open:last-child{margin-bottom:0}.wc-products-list-card--taxonomy-atributes .wc-products-list-card__taxonomy-count{margin-left:auto}.wc-products-list-card--taxonomy-atributes input[type=radio]{position:relative;margin-top:0;margin-right:.75em;border-radius:100%}.wc-products-list-card--specific{overflow:visible}.wc-products-list-card--specific:after{content:none}.wc-products-list-card--specific .wc-products-list-card__item{position:relative;border:none}.wc-products-list-card--specific .wc-products-list-card__item img{margin:0;outline:4px solid #00a0d2;outline-offset:-4px}.wc-products-list-card--specific .wc-products-list-card__item button{position:absolute;top:0;right:0;background:#00a0d2;padding:0;margin:0;border:none;margin-left:auto;line-height:10px;cursor:pointer}.wc-products-list-card--specific .wc-products-list-card__item .dashicon{color:#fff}.wc-products-list-card--specific .wc-products-list-card__input-wrapper{margin:0}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-1 .wc-products-list-card__item{width:100%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-2 .wc-products-list-card__item{width:50%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-3 .wc-products-list-card__item{width:33.3333333333%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-4 .wc-products-list-card__item{width:25%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-5 .wc-products-list-card__item{width:20%}.wc-products-list-card--specific .wc-products-list-card__results-wrapper--cols-6 .wc-products-list-card__item{width:16.6666666667%}.wc-products-list-card--specific .wc-products-list-card__results{max-height:none;overflow:visible}.wc-products-list-card--specific .wc-products-list-card__results h3{margin:0 0 1em;font-size:1em}.wc-products-list-card--specific .wc-products-list-card__results ul{display:-webkit-box;display:flex;flex-wrap:wrap;margin:0 -.5em -1em}.wc-products-list-card--specific .wc-products-list-card__results ul li{border:none;padding:0 .5em;margin:0 0 1em}.wc-products-list-card--specific .wc-products-list-card__results .wc-products-list-card__content{position:relative;display:block;padding:0;background:0 0;border:none}.wc-products-list-card__search-wrapper{position:relative;margin:0 0 1.5em}.wc-products-list-card__search-results{width:100%;list-style:none;background:#fff;margin:-1px 0 0;border:1px solid #e6eaee;box-shadow:0 1px 3px #e6eaee}.wc-products-list-card__search-results>div{max-height:175px;overflow-y:auto}.wc-products-list-card__search-results .wc-products-list-card__content{position:relative;border-width:1px 0 0;border-style:solid;border-color:#e6eaee;-webkit-transition:opacity .7s;transition:opacity .7s;cursor:pointer;color:#00a0d2}.wc-products-list-card__search-results .wc-products-list-card__content--added{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content:hover{background-color:#f7fcff}.wc-products-list-card__search-results .wc-products-list-card__content--transition-exit-active{opacity:0}.wc-products-list-card__search-results .wc-products-list-card__content:first-child{border-top-width:0}.wc-products-list-card__search-results .wc-products-list-card__content img{-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;width:2.5em;height:2.5em;margin:0 1em 0 0}.wc-products-list-card__search-results .wc-products-list-card__content .dashicon{color:#0073aa;margin-left:auto}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item img{outline:0}.wc-products-list-card__search-wrapper--with-results+.wc-products-list-card__results-wrapper .wc-products-list-card__item button{display:none}.wc-products-list-card__search-no-results{display:block;margin:1em 0 0}.wc-products-list-card__search-no-selected{display:block;margin:-.75em 0 0}.wc-products-list-card__results-wrapper{position:relative;overflow:hidden}@media only screen and (min-width:700px){.wc-products-settings-heading{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.wc-products-list-card{max-width:480px}}.edit-post-sidebar .wc-products-scope-descriptions{margin-bottom:1.5em;position:relative;padding-left:46px;padding-top:1em;padding-bottom:1.5em;border-bottom:1px solid #e6eaee;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between}.edit-post-sidebar h3{font-weight:500;margin-bottom:5px;color:#555d66}.edit-post-sidebar .scope-description{font-size:12px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink{margin-left:1em;min-width:24px}.edit-post-sidebar .wc-products-scope-description--edit-quicklink a{cursor:pointer}
assets/css/gutenberg-products-block.scss CHANGED
@@ -428,6 +428,8 @@ p.wc-products-display-options__option-description {
428
 
429
  .wc-products-list-card--taxonomy-category {
430
  .wc-products-list-card__results {
 
 
431
  ul {
432
  li {
433
  margin-top: -1px;
@@ -527,6 +529,8 @@ p.wc-products-display-options__option-description {
527
 
528
  .wc-products-list-card--taxonomy-atributes {
529
  .wc-products-list-card__results {
 
 
530
  ul {
531
  padding: 1em 1.25em 1em 3.25em;
532
  background: $color__alt-background;
428
 
429
  .wc-products-list-card--taxonomy-category {
430
  .wc-products-list-card__results {
431
+ padding-bottom: 1.3em;
432
+
433
  ul {
434
  li {
435
  margin-top: -1px;
529
 
530
  .wc-products-list-card--taxonomy-atributes {
531
  .wc-products-list-card__results {
532
+ padding-bottom: 1.3em;
533
+
534
  ul {
535
  padding: 1em 1.25em 1em 3.25em;
536
  background: $color__alt-background;
assets/js/products-block.js CHANGED
@@ -96,12 +96,13 @@ var _wp$editor = wp.editor,
96
  BlockControls = _wp$editor.BlockControls;
97
  var _wp$components = wp.components,
98
  Toolbar = _wp$components.Toolbar,
99
- withAPIData = _wp$components.withAPIData,
100
  Dropdown = _wp$components.Dropdown,
101
  Dashicon = _wp$components.Dashicon,
102
  RangeControl = _wp$components.RangeControl,
103
  Tooltip = _wp$components.Tooltip,
104
  SelectControl = _wp$components.SelectControl;
 
 
105
 
106
 
107
  /**
@@ -577,233 +578,433 @@ var ProductPreview = function (_React$Component4) {
577
  */
578
 
579
 
580
- var ProductsBlockPreview = withAPIData(function (_ref) {
581
- var attributes = _ref.attributes;
582
- var columns = attributes.columns,
583
- rows = attributes.rows,
584
- display = attributes.display,
585
- display_setting = attributes.display_setting,
586
- orderby = attributes.orderby;
587
 
 
 
 
 
 
588
 
589
- var query = {
590
- per_page: rows * columns
591
- };
592
 
593
- if ('specific' === display) {
594
- query.include = display_setting.join(',');
595
- query.per_page = display_setting.length;
596
- } else if ('category' === display) {
597
- query.category = display_setting.join(',');
598
- } else if ('attribute' === display && display_setting.length) {
599
- query.attribute = (0, _attributeSelect.getAttributeSlug)(display_setting[0]);
600
 
601
- if (display_setting.length > 1) {
602
- query.attribute_term = display_setting.slice(1).join(',');
603
- }
604
- } else if ('featured' === display) {
605
- query.featured = 1;
606
- } else if ('on_sale' === display) {
607
- query.on_sale = 1;
608
  }
609
 
610
- if (supportsOrderby(display)) {
611
- if ('price_desc' === orderby) {
612
- query.orderby = 'price';
613
- query.order = 'desc';
614
- } else if ('price_asc' === orderby) {
615
- query.orderby = 'price';
616
- query.order = 'asc';
617
- } else if ('title' === orderby) {
618
- query.orderby = 'title';
619
- query.order = 'asc';
620
- } else {
621
- query.orderby = orderby;
622
- }
623
- }
624
 
625
- var query_string = '?';
626
- var _iteratorNormalCompletion = true;
627
- var _didIteratorError = false;
628
- var _iteratorError = undefined;
 
629
 
630
- try {
631
- for (var _iterator = Object.keys(query)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
632
- var key = _step.value;
633
 
634
- query_string += key + '=' + query[key] + '&';
 
 
 
 
 
635
  }
636
- } catch (err) {
637
- _didIteratorError = true;
638
- _iteratorError = err;
639
- } finally {
640
- try {
641
- if (!_iteratorNormalCompletion && _iterator.return) {
642
- _iterator.return();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
643
  }
644
- } finally {
645
- if (_didIteratorError) {
646
- throw _iteratorError;
 
 
 
 
 
 
 
 
 
 
 
647
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
648
  }
649
- }
650
 
651
- return {
652
- // @todo Switch this to use WC core API when possible.
653
- products: '/wgbp/v3/products' + query_string
654
- };
655
- })(function (_ref2) {
656
- var products = _ref2.products,
657
- attributes = _ref2.attributes;
658
 
 
 
 
 
 
 
 
 
 
 
659
 
660
- if (!products.data) {
661
- return __('Loading');
662
- }
 
 
 
 
663
 
664
- if (0 === products.data.length) {
665
- return __('No products found');
666
- }
667
 
668
- var classes = "wc-products-block-preview cols-" + attributes.columns;
 
 
 
 
 
669
 
670
- return wp.element.createElement(
671
- 'div',
672
- { className: classes },
673
- products.data.map(function (product) {
674
- return wp.element.createElement(ProductPreview, { key: product.id, product: product, attributes: attributes });
675
- })
676
- );
677
- });
 
 
 
 
 
 
 
 
 
 
 
678
 
679
  /**
680
  * Information about current block settings rendered in the sidebar.
681
  */
682
- var ProductsBlockSidebarInfo = withAPIData(function (_ref3) {
683
- var attributes = _ref3.attributes;
684
- var display = attributes.display,
685
- display_setting = attributes.display_setting;
686
 
687
 
688
- if ('attribute' === display && display_setting.length) {
689
- var ID = (0, _attributeSelect.getAttributeID)(display_setting[0]);
690
- var terms = display_setting.slice(1).join(', ');
691
- var endpoints = {
692
- attributeInfo: '/wc/v2/products/attributes/' + ID
693
- };
694
 
695
- if (terms.length) {
696
- endpoints.termInfo = '/wc/v2/products/attributes/' + ID + '/terms?include=' + terms;
697
- }
 
 
 
 
 
 
 
 
698
 
699
- return endpoints;
700
- } else if ('category' === display && display_setting.length) {
701
- return {
702
- categoriesInfo: '/wc/v2/products/categories?include=' + display_setting.join(',')
 
703
  };
 
 
 
 
704
  }
705
 
706
- return {};
707
- })(function (_ref4) {
708
- var attributes = _ref4.attributes,
709
- categoriesInfo = _ref4.categoriesInfo,
710
- attributeInfo = _ref4.attributeInfo,
711
- termInfo = _ref4.termInfo;
712
 
 
 
 
 
 
 
 
 
 
713
 
714
- var descriptions = [
715
- // Standard description of selected scope.
716
- PRODUCTS_BLOCK_DISPLAY_SETTINGS[attributes.display].title];
 
717
 
718
- // Description of categories selected scope.
719
- if (categoriesInfo && categoriesInfo.data && categoriesInfo.data.length) {
720
- var descriptionText = __('Product categories: ');
721
- var categories = [];
722
- var _iteratorNormalCompletion2 = true;
723
- var _didIteratorError2 = false;
724
- var _iteratorError2 = undefined;
725
 
726
- try {
727
- for (var _iterator2 = categoriesInfo.data[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
728
- var category = _step2.value;
 
 
 
 
 
 
 
 
 
729
 
730
- categories.push(category.name);
731
- }
732
- } catch (err) {
733
- _didIteratorError2 = true;
734
- _iteratorError2 = err;
735
- } finally {
736
- try {
737
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
738
- _iterator2.return();
739
- }
740
- } finally {
741
- if (_didIteratorError2) {
742
- throw _iteratorError2;
743
  }
 
 
744
  }
 
 
745
  }
746
 
747
- descriptionText += categories.join(', ');
 
 
748
 
749
- descriptions = [descriptionText];
 
 
 
 
750
 
751
- // Description of attributes selected scope.
752
- } else if (attributeInfo && attributeInfo.data) {
753
- descriptions = [__('Attribute: ') + attributeInfo.data.name];
 
 
754
 
755
- if (termInfo && termInfo.data && termInfo.data.length) {
756
- var termDescriptionText = __("Terms: ");
757
- var terms = [];
758
- var _iteratorNormalCompletion3 = true;
759
- var _didIteratorError3 = false;
760
- var _iteratorError3 = undefined;
 
 
 
 
 
761
 
762
- try {
763
- for (var _iterator3 = termInfo.data[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
764
- var term = _step3.value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
765
 
766
- terms.push(term.name);
767
- }
768
- } catch (err) {
769
- _didIteratorError3 = true;
770
- _iteratorError3 = err;
771
- } finally {
772
  try {
773
- if (!_iteratorNormalCompletion3 && _iterator3.return) {
774
- _iterator3.return();
 
 
775
  }
 
 
 
776
  } finally {
777
- if (_didIteratorError3) {
778
- throw _iteratorError3;
 
 
 
 
 
 
779
  }
780
  }
781
- }
782
 
783
- termDescriptionText += terms.join(', ');
784
- descriptions.push(termDescriptionText);
785
- }
786
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
787
 
788
- return wp.element.createElement(
789
- 'div',
790
- null,
791
- descriptions.map(function (description) {
792
  return wp.element.createElement(
793
  'div',
794
- { className: 'scope-description' },
795
- description
 
 
 
 
 
 
796
  );
797
- })
798
- );
799
- });
 
 
 
 
800
 
801
  /**
802
  * The main products block UI.
803
  */
804
 
805
- var ProductsBlock = function (_React$Component5) {
806
- _inherits(ProductsBlock, _React$Component5);
807
 
808
  /**
809
  * Constructor.
@@ -811,14 +1012,14 @@ var ProductsBlock = function (_React$Component5) {
811
  function ProductsBlock(props) {
812
  _classCallCheck(this, ProductsBlock);
813
 
814
- var _this7 = _possibleConstructorReturn(this, (ProductsBlock.__proto__ || Object.getPrototypeOf(ProductsBlock)).call(this, props));
815
 
816
- _this7.getInspectorControls = _this7.getInspectorControls.bind(_this7);
817
- _this7.getToolbarControls = _this7.getToolbarControls.bind(_this7);
818
- _this7.getBlockDescription = _this7.getBlockDescription.bind(_this7);
819
- _this7.getPreview = _this7.getPreview.bind(_this7);
820
- _this7.getSettingsEditor = _this7.getSettingsEditor.bind(_this7);
821
- return _this7;
822
  }
823
 
824
  /**
@@ -1152,12 +1353,12 @@ registerBlockType('woocommerce/products', {
1152
  * @return string
1153
  */
1154
  save: function save(props) {
1155
- var _props$attributes = props.attributes,
1156
- rows = _props$attributes.rows,
1157
- columns = _props$attributes.columns,
1158
- display = _props$attributes.display,
1159
- display_setting = _props$attributes.display_setting,
1160
- orderby = _props$attributes.orderby;
1161
 
1162
 
1163
  var shortcode_atts = new Map();
@@ -1211,12 +1412,12 @@ registerBlockType('woocommerce/products', {
1211
 
1212
  try {
1213
  for (var _iterator4 = shortcode_atts[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
1214
- var _ref5 = _step4.value;
1215
 
1216
- var _ref6 = _slicedToArray(_ref5, 2);
1217
 
1218
- var key = _ref6[0];
1219
- var value = _ref6[1];
1220
 
1221
  shortcode += ' ' + key + '="' + value + '"';
1222
  }
@@ -1267,9 +1468,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
1267
  var __ = wp.i18n.__;
1268
  var _wp$components = wp.components,
1269
  Toolbar = _wp$components.Toolbar,
1270
- withAPIData = _wp$components.withAPIData,
1271
  Dropdown = _wp$components.Dropdown,
1272
  Dashicon = _wp$components.Dashicon;
 
 
1273
 
1274
  /**
1275
  * Product data cache.
@@ -1280,8 +1482,6 @@ var PRODUCT_DATA = {};
1280
 
1281
  /**
1282
  * When the display mode is 'Specific products' search for and add products to the block.
1283
- *
1284
- * @todo Add the functionality and everything.
1285
  */
1286
 
1287
  var ProductsSpecificSelect = exports.ProductsSpecificSelect = function (_React$Component) {
@@ -1497,112 +1697,201 @@ var ProductsSpecificSearchField = function (_React$Component2) {
1497
  */
1498
 
1499
 
1500
- var ProductSpecificSearchResults = withAPIData(function (props) {
 
1501
 
1502
- if (!props.searchString.length) {
1503
- return {
1504
- products: []
1505
- };
1506
- }
1507
-
1508
- return {
1509
- products: '/wc/v2/products?per_page=10&search=' + props.searchString
1510
- };
1511
- })(function (_ref) {
1512
- var products = _ref.products,
1513
- addOrRemoveProductCallback = _ref.addOrRemoveProductCallback,
1514
- selectedProducts = _ref.selectedProducts,
1515
- isDropdownOpenCallback = _ref.isDropdownOpenCallback;
1516
-
1517
- if (!products.data) {
1518
- return null;
1519
- }
1520
-
1521
- if (0 === products.data.length) {
1522
- return wp.element.createElement(
1523
- 'span',
1524
- { className: 'wc-products-list-card__search-no-results' },
1525
- ' ',
1526
- __('No products found'),
1527
- ' '
1528
- );
1529
- }
1530
 
1531
- // Populate the cache.
1532
- var _iteratorNormalCompletion = true;
1533
- var _didIteratorError = false;
1534
- var _iteratorError = undefined;
1535
 
1536
- try {
1537
- for (var _iterator = products.data[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1538
- var product = _step.value;
 
 
1539
 
1540
- PRODUCT_DATA[product.id] = product;
1541
- }
1542
- } catch (err) {
1543
- _didIteratorError = true;
1544
- _iteratorError = err;
1545
- } finally {
1546
- try {
1547
- if (!_iteratorNormalCompletion && _iterator.return) {
1548
- _iterator.return();
1549
- }
1550
- } finally {
1551
- if (_didIteratorError) {
1552
- throw _iteratorError;
1553
- }
1554
- }
1555
  }
1556
 
1557
- return wp.element.createElement(ProductSpecificSearchResultsDropdown, {
1558
- products: products.data,
1559
- addOrRemoveProductCallback: addOrRemoveProductCallback,
1560
- selectedProducts: selectedProducts,
1561
- isDropdownOpenCallback: isDropdownOpenCallback
1562
- });
1563
- });
1564
-
1565
- /**
1566
- * The dropdown of search results.
1567
- */
1568
-
1569
- var ProductSpecificSearchResultsDropdown = function (_React$Component3) {
1570
- _inherits(ProductSpecificSearchResultsDropdown, _React$Component3);
1571
-
1572
- function ProductSpecificSearchResultsDropdown() {
1573
- _classCallCheck(this, ProductSpecificSearchResultsDropdown);
1574
 
1575
- return _possibleConstructorReturn(this, (ProductSpecificSearchResultsDropdown.__proto__ || Object.getPrototypeOf(ProductSpecificSearchResultsDropdown)).apply(this, arguments));
1576
- }
1577
 
1578
- _createClass(ProductSpecificSearchResultsDropdown, [{
1579
  key: 'componentDidMount',
1580
-
1581
-
1582
- /**
1583
- * Set the state of the dropdown to open.
1584
- */
1585
  value: function componentDidMount() {
1586
- this.props.isDropdownOpenCallback(true);
1587
  }
1588
 
1589
  /**
1590
- * Set the state of the dropdown to closed.
1591
  */
1592
 
1593
  }, {
1594
- key: 'componentWillUnmount',
1595
- value: function componentWillUnmount() {
1596
- this.props.isDropdownOpenCallback(false);
 
 
1597
  }
1598
 
1599
  /**
1600
- * Render dropdown.
 
 
1601
  */
1602
 
1603
  }, {
1604
- key: 'render',
1605
- value: function render() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1606
  var _props = this.props,
1607
  products = _props.products,
1608
  addOrRemoveProductCallback = _props.addOrRemoveProductCallback,
@@ -1660,8 +1949,8 @@ var ProductSpecificSearchResultsDropdown = function (_React$Component3) {
1660
  */
1661
 
1662
 
1663
- var ProductSpecificSearchResultsDropdownElement = function (_React$Component4) {
1664
- _inherits(ProductSpecificSearchResultsDropdownElement, _React$Component4);
1665
 
1666
  /**
1667
  * Constructor.
@@ -1669,10 +1958,10 @@ var ProductSpecificSearchResultsDropdownElement = function (_React$Component4) {
1669
  function ProductSpecificSearchResultsDropdownElement(props) {
1670
  _classCallCheck(this, ProductSpecificSearchResultsDropdownElement);
1671
 
1672
- var _this4 = _possibleConstructorReturn(this, (ProductSpecificSearchResultsDropdownElement.__proto__ || Object.getPrototypeOf(ProductSpecificSearchResultsDropdownElement)).call(this, props));
1673
 
1674
- _this4.handleClick = _this4.handleClick.bind(_this4);
1675
- return _this4;
1676
  }
1677
 
1678
  /**
@@ -1718,163 +2007,241 @@ var ProductSpecificSearchResultsDropdownElement = function (_React$Component4) {
1718
  */
1719
 
1720
 
1721
- var ProductSpecificSelectedProducts = withAPIData(function (props) {
1722
- if (!props.productIds.length) {
1723
- return {
1724
- products: []
 
 
 
 
 
 
 
 
 
 
1725
  };
 
 
 
 
 
1726
  }
1727
 
1728
- // Determine which products are not already in the cache and only fetch uncached products.
1729
- var uncachedProducts = [];
1730
- var _iteratorNormalCompletion3 = true;
1731
- var _didIteratorError3 = false;
1732
- var _iteratorError3 = undefined;
1733
 
1734
- try {
1735
- for (var _iterator3 = props.productIds[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
1736
- var productId = _step3.value;
1737
 
1738
- if (!PRODUCT_DATA.hasOwnProperty(productId)) {
1739
- uncachedProducts.push(productId);
1740
- }
 
1741
  }
1742
- } catch (err) {
1743
- _didIteratorError3 = true;
1744
- _iteratorError3 = err;
1745
- } finally {
1746
- try {
1747
- if (!_iteratorNormalCompletion3 && _iterator3.return) {
1748
- _iterator3.return();
1749
- }
1750
- } finally {
1751
- if (_didIteratorError3) {
1752
- throw _iteratorError3;
1753
  }
1754
  }
1755
- }
1756
-
1757
- return {
1758
- products: uncachedProducts.length ? '/wc/v2/products?include=' + uncachedProducts.join(',') : []
1759
- };
1760
- })(function (_ref2) {
1761
- var productIds = _ref2.productIds,
1762
- products = _ref2.products,
1763
- columns = _ref2.columns,
1764
- addOrRemoveProduct = _ref2.addOrRemoveProduct;
1765
 
 
 
 
1766
 
1767
- // Add new products to cache.
1768
- if (products.data) {
1769
- var _iteratorNormalCompletion4 = true;
1770
- var _didIteratorError4 = false;
1771
- var _iteratorError4 = undefined;
 
1772
 
1773
- try {
1774
- for (var _iterator4 = products.data[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
1775
- var product = _step4.value;
 
 
1776
 
1777
- PRODUCT_DATA[product.id] = product;
1778
- }
1779
- } catch (err) {
1780
- _didIteratorError4 = true;
1781
- _iteratorError4 = err;
1782
- } finally {
1783
  try {
1784
- if (!_iteratorNormalCompletion4 && _iterator4.return) {
1785
- _iterator4.return();
 
 
 
 
1786
  }
 
 
 
1787
  } finally {
1788
- if (_didIteratorError4) {
1789
- throw _iteratorError4;
 
 
 
 
 
 
1790
  }
1791
  }
 
 
1792
  }
1793
- }
1794
 
1795
- var productElements = [];
 
 
1796
 
1797
- var _loop = function _loop(productId) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1798
 
1799
- // Skip products that aren't in the cache yet or failed to fetch.
1800
- if (!PRODUCT_DATA.hasOwnProperty(productId)) {
1801
- return 'continue';
 
 
1802
  }
1803
 
1804
- var productData = PRODUCT_DATA[productId];
 
 
1805
 
1806
- productElements.push(wp.element.createElement(
1807
- 'li',
1808
- { className: 'wc-products-list-card__item', key: productData.id + '-specific-select-edit' },
1809
- wp.element.createElement(
1810
- 'div',
1811
- { className: 'wc-products-list-card__content' },
1812
- wp.element.createElement('img', { src: productData.images[0].src }),
1813
- wp.element.createElement(
1814
- 'span',
1815
- { className: 'wc-products-list-card__content-item-name' },
1816
- productData.name
1817
- ),
1818
- wp.element.createElement(
1819
- 'button',
1820
- {
1821
- type: 'button',
1822
- id: 'product-' + productData.id,
1823
- onClick: function onClick() {
1824
- addOrRemoveProduct(productData.id);
1825
- } },
1826
- wp.element.createElement(Dashicon, { icon: 'no-alt' })
1827
- )
1828
- )
1829
- ));
1830
- };
1831
 
1832
- var _iteratorNormalCompletion5 = true;
1833
- var _didIteratorError5 = false;
1834
- var _iteratorError5 = undefined;
1835
 
1836
- try {
1837
- for (var _iterator5 = productIds[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
1838
- var productId = _step5.value;
 
1839
 
1840
- var _ret = _loop(productId);
1841
 
1842
- if (_ret === 'continue') continue;
1843
- }
1844
- } catch (err) {
1845
- _didIteratorError5 = true;
1846
- _iteratorError5 = err;
1847
- } finally {
1848
- try {
1849
- if (!_iteratorNormalCompletion5 && _iterator5.return) {
1850
- _iterator5.return();
1851
- }
1852
- } finally {
1853
- if (_didIteratorError5) {
1854
- throw _iteratorError5;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1855
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1856
  }
1857
- }
1858
 
1859
- return wp.element.createElement(
1860
- 'div',
1861
- { className: 'wc-products-list-card__results-wrapper wc-products-list-card__results-wrapper--cols-' + columns },
1862
- wp.element.createElement(
1863
- 'div',
1864
- { role: 'menu', className: 'wc-products-list-card__results', 'aria-orientation': 'vertical', 'aria-label': __('Selected products') },
1865
- productElements.length > 0 && wp.element.createElement(
1866
- 'h3',
1867
- null,
1868
- __('Selected products')
1869
- ),
1870
- wp.element.createElement(
1871
- 'ul',
1872
- null,
1873
- productElements
1874
- )
1875
- )
1876
- );
1877
- });
1878
 
1879
  /***/ }),
1880
  /* 2 */
@@ -1900,9 +2267,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
1900
  var __ = wp.i18n.__;
1901
  var _wp$components = wp.components,
1902
  Toolbar = _wp$components.Toolbar,
1903
- withAPIData = _wp$components.withAPIData,
1904
  Dropdown = _wp$components.Dropdown,
1905
  Dashicon = _wp$components.Dashicon;
 
 
1906
 
1907
  /**
1908
  * When the display mode is 'Product category' search for and select product categories to pull products from.
@@ -2061,220 +2429,311 @@ var ProductCategoryFilter = function ProductCategoryFilter(_ref) {
2061
  /**
2062
  * Fetch and build a tree of product categories.
2063
  */
2064
- var ProductCategoryList = withAPIData(function (props) {
2065
- return {
2066
- categories: '/wc/v2/products/categories'
2067
- };
2068
- })(function (_ref2) {
2069
- var categories = _ref2.categories,
2070
- filterQuery = _ref2.filterQuery,
2071
- selectedCategories = _ref2.selectedCategories,
2072
- checkboxChange = _ref2.checkboxChange,
2073
- accordionToggle = _ref2.accordionToggle,
2074
- openAccordion = _ref2.openAccordion,
2075
- firstLoad = _ref2.firstLoad,
2076
- setFirstLoad = _ref2.setFirstLoad;
2077
-
2078
- if (!categories.data) {
2079
- return __('Loading');
2080
- }
2081
 
2082
- if (0 === categories.data.length) {
2083
- return __('No categories found');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2084
  }
2085
 
2086
- var handleCategoriesToCheck = function handleCategoriesToCheck(evt, parent, categories) {
2087
- var ids = getCategoryChildren(parent, categories).map(function (category) {
2088
- return category.id;
2089
- });
2090
 
2091
- ids.push(parent.id);
2092
 
2093
- checkboxChange(evt.target.checked, ids);
2094
- };
 
 
 
 
 
2095
 
2096
- var getCategoryChildren = function getCategoryChildren(parent, categories) {
2097
- var children = [];
 
2098
 
2099
- categories.filter(function (category) {
2100
- return category.parent === parent.id;
2101
- }).forEach(function (category) {
2102
- children.push(category);
2103
- children.push.apply(children, _toConsumableArray(getCategoryChildren(category, categories)));
2104
- });
 
2105
 
2106
- return children;
2107
- };
 
 
 
2108
 
2109
- var categoryHasChildren = function categoryHasChildren(parent, categories) {
2110
- return !!getCategoryChildren(parent, categories).length;
2111
- };
 
 
 
2112
 
2113
- var isIndeterminate = function isIndeterminate(category, categories) {
 
 
2114
 
2115
- // Currect category selected?
2116
- if (selectedCategories.includes(category.id)) {
2117
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2118
  }
2119
 
2120
- // Has children?
2121
- var children = getCategoryChildren(category, categories).map(function (category) {
2122
- return category.id;
2123
- });
2124
 
2125
- var _iteratorNormalCompletion = true;
2126
- var _didIteratorError = false;
2127
- var _iteratorError = undefined;
 
 
 
 
 
 
 
 
2128
 
2129
- try {
2130
- for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
2131
- var child = _step.value;
2132
 
2133
- if (selectedCategories.includes(child)) {
2134
- return true;
2135
- }
2136
  }
2137
- } catch (err) {
2138
- _didIteratorError = true;
2139
- _iteratorError = err;
2140
- } finally {
2141
- try {
2142
- if (!_iteratorNormalCompletion && _iterator.return) {
2143
- _iterator.return();
2144
- }
2145
- } finally {
2146
- if (_didIteratorError) {
2147
- throw _iteratorError;
2148
- }
2149
  }
2150
- }
2151
 
2152
- return false;
2153
- };
 
 
2154
 
2155
- var AccordionButton = function AccordionButton(_ref3) {
2156
- var category = _ref3.category,
2157
- categories = _ref3.categories;
2158
 
2159
- var icon = 'arrow-down-alt2';
 
2160
 
2161
- if (openAccordion.includes(category.id)) {
2162
- icon = 'arrow-up-alt2';
2163
- }
2164
 
2165
- var style = null;
 
 
 
 
 
2166
 
2167
- if (!categoryHasChildren(category, categories)) {
2168
- style = {
2169
- visibility: 'hidden'
2170
  };
2171
- };
2172
 
2173
- return wp.element.createElement(
2174
- "button",
2175
- { onClick: function onClick() {
2176
- return accordionToggle(category.id);
2177
- }, className: "wc-products-list-card__accordion-button", style: style, type: "button" },
2178
- wp.element.createElement(Dashicon, { icon: icon })
2179
- );
2180
- };
2181
 
2182
- var CategoryTree = function CategoryTree(_ref4) {
2183
- var categories = _ref4.categories,
2184
- parent = _ref4.parent;
2185
 
2186
- var filteredCategories = categories.filter(function (category) {
2187
- return category.parent === parent;
2188
- });
 
2189
 
2190
- if (firstLoad && selectedCategories.length > 0) {
2191
- categoriesData.filter(function (category) {
2192
- return category.parent === 0;
2193
- }).forEach(function (category) {
2194
- var children = getCategoryChildren(category, categoriesData);
2195
 
2196
- var _iteratorNormalCompletion2 = true;
2197
- var _didIteratorError2 = false;
2198
- var _iteratorError2 = undefined;
2199
 
2200
  try {
2201
- for (var _iterator2 = children[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
2202
- var child = _step2.value;
2203
 
2204
- if (selectedCategories.includes(child.id) && !openAccordion.includes(category.id)) {
2205
- accordionToggle(category.id);
2206
- break;
2207
  }
2208
  }
2209
  } catch (err) {
2210
- _didIteratorError2 = true;
2211
- _iteratorError2 = err;
2212
  } finally {
2213
  try {
2214
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
2215
- _iterator2.return();
2216
  }
2217
  } finally {
2218
- if (_didIteratorError2) {
2219
- throw _iteratorError2;
2220
  }
2221
  }
2222
  }
2223
- });
2224
 
2225
- setFirstLoad(false);
2226
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2227
 
2228
- return filteredCategories.length > 0 && wp.element.createElement(
2229
- "ul",
2230
- null,
2231
- filteredCategories.map(function (category) {
2232
  return wp.element.createElement(
2233
- "li",
2234
- { key: category.id, className: openAccordion.includes(category.id) ? 'wc-products-list-card__item wc-products-list-card__accordion-open' : 'wc-products-list-card__item' },
2235
- wp.element.createElement(
2236
- "label",
2237
- { className: 0 === category.parent ? 'wc-products-list-card__content' : '', htmlFor: 'product-category-' + category.id },
2238
- wp.element.createElement("input", { type: "checkbox",
2239
- id: 'product-category-' + category.id,
2240
- value: category.id,
2241
- checked: selectedCategories.includes(category.id),
2242
- onChange: function onChange(evt) {
2243
- return handleCategoriesToCheck(evt, category, categories);
2244
- },
2245
- ref: function ref(el) {
2246
- return el && (el.indeterminate = isIndeterminate(category, categories));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2247
  }
2248
- }),
2249
- " ",
2250
- category.name,
2251
- 0 === category.parent && wp.element.createElement(AccordionButton, { category: category, categories: categories }),
2252
- wp.element.createElement(
2253
- "span",
2254
- { className: "wc-products-list-card__taxonomy-count" },
2255
- category.count
2256
- )
2257
- ),
2258
- wp.element.createElement(CategoryTree, { categories: categories, parent: category.id })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2259
  );
2260
- })
2261
- );
2262
- };
2263
 
2264
- var categoriesData = categories.data;
2265
 
2266
- if ('' !== filterQuery) {
2267
- categoriesData = categoriesData.filter(function (category) {
2268
- return category.slug.includes(filterQuery.toLowerCase());
2269
- });
2270
- }
2271
 
2272
- return wp.element.createElement(
2273
- "div",
2274
- { className: "wc-products-list-card__results" },
2275
- wp.element.createElement(CategoryTree, { categories: categoriesData, parent: 0 })
2276
- );
2277
- });
 
 
 
 
2278
 
2279
  /***/ }),
2280
  /* 3 */
@@ -2302,9 +2761,10 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
2302
  var __ = wp.i18n.__;
2303
  var _wp$components = wp.components,
2304
  Toolbar = _wp$components.Toolbar,
2305
- withAPIData = _wp$components.withAPIData,
2306
  Dropdown = _wp$components.Dropdown,
2307
  Dashicon = _wp$components.Dashicon;
 
 
2308
 
2309
  /**
2310
  * Get the identifier for an attribute. The identifier can be used to determine
@@ -2511,88 +2971,197 @@ var ProductAttributeFilter = function ProductAttributeFilter(props) {
2511
  /**
2512
  * List of attributes.
2513
  */
2514
- var ProductAttributeList = withAPIData(function (props) {
2515
- return {
2516
- attributes: '/wc/v2/products/attributes'
2517
- };
2518
- })(function (_ref) {
2519
- var attributes = _ref.attributes,
2520
- selectedAttribute = _ref.selectedAttribute,
2521
- filterQuery = _ref.filterQuery,
2522
- selectedTerms = _ref.selectedTerms,
2523
- setSelectedAttribute = _ref.setSelectedAttribute,
2524
- addTerm = _ref.addTerm,
2525
- removeTerm = _ref.removeTerm;
2526
-
2527
- if (!attributes.data) {
2528
- return __('Loading');
2529
- }
2530
 
2531
- if (0 === attributes.data.length) {
2532
- return __('No attributes found');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2533
  }
2534
 
2535
- var filter = filterQuery.toLowerCase();
2536
- var attributeElements = [];
2537
- var _iteratorNormalCompletion2 = true;
2538
- var _didIteratorError2 = false;
2539
- var _iteratorError2 = undefined;
2540
-
2541
- try {
2542
- for (var _iterator2 = attributes.data[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
2543
- var attribute = _step2.value;
2544
-
2545
- // Filter out attributes that don't match the search query.
2546
- if (filter.length && -1 === attribute.name.toLowerCase().indexOf(filter)) {
2547
- continue;
2548
- }
2549
-
2550
- attributeElements.push(wp.element.createElement(ProductAttributeElement, {
2551
- attribute: attribute,
2552
- selectedAttribute: selectedAttribute,
2553
- selectedTerms: selectedTerms,
2554
- setSelectedAttribute: setSelectedAttribute,
2555
- addTerm: addTerm,
2556
- removeTerm: removeTerm
2557
- }));
2558
- }
2559
- } catch (err) {
2560
- _didIteratorError2 = true;
2561
- _iteratorError2 = err;
2562
- } finally {
2563
- try {
2564
- if (!_iteratorNormalCompletion2 && _iterator2.return) {
2565
- _iterator2.return();
2566
  }
2567
- } finally {
2568
- if (_didIteratorError2) {
2569
- throw _iteratorError2;
 
 
 
 
 
 
 
 
2570
  }
2571
  }
2572
- }
2573
 
2574
- return wp.element.createElement(
2575
- 'div',
2576
- { className: 'wc-products-list-card__results' },
2577
- attributeElements
2578
- );
2579
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2580
 
2581
  /**
2582
  * One product attribute.
2583
  */
2584
 
2585
- var ProductAttributeElement = function (_React$Component2) {
2586
- _inherits(ProductAttributeElement, _React$Component2);
 
2587
 
2588
  function ProductAttributeElement(props) {
2589
  _classCallCheck(this, ProductAttributeElement);
2590
 
2591
- var _this2 = _possibleConstructorReturn(this, (ProductAttributeElement.__proto__ || Object.getPrototypeOf(ProductAttributeElement)).call(this, props));
2592
 
2593
- _this2.handleAttributeChange = _this2.handleAttributeChange.bind(_this2);
2594
- _this2.handleTermChange = _this2.handleTermChange.bind(_this2);
2595
- return _this2;
2596
  }
2597
 
2598
  /**
@@ -2677,80 +3246,170 @@ var ProductAttributeElement = function (_React$Component2) {
2677
  */
2678
 
2679
 
2680
- var AttributeTerms = withAPIData(function (props) {
2681
- return {
2682
- terms: '/wc/v2/products/attributes/' + props.attribute.id + '/terms'
2683
- };
2684
- })(function (_ref2) {
2685
- var terms = _ref2.terms,
2686
- selectedTerms = _ref2.selectedTerms,
2687
- attribute = _ref2.attribute,
2688
- addTerm = _ref2.addTerm,
2689
- removeTerm = _ref2.removeTerm;
2690
 
2691
- if (!terms.data) {
2692
- return wp.element.createElement(
2693
- 'ul',
2694
- null,
2695
- wp.element.createElement(
2696
- 'li',
2697
- null,
2698
- __('Loading')
2699
- )
2700
- );
2701
- }
2702
 
2703
- if (0 === terms.data.length) {
2704
- return wp.element.createElement(
2705
- 'ul',
2706
- null,
2707
- wp.element.createElement(
2708
- 'li',
2709
- null,
2710
- __('No terms found')
2711
- )
2712
- );
 
2713
  }
2714
 
2715
  /**
2716
- * Add or remove selected terms.
2717
- *
2718
- * @param evt Event object
2719
  */
2720
- function handleTermChange(evt) {
2721
- if (evt.target.checked) {
2722
- addTerm(evt.target.value);
2723
- } else {
2724
- removeTerm(evt.target.value);
 
 
 
2725
  }
2726
- }
2727
 
2728
- return wp.element.createElement(
2729
- 'ul',
2730
- null,
2731
- terms.data.map(function (term) {
2732
- return wp.element.createElement(
2733
- 'li',
2734
- { className: 'wc-products-list-card__item' },
2735
- wp.element.createElement(
2736
- 'label',
2737
- { className: 'wc-products-list-card__content' },
2738
- wp.element.createElement('input', { type: 'checkbox',
2739
- value: term.id,
2740
- onChange: handleTermChange,
2741
- checked: selectedTerms.includes(String(term.id))
2742
- }),
2743
- term.name,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2744
  wp.element.createElement(
2745
- 'span',
2746
- { className: 'wc-products-list-card__taxonomy-count' },
2747
- term.count
2748
  )
2749
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2750
  );
2751
- })
2752
- );
2753
- });
 
 
2754
 
2755
  /***/ })
2756
  /******/ ]);
96
  BlockControls = _wp$editor.BlockControls;
97
  var _wp$components = wp.components,
98
  Toolbar = _wp$components.Toolbar,
 
99
  Dropdown = _wp$components.Dropdown,
100
  Dashicon = _wp$components.Dashicon,
101
  RangeControl = _wp$components.RangeControl,
102
  Tooltip = _wp$components.Tooltip,
103
  SelectControl = _wp$components.SelectControl;
104
+ var _wp = wp,
105
+ apiFetch = _wp.apiFetch;
106
 
107
 
108
  /**
578
  */
579
 
580
 
581
+ var ProductsBlockPreview = function (_React$Component5) {
582
+ _inherits(ProductsBlockPreview, _React$Component5);
 
 
 
 
 
583
 
584
+ /**
585
+ * Constructor
586
+ */
587
+ function ProductsBlockPreview(props) {
588
+ _classCallCheck(this, ProductsBlockPreview);
589
 
590
+ var _this7 = _possibleConstructorReturn(this, (ProductsBlockPreview.__proto__ || Object.getPrototypeOf(ProductsBlockPreview)).call(this, props));
 
 
591
 
592
+ _this7.state = {
593
+ products: [],
594
+ loaded: false,
595
+ query: ''
596
+ };
 
 
597
 
598
+ _this7.updatePreview = _this7.updatePreview.bind(_this7);
599
+ _this7.getQuery = _this7.getQuery.bind(_this7);
600
+ return _this7;
 
 
 
 
601
  }
602
 
603
+ /**
604
+ * Get the preview when component is first loaded.
605
+ */
606
+
 
 
 
 
 
 
 
 
 
 
607
 
608
+ _createClass(ProductsBlockPreview, [{
609
+ key: 'componentDidMount',
610
+ value: function componentDidMount() {
611
+ this.updatePreview();
612
+ }
613
 
614
+ /**
615
+ * Update the preview when component is updated.
616
+ */
617
 
618
+ }, {
619
+ key: 'componentDidUpdate',
620
+ value: function componentDidUpdate() {
621
+ if (this.getQuery() !== this.state.query && this.state.loaded) {
622
+ this.updatePreview();
623
+ }
624
  }
625
+
626
+ /**
627
+ * Get the endpoint for the current state of the component.
628
+ *
629
+ * @return string
630
+ */
631
+
632
+ }, {
633
+ key: 'getQuery',
634
+ value: function getQuery() {
635
+ var _props$attributes = this.props.attributes,
636
+ columns = _props$attributes.columns,
637
+ rows = _props$attributes.rows,
638
+ display = _props$attributes.display,
639
+ display_setting = _props$attributes.display_setting,
640
+ orderby = _props$attributes.orderby;
641
+
642
+
643
+ var query = {
644
+ per_page: rows * columns
645
+ };
646
+
647
+ if ('specific' === display) {
648
+ query.include = display_setting.join(',');
649
+ query.per_page = display_setting.length;
650
+ } else if ('category' === display) {
651
+ query.category = display_setting.join(',');
652
+ } else if ('attribute' === display && display_setting.length) {
653
+ query.attribute = (0, _attributeSelect.getAttributeSlug)(display_setting[0]);
654
+
655
+ if (display_setting.length > 1) {
656
+ query.attribute_term = display_setting.slice(1).join(',');
657
+ }
658
+ } else if ('featured' === display) {
659
+ query.featured = 1;
660
+ } else if ('on_sale' === display) {
661
+ query.on_sale = 1;
662
  }
663
+
664
+ if (supportsOrderby(display)) {
665
+ if ('price_desc' === orderby) {
666
+ query.orderby = 'price';
667
+ query.order = 'desc';
668
+ } else if ('price_asc' === orderby) {
669
+ query.orderby = 'price';
670
+ query.order = 'asc';
671
+ } else if ('title' === orderby) {
672
+ query.orderby = 'title';
673
+ query.order = 'asc';
674
+ } else {
675
+ query.orderby = orderby;
676
+ }
677
  }
678
+
679
+ var query_string = '?';
680
+ var _iteratorNormalCompletion = true;
681
+ var _didIteratorError = false;
682
+ var _iteratorError = undefined;
683
+
684
+ try {
685
+ for (var _iterator = Object.keys(query)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
686
+ var key = _step.value;
687
+
688
+ query_string += key + '=' + query[key] + '&';
689
+ }
690
+ } catch (err) {
691
+ _didIteratorError = true;
692
+ _iteratorError = err;
693
+ } finally {
694
+ try {
695
+ if (!_iteratorNormalCompletion && _iterator.return) {
696
+ _iterator.return();
697
+ }
698
+ } finally {
699
+ if (_didIteratorError) {
700
+ throw _iteratorError;
701
+ }
702
+ }
703
+ }
704
+
705
+ var endpoint = '/wgbp/v3/products' + query_string;
706
+ return endpoint;
707
  }
 
708
 
709
+ /**
710
+ * Update the preview with the latest settings.
711
+ */
 
 
 
 
712
 
713
+ }, {
714
+ key: 'updatePreview',
715
+ value: function updatePreview() {
716
+ var self = this;
717
+ var query = this.getQuery();
718
+
719
+ self.setState({
720
+ loaded: false,
721
+ query: query
722
+ });
723
 
724
+ apiFetch({ path: query }).then(function (products) {
725
+ self.setState({
726
+ products: products,
727
+ loaded: true
728
+ });
729
+ });
730
+ }
731
 
732
+ /**
733
+ * Render.
734
+ */
735
 
736
+ }, {
737
+ key: 'render',
738
+ value: function render() {
739
+ if (!this.state.loaded) {
740
+ return __('Loading');
741
+ }
742
 
743
+ if (0 === this.state.products.length) {
744
+ return __('No products found');
745
+ }
746
+
747
+ var classes = "wc-products-block-preview cols-" + this.props.attributes.columns;
748
+ var self = this;
749
+
750
+ return wp.element.createElement(
751
+ 'div',
752
+ { className: classes },
753
+ this.state.products.map(function (product) {
754
+ return wp.element.createElement(ProductPreview, { key: product.id, product: product, attributes: self.props.attributes });
755
+ })
756
+ );
757
+ }
758
+ }]);
759
+
760
+ return ProductsBlockPreview;
761
+ }(React.Component);
762
 
763
  /**
764
  * Information about current block settings rendered in the sidebar.
765
  */
 
 
 
 
766
 
767
 
768
+ var ProductsBlockSidebarInfo = function (_React$Component6) {
769
+ _inherits(ProductsBlockSidebarInfo, _React$Component6);
 
 
 
 
770
 
771
+ /**
772
+ * Constructor
773
+ */
774
+ function ProductsBlockSidebarInfo(props) {
775
+ _classCallCheck(this, ProductsBlockSidebarInfo);
776
+
777
+ var _this8 = _possibleConstructorReturn(this, (ProductsBlockSidebarInfo.__proto__ || Object.getPrototypeOf(ProductsBlockSidebarInfo)).call(this, props));
778
+
779
+ _this8.state = {
780
+ categoriesInfo: [],
781
+ categoriesQuery: '',
782
 
783
+ attributeInfo: false,
784
+ attributeQuery: '',
785
+
786
+ termsInfo: [],
787
+ termsQuery: ''
788
  };
789
+
790
+ _this8.updateInfo = _this8.updateInfo.bind(_this8);
791
+ _this8.getQueries = _this8.getQueries.bind(_this8);
792
+ return _this8;
793
  }
794
 
795
+ /**
796
+ * Populate info when component is first loaded.
797
+ */
798
+
 
 
799
 
800
+ _createClass(ProductsBlockSidebarInfo, [{
801
+ key: 'componentDidMount',
802
+ value: function componentDidMount() {
803
+ this.updateInfo();
804
+ }
805
+ }, {
806
+ key: 'componentDidUpdate',
807
+ value: function componentDidUpdate() {
808
+ var queries = this.getQueries();
809
 
810
+ if (this.state.categoriesQuery !== queries.categories || this.state.attributeQuery !== queries.attribute || this.state.termsQuery !== queries.terms) {
811
+ this.updateInfo();
812
+ }
813
+ }
814
 
815
+ /**
816
+ * Get endpoints for the current state of the component.
817
+ *
818
+ * @return object
819
+ */
 
 
820
 
821
+ }, {
822
+ key: 'getQueries',
823
+ value: function getQueries() {
824
+ var _props$attributes2 = this.props.attributes,
825
+ display = _props$attributes2.display,
826
+ display_setting = _props$attributes2.display_setting;
827
+
828
+ var endpoints = {
829
+ attribute: '',
830
+ terms: '',
831
+ categories: ''
832
+ };
833
 
834
+ if ('attribute' === display && display_setting.length) {
835
+ var ID = (0, _attributeSelect.getAttributeID)(display_setting[0]);
836
+ var terms = display_setting.slice(1).join(', ');
837
+
838
+ endpoints.attribute = '/wc/v2/products/attributes/' + ID;
839
+
840
+ if (terms.length) {
841
+ endpoints.terms = '/wc/v2/products/attributes/' + ID + '/terms?include=' + terms;
 
 
 
 
 
842
  }
843
+ } else if ('category' === display && display_setting.length) {
844
+ endpoints.categories = '/wc/v2/products/categories?include=' + display_setting.join(',');
845
  }
846
+
847
+ return endpoints;
848
  }
849
 
850
+ /**
851
+ * Get the latest info for the sidebar information area.
852
+ */
853
 
854
+ }, {
855
+ key: 'updateInfo',
856
+ value: function updateInfo() {
857
+ var self = this;
858
+ var queries = this.getQueries();
859
 
860
+ this.setState({
861
+ categoriesQuery: queries.categories,
862
+ attributeQuery: queries.attribute,
863
+ termsQuery: queries.terms
864
+ });
865
 
866
+ if (queries.categories.length) {
867
+ apiFetch({ path: queries.categories }).then(function (categories) {
868
+ self.setState({
869
+ categoriesInfo: categories
870
+ });
871
+ });
872
+ } else {
873
+ self.setState({
874
+ categoriesInfo: []
875
+ });
876
+ }
877
 
878
+ if (queries.attribute.length) {
879
+ apiFetch({ path: queries.attribute }).then(function (attribute) {
880
+ self.setState({
881
+ attributeInfo: attribute
882
+ });
883
+ });
884
+ } else {
885
+ self.setState({
886
+ attributeInfo: false
887
+ });
888
+ }
889
+
890
+ if (queries.terms.length) {
891
+ apiFetch({ path: queries.terms }).then(function (terms) {
892
+ self.setState({
893
+ termsInfo: terms
894
+ });
895
+ });
896
+ } else {
897
+ self.setState({
898
+ termsInfo: []
899
+ });
900
+ }
901
+ }
902
+
903
+ /**
904
+ * Render.
905
+ */
906
+
907
+ }, {
908
+ key: 'render',
909
+ value: function render() {
910
+ var descriptions = [
911
+ // Standard description of selected scope.
912
+ PRODUCTS_BLOCK_DISPLAY_SETTINGS[this.props.attributes.display].title];
913
+
914
+ if (this.state.categoriesInfo.length) {
915
+ var descriptionText = __('Product categories: ');
916
+ var categories = [];
917
+ var _iteratorNormalCompletion2 = true;
918
+ var _didIteratorError2 = false;
919
+ var _iteratorError2 = undefined;
920
 
 
 
 
 
 
 
921
  try {
922
+ for (var _iterator2 = this.state.categoriesInfo[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
923
+ var category = _step2.value;
924
+
925
+ categories.push(category.name);
926
  }
927
+ } catch (err) {
928
+ _didIteratorError2 = true;
929
+ _iteratorError2 = err;
930
  } finally {
931
+ try {
932
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
933
+ _iterator2.return();
934
+ }
935
+ } finally {
936
+ if (_didIteratorError2) {
937
+ throw _iteratorError2;
938
+ }
939
  }
940
  }
 
941
 
942
+ descriptionText += categories.join(', ');
943
+
944
+ descriptions = [descriptionText];
945
+
946
+ // Description of attributes selected scope.
947
+ } else if (this.state.attributeInfo) {
948
+ descriptions = [__('Attribute: ') + this.state.attributeInfo.name];
949
+
950
+ if (this.state.termsInfo.length) {
951
+ var termDescriptionText = __("Terms: ");
952
+ var terms = [];
953
+ var _iteratorNormalCompletion3 = true;
954
+ var _didIteratorError3 = false;
955
+ var _iteratorError3 = undefined;
956
+
957
+ try {
958
+ for (var _iterator3 = this.state.termsInfo[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
959
+ var term = _step3.value;
960
+
961
+ terms.push(term.name);
962
+ }
963
+ } catch (err) {
964
+ _didIteratorError3 = true;
965
+ _iteratorError3 = err;
966
+ } finally {
967
+ try {
968
+ if (!_iteratorNormalCompletion3 && _iterator3.return) {
969
+ _iterator3.return();
970
+ }
971
+ } finally {
972
+ if (_didIteratorError3) {
973
+ throw _iteratorError3;
974
+ }
975
+ }
976
+ }
977
+
978
+ termDescriptionText += terms.join(', ');
979
+ descriptions.push(termDescriptionText);
980
+ }
981
+ }
982
 
 
 
 
 
983
  return wp.element.createElement(
984
  'div',
985
+ null,
986
+ descriptions.map(function (description) {
987
+ return wp.element.createElement(
988
+ 'div',
989
+ { className: 'scope-description' },
990
+ description
991
+ );
992
+ })
993
  );
994
+ }
995
+ }]);
996
+
997
+ return ProductsBlockSidebarInfo;
998
+ }(React.Component);
999
+
1000
+ ;
1001
 
1002
  /**
1003
  * The main products block UI.
1004
  */
1005
 
1006
+ var ProductsBlock = function (_React$Component7) {
1007
+ _inherits(ProductsBlock, _React$Component7);
1008
 
1009
  /**
1010
  * Constructor.
1012
  function ProductsBlock(props) {
1013
  _classCallCheck(this, ProductsBlock);
1014
 
1015
+ var _this9 = _possibleConstructorReturn(this, (ProductsBlock.__proto__ || Object.getPrototypeOf(ProductsBlock)).call(this, props));
1016
 
1017
+ _this9.getInspectorControls = _this9.getInspectorControls.bind(_this9);
1018
+ _this9.getToolbarControls = _this9.getToolbarControls.bind(_this9);
1019
+ _this9.getBlockDescription = _this9.getBlockDescription.bind(_this9);
1020
+ _this9.getPreview = _this9.getPreview.bind(_this9);
1021
+ _this9.getSettingsEditor = _this9.getSettingsEditor.bind(_this9);
1022
+ return _this9;
1023
  }
1024
 
1025
  /**
1353
  * @return string
1354
  */
1355
  save: function save(props) {
1356
+ var _props$attributes3 = props.attributes,
1357
+ rows = _props$attributes3.rows,
1358
+ columns = _props$attributes3.columns,
1359
+ display = _props$attributes3.display,
1360
+ display_setting = _props$attributes3.display_setting,
1361
+ orderby = _props$attributes3.orderby;
1362
 
1363
 
1364
  var shortcode_atts = new Map();
1412
 
1413
  try {
1414
  for (var _iterator4 = shortcode_atts[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
1415
+ var _ref = _step4.value;
1416
 
1417
+ var _ref2 = _slicedToArray(_ref, 2);
1418
 
1419
+ var key = _ref2[0];
1420
+ var value = _ref2[1];
1421
 
1422
  shortcode += ' ' + key + '="' + value + '"';
1423
  }
1468
  var __ = wp.i18n.__;
1469
  var _wp$components = wp.components,
1470
  Toolbar = _wp$components.Toolbar,
 
1471
  Dropdown = _wp$components.Dropdown,
1472
  Dashicon = _wp$components.Dashicon;
1473
+ var _wp = wp,
1474
+ apiFetch = _wp.apiFetch;
1475
 
1476
  /**
1477
  * Product data cache.
1482
 
1483
  /**
1484
  * When the display mode is 'Specific products' search for and add products to the block.
 
 
1485
  */
1486
 
1487
  var ProductsSpecificSelect = exports.ProductsSpecificSelect = function (_React$Component) {
1697
  */
1698
 
1699
 
1700
+ var ProductSpecificSearchResults = function (_React$Component3) {
1701
+ _inherits(ProductSpecificSearchResults, _React$Component3);
1702
 
1703
+ /**
1704
+ * Constructor.
1705
+ */
1706
+ function ProductSpecificSearchResults(props) {
1707
+ _classCallCheck(this, ProductSpecificSearchResults);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1708
 
1709
+ var _this3 = _possibleConstructorReturn(this, (ProductSpecificSearchResults.__proto__ || Object.getPrototypeOf(ProductSpecificSearchResults)).call(this, props));
 
 
 
1710
 
1711
+ _this3.state = {
1712
+ products: [],
1713
+ query: '',
1714
+ loaded: false
1715
+ };
1716
 
1717
+ _this3.updateResults = _this3.updateResults.bind(_this3);
1718
+ _this3.getQuery = _this3.getQuery.bind(_this3);
1719
+ return _this3;
 
 
 
 
 
 
 
 
 
 
 
 
1720
  }
1721
 
1722
+ /**
1723
+ * Get the preview when component is first loaded.
1724
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1725
 
 
 
1726
 
1727
+ _createClass(ProductSpecificSearchResults, [{
1728
  key: 'componentDidMount',
 
 
 
 
 
1729
  value: function componentDidMount() {
1730
+ this.updateResults();
1731
  }
1732
 
1733
  /**
1734
+ * Update the preview when component is updated.
1735
  */
1736
 
1737
  }, {
1738
+ key: 'componentDidUpdate',
1739
+ value: function componentDidUpdate() {
1740
+ if (this.getQuery() !== this.state.query) {
1741
+ this.updateResults();
1742
+ }
1743
  }
1744
 
1745
  /**
1746
+ * Get the endpoint for the current state of the component.
1747
+ *
1748
+ * @return string
1749
  */
1750
 
1751
  }, {
1752
+ key: 'getQuery',
1753
+ value: function getQuery() {
1754
+ if (!this.props.searchString.length) {
1755
+ return '';
1756
+ }
1757
+
1758
+ return '/wc/v2/products?per_page=10&search=' + this.props.searchString;
1759
+ }
1760
+
1761
+ /**
1762
+ * Update the search results.
1763
+ */
1764
+
1765
+ }, {
1766
+ key: 'updateResults',
1767
+ value: function updateResults() {
1768
+ var self = this;
1769
+ var query = this.getQuery();
1770
+
1771
+ self.setState({
1772
+ query: query,
1773
+ loaded: false
1774
+ });
1775
+
1776
+ if (query.length) {
1777
+ apiFetch({ path: query }).then(function (products) {
1778
+ // Only update the results if they are for the latest query.
1779
+ if (query === self.getQuery()) {
1780
+ self.setState({
1781
+ products: products,
1782
+ loaded: true
1783
+ });
1784
+ }
1785
+ });
1786
+ } else {
1787
+ self.setState({
1788
+ products: [],
1789
+ loaded: true
1790
+ });
1791
+ }
1792
+ }
1793
+
1794
+ /**
1795
+ * Render.
1796
+ */
1797
+
1798
+ }, {
1799
+ key: 'render',
1800
+ value: function render() {
1801
+ if (!this.state.loaded || !this.state.query.length) {
1802
+ return null;
1803
+ }
1804
+
1805
+ if (0 === this.state.products.length) {
1806
+ return wp.element.createElement(
1807
+ 'span',
1808
+ { className: 'wc-products-list-card__search-no-results' },
1809
+ ' ',
1810
+ __('No products found'),
1811
+ ' '
1812
+ );
1813
+ }
1814
+
1815
+ // Populate the cache.
1816
+ var _iteratorNormalCompletion = true;
1817
+ var _didIteratorError = false;
1818
+ var _iteratorError = undefined;
1819
+
1820
+ try {
1821
+ for (var _iterator = this.state.products[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
1822
+ var product = _step.value;
1823
+
1824
+ PRODUCT_DATA[product.id] = product;
1825
+ }
1826
+ } catch (err) {
1827
+ _didIteratorError = true;
1828
+ _iteratorError = err;
1829
+ } finally {
1830
+ try {
1831
+ if (!_iteratorNormalCompletion && _iterator.return) {
1832
+ _iterator.return();
1833
+ }
1834
+ } finally {
1835
+ if (_didIteratorError) {
1836
+ throw _iteratorError;
1837
+ }
1838
+ }
1839
+ }
1840
+
1841
+ return wp.element.createElement(ProductSpecificSearchResultsDropdown, {
1842
+ products: this.state.products,
1843
+ addOrRemoveProductCallback: this.props.addOrRemoveProductCallback,
1844
+ selectedProducts: this.props.selectedProducts,
1845
+ isDropdownOpenCallback: this.props.isDropdownOpenCallback
1846
+ });
1847
+ }
1848
+ }]);
1849
+
1850
+ return ProductSpecificSearchResults;
1851
+ }(React.Component);
1852
+
1853
+ /**
1854
+ * The dropdown of search results.
1855
+ */
1856
+
1857
+
1858
+ var ProductSpecificSearchResultsDropdown = function (_React$Component4) {
1859
+ _inherits(ProductSpecificSearchResultsDropdown, _React$Component4);
1860
+
1861
+ function ProductSpecificSearchResultsDropdown() {
1862
+ _classCallCheck(this, ProductSpecificSearchResultsDropdown);
1863
+
1864
+ return _possibleConstructorReturn(this, (ProductSpecificSearchResultsDropdown.__proto__ || Object.getPrototypeOf(ProductSpecificSearchResultsDropdown)).apply(this, arguments));
1865
+ }
1866
+
1867
+ _createClass(ProductSpecificSearchResultsDropdown, [{
1868
+ key: 'componentDidMount',
1869
+
1870
+
1871
+ /**
1872
+ * Set the state of the dropdown to open.
1873
+ */
1874
+ value: function componentDidMount() {
1875
+ this.props.isDropdownOpenCallback(true);
1876
+ }
1877
+
1878
+ /**
1879
+ * Set the state of the dropdown to closed.
1880
+ */
1881
+
1882
+ }, {
1883
+ key: 'componentWillUnmount',
1884
+ value: function componentWillUnmount() {
1885
+ this.props.isDropdownOpenCallback(false);
1886
+ }
1887
+
1888
+ /**
1889
+ * Render dropdown.
1890
+ */
1891
+
1892
+ }, {
1893
+ key: 'render',
1894
+ value: function render() {
1895
  var _props = this.props,
1896
  products = _props.products,
1897
  addOrRemoveProductCallback = _props.addOrRemoveProductCallback,
1949
  */
1950
 
1951
 
1952
+ var ProductSpecificSearchResultsDropdownElement = function (_React$Component5) {
1953
+ _inherits(ProductSpecificSearchResultsDropdownElement, _React$Component5);
1954
 
1955
  /**
1956
  * Constructor.
1958
  function ProductSpecificSearchResultsDropdownElement(props) {
1959
  _classCallCheck(this, ProductSpecificSearchResultsDropdownElement);
1960
 
1961
+ var _this5 = _possibleConstructorReturn(this, (ProductSpecificSearchResultsDropdownElement.__proto__ || Object.getPrototypeOf(ProductSpecificSearchResultsDropdownElement)).call(this, props));
1962
 
1963
+ _this5.handleClick = _this5.handleClick.bind(_this5);
1964
+ return _this5;
1965
  }
1966
 
1967
  /**
2007
  */
2008
 
2009
 
2010
+ var ProductSpecificSelectedProducts = function (_React$Component6) {
2011
+ _inherits(ProductSpecificSelectedProducts, _React$Component6);
2012
+
2013
+ /**
2014
+ * Constructor
2015
+ */
2016
+ function ProductSpecificSelectedProducts(props) {
2017
+ _classCallCheck(this, ProductSpecificSelectedProducts);
2018
+
2019
+ var _this6 = _possibleConstructorReturn(this, (ProductSpecificSelectedProducts.__proto__ || Object.getPrototypeOf(ProductSpecificSelectedProducts)).call(this, props));
2020
+
2021
+ _this6.state = {
2022
+ query: '',
2023
+ loaded: false
2024
  };
2025
+
2026
+ _this6.updateProductCache = _this6.updateProductCache.bind(_this6);
2027
+ _this6.getQuery = _this6.getQuery.bind(_this6);
2028
+
2029
+ return _this6;
2030
  }
2031
 
2032
+ /**
2033
+ * Get the preview when component is first loaded.
2034
+ */
 
 
2035
 
 
 
 
2036
 
2037
+ _createClass(ProductSpecificSelectedProducts, [{
2038
+ key: 'componentDidMount',
2039
+ value: function componentDidMount() {
2040
+ this.updateProductCache();
2041
  }
2042
+
2043
+ /**
2044
+ * Update the preview when component is updated.
2045
+ */
2046
+
2047
+ }, {
2048
+ key: 'componentDidUpdate',
2049
+ value: function componentDidUpdate() {
2050
+ if (this.state.loaded && this.getQuery() !== this.state.query) {
2051
+ this.updateProductCache();
 
2052
  }
2053
  }
 
 
 
 
 
 
 
 
 
 
2054
 
2055
+ /**
2056
+ * Get the endpoint for the current state of the component.
2057
+ */
2058
 
2059
+ }, {
2060
+ key: 'getQuery',
2061
+ value: function getQuery() {
2062
+ if (!this.props.productIds.length) {
2063
+ return '';
2064
+ }
2065
 
2066
+ // Determine which products are not already in the cache and only fetch uncached products.
2067
+ var uncachedProducts = [];
2068
+ var _iteratorNormalCompletion3 = true;
2069
+ var _didIteratorError3 = false;
2070
+ var _iteratorError3 = undefined;
2071
 
 
 
 
 
 
 
2072
  try {
2073
+ for (var _iterator3 = this.props.productIds[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
2074
+ var productId = _step3.value;
2075
+
2076
+ if (!PRODUCT_DATA.hasOwnProperty(productId)) {
2077
+ uncachedProducts.push(productId);
2078
+ }
2079
  }
2080
+ } catch (err) {
2081
+ _didIteratorError3 = true;
2082
+ _iteratorError3 = err;
2083
  } finally {
2084
+ try {
2085
+ if (!_iteratorNormalCompletion3 && _iterator3.return) {
2086
+ _iterator3.return();
2087
+ }
2088
+ } finally {
2089
+ if (_didIteratorError3) {
2090
+ throw _iteratorError3;
2091
+ }
2092
  }
2093
  }
2094
+
2095
+ return uncachedProducts.length ? '/wc/v2/products?include=' + uncachedProducts.join(',') : '';
2096
  }
 
2097
 
2098
+ /**
2099
+ * Add newly fetched products to the cache.
2100
+ */
2101
 
2102
+ }, {
2103
+ key: 'updateProductCache',
2104
+ value: function updateProductCache() {
2105
+ var self = this;
2106
+ var query = this.getQuery();
2107
+
2108
+ self.setState({
2109
+ query: query,
2110
+ loaded: false
2111
+ });
2112
+
2113
+ // Add new products to cache.
2114
+ if (query.length) {
2115
+ apiFetch({ path: query }).then(function (products) {
2116
+ if (products.length) {
2117
+ var _iteratorNormalCompletion4 = true;
2118
+ var _didIteratorError4 = false;
2119
+ var _iteratorError4 = undefined;
2120
+
2121
+ try {
2122
+ for (var _iterator4 = products[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
2123
+ var product = _step4.value;
2124
+
2125
+ PRODUCT_DATA[product.id] = product;
2126
+ }
2127
+ } catch (err) {
2128
+ _didIteratorError4 = true;
2129
+ _iteratorError4 = err;
2130
+ } finally {
2131
+ try {
2132
+ if (!_iteratorNormalCompletion4 && _iterator4.return) {
2133
+ _iterator4.return();
2134
+ }
2135
+ } finally {
2136
+ if (_didIteratorError4) {
2137
+ throw _iteratorError4;
2138
+ }
2139
+ }
2140
+ }
2141
+ }
2142
 
2143
+ self.setState({
2144
+ loaded: true
2145
+ });
2146
+ });
2147
+ }
2148
  }
2149
 
2150
+ /**
2151
+ * Render.
2152
+ */
2153
 
2154
+ }, {
2155
+ key: 'render',
2156
+ value: function render() {
2157
+ var self = this;
2158
+ var productElements = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2159
 
2160
+ var _loop = function _loop(productId) {
 
 
2161
 
2162
+ // Skip products that aren't in the cache yet or failed to fetch.
2163
+ if (!PRODUCT_DATA.hasOwnProperty(productId)) {
2164
+ return 'continue';
2165
+ }
2166
 
2167
+ var productData = PRODUCT_DATA[productId];
2168
 
2169
+ productElements.push(wp.element.createElement(
2170
+ 'li',
2171
+ { className: 'wc-products-list-card__item', key: productData.id + '-specific-select-edit' },
2172
+ wp.element.createElement(
2173
+ 'div',
2174
+ { className: 'wc-products-list-card__content' },
2175
+ wp.element.createElement('img', { src: productData.images[0].src }),
2176
+ wp.element.createElement(
2177
+ 'span',
2178
+ { className: 'wc-products-list-card__content-item-name' },
2179
+ productData.name
2180
+ ),
2181
+ wp.element.createElement(
2182
+ 'button',
2183
+ {
2184
+ type: 'button',
2185
+ id: 'product-' + productData.id,
2186
+ onClick: function onClick() {
2187
+ self.props.addOrRemoveProduct(productData.id);
2188
+ } },
2189
+ wp.element.createElement(Dashicon, { icon: 'no-alt' })
2190
+ )
2191
+ )
2192
+ ));
2193
+ };
2194
+
2195
+ var _iteratorNormalCompletion5 = true;
2196
+ var _didIteratorError5 = false;
2197
+ var _iteratorError5 = undefined;
2198
+
2199
+ try {
2200
+ for (var _iterator5 = this.props.productIds[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
2201
+ var productId = _step5.value;
2202
+
2203
+ var _ret = _loop(productId);
2204
+
2205
+ if (_ret === 'continue') continue;
2206
+ }
2207
+ } catch (err) {
2208
+ _didIteratorError5 = true;
2209
+ _iteratorError5 = err;
2210
+ } finally {
2211
+ try {
2212
+ if (!_iteratorNormalCompletion5 && _iterator5.return) {
2213
+ _iterator5.return();
2214
+ }
2215
+ } finally {
2216
+ if (_didIteratorError5) {
2217
+ throw _iteratorError5;
2218
+ }
2219
+ }
2220
  }
2221
+
2222
+ return wp.element.createElement(
2223
+ 'div',
2224
+ { className: 'wc-products-list-card__results-wrapper wc-products-list-card__results-wrapper--cols-' + this.props.columns },
2225
+ wp.element.createElement(
2226
+ 'div',
2227
+ { role: 'menu', className: 'wc-products-list-card__results', 'aria-orientation': 'vertical', 'aria-label': __('Selected products') },
2228
+ productElements.length > 0 && wp.element.createElement(
2229
+ 'h3',
2230
+ null,
2231
+ __('Selected products')
2232
+ ),
2233
+ wp.element.createElement(
2234
+ 'ul',
2235
+ null,
2236
+ productElements
2237
+ )
2238
+ )
2239
+ );
2240
  }
2241
+ }]);
2242
 
2243
+ return ProductSpecificSelectedProducts;
2244
+ }(React.Component);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2245
 
2246
  /***/ }),
2247
  /* 2 */
2267
  var __ = wp.i18n.__;
2268
  var _wp$components = wp.components,
2269
  Toolbar = _wp$components.Toolbar,
 
2270
  Dropdown = _wp$components.Dropdown,
2271
  Dashicon = _wp$components.Dashicon;
2272
+ var _wp = wp,
2273
+ apiFetch = _wp.apiFetch;
2274
 
2275
  /**
2276
  * When the display mode is 'Product category' search for and select product categories to pull products from.
2429
  /**
2430
  * Fetch and build a tree of product categories.
2431
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2432
 
2433
+ var ProductCategoryList = function (_React$Component2) {
2434
+ _inherits(ProductCategoryList, _React$Component2);
2435
+
2436
+ /**
2437
+ * Constructor
2438
+ */
2439
+ function ProductCategoryList(props) {
2440
+ _classCallCheck(this, ProductCategoryList);
2441
+
2442
+ var _this2 = _possibleConstructorReturn(this, (ProductCategoryList.__proto__ || Object.getPrototypeOf(ProductCategoryList)).call(this, props));
2443
+
2444
+ _this2.state = {
2445
+ categories: [],
2446
+ loaded: false,
2447
+ query: ''
2448
+ };
2449
+
2450
+ _this2.updatePreview = _this2.updatePreview.bind(_this2);
2451
+ _this2.getQuery = _this2.getQuery.bind(_this2);
2452
+ return _this2;
2453
  }
2454
 
2455
+ /**
2456
+ * Get the preview when component is first loaded.
2457
+ */
 
2458
 
 
2459
 
2460
+ _createClass(ProductCategoryList, [{
2461
+ key: "componentDidMount",
2462
+ value: function componentDidMount() {
2463
+ if (this.getQuery() !== this.state.query) {
2464
+ this.updatePreview();
2465
+ }
2466
+ }
2467
 
2468
+ /**
2469
+ * Update the preview when component is updated.
2470
+ */
2471
 
2472
+ }, {
2473
+ key: "componentDidUpdate",
2474
+ value: function componentDidUpdate() {
2475
+ if (this.getQuery() !== this.state.query && this.state.loaded) {
2476
+ this.updatePreview();
2477
+ }
2478
+ }
2479
 
2480
+ /**
2481
+ * Get the endpoint for the current state of the component.
2482
+ *
2483
+ * @return string
2484
+ */
2485
 
2486
+ }, {
2487
+ key: "getQuery",
2488
+ value: function getQuery() {
2489
+ var endpoint = '/wc/v2/products/categories';
2490
+ return endpoint;
2491
+ }
2492
 
2493
+ /**
2494
+ * Update the preview with the latest settings.
2495
+ */
2496
 
2497
+ }, {
2498
+ key: "updatePreview",
2499
+ value: function updatePreview() {
2500
+ var self = this;
2501
+ var query = this.getQuery();
2502
+
2503
+ self.setState({
2504
+ loaded: false
2505
+ });
2506
+
2507
+ apiFetch({ path: query }).then(function (categories) {
2508
+ self.setState({
2509
+ categories: categories,
2510
+ loaded: true,
2511
+ query: query
2512
+ });
2513
+ });
2514
  }
2515
 
2516
+ /**
2517
+ * Render.
2518
+ */
 
2519
 
2520
+ }, {
2521
+ key: "render",
2522
+ value: function render() {
2523
+ var _props = this.props,
2524
+ filterQuery = _props.filterQuery,
2525
+ selectedCategories = _props.selectedCategories,
2526
+ checkboxChange = _props.checkboxChange,
2527
+ accordionToggle = _props.accordionToggle,
2528
+ openAccordion = _props.openAccordion,
2529
+ firstLoad = _props.firstLoad,
2530
+ setFirstLoad = _props.setFirstLoad;
2531
 
 
 
 
2532
 
2533
+ if (!this.state.loaded) {
2534
+ return __('Loading');
 
2535
  }
2536
+
2537
+ if (0 === this.state.categories.length) {
2538
+ return __('No categories found');
 
 
 
 
 
 
 
 
 
2539
  }
 
2540
 
2541
+ var handleCategoriesToCheck = function handleCategoriesToCheck(evt, parent, categories) {
2542
+ var ids = getCategoryChildren(parent, categories).map(function (category) {
2543
+ return category.id;
2544
+ });
2545
 
2546
+ ids.push(parent.id);
 
 
2547
 
2548
+ checkboxChange(evt.target.checked, ids);
2549
+ };
2550
 
2551
+ var getCategoryChildren = function getCategoryChildren(parent, categories) {
2552
+ var children = [];
 
2553
 
2554
+ categories.filter(function (category) {
2555
+ return category.parent === parent.id;
2556
+ }).forEach(function (category) {
2557
+ children.push(category);
2558
+ children.push.apply(children, _toConsumableArray(getCategoryChildren(category, categories)));
2559
+ });
2560
 
2561
+ return children;
 
 
2562
  };
 
2563
 
2564
+ var categoryHasChildren = function categoryHasChildren(parent, categories) {
2565
+ return !!getCategoryChildren(parent, categories).length;
2566
+ };
 
 
 
 
 
2567
 
2568
+ var isIndeterminate = function isIndeterminate(category, categories) {
 
 
2569
 
2570
+ // Currect category selected?
2571
+ if (selectedCategories.includes(category.id)) {
2572
+ return false;
2573
+ }
2574
 
2575
+ // Has children?
2576
+ var children = getCategoryChildren(category, categories).map(function (category) {
2577
+ return category.id;
2578
+ });
 
2579
 
2580
+ var _iteratorNormalCompletion = true;
2581
+ var _didIteratorError = false;
2582
+ var _iteratorError = undefined;
2583
 
2584
  try {
2585
+ for (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
2586
+ var child = _step.value;
2587
 
2588
+ if (selectedCategories.includes(child)) {
2589
+ return true;
 
2590
  }
2591
  }
2592
  } catch (err) {
2593
+ _didIteratorError = true;
2594
+ _iteratorError = err;
2595
  } finally {
2596
  try {
2597
+ if (!_iteratorNormalCompletion && _iterator.return) {
2598
+ _iterator.return();
2599
  }
2600
  } finally {
2601
+ if (_didIteratorError) {
2602
+ throw _iteratorError;
2603
  }
2604
  }
2605
  }
 
2606
 
2607
+ return false;
2608
+ };
2609
+
2610
+ var AccordionButton = function AccordionButton(_ref2) {
2611
+ var category = _ref2.category,
2612
+ categories = _ref2.categories;
2613
+
2614
+ var icon = 'arrow-down-alt2';
2615
+
2616
+ if (openAccordion.includes(category.id)) {
2617
+ icon = 'arrow-up-alt2';
2618
+ }
2619
+
2620
+ var style = null;
2621
+
2622
+ if (!categoryHasChildren(category, categories)) {
2623
+ style = {
2624
+ visibility: 'hidden'
2625
+ };
2626
+ };
2627
 
 
 
 
 
2628
  return wp.element.createElement(
2629
+ "button",
2630
+ { onClick: function onClick() {
2631
+ return accordionToggle(category.id);
2632
+ }, className: "wc-products-list-card__accordion-button", style: style, type: "button" },
2633
+ wp.element.createElement(Dashicon, { icon: icon })
2634
+ );
2635
+ };
2636
+
2637
+ var CategoryTree = function CategoryTree(_ref3) {
2638
+ var categories = _ref3.categories,
2639
+ parent = _ref3.parent;
2640
+
2641
+ var filteredCategories = categories.filter(function (category) {
2642
+ return category.parent === parent;
2643
+ });
2644
+
2645
+ if (firstLoad && selectedCategories.length > 0) {
2646
+ categoriesData.filter(function (category) {
2647
+ return category.parent === 0;
2648
+ }).forEach(function (category) {
2649
+ var children = getCategoryChildren(category, categoriesData);
2650
+
2651
+ var _iteratorNormalCompletion2 = true;
2652
+ var _didIteratorError2 = false;
2653
+ var _iteratorError2 = undefined;
2654
+
2655
+ try {
2656
+ for (var _iterator2 = children[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
2657
+ var child = _step2.value;
2658
+
2659
+ if (selectedCategories.includes(child.id) && !openAccordion.includes(category.id)) {
2660
+ accordionToggle(category.id);
2661
+ break;
2662
+ }
2663
  }
2664
+ } catch (err) {
2665
+ _didIteratorError2 = true;
2666
+ _iteratorError2 = err;
2667
+ } finally {
2668
+ try {
2669
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
2670
+ _iterator2.return();
2671
+ }
2672
+ } finally {
2673
+ if (_didIteratorError2) {
2674
+ throw _iteratorError2;
2675
+ }
2676
+ }
2677
+ }
2678
+ });
2679
+
2680
+ setFirstLoad(false);
2681
+ }
2682
+
2683
+ return filteredCategories.length > 0 && wp.element.createElement(
2684
+ "ul",
2685
+ null,
2686
+ filteredCategories.map(function (category) {
2687
+ return wp.element.createElement(
2688
+ "li",
2689
+ { key: category.id, className: openAccordion.includes(category.id) ? 'wc-products-list-card__item wc-products-list-card__accordion-open' : 'wc-products-list-card__item' },
2690
+ wp.element.createElement(
2691
+ "label",
2692
+ { className: 0 === category.parent ? 'wc-products-list-card__content' : '', htmlFor: 'product-category-' + category.id },
2693
+ wp.element.createElement("input", { type: "checkbox",
2694
+ id: 'product-category-' + category.id,
2695
+ value: category.id,
2696
+ checked: selectedCategories.includes(category.id),
2697
+ onChange: function onChange(evt) {
2698
+ return handleCategoriesToCheck(evt, category, categories);
2699
+ },
2700
+ ref: function ref(el) {
2701
+ return el && (el.indeterminate = isIndeterminate(category, categories));
2702
+ }
2703
+ }),
2704
+ " ",
2705
+ category.name,
2706
+ 0 === category.parent && wp.element.createElement(AccordionButton, { category: category, categories: categories }),
2707
+ wp.element.createElement(
2708
+ "span",
2709
+ { className: "wc-products-list-card__taxonomy-count" },
2710
+ category.count
2711
+ )
2712
+ ),
2713
+ wp.element.createElement(CategoryTree, { categories: categories, parent: category.id })
2714
+ );
2715
+ })
2716
  );
2717
+ };
 
 
2718
 
2719
+ var categoriesData = this.state.categories;
2720
 
2721
+ if ('' !== filterQuery) {
2722
+ categoriesData = categoriesData.filter(function (category) {
2723
+ return category.slug.includes(filterQuery.toLowerCase());
2724
+ });
2725
+ }
2726
 
2727
+ return wp.element.createElement(
2728
+ "div",
2729
+ { className: "wc-products-list-card__results" },
2730
+ wp.element.createElement(CategoryTree, { categories: categoriesData, parent: 0 })
2731
+ );
2732
+ }
2733
+ }]);
2734
+
2735
+ return ProductCategoryList;
2736
+ }(React.Component);
2737
 
2738
  /***/ }),
2739
  /* 3 */
2761
  var __ = wp.i18n.__;
2762
  var _wp$components = wp.components,
2763
  Toolbar = _wp$components.Toolbar,
 
2764
  Dropdown = _wp$components.Dropdown,
2765
  Dashicon = _wp$components.Dashicon;
2766
+ var _wp = wp,
2767
+ apiFetch = _wp.apiFetch;
2768
 
2769
  /**
2770
  * Get the identifier for an attribute. The identifier can be used to determine
2971
  /**
2972
  * List of attributes.
2973
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2974
 
2975
+ var ProductAttributeList = function (_React$Component2) {
2976
+ _inherits(ProductAttributeList, _React$Component2);
2977
+
2978
+ /**
2979
+ * Constructor
2980
+ */
2981
+ function ProductAttributeList(props) {
2982
+ _classCallCheck(this, ProductAttributeList);
2983
+
2984
+ var _this2 = _possibleConstructorReturn(this, (ProductAttributeList.__proto__ || Object.getPrototypeOf(ProductAttributeList)).call(this, props));
2985
+
2986
+ _this2.state = {
2987
+ attributes: [],
2988
+ loaded: false,
2989
+ query: ''
2990
+ };
2991
+
2992
+ _this2.updatePreview = _this2.updatePreview.bind(_this2);
2993
+ _this2.getQuery = _this2.getQuery.bind(_this2);
2994
+ return _this2;
2995
  }
2996
 
2997
+ /**
2998
+ * Get the preview when component is first loaded.
2999
+ */
3000
+
3001
+
3002
+ _createClass(ProductAttributeList, [{
3003
+ key: 'componentDidMount',
3004
+ value: function componentDidMount() {
3005
+ if (this.getQuery() !== this.state.query) {
3006
+ this.updatePreview();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3007
  }
3008
+ }
3009
+
3010
+ /**
3011
+ * Update the preview when component is updated.
3012
+ */
3013
+
3014
+ }, {
3015
+ key: 'componentDidUpdate',
3016
+ value: function componentDidUpdate() {
3017
+ if (this.getQuery() !== this.state.query && this.state.loaded) {
3018
+ this.updatePreview();
3019
  }
3020
  }
 
3021
 
3022
+ /**
3023
+ * Get the endpoint for the current state of the component.
3024
+ *
3025
+ * @return string
3026
+ */
3027
+
3028
+ }, {
3029
+ key: 'getQuery',
3030
+ value: function getQuery() {
3031
+ var endpoint = '/wc/v2/products/attributes';
3032
+ return endpoint;
3033
+ }
3034
+
3035
+ /**
3036
+ * Update the preview with the latest settings.
3037
+ */
3038
+
3039
+ }, {
3040
+ key: 'updatePreview',
3041
+ value: function updatePreview() {
3042
+ var self = this;
3043
+ var query = this.getQuery();
3044
+
3045
+ self.setState({
3046
+ loaded: false
3047
+ });
3048
+
3049
+ apiFetch({ path: query }).then(function (attributes) {
3050
+ self.setState({
3051
+ attributes: attributes,
3052
+ loaded: true,
3053
+ query: query
3054
+ });
3055
+ });
3056
+ }
3057
+
3058
+ /**
3059
+ * Render.
3060
+ */
3061
+
3062
+ }, {
3063
+ key: 'render',
3064
+ value: function render() {
3065
+ var _props = this.props,
3066
+ selectedAttribute = _props.selectedAttribute,
3067
+ filterQuery = _props.filterQuery,
3068
+ selectedTerms = _props.selectedTerms,
3069
+ setSelectedAttribute = _props.setSelectedAttribute,
3070
+ addTerm = _props.addTerm,
3071
+ removeTerm = _props.removeTerm;
3072
+
3073
+
3074
+ if (!this.state.loaded) {
3075
+ return wp.element.createElement(
3076
+ 'ul',
3077
+ null,
3078
+ wp.element.createElement(
3079
+ 'li',
3080
+ null,
3081
+ __('Loading')
3082
+ )
3083
+ );
3084
+ }
3085
+
3086
+ if (0 === this.state.attributes.length) {
3087
+ return wp.element.createElement(
3088
+ 'ul',
3089
+ null,
3090
+ wp.element.createElement(
3091
+ 'li',
3092
+ null,
3093
+ __('No attributes found')
3094
+ )
3095
+ );
3096
+ }
3097
+
3098
+ var filter = filterQuery.toLowerCase();
3099
+ var attributeElements = [];
3100
+
3101
+ var _iteratorNormalCompletion2 = true;
3102
+ var _didIteratorError2 = false;
3103
+ var _iteratorError2 = undefined;
3104
+
3105
+ try {
3106
+ for (var _iterator2 = this.state.attributes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
3107
+ var attribute = _step2.value;
3108
+
3109
+ // Filter out attributes that don't match the search query.
3110
+ if (filter.length && -1 === attribute.name.toLowerCase().indexOf(filter)) {
3111
+ continue;
3112
+ }
3113
+
3114
+ attributeElements.push(wp.element.createElement(ProductAttributeElement, {
3115
+ attribute: attribute,
3116
+ selectedAttribute: selectedAttribute,
3117
+ selectedTerms: selectedTerms,
3118
+ setSelectedAttribute: setSelectedAttribute,
3119
+ addTerm: addTerm,
3120
+ removeTerm: removeTerm
3121
+ }));
3122
+ }
3123
+ } catch (err) {
3124
+ _didIteratorError2 = true;
3125
+ _iteratorError2 = err;
3126
+ } finally {
3127
+ try {
3128
+ if (!_iteratorNormalCompletion2 && _iterator2.return) {
3129
+ _iterator2.return();
3130
+ }
3131
+ } finally {
3132
+ if (_didIteratorError2) {
3133
+ throw _iteratorError2;
3134
+ }
3135
+ }
3136
+ }
3137
+
3138
+ return wp.element.createElement(
3139
+ 'div',
3140
+ { className: 'wc-products-list-card__results' },
3141
+ attributeElements
3142
+ );
3143
+ }
3144
+ }]);
3145
+
3146
+ return ProductAttributeList;
3147
+ }(React.Component);
3148
 
3149
  /**
3150
  * One product attribute.
3151
  */
3152
 
3153
+
3154
+ var ProductAttributeElement = function (_React$Component3) {
3155
+ _inherits(ProductAttributeElement, _React$Component3);
3156
 
3157
  function ProductAttributeElement(props) {
3158
  _classCallCheck(this, ProductAttributeElement);
3159
 
3160
+ var _this3 = _possibleConstructorReturn(this, (ProductAttributeElement.__proto__ || Object.getPrototypeOf(ProductAttributeElement)).call(this, props));
3161
 
3162
+ _this3.handleAttributeChange = _this3.handleAttributeChange.bind(_this3);
3163
+ _this3.handleTermChange = _this3.handleTermChange.bind(_this3);
3164
+ return _this3;
3165
  }
3166
 
3167
  /**
3246
  */
3247
 
3248
 
3249
+ var AttributeTerms = function (_React$Component4) {
3250
+ _inherits(AttributeTerms, _React$Component4);
 
 
 
 
 
 
 
 
3251
 
3252
+ /**
3253
+ * Constructor
3254
+ */
3255
+ function AttributeTerms(props) {
3256
+ _classCallCheck(this, AttributeTerms);
 
 
 
 
 
 
3257
 
3258
+ var _this4 = _possibleConstructorReturn(this, (AttributeTerms.__proto__ || Object.getPrototypeOf(AttributeTerms)).call(this, props));
3259
+
3260
+ _this4.state = {
3261
+ terms: [],
3262
+ loaded: false,
3263
+ query: ''
3264
+ };
3265
+
3266
+ _this4.updatePreview = _this4.updatePreview.bind(_this4);
3267
+ _this4.getQuery = _this4.getQuery.bind(_this4);
3268
+ return _this4;
3269
  }
3270
 
3271
  /**
3272
+ * Get the preview when component is first loaded.
 
 
3273
  */
3274
+
3275
+
3276
+ _createClass(AttributeTerms, [{
3277
+ key: 'componentDidMount',
3278
+ value: function componentDidMount() {
3279
+ if (this.getQuery() !== this.state.query) {
3280
+ this.updatePreview();
3281
+ }
3282
  }
 
3283
 
3284
+ /**
3285
+ * Update the preview when component is updated.
3286
+ */
3287
+
3288
+ }, {
3289
+ key: 'componentDidUpdate',
3290
+ value: function componentDidUpdate() {
3291
+ if (this.getQuery() !== this.state.query && this.state.loaded) {
3292
+ this.updatePreview();
3293
+ }
3294
+ }
3295
+
3296
+ /**
3297
+ * Get the endpoint for the current state of the component.
3298
+ *
3299
+ * @return string
3300
+ */
3301
+
3302
+ }, {
3303
+ key: 'getQuery',
3304
+ value: function getQuery() {
3305
+ var endpoint = '/wc/v2/products/attributes/' + this.props.attribute.id + '/terms';
3306
+ return endpoint;
3307
+ }
3308
+
3309
+ /**
3310
+ * Update the preview with the latest settings.
3311
+ */
3312
+
3313
+ }, {
3314
+ key: 'updatePreview',
3315
+ value: function updatePreview() {
3316
+ var self = this;
3317
+ var query = this.getQuery();
3318
+
3319
+ self.setState({
3320
+ loaded: false
3321
+ });
3322
+
3323
+ apiFetch({ path: query }).then(function (terms) {
3324
+ self.setState({
3325
+ terms: terms,
3326
+ loaded: true,
3327
+ query: query
3328
+ });
3329
+ });
3330
+ }
3331
+
3332
+ /**
3333
+ * Render.
3334
+ */
3335
+
3336
+ }, {
3337
+ key: 'render',
3338
+ value: function render() {
3339
+ var _props2 = this.props,
3340
+ selectedTerms = _props2.selectedTerms,
3341
+ attribute = _props2.attribute,
3342
+ addTerm = _props2.addTerm,
3343
+ removeTerm = _props2.removeTerm;
3344
+
3345
+
3346
+ if (!this.state.loaded) {
3347
+ return wp.element.createElement(
3348
+ 'ul',
3349
+ null,
3350
  wp.element.createElement(
3351
+ 'li',
3352
+ null,
3353
+ __('Loading')
3354
  )
3355
+ );
3356
+ }
3357
+
3358
+ if (0 === this.state.terms.length) {
3359
+ return wp.element.createElement(
3360
+ 'ul',
3361
+ null,
3362
+ wp.element.createElement(
3363
+ 'li',
3364
+ null,
3365
+ __('No terms found')
3366
+ )
3367
+ );
3368
+ }
3369
+
3370
+ /**
3371
+ * Add or remove selected terms.
3372
+ *
3373
+ * @param evt Event object
3374
+ */
3375
+ function handleTermChange(evt) {
3376
+ if (evt.target.checked) {
3377
+ addTerm(evt.target.value);
3378
+ } else {
3379
+ removeTerm(evt.target.value);
3380
+ }
3381
+ }
3382
+
3383
+ return wp.element.createElement(
3384
+ 'ul',
3385
+ null,
3386
+ this.state.terms.map(function (term) {
3387
+ return wp.element.createElement(
3388
+ 'li',
3389
+ { className: 'wc-products-list-card__item' },
3390
+ wp.element.createElement(
3391
+ 'label',
3392
+ { className: 'wc-products-list-card__content' },
3393
+ wp.element.createElement('input', { type: 'checkbox',
3394
+ value: term.id,
3395
+ onChange: handleTermChange,
3396
+ checked: selectedTerms.includes(String(term.id))
3397
+ }),
3398
+ term.name,
3399
+ wp.element.createElement(
3400
+ 'span',
3401
+ { className: 'wc-products-list-card__taxonomy-count' },
3402
+ term.count
3403
+ )
3404
+ )
3405
+ );
3406
+ })
3407
  );
3408
+ }
3409
+ }]);
3410
+
3411
+ return AttributeTerms;
3412
+ }(React.Component);
3413
 
3414
  /***/ })
3415
  /******/ ]);
assets/js/products-block.jsx CHANGED
@@ -2,7 +2,8 @@ const { __ } = wp.i18n;
2
  const { RawHTML } = wp.element;
3
  const { registerBlockType } = wp.blocks;
4
  const { InspectorControls, BlockControls } = wp.editor;
5
- const { Toolbar, withAPIData, Dropdown, Dashicon, RangeControl, Tooltip, SelectControl } = wp.components;
 
6
 
7
  import { ProductsSpecificSelect } from './views/specific-select.jsx';
8
  import { ProductsCategorySelect } from './views/category-select.jsx';
@@ -353,150 +354,307 @@ class ProductPreview extends React.Component {
353
  /**
354
  * Renders a preview of what the block will look like with current settings.
355
  */
356
- const ProductsBlockPreview = withAPIData( ( { attributes } ) => {
357
-
358
- const { columns, rows, display, display_setting, orderby } = attributes;
359
-
360
- let query = {
361
- per_page: rows * columns,
362
- };
363
-
364
- if ( 'specific' === display ) {
365
- query.include = display_setting.join( ',' );
366
- query.per_page = display_setting.length;
367
- } else if ( 'category' === display ) {
368
- query.category = display_setting.join( ',' );
369
- } else if ( 'attribute' === display && display_setting.length ) {
370
- query.attribute = getAttributeSlug( display_setting[0] );
371
-
372
- if ( display_setting.length > 1 ) {
373
- query.attribute_term = display_setting.slice( 1 ).join( ',' );
374
- }
375
- } else if ( 'featured' === display ) {
376
- query.featured = 1;
377
- } else if ( 'on_sale' === display ) {
378
- query.on_sale = 1;
379
- }
380
-
381
- if ( supportsOrderby( display ) ) {
382
- if ( 'price_desc' === orderby ) {
383
- query.orderby = 'price';
384
- query.order = 'desc';
385
- } else if ( 'price_asc' === orderby ) {
386
- query.orderby = 'price';
387
- query.order = 'asc';
388
- } else if ( 'title' === orderby ) {
389
- query.orderby = 'title';
390
- query.order = 'asc';
391
- } else {
392
- query.orderby = orderby;
393
- }
394
  }
395
 
396
- let query_string = '?';
397
- for ( const key of Object.keys( query ) ) {
398
- query_string += key + '=' + query[ key ] + '&';
 
 
399
  }
400
 
401
- return {
402
- // @todo Switch this to use WC core API when possible.
403
- products: '/wgbp/v3/products' + query_string
404
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
405
 
406
- } )( ( { products, attributes } ) => {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
407
 
408
- if ( ! products.data ) {
409
- return __( 'Loading' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
  }
411
 
412
- if ( 0 === products.data.length ) {
413
- return __( 'No products found' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  }
415
 
416
- const classes = "wc-products-block-preview cols-" + attributes.columns;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
 
418
- return (
419
- <div className={ classes }>
420
- { products.data.map( ( product ) => (
421
- <ProductPreview key={ product.id } product={ product } attributes={ attributes } />
422
- ) ) }
423
- </div>
424
- );
425
- } );
426
 
427
  /**
428
  * Information about current block settings rendered in the sidebar.
429
  */
430
- const ProductsBlockSidebarInfo = withAPIData( ( { attributes } ) => {
431
 
432
- const { display, display_setting } = attributes;
 
 
 
 
433
 
434
- if ( 'attribute' === display && display_setting.length ) {
435
- const ID = getAttributeID( display_setting[0] );
436
- const terms = display_setting.slice( 1 ).join( ', ' );
437
- const endpoints = {
438
- attributeInfo: '/wc/v2/products/attributes/' + ID,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
439
  }
 
440
 
441
- if ( terms.length ) {
442
- endpoints.termInfo = '/wc/v2/products/attributes/' + ID + '/terms?include=' + terms;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
  }
444
 
445
  return endpoints;
446
-
447
- } else if ( 'category' === display && display_setting.length ) {
448
- return {
449
- categoriesInfo: '/wc/v2/products/categories?include=' + display_setting.join( ',' ),
450
- };
451
  }
452
 
453
- return {};
 
 
 
 
 
454
 
455
- } )( ( { attributes, categoriesInfo, attributeInfo, termInfo } ) => {
 
 
 
 
456
 
457
- let descriptions = [
458
- // Standard description of selected scope.
459
- PRODUCTS_BLOCK_DISPLAY_SETTINGS[ attributes.display ].title
460
- ];
 
 
 
 
 
 
 
461
 
462
- // Description of categories selected scope.
463
- if ( categoriesInfo && categoriesInfo.data && categoriesInfo.data.length ) {
464
- let descriptionText = __( 'Product categories: ' );
465
- const categories = [];
466
- for ( let category of categoriesInfo.data ) {
467
- categories.push( category.name );
 
 
 
 
468
  }
469
- descriptionText += categories.join( ', ' );
470
 
471
- descriptions = [
472
- descriptionText
473
- ];
 
 
 
 
 
 
 
 
 
474
 
475
- // Description of attributes selected scope.
476
- } else if ( attributeInfo && attributeInfo.data ) {
477
- descriptions = [
478
- __( 'Attribute: ' ) + attributeInfo.data.name
 
 
 
479
  ];
480
 
481
- if ( termInfo && termInfo.data && termInfo.data.length ) {
482
- let termDescriptionText = __( "Terms: " );
483
- const terms = []
484
- for ( const term of termInfo.data ) {
485
- terms.push( term.name );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  }
487
- termDescriptionText += terms.join( ', ' );
488
- descriptions.push( termDescriptionText );
489
  }
490
- }
491
 
492
- return (
493
- <div>
494
- { descriptions.map( ( description ) => (
495
- <div className="scope-description">{ description }</div>
496
- ) ) }
497
- </div>
498
- );
499
- } );
 
500
 
501
  /**
502
  * The main products block UI.
2
  const { RawHTML } = wp.element;
3
  const { registerBlockType } = wp.blocks;
4
  const { InspectorControls, BlockControls } = wp.editor;
5
+ const { Toolbar, Dropdown, Dashicon, RangeControl, Tooltip, SelectControl } = wp.components;
6
+ const { apiFetch } = wp;
7
 
8
  import { ProductsSpecificSelect } from './views/specific-select.jsx';
9
  import { ProductsCategorySelect } from './views/category-select.jsx';
354
  /**
355
  * Renders a preview of what the block will look like with current settings.
356
  */
357
+ class ProductsBlockPreview extends React.Component {
358
+
359
+ /**
360
+ * Constructor
361
+ */
362
+ constructor( props ) {
363
+ super( props );
364
+ this.state = {
365
+ products: [],
366
+ loaded: false,
367
+ query: '',
368
+ };
369
+
370
+ this.updatePreview = this.updatePreview.bind( this );
371
+ this.getQuery = this.getQuery.bind( this );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
  }
373
 
374
+ /**
375
+ * Get the preview when component is first loaded.
376
+ */
377
+ componentDidMount() {
378
+ this.updatePreview();
379
  }
380
 
381
+ /**
382
+ * Update the preview when component is updated.
383
+ */
384
+ componentDidUpdate() {
385
+ if ( this.getQuery() !== this.state.query && this.state.loaded ) {
386
+ this.updatePreview();
387
+ }
388
+ }
389
+
390
+ /**
391
+ * Get the endpoint for the current state of the component.
392
+ *
393
+ * @return string
394
+ */
395
+ getQuery() {
396
+ const { columns, rows, display, display_setting, orderby } = this.props.attributes;
397
+
398
+ let query = {
399
+ per_page: rows * columns,
400
+ };
401
 
402
+ if ( 'specific' === display ) {
403
+ query.include = display_setting.join( ',' );
404
+ query.per_page = display_setting.length;
405
+ } else if ( 'category' === display ) {
406
+ query.category = display_setting.join( ',' );
407
+ } else if ( 'attribute' === display && display_setting.length ) {
408
+ query.attribute = getAttributeSlug( display_setting[0] );
409
+
410
+ if ( display_setting.length > 1 ) {
411
+ query.attribute_term = display_setting.slice( 1 ).join( ',' );
412
+ }
413
+ } else if ( 'featured' === display ) {
414
+ query.featured = 1;
415
+ } else if ( 'on_sale' === display ) {
416
+ query.on_sale = 1;
417
+ }
418
 
419
+ if ( supportsOrderby( display ) ) {
420
+ if ( 'price_desc' === orderby ) {
421
+ query.orderby = 'price';
422
+ query.order = 'desc';
423
+ } else if ( 'price_asc' === orderby ) {
424
+ query.orderby = 'price';
425
+ query.order = 'asc';
426
+ } else if ( 'title' === orderby ) {
427
+ query.orderby = 'title';
428
+ query.order = 'asc';
429
+ } else {
430
+ query.orderby = orderby;
431
+ }
432
+ }
433
+
434
+ let query_string = '?';
435
+ for ( const key of Object.keys( query ) ) {
436
+ query_string += key + '=' + query[ key ] + '&';
437
+ }
438
+
439
+ const endpoint = '/wgbp/v3/products' + query_string;
440
+ return endpoint;
441
  }
442
 
443
+ /**
444
+ * Update the preview with the latest settings.
445
+ */
446
+ updatePreview() {
447
+ const self = this;
448
+ const query = this.getQuery();
449
+
450
+ self.setState( {
451
+ loaded: false,
452
+ query: query
453
+ } );
454
+
455
+ apiFetch( { path: query } ).then( products => {
456
+ self.setState( {
457
+ products: products,
458
+ loaded: true
459
+ } );
460
+ } );
461
  }
462
 
463
+ /**
464
+ * Render.
465
+ */
466
+ render() {
467
+ if ( ! this.state.loaded ) {
468
+ return __( 'Loading' );
469
+ }
470
+
471
+ if ( 0 === this.state.products.length ) {
472
+ return __( 'No products found' );
473
+ }
474
+
475
+ const classes = "wc-products-block-preview cols-" + this.props.attributes.columns;
476
+ const self = this;
477
+
478
+ return (
479
+ <div className={ classes }>
480
+ { this.state.products.map( ( product ) => (
481
+ <ProductPreview key={ product.id } product={ product } attributes={ self.props.attributes } />
482
+ ) ) }
483
+ </div>
484
+ );
485
+ }
486
+ }
487
 
 
 
 
 
 
 
 
 
488
 
489
  /**
490
  * Information about current block settings rendered in the sidebar.
491
  */
492
+ class ProductsBlockSidebarInfo extends React.Component {
493
 
494
+ /**
495
+ * Constructor
496
+ */
497
+ constructor( props ) {
498
+ super( props );
499
 
500
+ this.state = {
501
+ categoriesInfo: [],
502
+ categoriesQuery: '',
503
+
504
+ attributeInfo: false,
505
+ attributeQuery: '',
506
+
507
+ termsInfo: [],
508
+ termsQuery: ''
509
+ };
510
+
511
+ this.updateInfo = this.updateInfo.bind( this );
512
+ this.getQueries = this.getQueries.bind( this );
513
+ }
514
+
515
+ /**
516
+ * Populate info when component is first loaded.
517
+ */
518
+ componentDidMount() {
519
+ this.updateInfo();
520
+ }
521
+
522
+ componentDidUpdate() {
523
+ const queries = this.getQueries();
524
+
525
+ if ( this.state.categoriesQuery !== queries.categories ||
526
+ this.state.attributeQuery !== queries.attribute ||
527
+ this.state.termsQuery !== queries.terms ) {
528
+ this.updateInfo();
529
  }
530
+ }
531
 
532
+ /**
533
+ * Get endpoints for the current state of the component.
534
+ *
535
+ * @return object
536
+ */
537
+ getQueries() {
538
+ const { display, display_setting } = this.props.attributes;
539
+ const endpoints = {
540
+ attribute: '',
541
+ terms: '',
542
+ categories: ''
543
+ };
544
+
545
+ if ( 'attribute' === display && display_setting.length ) {
546
+ const ID = getAttributeID( display_setting[0] );
547
+ const terms = display_setting.slice( 1 ).join( ', ' );
548
+
549
+ endpoints.attribute = '/wc/v2/products/attributes/' + ID;
550
+
551
+ if ( terms.length ) {
552
+ endpoints.terms = '/wc/v2/products/attributes/' + ID + '/terms?include=' + terms;
553
+ }
554
+ } else if ( 'category' === display && display_setting.length ) {
555
+ endpoints.categories = '/wc/v2/products/categories?include=' + display_setting.join( ',' );
556
  }
557
 
558
  return endpoints;
 
 
 
 
 
559
  }
560
 
561
+ /**
562
+ * Get the latest info for the sidebar information area.
563
+ */
564
+ updateInfo() {
565
+ const self = this;
566
+ const queries = this.getQueries();
567
 
568
+ this.setState( {
569
+ categoriesQuery: queries.categories,
570
+ attributeQuery: queries.attribute,
571
+ termsQuery: queries.terms
572
+ } );
573
 
574
+ if ( queries.categories.length ) {
575
+ apiFetch( { path: queries.categories } ).then( categories => {
576
+ self.setState( {
577
+ categoriesInfo: categories,
578
+ } );
579
+ } );
580
+ } else {
581
+ self.setState( {
582
+ categoriesInfo: [],
583
+ } );
584
+ }
585
 
586
+ if ( queries.attribute.length ) {
587
+ apiFetch( { path: queries.attribute } ).then( attribute => {
588
+ self.setState( {
589
+ attributeInfo: attribute,
590
+ } );
591
+ } );
592
+ } else {
593
+ self.setState( {
594
+ attributeInfo: false,
595
+ } );
596
  }
 
597
 
598
+ if ( queries.terms.length ) {
599
+ apiFetch( { path: queries.terms } ).then( terms => {
600
+ self.setState( {
601
+ termsInfo: terms,
602
+ } );
603
+ } );
604
+ } else {
605
+ self.setState( {
606
+ termsInfo: [],
607
+ } );
608
+ }
609
+ }
610
 
611
+ /**
612
+ * Render.
613
+ */
614
+ render() {
615
+ let descriptions = [
616
+ // Standard description of selected scope.
617
+ PRODUCTS_BLOCK_DISPLAY_SETTINGS[ this.props.attributes.display ].title
618
  ];
619
 
620
+ if ( this.state.categoriesInfo.length ) {
621
+ let descriptionText = __( 'Product categories: ' );
622
+ const categories = [];
623
+ for ( let category of this.state.categoriesInfo ) {
624
+ categories.push( category.name );
625
+ }
626
+ descriptionText += categories.join( ', ' );
627
+
628
+ descriptions = [
629
+ descriptionText
630
+ ];
631
+
632
+ // Description of attributes selected scope.
633
+ } else if ( this.state.attributeInfo ) {
634
+ descriptions = [
635
+ __( 'Attribute: ' ) + this.state.attributeInfo.name
636
+ ];
637
+
638
+ if ( this.state.termsInfo.length ) {
639
+ let termDescriptionText = __( "Terms: " );
640
+ const terms = []
641
+ for ( const term of this.state.termsInfo ) {
642
+ terms.push( term.name );
643
+ }
644
+ termDescriptionText += terms.join( ', ' );
645
+ descriptions.push( termDescriptionText );
646
  }
 
 
647
  }
 
648
 
649
+ return (
650
+ <div>
651
+ { descriptions.map( ( description ) => (
652
+ <div className="scope-description">{ description }</div>
653
+ ) ) }
654
+ </div>
655
+ );
656
+ }
657
+ };
658
 
659
  /**
660
  * The main products block UI.
assets/js/views/attribute-select.jsx CHANGED
@@ -1,5 +1,6 @@
1
  const { __ } = wp.i18n;
2
- const { Toolbar, withAPIData, Dropdown, Dashicon } = wp.components;
 
3
 
4
  /**
5
  * Get the identifier for an attribute. The identifier can be used to determine
@@ -158,36 +159,102 @@ const ProductAttributeFilter = ( props ) => {
158
  /**
159
  * List of attributes.
160
  */
161
- const ProductAttributeList = withAPIData( ( props ) => {
162
- return {
163
- attributes: '/wc/v2/products/attributes'
 
 
 
 
 
 
 
 
164
  };
165
- } )( ( { attributes, selectedAttribute, filterQuery, selectedTerms, setSelectedAttribute, addTerm, removeTerm } ) => {
166
- if ( ! attributes.data ) {
167
- return __( 'Loading' );
 
 
 
 
 
 
 
 
168
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
 
170
- if ( 0 === attributes.data.length ) {
171
- return __( 'No attributes found' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  }
173
 
 
 
 
174
 
175
  const filter = filterQuery.toLowerCase();
176
  let attributeElements = [];
177
- for ( let attribute of attributes.data ) {
 
178
  // Filter out attributes that don't match the search query.
179
  if ( filter.length && -1 === attribute.name.toLowerCase().indexOf( filter ) ) {
180
  continue;
181
  }
182
 
183
  attributeElements.push(
184
- <ProductAttributeElement
185
- attribute={ attribute }
186
- selectedAttribute={ selectedAttribute }
187
- selectedTerms={ selectedTerms }
188
  setSelectedAttribute={ setSelectedAttribute}
189
  addTerm={ addTerm }
190
- removeTerm={ removeTerm }
191
  />
192
  );
193
  }
@@ -198,7 +265,7 @@ const ProductAttributeList = withAPIData( ( props ) => {
198
  </div>
199
  );
200
  }
201
- );
202
 
203
  /**
204
  * One product attribute.
@@ -277,16 +344,82 @@ class ProductAttributeElement extends React.Component {
277
  /**
278
  * The list of terms in an attribute.
279
  */
280
- const AttributeTerms = withAPIData( ( props ) => {
281
- return {
282
- terms: '/wc/v2/products/attributes/' + props.attribute.id + '/terms'
 
 
 
 
 
 
 
 
283
  };
284
- } )( ( { terms, selectedTerms, attribute, addTerm, removeTerm } ) => {
285
- if ( ! terms.data ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  return ( <ul><li>{ __( 'Loading' ) }</li></ul> );
287
  }
288
 
289
- if ( 0 === terms.data.length ) {
290
  return ( <ul><li>{ __( 'No terms found' ) }</li></ul> );
291
  }
292
 
@@ -305,7 +438,7 @@ const AttributeTerms = withAPIData( ( props ) => {
305
 
306
  return (
307
  <ul>
308
- { terms.data.map( ( term ) => (
309
  <li className="wc-products-list-card__item">
310
  <label className="wc-products-list-card__content">
311
  <input type="checkbox"
@@ -321,4 +454,4 @@ const AttributeTerms = withAPIData( ( props ) => {
321
  </ul>
322
  );
323
  }
324
- );
1
  const { __ } = wp.i18n;
2
+ const { Toolbar, Dropdown, Dashicon } = wp.components;
3
+ const { apiFetch } = wp;
4
 
5
  /**
6
  * Get the identifier for an attribute. The identifier can be used to determine
159
  /**
160
  * List of attributes.
161
  */
162
+ class ProductAttributeList extends React.Component {
163
+
164
+ /**
165
+ * Constructor
166
+ */
167
+ constructor( props ) {
168
+ super( props );
169
+ this.state = {
170
+ attributes: [],
171
+ loaded: false,
172
+ query: '',
173
  };
174
+
175
+ this.updatePreview = this.updatePreview.bind( this );
176
+ this.getQuery = this.getQuery.bind( this );
177
+ }
178
+
179
+ /**
180
+ * Get the preview when component is first loaded.
181
+ */
182
+ componentDidMount() {
183
+ if ( this.getQuery() !== this.state.query ) {
184
+ this.updatePreview();
185
  }
186
+ }
187
+
188
+ /**
189
+ * Update the preview when component is updated.
190
+ */
191
+ componentDidUpdate() {
192
+ if ( this.getQuery() !== this.state.query && this.state.loaded ) {
193
+ this.updatePreview();
194
+ }
195
+ }
196
+
197
+ /**
198
+ * Get the endpoint for the current state of the component.
199
+ *
200
+ * @return string
201
+ */
202
+ getQuery() {
203
+ const endpoint = '/wc/v2/products/attributes';
204
+ return endpoint;
205
+ }
206
+
207
+ /**
208
+ * Update the preview with the latest settings.
209
+ */
210
+ updatePreview() {
211
+ const self = this;
212
+ const query = this.getQuery();
213
+
214
+ self.setState( {
215
+ loaded: false
216
+ } );
217
 
218
+ apiFetch( { path: query } ).then( attributes => {
219
+ self.setState( {
220
+ attributes: attributes,
221
+ loaded: true,
222
+ query: query
223
+ } );
224
+ } );
225
+ }
226
+
227
+ /**
228
+ * Render.
229
+ */
230
+ render() {
231
+ const { selectedAttribute, filterQuery, selectedTerms, setSelectedAttribute, addTerm, removeTerm } = this.props;
232
+
233
+ if ( ! this.state.loaded ) {
234
+ return ( <ul><li>{ __( 'Loading' ) }</li></ul> );
235
  }
236
 
237
+ if ( 0 === this.state.attributes.length ) {
238
+ return ( <ul><li>{ __( 'No attributes found' ) }</li></ul> );
239
+ }
240
 
241
  const filter = filterQuery.toLowerCase();
242
  let attributeElements = [];
243
+
244
+ for ( let attribute of this.state.attributes ) {
245
  // Filter out attributes that don't match the search query.
246
  if ( filter.length && -1 === attribute.name.toLowerCase().indexOf( filter ) ) {
247
  continue;
248
  }
249
 
250
  attributeElements.push(
251
+ <ProductAttributeElement
252
+ attribute={ attribute }
253
+ selectedAttribute={ selectedAttribute }
254
+ selectedTerms={ selectedTerms }
255
  setSelectedAttribute={ setSelectedAttribute}
256
  addTerm={ addTerm }
257
+ removeTerm={ removeTerm }
258
  />
259
  );
260
  }
265
  </div>
266
  );
267
  }
268
+ }
269
 
270
  /**
271
  * One product attribute.
344
  /**
345
  * The list of terms in an attribute.
346
  */
347
+ class AttributeTerms extends React.Component {
348
+
349
+ /**
350
+ * Constructor
351
+ */
352
+ constructor( props ) {
353
+ super( props );
354
+ this.state = {
355
+ terms: [],
356
+ loaded: false,
357
+ query: '',
358
  };
359
+
360
+ this.updatePreview = this.updatePreview.bind( this );
361
+ this.getQuery = this.getQuery.bind( this );
362
+ }
363
+
364
+ /**
365
+ * Get the preview when component is first loaded.
366
+ */
367
+ componentDidMount() {
368
+ if ( this.getQuery() !== this.state.query ) {
369
+ this.updatePreview();
370
+ }
371
+ }
372
+
373
+ /**
374
+ * Update the preview when component is updated.
375
+ */
376
+ componentDidUpdate() {
377
+ if ( this.getQuery() !== this.state.query && this.state.loaded ) {
378
+ this.updatePreview();
379
+ }
380
+ }
381
+
382
+ /**
383
+ * Get the endpoint for the current state of the component.
384
+ *
385
+ * @return string
386
+ */
387
+ getQuery() {
388
+ const endpoint = '/wc/v2/products/attributes/' + this.props.attribute.id + '/terms';
389
+ return endpoint;
390
+ }
391
+
392
+ /**
393
+ * Update the preview with the latest settings.
394
+ */
395
+ updatePreview() {
396
+ const self = this;
397
+ const query = this.getQuery();
398
+
399
+ self.setState( {
400
+ loaded: false
401
+ } );
402
+
403
+ apiFetch( { path: query } ).then( terms => {
404
+ self.setState( {
405
+ terms: terms,
406
+ loaded: true,
407
+ query: query
408
+ } );
409
+ } );
410
+ }
411
+
412
+ /**
413
+ * Render.
414
+ */
415
+ render() {
416
+ const { selectedTerms, attribute, addTerm, removeTerm } = this.props;
417
+
418
+ if ( ! this.state.loaded ) {
419
  return ( <ul><li>{ __( 'Loading' ) }</li></ul> );
420
  }
421
 
422
+ if ( 0 === this.state.terms.length ) {
423
  return ( <ul><li>{ __( 'No terms found' ) }</li></ul> );
424
  }
425
 
438
 
439
  return (
440
  <ul>
441
+ { this.state.terms.map( ( term ) => (
442
  <li className="wc-products-list-card__item">
443
  <label className="wc-products-list-card__content">
444
  <input type="checkbox"
454
  </ul>
455
  );
456
  }
457
+ }
assets/js/views/category-select.jsx CHANGED
@@ -1,5 +1,6 @@
1
  const { __ } = wp.i18n;
2
- const { Toolbar, withAPIData, Dropdown, Dashicon } = wp.components;
 
3
 
4
  /**
5
  * When the display mode is 'Product category' search for and select product categories to pull products from.
@@ -124,16 +125,82 @@ const ProductCategoryFilter = ( { filterResults } ) => {
124
  /**
125
  * Fetch and build a tree of product categories.
126
  */
127
- const ProductCategoryList = withAPIData( ( props ) => {
128
- return {
129
- categories: '/wc/v2/products/categories'
 
 
 
 
 
 
 
 
130
  };
131
- } )( ( { categories, filterQuery, selectedCategories, checkboxChange, accordionToggle, openAccordion, firstLoad, setFirstLoad } ) => {
132
- if ( ! categories.data ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  return __( 'Loading' );
134
  }
135
 
136
- if ( 0 === categories.data.length ) {
137
  return __( 'No categories found' );
138
  }
139
 
@@ -247,7 +314,7 @@ const ProductCategoryList = withAPIData( ( props ) => {
247
  );
248
  };
249
 
250
- let categoriesData = categories.data;
251
 
252
  if ( '' !== filterQuery ) {
253
  categoriesData = categoriesData.filter( category => category.slug.includes( filterQuery.toLowerCase() ) );
@@ -259,4 +326,4 @@ const ProductCategoryList = withAPIData( ( props ) => {
259
  </div>
260
  );
261
  }
262
- );
1
  const { __ } = wp.i18n;
2
+ const { Toolbar, Dropdown, Dashicon } = wp.components;
3
+ const { apiFetch } = wp;
4
 
5
  /**
6
  * When the display mode is 'Product category' search for and select product categories to pull products from.
125
  /**
126
  * Fetch and build a tree of product categories.
127
  */
128
+ class ProductCategoryList extends React.Component {
129
+
130
+ /**
131
+ * Constructor
132
+ */
133
+ constructor( props ) {
134
+ super( props );
135
+ this.state = {
136
+ categories: [],
137
+ loaded: false,
138
+ query: '',
139
  };
140
+
141
+ this.updatePreview = this.updatePreview.bind( this );
142
+ this.getQuery = this.getQuery.bind( this );
143
+ }
144
+
145
+ /**
146
+ * Get the preview when component is first loaded.
147
+ */
148
+ componentDidMount() {
149
+ if ( this.getQuery() !== this.state.query ) {
150
+ this.updatePreview();
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Update the preview when component is updated.
156
+ */
157
+ componentDidUpdate() {
158
+ if ( this.getQuery() !== this.state.query && this.state.loaded ) {
159
+ this.updatePreview();
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Get the endpoint for the current state of the component.
165
+ *
166
+ * @return string
167
+ */
168
+ getQuery() {
169
+ const endpoint = '/wc/v2/products/categories';
170
+ return endpoint;
171
+ }
172
+
173
+ /**
174
+ * Update the preview with the latest settings.
175
+ */
176
+ updatePreview() {
177
+ const self = this;
178
+ const query = this.getQuery();
179
+
180
+ self.setState( {
181
+ loaded: false
182
+ } );
183
+
184
+ apiFetch( { path: query } ).then( categories => {
185
+ self.setState( {
186
+ categories: categories,
187
+ loaded: true,
188
+ query: query
189
+ } );
190
+ } );
191
+ }
192
+
193
+ /**
194
+ * Render.
195
+ */
196
+ render() {
197
+ const { filterQuery, selectedCategories, checkboxChange, accordionToggle, openAccordion, firstLoad, setFirstLoad } = this.props;
198
+
199
+ if ( ! this.state.loaded ) {
200
  return __( 'Loading' );
201
  }
202
 
203
+ if ( 0 === this.state.categories.length ) {
204
  return __( 'No categories found' );
205
  }
206
 
314
  );
315
  };
316
 
317
+ let categoriesData = this.state.categories;
318
 
319
  if ( '' !== filterQuery ) {
320
  categoriesData = categoriesData.filter( category => category.slug.includes( filterQuery.toLowerCase() ) );
326
  </div>
327
  );
328
  }
329
+ }
assets/js/views/specific-select.jsx CHANGED
@@ -1,5 +1,6 @@
1
  const { __ } = wp.i18n;
2
- const { Toolbar, withAPIData, Dropdown, Dashicon } = wp.components;
 
3
 
4
  /**
5
  * Product data cache.
@@ -9,8 +10,6 @@ const PRODUCT_DATA = {};
9
 
10
  /**
11
  * When the display mode is 'Specific products' search for and add products to the block.
12
- *
13
- * @todo Add the functionality and everything.
14
  */
15
  export class ProductsSpecificSelect extends React.Component {
16
 
@@ -176,39 +175,108 @@ class ProductsSpecificSearchField extends React.Component {
176
  /**
177
  * Render product search results based on the text entered into the textbox.
178
  */
179
- const ProductSpecificSearchResults = withAPIData( ( props ) => {
180
 
181
- if ( ! props.searchString.length ) {
182
- return {
183
- products: []
184
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  }
 
186
 
187
- return {
188
- products: '/wc/v2/products?per_page=10&search=' + props.searchString,
189
- };
190
- } )( ( { products, addOrRemoveProductCallback, selectedProducts, isDropdownOpenCallback } ) => {
191
- if ( ! products.data ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  return null;
193
  }
194
 
195
- if ( 0 === products.data.length ) {
196
  return <span className="wc-products-list-card__search-no-results"> { __( 'No products found' ) } </span>;
197
  }
198
 
199
  // Populate the cache.
200
- for ( let product of products.data ) {
201
  PRODUCT_DATA[ product.id ] = product;
202
  }
203
 
204
  return <ProductSpecificSearchResultsDropdown
205
- products={ products.data }
206
- addOrRemoveProductCallback={ addOrRemoveProductCallback }
207
- selectedProducts={ selectedProducts }
208
- isDropdownOpenCallback={ isDropdownOpenCallback }
209
  />
 
210
  }
211
- );
212
 
213
  /**
214
  * The dropdown of search results.
@@ -298,36 +366,94 @@ class ProductSpecificSearchResultsDropdownElement extends React.Component {
298
  /**
299
  * List preview of selected products.
300
  */
301
- const ProductSpecificSelectedProducts = withAPIData( ( props ) => {
302
- if ( ! props.productIds.length ) {
303
- return {
304
- products: []
305
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
306
  }
307
 
308
  // Determine which products are not already in the cache and only fetch uncached products.
309
  let uncachedProducts = [];
310
- for( const productId of props.productIds ) {
311
  if ( ! PRODUCT_DATA.hasOwnProperty( productId ) ) {
312
  uncachedProducts.push( productId );
313
  }
314
  }
315
 
316
- return {
317
- products: uncachedProducts.length ? '/wc/v2/products?include=' + uncachedProducts.join( ',' ) : []
318
- };
319
- } )( ( { productIds, products, columns, addOrRemoveProduct } ) => {
 
 
 
 
 
 
 
 
 
 
320
 
321
  // Add new products to cache.
322
- if ( products.data ) {
323
- for ( const product of products.data ) {
324
- PRODUCT_DATA[ product.id ] = product;
325
- }
 
 
 
 
 
 
 
 
326
  }
 
327
 
 
 
 
 
 
328
  const productElements = [];
329
 
330
- for ( const productId of productIds ) {
331
 
332
  // Skip products that aren't in the cache yet or failed to fetch.
333
  if ( ! PRODUCT_DATA.hasOwnProperty( productId ) ) {
@@ -344,7 +470,7 @@ const ProductSpecificSelectedProducts = withAPIData( ( props ) => {
344
  <button
345
  type="button"
346
  id={ 'product-' + productData.id }
347
- onClick={ function() { addOrRemoveProduct( productData.id ) } } >
348
  <Dashicon icon="no-alt" />
349
  </button>
350
  </div>
@@ -353,7 +479,7 @@ const ProductSpecificSelectedProducts = withAPIData( ( props ) => {
353
  }
354
 
355
  return (
356
- <div className={ 'wc-products-list-card__results-wrapper wc-products-list-card__results-wrapper--cols-' + columns }>
357
  <div role="menu" className="wc-products-list-card__results" aria-orientation="vertical" aria-label={ __( 'Selected products' ) }>
358
 
359
  { productElements.length > 0 && <h3>{ __( 'Selected products' ) }</h3> }
@@ -365,4 +491,4 @@ const ProductSpecificSelectedProducts = withAPIData( ( props ) => {
365
  </div>
366
  );
367
  }
368
- );
1
  const { __ } = wp.i18n;
2
+ const { Toolbar, Dropdown, Dashicon } = wp.components;
3
+ const { apiFetch } = wp;
4
 
5
  /**
6
  * Product data cache.
10
 
11
  /**
12
  * When the display mode is 'Specific products' search for and add products to the block.
 
 
13
  */
14
  export class ProductsSpecificSelect extends React.Component {
15
 
175
  /**
176
  * Render product search results based on the text entered into the textbox.
177
  */
178
+ class ProductSpecificSearchResults extends React.Component {
179
 
180
+ /**
181
+ * Constructor.
182
+ */
183
+ constructor( props ) {
184
+ super( props );
185
+ this.state = {
186
+ products: [],
187
+ query: '',
188
+ loaded: false
189
+ };
190
+
191
+ this.updateResults = this.updateResults.bind( this );
192
+ this.getQuery = this.getQuery.bind( this );
193
+ }
194
+
195
+ /**
196
+ * Get the preview when component is first loaded.
197
+ */
198
+ componentDidMount() {
199
+ this.updateResults();
200
+ }
201
+
202
+ /**
203
+ * Update the preview when component is updated.
204
+ */
205
+ componentDidUpdate() {
206
+ if ( this.getQuery() !== this.state.query ) {
207
+ this.updateResults();
208
  }
209
+ }
210
 
211
+ /**
212
+ * Get the endpoint for the current state of the component.
213
+ *
214
+ * @return string
215
+ */
216
+ getQuery() {
217
+ if ( ! this.props.searchString.length ) {
218
+ return '';
219
+ }
220
+
221
+ return '/wc/v2/products?per_page=10&search=' + this.props.searchString;
222
+ }
223
+
224
+ /**
225
+ * Update the search results.
226
+ */
227
+ updateResults() {
228
+ const self = this;
229
+ const query = this.getQuery();
230
+
231
+ self.setState( {
232
+ query: query,
233
+ loaded: false
234
+ } );
235
+
236
+ if ( query.length ) {
237
+ apiFetch( { path: query } ).then( products => {
238
+ // Only update the results if they are for the latest query.
239
+ if ( query === self.getQuery() ) {
240
+ self.setState( {
241
+ products: products,
242
+ loaded: true
243
+ } );
244
+ }
245
+ } );
246
+ } else {
247
+ self.setState( {
248
+ products: [],
249
+ loaded: true
250
+ } );
251
+ }
252
+ }
253
+
254
+ /**
255
+ * Render.
256
+ */
257
+ render() {
258
+ if ( ! this.state.loaded || ! this.state.query.length ) {
259
  return null;
260
  }
261
 
262
+ if ( 0 === this.state.products.length ) {
263
  return <span className="wc-products-list-card__search-no-results"> { __( 'No products found' ) } </span>;
264
  }
265
 
266
  // Populate the cache.
267
+ for ( let product of this.state.products ) {
268
  PRODUCT_DATA[ product.id ] = product;
269
  }
270
 
271
  return <ProductSpecificSearchResultsDropdown
272
+ products={ this.state.products }
273
+ addOrRemoveProductCallback={ this.props.addOrRemoveProductCallback }
274
+ selectedProducts={ this.props.selectedProducts }
275
+ isDropdownOpenCallback={ this.props.isDropdownOpenCallback }
276
  />
277
+
278
  }
279
+ }
280
 
281
  /**
282
  * The dropdown of search results.
366
  /**
367
  * List preview of selected products.
368
  */
369
+ class ProductSpecificSelectedProducts extends React.Component {
370
+
371
+ /**
372
+ * Constructor
373
+ */
374
+ constructor( props ) {
375
+ super( props );
376
+ this.state = {
377
+ query: '',
378
+ loaded: false,
379
+ };
380
+
381
+ this.updateProductCache = this.updateProductCache.bind( this );
382
+ this.getQuery = this.getQuery.bind( this );
383
+
384
+ }
385
+
386
+ /**
387
+ * Get the preview when component is first loaded.
388
+ */
389
+ componentDidMount() {
390
+ this.updateProductCache();
391
+ }
392
+
393
+ /**
394
+ * Update the preview when component is updated.
395
+ */
396
+ componentDidUpdate() {
397
+ if ( this.state.loaded && this.getQuery() !== this.state.query ) {
398
+ this.updateProductCache();
399
+ }
400
+ }
401
+
402
+ /**
403
+ * Get the endpoint for the current state of the component.
404
+ */
405
+ getQuery() {
406
+ if ( ! this.props.productIds.length ) {
407
+ return '';
408
  }
409
 
410
  // Determine which products are not already in the cache and only fetch uncached products.
411
  let uncachedProducts = [];
412
+ for( const productId of this.props.productIds ) {
413
  if ( ! PRODUCT_DATA.hasOwnProperty( productId ) ) {
414
  uncachedProducts.push( productId );
415
  }
416
  }
417
 
418
+ return uncachedProducts.length ? '/wc/v2/products?include=' + uncachedProducts.join( ',' ) : '';
419
+ }
420
+
421
+ /**
422
+ * Add newly fetched products to the cache.
423
+ */
424
+ updateProductCache() {
425
+ const self = this;
426
+ const query = this.getQuery();
427
+
428
+ self.setState( {
429
+ query: query,
430
+ loaded: false,
431
+ } );
432
 
433
  // Add new products to cache.
434
+ if ( query.length ) {
435
+ apiFetch( { path: query } ).then( products => {
436
+ if ( products.length ) {
437
+ for ( const product of products ) {
438
+ PRODUCT_DATA[ product.id ] = product;
439
+ }
440
+ }
441
+
442
+ self.setState( {
443
+ loaded: true,
444
+ } );
445
+ } );
446
  }
447
+ }
448
 
449
+ /**
450
+ * Render.
451
+ */
452
+ render() {
453
+ const self = this;
454
  const productElements = [];
455
 
456
+ for ( const productId of this.props.productIds ) {
457
 
458
  // Skip products that aren't in the cache yet or failed to fetch.
459
  if ( ! PRODUCT_DATA.hasOwnProperty( productId ) ) {
470
  <button
471
  type="button"
472
  id={ 'product-' + productData.id }
473
+ onClick={ function() { self.props.addOrRemoveProduct( productData.id ) } } >
474
  <Dashicon icon="no-alt" />
475
  </button>
476
  </div>
479
  }
480
 
481
  return (
482
+ <div className={ 'wc-products-list-card__results-wrapper wc-products-list-card__results-wrapper--cols-' + this.props.columns }>
483
  <div role="menu" className="wc-products-list-card__results" aria-orientation="vertical" aria-label={ __( 'Selected products' ) }>
484
 
485
  { productElements.length > 0 && <h3>{ __( 'Selected products' ) }</h3> }
491
  </div>
492
  );
493
  }
494
+ }
package-lock.json ADDED
@@ -0,0 +1,8643 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "woocommerceproductsblock",
3
+ "version": "3.3.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "abbrev": {
8
+ "version": "1.1.1",
9
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
10
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
11
+ "dev": true
12
+ },
13
+ "acorn": {
14
+ "version": "5.7.2",
15
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz",
16
+ "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==",
17
+ "dev": true
18
+ },
19
+ "acorn-dynamic-import": {
20
+ "version": "2.0.2",
21
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
22
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
23
+ "dev": true,
24
+ "requires": {
25
+ "acorn": "^4.0.3"
26
+ },
27
+ "dependencies": {
28
+ "acorn": {
29
+ "version": "4.0.13",
30
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
31
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
32
+ "dev": true
33
+ }
34
+ }
35
+ },
36
+ "ajv": {
37
+ "version": "5.5.2",
38
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
39
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
40
+ "dev": true,
41
+ "requires": {
42
+ "co": "^4.6.0",
43
+ "fast-deep-equal": "^1.0.0",
44
+ "fast-json-stable-stringify": "^2.0.0",
45
+ "json-schema-traverse": "^0.3.0"
46
+ }
47
+ },
48
+ "ajv-keywords": {
49
+ "version": "3.2.0",
50
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz",
51
+ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=",
52
+ "dev": true
53
+ },
54
+ "align-text": {
55
+ "version": "0.1.4",
56
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
57
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
58
+ "dev": true,
59
+ "requires": {
60
+ "kind-of": "^3.0.2",
61
+ "longest": "^1.0.1",
62
+ "repeat-string": "^1.5.2"
63
+ }
64
+ },
65
+ "amdefine": {
66
+ "version": "1.0.1",
67
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
68
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
69
+ "dev": true
70
+ },
71
+ "ansi-regex": {
72
+ "version": "2.1.1",
73
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
74
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
75
+ "dev": true
76
+ },
77
+ "ansi-styles": {
78
+ "version": "3.2.1",
79
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
80
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
81
+ "dev": true,
82
+ "requires": {
83
+ "color-convert": "^1.9.0"
84
+ }
85
+ },
86
+ "anymatch": {
87
+ "version": "1.3.2",
88
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
89
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
90
+ "dev": true,
91
+ "optional": true,
92
+ "requires": {
93
+ "micromatch": "^2.1.5",
94
+ "normalize-path": "^2.0.0"
95
+ }
96
+ },
97
+ "aproba": {
98
+ "version": "1.2.0",
99
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
100
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
101
+ "dev": true
102
+ },
103
+ "are-we-there-yet": {
104
+ "version": "1.1.5",
105
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
106
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
107
+ "dev": true,
108
+ "requires": {
109
+ "delegates": "^1.0.0",
110
+ "readable-stream": "^2.0.6"
111
+ }
112
+ },
113
+ "argparse": {
114
+ "version": "1.0.10",
115
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
116
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
117
+ "dev": true,
118
+ "requires": {
119
+ "sprintf-js": "~1.0.2"
120
+ },
121
+ "dependencies": {
122
+ "sprintf-js": {
123
+ "version": "1.0.3",
124
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
125
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
126
+ "dev": true
127
+ }
128
+ }
129
+ },
130
+ "arr-diff": {
131
+ "version": "2.0.0",
132
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
133
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
134
+ "dev": true,
135
+ "requires": {
136
+ "arr-flatten": "^1.0.1"
137
+ }
138
+ },
139
+ "arr-flatten": {
140
+ "version": "1.1.0",
141
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
142
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
143
+ "dev": true
144
+ },
145
+ "arr-union": {
146
+ "version": "3.1.0",
147
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
148
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
149
+ "dev": true
150
+ },
151
+ "array-find-index": {
152
+ "version": "1.0.2",
153
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
154
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
155
+ "dev": true
156
+ },
157
+ "array-union": {
158
+ "version": "1.0.2",
159
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
160
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
161
+ "dev": true,
162
+ "requires": {
163
+ "array-uniq": "^1.0.1"
164
+ }
165
+ },
166
+ "array-uniq": {
167
+ "version": "1.0.3",
168
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
169
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
170
+ "dev": true
171
+ },
172
+ "array-unique": {
173
+ "version": "0.2.1",
174
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
175
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
176
+ "dev": true
177
+ },
178
+ "arrify": {
179
+ "version": "1.0.1",
180
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
181
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
182
+ "dev": true
183
+ },
184
+ "asn1": {
185
+ "version": "0.2.4",
186
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
187
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
188
+ "dev": true,
189
+ "requires": {
190
+ "safer-buffer": "~2.1.0"
191
+ }
192
+ },
193
+ "asn1.js": {
194
+ "version": "4.10.1",
195
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
196
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
197
+ "dev": true,
198
+ "requires": {
199
+ "bn.js": "^4.0.0",
200
+ "inherits": "^2.0.1",
201
+ "minimalistic-assert": "^1.0.0"
202
+ }
203
+ },
204
+ "assert": {
205
+ "version": "1.4.1",
206
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
207
+ "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
208
+ "dev": true,
209
+ "requires": {
210
+ "util": "0.10.3"
211
+ },
212
+ "dependencies": {
213
+ "inherits": {
214
+ "version": "2.0.1",
215
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
216
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
217
+ "dev": true
218
+ },
219
+ "util": {
220
+ "version": "0.10.3",
221
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
222
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
223
+ "dev": true,
224
+ "requires": {
225
+ "inherits": "2.0.1"
226
+ }
227
+ }
228
+ }
229
+ },
230
+ "assert-plus": {
231
+ "version": "1.0.0",
232
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
233
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
234
+ "dev": true
235
+ },
236
+ "assign-symbols": {
237
+ "version": "1.0.0",
238
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
239
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
240
+ "dev": true
241
+ },
242
+ "async": {
243
+ "version": "1.5.2",
244
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
245
+ "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
246
+ "dev": true
247
+ },
248
+ "async-each": {
249
+ "version": "1.0.1",
250
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
251
+ "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=",
252
+ "dev": true
253
+ },
254
+ "async-foreach": {
255
+ "version": "0.1.3",
256
+ "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
257
+ "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
258
+ "dev": true
259
+ },
260
+ "asynckit": {
261
+ "version": "0.4.0",
262
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
263
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
264
+ "dev": true
265
+ },
266
+ "atob": {
267
+ "version": "2.1.2",
268
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
269
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
270
+ "dev": true
271
+ },
272
+ "autoprefixer": {
273
+ "version": "7.1.6",
274
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz",
275
+ "integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==",
276
+ "dev": true,
277
+ "requires": {
278
+ "browserslist": "^2.5.1",
279
+ "caniuse-lite": "^1.0.30000748",
280
+ "normalize-range": "^0.1.2",
281
+ "num2fraction": "^1.2.2",
282
+ "postcss": "^6.0.13",
283
+ "postcss-value-parser": "^3.2.3"
284
+ }
285
+ },
286
+ "aws-sign2": {
287
+ "version": "0.7.0",
288
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
289
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
290
+ "dev": true
291
+ },
292
+ "aws4": {
293
+ "version": "1.8.0",
294
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
295
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
296
+ "dev": true
297
+ },
298
+ "babel": {
299
+ "version": "6.23.0",
300
+ "resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz",
301
+ "integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ=",
302
+ "dev": true
303
+ },
304
+ "babel-cli": {
305
+ "version": "6.26.0",
306
+ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
307
+ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
308
+ "dev": true,
309
+ "requires": {
310
+ "babel-core": "^6.26.0",
311
+ "babel-polyfill": "^6.26.0",
312
+ "babel-register": "^6.26.0",
313
+ "babel-runtime": "^6.26.0",
314
+ "chokidar": "^1.6.1",
315
+ "commander": "^2.11.0",
316
+ "convert-source-map": "^1.5.0",
317
+ "fs-readdir-recursive": "^1.0.0",
318
+ "glob": "^7.1.2",
319
+ "lodash": "^4.17.4",
320
+ "output-file-sync": "^1.1.2",
321
+ "path-is-absolute": "^1.0.1",
322
+ "slash": "^1.0.0",
323
+ "source-map": "^0.5.6",
324
+ "v8flags": "^2.1.1"
325
+ },
326
+ "dependencies": {
327
+ "babel-core": {
328
+ "version": "6.26.3",
329
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
330
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
331
+ "dev": true,
332
+ "requires": {
333
+ "babel-code-frame": "^6.26.0",
334
+ "babel-generator": "^6.26.0",
335
+ "babel-helpers": "^6.24.1",
336
+ "babel-messages": "^6.23.0",
337
+ "babel-register": "^6.26.0",
338
+ "babel-runtime": "^6.26.0",
339
+ "babel-template": "^6.26.0",
340
+ "babel-traverse": "^6.26.0",
341
+ "babel-types": "^6.26.0",
342
+ "babylon": "^6.18.0",
343
+ "convert-source-map": "^1.5.1",
344
+ "debug": "^2.6.9",
345
+ "json5": "^0.5.1",
346
+ "lodash": "^4.17.4",
347
+ "minimatch": "^3.0.4",
348
+ "path-is-absolute": "^1.0.1",
349
+ "private": "^0.1.8",
350
+ "slash": "^1.0.0",
351
+ "source-map": "^0.5.7"
352
+ }
353
+ },
354
+ "source-map": {
355
+ "version": "0.5.7",
356
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
357
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
358
+ "dev": true
359
+ }
360
+ }
361
+ },
362
+ "babel-code-frame": {
363
+ "version": "6.26.0",
364
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
365
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
366
+ "dev": true,
367
+ "requires": {
368
+ "chalk": "^1.1.3",
369
+ "esutils": "^2.0.2",
370
+ "js-tokens": "^3.0.2"
371
+ },
372
+ "dependencies": {
373
+ "ansi-styles": {
374
+ "version": "2.2.1",
375
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
376
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
377
+ "dev": true
378
+ },
379
+ "chalk": {
380
+ "version": "1.1.3",
381
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
382
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
383
+ "dev": true,
384
+ "requires": {
385
+ "ansi-styles": "^2.2.1",
386
+ "escape-string-regexp": "^1.0.2",
387
+ "has-ansi": "^2.0.0",
388
+ "strip-ansi": "^3.0.0",
389
+ "supports-color": "^2.0.0"
390
+ }
391
+ },
392
+ "supports-color": {
393
+ "version": "2.0.0",
394
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
395
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
396
+ "dev": true
397
+ }
398
+ }
399
+ },
400
+ "babel-core": {
401
+ "version": "6.25.0",
402
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz",
403
+ "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=",
404
+ "dev": true,
405
+ "requires": {
406
+ "babel-code-frame": "^6.22.0",
407
+ "babel-generator": "^6.25.0",
408
+ "babel-helpers": "^6.24.1",
409
+ "babel-messages": "^6.23.0",
410
+ "babel-register": "^6.24.1",
411
+ "babel-runtime": "^6.22.0",
412
+ "babel-template": "^6.25.0",
413
+ "babel-traverse": "^6.25.0",
414
+ "babel-types": "^6.25.0",
415
+ "babylon": "^6.17.2",
416
+ "convert-source-map": "^1.1.0",
417
+ "debug": "^2.1.1",
418
+ "json5": "^0.5.0",
419
+ "lodash": "^4.2.0",
420
+ "minimatch": "^3.0.2",
421
+ "path-is-absolute": "^1.0.0",
422
+ "private": "^0.1.6",
423
+ "slash": "^1.0.0",
424
+ "source-map": "^0.5.0"
425
+ },
426
+ "dependencies": {
427
+ "source-map": {
428
+ "version": "0.5.7",
429
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
430
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
431
+ "dev": true
432
+ }
433
+ }
434
+ },
435
+ "babel-eslint": {
436
+ "version": "7.2.3",
437
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
438
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
439
+ "dev": true,
440
+ "requires": {
441
+ "babel-code-frame": "^6.22.0",
442
+ "babel-traverse": "^6.23.1",
443
+ "babel-types": "^6.23.0",
444
+ "babylon": "^6.17.0"
445
+ }
446
+ },
447
+ "babel-generator": {
448
+ "version": "6.26.1",
449
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
450
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
451
+ "dev": true,
452
+ "requires": {
453
+ "babel-messages": "^6.23.0",
454
+ "babel-runtime": "^6.26.0",
455
+ "babel-types": "^6.26.0",
456
+ "detect-indent": "^4.0.0",
457
+ "jsesc": "^1.3.0",
458
+ "lodash": "^4.17.4",
459
+ "source-map": "^0.5.7",
460
+ "trim-right": "^1.0.1"
461
+ },
462
+ "dependencies": {
463
+ "source-map": {
464
+ "version": "0.5.7",
465
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
466
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
467
+ "dev": true
468
+ }
469
+ }
470
+ },
471
+ "babel-helper-bindify-decorators": {
472
+ "version": "6.24.1",
473
+ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
474
+ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
475
+ "dev": true,
476
+ "requires": {
477
+ "babel-runtime": "^6.22.0",
478
+ "babel-traverse": "^6.24.1",
479
+ "babel-types": "^6.24.1"
480
+ }
481
+ },
482
+ "babel-helper-builder-binary-assignment-operator-visitor": {
483
+ "version": "6.24.1",
484
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
485
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
486
+ "dev": true,
487
+ "requires": {
488
+ "babel-helper-explode-assignable-expression": "^6.24.1",
489
+ "babel-runtime": "^6.22.0",
490
+ "babel-types": "^6.24.1"
491
+ }
492
+ },
493
+ "babel-helper-builder-react-jsx": {
494
+ "version": "6.26.0",
495
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
496
+ "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
497
+ "dev": true,
498
+ "requires": {
499
+ "babel-runtime": "^6.26.0",
500
+ "babel-types": "^6.26.0",
501
+ "esutils": "^2.0.2"
502
+ }
503
+ },
504
+ "babel-helper-call-delegate": {
505
+ "version": "6.24.1",
506
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
507
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
508
+ "dev": true,
509
+ "requires": {
510
+ "babel-helper-hoist-variables": "^6.24.1",
511
+ "babel-runtime": "^6.22.0",
512
+ "babel-traverse": "^6.24.1",
513
+ "babel-types": "^6.24.1"
514
+ }
515
+ },
516
+ "babel-helper-define-map": {
517
+ "version": "6.26.0",
518
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
519
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
520
+ "dev": true,
521
+ "requires": {
522
+ "babel-helper-function-name": "^6.24.1",
523
+ "babel-runtime": "^6.26.0",
524
+ "babel-types": "^6.26.0",
525
+ "lodash": "^4.17.4"
526
+ }
527
+ },
528
+ "babel-helper-explode-assignable-expression": {
529
+ "version": "6.24.1",
530
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
531
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
532
+ "dev": true,
533
+ "requires": {
534
+ "babel-runtime": "^6.22.0",
535
+ "babel-traverse": "^6.24.1",
536
+ "babel-types": "^6.24.1"
537
+ }
538
+ },
539
+ "babel-helper-explode-class": {
540
+ "version": "6.24.1",
541
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
542
+ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
543
+ "dev": true,
544
+ "requires": {
545
+ "babel-helper-bindify-decorators": "^6.24.1",
546
+ "babel-runtime": "^6.22.0",
547
+ "babel-traverse": "^6.24.1",
548
+ "babel-types": "^6.24.1"
549
+ }
550
+ },
551
+ "babel-helper-function-name": {
552
+ "version": "6.24.1",
553
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
554
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
555
+ "dev": true,
556
+ "requires": {
557
+ "babel-helper-get-function-arity": "^6.24.1",
558
+ "babel-runtime": "^6.22.0",
559
+ "babel-template": "^6.24.1",
560
+ "babel-traverse": "^6.24.1",
561
+ "babel-types": "^6.24.1"
562
+ }
563
+ },
564
+ "babel-helper-get-function-arity": {
565
+ "version": "6.24.1",
566
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
567
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
568
+ "dev": true,
569
+ "requires": {
570
+ "babel-runtime": "^6.22.0",
571
+ "babel-types": "^6.24.1"
572
+ }
573
+ },
574
+ "babel-helper-hoist-variables": {
575
+ "version": "6.24.1",
576
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
577
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
578
+ "dev": true,
579
+ "requires": {
580
+ "babel-runtime": "^6.22.0",
581
+ "babel-types": "^6.24.1"
582
+ }
583
+ },
584
+ "babel-helper-optimise-call-expression": {
585
+ "version": "6.24.1",
586
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
587
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
588
+ "dev": true,
589
+ "requires": {
590
+ "babel-runtime": "^6.22.0",
591
+ "babel-types": "^6.24.1"
592
+ }
593
+ },
594
+ "babel-helper-regex": {
595
+ "version": "6.26.0",
596
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
597
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
598
+ "dev": true,
599
+ "requires": {
600
+ "babel-runtime": "^6.26.0",
601
+ "babel-types": "^6.26.0",
602
+ "lodash": "^4.17.4"
603
+ }
604
+ },
605
+ "babel-helper-remap-async-to-generator": {
606
+ "version": "6.24.1",
607
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
608
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
609
+ "dev": true,
610
+ "requires": {
611
+ "babel-helper-function-name": "^6.24.1",
612
+ "babel-runtime": "^6.22.0",
613
+ "babel-template": "^6.24.1",
614
+ "babel-traverse": "^6.24.1",
615
+ "babel-types": "^6.24.1"
616
+ }
617
+ },
618
+ "babel-helper-replace-supers": {
619
+ "version": "6.24.1",
620
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
621
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
622
+ "dev": true,
623
+ "requires": {
624
+ "babel-helper-optimise-call-expression": "^6.24.1",
625
+ "babel-messages": "^6.23.0",
626
+ "babel-runtime": "^6.22.0",
627
+ "babel-template": "^6.24.1",
628
+ "babel-traverse": "^6.24.1",
629
+ "babel-types": "^6.24.1"
630
+ }
631
+ },
632
+ "babel-helpers": {
633
+ "version": "6.24.1",
634
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
635
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
636
+ "dev": true,
637
+ "requires": {
638
+ "babel-runtime": "^6.22.0",
639
+ "babel-template": "^6.24.1"
640
+ }
641
+ },
642
+ "babel-loader": {
643
+ "version": "7.1.5",
644
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
645
+ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
646
+ "dev": true,
647
+ "requires": {
648
+ "find-cache-dir": "^1.0.0",
649
+ "loader-utils": "^1.0.2",
650
+ "mkdirp": "^0.5.1"
651
+ }
652
+ },
653
+ "babel-messages": {
654
+ "version": "6.23.0",
655
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
656
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
657
+ "dev": true,
658
+ "requires": {
659
+ "babel-runtime": "^6.22.0"
660
+ }
661
+ },
662
+ "babel-plugin-add-module-exports": {
663
+ "version": "0.2.1",
664
+ "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz",
665
+ "integrity": "sha1-mumh9KjcZ/DN7E9K7aHkOl/2XiU=",
666
+ "dev": true
667
+ },
668
+ "babel-plugin-check-es2015-constants": {
669
+ "version": "6.22.0",
670
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
671
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
672
+ "dev": true,
673
+ "requires": {
674
+ "babel-runtime": "^6.22.0"
675
+ }
676
+ },
677
+ "babel-plugin-syntax-async-functions": {
678
+ "version": "6.13.0",
679
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
680
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
681
+ "dev": true
682
+ },
683
+ "babel-plugin-syntax-async-generators": {
684
+ "version": "6.13.0",
685
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
686
+ "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
687
+ "dev": true
688
+ },
689
+ "babel-plugin-syntax-class-properties": {
690
+ "version": "6.13.0",
691
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
692
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
693
+ "dev": true
694
+ },
695
+ "babel-plugin-syntax-decorators": {
696
+ "version": "6.13.0",
697
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
698
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
699
+ "dev": true
700
+ },
701
+ "babel-plugin-syntax-dynamic-import": {
702
+ "version": "6.18.0",
703
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
704
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
705
+ "dev": true
706
+ },
707
+ "babel-plugin-syntax-exponentiation-operator": {
708
+ "version": "6.13.0",
709
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
710
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
711
+ "dev": true
712
+ },
713
+ "babel-plugin-syntax-jsx": {
714
+ "version": "6.18.0",
715
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz",
716
+ "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=",
717
+ "dev": true
718
+ },
719
+ "babel-plugin-syntax-object-rest-spread": {
720
+ "version": "6.13.0",
721
+ "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
722
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
723
+ "dev": true
724
+ },
725
+ "babel-plugin-syntax-trailing-function-commas": {
726
+ "version": "6.22.0",
727
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
728
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
729
+ "dev": true
730
+ },
731
+ "babel-plugin-transform-async-generator-functions": {
732
+ "version": "6.24.1",
733
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
734
+ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
735
+ "dev": true,
736
+ "requires": {
737
+ "babel-helper-remap-async-to-generator": "^6.24.1",
738
+ "babel-plugin-syntax-async-generators": "^6.5.0",
739
+ "babel-runtime": "^6.22.0"
740
+ }
741
+ },
742
+ "babel-plugin-transform-async-to-generator": {
743
+ "version": "6.24.1",
744
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
745
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
746
+ "dev": true,
747
+ "requires": {
748
+ "babel-helper-remap-async-to-generator": "^6.24.1",
749
+ "babel-plugin-syntax-async-functions": "^6.8.0",
750
+ "babel-runtime": "^6.22.0"
751
+ }
752
+ },
753
+ "babel-plugin-transform-class-properties": {
754
+ "version": "6.24.1",
755
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
756
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
757
+ "dev": true,
758
+ "requires": {
759
+ "babel-helper-function-name": "^6.24.1",
760
+ "babel-plugin-syntax-class-properties": "^6.8.0",
761
+ "babel-runtime": "^6.22.0",
762
+ "babel-template": "^6.24.1"
763
+ }
764
+ },
765
+ "babel-plugin-transform-decorators": {
766
+ "version": "6.24.1",
767
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
768
+ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
769
+ "dev": true,
770
+ "requires": {
771
+ "babel-helper-explode-class": "^6.24.1",
772
+ "babel-plugin-syntax-decorators": "^6.13.0",
773
+ "babel-runtime": "^6.22.0",
774
+ "babel-template": "^6.24.1",
775
+ "babel-types": "^6.24.1"
776
+ }
777
+ },
778
+ "babel-plugin-transform-es2015-arrow-functions": {
779
+ "version": "6.22.0",
780
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
781
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
782
+ "dev": true,
783
+ "requires": {
784
+ "babel-runtime": "^6.22.0"
785
+ }
786
+ },
787
+ "babel-plugin-transform-es2015-block-scoped-functions": {
788
+ "version": "6.22.0",
789
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
790
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
791
+ "dev": true,
792
+ "requires": {
793
+ "babel-runtime": "^6.22.0"
794
+ }
795
+ },
796
+ "babel-plugin-transform-es2015-block-scoping": {
797
+ "version": "6.26.0",
798
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
799
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
800
+ "dev": true,
801
+ "requires": {
802
+ "babel-runtime": "^6.26.0",
803
+ "babel-template": "^6.26.0",
804
+ "babel-traverse": "^6.26.0",
805
+ "babel-types": "^6.26.0",
806
+ "lodash": "^4.17.4"
807
+ }
808
+ },
809
+ "babel-plugin-transform-es2015-classes": {
810
+ "version": "6.24.1",
811
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
812
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
813
+ "dev": true,
814
+ "requires": {
815
+ "babel-helper-define-map": "^6.24.1",
816
+ "babel-helper-function-name": "^6.24.1",
817
+ "babel-helper-optimise-call-expression": "^6.24.1",
818
+ "babel-helper-replace-supers": "^6.24.1",
819
+ "babel-messages": "^6.23.0",
820
+ "babel-runtime": "^6.22.0",
821
+ "babel-template": "^6.24.1",
822
+ "babel-traverse": "^6.24.1",
823
+ "babel-types": "^6.24.1"
824
+ }
825
+ },
826
+ "babel-plugin-transform-es2015-computed-properties": {
827
+ "version": "6.24.1",
828
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
829
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
830
+ "dev": true,
831
+ "requires": {
832
+ "babel-runtime": "^6.22.0",
833
+ "babel-template": "^6.24.1"
834
+ }
835
+ },
836
+ "babel-plugin-transform-es2015-destructuring": {
837
+ "version": "6.23.0",
838
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
839
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
840
+ "dev": true,
841
+ "requires": {
842
+ "babel-runtime": "^6.22.0"
843
+ }
844
+ },
845
+ "babel-plugin-transform-es2015-duplicate-keys": {
846
+ "version": "6.24.1",
847
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
848
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
849
+ "dev": true,
850
+ "requires": {
851
+ "babel-runtime": "^6.22.0",
852
+ "babel-types": "^6.24.1"
853
+ }
854
+ },
855
+ "babel-plugin-transform-es2015-for-of": {
856
+ "version": "6.23.0",
857
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
858
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
859
+ "dev": true,
860
+ "requires": {
861
+ "babel-runtime": "^6.22.0"
862
+ }
863
+ },
864
+ "babel-plugin-transform-es2015-function-name": {
865
+ "version": "6.24.1",
866
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
867
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
868
+ "dev": true,
869
+ "requires": {
870
+ "babel-helper-function-name": "^6.24.1",
871
+ "babel-runtime": "^6.22.0",
872
+ "babel-types": "^6.24.1"
873
+ }
874
+ },
875
+ "babel-plugin-transform-es2015-literals": {
876
+ "version": "6.22.0",
877
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
878
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
879
+ "dev": true,
880
+ "requires": {
881
+ "babel-runtime": "^6.22.0"
882
+ }
883
+ },
884
+ "babel-plugin-transform-es2015-modules-amd": {
885
+ "version": "6.24.1",
886
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
887
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
888
+ "dev": true,
889
+ "requires": {
890
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
891
+ "babel-runtime": "^6.22.0",
892
+ "babel-template": "^6.24.1"
893
+ }
894
+ },
895
+ "babel-plugin-transform-es2015-modules-commonjs": {
896
+ "version": "6.26.2",
897
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
898
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
899
+ "dev": true,
900
+ "requires": {
901
+ "babel-plugin-transform-strict-mode": "^6.24.1",
902
+ "babel-runtime": "^6.26.0",
903
+ "babel-template": "^6.26.0",
904
+ "babel-types": "^6.26.0"
905
+ }
906
+ },
907
+ "babel-plugin-transform-es2015-modules-systemjs": {
908
+ "version": "6.24.1",
909
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
910
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
911
+ "dev": true,
912
+ "requires": {
913
+ "babel-helper-hoist-variables": "^6.24.1",
914
+ "babel-runtime": "^6.22.0",
915
+ "babel-template": "^6.24.1"
916
+ }
917
+ },
918
+ "babel-plugin-transform-es2015-modules-umd": {
919
+ "version": "6.24.1",
920
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
921
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
922
+ "dev": true,
923
+ "requires": {
924
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
925
+ "babel-runtime": "^6.22.0",
926
+ "babel-template": "^6.24.1"
927
+ }
928
+ },
929
+ "babel-plugin-transform-es2015-object-super": {
930
+ "version": "6.24.1",
931
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
932
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
933
+ "dev": true,
934
+ "requires": {
935
+ "babel-helper-replace-supers": "^6.24.1",
936
+ "babel-runtime": "^6.22.0"
937
+ }
938
+ },
939
+ "babel-plugin-transform-es2015-parameters": {
940
+ "version": "6.24.1",
941
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
942
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
943
+ "dev": true,
944
+ "requires": {
945
+ "babel-helper-call-delegate": "^6.24.1",
946
+ "babel-helper-get-function-arity": "^6.24.1",
947
+ "babel-runtime": "^6.22.0",
948
+ "babel-template": "^6.24.1",
949
+ "babel-traverse": "^6.24.1",
950
+ "babel-types": "^6.24.1"
951
+ }
952
+ },
953
+ "babel-plugin-transform-es2015-shorthand-properties": {
954
+ "version": "6.24.1",
955
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
956
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
957
+ "dev": true,
958
+ "requires": {
959
+ "babel-runtime": "^6.22.0",
960
+ "babel-types": "^6.24.1"
961
+ }
962
+ },
963
+ "babel-plugin-transform-es2015-spread": {
964
+ "version": "6.22.0",
965
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
966
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
967
+ "dev": true,
968
+ "requires": {
969
+ "babel-runtime": "^6.22.0"
970
+ }
971
+ },
972
+ "babel-plugin-transform-es2015-sticky-regex": {
973
+ "version": "6.24.1",
974
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
975
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
976
+ "dev": true,
977
+ "requires": {
978
+ "babel-helper-regex": "^6.24.1",
979
+ "babel-runtime": "^6.22.0",
980
+ "babel-types": "^6.24.1"
981
+ }
982
+ },
983
+ "babel-plugin-transform-es2015-template-literals": {
984
+ "version": "6.22.0",
985
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
986
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
987
+ "dev": true,
988
+ "requires": {
989
+ "babel-runtime": "^6.22.0"
990
+ }
991
+ },
992
+ "babel-plugin-transform-es2015-typeof-symbol": {
993
+ "version": "6.23.0",
994
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
995
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
996
+ "dev": true,
997
+ "requires": {
998
+ "babel-runtime": "^6.22.0"
999
+ }
1000
+ },
1001
+ "babel-plugin-transform-es2015-unicode-regex": {
1002
+ "version": "6.24.1",
1003
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
1004
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
1005
+ "dev": true,
1006
+ "requires": {
1007
+ "babel-helper-regex": "^6.24.1",
1008
+ "babel-runtime": "^6.22.0",
1009
+ "regexpu-core": "^2.0.0"
1010
+ }
1011
+ },
1012
+ "babel-plugin-transform-exponentiation-operator": {
1013
+ "version": "6.24.1",
1014
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
1015
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
1016
+ "dev": true,
1017
+ "requires": {
1018
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
1019
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
1020
+ "babel-runtime": "^6.22.0"
1021
+ }
1022
+ },
1023
+ "babel-plugin-transform-object-rest-spread": {
1024
+ "version": "6.26.0",
1025
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
1026
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
1027
+ "dev": true,
1028
+ "requires": {
1029
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
1030
+ "babel-runtime": "^6.26.0"
1031
+ }
1032
+ },
1033
+ "babel-plugin-transform-react-jsx": {
1034
+ "version": "6.24.1",
1035
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
1036
+ "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
1037
+ "dev": true,
1038
+ "requires": {
1039
+ "babel-helper-builder-react-jsx": "^6.24.1",
1040
+ "babel-plugin-syntax-jsx": "^6.8.0",
1041
+ "babel-runtime": "^6.22.0"
1042
+ }
1043
+ },
1044
+ "babel-plugin-transform-regenerator": {
1045
+ "version": "6.26.0",
1046
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
1047
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
1048
+ "dev": true,
1049
+ "requires": {
1050
+ "regenerator-transform": "^0.10.0"
1051
+ }
1052
+ },
1053
+ "babel-plugin-transform-strict-mode": {
1054
+ "version": "6.24.1",
1055
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
1056
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
1057
+ "dev": true,
1058
+ "requires": {
1059
+ "babel-runtime": "^6.22.0",
1060
+ "babel-types": "^6.24.1"
1061
+ }
1062
+ },
1063
+ "babel-polyfill": {
1064
+ "version": "6.26.0",
1065
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
1066
+ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
1067
+ "dev": true,
1068
+ "requires": {
1069
+ "babel-runtime": "^6.26.0",
1070
+ "core-js": "^2.5.0",
1071
+ "regenerator-runtime": "^0.10.5"
1072
+ },
1073
+ "dependencies": {
1074
+ "regenerator-runtime": {
1075
+ "version": "0.10.5",
1076
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
1077
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=",
1078
+ "dev": true
1079
+ }
1080
+ }
1081
+ },
1082
+ "babel-preset-env": {
1083
+ "version": "1.7.0",
1084
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
1085
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
1086
+ "dev": true,
1087
+ "requires": {
1088
+ "babel-plugin-check-es2015-constants": "^6.22.0",
1089
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
1090
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
1091
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
1092
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
1093
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
1094
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
1095
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
1096
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
1097
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
1098
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
1099
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
1100
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
1101
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
1102
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
1103
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
1104
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
1105
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
1106
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
1107
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
1108
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
1109
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
1110
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
1111
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
1112
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
1113
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
1114
+ "babel-plugin-transform-regenerator": "^6.22.0",
1115
+ "browserslist": "^3.2.6",
1116
+ "invariant": "^2.2.2",
1117
+ "semver": "^5.3.0"
1118
+ },
1119
+ "dependencies": {
1120
+ "browserslist": {
1121
+ "version": "3.2.8",
1122
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
1123
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
1124
+ "dev": true,
1125
+ "requires": {
1126
+ "caniuse-lite": "^1.0.30000844",
1127
+ "electron-to-chromium": "^1.3.47"
1128
+ }
1129
+ }
1130
+ }
1131
+ },
1132
+ "babel-preset-es2015": {
1133
+ "version": "6.24.1",
1134
+ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
1135
+ "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
1136
+ "dev": true,
1137
+ "requires": {
1138
+ "babel-plugin-check-es2015-constants": "^6.22.0",
1139
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
1140
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
1141
+ "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
1142
+ "babel-plugin-transform-es2015-classes": "^6.24.1",
1143
+ "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
1144
+ "babel-plugin-transform-es2015-destructuring": "^6.22.0",
1145
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1",
1146
+ "babel-plugin-transform-es2015-for-of": "^6.22.0",
1147
+ "babel-plugin-transform-es2015-function-name": "^6.24.1",
1148
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
1149
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
1150
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
1151
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
1152
+ "babel-plugin-transform-es2015-modules-umd": "^6.24.1",
1153
+ "babel-plugin-transform-es2015-object-super": "^6.24.1",
1154
+ "babel-plugin-transform-es2015-parameters": "^6.24.1",
1155
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
1156
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
1157
+ "babel-plugin-transform-es2015-sticky-regex": "^6.24.1",
1158
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
1159
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",
1160
+ "babel-plugin-transform-es2015-unicode-regex": "^6.24.1",
1161
+ "babel-plugin-transform-regenerator": "^6.24.1"
1162
+ }
1163
+ },
1164
+ "babel-preset-stage-2": {
1165
+ "version": "6.24.1",
1166
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
1167
+ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
1168
+ "dev": true,
1169
+ "requires": {
1170
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
1171
+ "babel-plugin-transform-class-properties": "^6.24.1",
1172
+ "babel-plugin-transform-decorators": "^6.24.1",
1173
+ "babel-preset-stage-3": "^6.24.1"
1174
+ }
1175
+ },
1176
+ "babel-preset-stage-3": {
1177
+ "version": "6.24.1",
1178
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
1179
+ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
1180
+ "dev": true,
1181
+ "requires": {
1182
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
1183
+ "babel-plugin-transform-async-generator-functions": "^6.24.1",
1184
+ "babel-plugin-transform-async-to-generator": "^6.24.1",
1185
+ "babel-plugin-transform-exponentiation-operator": "^6.24.1",
1186
+ "babel-plugin-transform-object-rest-spread": "^6.22.0"
1187
+ }
1188
+ },
1189
+ "babel-register": {
1190
+ "version": "6.26.0",
1191
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
1192
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
1193
+ "dev": true,
1194
+ "requires": {
1195
+ "babel-core": "^6.26.0",
1196
+ "babel-runtime": "^6.26.0",
1197
+ "core-js": "^2.5.0",
1198
+ "home-or-tmp": "^2.0.0",
1199
+ "lodash": "^4.17.4",
1200
+ "mkdirp": "^0.5.1",
1201
+ "source-map-support": "^0.4.15"
1202
+ },
1203
+ "dependencies": {
1204
+ "babel-core": {
1205
+ "version": "6.26.3",
1206
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
1207
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
1208
+ "dev": true,
1209
+ "requires": {
1210
+ "babel-code-frame": "^6.26.0",
1211
+ "babel-generator": "^6.26.0",
1212
+ "babel-helpers": "^6.24.1",
1213
+ "babel-messages": "^6.23.0",
1214
+ "babel-register": "^6.26.0",
1215
+ "babel-runtime": "^6.26.0",
1216
+ "babel-template": "^6.26.0",
1217
+ "babel-traverse": "^6.26.0",
1218
+ "babel-types": "^6.26.0",
1219
+ "babylon": "^6.18.0",
1220
+ "convert-source-map": "^1.5.1",
1221
+ "debug": "^2.6.9",
1222
+ "json5": "^0.5.1",
1223
+ "lodash": "^4.17.4",
1224
+ "minimatch": "^3.0.4",
1225
+ "path-is-absolute": "^1.0.1",
1226
+ "private": "^0.1.8",
1227
+ "slash": "^1.0.0",
1228
+ "source-map": "^0.5.7"
1229
+ }
1230
+ },
1231
+ "source-map": {
1232
+ "version": "0.5.7",
1233
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1234
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1235
+ "dev": true
1236
+ }
1237
+ }
1238
+ },
1239
+ "babel-runtime": {
1240
+ "version": "6.26.0",
1241
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
1242
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
1243
+ "dev": true,
1244
+ "requires": {
1245
+ "core-js": "^2.4.0",
1246
+ "regenerator-runtime": "^0.11.0"
1247
+ }
1248
+ },
1249
+ "babel-template": {
1250
+ "version": "6.26.0",
1251
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
1252
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
1253
+ "dev": true,
1254
+ "requires": {
1255
+ "babel-runtime": "^6.26.0",
1256
+ "babel-traverse": "^6.26.0",
1257
+ "babel-types": "^6.26.0",
1258
+ "babylon": "^6.18.0",
1259
+ "lodash": "^4.17.4"
1260
+ }
1261
+ },
1262
+ "babel-traverse": {
1263
+ "version": "6.26.0",
1264
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
1265
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
1266
+ "dev": true,
1267
+ "requires": {
1268
+ "babel-code-frame": "^6.26.0",
1269
+ "babel-messages": "^6.23.0",
1270
+ "babel-runtime": "^6.26.0",
1271
+ "babel-types": "^6.26.0",
1272
+ "babylon": "^6.18.0",
1273
+ "debug": "^2.6.8",
1274
+ "globals": "^9.18.0",
1275
+ "invariant": "^2.2.2",
1276
+ "lodash": "^4.17.4"
1277
+ }
1278
+ },
1279
+ "babel-types": {
1280
+ "version": "6.26.0",
1281
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
1282
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
1283
+ "dev": true,
1284
+ "requires": {
1285
+ "babel-runtime": "^6.26.0",
1286
+ "esutils": "^2.0.2",
1287
+ "lodash": "^4.17.4",
1288
+ "to-fast-properties": "^1.0.3"
1289
+ }
1290
+ },
1291
+ "babylon": {
1292
+ "version": "6.18.0",
1293
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
1294
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
1295
+ "dev": true
1296
+ },
1297
+ "balanced-match": {
1298
+ "version": "1.0.0",
1299
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1300
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1301
+ "dev": true
1302
+ },
1303
+ "base": {
1304
+ "version": "0.11.2",
1305
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1306
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1307
+ "dev": true,
1308
+ "requires": {
1309
+ "cache-base": "^1.0.1",
1310
+ "class-utils": "^0.3.5",
1311
+ "component-emitter": "^1.2.1",
1312
+ "define-property": "^1.0.0",
1313
+ "isobject": "^3.0.1",
1314
+ "mixin-deep": "^1.2.0",
1315
+ "pascalcase": "^0.1.1"
1316
+ },
1317
+ "dependencies": {
1318
+ "define-property": {
1319
+ "version": "1.0.0",
1320
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1321
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1322
+ "dev": true,
1323
+ "requires": {
1324
+ "is-descriptor": "^1.0.0"
1325
+ }
1326
+ },
1327
+ "is-accessor-descriptor": {
1328
+ "version": "1.0.0",
1329
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1330
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1331
+ "dev": true,
1332
+ "requires": {
1333
+ "kind-of": "^6.0.0"
1334
+ }
1335
+ },
1336
+ "is-data-descriptor": {
1337
+ "version": "1.0.0",
1338
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1339
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1340
+ "dev": true,
1341
+ "requires": {
1342
+ "kind-of": "^6.0.0"
1343
+ }
1344
+ },
1345
+ "is-descriptor": {
1346
+ "version": "1.0.2",
1347
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1348
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1349
+ "dev": true,
1350
+ "requires": {
1351
+ "is-accessor-descriptor": "^1.0.0",
1352
+ "is-data-descriptor": "^1.0.0",
1353
+ "kind-of": "^6.0.2"
1354
+ }
1355
+ },
1356
+ "isobject": {
1357
+ "version": "3.0.1",
1358
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1359
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1360
+ "dev": true
1361
+ },
1362
+ "kind-of": {
1363
+ "version": "6.0.2",
1364
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
1365
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
1366
+ "dev": true
1367
+ }
1368
+ }
1369
+ },
1370
+ "base64-js": {
1371
+ "version": "1.3.0",
1372
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
1373
+ "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
1374
+ "dev": true
1375
+ },
1376
+ "bcrypt-pbkdf": {
1377
+ "version": "1.0.2",
1378
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1379
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1380
+ "dev": true,
1381
+ "optional": true,
1382
+ "requires": {
1383
+ "tweetnacl": "^0.14.3"
1384
+ }
1385
+ },
1386
+ "big.js": {
1387
+ "version": "3.2.0",
1388
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
1389
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
1390
+ "dev": true
1391
+ },
1392
+ "binary-extensions": {
1393
+ "version": "1.11.0",
1394
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",
1395
+ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=",
1396
+ "dev": true
1397
+ },
1398
+ "block-stream": {
1399
+ "version": "0.0.9",
1400
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
1401
+ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
1402
+ "dev": true,
1403
+ "requires": {
1404
+ "inherits": "~2.0.0"
1405
+ }
1406
+ },
1407
+ "bluebird": {
1408
+ "version": "3.5.2",
1409
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz",
1410
+ "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==",
1411
+ "dev": true
1412
+ },
1413
+ "bn.js": {
1414
+ "version": "4.11.8",
1415
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
1416
+ "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
1417
+ "dev": true
1418
+ },
1419
+ "body-parser": {
1420
+ "version": "1.14.2",
1421
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
1422
+ "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=",
1423
+ "dev": true,
1424
+ "requires": {
1425
+ "bytes": "2.2.0",
1426
+ "content-type": "~1.0.1",
1427
+ "debug": "~2.2.0",
1428
+ "depd": "~1.1.0",
1429
+ "http-errors": "~1.3.1",
1430
+ "iconv-lite": "0.4.13",
1431
+ "on-finished": "~2.3.0",
1432
+ "qs": "5.2.0",
1433
+ "raw-body": "~2.1.5",
1434
+ "type-is": "~1.6.10"
1435
+ },
1436
+ "dependencies": {
1437
+ "debug": {
1438
+ "version": "2.2.0",
1439
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
1440
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
1441
+ "dev": true,
1442
+ "requires": {
1443
+ "ms": "0.7.1"
1444
+ }
1445
+ },
1446
+ "iconv-lite": {
1447
+ "version": "0.4.13",
1448
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
1449
+ "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
1450
+ "dev": true
1451
+ },
1452
+ "ms": {
1453
+ "version": "0.7.1",
1454
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
1455
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
1456
+ "dev": true
1457
+ },
1458
+ "qs": {
1459
+ "version": "5.2.0",
1460
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
1461
+ "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
1462
+ "dev": true
1463
+ }
1464
+ }
1465
+ },
1466
+ "brace-expansion": {
1467
+ "version": "1.1.11",
1468
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1469
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1470
+ "dev": true,
1471
+ "requires": {
1472
+ "balanced-match": "^1.0.0",
1473
+ "concat-map": "0.0.1"
1474
+ }
1475
+ },
1476
+ "braces": {
1477
+ "version": "1.8.5",
1478
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
1479
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
1480
+ "dev": true,
1481
+ "requires": {
1482
+ "expand-range": "^1.8.1",
1483
+ "preserve": "^0.2.0",
1484
+ "repeat-element": "^1.1.2"
1485
+ }
1486
+ },
1487
+ "brorand": {
1488
+ "version": "1.1.0",
1489
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
1490
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
1491
+ "dev": true
1492
+ },
1493
+ "browserify-aes": {
1494
+ "version": "1.2.0",
1495
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
1496
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
1497
+ "dev": true,
1498
+ "requires": {
1499
+ "buffer-xor": "^1.0.3",
1500
+ "cipher-base": "^1.0.0",
1501
+ "create-hash": "^1.1.0",
1502
+ "evp_bytestokey": "^1.0.3",
1503
+ "inherits": "^2.0.1",
1504
+ "safe-buffer": "^5.0.1"
1505
+ }
1506
+ },
1507
+ "browserify-cipher": {
1508
+ "version": "1.0.1",
1509
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
1510
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
1511
+ "dev": true,
1512
+ "requires": {
1513
+ "browserify-aes": "^1.0.4",
1514
+ "browserify-des": "^1.0.0",
1515
+ "evp_bytestokey": "^1.0.0"
1516
+ }
1517
+ },
1518
+ "browserify-des": {
1519
+ "version": "1.0.2",
1520
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
1521
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
1522
+ "dev": true,
1523
+ "requires": {
1524
+ "cipher-base": "^1.0.1",
1525
+ "des.js": "^1.0.0",
1526
+ "inherits": "^2.0.1",
1527
+ "safe-buffer": "^5.1.2"
1528
+ }
1529
+ },
1530
+ "browserify-rsa": {
1531
+ "version": "4.0.1",
1532
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
1533
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
1534
+ "dev": true,
1535
+ "requires": {
1536
+ "bn.js": "^4.1.0",
1537
+ "randombytes": "^2.0.1"
1538
+ }
1539
+ },
1540
+ "browserify-sign": {
1541
+ "version": "4.0.4",
1542
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
1543
+ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
1544
+ "dev": true,
1545
+ "requires": {
1546
+ "bn.js": "^4.1.1",
1547
+ "browserify-rsa": "^4.0.0",
1548
+ "create-hash": "^1.1.0",
1549
+ "create-hmac": "^1.1.2",
1550
+ "elliptic": "^6.0.0",
1551
+ "inherits": "^2.0.1",
1552
+ "parse-asn1": "^5.0.0"
1553
+ }
1554
+ },
1555
+ "browserify-zlib": {
1556
+ "version": "0.1.4",
1557
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
1558
+ "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
1559
+ "dev": true,
1560
+ "requires": {
1561
+ "pako": "~0.2.0"
1562
+ }
1563
+ },
1564
+ "browserslist": {
1565
+ "version": "2.11.3",
1566
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
1567
+ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
1568
+ "dev": true,
1569
+ "requires": {
1570
+ "caniuse-lite": "^1.0.30000792",
1571
+ "electron-to-chromium": "^1.3.30"
1572
+ }
1573
+ },
1574
+ "buffer": {
1575
+ "version": "4.9.1",
1576
+ "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
1577
+ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
1578
+ "dev": true,
1579
+ "requires": {
1580
+ "base64-js": "^1.0.2",
1581
+ "ieee754": "^1.1.4",
1582
+ "isarray": "^1.0.0"
1583
+ }
1584
+ },
1585
+ "buffer-from": {
1586
+ "version": "1.1.1",
1587
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
1588
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
1589
+ "dev": true
1590
+ },
1591
+ "buffer-xor": {
1592
+ "version": "1.0.3",
1593
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
1594
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
1595
+ "dev": true
1596
+ },
1597
+ "builtin-modules": {
1598
+ "version": "1.1.1",
1599
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1600
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1601
+ "dev": true
1602
+ },
1603
+ "builtin-status-codes": {
1604
+ "version": "3.0.0",
1605
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
1606
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
1607
+ "dev": true
1608
+ },
1609
+ "bytes": {
1610
+ "version": "2.2.0",
1611
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
1612
+ "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=",
1613
+ "dev": true
1614
+ },
1615
+ "cache-base": {
1616
+ "version": "1.0.1",
1617
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
1618
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
1619
+ "dev": true,
1620
+ "requires": {
1621
+ "collection-visit": "^1.0.0",
1622
+ "component-emitter": "^1.2.1",
1623
+ "get-value": "^2.0.6",
1624
+ "has-value": "^1.0.0",
1625
+ "isobject": "^3.0.1",
1626
+ "set-value": "^2.0.0",
1627
+ "to-object-path": "^0.3.0",
1628
+ "union-value": "^1.0.0",
1629
+ "unset-value": "^1.0.0"
1630
+ },
1631
+ "dependencies": {
1632
+ "isobject": {
1633
+ "version": "3.0.1",
1634
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1635
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1636
+ "dev": true
1637
+ }
1638
+ }
1639
+ },
1640
+ "camelcase": {
1641
+ "version": "2.1.1",
1642
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
1643
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
1644
+ "dev": true
1645
+ },
1646
+ "camelcase-keys": {
1647
+ "version": "2.1.0",
1648
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
1649
+ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
1650
+ "dev": true,
1651
+ "requires": {
1652
+ "camelcase": "^2.0.0",
1653
+ "map-obj": "^1.0.0"
1654
+ }
1655
+ },
1656
+ "caniuse-lite": {
1657
+ "version": "1.0.30000884",
1658
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000884.tgz",
1659
+ "integrity": "sha512-ibROerckpTH6U5zReSjbaitlH4gl5V4NWNCBzRNCa3GEDmzzkfStk+2k5mO4ZDM6pwtdjbZ3hjvsYhPGVLWgNw==",
1660
+ "dev": true
1661
+ },
1662
+ "caseless": {
1663
+ "version": "0.12.0",
1664
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1665
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
1666
+ "dev": true
1667
+ },
1668
+ "center-align": {
1669
+ "version": "0.1.3",
1670
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
1671
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
1672
+ "dev": true,
1673
+ "requires": {
1674
+ "align-text": "^0.1.3",
1675
+ "lazy-cache": "^1.0.3"
1676
+ }
1677
+ },
1678
+ "chalk": {
1679
+ "version": "2.4.1",
1680
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
1681
+ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
1682
+ "dev": true,
1683
+ "requires": {
1684
+ "ansi-styles": "^3.2.1",
1685
+ "escape-string-regexp": "^1.0.5",
1686
+ "supports-color": "^5.3.0"
1687
+ }
1688
+ },
1689
+ "chokidar": {
1690
+ "version": "1.7.0",
1691
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
1692
+ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
1693
+ "dev": true,
1694
+ "optional": true,
1695
+ "requires": {
1696
+ "anymatch": "^1.3.0",
1697
+ "async-each": "^1.0.0",
1698
+ "fsevents": "^1.0.0",
1699
+ "glob-parent": "^2.0.0",
1700
+ "inherits": "^2.0.1",
1701
+ "is-binary-path": "^1.0.0",
1702
+ "is-glob": "^2.0.0",
1703
+ "path-is-absolute": "^1.0.0",
1704
+ "readdirp": "^2.0.0"
1705
+ }
1706
+ },
1707
+ "cipher-base": {
1708
+ "version": "1.0.4",
1709
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
1710
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
1711
+ "dev": true,
1712
+ "requires": {
1713
+ "inherits": "^2.0.1",
1714
+ "safe-buffer": "^5.0.1"
1715
+ }
1716
+ },
1717
+ "circular-json": {
1718
+ "version": "0.3.3",
1719
+ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz",
1720
+ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==",
1721
+ "dev": true
1722
+ },
1723
+ "class-utils": {
1724
+ "version": "0.3.6",
1725
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
1726
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
1727
+ "dev": true,
1728
+ "requires": {
1729
+ "arr-union": "^3.1.0",
1730
+ "define-property": "^0.2.5",
1731
+ "isobject": "^3.0.0",
1732
+ "static-extend": "^0.1.1"
1733
+ },
1734
+ "dependencies": {
1735
+ "define-property": {
1736
+ "version": "0.2.5",
1737
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1738
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1739
+ "dev": true,
1740
+ "requires": {
1741
+ "is-descriptor": "^0.1.0"
1742
+ }
1743
+ },
1744
+ "isobject": {
1745
+ "version": "3.0.1",
1746
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1747
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1748
+ "dev": true
1749
+ }
1750
+ }
1751
+ },
1752
+ "clean-css": {
1753
+ "version": "4.1.11",
1754
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
1755
+ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
1756
+ "dev": true,
1757
+ "requires": {
1758
+ "source-map": "0.5.x"
1759
+ },
1760
+ "dependencies": {
1761
+ "source-map": {
1762
+ "version": "0.5.7",
1763
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1764
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1765
+ "dev": true
1766
+ }
1767
+ }
1768
+ },
1769
+ "cli": {
1770
+ "version": "1.0.1",
1771
+ "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
1772
+ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
1773
+ "dev": true,
1774
+ "requires": {
1775
+ "exit": "0.1.2",
1776
+ "glob": "^7.1.1"
1777
+ }
1778
+ },
1779
+ "cliui": {
1780
+ "version": "3.2.0",
1781
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
1782
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
1783
+ "dev": true,
1784
+ "requires": {
1785
+ "string-width": "^1.0.1",
1786
+ "strip-ansi": "^3.0.1",
1787
+ "wrap-ansi": "^2.0.0"
1788
+ }
1789
+ },
1790
+ "clone-regexp": {
1791
+ "version": "1.0.1",
1792
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz",
1793
+ "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==",
1794
+ "dev": true,
1795
+ "requires": {
1796
+ "is-regexp": "^1.0.0",
1797
+ "is-supported-regexp-flag": "^1.0.0"
1798
+ }
1799
+ },
1800
+ "co": {
1801
+ "version": "4.6.0",
1802
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
1803
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
1804
+ "dev": true
1805
+ },
1806
+ "code-point-at": {
1807
+ "version": "1.1.0",
1808
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
1809
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
1810
+ "dev": true
1811
+ },
1812
+ "coffeescript": {
1813
+ "version": "1.10.0",
1814
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
1815
+ "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
1816
+ "dev": true
1817
+ },
1818
+ "collection-visit": {
1819
+ "version": "1.0.0",
1820
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
1821
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
1822
+ "dev": true,
1823
+ "requires": {
1824
+ "map-visit": "^1.0.0",
1825
+ "object-visit": "^1.0.0"
1826
+ }
1827
+ },
1828
+ "color-convert": {
1829
+ "version": "1.9.3",
1830
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1831
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1832
+ "dev": true,
1833
+ "requires": {
1834
+ "color-name": "1.1.3"
1835
+ }
1836
+ },
1837
+ "color-name": {
1838
+ "version": "1.1.3",
1839
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1840
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1841
+ "dev": true
1842
+ },
1843
+ "colors": {
1844
+ "version": "1.1.2",
1845
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
1846
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
1847
+ "dev": true
1848
+ },
1849
+ "combined-stream": {
1850
+ "version": "1.0.6",
1851
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
1852
+ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
1853
+ "dev": true,
1854
+ "requires": {
1855
+ "delayed-stream": "~1.0.0"
1856
+ }
1857
+ },
1858
+ "commander": {
1859
+ "version": "2.17.1",
1860
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
1861
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
1862
+ "dev": true
1863
+ },
1864
+ "commondir": {
1865
+ "version": "1.0.1",
1866
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1867
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
1868
+ "dev": true
1869
+ },
1870
+ "component-emitter": {
1871
+ "version": "1.2.1",
1872
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
1873
+ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
1874
+ "dev": true
1875
+ },
1876
+ "concat-map": {
1877
+ "version": "0.0.1",
1878
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1879
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1880
+ "dev": true
1881
+ },
1882
+ "concat-stream": {
1883
+ "version": "1.6.2",
1884
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
1885
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
1886
+ "dev": true,
1887
+ "requires": {
1888
+ "buffer-from": "^1.0.0",
1889
+ "inherits": "^2.0.3",
1890
+ "readable-stream": "^2.2.2",
1891
+ "typedarray": "^0.0.6"
1892
+ }
1893
+ },
1894
+ "config": {
1895
+ "version": "1.31.0",
1896
+ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz",
1897
+ "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==",
1898
+ "dev": true,
1899
+ "requires": {
1900
+ "json5": "^1.0.1"
1901
+ },
1902
+ "dependencies": {
1903
+ "json5": {
1904
+ "version": "1.0.1",
1905
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
1906
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
1907
+ "dev": true,
1908
+ "requires": {
1909
+ "minimist": "^1.2.0"
1910
+ }
1911
+ },
1912
+ "minimist": {
1913
+ "version": "1.2.0",
1914
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1915
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1916
+ "dev": true
1917
+ }
1918
+ }
1919
+ },
1920
+ "console-browserify": {
1921
+ "version": "1.1.0",
1922
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
1923
+ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
1924
+ "dev": true,
1925
+ "requires": {
1926
+ "date-now": "^0.1.4"
1927
+ }
1928
+ },
1929
+ "console-control-strings": {
1930
+ "version": "1.1.0",
1931
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
1932
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
1933
+ "dev": true
1934
+ },
1935
+ "constants-browserify": {
1936
+ "version": "1.0.0",
1937
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
1938
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
1939
+ "dev": true
1940
+ },
1941
+ "content-type": {
1942
+ "version": "1.0.4",
1943
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
1944
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
1945
+ "dev": true
1946
+ },
1947
+ "convert-source-map": {
1948
+ "version": "1.6.0",
1949
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
1950
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
1951
+ "dev": true,
1952
+ "requires": {
1953
+ "safe-buffer": "~5.1.1"
1954
+ }
1955
+ },
1956
+ "copy-descriptor": {
1957
+ "version": "0.1.1",
1958
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
1959
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
1960
+ "dev": true
1961
+ },
1962
+ "core-js": {
1963
+ "version": "2.5.7",
1964
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
1965
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
1966
+ "dev": true
1967
+ },
1968
+ "core-util-is": {
1969
+ "version": "1.0.2",
1970
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1971
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
1972
+ "dev": true
1973
+ },
1974
+ "cosmiconfig": {
1975
+ "version": "3.1.0",
1976
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-3.1.0.tgz",
1977
+ "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==",
1978
+ "dev": true,
1979
+ "requires": {
1980
+ "is-directory": "^0.3.1",
1981
+ "js-yaml": "^3.9.0",
1982
+ "parse-json": "^3.0.0",
1983
+ "require-from-string": "^2.0.1"
1984
+ },
1985
+ "dependencies": {
1986
+ "esprima": {
1987
+ "version": "4.0.1",
1988
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1989
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1990
+ "dev": true
1991
+ },
1992
+ "js-yaml": {
1993
+ "version": "3.12.0",
1994
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz",
1995
+ "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==",
1996
+ "dev": true,
1997
+ "requires": {
1998
+ "argparse": "^1.0.7",
1999
+ "esprima": "^4.0.0"
2000
+ }
2001
+ },
2002
+ "parse-json": {
2003
+ "version": "3.0.0",
2004
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz",
2005
+ "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=",
2006
+ "dev": true,
2007
+ "requires": {
2008
+ "error-ex": "^1.3.1"
2009
+ }
2010
+ }
2011
+ }
2012
+ },
2013
+ "create-ecdh": {
2014
+ "version": "4.0.3",
2015
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
2016
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
2017
+ "dev": true,
2018
+ "requires": {
2019
+ "bn.js": "^4.1.0",
2020
+ "elliptic": "^6.0.0"
2021
+ }
2022
+ },
2023
+ "create-hash": {
2024
+ "version": "1.2.0",
2025
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
2026
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
2027
+ "dev": true,
2028
+ "requires": {
2029
+ "cipher-base": "^1.0.1",
2030
+ "inherits": "^2.0.1",
2031
+ "md5.js": "^1.3.4",
2032
+ "ripemd160": "^2.0.1",
2033
+ "sha.js": "^2.4.0"
2034
+ }
2035
+ },
2036
+ "create-hmac": {
2037
+ "version": "1.1.7",
2038
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
2039
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
2040
+ "dev": true,
2041
+ "requires": {
2042
+ "cipher-base": "^1.0.3",
2043
+ "create-hash": "^1.1.0",
2044
+ "inherits": "^2.0.1",
2045
+ "ripemd160": "^2.0.0",
2046
+ "safe-buffer": "^5.0.1",
2047
+ "sha.js": "^2.4.8"
2048
+ }
2049
+ },
2050
+ "cross-env": {
2051
+ "version": "5.1.6",
2052
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.6.tgz",
2053
+ "integrity": "sha512-VWTDq+G4v383SzgRS7jsAVWqEWF0aKZpDz1GVjhONvPRgHB1LnxP2sXUVFKbykHkPSnfRKS8YdiDevWFwZmQ9g==",
2054
+ "dev": true,
2055
+ "requires": {
2056
+ "cross-spawn": "^5.1.0",
2057
+ "is-windows": "^1.0.0"
2058
+ }
2059
+ },
2060
+ "cross-spawn": {
2061
+ "version": "5.1.0",
2062
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
2063
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
2064
+ "dev": true,
2065
+ "requires": {
2066
+ "lru-cache": "^4.0.1",
2067
+ "shebang-command": "^1.2.0",
2068
+ "which": "^1.2.9"
2069
+ }
2070
+ },
2071
+ "crypto-browserify": {
2072
+ "version": "3.12.0",
2073
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
2074
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
2075
+ "dev": true,
2076
+ "requires": {
2077
+ "browserify-cipher": "^1.0.0",
2078
+ "browserify-sign": "^4.0.0",
2079
+ "create-ecdh": "^4.0.0",
2080
+ "create-hash": "^1.1.0",
2081
+ "create-hmac": "^1.1.0",
2082
+ "diffie-hellman": "^5.0.0",
2083
+ "inherits": "^2.0.1",
2084
+ "pbkdf2": "^3.0.3",
2085
+ "public-encrypt": "^4.0.0",
2086
+ "randombytes": "^2.0.0",
2087
+ "randomfill": "^1.0.3"
2088
+ }
2089
+ },
2090
+ "currently-unhandled": {
2091
+ "version": "0.4.1",
2092
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
2093
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
2094
+ "dev": true,
2095
+ "requires": {
2096
+ "array-find-index": "^1.0.1"
2097
+ }
2098
+ },
2099
+ "cycle": {
2100
+ "version": "1.0.3",
2101
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
2102
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
2103
+ "dev": true,
2104
+ "optional": true
2105
+ },
2106
+ "d": {
2107
+ "version": "1.0.0",
2108
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
2109
+ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
2110
+ "dev": true,
2111
+ "requires": {
2112
+ "es5-ext": "^0.10.9"
2113
+ }
2114
+ },
2115
+ "dashdash": {
2116
+ "version": "1.14.1",
2117
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
2118
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
2119
+ "dev": true,
2120
+ "requires": {
2121
+ "assert-plus": "^1.0.0"
2122
+ }
2123
+ },
2124
+ "date-now": {
2125
+ "version": "0.1.4",
2126
+ "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
2127
+ "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
2128
+ "dev": true
2129
+ },
2130
+ "dateformat": {
2131
+ "version": "1.0.12",
2132
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
2133
+ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
2134
+ "dev": true,
2135
+ "requires": {
2136
+ "get-stdin": "^4.0.1",
2137
+ "meow": "^3.3.0"
2138
+ }
2139
+ },
2140
+ "debug": {
2141
+ "version": "2.6.9",
2142
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2143
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2144
+ "dev": true,
2145
+ "requires": {
2146
+ "ms": "2.0.0"
2147
+ }
2148
+ },
2149
+ "decamelize": {
2150
+ "version": "1.2.0",
2151
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
2152
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
2153
+ "dev": true
2154
+ },
2155
+ "decode-uri-component": {
2156
+ "version": "0.2.0",
2157
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
2158
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
2159
+ "dev": true
2160
+ },
2161
+ "define-property": {
2162
+ "version": "2.0.2",
2163
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
2164
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
2165
+ "dev": true,
2166
+ "requires": {
2167
+ "is-descriptor": "^1.0.2",
2168
+ "isobject": "^3.0.1"
2169
+ },
2170
+ "dependencies": {
2171
+ "is-accessor-descriptor": {
2172
+ "version": "1.0.0",
2173
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2174
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2175
+ "dev": true,
2176
+ "requires": {
2177
+ "kind-of": "^6.0.0"
2178
+ }
2179
+ },
2180
+ "is-data-descriptor": {
2181
+ "version": "1.0.0",
2182
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2183
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2184
+ "dev": true,
2185
+ "requires": {
2186
+ "kind-of": "^6.0.0"
2187
+ }
2188
+ },
2189
+ "is-descriptor": {
2190
+ "version": "1.0.2",
2191
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2192
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2193
+ "dev": true,
2194
+ "requires": {
2195
+ "is-accessor-descriptor": "^1.0.0",
2196
+ "is-data-descriptor": "^1.0.0",
2197
+ "kind-of": "^6.0.2"
2198
+ }
2199
+ },
2200
+ "isobject": {
2201
+ "version": "3.0.1",
2202
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2203
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2204
+ "dev": true
2205
+ },
2206
+ "kind-of": {
2207
+ "version": "6.0.2",
2208
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
2209
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
2210
+ "dev": true
2211
+ }
2212
+ }
2213
+ },
2214
+ "del": {
2215
+ "version": "2.2.2",
2216
+ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
2217
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
2218
+ "dev": true,
2219
+ "requires": {
2220
+ "globby": "^5.0.0",
2221
+ "is-path-cwd": "^1.0.0",
2222
+ "is-path-in-cwd": "^1.0.0",
2223
+ "object-assign": "^4.0.1",
2224
+ "pify": "^2.0.0",
2225
+ "pinkie-promise": "^2.0.0",
2226
+ "rimraf": "^2.2.8"
2227
+ },
2228
+ "dependencies": {
2229
+ "globby": {
2230
+ "version": "5.0.0",
2231
+ "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
2232
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
2233
+ "dev": true,
2234
+ "requires": {
2235
+ "array-union": "^1.0.1",
2236
+ "arrify": "^1.0.0",
2237
+ "glob": "^7.0.3",
2238
+ "object-assign": "^4.0.1",
2239
+ "pify": "^2.0.0",
2240
+ "pinkie-promise": "^2.0.0"
2241
+ }
2242
+ },
2243
+ "pify": {
2244
+ "version": "2.3.0",
2245
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2246
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2247
+ "dev": true
2248
+ }
2249
+ }
2250
+ },
2251
+ "delayed-stream": {
2252
+ "version": "1.0.0",
2253
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2254
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
2255
+ "dev": true
2256
+ },
2257
+ "delegates": {
2258
+ "version": "1.0.0",
2259
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
2260
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
2261
+ "dev": true
2262
+ },
2263
+ "depd": {
2264
+ "version": "1.1.2",
2265
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
2266
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
2267
+ "dev": true
2268
+ },
2269
+ "des.js": {
2270
+ "version": "1.0.0",
2271
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
2272
+ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
2273
+ "dev": true,
2274
+ "requires": {
2275
+ "inherits": "^2.0.1",
2276
+ "minimalistic-assert": "^1.0.0"
2277
+ }
2278
+ },
2279
+ "detect-indent": {
2280
+ "version": "4.0.0",
2281
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
2282
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
2283
+ "dev": true,
2284
+ "requires": {
2285
+ "repeating": "^2.0.0"
2286
+ }
2287
+ },
2288
+ "diff": {
2289
+ "version": "3.5.0",
2290
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
2291
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
2292
+ "dev": true
2293
+ },
2294
+ "diffie-hellman": {
2295
+ "version": "5.0.3",
2296
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
2297
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
2298
+ "dev": true,
2299
+ "requires": {
2300
+ "bn.js": "^4.1.0",
2301
+ "miller-rabin": "^4.0.0",
2302
+ "randombytes": "^2.0.0"
2303
+ }
2304
+ },
2305
+ "dom-serializer": {
2306
+ "version": "0.1.0",
2307
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
2308
+ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
2309
+ "dev": true,
2310
+ "requires": {
2311
+ "domelementtype": "~1.1.1",
2312
+ "entities": "~1.1.1"
2313
+ },
2314
+ "dependencies": {
2315
+ "domelementtype": {
2316
+ "version": "1.1.3",
2317
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
2318
+ "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
2319
+ "dev": true
2320
+ },
2321
+ "entities": {
2322
+ "version": "1.1.1",
2323
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
2324
+ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
2325
+ "dev": true
2326
+ }
2327
+ }
2328
+ },
2329
+ "domain-browser": {
2330
+ "version": "1.2.0",
2331
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
2332
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
2333
+ "dev": true
2334
+ },
2335
+ "domelementtype": {
2336
+ "version": "1.3.0",
2337
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
2338
+ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
2339
+ "dev": true
2340
+ },
2341
+ "domhandler": {
2342
+ "version": "2.3.0",
2343
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
2344
+ "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
2345
+ "dev": true,
2346
+ "requires": {
2347
+ "domelementtype": "1"
2348
+ }
2349
+ },
2350
+ "domutils": {
2351
+ "version": "1.5.1",
2352
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
2353
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
2354
+ "dev": true,
2355
+ "requires": {
2356
+ "dom-serializer": "0",
2357
+ "domelementtype": "1"
2358
+ }
2359
+ },
2360
+ "duplexer": {
2361
+ "version": "0.1.1",
2362
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
2363
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
2364
+ "dev": true
2365
+ },
2366
+ "each-async": {
2367
+ "version": "1.1.1",
2368
+ "resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
2369
+ "integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
2370
+ "dev": true,
2371
+ "requires": {
2372
+ "onetime": "^1.0.0",
2373
+ "set-immediate-shim": "^1.0.0"
2374
+ }
2375
+ },
2376
+ "ecc-jsbn": {
2377
+ "version": "0.1.2",
2378
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
2379
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
2380
+ "dev": true,
2381
+ "optional": true,
2382
+ "requires": {
2383
+ "jsbn": "~0.1.0",
2384
+ "safer-buffer": "^2.1.0"
2385
+ }
2386
+ },
2387
+ "ee-first": {
2388
+ "version": "1.1.1",
2389
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
2390
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
2391
+ "dev": true
2392
+ },
2393
+ "electron-to-chromium": {
2394
+ "version": "1.3.62",
2395
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.62.tgz",
2396
+ "integrity": "sha512-x09ndL/Gjnuk3unlAyoGyUg3wbs4w/bXurgL7wL913vXHAOWmMhrLf1VNGRaMLngmadd5Q8gsV9BFuIr6rP+Xg==",
2397
+ "dev": true
2398
+ },
2399
+ "elliptic": {
2400
+ "version": "6.4.1",
2401
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
2402
+ "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==",
2403
+ "dev": true,
2404
+ "requires": {
2405
+ "bn.js": "^4.4.0",
2406
+ "brorand": "^1.0.1",
2407
+ "hash.js": "^1.0.0",
2408
+ "hmac-drbg": "^1.0.0",
2409
+ "inherits": "^2.0.1",
2410
+ "minimalistic-assert": "^1.0.0",
2411
+ "minimalistic-crypto-utils": "^1.0.0"
2412
+ }
2413
+ },
2414
+ "emojis-list": {
2415
+ "version": "2.1.0",
2416
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
2417
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
2418
+ "dev": true
2419
+ },
2420
+ "encoding": {
2421
+ "version": "0.1.12",
2422
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
2423
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
2424
+ "dev": true,
2425
+ "requires": {
2426
+ "iconv-lite": "~0.4.13"
2427
+ }
2428
+ },
2429
+ "enhanced-resolve": {
2430
+ "version": "3.4.1",
2431
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
2432
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
2433
+ "dev": true,
2434
+ "requires": {
2435
+ "graceful-fs": "^4.1.2",
2436
+ "memory-fs": "^0.4.0",
2437
+ "object-assign": "^4.0.1",
2438
+ "tapable": "^0.2.7"
2439
+ }
2440
+ },
2441
+ "entities": {
2442
+ "version": "1.0.0",
2443
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
2444
+ "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
2445
+ "dev": true
2446
+ },
2447
+ "errno": {
2448
+ "version": "0.1.7",
2449
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
2450
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
2451
+ "dev": true,
2452
+ "requires": {
2453
+ "prr": "~1.0.1"
2454
+ }
2455
+ },
2456
+ "error-ex": {
2457
+ "version": "1.3.2",
2458
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
2459
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
2460
+ "dev": true,
2461
+ "requires": {
2462
+ "is-arrayish": "^0.2.1"
2463
+ }
2464
+ },
2465
+ "es5-ext": {
2466
+ "version": "0.10.46",
2467
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
2468
+ "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
2469
+ "dev": true,
2470
+ "requires": {
2471
+ "es6-iterator": "~2.0.3",
2472
+ "es6-symbol": "~3.1.1",
2473
+ "next-tick": "1"
2474
+ }
2475
+ },
2476
+ "es6-iterator": {
2477
+ "version": "2.0.3",
2478
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
2479
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
2480
+ "dev": true,
2481
+ "requires": {
2482
+ "d": "1",
2483
+ "es5-ext": "^0.10.35",
2484
+ "es6-symbol": "^3.1.1"
2485
+ }
2486
+ },
2487
+ "es6-map": {
2488
+ "version": "0.1.5",
2489
+ "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
2490
+ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
2491
+ "dev": true,
2492
+ "requires": {
2493
+ "d": "1",
2494
+ "es5-ext": "~0.10.14",
2495
+ "es6-iterator": "~2.0.1",
2496
+ "es6-set": "~0.1.5",
2497
+ "es6-symbol": "~3.1.1",
2498
+ "event-emitter": "~0.3.5"
2499
+ }
2500
+ },
2501
+ "es6-promise": {
2502
+ "version": "4.2.4",
2503
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
2504
+ "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
2505
+ "dev": true,
2506
+ "optional": true
2507
+ },
2508
+ "es6-set": {
2509
+ "version": "0.1.5",
2510
+ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
2511
+ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
2512
+ "dev": true,
2513
+ "requires": {
2514
+ "d": "1",
2515
+ "es5-ext": "~0.10.14",
2516
+ "es6-iterator": "~2.0.1",
2517
+ "es6-symbol": "3.1.1",
2518
+ "event-emitter": "~0.3.5"
2519
+ }
2520
+ },
2521
+ "es6-symbol": {
2522
+ "version": "3.1.1",
2523
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
2524
+ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
2525
+ "dev": true,
2526
+ "requires": {
2527
+ "d": "1",
2528
+ "es5-ext": "~0.10.14"
2529
+ }
2530
+ },
2531
+ "es6-weak-map": {
2532
+ "version": "2.0.2",
2533
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
2534
+ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
2535
+ "dev": true,
2536
+ "requires": {
2537
+ "d": "1",
2538
+ "es5-ext": "^0.10.14",
2539
+ "es6-iterator": "^2.0.1",
2540
+ "es6-symbol": "^3.1.1"
2541
+ }
2542
+ },
2543
+ "escape-string-regexp": {
2544
+ "version": "1.0.5",
2545
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2546
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
2547
+ "dev": true
2548
+ },
2549
+ "escope": {
2550
+ "version": "3.6.0",
2551
+ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
2552
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
2553
+ "dev": true,
2554
+ "requires": {
2555
+ "es6-map": "^0.1.3",
2556
+ "es6-weak-map": "^2.0.1",
2557
+ "esrecurse": "^4.1.0",
2558
+ "estraverse": "^4.1.1"
2559
+ }
2560
+ },
2561
+ "esprima": {
2562
+ "version": "2.7.3",
2563
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
2564
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
2565
+ "dev": true
2566
+ },
2567
+ "esrecurse": {
2568
+ "version": "4.2.1",
2569
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
2570
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
2571
+ "dev": true,
2572
+ "requires": {
2573
+ "estraverse": "^4.1.0"
2574
+ }
2575
+ },
2576
+ "estraverse": {
2577
+ "version": "4.2.0",
2578
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
2579
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
2580
+ "dev": true
2581
+ },
2582
+ "esutils": {
2583
+ "version": "2.0.2",
2584
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
2585
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
2586
+ "dev": true
2587
+ },
2588
+ "event-emitter": {
2589
+ "version": "0.3.5",
2590
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
2591
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
2592
+ "dev": true,
2593
+ "requires": {
2594
+ "d": "1",
2595
+ "es5-ext": "~0.10.14"
2596
+ }
2597
+ },
2598
+ "eventemitter2": {
2599
+ "version": "0.4.14",
2600
+ "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
2601
+ "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
2602
+ "dev": true
2603
+ },
2604
+ "events": {
2605
+ "version": "1.1.1",
2606
+ "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
2607
+ "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=",
2608
+ "dev": true
2609
+ },
2610
+ "evp_bytestokey": {
2611
+ "version": "1.0.3",
2612
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
2613
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
2614
+ "dev": true,
2615
+ "requires": {
2616
+ "md5.js": "^1.3.4",
2617
+ "safe-buffer": "^5.1.1"
2618
+ }
2619
+ },
2620
+ "execa": {
2621
+ "version": "0.7.0",
2622
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
2623
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
2624
+ "dev": true,
2625
+ "requires": {
2626
+ "cross-spawn": "^5.0.1",
2627
+ "get-stream": "^3.0.0",
2628
+ "is-stream": "^1.1.0",
2629
+ "npm-run-path": "^2.0.0",
2630
+ "p-finally": "^1.0.0",
2631
+ "signal-exit": "^3.0.0",
2632
+ "strip-eof": "^1.0.0"
2633
+ }
2634
+ },
2635
+ "execall": {
2636
+ "version": "1.0.0",
2637
+ "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
2638
+ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
2639
+ "dev": true,
2640
+ "requires": {
2641
+ "clone-regexp": "^1.0.0"
2642
+ }
2643
+ },
2644
+ "exit": {
2645
+ "version": "0.1.2",
2646
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
2647
+ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
2648
+ "dev": true
2649
+ },
2650
+ "expand-brackets": {
2651
+ "version": "0.1.5",
2652
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
2653
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
2654
+ "dev": true,
2655
+ "requires": {
2656
+ "is-posix-bracket": "^0.1.0"
2657
+ }
2658
+ },
2659
+ "expand-range": {
2660
+ "version": "1.8.2",
2661
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
2662
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
2663
+ "dev": true,
2664
+ "requires": {
2665
+ "fill-range": "^2.1.0"
2666
+ }
2667
+ },
2668
+ "extend": {
2669
+ "version": "3.0.2",
2670
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
2671
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
2672
+ "dev": true
2673
+ },
2674
+ "extend-shallow": {
2675
+ "version": "3.0.2",
2676
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
2677
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
2678
+ "dev": true,
2679
+ "requires": {
2680
+ "assign-symbols": "^1.0.0",
2681
+ "is-extendable": "^1.0.1"
2682
+ },
2683
+ "dependencies": {
2684
+ "is-extendable": {
2685
+ "version": "1.0.1",
2686
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
2687
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
2688
+ "dev": true,
2689
+ "requires": {
2690
+ "is-plain-object": "^2.0.4"
2691
+ }
2692
+ }
2693
+ }
2694
+ },
2695
+ "extglob": {
2696
+ "version": "0.3.2",
2697
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
2698
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
2699
+ "dev": true,
2700
+ "requires": {
2701
+ "is-extglob": "^1.0.0"
2702
+ }
2703
+ },
2704
+ "extract-zip": {
2705
+ "version": "1.6.7",
2706
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
2707
+ "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
2708
+ "dev": true,
2709
+ "optional": true,
2710
+ "requires": {
2711
+ "concat-stream": "1.6.2",
2712
+ "debug": "2.6.9",
2713
+ "mkdirp": "0.5.1",
2714
+ "yauzl": "2.4.1"
2715
+ }
2716
+ },
2717
+ "extsprintf": {
2718
+ "version": "1.3.0",
2719
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
2720
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
2721
+ "dev": true
2722
+ },
2723
+ "eyes": {
2724
+ "version": "0.1.8",
2725
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
2726
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
2727
+ "dev": true,
2728
+ "optional": true
2729
+ },
2730
+ "fast-deep-equal": {
2731
+ "version": "1.1.0",
2732
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
2733
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
2734
+ "dev": true
2735
+ },
2736
+ "fast-json-stable-stringify": {
2737
+ "version": "2.0.0",
2738
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
2739
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
2740
+ "dev": true
2741
+ },
2742
+ "faye-websocket": {
2743
+ "version": "0.10.0",
2744
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
2745
+ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
2746
+ "dev": true,
2747
+ "requires": {
2748
+ "websocket-driver": ">=0.5.1"
2749
+ }
2750
+ },
2751
+ "fd-slicer": {
2752
+ "version": "1.0.1",
2753
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
2754
+ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
2755
+ "dev": true,
2756
+ "optional": true,
2757
+ "requires": {
2758
+ "pend": "~1.2.0"
2759
+ }
2760
+ },
2761
+ "figures": {
2762
+ "version": "1.7.0",
2763
+ "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
2764
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
2765
+ "dev": true,
2766
+ "requires": {
2767
+ "escape-string-regexp": "^1.0.5",
2768
+ "object-assign": "^4.1.0"
2769
+ }
2770
+ },
2771
+ "file-entry-cache": {
2772
+ "version": "2.0.0",
2773
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
2774
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
2775
+ "dev": true,
2776
+ "requires": {
2777
+ "flat-cache": "^1.2.1",
2778
+ "object-assign": "^4.0.1"
2779
+ }
2780
+ },
2781
+ "filename-regex": {
2782
+ "version": "2.0.1",
2783
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
2784
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
2785
+ "dev": true
2786
+ },
2787
+ "fill-range": {
2788
+ "version": "2.2.4",
2789
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
2790
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
2791
+ "dev": true,
2792
+ "requires": {
2793
+ "is-number": "^2.1.0",
2794
+ "isobject": "^2.0.0",
2795
+ "randomatic": "^3.0.0",
2796
+ "repeat-element": "^1.1.2",
2797
+ "repeat-string": "^1.5.2"
2798
+ }
2799
+ },
2800
+ "find-cache-dir": {
2801
+ "version": "1.0.0",
2802
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
2803
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
2804
+ "dev": true,
2805
+ "requires": {
2806
+ "commondir": "^1.0.1",
2807
+ "make-dir": "^1.0.0",
2808
+ "pkg-dir": "^2.0.0"
2809
+ }
2810
+ },
2811
+ "find-up": {
2812
+ "version": "2.1.0",
2813
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2814
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2815
+ "dev": true,
2816
+ "requires": {
2817
+ "locate-path": "^2.0.0"
2818
+ }
2819
+ },
2820
+ "findup": {
2821
+ "version": "0.1.5",
2822
+ "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz",
2823
+ "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=",
2824
+ "dev": true,
2825
+ "requires": {
2826
+ "colors": "~0.6.0-1",
2827
+ "commander": "~2.1.0"
2828
+ },
2829
+ "dependencies": {
2830
+ "colors": {
2831
+ "version": "0.6.2",
2832
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
2833
+ "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
2834
+ "dev": true
2835
+ },
2836
+ "commander": {
2837
+ "version": "2.1.0",
2838
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
2839
+ "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=",
2840
+ "dev": true
2841
+ }
2842
+ }
2843
+ },
2844
+ "findup-sync": {
2845
+ "version": "0.3.0",
2846
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
2847
+ "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
2848
+ "dev": true,
2849
+ "requires": {
2850
+ "glob": "~5.0.0"
2851
+ },
2852
+ "dependencies": {
2853
+ "glob": {
2854
+ "version": "5.0.15",
2855
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
2856
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
2857
+ "dev": true,
2858
+ "requires": {
2859
+ "inflight": "^1.0.4",
2860
+ "inherits": "2",
2861
+ "minimatch": "2 || 3",
2862
+ "once": "^1.3.0",
2863
+ "path-is-absolute": "^1.0.0"
2864
+ }
2865
+ }
2866
+ }
2867
+ },
2868
+ "flat-cache": {
2869
+ "version": "1.3.0",
2870
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
2871
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
2872
+ "dev": true,
2873
+ "requires": {
2874
+ "circular-json": "^0.3.1",
2875
+ "del": "^2.0.2",
2876
+ "graceful-fs": "^4.1.2",
2877
+ "write": "^0.2.1"
2878
+ }
2879
+ },
2880
+ "flatten": {
2881
+ "version": "1.0.2",
2882
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
2883
+ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
2884
+ "dev": true
2885
+ },
2886
+ "for-in": {
2887
+ "version": "1.0.2",
2888
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
2889
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
2890
+ "dev": true
2891
+ },
2892
+ "for-own": {
2893
+ "version": "0.1.5",
2894
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
2895
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
2896
+ "dev": true,
2897
+ "requires": {
2898
+ "for-in": "^1.0.1"
2899
+ }
2900
+ },
2901
+ "forever-agent": {
2902
+ "version": "0.6.1",
2903
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
2904
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
2905
+ "dev": true
2906
+ },
2907
+ "form-data": {
2908
+ "version": "2.3.2",
2909
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
2910
+ "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
2911
+ "dev": true,
2912
+ "requires": {
2913
+ "asynckit": "^0.4.0",
2914
+ "combined-stream": "1.0.6",
2915
+ "mime-types": "^2.1.12"
2916
+ }
2917
+ },
2918
+ "fragment-cache": {
2919
+ "version": "0.2.1",
2920
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
2921
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
2922
+ "dev": true,
2923
+ "requires": {
2924
+ "map-cache": "^0.2.2"
2925
+ }
2926
+ },
2927
+ "fs-extra": {
2928
+ "version": "1.0.0",
2929
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
2930
+ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
2931
+ "dev": true,
2932
+ "optional": true,
2933
+ "requires": {
2934
+ "graceful-fs": "^4.1.2",
2935
+ "jsonfile": "^2.1.0",
2936
+ "klaw": "^1.0.0"
2937
+ }
2938
+ },
2939
+ "fs-readdir-recursive": {
2940
+ "version": "1.1.0",
2941
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
2942
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
2943
+ "dev": true
2944
+ },
2945
+ "fs.realpath": {
2946
+ "version": "1.0.0",
2947
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2948
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2949
+ "dev": true
2950
+ },
2951
+ "fsevents": {
2952
+ "version": "1.2.4",
2953
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz",
2954
+ "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==",
2955
+ "dev": true,
2956
+ "optional": true,
2957
+ "requires": {
2958
+ "nan": "^2.9.2",
2959
+ "node-pre-gyp": "^0.10.0"
2960
+ },
2961
+ "dependencies": {
2962
+ "abbrev": {
2963
+ "version": "1.1.1",
2964
+ "bundled": true,
2965
+ "dev": true,
2966
+ "optional": true
2967
+ },
2968
+ "ansi-regex": {
2969
+ "version": "2.1.1",
2970
+ "bundled": true,
2971
+ "dev": true
2972
+ },
2973
+ "aproba": {
2974
+ "version": "1.2.0",
2975
+ "bundled": true,
2976
+ "dev": true,
2977
+ "optional": true
2978
+ },
2979
+ "are-we-there-yet": {
2980
+ "version": "1.1.4",
2981
+ "bundled": true,
2982
+ "dev": true,
2983
+ "optional": true,
2984
+ "requires": {
2985
+ "delegates": "^1.0.0",
2986
+ "readable-stream": "^2.0.6"
2987
+ }
2988
+ },
2989
+ "balanced-match": {
2990
+ "version": "1.0.0",
2991
+ "bundled": true,
2992
+ "dev": true
2993
+ },
2994
+ "brace-expansion": {
2995
+ "version": "1.1.11",
2996
+ "bundled": true,
2997
+ "dev": true,
2998
+ "requires": {
2999
+ "balanced-match": "^1.0.0",
3000
+ "concat-map": "0.0.1"
3001
+ }
3002
+ },
3003
+ "chownr": {
3004
+ "version": "1.0.1",
3005
+ "bundled": true,
3006
+ "dev": true,
3007
+ "optional": true
3008
+ },
3009
+ "code-point-at": {
3010
+ "version": "1.1.0",
3011
+ "bundled": true,
3012
+ "dev": true
3013
+ },
3014
+ "concat-map": {
3015
+ "version": "0.0.1",
3016
+ "bundled": true,
3017
+ "dev": true
3018
+ },
3019
+ "console-control-strings": {
3020
+ "version": "1.1.0",
3021
+ "bundled": true,
3022
+ "dev": true
3023
+ },
3024
+ "core-util-is": {
3025
+ "version": "1.0.2",
3026
+ "bundled": true,
3027
+ "dev": true,
3028
+ "optional": true
3029
+ },
3030
+ "debug": {
3031
+ "version": "2.6.9",
3032
+ "bundled": true,
3033
+ "dev": true,
3034
+ "optional": true,
3035
+ "requires": {
3036
+ "ms": "2.0.0"
3037
+ }
3038
+ },
3039
+ "deep-extend": {
3040
+ "version": "0.5.1",
3041
+ "bundled": true,
3042
+ "dev": true,
3043
+ "optional": true
3044
+ },
3045
+ "delegates": {
3046
+ "version": "1.0.0",
3047
+ "bundled": true,
3048
+ "dev": true,
3049
+ "optional": true
3050
+ },
3051
+ "detect-libc": {
3052
+ "version": "1.0.3",
3053
+ "bundled": true,
3054
+ "dev": true,
3055
+ "optional": true
3056
+ },
3057
+ "fs-minipass": {
3058
+ "version": "1.2.5",
3059
+ "bundled": true,
3060
+ "dev": true,
3061
+ "optional": true,
3062
+ "requires": {
3063
+ "minipass": "^2.2.1"
3064
+ }
3065
+ },
3066
+ "fs.realpath": {
3067
+ "version": "1.0.0",
3068
+ "bundled": true,
3069
+ "dev": true,
3070
+ "optional": true
3071
+ },
3072
+ "gauge": {
3073
+ "version": "2.7.4",
3074
+ "bundled": true,
3075
+ "dev": true,
3076
+ "optional": true,
3077
+ "requires": {
3078
+ "aproba": "^1.0.3",
3079
+ "console-control-strings": "^1.0.0",
3080
+ "has-unicode": "^2.0.0",
3081
+ "object-assign": "^4.1.0",
3082
+ "signal-exit": "^3.0.0",
3083
+ "string-width": "^1.0.1",
3084
+ "strip-ansi": "^3.0.1",
3085
+ "wide-align": "^1.1.0"
3086
+ }
3087
+ },
3088
+ "glob": {
3089
+ "version": "7.1.2",
3090
+ "bundled": true,
3091
+ "dev": true,
3092
+ "optional": true,
3093
+ "requires": {
3094
+ "fs.realpath": "^1.0.0",
3095
+ "inflight": "^1.0.4",
3096
+ "inherits": "2",
3097
+ "minimatch": "^3.0.4",
3098
+ "once": "^1.3.0",
3099
+ "path-is-absolute": "^1.0.0"
3100
+ }
3101
+ },
3102
+ "has-unicode": {
3103
+ "version": "2.0.1",
3104
+ "bundled": true,
3105
+ "dev": true,
3106
+ "optional": true
3107
+ },
3108
+ "iconv-lite": {
3109
+ "version": "0.4.21",
3110
+ "bundled": true,
3111
+ "dev": true,
3112
+ "optional": true,
3113
+ "requires": {
3114
+ "safer-buffer": "^2.1.0"
3115
+ }
3116
+ },
3117
+ "ignore-walk": {
3118
+ "version": "3.0.1",
3119
+ "bundled": true,
3120
+ "dev": true,
3121
+ "optional": true,
3122
+ "requires": {
3123
+ "minimatch": "^3.0.4"
3124
+ }
3125
+ },
3126
+ "inflight": {
3127
+ "version": "1.0.6",
3128
+ "bundled": true,
3129
+ "dev": true,
3130
+ "optional": true,
3131
+ "requires": {
3132
+ "once": "^1.3.0",
3133
+ "wrappy": "1"
3134
+ }
3135
+ },
3136
+ "inherits": {
3137
+ "version": "2.0.3",
3138
+ "bundled": true,
3139
+ "dev": true
3140
+ },
3141
+ "ini": {
3142
+ "version": "1.3.5",
3143
+ "bundled": true,
3144
+ "dev": true,
3145
+ "optional": true
3146
+ },
3147
+ "is-fullwidth-code-point": {
3148
+ "version": "1.0.0",
3149
+ "bundled": true,
3150
+ "dev": true,
3151
+ "requires": {
3152
+ "number-is-nan": "^1.0.0"
3153
+ }
3154
+ },
3155
+ "isarray": {
3156
+ "version": "1.0.0",
3157
+ "bundled": true,
3158
+ "dev": true,
3159
+ "optional": true
3160
+ },
3161
+ "minimatch": {
3162
+ "version": "3.0.4",
3163
+ "bundled": true,
3164
+ "dev": true,
3165
+ "requires": {
3166
+ "brace-expansion": "^1.1.7"
3167
+ }
3168
+ },
3169
+ "minimist": {
3170
+ "version": "0.0.8",
3171
+ "bundled": true,
3172
+ "dev": true
3173
+ },
3174
+ "minipass": {
3175
+ "version": "2.2.4",
3176
+ "bundled": true,
3177
+ "dev": true,
3178
+ "requires": {
3179
+ "safe-buffer": "^5.1.1",
3180
+ "yallist": "^3.0.0"
3181
+ }
3182
+ },
3183
+ "minizlib": {
3184
+ "version": "1.1.0",
3185
+ "bundled": true,
3186
+ "dev": true,
3187
+ "optional": true,
3188
+ "requires": {
3189
+ "minipass": "^2.2.1"
3190
+ }
3191
+ },
3192
+ "mkdirp": {
3193
+ "version": "0.5.1",
3194
+ "bundled": true,
3195
+ "dev": true,
3196
+ "requires": {
3197
+ "minimist": "0.0.8"
3198
+ }
3199
+ },
3200
+ "ms": {
3201
+ "version": "2.0.0",
3202
+ "bundled": true,
3203
+ "dev": true,
3204
+ "optional": true
3205
+ },
3206
+ "needle": {
3207
+ "version": "2.2.0",
3208
+ "bundled": true,
3209
+ "dev": true,
3210
+ "optional": true,
3211
+ "requires": {
3212
+ "debug": "^2.1.2",
3213
+ "iconv-lite": "^0.4.4",
3214
+ "sax": "^1.2.4"
3215
+ }
3216
+ },
3217
+ "node-pre-gyp": {
3218
+ "version": "0.10.0",
3219
+ "bundled": true,
3220
+ "dev": true,
3221
+ "optional": true,
3222
+ "requires": {
3223
+ "detect-libc": "^1.0.2",
3224
+ "mkdirp": "^0.5.1",
3225
+ "needle": "^2.2.0",
3226
+ "nopt": "^4.0.1",
3227
+ "npm-packlist": "^1.1.6",
3228
+ "npmlog": "^4.0.2",
3229
+ "rc": "^1.1.7",
3230
+ "rimraf": "^2.6.1",
3231
+ "semver": "^5.3.0",
3232
+ "tar": "^4"
3233
+ }
3234
+ },
3235
+ "nopt": {
3236
+ "version": "4.0.1",
3237
+ "bundled": true,
3238
+ "dev": true,
3239
+ "optional": true,
3240
+ "requires": {
3241
+ "abbrev": "1",
3242
+ "osenv": "^0.1.4"
3243
+ }
3244
+ },
3245
+ "npm-bundled": {
3246
+ "version": "1.0.3",
3247
+ "bundled": true,
3248
+ "dev": true,
3249
+ "optional": true
3250
+ },
3251
+ "npm-packlist": {
3252
+ "version": "1.1.10",
3253
+ "bundled": true,
3254
+ "dev": true,
3255
+ "optional": true,
3256
+ "requires": {
3257
+ "ignore-walk": "^3.0.1",
3258
+ "npm-bundled": "^1.0.1"
3259
+ }
3260
+ },
3261
+ "npmlog": {
3262
+ "version": "4.1.2",
3263
+ "bundled": true,
3264
+ "dev": true,
3265
+ "optional": true,
3266
+ "requires": {
3267
+ "are-we-there-yet": "~1.1.2",
3268
+ "console-control-strings": "~1.1.0",
3269
+ "gauge": "~2.7.3",
3270
+ "set-blocking": "~2.0.0"
3271
+ }
3272
+ },
3273
+ "number-is-nan": {
3274
+ "version": "1.0.1",
3275
+ "bundled": true,
3276
+ "dev": true
3277
+ },
3278
+ "object-assign": {
3279
+ "version": "4.1.1",
3280
+ "bundled": true,
3281
+ "dev": true,
3282
+ "optional": true
3283
+ },
3284
+ "once": {
3285
+ "version": "1.4.0",
3286
+ "bundled": true,
3287
+ "dev": true,
3288
+ "requires": {
3289
+ "wrappy": "1"
3290
+ }
3291
+ },
3292
+ "os-homedir": {
3293
+ "version": "1.0.2",
3294
+ "bundled": true,
3295
+ "dev": true,
3296
+ "optional": true
3297
+ },
3298
+ "os-tmpdir": {
3299
+ "version": "1.0.2",
3300
+ "bundled": true,
3301
+ "dev": true,
3302
+ "optional": true
3303
+ },
3304
+ "osenv": {
3305
+ "version": "0.1.5",
3306
+ "bundled": true,
3307
+ "dev": true,
3308
+ "optional": true,
3309
+ "requires": {
3310
+ "os-homedir": "^1.0.0",
3311
+ "os-tmpdir": "^1.0.0"
3312
+ }
3313
+ },
3314
+ "path-is-absolute": {
3315
+ "version": "1.0.1",
3316
+ "bundled": true,
3317
+ "dev": true,
3318
+ "optional": true
3319
+ },
3320
+ "process-nextick-args": {
3321
+ "version": "2.0.0",
3322
+ "bundled": true,
3323
+ "dev": true,
3324
+ "optional": true
3325
+ },
3326
+ "rc": {
3327
+ "version": "1.2.7",
3328
+ "bundled": true,
3329
+ "dev": true,
3330
+ "optional": true,
3331
+ "requires": {
3332
+ "deep-extend": "^0.5.1",
3333
+ "ini": "~1.3.0",
3334
+ "minimist": "^1.2.0",
3335
+ "strip-json-comments": "~2.0.1"
3336
+ },
3337
+ "dependencies": {
3338
+ "minimist": {
3339
+ "version": "1.2.0",
3340
+ "bundled": true,
3341
+ "dev": true,
3342
+ "optional": true
3343
+ }
3344
+ }
3345
+ },
3346
+ "readable-stream": {
3347
+ "version": "2.3.6",
3348
+ "bundled": true,
3349
+ "dev": true,
3350
+ "optional": true,
3351
+ "requires": {
3352
+ "core-util-is": "~1.0.0",
3353
+ "inherits": "~2.0.3",
3354
+ "isarray": "~1.0.0",
3355
+ "process-nextick-args": "~2.0.0",
3356
+ "safe-buffer": "~5.1.1",
3357
+ "string_decoder": "~1.1.1",
3358
+ "util-deprecate": "~1.0.1"
3359
+ }
3360
+ },
3361
+ "rimraf": {
3362
+ "version": "2.6.2",
3363
+ "bundled": true,
3364
+ "dev": true,
3365
+ "optional": true,
3366
+ "requires": {
3367
+ "glob": "^7.0.5"
3368
+ }
3369
+ },
3370
+ "safe-buffer": {
3371
+ "version": "5.1.1",
3372
+ "bundled": true,
3373
+ "dev": true
3374
+ },
3375
+ "safer-buffer": {
3376
+ "version": "2.1.2",
3377
+ "bundled": true,
3378
+ "dev": true,
3379
+ "optional": true
3380
+ },
3381
+ "sax": {
3382
+ "version": "1.2.4",
3383
+ "bundled": true,
3384
+ "dev": true,
3385
+ "optional": true
3386
+ },
3387
+ "semver": {
3388
+ "version": "5.5.0",
3389
+ "bundled": true,
3390
+ "dev": true,
3391
+ "optional": true
3392
+ },
3393
+ "set-blocking": {
3394
+ "version": "2.0.0",
3395
+ "bundled": true,
3396
+ "dev": true,
3397
+ "optional": true
3398
+ },
3399
+ "signal-exit": {
3400
+ "version": "3.0.2",
3401
+ "bundled": true,
3402
+ "dev": true,
3403
+ "optional": true
3404
+ },
3405
+ "string-width": {
3406
+ "version": "1.0.2",
3407
+ "bundled": true,
3408
+ "dev": true,
3409
+ "requires": {
3410
+ "code-point-at": "^1.0.0",
3411
+ "is-fullwidth-code-point": "^1.0.0",
3412
+ "strip-ansi": "^3.0.0"
3413
+ }
3414
+ },
3415
+ "string_decoder": {
3416
+ "version": "1.1.1",
3417
+ "bundled": true,
3418
+ "dev": true,
3419
+ "optional": true,
3420
+ "requires": {
3421
+ "safe-buffer": "~5.1.0"
3422
+ }
3423
+ },
3424
+ "strip-ansi": {
3425
+ "version": "3.0.1",
3426
+ "bundled": true,
3427
+ "dev": true,
3428
+ "requires": {
3429
+ "ansi-regex": "^2.0.0"
3430
+ }
3431
+ },
3432
+ "strip-json-comments": {
3433
+ "version": "2.0.1",
3434
+ "bundled": true,
3435
+ "dev": true,
3436
+ "optional": true
3437
+ },
3438
+ "tar": {
3439
+ "version": "4.4.1",
3440
+ "bundled": true,
3441
+ "dev": true,
3442
+ "optional": true,
3443
+ "requires": {
3444
+ "chownr": "^1.0.1",
3445
+ "fs-minipass": "^1.2.5",
3446
+ "minipass": "^2.2.4",
3447
+ "minizlib": "^1.1.0",
3448
+ "mkdirp": "^0.5.0",
3449
+ "safe-buffer": "^5.1.1",
3450
+ "yallist": "^3.0.2"
3451
+ }
3452
+ },
3453
+ "util-deprecate": {
3454
+ "version": "1.0.2",
3455
+ "bundled": true,
3456
+ "dev": true,
3457
+ "optional": true
3458
+ },
3459
+ "wide-align": {
3460
+ "version": "1.1.2",
3461
+ "bundled": true,
3462
+ "dev": true,
3463
+ "optional": true,
3464
+ "requires": {
3465
+ "string-width": "^1.0.2"
3466
+ }
3467
+ },
3468
+ "wrappy": {
3469
+ "version": "1.0.2",
3470
+ "bundled": true,
3471
+ "dev": true
3472
+ },
3473
+ "yallist": {
3474
+ "version": "3.0.2",
3475
+ "bundled": true,
3476
+ "dev": true
3477
+ }
3478
+ }
3479
+ },
3480
+ "fstream": {
3481
+ "version": "1.0.11",
3482
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
3483
+ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
3484
+ "dev": true,
3485
+ "requires": {
3486
+ "graceful-fs": "^4.1.2",
3487
+ "inherits": "~2.0.0",
3488
+ "mkdirp": ">=0.5 0",
3489
+ "rimraf": "2"
3490
+ }
3491
+ },
3492
+ "gauge": {
3493
+ "version": "2.7.4",
3494
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
3495
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
3496
+ "dev": true,
3497
+ "requires": {
3498
+ "aproba": "^1.0.3",
3499
+ "console-control-strings": "^1.0.0",
3500
+ "has-unicode": "^2.0.0",
3501
+ "object-assign": "^4.1.0",
3502
+ "signal-exit": "^3.0.0",
3503
+ "string-width": "^1.0.1",
3504
+ "strip-ansi": "^3.0.1",
3505
+ "wide-align": "^1.1.0"
3506
+ }
3507
+ },
3508
+ "gaze": {
3509
+ "version": "1.1.3",
3510
+ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
3511
+ "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
3512
+ "dev": true,
3513
+ "requires": {
3514
+ "globule": "^1.0.0"
3515
+ }
3516
+ },
3517
+ "get-caller-file": {
3518
+ "version": "1.0.3",
3519
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
3520
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
3521
+ "dev": true
3522
+ },
3523
+ "get-stdin": {
3524
+ "version": "4.0.1",
3525
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
3526
+ "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
3527
+ "dev": true
3528
+ },
3529
+ "get-stream": {
3530
+ "version": "3.0.0",
3531
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
3532
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
3533
+ "dev": true
3534
+ },
3535
+ "get-value": {
3536
+ "version": "2.0.6",
3537
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3538
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
3539
+ "dev": true
3540
+ },
3541
+ "getobject": {
3542
+ "version": "0.1.0",
3543
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
3544
+ "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
3545
+ "dev": true
3546
+ },
3547
+ "getpass": {
3548
+ "version": "0.1.7",
3549
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
3550
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
3551
+ "dev": true,
3552
+ "requires": {
3553
+ "assert-plus": "^1.0.0"
3554
+ }
3555
+ },
3556
+ "gettext-parser": {
3557
+ "version": "2.0.0",
3558
+ "resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-2.0.0.tgz",
3559
+ "integrity": "sha512-FDs/7XjNw58ToQwJFO7avZZbPecSYgw8PBYhd0An+4JtZSrSzKhEvTsVV2uqdO7VziWTOGSgLGD5YRPdsCjF7Q==",
3560
+ "dev": true,
3561
+ "requires": {
3562
+ "encoding": "^0.1.12",
3563
+ "safe-buffer": "^5.1.2"
3564
+ }
3565
+ },
3566
+ "glob": {
3567
+ "version": "7.1.3",
3568
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
3569
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
3570
+ "dev": true,
3571
+ "requires": {
3572
+ "fs.realpath": "^1.0.0",
3573
+ "inflight": "^1.0.4",
3574
+ "inherits": "2",
3575
+ "minimatch": "^3.0.4",
3576
+ "once": "^1.3.0",
3577
+ "path-is-absolute": "^1.0.0"
3578
+ }
3579
+ },
3580
+ "glob-base": {
3581
+ "version": "0.3.0",
3582
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
3583
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
3584
+ "dev": true,
3585
+ "requires": {
3586
+ "glob-parent": "^2.0.0",
3587
+ "is-glob": "^2.0.0"
3588
+ }
3589
+ },
3590
+ "glob-parent": {
3591
+ "version": "2.0.0",
3592
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
3593
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
3594
+ "dev": true,
3595
+ "requires": {
3596
+ "is-glob": "^2.0.0"
3597
+ }
3598
+ },
3599
+ "globals": {
3600
+ "version": "9.18.0",
3601
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
3602
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
3603
+ "dev": true
3604
+ },
3605
+ "globby": {
3606
+ "version": "6.1.0",
3607
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
3608
+ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
3609
+ "dev": true,
3610
+ "requires": {
3611
+ "array-union": "^1.0.1",
3612
+ "glob": "^7.0.3",
3613
+ "object-assign": "^4.0.1",
3614
+ "pify": "^2.0.0",
3615
+ "pinkie-promise": "^2.0.0"
3616
+ },
3617
+ "dependencies": {
3618
+ "pify": {
3619
+ "version": "2.3.0",
3620
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
3621
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
3622
+ "dev": true
3623
+ }
3624
+ }
3625
+ },
3626
+ "globjoin": {
3627
+ "version": "0.1.4",
3628
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
3629
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
3630
+ "dev": true
3631
+ },
3632
+ "globule": {
3633
+ "version": "1.2.1",
3634
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
3635
+ "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
3636
+ "dev": true,
3637
+ "requires": {
3638
+ "glob": "~7.1.1",
3639
+ "lodash": "~4.17.10",
3640
+ "minimatch": "~3.0.2"
3641
+ }
3642
+ },
3643
+ "graceful-fs": {
3644
+ "version": "4.1.11",
3645
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
3646
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
3647
+ "dev": true
3648
+ },
3649
+ "grunt": {
3650
+ "version": "1.0.3",
3651
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
3652
+ "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
3653
+ "dev": true,
3654
+ "requires": {
3655
+ "coffeescript": "~1.10.0",
3656
+ "dateformat": "~1.0.12",
3657
+ "eventemitter2": "~0.4.13",
3658
+ "exit": "~0.1.1",
3659
+ "findup-sync": "~0.3.0",
3660
+ "glob": "~7.0.0",
3661
+ "grunt-cli": "~1.2.0",
3662
+ "grunt-known-options": "~1.1.0",
3663
+ "grunt-legacy-log": "~2.0.0",
3664
+ "grunt-legacy-util": "~1.1.1",
3665
+ "iconv-lite": "~0.4.13",
3666
+ "js-yaml": "~3.5.2",
3667
+ "minimatch": "~3.0.2",
3668
+ "mkdirp": "~0.5.1",
3669
+ "nopt": "~3.0.6",
3670
+ "path-is-absolute": "~1.0.0",
3671
+ "rimraf": "~2.6.2"
3672
+ },
3673
+ "dependencies": {
3674
+ "glob": {
3675
+ "version": "7.0.6",
3676
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
3677
+ "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
3678
+ "dev": true,
3679
+ "requires": {
3680
+ "fs.realpath": "^1.0.0",
3681
+ "inflight": "^1.0.4",
3682
+ "inherits": "2",
3683
+ "minimatch": "^3.0.2",
3684
+ "once": "^1.3.0",
3685
+ "path-is-absolute": "^1.0.0"
3686
+ }
3687
+ },
3688
+ "grunt-cli": {
3689
+ "version": "1.2.0",
3690
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
3691
+ "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
3692
+ "dev": true,
3693
+ "requires": {
3694
+ "findup-sync": "~0.3.0",
3695
+ "grunt-known-options": "~1.1.0",
3696
+ "nopt": "~3.0.6",
3697
+ "resolve": "~1.1.0"
3698
+ }
3699
+ }
3700
+ }
3701
+ },
3702
+ "grunt-checktextdomain": {
3703
+ "version": "1.0.1",
3704
+ "resolved": "https://registry.npmjs.org/grunt-checktextdomain/-/grunt-checktextdomain-1.0.1.tgz",
3705
+ "integrity": "sha1-slTQHh3pEwBdTbHFMD2QI7mD4Zs=",
3706
+ "dev": true,
3707
+ "requires": {
3708
+ "chalk": "~0.2.1",
3709
+ "text-table": "~0.2.0"
3710
+ },
3711
+ "dependencies": {
3712
+ "ansi-styles": {
3713
+ "version": "0.2.0",
3714
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-0.2.0.tgz",
3715
+ "integrity": "sha1-NZq0sV3NZLptdHNLcsNjYKmvLBk=",
3716
+ "dev": true
3717
+ },
3718
+ "chalk": {
3719
+ "version": "0.2.1",
3720
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-0.2.1.tgz",
3721
+ "integrity": "sha1-dhPhV1FFshOGSD9/SFql/6jL0Qw=",
3722
+ "dev": true,
3723
+ "requires": {
3724
+ "ansi-styles": "~0.2.0",
3725
+ "has-color": "~0.1.0"
3726
+ }
3727
+ }
3728
+ }
3729
+ },
3730
+ "grunt-contrib-clean": {
3731
+ "version": "1.1.0",
3732
+ "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz",
3733
+ "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=",
3734
+ "dev": true,
3735
+ "requires": {
3736
+ "async": "^1.5.2",
3737
+ "rimraf": "^2.5.1"
3738
+ }
3739
+ },
3740
+ "grunt-contrib-concat": {
3741
+ "version": "1.0.1",
3742
+ "resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
3743
+ "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=",
3744
+ "dev": true,
3745
+ "requires": {
3746
+ "chalk": "^1.0.0",
3747
+ "source-map": "^0.5.3"
3748
+ },
3749
+ "dependencies": {
3750
+ "ansi-styles": {
3751
+ "version": "2.2.1",
3752
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
3753
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
3754
+ "dev": true
3755
+ },
3756
+ "chalk": {
3757
+ "version": "1.1.3",
3758
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
3759
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
3760
+ "dev": true,
3761
+ "requires": {
3762
+ "ansi-styles": "^2.2.1",
3763
+ "escape-string-regexp": "^1.0.2",
3764
+ "has-ansi": "^2.0.0",
3765
+ "strip-ansi": "^3.0.0",
3766
+ "supports-color": "^2.0.0"
3767
+ }
3768
+ },
3769
+ "source-map": {
3770
+ "version": "0.5.7",
3771
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
3772
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
3773
+ "dev": true
3774
+ },
3775
+ "supports-color": {
3776
+ "version": "2.0.0",
3777
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3778
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3779
+ "dev": true
3780
+ }
3781
+ }
3782
+ },
3783
+ "grunt-contrib-cssmin": {
3784
+ "version": "2.2.1",
3785
+ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.1.tgz",
3786
+ "integrity": "sha512-IXNomhQ5ekVZbDbj/ik5YccoD9khU6LT2fDXqO1+/Txjq8cp0tQKjVS8i8EAbHOrSDkL7/UD6A7b+xj98gqh9w==",
3787
+ "dev": true,
3788
+ "requires": {
3789
+ "chalk": "^1.0.0",
3790
+ "clean-css": "~4.1.1",
3791
+ "maxmin": "^2.1.0"
3792
+ },
3793
+ "dependencies": {
3794
+ "ansi-styles": {
3795
+ "version": "2.2.1",
3796
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
3797
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
3798
+ "dev": true
3799
+ },
3800
+ "chalk": {
3801
+ "version": "1.1.3",
3802
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
3803
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
3804
+ "dev": true,
3805
+ "requires": {
3806
+ "ansi-styles": "^2.2.1",
3807
+ "escape-string-regexp": "^1.0.2",
3808
+ "has-ansi": "^2.0.0",
3809
+ "strip-ansi": "^3.0.0",
3810
+ "supports-color": "^2.0.0"
3811
+ }
3812
+ },
3813
+ "supports-color": {
3814
+ "version": "2.0.0",
3815
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3816
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3817
+ "dev": true
3818
+ }
3819
+ }
3820
+ },
3821
+ "grunt-contrib-jshint": {
3822
+ "version": "1.1.0",
3823
+ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
3824
+ "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=",
3825
+ "dev": true,
3826
+ "requires": {
3827
+ "chalk": "^1.1.1",
3828
+ "hooker": "^0.2.3",
3829
+ "jshint": "~2.9.4"
3830
+ },
3831
+ "dependencies": {
3832
+ "ansi-styles": {
3833
+ "version": "2.2.1",
3834
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
3835
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
3836
+ "dev": true
3837
+ },
3838
+ "chalk": {
3839
+ "version": "1.1.3",
3840
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
3841
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
3842
+ "dev": true,
3843
+ "requires": {
3844
+ "ansi-styles": "^2.2.1",
3845
+ "escape-string-regexp": "^1.0.2",
3846
+ "has-ansi": "^2.0.0",
3847
+ "strip-ansi": "^3.0.0",
3848
+ "supports-color": "^2.0.0"
3849
+ }
3850
+ },
3851
+ "supports-color": {
3852
+ "version": "2.0.0",
3853
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3854
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3855
+ "dev": true
3856
+ }
3857
+ }
3858
+ },
3859
+ "grunt-contrib-uglify": {
3860
+ "version": "3.1.0",
3861
+ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.1.0.tgz",
3862
+ "integrity": "sha512-4Dx6HOI4ipP4wOqHZEGYYLmBGMccfS6XAI8OOBCiLhLEN54CtxVdCYgT83dPdhxLpXFhNpG89frRjfqcos4H5w==",
3863
+ "dev": true,
3864
+ "requires": {
3865
+ "chalk": "^1.0.0",
3866
+ "maxmin": "^1.1.0",
3867
+ "uglify-js": "~3.0.4",
3868
+ "uri-path": "^1.0.0"
3869
+ },
3870
+ "dependencies": {
3871
+ "ansi-styles": {
3872
+ "version": "2.2.1",
3873
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
3874
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
3875
+ "dev": true
3876
+ },
3877
+ "chalk": {
3878
+ "version": "1.1.3",
3879
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
3880
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
3881
+ "dev": true,
3882
+ "requires": {
3883
+ "ansi-styles": "^2.2.1",
3884
+ "escape-string-regexp": "^1.0.2",
3885
+ "has-ansi": "^2.0.0",
3886
+ "strip-ansi": "^3.0.0",
3887
+ "supports-color": "^2.0.0"
3888
+ }
3889
+ },
3890
+ "gzip-size": {
3891
+ "version": "1.0.0",
3892
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
3893
+ "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
3894
+ "dev": true,
3895
+ "requires": {
3896
+ "browserify-zlib": "^0.1.4",
3897
+ "concat-stream": "^1.4.1"
3898
+ }
3899
+ },
3900
+ "maxmin": {
3901
+ "version": "1.1.0",
3902
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
3903
+ "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
3904
+ "dev": true,
3905
+ "requires": {
3906
+ "chalk": "^1.0.0",
3907
+ "figures": "^1.0.1",
3908
+ "gzip-size": "^1.0.0",
3909
+ "pretty-bytes": "^1.0.0"
3910
+ }
3911
+ },
3912
+ "pretty-bytes": {
3913
+ "version": "1.0.4",
3914
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
3915
+ "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
3916
+ "dev": true,
3917
+ "requires": {
3918
+ "get-stdin": "^4.0.1",
3919
+ "meow": "^3.1.0"
3920
+ }
3921
+ },
3922
+ "supports-color": {
3923
+ "version": "2.0.0",
3924
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
3925
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
3926
+ "dev": true
3927
+ }
3928
+ }
3929
+ },
3930
+ "grunt-contrib-watch": {
3931
+ "version": "1.0.1",
3932
+ "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.1.tgz",
3933
+ "integrity": "sha512-8Zka/svGl6+ZwF7d6z/CfXwsb4cDODnajmZsY4nUAs9Ob0kJEcsLiDf5qm2HdDoEcm3NHjWCrFiWx+PZ2y4D7A==",
3934
+ "dev": true,
3935
+ "requires": {
3936
+ "async": "^1.5.0",
3937
+ "gaze": "^1.1.0",
3938
+ "lodash": "^4.0.0",
3939
+ "tiny-lr": "^0.2.1"
3940
+ }
3941
+ },
3942
+ "grunt-known-options": {
3943
+ "version": "1.1.1",
3944
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz",
3945
+ "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==",
3946
+ "dev": true
3947
+ },
3948
+ "grunt-legacy-log": {
3949
+ "version": "2.0.0",
3950
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
3951
+ "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
3952
+ "dev": true,
3953
+ "requires": {
3954
+ "colors": "~1.1.2",
3955
+ "grunt-legacy-log-utils": "~2.0.0",
3956
+ "hooker": "~0.2.3",
3957
+ "lodash": "~4.17.5"
3958
+ }
3959
+ },
3960
+ "grunt-legacy-log-utils": {
3961
+ "version": "2.0.1",
3962
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
3963
+ "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
3964
+ "dev": true,
3965
+ "requires": {
3966
+ "chalk": "~2.4.1",
3967
+ "lodash": "~4.17.10"
3968
+ }
3969
+ },
3970
+ "grunt-legacy-util": {
3971
+ "version": "1.1.1",
3972
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
3973
+ "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
3974
+ "dev": true,
3975
+ "requires": {
3976
+ "async": "~1.5.2",
3977
+ "exit": "~0.1.1",
3978
+ "getobject": "~0.1.0",
3979
+ "hooker": "~0.2.3",
3980
+ "lodash": "~4.17.10",
3981
+ "underscore.string": "~3.3.4",
3982
+ "which": "~1.3.0"
3983
+ }
3984
+ },
3985
+ "grunt-phpcs": {
3986
+ "version": "0.4.0",
3987
+ "resolved": "https://registry.npmjs.org/grunt-phpcs/-/grunt-phpcs-0.4.0.tgz",
3988
+ "integrity": "sha1-oI1iX8ZEZeRTsr2T+BCyqB6Uvao=",
3989
+ "dev": true
3990
+ },
3991
+ "grunt-postcss": {
3992
+ "version": "0.9.0",
3993
+ "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.9.0.tgz",
3994
+ "integrity": "sha512-lglLcVaoOIqH0sFv7RqwUKkEFGQwnlqyAKbatxZderwZGV1nDyKHN7gZS9LUiTx1t5GOvRBx0BEalHMyVwFAIA==",
3995
+ "dev": true,
3996
+ "requires": {
3997
+ "chalk": "^2.1.0",
3998
+ "diff": "^3.0.0",
3999
+ "postcss": "^6.0.11"
4000
+ }
4001
+ },
4002
+ "grunt-rtlcss": {
4003
+ "version": "2.0.1",
4004
+ "resolved": "https://registry.npmjs.org/grunt-rtlcss/-/grunt-rtlcss-2.0.1.tgz",
4005
+ "integrity": "sha1-6eYc5DdAY5f546Sxv2aeR+cf/MM=",
4006
+ "dev": true,
4007
+ "requires": {
4008
+ "chalk": "^1.0.0",
4009
+ "rtlcss": "^2.0.0"
4010
+ },
4011
+ "dependencies": {
4012
+ "ansi-styles": {
4013
+ "version": "2.2.1",
4014
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
4015
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
4016
+ "dev": true
4017
+ },
4018
+ "chalk": {
4019
+ "version": "1.1.3",
4020
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
4021
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
4022
+ "dev": true,
4023
+ "requires": {
4024
+ "ansi-styles": "^2.2.1",
4025
+ "escape-string-regexp": "^1.0.2",
4026
+ "has-ansi": "^2.0.0",
4027
+ "strip-ansi": "^3.0.0",
4028
+ "supports-color": "^2.0.0"
4029
+ }
4030
+ },
4031
+ "supports-color": {
4032
+ "version": "2.0.0",
4033
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4034
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
4035
+ "dev": true
4036
+ }
4037
+ }
4038
+ },
4039
+ "grunt-sass": {
4040
+ "version": "2.0.0",
4041
+ "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-2.0.0.tgz",
4042
+ "integrity": "sha1-kHTPnXtFkuIPd4jKpye4+aoGtgo=",
4043
+ "dev": true,
4044
+ "requires": {
4045
+ "each-async": "^1.0.0",
4046
+ "node-sass": "^4.0.0",
4047
+ "object-assign": "^4.0.1"
4048
+ }
4049
+ },
4050
+ "grunt-shell": {
4051
+ "version": "2.1.0",
4052
+ "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-2.1.0.tgz",
4053
+ "integrity": "sha1-Q595FZ7RHmSmUaacyKPQK+v17MI=",
4054
+ "dev": true,
4055
+ "requires": {
4056
+ "chalk": "^1.0.0",
4057
+ "npm-run-path": "^2.0.0"
4058
+ },
4059
+ "dependencies": {
4060
+ "ansi-styles": {
4061
+ "version": "2.2.1",
4062
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
4063
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
4064
+ "dev": true
4065
+ },
4066
+ "chalk": {
4067
+ "version": "1.1.3",
4068
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
4069
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
4070
+ "dev": true,
4071
+ "requires": {
4072
+ "ansi-styles": "^2.2.1",
4073
+ "escape-string-regexp": "^1.0.2",
4074
+ "has-ansi": "^2.0.0",
4075
+ "strip-ansi": "^3.0.0",
4076
+ "supports-color": "^2.0.0"
4077
+ }
4078
+ },
4079
+ "supports-color": {
4080
+ "version": "2.0.0",
4081
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4082
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
4083
+ "dev": true
4084
+ }
4085
+ }
4086
+ },
4087
+ "grunt-stylelint": {
4088
+ "version": "0.9.0",
4089
+ "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.9.0.tgz",
4090
+ "integrity": "sha512-+eC6pRdt+6ZupNFbDYVBB7DtEdohjTNf3BRAXhCqMk2eqEYg/q+Bl3r6lFC6qGRNxmpfHR+qWnzb+KKCqKalaw==",
4091
+ "dev": true,
4092
+ "requires": {
4093
+ "chalk": "1.1.3"
4094
+ },
4095
+ "dependencies": {
4096
+ "ansi-styles": {
4097
+ "version": "2.2.1",
4098
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
4099
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
4100
+ "dev": true
4101
+ },
4102
+ "chalk": {
4103
+ "version": "1.1.3",
4104
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
4105
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
4106
+ "dev": true,
4107
+ "requires": {
4108
+ "ansi-styles": "^2.2.1",
4109
+ "escape-string-regexp": "^1.0.2",
4110
+ "has-ansi": "^2.0.0",
4111
+ "strip-ansi": "^3.0.0",
4112
+ "supports-color": "^2.0.0"
4113
+ }
4114
+ },
4115
+ "supports-color": {
4116
+ "version": "2.0.0",
4117
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
4118
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
4119
+ "dev": true
4120
+ }
4121
+ }
4122
+ },
4123
+ "grunt-wp-i18n": {
4124
+ "version": "1.0.2",
4125
+ "resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.2.tgz",
4126
+ "integrity": "sha512-s7DdR1wRYWvgeQOELL/s8AmWz0scVUq+h0yYVWvLx23kTXOBslvaD35NTvubyM+MO+k29bgND0gDDvS6sHixfg==",
4127
+ "dev": true,
4128
+ "requires": {
4129
+ "grunt": "^1.0.2",
4130
+ "node-wp-i18n": "^1.0.5"
4131
+ }
4132
+ },
4133
+ "gzip-size": {
4134
+ "version": "3.0.0",
4135
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
4136
+ "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=",
4137
+ "dev": true,
4138
+ "requires": {
4139
+ "duplexer": "^0.1.1"
4140
+ }
4141
+ },
4142
+ "har-schema": {
4143
+ "version": "2.0.0",
4144
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
4145
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
4146
+ "dev": true
4147
+ },
4148
+ "har-validator": {
4149
+ "version": "5.1.0",
4150
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
4151
+ "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
4152
+ "dev": true,
4153
+ "requires": {
4154
+ "ajv": "^5.3.0",
4155
+ "har-schema": "^2.0.0"
4156
+ }
4157
+ },
4158
+ "has-ansi": {
4159
+ "version": "2.0.0",
4160
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
4161
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
4162
+ "dev": true,
4163
+ "requires": {
4164
+ "ansi-regex": "^2.0.0"
4165
+ }
4166
+ },
4167
+ "has-color": {
4168
+ "version": "0.1.7",
4169
+ "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
4170
+ "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
4171
+ "dev": true
4172
+ },
4173
+ "has-flag": {
4174
+ "version": "3.0.0",
4175
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
4176
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
4177
+ "dev": true
4178
+ },
4179
+ "has-unicode": {
4180
+ "version": "2.0.1",
4181
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
4182
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
4183
+ "dev": true
4184
+ },
4185
+ "has-value": {
4186
+ "version": "1.0.0",
4187
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
4188
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
4189
+ "dev": true,
4190
+ "requires": {
4191
+ "get-value": "^2.0.6",
4192
+ "has-values": "^1.0.0",
4193
+ "isobject": "^3.0.0"
4194
+ },
4195
+ "dependencies": {
4196
+ "isobject": {
4197
+ "version": "3.0.1",
4198
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4199
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
4200
+ "dev": true
4201
+ }
4202
+ }
4203
+ },
4204
+ "has-values": {
4205
+ "version": "1.0.0",
4206
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
4207
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
4208
+ "dev": true,
4209
+ "requires": {
4210
+ "is-number": "^3.0.0",
4211
+ "kind-of": "^4.0.0"
4212
+ },
4213
+ "dependencies": {
4214
+ "is-number": {
4215
+ "version": "3.0.0",
4216
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
4217
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
4218
+ "dev": true,
4219
+ "requires": {
4220
+ "kind-of": "^3.0.2"
4221
+ },
4222
+ "dependencies": {
4223
+ "kind-of": {
4224
+ "version": "3.2.2",
4225
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4226
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4227
+ "dev": true,
4228
+ "requires": {
4229
+ "is-buffer": "^1.1.5"
4230
+ }
4231
+ }
4232
+ }
4233
+ },
4234
+ "kind-of": {
4235
+ "version": "4.0.0",
4236
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
4237
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
4238
+ "dev": true,
4239
+ "requires": {
4240
+ "is-buffer": "^1.1.5"
4241
+ }
4242
+ }
4243
+ }
4244
+ },
4245
+ "hash-base": {
4246
+ "version": "3.0.4",
4247
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
4248
+ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
4249
+ "dev": true,
4250
+ "requires": {
4251
+ "inherits": "^2.0.1",
4252
+ "safe-buffer": "^5.0.1"
4253
+ }
4254
+ },
4255
+ "hash.js": {
4256
+ "version": "1.1.5",
4257
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz",
4258
+ "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==",
4259
+ "dev": true,
4260
+ "requires": {
4261
+ "inherits": "^2.0.3",
4262
+ "minimalistic-assert": "^1.0.1"
4263
+ }
4264
+ },
4265
+ "hasha": {
4266
+ "version": "2.2.0",
4267
+ "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
4268
+ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
4269
+ "dev": true,
4270
+ "optional": true,
4271
+ "requires": {
4272
+ "is-stream": "^1.0.1",
4273
+ "pinkie-promise": "^2.0.0"
4274
+ }
4275
+ },
4276
+ "hmac-drbg": {
4277
+ "version": "1.0.1",
4278
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
4279
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
4280
+ "dev": true,
4281
+ "requires": {
4282
+ "hash.js": "^1.0.3",
4283
+ "minimalistic-assert": "^1.0.0",
4284
+ "minimalistic-crypto-utils": "^1.0.1"
4285
+ }
4286
+ },
4287
+ "home-or-tmp": {
4288
+ "version": "2.0.0",
4289
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
4290
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
4291
+ "dev": true,
4292
+ "requires": {
4293
+ "os-homedir": "^1.0.0",
4294
+ "os-tmpdir": "^1.0.1"
4295
+ }
4296
+ },
4297
+ "hooker": {
4298
+ "version": "0.2.3",
4299
+ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
4300
+ "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
4301
+ "dev": true
4302
+ },
4303
+ "hosted-git-info": {
4304
+ "version": "2.7.1",
4305
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
4306
+ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
4307
+ "dev": true
4308
+ },
4309
+ "html-tags": {
4310
+ "version": "2.0.0",
4311
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
4312
+ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
4313
+ "dev": true
4314
+ },
4315
+ "htmlparser2": {
4316
+ "version": "3.8.3",
4317
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
4318
+ "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
4319
+ "dev": true,
4320
+ "requires": {
4321
+ "domelementtype": "1",
4322
+ "domhandler": "2.3",
4323
+ "domutils": "1.5",
4324
+ "entities": "1.0",
4325
+ "readable-stream": "1.1"
4326
+ },
4327
+ "dependencies": {
4328
+ "isarray": {
4329
+ "version": "0.0.1",
4330
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
4331
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
4332
+ "dev": true
4333
+ },
4334
+ "readable-stream": {
4335
+ "version": "1.1.14",
4336
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
4337
+ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
4338
+ "dev": true,
4339
+ "requires": {
4340
+ "core-util-is": "~1.0.0",
4341
+ "inherits": "~2.0.1",
4342
+ "isarray": "0.0.1",
4343
+ "string_decoder": "~0.10.x"
4344
+ }
4345
+ },
4346
+ "string_decoder": {
4347
+ "version": "0.10.31",
4348
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
4349
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
4350
+ "dev": true
4351
+ }
4352
+ }
4353
+ },
4354
+ "http-errors": {
4355
+ "version": "1.3.1",
4356
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
4357
+ "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=",
4358
+ "dev": true,
4359
+ "requires": {
4360
+ "inherits": "~2.0.1",
4361
+ "statuses": "1"
4362
+ }
4363
+ },
4364
+ "http-parser-js": {
4365
+ "version": "0.4.13",
4366
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
4367
+ "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
4368
+ "dev": true
4369
+ },
4370
+ "http-signature": {
4371
+ "version": "1.2.0",
4372
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
4373
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
4374
+ "dev": true,
4375
+ "requires": {
4376
+ "assert-plus": "^1.0.0",
4377
+ "jsprim": "^1.2.2",
4378
+ "sshpk": "^1.7.0"
4379
+ }
4380
+ },
4381
+ "https-browserify": {
4382
+ "version": "1.0.0",
4383
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
4384
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
4385
+ "dev": true
4386
+ },
4387
+ "iconv-lite": {
4388
+ "version": "0.4.24",
4389
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
4390
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
4391
+ "dev": true,
4392
+ "requires": {
4393
+ "safer-buffer": ">= 2.1.2 < 3"
4394
+ }
4395
+ },
4396
+ "ieee754": {
4397
+ "version": "1.1.12",
4398
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz",
4399
+ "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==",
4400
+ "dev": true
4401
+ },
4402
+ "ignore": {
4403
+ "version": "3.3.10",
4404
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
4405
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
4406
+ "dev": true
4407
+ },
4408
+ "imurmurhash": {
4409
+ "version": "0.1.4",
4410
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
4411
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
4412
+ "dev": true
4413
+ },
4414
+ "in-publish": {
4415
+ "version": "2.0.0",
4416
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
4417
+ "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
4418
+ "dev": true
4419
+ },
4420
+ "indent-string": {
4421
+ "version": "2.1.0",
4422
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
4423
+ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
4424
+ "dev": true,
4425
+ "requires": {
4426
+ "repeating": "^2.0.0"
4427
+ }
4428
+ },
4429
+ "indexes-of": {
4430
+ "version": "1.0.1",
4431
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
4432
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
4433
+ "dev": true
4434
+ },
4435
+ "indexof": {
4436
+ "version": "0.0.1",
4437
+ "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
4438
+ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
4439
+ "dev": true
4440
+ },
4441
+ "inflight": {
4442
+ "version": "1.0.6",
4443
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4444
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
4445
+ "dev": true,
4446
+ "requires": {
4447
+ "once": "^1.3.0",
4448
+ "wrappy": "1"
4449
+ }
4450
+ },
4451
+ "inherits": {
4452
+ "version": "2.0.3",
4453
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
4454
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
4455
+ "dev": true
4456
+ },
4457
+ "interpret": {
4458
+ "version": "1.1.0",
4459
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
4460
+ "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
4461
+ "dev": true
4462
+ },
4463
+ "invariant": {
4464
+ "version": "2.2.4",
4465
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
4466
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
4467
+ "dev": true,
4468
+ "requires": {
4469
+ "loose-envify": "^1.0.0"
4470
+ }
4471
+ },
4472
+ "invert-kv": {
4473
+ "version": "1.0.0",
4474
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
4475
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
4476
+ "dev": true
4477
+ },
4478
+ "is-accessor-descriptor": {
4479
+ "version": "0.1.6",
4480
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
4481
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
4482
+ "dev": true,
4483
+ "requires": {
4484
+ "kind-of": "^3.0.2"
4485
+ }
4486
+ },
4487
+ "is-arrayish": {
4488
+ "version": "0.2.1",
4489
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
4490
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
4491
+ "dev": true
4492
+ },
4493
+ "is-binary-path": {
4494
+ "version": "1.0.1",
4495
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
4496
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
4497
+ "dev": true,
4498
+ "requires": {
4499
+ "binary-extensions": "^1.0.0"
4500
+ }
4501
+ },
4502
+ "is-buffer": {
4503
+ "version": "1.1.6",
4504
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
4505
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
4506
+ "dev": true
4507
+ },
4508
+ "is-builtin-module": {
4509
+ "version": "1.0.0",
4510
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
4511
+ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
4512
+ "dev": true,
4513
+ "requires": {
4514
+ "builtin-modules": "^1.0.0"
4515
+ }
4516
+ },
4517
+ "is-data-descriptor": {
4518
+ "version": "0.1.4",
4519
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
4520
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
4521
+ "dev": true,
4522
+ "requires": {
4523
+ "kind-of": "^3.0.2"
4524
+ }
4525
+ },
4526
+ "is-descriptor": {
4527
+ "version": "0.1.6",
4528
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
4529
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
4530
+ "dev": true,
4531
+ "requires": {
4532
+ "is-accessor-descriptor": "^0.1.6",
4533
+ "is-data-descriptor": "^0.1.4",
4534
+ "kind-of": "^5.0.0"
4535
+ },
4536
+ "dependencies": {
4537
+ "kind-of": {
4538
+ "version": "5.1.0",
4539
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
4540
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
4541
+ "dev": true
4542
+ }
4543
+ }
4544
+ },
4545
+ "is-directory": {
4546
+ "version": "0.3.1",
4547
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
4548
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
4549
+ "dev": true
4550
+ },
4551
+ "is-dotfile": {
4552
+ "version": "1.0.3",
4553
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
4554
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
4555
+ "dev": true
4556
+ },
4557
+ "is-equal-shallow": {
4558
+ "version": "0.1.3",
4559
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
4560
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
4561
+ "dev": true,
4562
+ "requires": {
4563
+ "is-primitive": "^2.0.0"
4564
+ }
4565
+ },
4566
+ "is-extendable": {
4567
+ "version": "0.1.1",
4568
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
4569
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
4570
+ "dev": true
4571
+ },
4572
+ "is-extglob": {
4573
+ "version": "1.0.0",
4574
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
4575
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
4576
+ "dev": true
4577
+ },
4578
+ "is-finite": {
4579
+ "version": "1.0.2",
4580
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
4581
+ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
4582
+ "dev": true,
4583
+ "requires": {
4584
+ "number-is-nan": "^1.0.0"
4585
+ }
4586
+ },
4587
+ "is-fullwidth-code-point": {
4588
+ "version": "1.0.0",
4589
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
4590
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
4591
+ "dev": true,
4592
+ "requires": {
4593
+ "number-is-nan": "^1.0.0"
4594
+ }
4595
+ },
4596
+ "is-glob": {
4597
+ "version": "2.0.1",
4598
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
4599
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
4600
+ "dev": true,
4601
+ "requires": {
4602
+ "is-extglob": "^1.0.0"
4603
+ }
4604
+ },
4605
+ "is-number": {
4606
+ "version": "2.1.0",
4607
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
4608
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
4609
+ "dev": true,
4610
+ "requires": {
4611
+ "kind-of": "^3.0.2"
4612
+ }
4613
+ },
4614
+ "is-path-cwd": {
4615
+ "version": "1.0.0",
4616
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
4617
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
4618
+ "dev": true
4619
+ },
4620
+ "is-path-in-cwd": {
4621
+ "version": "1.0.1",
4622
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
4623
+ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
4624
+ "dev": true,
4625
+ "requires": {
4626
+ "is-path-inside": "^1.0.0"
4627
+ }
4628
+ },
4629
+ "is-path-inside": {
4630
+ "version": "1.0.1",
4631
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
4632
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
4633
+ "dev": true,
4634
+ "requires": {
4635
+ "path-is-inside": "^1.0.1"
4636
+ }
4637
+ },
4638
+ "is-plain-object": {
4639
+ "version": "2.0.4",
4640
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
4641
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
4642
+ "dev": true,
4643
+ "requires": {
4644
+ "isobject": "^3.0.1"
4645
+ },
4646
+ "dependencies": {
4647
+ "isobject": {
4648
+ "version": "3.0.1",
4649
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4650
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
4651
+ "dev": true
4652
+ }
4653
+ }
4654
+ },
4655
+ "is-posix-bracket": {
4656
+ "version": "0.1.1",
4657
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
4658
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
4659
+ "dev": true
4660
+ },
4661
+ "is-primitive": {
4662
+ "version": "2.0.0",
4663
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
4664
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
4665
+ "dev": true
4666
+ },
4667
+ "is-regexp": {
4668
+ "version": "1.0.0",
4669
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
4670
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
4671
+ "dev": true
4672
+ },
4673
+ "is-stream": {
4674
+ "version": "1.1.0",
4675
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
4676
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
4677
+ "dev": true
4678
+ },
4679
+ "is-supported-regexp-flag": {
4680
+ "version": "1.0.1",
4681
+ "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz",
4682
+ "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==",
4683
+ "dev": true
4684
+ },
4685
+ "is-typedarray": {
4686
+ "version": "1.0.0",
4687
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
4688
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
4689
+ "dev": true
4690
+ },
4691
+ "is-utf8": {
4692
+ "version": "0.2.1",
4693
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
4694
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
4695
+ "dev": true
4696
+ },
4697
+ "is-windows": {
4698
+ "version": "1.0.2",
4699
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
4700
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
4701
+ "dev": true
4702
+ },
4703
+ "isarray": {
4704
+ "version": "1.0.0",
4705
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4706
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
4707
+ "dev": true
4708
+ },
4709
+ "isexe": {
4710
+ "version": "2.0.0",
4711
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4712
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
4713
+ "dev": true
4714
+ },
4715
+ "isobject": {
4716
+ "version": "2.1.0",
4717
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4718
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4719
+ "dev": true,
4720
+ "requires": {
4721
+ "isarray": "1.0.0"
4722
+ }
4723
+ },
4724
+ "isstream": {
4725
+ "version": "0.1.2",
4726
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
4727
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
4728
+ "dev": true
4729
+ },
4730
+ "js-base64": {
4731
+ "version": "2.4.9",
4732
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz",
4733
+ "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==",
4734
+ "dev": true
4735
+ },
4736
+ "js-tokens": {
4737
+ "version": "3.0.2",
4738
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
4739
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
4740
+ "dev": true
4741
+ },
4742
+ "js-yaml": {
4743
+ "version": "3.5.5",
4744
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
4745
+ "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
4746
+ "dev": true,
4747
+ "requires": {
4748
+ "argparse": "^1.0.2",
4749
+ "esprima": "^2.6.0"
4750
+ }
4751
+ },
4752
+ "jsbn": {
4753
+ "version": "0.1.1",
4754
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
4755
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
4756
+ "dev": true,
4757
+ "optional": true
4758
+ },
4759
+ "jsesc": {
4760
+ "version": "1.3.0",
4761
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
4762
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
4763
+ "dev": true
4764
+ },
4765
+ "jshint": {
4766
+ "version": "2.9.6",
4767
+ "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz",
4768
+ "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==",
4769
+ "dev": true,
4770
+ "requires": {
4771
+ "cli": "~1.0.0",
4772
+ "console-browserify": "1.1.x",
4773
+ "exit": "0.1.x",
4774
+ "htmlparser2": "3.8.x",
4775
+ "lodash": "~4.17.10",
4776
+ "minimatch": "~3.0.2",
4777
+ "phantom": "~4.0.1",
4778
+ "phantomjs-prebuilt": "~2.1.7",
4779
+ "shelljs": "0.3.x",
4780
+ "strip-json-comments": "1.0.x",
4781
+ "unicode-5.2.0": "^0.7.5"
4782
+ }
4783
+ },
4784
+ "json-loader": {
4785
+ "version": "0.5.7",
4786
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
4787
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
4788
+ "dev": true
4789
+ },
4790
+ "json-schema": {
4791
+ "version": "0.2.3",
4792
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
4793
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
4794
+ "dev": true
4795
+ },
4796
+ "json-schema-traverse": {
4797
+ "version": "0.3.1",
4798
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
4799
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
4800
+ "dev": true
4801
+ },
4802
+ "json-stringify-safe": {
4803
+ "version": "5.0.1",
4804
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
4805
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
4806
+ "dev": true
4807
+ },
4808
+ "json5": {
4809
+ "version": "0.5.1",
4810
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
4811
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
4812
+ "dev": true
4813
+ },
4814
+ "jsonfile": {
4815
+ "version": "2.4.0",
4816
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
4817
+ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
4818
+ "dev": true,
4819
+ "optional": true,
4820
+ "requires": {
4821
+ "graceful-fs": "^4.1.6"
4822
+ }
4823
+ },
4824
+ "jsprim": {
4825
+ "version": "1.4.1",
4826
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
4827
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
4828
+ "dev": true,
4829
+ "requires": {
4830
+ "assert-plus": "1.0.0",
4831
+ "extsprintf": "1.3.0",
4832
+ "json-schema": "0.2.3",
4833
+ "verror": "1.10.0"
4834
+ }
4835
+ },
4836
+ "kew": {
4837
+ "version": "0.7.0",
4838
+ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
4839
+ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
4840
+ "dev": true,
4841
+ "optional": true
4842
+ },
4843
+ "kind-of": {
4844
+ "version": "3.2.2",
4845
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4846
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4847
+ "dev": true,
4848
+ "requires": {
4849
+ "is-buffer": "^1.1.5"
4850
+ }
4851
+ },
4852
+ "klaw": {
4853
+ "version": "1.3.1",
4854
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
4855
+ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
4856
+ "dev": true,
4857
+ "optional": true,
4858
+ "requires": {
4859
+ "graceful-fs": "^4.1.9"
4860
+ }
4861
+ },
4862
+ "known-css-properties": {
4863
+ "version": "0.4.1",
4864
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.4.1.tgz",
4865
+ "integrity": "sha512-n+ThoCKhyMFKkMfksdLMP5ndp+VzwDRzQdH6JlmZ2GTpUenYB2EeEKjOue2SErAAG/MmBSUISpwvawDhydWQdQ==",
4866
+ "dev": true
4867
+ },
4868
+ "lazy-cache": {
4869
+ "version": "1.0.4",
4870
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
4871
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
4872
+ "dev": true
4873
+ },
4874
+ "lcid": {
4875
+ "version": "1.0.0",
4876
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
4877
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
4878
+ "dev": true,
4879
+ "requires": {
4880
+ "invert-kv": "^1.0.0"
4881
+ }
4882
+ },
4883
+ "livereload-js": {
4884
+ "version": "2.3.0",
4885
+ "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz",
4886
+ "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==",
4887
+ "dev": true
4888
+ },
4889
+ "load-json-file": {
4890
+ "version": "1.1.0",
4891
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
4892
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
4893
+ "dev": true,
4894
+ "requires": {
4895
+ "graceful-fs": "^4.1.2",
4896
+ "parse-json": "^2.2.0",
4897
+ "pify": "^2.0.0",
4898
+ "pinkie-promise": "^2.0.0",
4899
+ "strip-bom": "^2.0.0"
4900
+ },
4901
+ "dependencies": {
4902
+ "pify": {
4903
+ "version": "2.3.0",
4904
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
4905
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
4906
+ "dev": true
4907
+ }
4908
+ }
4909
+ },
4910
+ "loader-runner": {
4911
+ "version": "2.3.0",
4912
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz",
4913
+ "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=",
4914
+ "dev": true
4915
+ },
4916
+ "loader-utils": {
4917
+ "version": "1.1.0",
4918
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
4919
+ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
4920
+ "dev": true,
4921
+ "requires": {
4922
+ "big.js": "^3.1.3",
4923
+ "emojis-list": "^2.0.0",
4924
+ "json5": "^0.5.0"
4925
+ }
4926
+ },
4927
+ "locate-path": {
4928
+ "version": "2.0.0",
4929
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
4930
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
4931
+ "dev": true,
4932
+ "requires": {
4933
+ "p-locate": "^2.0.0",
4934
+ "path-exists": "^3.0.0"
4935
+ }
4936
+ },
4937
+ "lodash": {
4938
+ "version": "4.17.10",
4939
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
4940
+ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
4941
+ "dev": true
4942
+ },
4943
+ "lodash.assign": {
4944
+ "version": "4.2.0",
4945
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
4946
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
4947
+ "dev": true
4948
+ },
4949
+ "lodash.clonedeep": {
4950
+ "version": "4.5.0",
4951
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
4952
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
4953
+ "dev": true
4954
+ },
4955
+ "lodash.debounce": {
4956
+ "version": "4.0.8",
4957
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
4958
+ "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
4959
+ "dev": true
4960
+ },
4961
+ "lodash.mergewith": {
4962
+ "version": "4.6.1",
4963
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
4964
+ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
4965
+ "dev": true
4966
+ },
4967
+ "log-symbols": {
4968
+ "version": "2.2.0",
4969
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
4970
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
4971
+ "dev": true,
4972
+ "requires": {
4973
+ "chalk": "^2.0.1"
4974
+ }
4975
+ },
4976
+ "longest": {
4977
+ "version": "1.0.1",
4978
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
4979
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
4980
+ "dev": true
4981
+ },
4982
+ "loose-envify": {
4983
+ "version": "1.4.0",
4984
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
4985
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
4986
+ "dev": true,
4987
+ "requires": {
4988
+ "js-tokens": "^3.0.0 || ^4.0.0"
4989
+ }
4990
+ },
4991
+ "loud-rejection": {
4992
+ "version": "1.6.0",
4993
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
4994
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
4995
+ "dev": true,
4996
+ "requires": {
4997
+ "currently-unhandled": "^0.4.1",
4998
+ "signal-exit": "^3.0.0"
4999
+ }
5000
+ },
5001
+ "lru-cache": {
5002
+ "version": "4.1.3",
5003
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
5004
+ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
5005
+ "dev": true,
5006
+ "requires": {
5007
+ "pseudomap": "^1.0.2",
5008
+ "yallist": "^2.1.2"
5009
+ }
5010
+ },
5011
+ "make-dir": {
5012
+ "version": "1.3.0",
5013
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
5014
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
5015
+ "dev": true,
5016
+ "requires": {
5017
+ "pify": "^3.0.0"
5018
+ }
5019
+ },
5020
+ "map-cache": {
5021
+ "version": "0.2.2",
5022
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
5023
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
5024
+ "dev": true
5025
+ },
5026
+ "map-obj": {
5027
+ "version": "1.0.1",
5028
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
5029
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
5030
+ "dev": true
5031
+ },
5032
+ "map-visit": {
5033
+ "version": "1.0.0",
5034
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
5035
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
5036
+ "dev": true,
5037
+ "requires": {
5038
+ "object-visit": "^1.0.0"
5039
+ }
5040
+ },
5041
+ "math-random": {
5042
+ "version": "1.0.1",
5043
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
5044
+ "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=",
5045
+ "dev": true
5046
+ },
5047
+ "mathml-tag-names": {
5048
+ "version": "2.1.0",
5049
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz",
5050
+ "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==",
5051
+ "dev": true
5052
+ },
5053
+ "maxmin": {
5054
+ "version": "2.1.0",
5055
+ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz",
5056
+ "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=",
5057
+ "dev": true,
5058
+ "requires": {
5059
+ "chalk": "^1.0.0",
5060
+ "figures": "^1.0.1",
5061
+ "gzip-size": "^3.0.0",
5062
+ "pretty-bytes": "^3.0.0"
5063
+ },
5064
+ "dependencies": {
5065
+ "ansi-styles": {
5066
+ "version": "2.2.1",
5067
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
5068
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
5069
+ "dev": true
5070
+ },
5071
+ "chalk": {
5072
+ "version": "1.1.3",
5073
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
5074
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
5075
+ "dev": true,
5076
+ "requires": {
5077
+ "ansi-styles": "^2.2.1",
5078
+ "escape-string-regexp": "^1.0.2",
5079
+ "has-ansi": "^2.0.0",
5080
+ "strip-ansi": "^3.0.0",
5081
+ "supports-color": "^2.0.0"
5082
+ }
5083
+ },
5084
+ "supports-color": {
5085
+ "version": "2.0.0",
5086
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
5087
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
5088
+ "dev": true
5089
+ }
5090
+ }
5091
+ },
5092
+ "md5.js": {
5093
+ "version": "1.3.4",
5094
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
5095
+ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
5096
+ "dev": true,
5097
+ "requires": {
5098
+ "hash-base": "^3.0.0",
5099
+ "inherits": "^2.0.1"
5100
+ }
5101
+ },
5102
+ "media-typer": {
5103
+ "version": "0.3.0",
5104
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
5105
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
5106
+ "dev": true
5107
+ },
5108
+ "mem": {
5109
+ "version": "1.1.0",
5110
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
5111
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
5112
+ "dev": true,
5113
+ "requires": {
5114
+ "mimic-fn": "^1.0.0"
5115
+ }
5116
+ },
5117
+ "memory-fs": {
5118
+ "version": "0.4.1",
5119
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
5120
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
5121
+ "dev": true,
5122
+ "requires": {
5123
+ "errno": "^0.1.3",
5124
+ "readable-stream": "^2.0.1"
5125
+ }
5126
+ },
5127
+ "meow": {
5128
+ "version": "3.7.0",
5129
+ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
5130
+ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
5131
+ "dev": true,
5132
+ "requires": {
5133
+ "camelcase-keys": "^2.0.0",
5134
+ "decamelize": "^1.1.2",
5135
+ "loud-rejection": "^1.0.0",
5136
+ "map-obj": "^1.0.1",
5137
+ "minimist": "^1.1.3",
5138
+ "normalize-package-data": "^2.3.4",
5139
+ "object-assign": "^4.0.1",
5140
+ "read-pkg-up": "^1.0.1",
5141
+ "redent": "^1.0.0",
5142
+ "trim-newlines": "^1.0.0"
5143
+ },
5144
+ "dependencies": {
5145
+ "minimist": {
5146
+ "version": "1.2.0",
5147
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
5148
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
5149
+ "dev": true
5150
+ }
5151
+ }
5152
+ },
5153
+ "micromatch": {
5154
+ "version": "2.3.11",
5155
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
5156
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
5157
+ "dev": true,
5158
+ "requires": {
5159
+ "arr-diff": "^2.0.0",
5160
+ "array-unique": "^0.2.1",
5161
+ "braces": "^1.8.2",
5162
+ "expand-brackets": "^0.1.4",
5163
+ "extglob": "^0.3.1",
5164
+ "filename-regex": "^2.0.0",
5165
+ "is-extglob": "^1.0.0",
5166
+ "is-glob": "^2.0.1",
5167
+ "kind-of": "^3.0.2",
5168
+ "normalize-path": "^2.0.1",
5169
+ "object.omit": "^2.0.0",
5170
+ "parse-glob": "^3.0.4",
5171
+ "regex-cache": "^0.4.2"
5172
+ }
5173
+ },
5174
+ "miller-rabin": {
5175
+ "version": "4.0.1",
5176
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
5177
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
5178
+ "dev": true,
5179
+ "requires": {
5180
+ "bn.js": "^4.0.0",
5181
+ "brorand": "^1.0.1"
5182
+ }
5183
+ },
5184
+ "mime-db": {
5185
+ "version": "1.36.0",
5186
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
5187
+ "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==",
5188
+ "dev": true
5189
+ },
5190
+ "mime-types": {
5191
+ "version": "2.1.20",
5192
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
5193
+ "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
5194
+ "dev": true,
5195
+ "requires": {
5196
+ "mime-db": "~1.36.0"
5197
+ }
5198
+ },
5199
+ "mimic-fn": {
5200
+ "version": "1.2.0",
5201
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
5202
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
5203
+ "dev": true
5204
+ },
5205
+ "minimalistic-assert": {
5206
+ "version": "1.0.1",
5207
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
5208
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
5209
+ "dev": true
5210
+ },
5211
+ "minimalistic-crypto-utils": {
5212
+ "version": "1.0.1",
5213
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
5214
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
5215
+ "dev": true
5216
+ },
5217
+ "minimatch": {
5218
+ "version": "3.0.4",
5219
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
5220
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
5221
+ "dev": true,
5222
+ "requires": {
5223
+ "brace-expansion": "^1.1.7"
5224
+ }
5225
+ },
5226
+ "minimist": {
5227
+ "version": "0.0.8",
5228
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
5229
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
5230
+ "dev": true
5231
+ },
5232
+ "mixin-deep": {
5233
+ "version": "1.3.1",
5234
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
5235
+ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
5236
+ "dev": true,
5237
+ "requires": {
5238
+ "for-in": "^1.0.2",
5239
+ "is-extendable": "^1.0.1"
5240
+ },
5241
+ "dependencies": {
5242
+ "is-extendable": {
5243
+ "version": "1.0.1",
5244
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
5245
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
5246
+ "dev": true,
5247
+ "requires": {
5248
+ "is-plain-object": "^2.0.4"
5249
+ }
5250
+ }
5251
+ }
5252
+ },
5253
+ "mkdirp": {
5254
+ "version": "0.5.1",
5255
+ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
5256
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
5257
+ "dev": true,
5258
+ "requires": {
5259
+ "minimist": "0.0.8"
5260
+ }
5261
+ },
5262
+ "ms": {
5263
+ "version": "2.0.0",
5264
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
5265
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
5266
+ "dev": true
5267
+ },
5268
+ "nan": {
5269
+ "version": "2.11.0",
5270
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
5271
+ "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==",
5272
+ "dev": true
5273
+ },
5274
+ "nanomatch": {
5275
+ "version": "1.2.13",
5276
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
5277
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
5278
+ "dev": true,
5279
+ "requires": {
5280
+ "arr-diff": "^4.0.0",
5281
+ "array-unique": "^0.3.2",
5282
+ "define-property": "^2.0.2",
5283
+ "extend-shallow": "^3.0.2",
5284
+ "fragment-cache": "^0.2.1",
5285
+ "is-windows": "^1.0.2",
5286
+ "kind-of": "^6.0.2",
5287
+ "object.pick": "^1.3.0",
5288
+ "regex-not": "^1.0.0",
5289
+ "snapdragon": "^0.8.1",
5290
+ "to-regex": "^3.0.1"
5291
+ },
5292
+ "dependencies": {
5293
+ "arr-diff": {
5294
+ "version": "4.0.0",
5295
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
5296
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
5297
+ "dev": true
5298
+ },
5299
+ "array-unique": {
5300
+ "version": "0.3.2",
5301
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
5302
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
5303
+ "dev": true
5304
+ },
5305
+ "kind-of": {
5306
+ "version": "6.0.2",
5307
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
5308
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
5309
+ "dev": true
5310
+ }
5311
+ }
5312
+ },
5313
+ "neo-async": {
5314
+ "version": "2.5.2",
5315
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz",
5316
+ "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==",
5317
+ "dev": true
5318
+ },
5319
+ "next-tick": {
5320
+ "version": "1.0.0",
5321
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
5322
+ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
5323
+ "dev": true
5324
+ },
5325
+ "node-gyp": {
5326
+ "version": "3.8.0",
5327
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
5328
+ "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
5329
+ "dev": true,
5330
+ "requires": {
5331
+ "fstream": "^1.0.0",
5332
+ "glob": "^7.0.3",
5333
+ "graceful-fs": "^4.1.2",
5334
+ "mkdirp": "^0.5.0",
5335
+ "nopt": "2 || 3",
5336
+ "npmlog": "0 || 1 || 2 || 3 || 4",
5337
+ "osenv": "0",
5338
+ "request": "^2.87.0",
5339
+ "rimraf": "2",
5340
+ "semver": "~5.3.0",
5341
+ "tar": "^2.0.0",
5342
+ "which": "1"
5343
+ },
5344
+ "dependencies": {
5345
+ "semver": {
5346
+ "version": "5.3.0",
5347
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
5348
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
5349
+ "dev": true
5350
+ }
5351
+ }
5352
+ },
5353
+ "node-libs-browser": {
5354
+ "version": "2.1.0",
5355
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz",
5356
+ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==",
5357
+ "dev": true,
5358
+ "requires": {
5359
+ "assert": "^1.1.1",
5360
+ "browserify-zlib": "^0.2.0",
5361
+ "buffer": "^4.3.0",
5362
+ "console-browserify": "^1.1.0",
5363
+ "constants-browserify": "^1.0.0",
5364
+ "crypto-browserify": "^3.11.0",
5365
+ "domain-browser": "^1.1.1",
5366
+ "events": "^1.0.0",
5367
+ "https-browserify": "^1.0.0",
5368
+ "os-browserify": "^0.3.0",
5369
+ "path-browserify": "0.0.0",
5370
+ "process": "^0.11.10",
5371
+ "punycode": "^1.2.4",
5372
+ "querystring-es3": "^0.2.0",
5373
+ "readable-stream": "^2.3.3",
5374
+ "stream-browserify": "^2.0.1",
5375
+ "stream-http": "^2.7.2",
5376
+ "string_decoder": "^1.0.0",
5377
+ "timers-browserify": "^2.0.4",
5378
+ "tty-browserify": "0.0.0",
5379
+ "url": "^0.11.0",
5380
+ "util": "^0.10.3",
5381
+ "vm-browserify": "0.0.4"
5382
+ },
5383
+ "dependencies": {
5384
+ "browserify-zlib": {
5385
+ "version": "0.2.0",
5386
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
5387
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
5388
+ "dev": true,
5389
+ "requires": {
5390
+ "pako": "~1.0.5"
5391
+ }
5392
+ },
5393
+ "pako": {
5394
+ "version": "1.0.6",
5395
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
5396
+ "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
5397
+ "dev": true
5398
+ }
5399
+ }
5400
+ },
5401
+ "node-sass": {
5402
+ "version": "4.9.3",
5403
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz",
5404
+ "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==",
5405
+ "dev": true,
5406
+ "requires": {
5407
+ "async-foreach": "^0.1.3",
5408
+ "chalk": "^1.1.1",
5409
+ "cross-spawn": "^3.0.0",
5410
+ "gaze": "^1.0.0",
5411
+ "get-stdin": "^4.0.1",
5412
+ "glob": "^7.0.3",
5413
+ "in-publish": "^2.0.0",
5414
+ "lodash.assign": "^4.2.0",
5415
+ "lodash.clonedeep": "^4.3.2",
5416
+ "lodash.mergewith": "^4.6.0",
5417
+ "meow": "^3.7.0",
5418
+ "mkdirp": "^0.5.1",
5419
+ "nan": "^2.10.0",
5420
+ "node-gyp": "^3.8.0",
5421
+ "npmlog": "^4.0.0",
5422
+ "request": "2.87.0",
5423
+ "sass-graph": "^2.2.4",
5424
+ "stdout-stream": "^1.4.0",
5425
+ "true-case-path": "^1.0.2"
5426
+ },
5427
+ "dependencies": {
5428
+ "ansi-styles": {
5429
+ "version": "2.2.1",
5430
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
5431
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
5432
+ "dev": true
5433
+ },
5434
+ "chalk": {
5435
+ "version": "1.1.3",
5436
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
5437
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
5438
+ "dev": true,
5439
+ "requires": {
5440
+ "ansi-styles": "^2.2.1",
5441
+ "escape-string-regexp": "^1.0.2",
5442
+ "has-ansi": "^2.0.0",
5443
+ "strip-ansi": "^3.0.0",
5444
+ "supports-color": "^2.0.0"
5445
+ }
5446
+ },
5447
+ "cross-spawn": {
5448
+ "version": "3.0.1",
5449
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
5450
+ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
5451
+ "dev": true,
5452
+ "requires": {
5453
+ "lru-cache": "^4.0.1",
5454
+ "which": "^1.2.9"
5455
+ }
5456
+ },
5457
+ "har-validator": {
5458
+ "version": "5.0.3",
5459
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
5460
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
5461
+ "dev": true,
5462
+ "requires": {
5463
+ "ajv": "^5.1.0",
5464
+ "har-schema": "^2.0.0"
5465
+ }
5466
+ },
5467
+ "oauth-sign": {
5468
+ "version": "0.8.2",
5469
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
5470
+ "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
5471
+ "dev": true
5472
+ },
5473
+ "request": {
5474
+ "version": "2.87.0",
5475
+ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
5476
+ "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
5477
+ "dev": true,
5478
+ "requires": {
5479
+ "aws-sign2": "~0.7.0",
5480
+ "aws4": "^1.6.0",
5481
+ "caseless": "~0.12.0",
5482
+ "combined-stream": "~1.0.5",
5483
+ "extend": "~3.0.1",
5484
+ "forever-agent": "~0.6.1",
5485
+ "form-data": "~2.3.1",
5486
+ "har-validator": "~5.0.3",
5487
+ "http-signature": "~1.2.0",
5488
+ "is-typedarray": "~1.0.0",
5489
+ "isstream": "~0.1.2",
5490
+ "json-stringify-safe": "~5.0.1",
5491
+ "mime-types": "~2.1.17",
5492
+ "oauth-sign": "~0.8.2",
5493
+ "performance-now": "^2.1.0",
5494
+ "qs": "~6.5.1",
5495
+ "safe-buffer": "^5.1.1",
5496
+ "tough-cookie": "~2.3.3",
5497
+ "tunnel-agent": "^0.6.0",
5498
+ "uuid": "^3.1.0"
5499
+ }
5500
+ },
5501
+ "supports-color": {
5502
+ "version": "2.0.0",
5503
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
5504
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
5505
+ "dev": true
5506
+ },
5507
+ "tough-cookie": {
5508
+ "version": "2.3.4",
5509
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
5510
+ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
5511
+ "dev": true,
5512
+ "requires": {
5513
+ "punycode": "^1.4.1"
5514
+ }
5515
+ }
5516
+ }
5517
+ },
5518
+ "node-wp-i18n": {
5519
+ "version": "1.2.1",
5520
+ "resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.2.1.tgz",
5521
+ "integrity": "sha512-Wvl98XA/GBnQFe20iAMwlsXvikVOFTVz//cbRsF8OPQf0NIkJdeWToNYww/dZl52lHtS1KUEIVRyWcol5ibHog==",
5522
+ "dev": true,
5523
+ "requires": {
5524
+ "bluebird": "^3.4.1",
5525
+ "gettext-parser": "^2.0.0",
5526
+ "glob": "^7.0.5",
5527
+ "lodash": "^4.14.2",
5528
+ "minimist": "^1.2.0",
5529
+ "mkdirp": "^0.5.1",
5530
+ "tmp": "^0.0.33"
5531
+ },
5532
+ "dependencies": {
5533
+ "minimist": {
5534
+ "version": "1.2.0",
5535
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
5536
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
5537
+ "dev": true
5538
+ }
5539
+ }
5540
+ },
5541
+ "nopt": {
5542
+ "version": "3.0.6",
5543
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
5544
+ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
5545
+ "dev": true,
5546
+ "requires": {
5547
+ "abbrev": "1"
5548
+ }
5549
+ },
5550
+ "normalize-package-data": {
5551
+ "version": "2.4.0",
5552
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
5553
+ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
5554
+ "dev": true,
5555
+ "requires": {
5556
+ "hosted-git-info": "^2.1.4",
5557
+ "is-builtin-module": "^1.0.0",
5558
+ "semver": "2 || 3 || 4 || 5",
5559
+ "validate-npm-package-license": "^3.0.1"
5560
+ }
5561
+ },
5562
+ "normalize-path": {
5563
+ "version": "2.1.1",
5564
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
5565
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
5566
+ "dev": true,
5567
+ "requires": {
5568
+ "remove-trailing-separator": "^1.0.1"
5569
+ }
5570
+ },
5571
+ "normalize-range": {
5572
+ "version": "0.1.2",
5573
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
5574
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
5575
+ "dev": true
5576
+ },
5577
+ "normalize-selector": {
5578
+ "version": "0.2.0",
5579
+ "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz",
5580
+ "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
5581
+ "dev": true
5582
+ },
5583
+ "npm-run-path": {
5584
+ "version": "2.0.2",
5585
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
5586
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
5587
+ "dev": true,
5588
+ "requires": {
5589
+ "path-key": "^2.0.0"
5590
+ }
5591
+ },
5592
+ "npmlog": {
5593
+ "version": "4.1.2",
5594
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
5595
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
5596
+ "dev": true,
5597
+ "requires": {
5598
+ "are-we-there-yet": "~1.1.2",
5599
+ "console-control-strings": "~1.1.0",
5600
+ "gauge": "~2.7.3",
5601
+ "set-blocking": "~2.0.0"
5602
+ }
5603
+ },
5604
+ "num2fraction": {
5605
+ "version": "1.2.2",
5606
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
5607
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
5608
+ "dev": true
5609
+ },
5610
+ "number-is-nan": {
5611
+ "version": "1.0.1",
5612
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
5613
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
5614
+ "dev": true
5615
+ },
5616
+ "oauth-sign": {
5617
+ "version": "0.9.0",
5618
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
5619
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
5620
+ "dev": true
5621
+ },
5622
+ "object-assign": {
5623
+ "version": "4.1.1",
5624
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
5625
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
5626
+ "dev": true
5627
+ },
5628
+ "object-copy": {
5629
+ "version": "0.1.0",
5630
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
5631
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
5632
+ "dev": true,
5633
+ "requires": {
5634
+ "copy-descriptor": "^0.1.0",
5635
+ "define-property": "^0.2.5",
5636
+ "kind-of": "^3.0.3"
5637
+ },
5638
+ "dependencies": {
5639
+ "define-property": {
5640
+ "version": "0.2.5",
5641
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
5642
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
5643
+ "dev": true,
5644
+ "requires": {
5645
+ "is-descriptor": "^0.1.0"
5646
+ }
5647
+ }
5648
+ }
5649
+ },
5650
+ "object-visit": {
5651
+ "version": "1.0.1",
5652
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
5653
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
5654
+ "dev": true,
5655
+ "requires": {
5656
+ "isobject": "^3.0.0"
5657
+ },
5658
+ "dependencies": {
5659
+ "isobject": {
5660
+ "version": "3.0.1",
5661
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
5662
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
5663
+ "dev": true
5664
+ }
5665
+ }
5666
+ },
5667
+ "object.omit": {
5668
+ "version": "2.0.1",
5669
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
5670
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
5671
+ "dev": true,
5672
+ "requires": {
5673
+ "for-own": "^0.1.4",
5674
+ "is-extendable": "^0.1.1"
5675
+ }
5676
+ },
5677
+ "object.pick": {
5678
+ "version": "1.3.0",
5679
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
5680
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
5681
+ "dev": true,
5682
+ "requires": {
5683
+ "isobject": "^3.0.1"
5684
+ },
5685
+ "dependencies": {
5686
+ "isobject": {
5687
+ "version": "3.0.1",
5688
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
5689
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
5690
+ "dev": true
5691
+ }
5692
+ }
5693
+ },
5694
+ "on-finished": {
5695
+ "version": "2.3.0",
5696
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
5697
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
5698
+ "dev": true,
5699
+ "requires": {
5700
+ "ee-first": "1.1.1"
5701
+ }
5702
+ },
5703
+ "once": {
5704
+ "version": "1.4.0",
5705
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
5706
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
5707
+ "dev": true,
5708
+ "requires": {
5709
+ "wrappy": "1"
5710
+ }
5711
+ },
5712
+ "onetime": {
5713
+ "version": "1.1.0",
5714
+ "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
5715
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
5716
+ "dev": true
5717
+ },
5718
+ "os-browserify": {
5719
+ "version": "0.3.0",
5720
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
5721
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
5722
+ "dev": true
5723
+ },
5724
+ "os-homedir": {
5725
+ "version": "1.0.2",
5726
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
5727
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
5728
+ "dev": true
5729
+ },
5730
+ "os-locale": {
5731
+ "version": "1.4.0",
5732
+ "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
5733
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
5734
+ "dev": true,
5735
+ "requires": {
5736
+ "lcid": "^1.0.0"
5737
+ }
5738
+ },
5739
+ "os-tmpdir": {
5740
+ "version": "1.0.2",
5741
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
5742
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
5743
+ "dev": true
5744
+ },
5745
+ "osenv": {
5746
+ "version": "0.1.5",
5747
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
5748
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
5749
+ "dev": true,
5750
+ "requires": {
5751
+ "os-homedir": "^1.0.0",
5752
+ "os-tmpdir": "^1.0.0"
5753
+ }
5754
+ },
5755
+ "output-file-sync": {
5756
+ "version": "1.1.2",
5757
+ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
5758
+ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
5759
+ "dev": true,
5760
+ "requires": {
5761
+ "graceful-fs": "^4.1.4",
5762
+ "mkdirp": "^0.5.1",
5763
+ "object-assign": "^4.1.0"
5764
+ }
5765
+ },
5766
+ "p-finally": {
5767
+ "version": "1.0.0",
5768
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
5769
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
5770
+ "dev": true
5771
+ },
5772
+ "p-limit": {
5773
+ "version": "1.3.0",
5774
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
5775
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
5776
+ "dev": true,
5777
+ "requires": {
5778
+ "p-try": "^1.0.0"
5779
+ }
5780
+ },
5781
+ "p-locate": {
5782
+ "version": "2.0.0",
5783
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
5784
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
5785
+ "dev": true,
5786
+ "requires": {
5787
+ "p-limit": "^1.1.0"
5788
+ }
5789
+ },
5790
+ "p-try": {
5791
+ "version": "1.0.0",
5792
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
5793
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
5794
+ "dev": true
5795
+ },
5796
+ "pako": {
5797
+ "version": "0.2.9",
5798
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
5799
+ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
5800
+ "dev": true
5801
+ },
5802
+ "parse-asn1": {
5803
+ "version": "5.1.1",
5804
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz",
5805
+ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==",
5806
+ "dev": true,
5807
+ "requires": {
5808
+ "asn1.js": "^4.0.0",
5809
+ "browserify-aes": "^1.0.0",
5810
+ "create-hash": "^1.1.0",
5811
+ "evp_bytestokey": "^1.0.0",
5812
+ "pbkdf2": "^3.0.3"
5813
+ }
5814
+ },
5815
+ "parse-glob": {
5816
+ "version": "3.0.4",
5817
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
5818
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
5819
+ "dev": true,
5820
+ "requires": {
5821
+ "glob-base": "^0.3.0",
5822
+ "is-dotfile": "^1.0.0",
5823
+ "is-extglob": "^1.0.0",
5824
+ "is-glob": "^2.0.0"
5825
+ }
5826
+ },
5827
+ "parse-json": {
5828
+ "version": "2.2.0",
5829
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
5830
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
5831
+ "dev": true,
5832
+ "requires": {
5833
+ "error-ex": "^1.2.0"
5834
+ }
5835
+ },
5836
+ "parseurl": {
5837
+ "version": "1.3.2",
5838
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
5839
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
5840
+ "dev": true
5841
+ },
5842
+ "pascalcase": {
5843
+ "version": "0.1.1",
5844
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
5845
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
5846
+ "dev": true
5847
+ },
5848
+ "path-browserify": {
5849
+ "version": "0.0.0",
5850
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
5851
+ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=",
5852
+ "dev": true
5853
+ },
5854
+ "path-dirname": {
5855
+ "version": "1.0.2",
5856
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
5857
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
5858
+ "dev": true
5859
+ },
5860
+ "path-exists": {
5861
+ "version": "3.0.0",
5862
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
5863
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
5864
+ "dev": true
5865
+ },
5866
+ "path-is-absolute": {
5867
+ "version": "1.0.1",
5868
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
5869
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
5870
+ "dev": true
5871
+ },
5872
+ "path-is-inside": {
5873
+ "version": "1.0.2",
5874
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
5875
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
5876
+ "dev": true
5877
+ },
5878
+ "path-key": {
5879
+ "version": "2.0.1",
5880
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
5881
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
5882
+ "dev": true
5883
+ },
5884
+ "path-type": {
5885
+ "version": "1.1.0",
5886
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
5887
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
5888
+ "dev": true,
5889
+ "requires": {
5890
+ "graceful-fs": "^4.1.2",
5891
+ "pify": "^2.0.0",
5892
+ "pinkie-promise": "^2.0.0"
5893
+ },
5894
+ "dependencies": {
5895
+ "pify": {
5896
+ "version": "2.3.0",
5897
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
5898
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
5899
+ "dev": true
5900
+ }
5901
+ }
5902
+ },
5903
+ "pbkdf2": {
5904
+ "version": "3.0.16",
5905
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz",
5906
+ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==",
5907
+ "dev": true,
5908
+ "requires": {
5909
+ "create-hash": "^1.1.2",
5910
+ "create-hmac": "^1.1.4",
5911
+ "ripemd160": "^2.0.1",
5912
+ "safe-buffer": "^5.0.1",
5913
+ "sha.js": "^2.4.8"
5914
+ }
5915
+ },
5916
+ "pend": {
5917
+ "version": "1.2.0",
5918
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
5919
+ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
5920
+ "dev": true,
5921
+ "optional": true
5922
+ },
5923
+ "performance-now": {
5924
+ "version": "2.1.0",
5925
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
5926
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
5927
+ "dev": true
5928
+ },
5929
+ "phantom": {
5930
+ "version": "4.0.12",
5931
+ "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz",
5932
+ "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==",
5933
+ "dev": true,
5934
+ "optional": true,
5935
+ "requires": {
5936
+ "phantomjs-prebuilt": "^2.1.16",
5937
+ "split": "^1.0.1",
5938
+ "winston": "^2.4.0"
5939
+ }
5940
+ },
5941
+ "phantomjs-prebuilt": {
5942
+ "version": "2.1.16",
5943
+ "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
5944
+ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
5945
+ "dev": true,
5946
+ "optional": true,
5947
+ "requires": {
5948
+ "es6-promise": "^4.0.3",
5949
+ "extract-zip": "^1.6.5",
5950
+ "fs-extra": "^1.0.0",
5951
+ "hasha": "^2.2.0",
5952
+ "kew": "^0.7.0",
5953
+ "progress": "^1.1.8",
5954
+ "request": "^2.81.0",
5955
+ "request-progress": "^2.0.1",
5956
+ "which": "^1.2.10"
5957
+ }
5958
+ },
5959
+ "pify": {
5960
+ "version": "3.0.0",
5961
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
5962
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
5963
+ "dev": true
5964
+ },
5965
+ "pinkie": {
5966
+ "version": "2.0.4",
5967
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
5968
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
5969
+ "dev": true
5970
+ },
5971
+ "pinkie-promise": {
5972
+ "version": "2.0.1",
5973
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
5974
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
5975
+ "dev": true,
5976
+ "requires": {
5977
+ "pinkie": "^2.0.0"
5978
+ }
5979
+ },
5980
+ "pkg-dir": {
5981
+ "version": "2.0.0",
5982
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
5983
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
5984
+ "dev": true,
5985
+ "requires": {
5986
+ "find-up": "^2.1.0"
5987
+ }
5988
+ },
5989
+ "posix-character-classes": {
5990
+ "version": "0.1.1",
5991
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
5992
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
5993
+ "dev": true
5994
+ },
5995
+ "postcss": {
5996
+ "version": "6.0.23",
5997
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
5998
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
5999
+ "dev": true,
6000
+ "requires": {
6001
+ "chalk": "^2.4.1",
6002
+ "source-map": "^0.6.1",
6003
+ "supports-color": "^5.4.0"
6004
+ }
6005
+ },
6006
+ "postcss-less": {
6007
+ "version": "1.1.5",
6008
+ "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.5.tgz",
6009
+ "integrity": "sha512-QQIiIqgEjNnquc0d4b6HDOSFZxbFQoy4MPpli2lSLpKhMyBkKwwca2HFqu4xzxlKID/F2fxSOowwtKpgczhF7A==",
6010
+ "dev": true,
6011
+ "requires": {
6012
+ "postcss": "^5.2.16"
6013
+ },
6014
+ "dependencies": {
6015
+ "ansi-styles": {
6016
+ "version": "2.2.1",
6017
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
6018
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
6019
+ "dev": true
6020
+ },
6021
+ "chalk": {
6022
+ "version": "1.1.3",
6023
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
6024
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
6025
+ "dev": true,
6026
+ "requires": {
6027
+ "ansi-styles": "^2.2.1",
6028
+ "escape-string-regexp": "^1.0.2",
6029
+ "has-ansi": "^2.0.0",
6030
+ "strip-ansi": "^3.0.0",
6031
+ "supports-color": "^2.0.0"
6032
+ },
6033
+ "dependencies": {
6034
+ "supports-color": {
6035
+ "version": "2.0.0",
6036
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
6037
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
6038
+ "dev": true
6039
+ }
6040
+ }
6041
+ },
6042
+ "has-flag": {
6043
+ "version": "1.0.0",
6044
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
6045
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
6046
+ "dev": true
6047
+ },
6048
+ "postcss": {
6049
+ "version": "5.2.18",
6050
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
6051
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
6052
+ "dev": true,
6053
+ "requires": {
6054
+ "chalk": "^1.1.3",
6055
+ "js-base64": "^2.1.9",
6056
+ "source-map": "^0.5.6",
6057
+ "supports-color": "^3.2.3"
6058
+ }
6059
+ },
6060
+ "source-map": {
6061
+ "version": "0.5.7",
6062
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6063
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
6064
+ "dev": true
6065
+ },
6066
+ "supports-color": {
6067
+ "version": "3.2.3",
6068
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
6069
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
6070
+ "dev": true,
6071
+ "requires": {
6072
+ "has-flag": "^1.0.0"
6073
+ }
6074
+ }
6075
+ }
6076
+ },
6077
+ "postcss-media-query-parser": {
6078
+ "version": "0.2.3",
6079
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
6080
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
6081
+ "dev": true
6082
+ },
6083
+ "postcss-reporter": {
6084
+ "version": "5.0.0",
6085
+ "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz",
6086
+ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==",
6087
+ "dev": true,
6088
+ "requires": {
6089
+ "chalk": "^2.0.1",
6090
+ "lodash": "^4.17.4",
6091
+ "log-symbols": "^2.0.0",
6092
+ "postcss": "^6.0.8"
6093
+ }
6094
+ },
6095
+ "postcss-resolve-nested-selector": {
6096
+ "version": "0.1.1",
6097
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
6098
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
6099
+ "dev": true
6100
+ },
6101
+ "postcss-safe-parser": {
6102
+ "version": "3.0.1",
6103
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-3.0.1.tgz",
6104
+ "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=",
6105
+ "dev": true,
6106
+ "requires": {
6107
+ "postcss": "^6.0.6"
6108
+ }
6109
+ },
6110
+ "postcss-scss": {
6111
+ "version": "1.0.6",
6112
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.6.tgz",
6113
+ "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==",
6114
+ "dev": true,
6115
+ "requires": {
6116
+ "postcss": "^6.0.23"
6117
+ }
6118
+ },
6119
+ "postcss-selector-parser": {
6120
+ "version": "2.2.3",
6121
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
6122
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
6123
+ "dev": true,
6124
+ "requires": {
6125
+ "flatten": "^1.0.2",
6126
+ "indexes-of": "^1.0.1",
6127
+ "uniq": "^1.0.1"
6128
+ }
6129
+ },
6130
+ "postcss-value-parser": {
6131
+ "version": "3.3.0",
6132
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
6133
+ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
6134
+ "dev": true
6135
+ },
6136
+ "preserve": {
6137
+ "version": "0.2.0",
6138
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
6139
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
6140
+ "dev": true
6141
+ },
6142
+ "pretty-bytes": {
6143
+ "version": "3.0.1",
6144
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
6145
+ "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
6146
+ "dev": true,
6147
+ "requires": {
6148
+ "number-is-nan": "^1.0.0"
6149
+ }
6150
+ },
6151
+ "private": {
6152
+ "version": "0.1.8",
6153
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
6154
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
6155
+ "dev": true
6156
+ },
6157
+ "process": {
6158
+ "version": "0.11.10",
6159
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
6160
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
6161
+ "dev": true
6162
+ },
6163
+ "process-nextick-args": {
6164
+ "version": "2.0.0",
6165
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
6166
+ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
6167
+ "dev": true
6168
+ },
6169
+ "progress": {
6170
+ "version": "1.1.8",
6171
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
6172
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
6173
+ "dev": true,
6174
+ "optional": true
6175
+ },
6176
+ "prr": {
6177
+ "version": "1.0.1",
6178
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
6179
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
6180
+ "dev": true
6181
+ },
6182
+ "pseudomap": {
6183
+ "version": "1.0.2",
6184
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
6185
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
6186
+ "dev": true
6187
+ },
6188
+ "psl": {
6189
+ "version": "1.1.29",
6190
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
6191
+ "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==",
6192
+ "dev": true
6193
+ },
6194
+ "public-encrypt": {
6195
+ "version": "4.0.2",
6196
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz",
6197
+ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==",
6198
+ "dev": true,
6199
+ "requires": {
6200
+ "bn.js": "^4.1.0",
6201
+ "browserify-rsa": "^4.0.0",
6202
+ "create-hash": "^1.1.0",
6203
+ "parse-asn1": "^5.0.0",
6204
+ "randombytes": "^2.0.1"
6205
+ }
6206
+ },
6207
+ "punycode": {
6208
+ "version": "1.4.1",
6209
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
6210
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
6211
+ "dev": true
6212
+ },
6213
+ "qs": {
6214
+ "version": "6.5.2",
6215
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
6216
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
6217
+ "dev": true
6218
+ },
6219
+ "querystring": {
6220
+ "version": "0.2.0",
6221
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
6222
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
6223
+ "dev": true
6224
+ },
6225
+ "querystring-es3": {
6226
+ "version": "0.2.1",
6227
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
6228
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
6229
+ "dev": true
6230
+ },
6231
+ "randomatic": {
6232
+ "version": "3.1.0",
6233
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz",
6234
+ "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==",
6235
+ "dev": true,
6236
+ "requires": {
6237
+ "is-number": "^4.0.0",
6238
+ "kind-of": "^6.0.0",
6239
+ "math-random": "^1.0.1"
6240
+ },
6241
+ "dependencies": {
6242
+ "is-number": {
6243
+ "version": "4.0.0",
6244
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
6245
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
6246
+ "dev": true
6247
+ },
6248
+ "kind-of": {
6249
+ "version": "6.0.2",
6250
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
6251
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
6252
+ "dev": true
6253
+ }
6254
+ }
6255
+ },
6256
+ "randombytes": {
6257
+ "version": "2.0.6",
6258
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz",
6259
+ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==",
6260
+ "dev": true,
6261
+ "requires": {
6262
+ "safe-buffer": "^5.1.0"
6263
+ }
6264
+ },
6265
+ "randomfill": {
6266
+ "version": "1.0.4",
6267
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
6268
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
6269
+ "dev": true,
6270
+ "requires": {
6271
+ "randombytes": "^2.0.5",
6272
+ "safe-buffer": "^5.1.0"
6273
+ }
6274
+ },
6275
+ "raw-body": {
6276
+ "version": "2.1.7",
6277
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
6278
+ "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=",
6279
+ "dev": true,
6280
+ "requires": {
6281
+ "bytes": "2.4.0",
6282
+ "iconv-lite": "0.4.13",
6283
+ "unpipe": "1.0.0"
6284
+ },
6285
+ "dependencies": {
6286
+ "bytes": {
6287
+ "version": "2.4.0",
6288
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
6289
+ "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=",
6290
+ "dev": true
6291
+ },
6292
+ "iconv-lite": {
6293
+ "version": "0.4.13",
6294
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
6295
+ "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
6296
+ "dev": true
6297
+ }
6298
+ }
6299
+ },
6300
+ "read-pkg": {
6301
+ "version": "1.1.0",
6302
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
6303
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
6304
+ "dev": true,
6305
+ "requires": {
6306
+ "load-json-file": "^1.0.0",
6307
+ "normalize-package-data": "^2.3.2",
6308
+ "path-type": "^1.0.0"
6309
+ }
6310
+ },
6311
+ "read-pkg-up": {
6312
+ "version": "1.0.1",
6313
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
6314
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
6315
+ "dev": true,
6316
+ "requires": {
6317
+ "find-up": "^1.0.0",
6318
+ "read-pkg": "^1.0.0"
6319
+ },
6320
+ "dependencies": {
6321
+ "find-up": {
6322
+ "version": "1.1.2",
6323
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
6324
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
6325
+ "dev": true,
6326
+ "requires": {
6327
+ "path-exists": "^2.0.0",
6328
+ "pinkie-promise": "^2.0.0"
6329
+ }
6330
+ },
6331
+ "path-exists": {
6332
+ "version": "2.1.0",
6333
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
6334
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
6335
+ "dev": true,
6336
+ "requires": {
6337
+ "pinkie-promise": "^2.0.0"
6338
+ }
6339
+ }
6340
+ }
6341
+ },
6342
+ "readable-stream": {
6343
+ "version": "2.3.6",
6344
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
6345
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
6346
+ "dev": true,
6347
+ "requires": {
6348
+ "core-util-is": "~1.0.0",
6349
+ "inherits": "~2.0.3",
6350
+ "isarray": "~1.0.0",
6351
+ "process-nextick-args": "~2.0.0",
6352
+ "safe-buffer": "~5.1.1",
6353
+ "string_decoder": "~1.1.1",
6354
+ "util-deprecate": "~1.0.1"
6355
+ }
6356
+ },
6357
+ "readdirp": {
6358
+ "version": "2.1.0",
6359
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
6360
+ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
6361
+ "dev": true,
6362
+ "requires": {
6363
+ "graceful-fs": "^4.1.2",
6364
+ "minimatch": "^3.0.2",
6365
+ "readable-stream": "^2.0.2",
6366
+ "set-immediate-shim": "^1.0.1"
6367
+ }
6368
+ },
6369
+ "redent": {
6370
+ "version": "1.0.0",
6371
+ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
6372
+ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
6373
+ "dev": true,
6374
+ "requires": {
6375
+ "indent-string": "^2.1.0",
6376
+ "strip-indent": "^1.0.1"
6377
+ }
6378
+ },
6379
+ "regenerate": {
6380
+ "version": "1.4.0",
6381
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
6382
+ "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
6383
+ "dev": true
6384
+ },
6385
+ "regenerator-runtime": {
6386
+ "version": "0.11.1",
6387
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
6388
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
6389
+ "dev": true
6390
+ },
6391
+ "regenerator-transform": {
6392
+ "version": "0.10.1",
6393
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
6394
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
6395
+ "dev": true,
6396
+ "requires": {
6397
+ "babel-runtime": "^6.18.0",
6398
+ "babel-types": "^6.19.0",
6399
+ "private": "^0.1.6"
6400
+ }
6401
+ },
6402
+ "regex-cache": {
6403
+ "version": "0.4.4",
6404
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
6405
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
6406
+ "dev": true,
6407
+ "requires": {
6408
+ "is-equal-shallow": "^0.1.3"
6409
+ }
6410
+ },
6411
+ "regex-not": {
6412
+ "version": "1.0.2",
6413
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
6414
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
6415
+ "dev": true,
6416
+ "requires": {
6417
+ "extend-shallow": "^3.0.2",
6418
+ "safe-regex": "^1.1.0"
6419
+ }
6420
+ },
6421
+ "regexpu-core": {
6422
+ "version": "2.0.0",
6423
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
6424
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
6425
+ "dev": true,
6426
+ "requires": {
6427
+ "regenerate": "^1.2.1",
6428
+ "regjsgen": "^0.2.0",
6429
+ "regjsparser": "^0.1.4"
6430
+ }
6431
+ },
6432
+ "regjsgen": {
6433
+ "version": "0.2.0",
6434
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
6435
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
6436
+ "dev": true
6437
+ },
6438
+ "regjsparser": {
6439
+ "version": "0.1.5",
6440
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
6441
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
6442
+ "dev": true,
6443
+ "requires": {
6444
+ "jsesc": "~0.5.0"
6445
+ },
6446
+ "dependencies": {
6447
+ "jsesc": {
6448
+ "version": "0.5.0",
6449
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
6450
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
6451
+ "dev": true
6452
+ }
6453
+ }
6454
+ },
6455
+ "remove-trailing-separator": {
6456
+ "version": "1.1.0",
6457
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
6458
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
6459
+ "dev": true
6460
+ },
6461
+ "repeat-element": {
6462
+ "version": "1.1.3",
6463
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
6464
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
6465
+ "dev": true
6466
+ },
6467
+ "repeat-string": {
6468
+ "version": "1.6.1",
6469
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
6470
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
6471
+ "dev": true
6472
+ },
6473
+ "repeating": {
6474
+ "version": "2.0.1",
6475
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
6476
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
6477
+ "dev": true,
6478
+ "requires": {
6479
+ "is-finite": "^1.0.0"
6480
+ }
6481
+ },
6482
+ "request": {
6483
+ "version": "2.88.0",
6484
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
6485
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
6486
+ "dev": true,
6487
+ "requires": {
6488
+ "aws-sign2": "~0.7.0",
6489
+ "aws4": "^1.8.0",
6490
+ "caseless": "~0.12.0",
6491
+ "combined-stream": "~1.0.6",
6492
+ "extend": "~3.0.2",
6493
+ "forever-agent": "~0.6.1",
6494
+ "form-data": "~2.3.2",
6495
+ "har-validator": "~5.1.0",
6496
+ "http-signature": "~1.2.0",
6497
+ "is-typedarray": "~1.0.0",
6498
+ "isstream": "~0.1.2",
6499
+ "json-stringify-safe": "~5.0.1",
6500
+ "mime-types": "~2.1.19",
6501
+ "oauth-sign": "~0.9.0",
6502
+ "performance-now": "^2.1.0",
6503
+ "qs": "~6.5.2",
6504
+ "safe-buffer": "^5.1.2",
6505
+ "tough-cookie": "~2.4.3",
6506
+ "tunnel-agent": "^0.6.0",
6507
+ "uuid": "^3.3.2"
6508
+ }
6509
+ },
6510
+ "request-progress": {
6511
+ "version": "2.0.1",
6512
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
6513
+ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
6514
+ "dev": true,
6515
+ "optional": true,
6516
+ "requires": {
6517
+ "throttleit": "^1.0.0"
6518
+ }
6519
+ },
6520
+ "require-directory": {
6521
+ "version": "2.1.1",
6522
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
6523
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
6524
+ "dev": true
6525
+ },
6526
+ "require-from-string": {
6527
+ "version": "2.0.2",
6528
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
6529
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
6530
+ "dev": true
6531
+ },
6532
+ "require-main-filename": {
6533
+ "version": "1.0.1",
6534
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
6535
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
6536
+ "dev": true
6537
+ },
6538
+ "resolve": {
6539
+ "version": "1.1.7",
6540
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
6541
+ "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
6542
+ "dev": true
6543
+ },
6544
+ "resolve-from": {
6545
+ "version": "4.0.0",
6546
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
6547
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
6548
+ "dev": true
6549
+ },
6550
+ "resolve-url": {
6551
+ "version": "0.2.1",
6552
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
6553
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
6554
+ "dev": true
6555
+ },
6556
+ "ret": {
6557
+ "version": "0.1.15",
6558
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
6559
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
6560
+ "dev": true
6561
+ },
6562
+ "right-align": {
6563
+ "version": "0.1.3",
6564
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
6565
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
6566
+ "dev": true,
6567
+ "requires": {
6568
+ "align-text": "^0.1.1"
6569
+ }
6570
+ },
6571
+ "rimraf": {
6572
+ "version": "2.6.2",
6573
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
6574
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
6575
+ "dev": true,
6576
+ "requires": {
6577
+ "glob": "^7.0.5"
6578
+ }
6579
+ },
6580
+ "ripemd160": {
6581
+ "version": "2.0.2",
6582
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
6583
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
6584
+ "dev": true,
6585
+ "requires": {
6586
+ "hash-base": "^3.0.0",
6587
+ "inherits": "^2.0.1"
6588
+ }
6589
+ },
6590
+ "rtlcss": {
6591
+ "version": "2.4.0",
6592
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-2.4.0.tgz",
6593
+ "integrity": "sha512-hdjFhZ5FCI0ABOfyXOMOhBtwPWtANLCG7rOiOcRf+yi5eDdxmDjqBruWouEnwVdzfh/TWF6NNncIEsigOCFZOA==",
6594
+ "dev": true,
6595
+ "requires": {
6596
+ "chalk": "^2.3.0",
6597
+ "findup": "^0.1.5",
6598
+ "mkdirp": "^0.5.1",
6599
+ "postcss": "^6.0.14",
6600
+ "strip-json-comments": "^2.0.0"
6601
+ },
6602
+ "dependencies": {
6603
+ "strip-json-comments": {
6604
+ "version": "2.0.1",
6605
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
6606
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
6607
+ "dev": true
6608
+ }
6609
+ }
6610
+ },
6611
+ "safe-buffer": {
6612
+ "version": "5.1.2",
6613
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
6614
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
6615
+ "dev": true
6616
+ },
6617
+ "safe-regex": {
6618
+ "version": "1.1.0",
6619
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
6620
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
6621
+ "dev": true,
6622
+ "requires": {
6623
+ "ret": "~0.1.10"
6624
+ }
6625
+ },
6626
+ "safer-buffer": {
6627
+ "version": "2.1.2",
6628
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
6629
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
6630
+ "dev": true
6631
+ },
6632
+ "sass-graph": {
6633
+ "version": "2.2.4",
6634
+ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
6635
+ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
6636
+ "dev": true,
6637
+ "requires": {
6638
+ "glob": "^7.0.0",
6639
+ "lodash": "^4.0.0",
6640
+ "scss-tokenizer": "^0.2.3",
6641
+ "yargs": "^7.0.0"
6642
+ }
6643
+ },
6644
+ "scss-tokenizer": {
6645
+ "version": "0.2.3",
6646
+ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
6647
+ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
6648
+ "dev": true,
6649
+ "requires": {
6650
+ "js-base64": "^2.1.8",
6651
+ "source-map": "^0.4.2"
6652
+ },
6653
+ "dependencies": {
6654
+ "source-map": {
6655
+ "version": "0.4.4",
6656
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
6657
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
6658
+ "dev": true,
6659
+ "requires": {
6660
+ "amdefine": ">=0.0.4"
6661
+ }
6662
+ }
6663
+ }
6664
+ },
6665
+ "semver": {
6666
+ "version": "5.5.1",
6667
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
6668
+ "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==",
6669
+ "dev": true
6670
+ },
6671
+ "set-blocking": {
6672
+ "version": "2.0.0",
6673
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
6674
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
6675
+ "dev": true
6676
+ },
6677
+ "set-immediate-shim": {
6678
+ "version": "1.0.1",
6679
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
6680
+ "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
6681
+ "dev": true
6682
+ },
6683
+ "set-value": {
6684
+ "version": "2.0.0",
6685
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz",
6686
+ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==",
6687
+ "dev": true,
6688
+ "requires": {
6689
+ "extend-shallow": "^2.0.1",
6690
+ "is-extendable": "^0.1.1",
6691
+ "is-plain-object": "^2.0.3",
6692
+ "split-string": "^3.0.1"
6693
+ },
6694
+ "dependencies": {
6695
+ "extend-shallow": {
6696
+ "version": "2.0.1",
6697
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
6698
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
6699
+ "dev": true,
6700
+ "requires": {
6701
+ "is-extendable": "^0.1.0"
6702
+ }
6703
+ }
6704
+ }
6705
+ },
6706
+ "setimmediate": {
6707
+ "version": "1.0.5",
6708
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
6709
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
6710
+ "dev": true
6711
+ },
6712
+ "sha.js": {
6713
+ "version": "2.4.11",
6714
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
6715
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
6716
+ "dev": true,
6717
+ "requires": {
6718
+ "inherits": "^2.0.1",
6719
+ "safe-buffer": "^5.0.1"
6720
+ }
6721
+ },
6722
+ "shebang-command": {
6723
+ "version": "1.2.0",
6724
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
6725
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
6726
+ "dev": true,
6727
+ "requires": {
6728
+ "shebang-regex": "^1.0.0"
6729
+ }
6730
+ },
6731
+ "shebang-regex": {
6732
+ "version": "1.0.0",
6733
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
6734
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
6735
+ "dev": true
6736
+ },
6737
+ "shelljs": {
6738
+ "version": "0.3.0",
6739
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
6740
+ "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
6741
+ "dev": true
6742
+ },
6743
+ "signal-exit": {
6744
+ "version": "3.0.2",
6745
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
6746
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
6747
+ "dev": true
6748
+ },
6749
+ "slash": {
6750
+ "version": "1.0.0",
6751
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
6752
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
6753
+ "dev": true
6754
+ },
6755
+ "slice-ansi": {
6756
+ "version": "1.0.0",
6757
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
6758
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
6759
+ "dev": true,
6760
+ "requires": {
6761
+ "is-fullwidth-code-point": "^2.0.0"
6762
+ },
6763
+ "dependencies": {
6764
+ "is-fullwidth-code-point": {
6765
+ "version": "2.0.0",
6766
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
6767
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
6768
+ "dev": true
6769
+ }
6770
+ }
6771
+ },
6772
+ "snapdragon": {
6773
+ "version": "0.8.2",
6774
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
6775
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
6776
+ "dev": true,
6777
+ "requires": {
6778
+ "base": "^0.11.1",
6779
+ "debug": "^2.2.0",
6780
+ "define-property": "^0.2.5",
6781
+ "extend-shallow": "^2.0.1",
6782
+ "map-cache": "^0.2.2",
6783
+ "source-map": "^0.5.6",
6784
+ "source-map-resolve": "^0.5.0",
6785
+ "use": "^3.1.0"
6786
+ },
6787
+ "dependencies": {
6788
+ "define-property": {
6789
+ "version": "0.2.5",
6790
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
6791
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
6792
+ "dev": true,
6793
+ "requires": {
6794
+ "is-descriptor": "^0.1.0"
6795
+ }
6796
+ },
6797
+ "extend-shallow": {
6798
+ "version": "2.0.1",
6799
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
6800
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
6801
+ "dev": true,
6802
+ "requires": {
6803
+ "is-extendable": "^0.1.0"
6804
+ }
6805
+ },
6806
+ "source-map": {
6807
+ "version": "0.5.7",
6808
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6809
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
6810
+ "dev": true
6811
+ }
6812
+ }
6813
+ },
6814
+ "snapdragon-node": {
6815
+ "version": "2.1.1",
6816
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
6817
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
6818
+ "dev": true,
6819
+ "requires": {
6820
+ "define-property": "^1.0.0",
6821
+ "isobject": "^3.0.0",
6822
+ "snapdragon-util": "^3.0.1"
6823
+ },
6824
+ "dependencies": {
6825
+ "define-property": {
6826
+ "version": "1.0.0",
6827
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
6828
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
6829
+ "dev": true,
6830
+ "requires": {
6831
+ "is-descriptor": "^1.0.0"
6832
+ }
6833
+ },
6834
+ "is-accessor-descriptor": {
6835
+ "version": "1.0.0",
6836
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
6837
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
6838
+ "dev": true,
6839
+ "requires": {
6840
+ "kind-of": "^6.0.0"
6841
+ }
6842
+ },
6843
+ "is-data-descriptor": {
6844
+ "version": "1.0.0",
6845
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
6846
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
6847
+ "dev": true,
6848
+ "requires": {
6849
+ "kind-of": "^6.0.0"
6850
+ }
6851
+ },
6852
+ "is-descriptor": {
6853
+ "version": "1.0.2",
6854
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
6855
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
6856
+ "dev": true,
6857
+ "requires": {
6858
+ "is-accessor-descriptor": "^1.0.0",
6859
+ "is-data-descriptor": "^1.0.0",
6860
+ "kind-of": "^6.0.2"
6861
+ }
6862
+ },
6863
+ "isobject": {
6864
+ "version": "3.0.1",
6865
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
6866
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
6867
+ "dev": true
6868
+ },
6869
+ "kind-of": {
6870
+ "version": "6.0.2",
6871
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
6872
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
6873
+ "dev": true
6874
+ }
6875
+ }
6876
+ },
6877
+ "snapdragon-util": {
6878
+ "version": "3.0.1",
6879
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
6880
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
6881
+ "dev": true,
6882
+ "requires": {
6883
+ "kind-of": "^3.2.0"
6884
+ }
6885
+ },
6886
+ "source-list-map": {
6887
+ "version": "2.0.0",
6888
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz",
6889
+ "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==",
6890
+ "dev": true
6891
+ },
6892
+ "source-map": {
6893
+ "version": "0.6.1",
6894
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
6895
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
6896
+ "dev": true
6897
+ },
6898
+ "source-map-resolve": {
6899
+ "version": "0.5.2",
6900
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
6901
+ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
6902
+ "dev": true,
6903
+ "requires": {
6904
+ "atob": "^2.1.1",
6905
+ "decode-uri-component": "^0.2.0",
6906
+ "resolve-url": "^0.2.1",
6907
+ "source-map-url": "^0.4.0",
6908
+ "urix": "^0.1.0"
6909
+ }
6910
+ },
6911
+ "source-map-support": {
6912
+ "version": "0.4.18",
6913
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
6914
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
6915
+ "dev": true,
6916
+ "requires": {
6917
+ "source-map": "^0.5.6"
6918
+ },
6919
+ "dependencies": {
6920
+ "source-map": {
6921
+ "version": "0.5.7",
6922
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
6923
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
6924
+ "dev": true
6925
+ }
6926
+ }
6927
+ },
6928
+ "source-map-url": {
6929
+ "version": "0.4.0",
6930
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
6931
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
6932
+ "dev": true
6933
+ },
6934
+ "spdx-correct": {
6935
+ "version": "3.0.0",
6936
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
6937
+ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
6938
+ "dev": true,
6939
+ "requires": {
6940
+ "spdx-expression-parse": "^3.0.0",
6941
+ "spdx-license-ids": "^3.0.0"
6942
+ }
6943
+ },
6944
+ "spdx-exceptions": {
6945
+ "version": "2.1.0",
6946
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
6947
+ "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
6948
+ "dev": true
6949
+ },
6950
+ "spdx-expression-parse": {
6951
+ "version": "3.0.0",
6952
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
6953
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
6954
+ "dev": true,
6955
+ "requires": {
6956
+ "spdx-exceptions": "^2.1.0",
6957
+ "spdx-license-ids": "^3.0.0"
6958
+ }
6959
+ },
6960
+ "spdx-license-ids": {
6961
+ "version": "3.0.0",
6962
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
6963
+ "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
6964
+ "dev": true
6965
+ },
6966
+ "specificity": {
6967
+ "version": "0.3.2",
6968
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz",
6969
+ "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==",
6970
+ "dev": true
6971
+ },
6972
+ "split": {
6973
+ "version": "1.0.1",
6974
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
6975
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
6976
+ "dev": true,
6977
+ "optional": true,
6978
+ "requires": {
6979
+ "through": "2"
6980
+ }
6981
+ },
6982
+ "split-string": {
6983
+ "version": "3.1.0",
6984
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
6985
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
6986
+ "dev": true,
6987
+ "requires": {
6988
+ "extend-shallow": "^3.0.0"
6989
+ }
6990
+ },
6991
+ "sprintf-js": {
6992
+ "version": "1.1.1",
6993
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
6994
+ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=",
6995
+ "dev": true
6996
+ },
6997
+ "sshpk": {
6998
+ "version": "1.14.2",
6999
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
7000
+ "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
7001
+ "dev": true,
7002
+ "requires": {
7003
+ "asn1": "~0.2.3",
7004
+ "assert-plus": "^1.0.0",
7005
+ "bcrypt-pbkdf": "^1.0.0",
7006
+ "dashdash": "^1.12.0",
7007
+ "ecc-jsbn": "~0.1.1",
7008
+ "getpass": "^0.1.1",
7009
+ "jsbn": "~0.1.0",
7010
+ "safer-buffer": "^2.0.2",
7011
+ "tweetnacl": "~0.14.0"
7012
+ }
7013
+ },
7014
+ "stack-trace": {
7015
+ "version": "0.0.10",
7016
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
7017
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
7018
+ "dev": true,
7019
+ "optional": true
7020
+ },
7021
+ "static-extend": {
7022
+ "version": "0.1.2",
7023
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
7024
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
7025
+ "dev": true,
7026
+ "requires": {
7027
+ "define-property": "^0.2.5",
7028
+ "object-copy": "^0.1.0"
7029
+ },
7030
+ "dependencies": {
7031
+ "define-property": {
7032
+ "version": "0.2.5",
7033
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
7034
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
7035
+ "dev": true,
7036
+ "requires": {
7037
+ "is-descriptor": "^0.1.0"
7038
+ }
7039
+ }
7040
+ }
7041
+ },
7042
+ "statuses": {
7043
+ "version": "1.5.0",
7044
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
7045
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
7046
+ "dev": true
7047
+ },
7048
+ "stdout-stream": {
7049
+ "version": "1.4.1",
7050
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
7051
+ "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
7052
+ "dev": true,
7053
+ "requires": {
7054
+ "readable-stream": "^2.0.1"
7055
+ }
7056
+ },
7057
+ "stream-browserify": {
7058
+ "version": "2.0.1",
7059
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
7060
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
7061
+ "dev": true,
7062
+ "requires": {
7063
+ "inherits": "~2.0.1",
7064
+ "readable-stream": "^2.0.2"
7065
+ }
7066
+ },
7067
+ "stream-http": {
7068
+ "version": "2.8.3",
7069
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
7070
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
7071
+ "dev": true,
7072
+ "requires": {
7073
+ "builtin-status-codes": "^3.0.0",
7074
+ "inherits": "^2.0.1",
7075
+ "readable-stream": "^2.3.6",
7076
+ "to-arraybuffer": "^1.0.0",
7077
+ "xtend": "^4.0.0"
7078
+ }
7079
+ },
7080
+ "string-width": {
7081
+ "version": "1.0.2",
7082
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
7083
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
7084
+ "dev": true,
7085
+ "requires": {
7086
+ "code-point-at": "^1.0.0",
7087
+ "is-fullwidth-code-point": "^1.0.0",
7088
+ "strip-ansi": "^3.0.0"
7089
+ }
7090
+ },
7091
+ "string_decoder": {
7092
+ "version": "1.1.1",
7093
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
7094
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
7095
+ "dev": true,
7096
+ "requires": {
7097
+ "safe-buffer": "~5.1.0"
7098
+ }
7099
+ },
7100
+ "strip-ansi": {
7101
+ "version": "3.0.1",
7102
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
7103
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
7104
+ "dev": true,
7105
+ "requires": {
7106
+ "ansi-regex": "^2.0.0"
7107
+ }
7108
+ },
7109
+ "strip-bom": {
7110
+ "version": "2.0.0",
7111
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
7112
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
7113
+ "dev": true,
7114
+ "requires": {
7115
+ "is-utf8": "^0.2.0"
7116
+ }
7117
+ },
7118
+ "strip-eof": {
7119
+ "version": "1.0.0",
7120
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
7121
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
7122
+ "dev": true
7123
+ },
7124
+ "strip-indent": {
7125
+ "version": "1.0.1",
7126
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
7127
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
7128
+ "dev": true,
7129
+ "requires": {
7130
+ "get-stdin": "^4.0.1"
7131
+ }
7132
+ },
7133
+ "strip-json-comments": {
7134
+ "version": "1.0.4",
7135
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
7136
+ "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
7137
+ "dev": true
7138
+ },
7139
+ "style-search": {
7140
+ "version": "0.1.0",
7141
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
7142
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
7143
+ "dev": true
7144
+ },
7145
+ "stylelint": {
7146
+ "version": "8.2.0",
7147
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-8.2.0.tgz",
7148
+ "integrity": "sha512-57JWIz/1Uh9ehZMZyAqlFC0EDfQrMXCH8yqt8ZuJQQvV3LBKgAM/JYd+CWi1hC4eJtRODSPbIIBYKdGjkPZdMg==",
7149
+ "dev": true,
7150
+ "requires": {
7151
+ "autoprefixer": "^7.1.2",
7152
+ "balanced-match": "^1.0.0",
7153
+ "chalk": "^2.0.1",
7154
+ "cosmiconfig": "^3.1.0",
7155
+ "debug": "^3.0.0",
7156
+ "execall": "^1.0.0",
7157
+ "file-entry-cache": "^2.0.0",
7158
+ "get-stdin": "^5.0.1",
7159
+ "globby": "^6.1.0",
7160
+ "globjoin": "^0.1.4",
7161
+ "html-tags": "^2.0.0",
7162
+ "ignore": "^3.3.3",
7163
+ "imurmurhash": "^0.1.4",
7164
+ "known-css-properties": "^0.4.0",
7165
+ "lodash": "^4.17.4",
7166
+ "log-symbols": "^2.0.0",
7167
+ "mathml-tag-names": "^2.0.1",
7168
+ "meow": "^3.7.0",
7169
+ "micromatch": "^2.3.11",
7170
+ "normalize-selector": "^0.2.0",
7171
+ "pify": "^3.0.0",
7172
+ "postcss": "^6.0.6",
7173
+ "postcss-less": "^1.1.0",
7174
+ "postcss-media-query-parser": "^0.2.3",
7175
+ "postcss-reporter": "^5.0.0",
7176
+ "postcss-resolve-nested-selector": "^0.1.1",
7177
+ "postcss-safe-parser": "^3.0.1",
7178
+ "postcss-scss": "^1.0.2",
7179
+ "postcss-selector-parser": "^2.2.3",
7180
+ "postcss-value-parser": "^3.3.0",
7181
+ "resolve-from": "^4.0.0",
7182
+ "specificity": "^0.3.1",
7183
+ "string-width": "^2.1.0",
7184
+ "style-search": "^0.1.0",
7185
+ "sugarss": "^1.0.0",
7186
+ "svg-tags": "^1.0.0",
7187
+ "table": "^4.0.1"
7188
+ },
7189
+ "dependencies": {
7190
+ "ansi-regex": {
7191
+ "version": "3.0.0",
7192
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
7193
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
7194
+ "dev": true
7195
+ },
7196
+ "debug": {
7197
+ "version": "3.1.0",
7198
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
7199
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
7200
+ "dev": true,
7201
+ "requires": {
7202
+ "ms": "2.0.0"
7203
+ }
7204
+ },
7205
+ "get-stdin": {
7206
+ "version": "5.0.1",
7207
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
7208
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
7209
+ "dev": true
7210
+ },
7211
+ "is-fullwidth-code-point": {
7212
+ "version": "2.0.0",
7213
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
7214
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
7215
+ "dev": true
7216
+ },
7217
+ "string-width": {
7218
+ "version": "2.1.1",
7219
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
7220
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
7221
+ "dev": true,
7222
+ "requires": {
7223
+ "is-fullwidth-code-point": "^2.0.0",
7224
+ "strip-ansi": "^4.0.0"
7225
+ }
7226
+ },
7227
+ "strip-ansi": {
7228
+ "version": "4.0.0",
7229
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
7230
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
7231
+ "dev": true,
7232
+ "requires": {
7233
+ "ansi-regex": "^3.0.0"
7234
+ }
7235
+ }
7236
+ }
7237
+ },
7238
+ "sugarss": {
7239
+ "version": "1.0.1",
7240
+ "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.1.tgz",
7241
+ "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==",
7242
+ "dev": true,
7243
+ "requires": {
7244
+ "postcss": "^6.0.14"
7245
+ }
7246
+ },
7247
+ "supports-color": {
7248
+ "version": "5.5.0",
7249
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
7250
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
7251
+ "dev": true,
7252
+ "requires": {
7253
+ "has-flag": "^3.0.0"
7254
+ }
7255
+ },
7256
+ "svg-tags": {
7257
+ "version": "1.0.0",
7258
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
7259
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
7260
+ "dev": true
7261
+ },
7262
+ "table": {
7263
+ "version": "4.0.3",
7264
+ "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz",
7265
+ "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==",
7266
+ "dev": true,
7267
+ "requires": {
7268
+ "ajv": "^6.0.1",
7269
+ "ajv-keywords": "^3.0.0",
7270
+ "chalk": "^2.1.0",
7271
+ "lodash": "^4.17.4",
7272
+ "slice-ansi": "1.0.0",
7273
+ "string-width": "^2.1.1"
7274
+ },
7275
+ "dependencies": {
7276
+ "ajv": {
7277
+ "version": "6.5.3",
7278
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
7279
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
7280
+ "dev": true,
7281
+ "requires": {
7282
+ "fast-deep-equal": "^2.0.1",
7283
+ "fast-json-stable-stringify": "^2.0.0",
7284
+ "json-schema-traverse": "^0.4.1",
7285
+ "uri-js": "^4.2.2"
7286
+ }
7287
+ },
7288
+ "ansi-regex": {
7289
+ "version": "3.0.0",
7290
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
7291
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
7292
+ "dev": true
7293
+ },
7294
+ "fast-deep-equal": {
7295
+ "version": "2.0.1",
7296
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
7297
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
7298
+ "dev": true
7299
+ },
7300
+ "is-fullwidth-code-point": {
7301
+ "version": "2.0.0",
7302
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
7303
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
7304
+ "dev": true
7305
+ },
7306
+ "json-schema-traverse": {
7307
+ "version": "0.4.1",
7308
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
7309
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
7310
+ "dev": true
7311
+ },
7312
+ "string-width": {
7313
+ "version": "2.1.1",
7314
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
7315
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
7316
+ "dev": true,
7317
+ "requires": {
7318
+ "is-fullwidth-code-point": "^2.0.0",
7319
+ "strip-ansi": "^4.0.0"
7320
+ }
7321
+ },
7322
+ "strip-ansi": {
7323
+ "version": "4.0.0",
7324
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
7325
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
7326
+ "dev": true,
7327
+ "requires": {
7328
+ "ansi-regex": "^3.0.0"
7329
+ }
7330
+ }
7331
+ }
7332
+ },
7333
+ "tapable": {
7334
+ "version": "0.2.8",
7335
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz",
7336
+ "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=",
7337
+ "dev": true
7338
+ },
7339
+ "tar": {
7340
+ "version": "2.2.1",
7341
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
7342
+ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
7343
+ "dev": true,
7344
+ "requires": {
7345
+ "block-stream": "*",
7346
+ "fstream": "^1.0.2",
7347
+ "inherits": "2"
7348
+ }
7349
+ },
7350
+ "text-table": {
7351
+ "version": "0.2.0",
7352
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
7353
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
7354
+ "dev": true
7355
+ },
7356
+ "throttleit": {
7357
+ "version": "1.0.0",
7358
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
7359
+ "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
7360
+ "dev": true,
7361
+ "optional": true
7362
+ },
7363
+ "through": {
7364
+ "version": "2.3.8",
7365
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
7366
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
7367
+ "dev": true,
7368
+ "optional": true
7369
+ },
7370
+ "timers-browserify": {
7371
+ "version": "2.0.10",
7372
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
7373
+ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
7374
+ "dev": true,
7375
+ "requires": {
7376
+ "setimmediate": "^1.0.4"
7377
+ }
7378
+ },
7379
+ "tiny-lr": {
7380
+ "version": "0.2.1",
7381
+ "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz",
7382
+ "integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=",
7383
+ "dev": true,
7384
+ "requires": {
7385
+ "body-parser": "~1.14.0",
7386
+ "debug": "~2.2.0",
7387
+ "faye-websocket": "~0.10.0",
7388
+ "livereload-js": "^2.2.0",
7389
+ "parseurl": "~1.3.0",
7390
+ "qs": "~5.1.0"
7391
+ },
7392
+ "dependencies": {
7393
+ "debug": {
7394
+ "version": "2.2.0",
7395
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
7396
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
7397
+ "dev": true,
7398
+ "requires": {
7399
+ "ms": "0.7.1"
7400
+ }
7401
+ },
7402
+ "ms": {
7403
+ "version": "0.7.1",
7404
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
7405
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
7406
+ "dev": true
7407
+ },
7408
+ "qs": {
7409
+ "version": "5.1.0",
7410
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
7411
+ "integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=",
7412
+ "dev": true
7413
+ }
7414
+ }
7415
+ },
7416
+ "tmp": {
7417
+ "version": "0.0.33",
7418
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
7419
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
7420
+ "dev": true,
7421
+ "requires": {
7422
+ "os-tmpdir": "~1.0.2"
7423
+ }
7424
+ },
7425
+ "to-arraybuffer": {
7426
+ "version": "1.0.1",
7427
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
7428
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
7429
+ "dev": true
7430
+ },
7431
+ "to-fast-properties": {
7432
+ "version": "1.0.3",
7433
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
7434
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
7435
+ "dev": true
7436
+ },
7437
+ "to-object-path": {
7438
+ "version": "0.3.0",
7439
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
7440
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
7441
+ "dev": true,
7442
+ "requires": {
7443
+ "kind-of": "^3.0.2"
7444
+ }
7445
+ },
7446
+ "to-regex": {
7447
+ "version": "3.0.2",
7448
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
7449
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
7450
+ "dev": true,
7451
+ "requires": {
7452
+ "define-property": "^2.0.2",
7453
+ "extend-shallow": "^3.0.2",
7454
+ "regex-not": "^1.0.2",
7455
+ "safe-regex": "^1.1.0"
7456
+ }
7457
+ },
7458
+ "to-regex-range": {
7459
+ "version": "2.1.1",
7460
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
7461
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
7462
+ "dev": true,
7463
+ "requires": {
7464
+ "is-number": "^3.0.0",
7465
+ "repeat-string": "^1.6.1"
7466
+ },
7467
+ "dependencies": {
7468
+ "is-number": {
7469
+ "version": "3.0.0",
7470
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
7471
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
7472
+ "dev": true,
7473
+ "requires": {
7474
+ "kind-of": "^3.0.2"
7475
+ }
7476
+ }
7477
+ }
7478
+ },
7479
+ "tough-cookie": {
7480
+ "version": "2.4.3",
7481
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
7482
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
7483
+ "dev": true,
7484
+ "requires": {
7485
+ "psl": "^1.1.24",
7486
+ "punycode": "^1.4.1"
7487
+ }
7488
+ },
7489
+ "trim-newlines": {
7490
+ "version": "1.0.0",
7491
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
7492
+ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
7493
+ "dev": true
7494
+ },
7495
+ "trim-right": {
7496
+ "version": "1.0.1",
7497
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
7498
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
7499
+ "dev": true
7500
+ },
7501
+ "true-case-path": {
7502
+ "version": "1.0.3",
7503
+ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
7504
+ "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
7505
+ "dev": true,
7506
+ "requires": {
7507
+ "glob": "^7.1.2"
7508
+ }
7509
+ },
7510
+ "tty-browserify": {
7511
+ "version": "0.0.0",
7512
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
7513
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
7514
+ "dev": true
7515
+ },
7516
+ "tunnel-agent": {
7517
+ "version": "0.6.0",
7518
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
7519
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
7520
+ "dev": true,
7521
+ "requires": {
7522
+ "safe-buffer": "^5.0.1"
7523
+ }
7524
+ },
7525
+ "tweetnacl": {
7526
+ "version": "0.14.5",
7527
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
7528
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
7529
+ "dev": true,
7530
+ "optional": true
7531
+ },
7532
+ "type-is": {
7533
+ "version": "1.6.16",
7534
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
7535
+ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
7536
+ "dev": true,
7537
+ "requires": {
7538
+ "media-typer": "0.3.0",
7539
+ "mime-types": "~2.1.18"
7540
+ }
7541
+ },
7542
+ "typedarray": {
7543
+ "version": "0.0.6",
7544
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
7545
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
7546
+ "dev": true
7547
+ },
7548
+ "uglify-js": {
7549
+ "version": "3.0.28",
7550
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz",
7551
+ "integrity": "sha512-0h/qGay016GG2lVav3Kz174F3T2Vjlz2v6HCt+WDQpoXfco0hWwF5gHK9yh88mUYvIC+N7Z8NT8WpjSp1yoqGA==",
7552
+ "dev": true,
7553
+ "requires": {
7554
+ "commander": "~2.11.0",
7555
+ "source-map": "~0.5.1"
7556
+ },
7557
+ "dependencies": {
7558
+ "commander": {
7559
+ "version": "2.11.0",
7560
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
7561
+ "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
7562
+ "dev": true
7563
+ },
7564
+ "source-map": {
7565
+ "version": "0.5.7",
7566
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
7567
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
7568
+ "dev": true
7569
+ }
7570
+ }
7571
+ },
7572
+ "uglify-to-browserify": {
7573
+ "version": "1.0.2",
7574
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
7575
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
7576
+ "dev": true,
7577
+ "optional": true
7578
+ },
7579
+ "uglifyjs-webpack-plugin": {
7580
+ "version": "0.4.6",
7581
+ "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
7582
+ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
7583
+ "dev": true,
7584
+ "requires": {
7585
+ "source-map": "^0.5.6",
7586
+ "uglify-js": "^2.8.29",
7587
+ "webpack-sources": "^1.0.1"
7588
+ },
7589
+ "dependencies": {
7590
+ "camelcase": {
7591
+ "version": "1.2.1",
7592
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
7593
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
7594
+ "dev": true
7595
+ },
7596
+ "cliui": {
7597
+ "version": "2.1.0",
7598
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
7599
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
7600
+ "dev": true,
7601
+ "requires": {
7602
+ "center-align": "^0.1.1",
7603
+ "right-align": "^0.1.1",
7604
+ "wordwrap": "0.0.2"
7605
+ }
7606
+ },
7607
+ "source-map": {
7608
+ "version": "0.5.7",
7609
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
7610
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
7611
+ "dev": true
7612
+ },
7613
+ "uglify-js": {
7614
+ "version": "2.8.29",
7615
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
7616
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
7617
+ "dev": true,
7618
+ "requires": {
7619
+ "source-map": "~0.5.1",
7620
+ "uglify-to-browserify": "~1.0.0",
7621
+ "yargs": "~3.10.0"
7622
+ }
7623
+ },
7624
+ "yargs": {
7625
+ "version": "3.10.0",
7626
+ "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
7627
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
7628
+ "dev": true,
7629
+ "requires": {
7630
+ "camelcase": "^1.0.2",
7631
+ "cliui": "^2.1.0",
7632
+ "decamelize": "^1.0.0",
7633
+ "window-size": "0.1.0"
7634
+ }
7635
+ }
7636
+ }
7637
+ },
7638
+ "underscore.string": {
7639
+ "version": "3.3.4",
7640
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz",
7641
+ "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=",
7642
+ "dev": true,
7643
+ "requires": {
7644
+ "sprintf-js": "^1.0.3",
7645
+ "util-deprecate": "^1.0.2"
7646
+ }
7647
+ },
7648
+ "unicode-5.2.0": {
7649
+ "version": "0.7.5",
7650
+ "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz",
7651
+ "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==",
7652
+ "dev": true
7653
+ },
7654
+ "union-value": {
7655
+ "version": "1.0.0",
7656
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz",
7657
+ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=",
7658
+ "dev": true,
7659
+ "requires": {
7660
+ "arr-union": "^3.1.0",
7661
+ "get-value": "^2.0.6",
7662
+ "is-extendable": "^0.1.1",
7663
+ "set-value": "^0.4.3"
7664
+ },
7665
+ "dependencies": {
7666
+ "extend-shallow": {
7667
+ "version": "2.0.1",
7668
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
7669
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
7670
+ "dev": true,
7671
+ "requires": {
7672
+ "is-extendable": "^0.1.0"
7673
+ }
7674
+ },
7675
+ "set-value": {
7676
+ "version": "0.4.3",
7677
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
7678
+ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
7679
+ "dev": true,
7680
+ "requires": {
7681
+ "extend-shallow": "^2.0.1",
7682
+ "is-extendable": "^0.1.1",
7683
+ "is-plain-object": "^2.0.1",
7684
+ "to-object-path": "^0.3.0"
7685
+ }
7686
+ }
7687
+ }
7688
+ },
7689
+ "uniq": {
7690
+ "version": "1.0.1",
7691
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
7692
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
7693
+ "dev": true
7694
+ },
7695
+ "unpipe": {
7696
+ "version": "1.0.0",
7697
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
7698
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
7699
+ "dev": true
7700
+ },
7701
+ "unset-value": {
7702
+ "version": "1.0.0",
7703
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
7704
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
7705
+ "dev": true,
7706
+ "requires": {
7707
+ "has-value": "^0.3.1",
7708
+ "isobject": "^3.0.0"
7709
+ },
7710
+ "dependencies": {
7711
+ "has-value": {
7712
+ "version": "0.3.1",
7713
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
7714
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
7715
+ "dev": true,
7716
+ "requires": {
7717
+ "get-value": "^2.0.3",
7718
+ "has-values": "^0.1.4",
7719
+ "isobject": "^2.0.0"
7720
+ },
7721
+ "dependencies": {
7722
+ "isobject": {
7723
+ "version": "2.1.0",
7724
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
7725
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
7726
+ "dev": true,
7727
+ "requires": {
7728
+ "isarray": "1.0.0"
7729
+ }
7730
+ }
7731
+ }
7732
+ },
7733
+ "has-values": {
7734
+ "version": "0.1.4",
7735
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
7736
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
7737
+ "dev": true
7738
+ },
7739
+ "isobject": {
7740
+ "version": "3.0.1",
7741
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
7742
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
7743
+ "dev": true
7744
+ }
7745
+ }
7746
+ },
7747
+ "upath": {
7748
+ "version": "1.1.0",
7749
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz",
7750
+ "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==",
7751
+ "dev": true
7752
+ },
7753
+ "uri-js": {
7754
+ "version": "4.2.2",
7755
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
7756
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
7757
+ "dev": true,
7758
+ "requires": {
7759
+ "punycode": "^2.1.0"
7760
+ },
7761
+ "dependencies": {
7762
+ "punycode": {
7763
+ "version": "2.1.1",
7764
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
7765
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
7766
+ "dev": true
7767
+ }
7768
+ }
7769
+ },
7770
+ "uri-path": {
7771
+ "version": "1.0.0",
7772
+ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
7773
+ "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
7774
+ "dev": true
7775
+ },
7776
+ "urix": {
7777
+ "version": "0.1.0",
7778
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
7779
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
7780
+ "dev": true
7781
+ },
7782
+ "url": {
7783
+ "version": "0.11.0",
7784
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
7785
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
7786
+ "dev": true,
7787
+ "requires": {
7788
+ "punycode": "1.3.2",
7789
+ "querystring": "0.2.0"
7790
+ },
7791
+ "dependencies": {
7792
+ "punycode": {
7793
+ "version": "1.3.2",
7794
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
7795
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
7796
+ "dev": true
7797
+ }
7798
+ }
7799
+ },
7800
+ "use": {
7801
+ "version": "3.1.1",
7802
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
7803
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
7804
+ "dev": true
7805
+ },
7806
+ "user-home": {
7807
+ "version": "1.1.1",
7808
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
7809
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
7810
+ "dev": true
7811
+ },
7812
+ "util": {
7813
+ "version": "0.10.4",
7814
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
7815
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
7816
+ "dev": true,
7817
+ "requires": {
7818
+ "inherits": "2.0.3"
7819
+ }
7820
+ },
7821
+ "util-deprecate": {
7822
+ "version": "1.0.2",
7823
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
7824
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
7825
+ "dev": true
7826
+ },
7827
+ "uuid": {
7828
+ "version": "3.3.2",
7829
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
7830
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
7831
+ "dev": true
7832
+ },
7833
+ "v8flags": {
7834
+ "version": "2.1.1",
7835
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
7836
+ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
7837
+ "dev": true,
7838
+ "requires": {
7839
+ "user-home": "^1.1.1"
7840
+ }
7841
+ },
7842
+ "validate-npm-package-license": {
7843
+ "version": "3.0.4",
7844
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
7845
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
7846
+ "dev": true,
7847
+ "requires": {
7848
+ "spdx-correct": "^3.0.0",
7849
+ "spdx-expression-parse": "^3.0.0"
7850
+ }
7851
+ },
7852
+ "verror": {
7853
+ "version": "1.10.0",
7854
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
7855
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
7856
+ "dev": true,
7857
+ "requires": {
7858
+ "assert-plus": "^1.0.0",
7859
+ "core-util-is": "1.0.2",
7860
+ "extsprintf": "^1.2.0"
7861
+ }
7862
+ },
7863
+ "vm-browserify": {
7864
+ "version": "0.0.4",
7865
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz",
7866
+ "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=",
7867
+ "dev": true,
7868
+ "requires": {
7869
+ "indexof": "0.0.1"
7870
+ }
7871
+ },
7872
+ "watchpack": {
7873
+ "version": "1.6.0",
7874
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
7875
+ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
7876
+ "dev": true,
7877
+ "requires": {
7878
+ "chokidar": "^2.0.2",
7879
+ "graceful-fs": "^4.1.2",
7880
+ "neo-async": "^2.5.0"
7881
+ },
7882
+ "dependencies": {
7883
+ "anymatch": {
7884
+ "version": "2.0.0",
7885
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
7886
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
7887
+ "dev": true,
7888
+ "requires": {
7889
+ "micromatch": "^3.1.4",
7890
+ "normalize-path": "^2.1.1"
7891
+ }
7892
+ },
7893
+ "arr-diff": {
7894
+ "version": "4.0.0",
7895
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
7896
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
7897
+ "dev": true
7898
+ },
7899
+ "array-unique": {
7900
+ "version": "0.3.2",
7901
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
7902
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
7903
+ "dev": true
7904
+ },
7905
+ "braces": {
7906
+ "version": "2.3.2",
7907
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
7908
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
7909
+ "dev": true,
7910
+ "requires": {
7911
+ "arr-flatten": "^1.1.0",
7912
+ "array-unique": "^0.3.2",
7913
+ "extend-shallow": "^2.0.1",
7914
+ "fill-range": "^4.0.0",
7915
+ "isobject": "^3.0.1",
7916
+ "repeat-element": "^1.1.2",
7917
+ "snapdragon": "^0.8.1",
7918
+ "snapdragon-node": "^2.0.1",
7919
+ "split-string": "^3.0.2",
7920
+ "to-regex": "^3.0.1"
7921
+ },
7922
+ "dependencies": {
7923
+ "extend-shallow": {
7924
+ "version": "2.0.1",
7925
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
7926
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
7927
+ "dev": true,
7928
+ "requires": {
7929
+ "is-extendable": "^0.1.0"
7930
+ }
7931
+ }
7932
+ }
7933
+ },
7934
+ "chokidar": {
7935
+ "version": "2.0.4",
7936
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz",
7937
+ "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==",
7938
+ "dev": true,
7939
+ "requires": {
7940
+ "anymatch": "^2.0.0",
7941
+ "async-each": "^1.0.0",
7942
+ "braces": "^2.3.0",
7943
+ "fsevents": "^1.2.2",
7944
+ "glob-parent": "^3.1.0",
7945
+ "inherits": "^2.0.1",
7946
+ "is-binary-path": "^1.0.0",
7947
+ "is-glob": "^4.0.0",
7948
+ "lodash.debounce": "^4.0.8",
7949
+ "normalize-path": "^2.1.1",
7950
+ "path-is-absolute": "^1.0.0",
7951
+ "readdirp": "^2.0.0",
7952
+ "upath": "^1.0.5"
7953
+ }
7954
+ },
7955
+ "expand-brackets": {
7956
+ "version": "2.1.4",
7957
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
7958
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
7959
+ "dev": true,
7960
+ "requires": {
7961
+ "debug": "^2.3.3",
7962
+ "define-property": "^0.2.5",
7963
+ "extend-shallow": "^2.0.1",
7964
+ "posix-character-classes": "^0.1.0",
7965
+ "regex-not": "^1.0.0",
7966
+ "snapdragon": "^0.8.1",
7967
+ "to-regex": "^3.0.1"
7968
+ },
7969
+ "dependencies": {
7970
+ "define-property": {
7971
+ "version": "0.2.5",
7972
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
7973
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
7974
+ "dev": true,
7975
+ "requires": {
7976
+ "is-descriptor": "^0.1.0"
7977
+ }
7978
+ },
7979
+ "extend-shallow": {
7980
+ "version": "2.0.1",
7981
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
7982
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
7983
+ "dev": true,
7984
+ "requires": {
7985
+ "is-extendable": "^0.1.0"
7986
+ }
7987
+ },
7988
+ "is-accessor-descriptor": {
7989
+ "version": "0.1.6",
7990
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
7991
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
7992
+ "dev": true,
7993
+ "requires": {
7994
+ "kind-of": "^3.0.2"
7995
+ },
7996
+ "dependencies": {
7997
+ "kind-of": {
7998
+ "version": "3.2.2",
7999
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
8000
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
8001
+ "dev": true,
8002
+ "requires": {
8003
+ "is-buffer": "^1.1.5"
8004
+ }
8005
+ }
8006
+ }
8007
+ },
8008
+ "is-data-descriptor": {
8009
+ "version": "0.1.4",
8010
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
8011
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
8012
+ "dev": true,
8013
+ "requires": {
8014
+ "kind-of": "^3.0.2"
8015
+ },
8016
+ "dependencies": {
8017
+ "kind-of": {
8018
+ "version": "3.2.2",
8019
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
8020
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
8021
+ "dev": true,
8022
+ "requires": {
8023
+ "is-buffer": "^1.1.5"
8024
+ }
8025
+ }
8026
+ }
8027
+ },
8028
+ "is-descriptor": {
8029
+ "version": "0.1.6",
8030
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
8031
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
8032
+ "dev": true,
8033
+ "requires": {
8034
+ "is-accessor-descriptor": "^0.1.6",
8035
+ "is-data-descriptor": "^0.1.4",
8036
+ "kind-of": "^5.0.0"
8037
+ }
8038
+ },
8039
+ "kind-of": {
8040
+ "version": "5.1.0",
8041
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
8042
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
8043
+ "dev": true
8044
+ }
8045
+ }
8046
+ },
8047
+ "extglob": {
8048
+ "version": "2.0.4",
8049
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
8050
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
8051
+ "dev": true,
8052
+ "requires": {
8053
+ "array-unique": "^0.3.2",
8054
+ "define-property": "^1.0.0",
8055
+ "expand-brackets": "^2.1.4",
8056
+ "extend-shallow": "^2.0.1",
8057
+ "fragment-cache": "^0.2.1",
8058
+ "regex-not": "^1.0.0",
8059
+ "snapdragon": "^0.8.1",
8060
+ "to-regex": "^3.0.1"
8061
+ },
8062
+ "dependencies": {
8063
+ "define-property": {
8064
+ "version": "1.0.0",
8065
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
8066
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
8067
+ "dev": true,
8068
+ "requires": {
8069
+ "is-descriptor": "^1.0.0"
8070
+ }
8071
+ },
8072
+ "extend-shallow": {
8073
+ "version": "2.0.1",
8074
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
8075
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
8076
+ "dev": true,
8077
+ "requires": {
8078
+ "is-extendable": "^0.1.0"
8079
+ }
8080
+ }
8081
+ }
8082
+ },
8083
+ "fill-range": {
8084
+ "version": "4.0.0",
8085
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
8086
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
8087
+ "dev": true,
8088
+ "requires": {
8089
+ "extend-shallow": "^2.0.1",
8090
+ "is-number": "^3.0.0",
8091
+ "repeat-string": "^1.6.1",
8092
+ "to-regex-range": "^2.1.0"
8093
+ },
8094
+ "dependencies": {
8095
+ "extend-shallow": {
8096
+ "version": "2.0.1",
8097
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
8098
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
8099
+ "dev": true,
8100
+ "requires": {
8101
+ "is-extendable": "^0.1.0"
8102
+ }
8103
+ }
8104
+ }
8105
+ },
8106
+ "glob-parent": {
8107
+ "version": "3.1.0",
8108
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
8109
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
8110
+ "dev": true,
8111
+ "requires": {
8112
+ "is-glob": "^3.1.0",
8113
+ "path-dirname": "^1.0.0"
8114
+ },
8115
+ "dependencies": {
8116
+ "is-glob": {
8117
+ "version": "3.1.0",
8118
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
8119
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
8120
+ "dev": true,
8121
+ "requires": {
8122
+ "is-extglob": "^2.1.0"
8123
+ }
8124
+ }
8125
+ }
8126
+ },
8127
+ "is-accessor-descriptor": {
8128
+ "version": "1.0.0",
8129
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
8130
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
8131
+ "dev": true,
8132
+ "requires": {
8133
+ "kind-of": "^6.0.0"
8134
+ }
8135
+ },
8136
+ "is-data-descriptor": {
8137
+ "version": "1.0.0",
8138
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
8139
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
8140
+ "dev": true,
8141
+ "requires": {
8142
+ "kind-of": "^6.0.0"
8143
+ }
8144
+ },
8145
+ "is-descriptor": {
8146
+ "version": "1.0.2",
8147
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
8148
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
8149
+ "dev": true,
8150
+ "requires": {
8151
+ "is-accessor-descriptor": "^1.0.0",
8152
+ "is-data-descriptor": "^1.0.0",
8153
+ "kind-of": "^6.0.2"
8154
+ }
8155
+ },
8156
+ "is-extglob": {
8157
+ "version": "2.1.1",
8158
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
8159
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
8160
+ "dev": true
8161
+ },
8162
+ "is-glob": {
8163
+ "version": "4.0.0",
8164
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
8165
+ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
8166
+ "dev": true,
8167
+ "requires": {
8168
+ "is-extglob": "^2.1.1"
8169
+ }
8170
+ },
8171
+ "is-number": {
8172
+ "version": "3.0.0",
8173
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
8174
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
8175
+ "dev": true,
8176
+ "requires": {
8177
+ "kind-of": "^3.0.2"
8178
+ },
8179
+ "dependencies": {
8180
+ "kind-of": {
8181
+ "version": "3.2.2",
8182
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
8183
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
8184
+ "dev": true,
8185
+ "requires": {
8186
+ "is-buffer": "^1.1.5"
8187
+ }
8188
+ }
8189
+ }
8190
+ },
8191
+ "isobject": {
8192
+ "version": "3.0.1",
8193
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
8194
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
8195
+ "dev": true
8196
+ },
8197
+ "kind-of": {
8198
+ "version": "6.0.2",
8199
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
8200
+ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
8201
+ "dev": true
8202
+ },
8203
+ "micromatch": {
8204
+ "version": "3.1.10",
8205
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
8206
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
8207
+ "dev": true,
8208
+ "requires": {
8209
+ "arr-diff": "^4.0.0",
8210
+ "array-unique": "^0.3.2",
8211
+ "braces": "^2.3.1",
8212
+ "define-property": "^2.0.2",
8213
+ "extend-shallow": "^3.0.2",
8214
+ "extglob": "^2.0.4",
8215
+ "fragment-cache": "^0.2.1",
8216
+ "kind-of": "^6.0.2",
8217
+ "nanomatch": "^1.2.9",
8218
+ "object.pick": "^1.3.0",
8219
+ "regex-not": "^1.0.0",
8220
+ "snapdragon": "^0.8.1",
8221
+ "to-regex": "^3.0.2"
8222
+ }
8223
+ }
8224
+ }
8225
+ },
8226
+ "webpack": {
8227
+ "version": "3.12.0",
8228
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz",
8229
+ "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==",
8230
+ "dev": true,
8231
+ "requires": {
8232
+ "acorn": "^5.0.0",
8233
+ "acorn-dynamic-import": "^2.0.0",
8234
+ "ajv": "^6.1.0",
8235
+ "ajv-keywords": "^3.1.0",
8236
+ "async": "^2.1.2",
8237
+ "enhanced-resolve": "^3.4.0",
8238
+ "escope": "^3.6.0",
8239
+ "interpret": "^1.0.0",
8240
+ "json-loader": "^0.5.4",
8241
+ "json5": "^0.5.1",
8242
+ "loader-runner": "^2.3.0",
8243
+ "loader-utils": "^1.1.0",
8244
+ "memory-fs": "~0.4.1",
8245
+ "mkdirp": "~0.5.0",
8246
+ "node-libs-browser": "^2.0.0",
8247
+ "source-map": "^0.5.3",
8248
+ "supports-color": "^4.2.1",
8249
+ "tapable": "^0.2.7",
8250
+ "uglifyjs-webpack-plugin": "^0.4.6",
8251
+ "watchpack": "^1.4.0",
8252
+ "webpack-sources": "^1.0.1",
8253
+ "yargs": "^8.0.2"
8254
+ },
8255
+ "dependencies": {
8256
+ "ajv": {
8257
+ "version": "6.5.3",
8258
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
8259
+ "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
8260
+ "dev": true,
8261
+ "requires": {
8262
+ "fast-deep-equal": "^2.0.1",
8263
+ "fast-json-stable-stringify": "^2.0.0",
8264
+ "json-schema-traverse": "^0.4.1",
8265
+ "uri-js": "^4.2.2"
8266
+ }
8267
+ },
8268
+ "ansi-regex": {
8269
+ "version": "3.0.0",
8270
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
8271
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
8272
+ "dev": true
8273
+ },
8274
+ "async": {
8275
+ "version": "2.6.1",
8276
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
8277
+ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
8278
+ "dev": true,
8279
+ "requires": {
8280
+ "lodash": "^4.17.10"
8281
+ }
8282
+ },
8283
+ "camelcase": {
8284
+ "version": "4.1.0",
8285
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
8286
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
8287
+ "dev": true
8288
+ },
8289
+ "fast-deep-equal": {
8290
+ "version": "2.0.1",
8291
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
8292
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
8293
+ "dev": true
8294
+ },
8295
+ "has-flag": {
8296
+ "version": "2.0.0",
8297
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
8298
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
8299
+ "dev": true
8300
+ },
8301
+ "is-fullwidth-code-point": {
8302
+ "version": "2.0.0",
8303
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
8304
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
8305
+ "dev": true
8306
+ },
8307
+ "json-schema-traverse": {
8308
+ "version": "0.4.1",
8309
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
8310
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
8311
+ "dev": true
8312
+ },
8313
+ "load-json-file": {
8314
+ "version": "2.0.0",
8315
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
8316
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
8317
+ "dev": true,
8318
+ "requires": {
8319
+ "graceful-fs": "^4.1.2",
8320
+ "parse-json": "^2.2.0",
8321
+ "pify": "^2.0.0",
8322
+ "strip-bom": "^3.0.0"
8323
+ }
8324
+ },
8325
+ "os-locale": {
8326
+ "version": "2.1.0",
8327
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
8328
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
8329
+ "dev": true,
8330
+ "requires": {
8331
+ "execa": "^0.7.0",
8332
+ "lcid": "^1.0.0",
8333
+ "mem": "^1.1.0"
8334
+ }
8335
+ },
8336
+ "path-type": {
8337
+ "version": "2.0.0",
8338
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
8339
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
8340
+ "dev": true,
8341
+ "requires": {
8342
+ "pify": "^2.0.0"
8343
+ }
8344
+ },
8345
+ "pify": {
8346
+ "version": "2.3.0",
8347
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
8348
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
8349
+ "dev": true
8350
+ },
8351
+ "read-pkg": {
8352
+ "version": "2.0.0",
8353
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
8354
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
8355
+ "dev": true,
8356
+ "requires": {
8357
+ "load-json-file": "^2.0.0",
8358
+ "normalize-package-data": "^2.3.2",
8359
+ "path-type": "^2.0.0"
8360
+ }
8361
+ },
8362
+ "read-pkg-up": {
8363
+ "version": "2.0.0",
8364
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
8365
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
8366
+ "dev": true,
8367
+ "requires": {
8368
+ "find-up": "^2.0.0",
8369
+ "read-pkg": "^2.0.0"
8370
+ }
8371
+ },
8372
+ "source-map": {
8373
+ "version": "0.5.7",
8374
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
8375
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
8376
+ "dev": true
8377
+ },
8378
+ "string-width": {
8379
+ "version": "2.1.1",
8380
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
8381
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
8382
+ "dev": true,
8383
+ "requires": {
8384
+ "is-fullwidth-code-point": "^2.0.0",
8385
+ "strip-ansi": "^4.0.0"
8386
+ }
8387
+ },
8388
+ "strip-ansi": {
8389
+ "version": "4.0.0",
8390
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
8391
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
8392
+ "dev": true,
8393
+ "requires": {
8394
+ "ansi-regex": "^3.0.0"
8395
+ }
8396
+ },
8397
+ "strip-bom": {
8398
+ "version": "3.0.0",
8399
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
8400
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
8401
+ "dev": true
8402
+ },
8403
+ "supports-color": {
8404
+ "version": "4.5.0",
8405
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
8406
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
8407
+ "dev": true,
8408
+ "requires": {
8409
+ "has-flag": "^2.0.0"
8410
+ }
8411
+ },
8412
+ "which-module": {
8413
+ "version": "2.0.0",
8414
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
8415
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
8416
+ "dev": true
8417
+ },
8418
+ "yargs": {
8419
+ "version": "8.0.2",
8420
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
8421
+ "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
8422
+ "dev": true,
8423
+ "requires": {
8424
+ "camelcase": "^4.1.0",
8425
+ "cliui": "^3.2.0",
8426
+ "decamelize": "^1.1.1",
8427
+ "get-caller-file": "^1.0.1",
8428
+ "os-locale": "^2.0.0",
8429
+ "read-pkg-up": "^2.0.0",
8430
+ "require-directory": "^2.1.1",
8431
+ "require-main-filename": "^1.0.1",
8432
+ "set-blocking": "^2.0.0",
8433
+ "string-width": "^2.0.0",
8434
+ "which-module": "^2.0.0",
8435
+ "y18n": "^3.2.1",
8436
+ "yargs-parser": "^7.0.0"
8437
+ }
8438
+ },
8439
+ "yargs-parser": {
8440
+ "version": "7.0.0",
8441
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
8442
+ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
8443
+ "dev": true,
8444
+ "requires": {
8445
+ "camelcase": "^4.1.0"
8446
+ }
8447
+ }
8448
+ }
8449
+ },
8450
+ "webpack-sources": {
8451
+ "version": "1.2.0",
8452
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz",
8453
+ "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==",
8454
+ "dev": true,
8455
+ "requires": {
8456
+ "source-list-map": "^2.0.0",
8457
+ "source-map": "~0.6.1"
8458
+ }
8459
+ },
8460
+ "websocket-driver": {
8461
+ "version": "0.7.0",
8462
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
8463
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
8464
+ "dev": true,
8465
+ "requires": {
8466
+ "http-parser-js": ">=0.4.0",
8467
+ "websocket-extensions": ">=0.1.1"
8468
+ }
8469
+ },
8470
+ "websocket-extensions": {
8471
+ "version": "0.1.3",
8472
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
8473
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
8474
+ "dev": true
8475
+ },
8476
+ "which": {
8477
+ "version": "1.3.1",
8478
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
8479
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
8480
+ "dev": true,
8481
+ "requires": {
8482
+ "isexe": "^2.0.0"
8483
+ }
8484
+ },
8485
+ "which-module": {
8486
+ "version": "1.0.0",
8487
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
8488
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
8489
+ "dev": true
8490
+ },
8491
+ "wide-align": {
8492
+ "version": "1.1.3",
8493
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
8494
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
8495
+ "dev": true,
8496
+ "requires": {
8497
+ "string-width": "^1.0.2 || 2"
8498
+ }
8499
+ },
8500
+ "window-size": {
8501
+ "version": "0.1.0",
8502
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
8503
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
8504
+ "dev": true
8505
+ },
8506
+ "winston": {
8507
+ "version": "2.4.4",
8508
+ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz",
8509
+ "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==",
8510
+ "dev": true,
8511
+ "optional": true,
8512
+ "requires": {
8513
+ "async": "~1.0.0",
8514
+ "colors": "1.0.x",
8515
+ "cycle": "1.0.x",
8516
+ "eyes": "0.1.x",
8517
+ "isstream": "0.1.x",
8518
+ "stack-trace": "0.0.x"
8519
+ },
8520
+ "dependencies": {
8521
+ "async": {
8522
+ "version": "1.0.0",
8523
+ "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
8524
+ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=",
8525
+ "dev": true,
8526
+ "optional": true
8527
+ },
8528
+ "colors": {
8529
+ "version": "1.0.3",
8530
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
8531
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
8532
+ "dev": true,
8533
+ "optional": true
8534
+ }
8535
+ }
8536
+ },
8537
+ "wordwrap": {
8538
+ "version": "0.0.2",
8539
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
8540
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
8541
+ "dev": true
8542
+ },
8543
+ "wrap-ansi": {
8544
+ "version": "2.1.0",
8545
+ "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
8546
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
8547
+ "dev": true,
8548
+ "requires": {
8549
+ "string-width": "^1.0.1",
8550
+ "strip-ansi": "^3.0.1"
8551
+ }
8552
+ },
8553
+ "wrappy": {
8554
+ "version": "1.0.2",
8555
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
8556
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
8557
+ "dev": true
8558
+ },
8559
+ "write": {
8560
+ "version": "0.2.1",
8561
+ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
8562
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
8563
+ "dev": true,
8564
+ "requires": {
8565
+ "mkdirp": "^0.5.1"
8566
+ }
8567
+ },
8568
+ "xtend": {
8569
+ "version": "4.0.1",
8570
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
8571
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
8572
+ "dev": true
8573
+ },
8574
+ "y18n": {
8575
+ "version": "3.2.1",
8576
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
8577
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
8578
+ "dev": true
8579
+ },
8580
+ "yallist": {
8581
+ "version": "2.1.2",
8582
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
8583
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
8584
+ "dev": true
8585
+ },
8586
+ "yargs": {
8587
+ "version": "7.1.0",
8588
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
8589
+ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
8590
+ "dev": true,
8591
+ "requires": {
8592
+ "camelcase": "^3.0.0",
8593
+ "cliui": "^3.2.0",
8594
+ "decamelize": "^1.1.1",
8595
+ "get-caller-file": "^1.0.1",
8596
+ "os-locale": "^1.4.0",
8597
+ "read-pkg-up": "^1.0.1",
8598
+ "require-directory": "^2.1.1",
8599
+ "require-main-filename": "^1.0.1",
8600
+ "set-blocking": "^2.0.0",
8601
+ "string-width": "^1.0.2",
8602
+ "which-module": "^1.0.0",
8603
+ "y18n": "^3.2.1",
8604
+ "yargs-parser": "^5.0.0"
8605
+ },
8606
+ "dependencies": {
8607
+ "camelcase": {
8608
+ "version": "3.0.0",
8609
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
8610
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
8611
+ "dev": true
8612
+ }
8613
+ }
8614
+ },
8615
+ "yargs-parser": {
8616
+ "version": "5.0.0",
8617
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
8618
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
8619
+ "dev": true,
8620
+ "requires": {
8621
+ "camelcase": "^3.0.0"
8622
+ },
8623
+ "dependencies": {
8624
+ "camelcase": {
8625
+ "version": "3.0.0",
8626
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
8627
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
8628
+ "dev": true
8629
+ }
8630
+ }
8631
+ },
8632
+ "yauzl": {
8633
+ "version": "2.4.1",
8634
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
8635
+ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
8636
+ "dev": true,
8637
+ "optional": true,
8638
+ "requires": {
8639
+ "fd-slicer": "~1.0.1"
8640
+ }
8641
+ }
8642
+ }
8643
+ }
package.json CHANGED
@@ -49,4 +49,4 @@
49
  "node": ">=8.9.3",
50
  "npm": ">=5.5.1"
51
  }
52
- }
49
  "node": ">=8.9.3",
50
  "npm": ">=5.5.1"
51
  }
52
+ }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: gutenberg, woocommerce, woo commerce, products
4
  Requires at least: 4.7
5
  Tested up to: 4.9
6
  Requires PHP: 5.2
7
- Stable tag: 1.1.1
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -53,6 +53,9 @@ Yes you can! Join in on our [GitHub repository](https://github.com/woocommerce/w
53
 
54
  == Changelog ==
55
 
 
 
 
56
  == 1.1.1 - 2018-08-22 =
57
  * Fix - Make Newness ordering order correctly on frontend.
58
  * Fix - Don't cause fatal errors if WooCommerce is not active.
4
  Requires at least: 4.7
5
  Tested up to: 4.9
6
  Requires PHP: 5.2
7
+ Stable tag: 1.1.2
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
53
 
54
  == Changelog ==
55
 
56
+ == 1.1.2 - 2018-09-07 =
57
+ * Fix - Refactor to remove withAPIData usage, as the class was removed in Gutenberg 3.7.
58
+
59
  == 1.1.1 - 2018-08-22 =
60
  * Fix - Make Newness ordering order correctly on frontend.
61
  * Fix - Don't cause fatal errors if WooCommerce is not active.
woocommerce-gutenberg-products-block.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WooCommerce Gutenberg Products Block
4
  * Plugin URI: https://github.com/woocommerce/woocommerce-gutenberg-products-block
5
  * Description: WooCommerce Products block for the Gutenberg editor.
6
- * Version: 1.1.1
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Text Domain: woocommerce
@@ -14,7 +14,7 @@
14
 
15
  defined( 'ABSPATH' ) || die();
16
 
17
- define( 'WGPB_VERSION', '1.1.1' );
18
 
19
  /**
20
  * Load up the assets if Gutenberg is active.
3
  * Plugin Name: WooCommerce Gutenberg Products Block
4
  * Plugin URI: https://github.com/woocommerce/woocommerce-gutenberg-products-block
5
  * Description: WooCommerce Products block for the Gutenberg editor.
6
+ * Version: 1.1.2
7
  * Author: Automattic
8
  * Author URI: https://woocommerce.com
9
  * Text Domain: woocommerce
14
 
15
  defined( 'ABSPATH' ) || die();
16
 
17
+ define( 'WGPB_VERSION', '1.1.2' );
18
 
19
  /**
20
  * Load up the assets if Gutenberg is active.