Code Monkey home page Code Monkey logo

heml's Introduction

<heml>

Guide โ€ข Documentation โ€ข Editor

HEML is an open source markup language for building responsive email.

  • Native Feel: Do you know HTML and CSS? Check out our docs and you're off to the races! No special rules or styling paradigms to master.

  • Forward Thinking: HEML is designed to take advantage of all that email can do while still providing a solid experience for all clients.

  • Extendable: You can create your own powerful elements and style rules. Share them with the world, or keep them to yourself. Your choice.

FAQ

Why should I use HEML?

It makes building emails easier.

How do I use it?

Check out our usage guide.

What do I do if I found a bug?

Open up an issue on the repository. Thanks for catching it! ๐Ÿ™

Want to help?

Awesome!! We welcome any and all help! Head over to the issues and see if anything catches your eye.

License

MIT

heml's People

Contributors

avigoldman avatar bkemper avatar colestrode avatar cve avatar jgzamora avatar kevindavus avatar msafi avatar mvsde avatar wittbulter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heml's Issues

Get rid of PostCSS warnings during build process

I've been getting this warning message while compiling Heml files into HTML:

Without "from" option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to "undefined" to prevent this warning.

I tried upgrading PostCSS version but the warning still exists. It's not harmful but it'll be nice to figure out how to get rid of it. I'm using Yarn for the build script.

Thanks a lot!

columns not collapsing on mobile

I'm having some trouble getting the columns to work correctly on mobile. Heml is new to me, so I could definitely be doing something wrong, but I can't seem to figure it out.

here is my heml: ` <style> body { background-color: #e1eaf1; color: #878787; font-size: 16px; line-height: 22px; /*font-family: Arial;*/ } h1, h2, h3, p { margin: 0; } container { max-width: 642px; padding: 20px; } .email-body { background-color: #fff; } .spacer { /*height: 70px;*/ text-align: center; } .web-version { padding: 24px 0 20px; text-transform: uppercase; text-align: center; font-size: 11px; background-color: #e1eaf1; } .title { /*padding: 20px 0 40px;*/ } .title column { background-color:#f5f5f5; padding: 20px 0; } h1 { color: #153c76; text-align: center; font-weight: 900; font-size: 46px; line-height: 48px; margin: 0; } a { color: #153c76; } .logo img { /*text-align: center;*/ margin: 0 auto; } .logo column { padding: 0 0 20px; } .center { text-align: center; } .intro-paragraph a { color: #878787; } .intro-paragraph column { padding: 40px; } .hero--title column, .blue-rule column, .hero--excerpt column { background-color: #00142d; } .hero--title column { padding: 40px 20px 0; text-align: center; color:#31a0e5; } .hero--title h2 { font-size: 40px; line-height: 44px; color: #fff; margin: 0!important; } .blue-rule column { padding: 32px 0 12px; height: 1px; } .blue-rule hr { width: 100px; border-color: #31a0e5; line-height: 1px; } .hero--excerpt column, .attribution column { background-color: #00142d; text-align: center; padding: 0 64px 54px; border-bottom: 6px solid #f6f9fb; } .hero--excerpt p, .attribution p { margin: 0; color: #31a0e5; font-size: 18px; line-height: 24px; } .hero--excerpt a, .attribution a { text-transform: uppercase; font-size: 12px; color: #fff; text-decoration: none; } .attribution p { font-size: 12px; text-transform: uppercase; } .attribution span { color: #fff; } .divider, .divider column { padding: 0; margin: 0; height: 6px; line-height: 6px; font-size: 6px; background-color: #fff; } .divider column { border-top: 6px solid #f6f9fb; } .post { border-bottom: 1px solid #f2f3f3; } .post column { padding: 50px 54px; } .post column.thumbnail { padding-right: 22px; padding-left: 0; } /* .post column.thumbnail img { width height: 135px; }*/ .post column.with-thumbnail { padding-right: 54px; padding-left: 0; } .post a { text-decoration: none; } .post h3 { font-size: 22px; margin: 0; } .post .excerpt { font-size: 14px; margin-top: 20px; } .post .related { margin-top: 20px; } .post .related a{ font-size: 12px; color: #31a0e5; font-weight: 700; } .product-spotlight--header column { background-color: #153c76; padding: 12px 0; } .product-spotlight--header p { text-align: center; font-size: 11px; text-transform: uppercase; line-height: 12px; color: #fff; background-color: #153c76; /*margin: 12px 0;*/ } .product-spotlight--body column { background-color: #e1eaf1; border-top: 5px solid #ced6db; padding: 48px 64px; text-align: center; color: #153c76; } .product-spotlight--body h2 { font-size: 30px; line-height: 30px; margin-bottom: 14px; } .product-spotlight--body a { font-size: 12px; color: #31a0e5; text-decoration: none; } /*.event--date column { padding: 56px 0 28px; }*/ .event--date column.box { text-align: center; color: #153c76; padding-top: 56px; } .event--date .calendar { border: 4px solid #153c76; /*margin-top: 56px;*/ }
  .event--date .calendar .line{
    border-top: 2px solid #153c76;
    height: 2px;
    width: 88%;
    margin: 0 auto;
    padding
  }
  .event--date .calendar .line td {
    font-size:1px;
    line-height: 1px;
    padding: 0;
    height: 2px;
  }
  .event--date .calendar .day {
    font-size: 52px;
    font-weight: bold;
    line-height: 64px;
    border-bottom: 2px solid #153c76;
  }
  .event--date .calendar .month {
    font-size: 14px;
    line-height: 14px;
    text-transform: uppercase;
    margin: 6px 0!important;
    padding: 0!important;
  }
  .event--date .border {
    border-top: 4px solid #dce5ec;
  }
  .event--info column {
    text-align: center;
    padding: 0 66px 60px; 
  }
  .event--info h2 {
    font-size: 30px;
    color: #153c76;
    margin: 28px 22px;
  }
  .event--info .when {
    text-transform: uppercase;
    color: #153c76;
    font-size: 14px;
    font-weight: 700;
  }
  .event--info .time {
    margin-bottom: 20px;
  }
  .event--info .description {
    font-size: 15px;
  }
  .event--info .description a {
    font-size: 12px;
    color: #31a0e5;
    text-decoration: none;
  }
  .testimonial column {
    padding: 50px 62px 0;
    background-color: #00142d;
    color: #31a0e5;
    text-align: center;
  }
  .testimonial .content {
    font-size: 30px;
    line-height: 32px;
  }
  .footer.logo column {
    padding-top: 12px;
  }
  .footer p { 
    color: #153c76;
    font-size: 13px;
  }
  .footer.unsubscribe {
    text-transform: uppercase;
  }
  .footer.unsubscribe column {
    padding: 30px 0 80px;
    font-size: 11px;
  }
  .footer.unsubscribe .privacy {
    margin-left: 12px;
  }
  @media  (max-width: 480px) {
   body, .web-version {
      background-color: #fff!important;
    } 
    h1 {
      font-size: 32px!important;
    }
    .intro-paragraph column {
      padding: 20px!important;
    }
    .post column.thumbnail,
    .post column.with-thumbnail {
      width: 100%!important;
    }
  }
  
</style>
View online CJ logo

Cleared Advisor

  <row class="intro-paragraph">
     <column> 
      <p>
        <!-- EDITABLE: INTRO PARAGRAPH START -->
         Lorem ipsum dolor sit amet, <a href="#">consectetur adipiscing</a> elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in <a href="#">reprehenderit</a> in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.
         <!-- INTRO PARAGRAPH END -->
       </p>
      </column>
  </row>
  <row class="hero--image">
    <column>
      <!-- EDITABLE: HERO IMAGE HERE, JUST ENTER URL FOR 'SRC' -->
        <img src="https://4d0q7u11k31p1qnkosal8q2e-wpengine.netdna-ssl.com/wp-content/uploads/2017/11/people-connected-818-300-1.png" alt="hero image" width="602">
    </column>
  </row>
  <row class="hero--title">
    <column>
      
      <h2>
        <!-- EDITABLE: HERO TITLE HERE -->Is DSS Taking Over Background Investigations?
      </h2>
    </column>
  </row>
  <row class="blue-rule">
    <column>
      <hr>
    </column>
  </row>
  <row class="hero--excerpt">
    <column>
      <p>DSS is in the midst of planning for its potential background investigations takeover. 
        <!-- EDITABLE: READ MORE LINK HERE -->
        <a href="#">READ MORE</a>
      </p>
    </column>
  </row>
  <row class="post">
    <column large="4" small="12" class="thumbnail">
      <img src="https://4d0q7u11k31p1qnkosal8q2e-wpengine.netdna-ssl.com/wp-content/uploads/2016/05/Sunset-Short-Final-US-Air-Force-photo-263x200.png" alt="" width="177" height="135">
    </column>
    <column large="8" small="12" class="with-thumbnail">
      <h3 class="post-title">
        <!-- EDITABLE: POST TITLE/URL 1 HERE -->
        <a href="#">Changes to the Investigation Process</a>
      </h3>
      <p class="excerpt">
        <!-- EDITABLE: POST 1 EXCERPT HERE -->
        How do you make the security clearance process better when it takes 8 years to change one question?
      </p>
      <!-- EDITABLE: BEGIN POST 1 RELATED LINK, REMOVE COMMENTS BEFORE ENTERING -->
      <p class="related">
        <a href="#">RELATED: Lorem Ipsum Dolore Sit Emet dus Autem</a>
      </p>
    </column>
  </row>
  <row class="divider">
    <column>
      <block>
      </block>
    </column>
  </row>
  <row class="post">
    <column large="4" small="12" class="thumbnail" >
      <img src="https://4d0q7u11k31p1qnkosal8q2e-wpengine.netdna-ssl.com/wp-content/uploads/2015/10/Credit-Monitoring-263x200.png" alt="" width="177" height="135">
    </column>
    <column large="8" small="12" class="with-thumbnail" >
      <h3 class="post-title">
        <!-- EDITABLE: POST TITLE/URL 2 HERE -->
        <a href="#">Emergency Plans for Your Office</a>
      </h3>
      <p class="excerpt">
        <!-- EDITABLE: POST 2 EXCERPT HERE -->
        You donโ€™t just need an emergency plan for school or family โ€“ you need one for your office, as well.
      </p>
      <!-- EDITABLE: BEGIN POST 2 RELATED LINK, REMOVE COMMENTS BEFORE ENTERING -->
     <!--  <p class="related">
        <a href="#">RELATED: Lorem Ipsum Dolore Sit Emet dus Autem</a>
      </p> -->
    </column>
  </row>
  <row class="product-spotlight--header">
    <column>
      <block><p>product spotlight</p></block>
    </column>
  </row>
  <row class="product-spotlight--body">
    <column>
      <h2>
        <!-- EDITABLE: ENTER PRODUCT SPOTLIGHT TITLE -->
        Cleared Network Gold
      </h2>
      <p>
        <!-- EDITABLE: ENTER PRODUCT SPOTLIGHT EXCERPT -->
        Take your Cleared Network experience to the next level with better filtering and more connection capabilities. <a href="#">LEARN MORE</a>
      </p>
    </column>
  </row>
  <row class="divider">
    <column>
      <block>
      </block>
    </column>
  </row>
  <row class="post">
    <column>
      <h3 class="post-title">
        <!-- EDITABLE: POST TITLE/URL 3 HERE -->
        <a href="#">AbilityOne Makes Case for Diverse Workforce</a>
      </h3>
      <p class="excerpt">
        <!-- EDITABLE: POST 3 EXCERPT HERE -->
        How do you make the security clearance process better when it takes 8 years to change one question?
      </p>
      <!-- EDITABLE: BEGIN POST 3 RELATED LINK, REMOVE COMMENTS BEFORE ENTERING -->
      <p class="related">
        <a href="#">RELATED: Lorem Ipsum Dolore Sit Emet dus Autem</a>
      </p>
    </column>
  </row>
  <row class="divider">
    <column>
      <block>
      </block>
    </column>
  </row>
  <row class="post">
    <column>
      <h3 class="post-title">
        <!-- EDITABLE: POST TITLE/URL 4 HERE -->
        <a href="#">Changes to the Investigation Process</a>
      </h3>
      <p class="excerpt">
        <!-- EDITABLE: POST 4 EXCERPT HERE -->
        How do you make the security clearance process better when it takes 8 years to change one question?
      </p>
      <!-- EDITABLE: BEGIN POST 4 RELATED LINK, REMOVE COMMENTS BEFORE ENTERING -->
      <p class="related">
        <a href="#">RELATED: Lorem Ipsum Dolore Sit Emet dus Autem</a>
      </p>
    </column>
  </row>
  <row class="divider">
    <column>
      <block>
      </block>
    </column>
  </row>
  <row class="post">
    <column>
      <h3 class="post-title">
        <!-- EDITABLE: POST TITLE/URL 5 HERE -->
        <a href="#">Changes to the Investigation Process</a>
      </h3>
      <p class="excerpt">
        <!-- EDITABLE: POST 5 EXCERPT HERE -->
        How do you make the security clearance process better when it takes 8 years to change one question?
      </p>
      <!-- EDITABLE: BEGIN POST 5 RELATED LINK, REMOVE COMMENTS BEFORE ENTERING -->
      <p class="related">
        <a href="#">RELATED: Lorem Ipsum Dolore Sit Emet dus Autem</a>
      </p>
    </column>
  </row>
   <row class="divider">
    <column style="margin-bottom: ">
      <block>
      </block>
    </column>
  </row>
  <row class="event--date">
    <column large="5"></column>
    <column large="2" class="box">
      <table class="calendar" width="100%">
        <tr>
          <td>
            <p class="day">
              <!-- EDITABLE: ENTER CALENDAR DATE HERE -->
              22
            </p>
            <p class="month">
              <!-- EDITABLE: ENTER 3-LETTER CALENDAR MONTH HERE -->
              DEC
            </p>
          </td>
        </tr>
      </table>
      <table class="border" width="100%">
        <tr><td></td></tr>
      </table>
    </column>
    <column large="5"></column>
  </row>
  <row class="event--info">
    <column>
      <h2>
        <!-- EDITABLE: ENTER EVENT TITLE HERE -->
        Cleared Network Happy Hour
      </h2>
      <p class="when">when</p>
      <p class="time">
        <!-- EDITABLE: ENTER DATE AND TIME HERE -->
        Tuesday, November 21, 2017 3 PM - 4 PM ET
      </p>
      <p class="description">
        <!-- EDITABLE: ENTER EVENT DESCRIPTION HERE -->
        Join us for happy hour on ClearanceJobs.com โ€“ it's the best time to connect with active candidates! Unlimited connections โ€“ all-you-can-meet! <a href="#">MARK YOUR CALENDAR</a>
      </p>
    </column>
  </row>
  <row class="testimonial">
    <column>
      <p class="content">
        <!-- EDITABLE: ENTER TESTIMONIAL HERE, PLEASE INLCUDE QUOTES -->
        โ€œThe Cleared Network has become an advancement on LinkedIn. Candidates are vetted, weโ€™re talking with real people.โ€
      </p>
    </column>
  </row>
  <row class="blue-rule">
    <column>
      <hr>
    </column>
  </row>
  <row class="attribution">
    <column>
      <p>
        <!-- EDITABLE: ENTER TESTIMONIAL ATTRIBUTION HERE -->
        <span>Felicia Bush</span> CLEARED RECRUITER, KEYW CORPORATION 
      </p>
    </column>
  </row>
</container>
<container>
  <row class="footer logo">
    <column class="center">
      <a href="#"><img src="https://cdn2.hubspot.net/hubfs/311181/CJ%20Logo.png" alt="CJ logo" infer="retina"></a>
    </column>
  </row>
  <row class="footer contact">
    <column class="center">
      <p>&copy; 2017 ClearanceJobs All rights reserved.</p>
      <p>12150 Meredith Drive | Urbandale, Iowa 50323 | 1.877.386.3323</p>
    </column>
  </row>
  <row class="footer unsubscribe">
    <column class="center">
      <p><a href="#">Unsubscribe</a> <a class="privacy" href="#">Privacy Policy</a></p>
    </column>
  </row>
</container>
`

the section in question are two posts that have column class="thumbnail". I want the image to be to the left of the text on desktop and then on mobile have them each on their own line. It works as I would expect in the gmail apps for iOS and Android, but not in the native iOS or Android mail clients. I'm using litmus to test. Any advice?

Align attribute on Button

Button docs state that the align attribute will work on button and that it defaults to left. Using it results in

HEMLError: Attribute align is not allowed on button.

Example:

<button href="https://heml.io" align="left">Click me!!</button>

By default the button seems to be centered. It's simple enough style the button with something like margin-left:0px; so I'm not sure if this issue is just with the heml.io docs, or if this is a planned feature enhancement or bug.

CLI doesn't resolve absolute paths

CLI treats absolute path as relative. Example:

$ heml build /Users/atipugin/Desktop/test-heml/test.heml

Fails with:

ENOENT: no such file or directory, open '/Users/atipugin/Desktop/test-heml/Users/atipugin/Desktop/test-heml/test.heml'

Version is 1.0.2-0.

I think it should work with absolute paths too.

formatting issue (maybe)

First off, I love heml. It makes writing html emails so much easier it's not even funny. :)
However, I've run into a problem, and I don't know if it's the email client that has the problem, or if I'm doing something wrong, or that's just the way its supposed to work. So, after building an email, if I open the html file in Chrome (as a page) I get exactly what I expect:
goodemail

However, when I paste the html into my email client (Office 365 Outlook for Web) it no longer respects the table width property:
bademail

Any insight would be great. Thanks!

NPM builder creating extra empty <head> tags

I am using the NPM to develop and build a template with HEML but I see in output an extra empty <head> tag being added. I confirmed this using the same sample code in your online editor. Screenshot: http://prntscr.com/ib094v

For the time being should I delete the extra empty head tag from the outputted document?

I am using NPM 5.6.0 on a Windows 10 machine. Here is my package-lock.json contents so you know the versions of the NPM modules involved.

{
  "name": "heml-dev",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@heml/elements": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/@heml/elements/-/elements-1.1.3.tgz",
      "integrity": "sha512-ZPoIS3eVbQVEU5azjvu2i9SAQaMb0r0yiPnNdCos7vKPoFIQ5ytOVhXm3S4Q/PrAEad0ZPYppvX/yn8cpWIXUQ==",
      "dev": true,
      "requires": {
        "@heml/styles": "1.1.2",
        "@heml/utils": "1.1.2",
        "axios": "0.17.1",
        "image-size": "0.6.2",
        "is-absolute-url": "2.1.0",
        "lodash": "4.17.5"
      }
    },
    "@heml/inline": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/inline/-/inline-1.1.2.tgz",
      "integrity": "sha512-Nknjx1ROpr4FktPqGfIi0YKrNJDS44Xa5ziZIQBJKSvPjKb3ZUCGf7wIMn26UzL6uH80jnGDO4tyUyCQE6C8xw==",
      "dev": true,
      "requires": {
        "juice": "4.2.2",
        "lodash": "4.17.5"
      }
    },
    "@heml/parse": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/parse/-/parse-1.1.2.tgz",
      "integrity": "sha512-godD9jMYe4AT1k3c9ZGceL1S6EPe27vnrgGB6+LB+lFj5n0V1fGGzyjy9zgXCt3eHJtqAO13XTTIB6vQ5YqKQQ==",
      "dev": true,
      "requires": {
        "cheerio": "1.0.0-rc.2",
        "crypto-random-string": "1.0.0",
        "html-tags": "2.0.0",
        "lodash": "4.17.5"
      },
      "dependencies": {
        "cheerio": {
          "version": "1.0.0-rc.2",
          "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
          "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
          "dev": true,
          "requires": {
            "css-select": "1.2.0",
            "dom-serializer": "0.1.0",
            "entities": "1.1.1",
            "htmlparser2": "3.9.2",
            "lodash": "4.17.5",
            "parse5": "3.0.3"
          }
        }
      }
    },
    "@heml/render": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/render/-/render-1.1.2.tgz",
      "integrity": "sha512-/Vjg+kJ+AkPviXCOFLawt5KLxff8kFGE+RMvGpsWyUkBNKT+9402g8F6ZmSUSkhCHBGH/z/G1a39kT+sDJlmWg==",
      "dev": true,
      "requires": {
        "html-tags": "2.0.0",
        "is-promise": "2.1.0",
        "lodash": "4.17.5"
      }
    },
    "@heml/styles": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/styles/-/styles-1.1.2.tgz",
      "integrity": "sha512-PykE7XPmUfl94iuCaKVpDGKgkKsx3HjG4JT2e6iqQwbbGildjaisQIGpjLCSsxa1Q8UHZ22hXCo1EtBu6zCUSA==",
      "dev": true,
      "requires": {
        "css-declaration-sorter": "2.1.0",
        "css-shorthand-expand": "1.1.0",
        "lodash": "4.17.5",
        "postcss": "6.0.17",
        "postcss-calc": "6.0.1",
        "postcss-color-rgba-fallback": "3.0.0",
        "postcss-colornames-to-hex": "1.0.1",
        "postcss-convert-values": "2.6.1",
        "postcss-discard-comments": "2.0.4",
        "postcss-discard-duplicates": "2.1.0",
        "postcss-discard-empty": "2.1.0",
        "postcss-discard-overridden": "0.1.1",
        "postcss-email-important": "1.0.0",
        "postcss-hex-format": "1.0.0",
        "postcss-merge-longhand": "3.0.0",
        "postcss-merge-rules": "2.1.2",
        "postcss-minify-font-values": "1.0.5",
        "postcss-minify-gradients": "1.0.5",
        "postcss-minify-params": "1.2.2",
        "postcss-minify-selectors": "2.1.1",
        "postcss-normalize-display-values": "4.0.0-rc.2",
        "postcss-normalize-positions": "4.0.0-rc.2",
        "postcss-normalize-repeat-style": "4.0.0-rc.2",
        "postcss-normalize-string": "4.0.0-rc.2",
        "postcss-normalize-timing-functions": "4.0.0-rc.2",
        "postcss-ordered-values": "2.2.3",
        "postcss-rgba-hex": "0.3.7",
        "postcss-safe-parser": "3.0.1",
        "postcss-shorthand-expand": "1.0.1",
        "postcss-unique-selectors": "2.0.2"
      }
    },
    "@heml/utils": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/utils/-/utils-1.1.2.tgz",
      "integrity": "sha512-McXW19wCh/vnJfgM6Dj//35K5F2WI+1zronclZRfTOmqLN2zoUf5ft5k2bOSTsE+SZe1HyKhI6rp9Ro6fs8G5A==",
      "dev": true,
      "requires": {
        "@heml/render": "1.1.2",
        "css-groups": "0.1.1",
        "lodash": "4.17.5"
      }
    },
    "@heml/validate": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/@heml/validate/-/validate-1.1.2.tgz",
      "integrity": "sha512-ljSq38zemlyAPSOegiJwNueBihssTNBrWIl0CIAp2s0hnvuvWyvAsx8YZ+MSNe02nqakTmESNwQ9n90lB9aYDA==",
      "dev": true,
      "requires": {
        "@heml/utils": "1.1.2",
        "lodash": "4.17.5"
      }
    },
    "@types/node": {
      "version": "9.4.0",
      "resolved": "https://registry.npmjs.org/@types/node/-/node-9.4.0.tgz",
      "integrity": "sha512-zkYho6/4wZyX6o9UQ8rd0ReEaiEYNNCqYFIAACe2Tf9DrYlgzWW27OigYHnnztnnZQwVRpwWmZKegFmDpinIsA==",
      "dev": true
    },
    "abbrev": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
      "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
      "dev": true
    },
    "accepts": {
      "version": "1.3.4",
      "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
      "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
      "dev": true,
      "requires": {
        "mime-types": "2.1.17",
        "negotiator": "0.6.1"
      }
    },
    "ajv": {
      "version": "5.5.2",
      "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
      "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
      "dev": true,
      "requires": {
        "co": "4.6.0",
        "fast-deep-equal": "1.0.0",
        "fast-json-stable-stringify": "2.0.0",
        "json-schema-traverse": "0.3.1"
      }
    },
    "alphanum-sort": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
      "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
      "dev": true
    },
    "ansi-align": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
      "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
      "dev": true,
      "requires": {
        "string-width": "2.1.1"
      }
    },
    "ansi-escapes": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
      "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
      "dev": true
    },
    "ansi-regex": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
      "dev": true
    },
    "ansi-styles": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
      "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
      "dev": true,
      "requires": {
        "color-convert": "1.9.1"
      }
    },
    "argh": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/argh/-/argh-0.1.4.tgz",
      "integrity": "sha1-PrTWEpc/xrbcbvM49W91nyrFw6Y=",
      "dev": true
    },
    "array-flatten": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
      "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
      "dev": true
    },
    "asn1": {
      "version": "0.2.3",
      "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
      "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
      "dev": true
    },
    "assert-plus": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
      "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
      "dev": true
    },
    "async": {
      "version": "2.6.0",
      "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
      "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
      "dev": true,
      "requires": {
        "lodash": "4.17.5"
      }
    },
    "asynckit": {
      "version": "0.4.0",
      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
      "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
      "dev": true
    },
    "aws-sign2": {
      "version": "0.7.0",
      "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
      "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
      "dev": true
    },
    "aws4": {
      "version": "1.6.0",
      "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
      "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
      "dev": true
    },
    "axios": {
      "version": "0.17.1",
      "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz",
      "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=",
      "dev": true,
      "requires": {
        "follow-redirects": "1.4.1",
        "is-buffer": "1.1.6"
      }
    },
    "babel-runtime": {
      "version": "6.26.0",
      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
      "dev": true,
      "requires": {
        "core-js": "2.5.3",
        "regenerator-runtime": "0.11.1"
      }
    },
    "balanced-match": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
      "dev": true
    },
    "bcrypt-pbkdf": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
      "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
      "dev": true,
      "optional": true,
      "requires": {
        "tweetnacl": "0.14.5"
      }
    },
    "bluebird": {
      "version": "3.5.1",
      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
      "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
      "dev": true
    },
    "body-parser": {
      "version": "1.18.2",
      "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
      "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
      "dev": true,
      "requires": {
        "bytes": "3.0.0",
        "content-type": "1.0.4",
        "debug": "2.6.9",
        "depd": "1.1.2",
        "http-errors": "1.6.2",
        "iconv-lite": "0.4.19",
        "on-finished": "2.3.0",
        "qs": "6.5.1",
        "raw-body": "2.3.2",
        "type-is": "1.6.15"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        }
      }
    },
    "boolbase": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
      "dev": true
    },
    "boom": {
      "version": "4.3.1",
      "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
      "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
      "dev": true,
      "requires": {
        "hoek": "4.2.0"
      }
    },
    "boxen": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
      "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
      "dev": true,
      "requires": {
        "ansi-align": "2.0.0",
        "camelcase": "4.1.0",
        "chalk": "2.3.0",
        "cli-boxes": "1.0.0",
        "string-width": "2.1.1",
        "term-size": "1.2.0",
        "widest-line": "2.0.0"
      }
    },
    "brace-expansion": {
      "version": "1.1.8",
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
      "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
      "dev": true,
      "requires": {
        "balanced-match": "1.0.0",
        "concat-map": "0.0.1"
      }
    },
    "browserslist": {
      "version": "1.7.7",
      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
      "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
      "dev": true,
      "requires": {
        "caniuse-db": "1.0.30000803",
        "electron-to-chromium": "1.3.32"
      }
    },
    "byte-length": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/byte-length/-/byte-length-0.1.1.tgz",
      "integrity": "sha1-6bR3TbznxZdkv1vofDAniaiHOMM=",
      "dev": true
    },
    "bytes": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
      "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
      "dev": true
    },
    "camelcase": {
      "version": "4.1.0",
      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
      "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
      "dev": true
    },
    "caniuse-api": {
      "version": "1.6.1",
      "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
      "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
      "dev": true,
      "requires": {
        "browserslist": "1.7.7",
        "caniuse-db": "1.0.30000803",
        "lodash.memoize": "4.1.2",
        "lodash.uniq": "4.5.0"
      }
    },
    "caniuse-db": {
      "version": "1.0.30000803",
      "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000803.tgz",
      "integrity": "sha1-Po0rr1bC/VpZyC4ieSig3CwmcC0=",
      "dev": true
    },
    "caseless": {
      "version": "0.12.0",
      "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
      "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
      "dev": true
    },
    "chalk": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
      "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
      "dev": true,
      "requires": {
        "ansi-styles": "3.2.0",
        "escape-string-regexp": "1.0.5",
        "supports-color": "4.5.0"
      },
      "dependencies": {
        "supports-color": {
          "version": "4.5.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
          "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
          "dev": true,
          "requires": {
            "has-flag": "2.0.0"
          }
        }
      }
    },
    "cheerio": {
      "version": "0.22.0",
      "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz",
      "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=",
      "dev": true,
      "requires": {
        "css-select": "1.2.0",
        "dom-serializer": "0.1.0",
        "entities": "1.1.1",
        "htmlparser2": "3.9.2",
        "lodash.assignin": "4.2.0",
        "lodash.bind": "4.2.1",
        "lodash.defaults": "4.2.0",
        "lodash.filter": "4.6.0",
        "lodash.flatten": "4.4.0",
        "lodash.foreach": "4.5.0",
        "lodash.map": "4.6.0",
        "lodash.merge": "4.6.1",
        "lodash.pick": "4.4.0",
        "lodash.reduce": "4.6.0",
        "lodash.reject": "4.6.0",
        "lodash.some": "4.6.0"
      }
    },
    "cli-boxes": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
      "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
      "dev": true
    },
    "cli-color": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz",
      "integrity": "sha1-OlrnT9drYmevZm5p4q+70B3vNNE=",
      "dev": true,
      "requires": {
        "ansi-regex": "2.1.1",
        "d": "1.0.0",
        "es5-ext": "0.10.38",
        "es6-iterator": "2.0.3",
        "memoizee": "0.4.11",
        "timers-ext": "0.1.2"
      }
    },
    "cli-cursor": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
      "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
      "dev": true,
      "requires": {
        "restore-cursor": "2.0.0"
      }
    },
    "co": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
      "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
      "dev": true
    },
    "color-convert": {
      "version": "1.9.1",
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
      "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
      "dev": true,
      "requires": {
        "color-name": "1.1.3"
      }
    },
    "color-name": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
      "dev": true
    },
    "combined-stream": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
      "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
      "dev": true,
      "requires": {
        "delayed-stream": "1.0.0"
      }
    },
    "commander": {
      "version": "2.14.0",
      "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.0.tgz",
      "integrity": "sha512-okPpdvdJr6mUGi2XzupC+irQxzwGLVaBzacFC14hjLv8NColXEsxsU+QaeuSSXpQUak5g2K0vQ7WjA1e8svczg==",
      "dev": true
    },
    "concat-map": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
      "dev": true
    },
    "config-chain": {
      "version": "1.1.11",
      "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz",
      "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=",
      "dev": true,
      "requires": {
        "ini": "1.3.5",
        "proto-list": "1.2.4"
      }
    },
    "content-disposition": {
      "version": "0.5.2",
      "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
      "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=",
      "dev": true
    },
    "content-type": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
      "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
      "dev": true
    },
    "cookie": {
      "version": "0.3.1",
      "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
      "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
      "dev": true
    },
    "cookie-signature": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
      "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
      "dev": true
    },
    "core-js": {
      "version": "2.5.3",
      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
      "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
      "dev": true
    },
    "core-util-is": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
      "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
      "dev": true
    },
    "cross-spawn": {
      "version": "5.1.0",
      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
      "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
      "dev": true,
      "requires": {
        "lru-cache": "4.1.1",
        "shebang-command": "1.2.0",
        "which": "1.3.0"
      }
    },
    "cryptiles": {
      "version": "3.1.2",
      "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
      "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
      "dev": true,
      "requires": {
        "boom": "5.2.0"
      },
      "dependencies": {
        "boom": {
          "version": "5.2.0",
          "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
          "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
          "dev": true,
          "requires": {
            "hoek": "4.2.0"
          }
        }
      }
    },
    "crypto-random-string": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
      "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
      "dev": true
    },
    "css-color-names": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.1.tgz",
      "integrity": "sha1-XQVI+iVkVu3kqaDCrHqxnT6xrYE=",
      "dev": true
    },
    "css-declaration-sorter": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-2.1.0.tgz",
      "integrity": "sha512-6FzlGo1LGVFcP+fL+Hfd8o+vbrQuHPd+dZnzixwlh4M/bo5iSVA4SuwCjE4q7CbS2rsH5N87KLr9QhfcGjsbwQ==",
      "dev": true,
      "requires": {
        "argh": "0.1.4",
        "postcss": "6.0.17",
        "read-file-stdin": "0.2.1",
        "timsort": "0.3.0",
        "write-file-stdout": "0.0.2"
      }
    },
    "css-groups": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/css-groups/-/css-groups-0.1.1.tgz",
      "integrity": "sha1-UyvG3LId3Mps1BCdAkmPyY/7BO8=",
      "dev": true
    },
    "css-select": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
      "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
      "dev": true,
      "requires": {
        "boolbase": "1.0.0",
        "css-what": "2.1.0",
        "domutils": "1.5.1",
        "nth-check": "1.0.1"
      }
    },
    "css-shorthand-expand": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/css-shorthand-expand/-/css-shorthand-expand-1.1.0.tgz",
      "integrity": "sha1-EC9yhsvTI3VDC1hJ1OL+o6oh6mQ=",
      "dev": true,
      "requires": {
        "css-color-names": "0.0.1",
        "css-url-regex": "0.0.1",
        "hex-color-regex": "1.1.0",
        "hsl-regex": "1.0.0",
        "hsla-regex": "1.0.0",
        "map-obj": "1.0.1",
        "repeat-element": "1.1.2",
        "rgb-regex": "1.0.1",
        "rgba-regex": "1.0.0",
        "xtend": "4.0.1"
      }
    },
    "css-shorthand-properties": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/css-shorthand-properties/-/css-shorthand-properties-1.1.0.tgz",
      "integrity": "sha512-0Pg/e2U0NgT6Chw1TUe3D2ZTOOO3JFzlDV+bN3hxR8T0RDjnwzmx5WhuYUA0GHYWlPYAYi2/Ac0e8oqgerHDQw==",
      "dev": true
    },
    "css-unit-converter": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
      "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
      "dev": true
    },
    "css-url-regex": {
      "version": "0.0.1",
      "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-0.0.1.tgz",
      "integrity": "sha1-4Fr4xsKQ1FHvFjK0VepcgbSxOVw=",
      "dev": true
    },
    "css-what": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz",
      "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
      "dev": true
    },
    "cssnano-util-get-arguments": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0-rc.2.tgz",
      "integrity": "sha512-5I2IMlhbb5t4kKJQ2t8CoKvFFyolc2Xapg6G5L5BmxqIN1jyMn7cbHYl9MhnuQ29Bbal4Z5nsulTfyePyTMLeA==",
      "dev": true
    },
    "cssnano-util-get-match": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0-rc.2.tgz",
      "integrity": "sha512-IwvejnXwZ5qrE27N1GS+Kttu/uPym7o7kqy10EQ7Lt8h5WyR1Zze2RqGR6xazASko4pK2/pq0Io+htwRcrc5xw==",
      "dev": true
    },
    "d": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
      "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
      "dev": true,
      "requires": {
        "es5-ext": "0.10.38"
      }
    },
    "dashdash": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
      "dev": true,
      "requires": {
        "assert-plus": "1.0.0"
      }
    },
    "datauri": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/datauri/-/datauri-1.0.5.tgz",
      "integrity": "sha1-0JddGrbI8uDOPKQ7qkU5vhLSiaA=",
      "dev": true,
      "requires": {
        "image-size": "0.3.5",
        "mimer": "0.2.3",
        "semver": "5.5.0"
      },
      "dependencies": {
        "image-size": {
          "version": "0.3.5",
          "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
          "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw=",
          "dev": true
        }
      }
    },
    "debug": {
      "version": "3.1.0",
      "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
      "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
      "dev": true,
      "requires": {
        "ms": "2.0.0"
      }
    },
    "deep-extend": {
      "version": "0.5.0",
      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.0.tgz",
      "integrity": "sha1-bvSgmwX5iw41jW2T1Mo8rsZnKAM=",
      "dev": true
    },
    "delayed-stream": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
      "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
      "dev": true
    },
    "depd": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
      "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
      "dev": true
    },
    "destroy": {
      "version": "1.0.4",
      "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
      "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
      "dev": true
    },
    "dom-serializer": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
      "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
      "dev": true,
      "requires": {
        "domelementtype": "1.1.3",
        "entities": "1.1.1"
      },
      "dependencies": {
        "domelementtype": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
          "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
          "dev": true
        }
      }
    },
    "domelementtype": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
      "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
      "dev": true
    },
    "domhandler": {
      "version": "2.4.1",
      "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz",
      "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
      "dev": true,
      "requires": {
        "domelementtype": "1.3.0"
      }
    },
    "domutils": {
      "version": "1.5.1",
      "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
      "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
      "dev": true,
      "requires": {
        "dom-serializer": "0.1.0",
        "domelementtype": "1.3.0"
      }
    },
    "ecc-jsbn": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
      "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
      "dev": true,
      "optional": true,
      "requires": {
        "jsbn": "0.1.1"
      }
    },
    "editorconfig": {
      "version": "0.13.3",
      "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.3.tgz",
      "integrity": "sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ==",
      "dev": true,
      "requires": {
        "bluebird": "3.5.1",
        "commander": "2.14.0",
        "lru-cache": "3.2.0",
        "semver": "5.5.0",
        "sigmund": "1.0.1"
      },
      "dependencies": {
        "lru-cache": {
          "version": "3.2.0",
          "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz",
          "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=",
          "dev": true,
          "requires": {
            "pseudomap": "1.0.2"
          }
        }
      }
    },
    "ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
      "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
      "dev": true
    },
    "electron-to-chromium": {
      "version": "1.3.32",
      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.32.tgz",
      "integrity": "sha1-EdBoTAhA4APEvoko+KxfNdvCtOY=",
      "dev": true
    },
    "encodeurl": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
      "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
      "dev": true
    },
    "entities": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
      "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
      "dev": true
    },
    "es5-ext": {
      "version": "0.10.38",
      "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz",
      "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==",
      "dev": true,
      "requires": {
        "es6-iterator": "2.0.3",
        "es6-symbol": "3.1.1"
      }
    },
    "es6-iterator": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
      "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
      "dev": true,
      "requires": {
        "d": "1.0.0",
        "es5-ext": "0.10.38",
        "es6-symbol": "3.1.1"
      }
    },
    "es6-symbol": {
      "version": "3.1.1",
      "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
      "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
      "dev": true,
      "requires": {
        "d": "1.0.0",
        "es5-ext": "0.10.38"
      }
    },
    "es6-weak-map": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
      "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
      "dev": true,
      "requires": {
        "d": "1.0.0",
        "es5-ext": "0.10.38",
        "es6-iterator": "2.0.3",
        "es6-symbol": "3.1.1"
      }
    },
    "escape-html": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
      "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
      "dev": true
    },
    "escape-string-regexp": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
      "dev": true
    },
    "etag": {
      "version": "1.8.1",
      "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
      "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
      "dev": true
    },
    "event-emitter": {
      "version": "0.3.5",
      "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
      "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
      "dev": true,
      "requires": {
        "d": "1.0.0",
        "es5-ext": "0.10.38"
      }
    },
    "execa": {
      "version": "0.7.0",
      "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
      "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
      "dev": true,
      "requires": {
        "cross-spawn": "5.1.0",
        "get-stream": "3.0.0",
        "is-stream": "1.1.0",
        "npm-run-path": "2.0.2",
        "p-finally": "1.0.0",
        "signal-exit": "3.0.2",
        "strip-eof": "1.0.0"
      }
    },
    "express": {
      "version": "4.16.2",
      "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
      "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
      "dev": true,
      "requires": {
        "accepts": "1.3.4",
        "array-flatten": "1.1.1",
        "body-parser": "1.18.2",
        "content-disposition": "0.5.2",
        "content-type": "1.0.4",
        "cookie": "0.3.1",
        "cookie-signature": "1.0.6",
        "debug": "2.6.9",
        "depd": "1.1.2",
        "encodeurl": "1.0.2",
        "escape-html": "1.0.3",
        "etag": "1.8.1",
        "finalhandler": "1.1.0",
        "fresh": "0.5.2",
        "merge-descriptors": "1.0.1",
        "methods": "1.1.2",
        "on-finished": "2.3.0",
        "parseurl": "1.3.2",
        "path-to-regexp": "0.1.7",
        "proxy-addr": "2.0.2",
        "qs": "6.5.1",
        "range-parser": "1.2.0",
        "safe-buffer": "5.1.1",
        "send": "0.16.1",
        "serve-static": "1.13.1",
        "setprototypeof": "1.1.0",
        "statuses": "1.3.1",
        "type-is": "1.6.15",
        "utils-merge": "1.0.1",
        "vary": "1.1.2"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        }
      }
    },
    "extend": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
      "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
      "dev": true
    },
    "extsprintf": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
      "dev": true
    },
    "fast-deep-equal": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
      "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
      "dev": true
    },
    "fast-json-stable-stringify": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
      "dev": true
    },
    "finalhandler": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
      "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
      "dev": true,
      "requires": {
        "debug": "2.6.9",
        "encodeurl": "1.0.2",
        "escape-html": "1.0.3",
        "on-finished": "2.3.0",
        "parseurl": "1.3.2",
        "statuses": "1.3.1",
        "unpipe": "1.0.0"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        }
      }
    },
    "flatten": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
      "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
      "dev": true
    },
    "follow-redirects": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz",
      "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==",
      "dev": true,
      "requires": {
        "debug": "3.1.0"
      }
    },
    "forever-agent": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
      "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
      "dev": true
    },
    "form-data": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
      "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
      "dev": true,
      "requires": {
        "asynckit": "0.4.0",
        "combined-stream": "1.0.5",
        "mime-types": "2.1.17"
      }
    },
    "forwarded": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
      "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
      "dev": true
    },
    "fresh": {
      "version": "0.5.2",
      "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
      "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
      "dev": true
    },
    "fs-extra": {
      "version": "4.0.3",
      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz",
      "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==",
      "dev": true,
      "requires": {
        "graceful-fs": "4.1.11",
        "jsonfile": "4.0.0",
        "universalify": "0.1.1"
      }
    },
    "fs.realpath": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
      "dev": true
    },
    "function-bind": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
      "dev": true
    },
    "gather-stream": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/gather-stream/-/gather-stream-1.0.0.tgz",
      "integrity": "sha1-szmUr0V6gRVwDUEPMXczy+egkEs=",
      "dev": true
    },
    "gaze": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
      "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
      "dev": true,
      "requires": {
        "globule": "1.2.0"
      }
    },
    "get-port": {
      "version": "3.2.0",
      "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz",
      "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=",
      "dev": true
    },
    "get-stream": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
      "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
      "dev": true
    },
    "getpass": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
      "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
      "dev": true,
      "requires": {
        "assert-plus": "1.0.0"
      }
    },
    "glob": {
      "version": "7.1.2",
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
      "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
      "dev": true,
      "requires": {
        "fs.realpath": "1.0.0",
        "inflight": "1.0.6",
        "inherits": "2.0.3",
        "minimatch": "3.0.4",
        "once": "1.4.0",
        "path-is-absolute": "1.0.1"
      }
    },
    "globule": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
      "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
      "dev": true,
      "requires": {
        "glob": "7.1.2",
        "lodash": "4.17.5",
        "minimatch": "3.0.4"
      }
    },
    "graceful-fs": {
      "version": "4.1.11",
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
      "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
      "dev": true
    },
    "graceful-readlink": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
      "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
      "dev": true
    },
    "har-schema": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
      "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
      "dev": true
    },
    "har-validator": {
      "version": "5.0.3",
      "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
      "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
      "dev": true,
      "requires": {
        "ajv": "5.5.2",
        "har-schema": "2.0.0"
      }
    },
    "has": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
      "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
      "dev": true,
      "requires": {
        "function-bind": "1.1.1"
      }
    },
    "has-ansi": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
      "dev": true,
      "requires": {
        "ansi-regex": "2.1.1"
      }
    },
    "has-flag": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
      "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
      "dev": true
    },
    "hawk": {
      "version": "6.0.2",
      "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
      "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
      "dev": true,
      "requires": {
        "boom": "4.3.1",
        "cryptiles": "3.1.2",
        "hoek": "4.2.0",
        "sntp": "2.1.0"
      }
    },
    "heml": {
      "version": "1.1.3",
      "resolved": "https://registry.npmjs.org/heml/-/heml-1.1.3.tgz",
      "integrity": "sha512-prlm2kvrOYmVkxgA/YyIVER2SSbjPdmJVBB2Oum+4YjWYAWxiqMUlvvN6PMlH0ahDFtQ2SsXnHEjWIV6hSTulw==",
      "dev": true,
      "requires": {
        "@heml/elements": "1.1.3",
        "@heml/inline": "1.1.2",
        "@heml/parse": "1.1.2",
        "@heml/render": "1.1.2",
        "@heml/utils": "1.1.2",
        "@heml/validate": "1.1.2",
        "babel-runtime": "6.26.0",
        "boxen": "1.3.0",
        "byte-length": "0.1.1",
        "chalk": "2.3.0",
        "commander": "2.14.0",
        "express": "4.16.2",
        "fs-extra": "4.0.3",
        "gaze": "1.1.2",
        "get-port": "3.2.0",
        "js-beautify": "1.7.5",
        "lodash": "4.17.5",
        "log-update": "2.3.0",
        "open": "0.0.5",
        "reload": "2.2.2"
      }
    },
    "hex-color-regex": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
      "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
      "dev": true
    },
    "hoek": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
      "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
      "dev": true
    },
    "hsl-regex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
      "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=",
      "dev": true
    },
    "hsla-regex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
      "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
      "dev": true
    },
    "html-tags": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
      "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
      "dev": true
    },
    "htmlparser2": {
      "version": "3.9.2",
      "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
      "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
      "dev": true,
      "requires": {
        "domelementtype": "1.3.0",
        "domhandler": "2.4.1",
        "domutils": "1.5.1",
        "entities": "1.1.1",
        "inherits": "2.0.3",
        "readable-stream": "2.3.3"
      }
    },
    "http-errors": {
      "version": "1.6.2",
      "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
      "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
      "dev": true,
      "requires": {
        "depd": "1.1.1",
        "inherits": "2.0.3",
        "setprototypeof": "1.0.3",
        "statuses": "1.3.1"
      },
      "dependencies": {
        "depd": {
          "version": "1.1.1",
          "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
          "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
          "dev": true
        },
        "setprototypeof": {
          "version": "1.0.3",
          "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
          "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=",
          "dev": true
        }
      }
    },
    "http-signature": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
      "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
      "dev": true,
      "requires": {
        "assert-plus": "1.0.0",
        "jsprim": "1.4.1",
        "sshpk": "1.13.1"
      }
    },
    "iconv-lite": {
      "version": "0.4.19",
      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
      "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
      "dev": true
    },
    "image-size": {
      "version": "0.6.2",
      "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.2.tgz",
      "integrity": "sha512-pH3vDzpczdsKHdZ9xxR3O46unSjisgVx0IImay7Zz2EdhRVbCkj+nthx9OuuWEhakx9FAO+fNVGrF0rZ2oMOvw==",
      "dev": true
    },
    "indexes-of": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
      "dev": true
    },
    "inflight": {
      "version": "1.0.6",
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
      "dev": true,
      "requires": {
        "once": "1.4.0",
        "wrappy": "1.0.2"
      }
    },
    "inherits": {
      "version": "2.0.3",
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
      "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
      "dev": true
    },
    "ini": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
      "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
      "dev": true
    },
    "ipaddr.js": {
      "version": "1.5.2",
      "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
      "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=",
      "dev": true
    },
    "irregular-plurals": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz",
      "integrity": "sha1-LKmwM2UREYVUEvFr5dd8YqRYp2Y=",
      "dev": true
    },
    "is-absolute-url": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
      "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
      "dev": true
    },
    "is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
      "dev": true
    },
    "is-css-shorthand": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/is-css-shorthand/-/is-css-shorthand-1.0.1.tgz",
      "integrity": "sha1-MPldAyEGBf7f3RKOU9rEpEN6kzw=",
      "dev": true,
      "requires": {
        "css-shorthand-properties": "1.1.0"
      }
    },
    "is-fullwidth-code-point": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
      "dev": true
    },
    "is-promise": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
      "dev": true
    },
    "is-stream": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
      "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
      "dev": true
    },
    "is-typedarray": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
      "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
      "dev": true
    },
    "isarray": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
      "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
      "dev": true
    },
    "isexe": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
      "dev": true
    },
    "isstream": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
      "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
      "dev": true
    },
    "js-base64": {
      "version": "2.4.3",
      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz",
      "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==",
      "dev": true
    },
    "js-beautify": {
      "version": "1.7.5",
      "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.5.tgz",
      "integrity": "sha512-9OhfAqGOrD7hoQBLJMTA+BKuKmoEtTJXzZ7WDF/9gvjtey1koVLuZqIY6c51aPDjbNdNtIXAkiWKVhziawE9Og==",
      "dev": true,
      "requires": {
        "config-chain": "1.1.11",
        "editorconfig": "0.13.3",
        "mkdirp": "0.5.1",
        "nopt": "3.0.6"
      }
    },
    "jsbn": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
      "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
      "dev": true,
      "optional": true
    },
    "json-schema": {
      "version": "0.2.3",
      "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
      "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
      "dev": true
    },
    "json-schema-traverse": {
      "version": "0.3.1",
      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
      "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
      "dev": true
    },
    "json-stringify-safe": {
      "version": "5.0.1",
      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
      "dev": true
    },
    "jsonfile": {
      "version": "4.0.0",
      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
      "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
      "dev": true,
      "requires": {
        "graceful-fs": "4.1.11"
      }
    },
    "jsprim": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
      "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
      "dev": true,
      "requires": {
        "assert-plus": "1.0.0",
        "extsprintf": "1.3.0",
        "json-schema": "0.2.3",
        "verror": "1.10.0"
      }
    },
    "juice": {
      "version": "4.2.2",
      "resolved": "https://registry.npmjs.org/juice/-/juice-4.2.2.tgz",
      "integrity": "sha512-K318grKePPhpx8F55cmv+7gdCMM3LFSOYoNaDmBVhTDkrLQBsf+YVfA4/zPbk9hMEbbQI894pJFOigT2CCJyjw==",
      "dev": true,
      "requires": {
        "cheerio": "0.22.0",
        "commander": "2.9.0",
        "cross-spawn": "5.1.0",
        "deep-extend": "0.5.0",
        "mensch": "0.3.3",
        "slick": "1.12.2",
        "web-resource-inliner": "4.2.1"
      },
      "dependencies": {
        "commander": {
          "version": "2.9.0",
          "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
          "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
          "dev": true,
          "requires": {
            "graceful-readlink": "1.0.1"
          }
        }
      }
    },
    "lodash": {
      "version": "4.17.5",
      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
      "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
      "dev": true
    },
    "lodash.assignin": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz",
      "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=",
      "dev": true
    },
    "lodash.bind": {
      "version": "4.2.1",
      "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz",
      "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=",
      "dev": true
    },
    "lodash.defaults": {
      "version": "4.2.0",
      "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
      "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=",
      "dev": true
    },
    "lodash.filter": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz",
      "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=",
      "dev": true
    },
    "lodash.flatten": {
      "version": "4.4.0",
      "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
      "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
      "dev": true
    },
    "lodash.foreach": {
      "version": "4.5.0",
      "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
      "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=",
      "dev": true
    },
    "lodash.map": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz",
      "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=",
      "dev": true
    },
    "lodash.memoize": {
      "version": "4.1.2",
      "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
      "dev": true
    },
    "lodash.merge": {
      "version": "4.6.1",
      "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz",
      "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==",
      "dev": true
    },
    "lodash.pick": {
      "version": "4.4.0",
      "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
      "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=",
      "dev": true
    },
    "lodash.reduce": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz",
      "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=",
      "dev": true
    },
    "lodash.reject": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz",
      "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=",
      "dev": true
    },
    "lodash.some": {
      "version": "4.6.0",
      "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz",
      "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=",
      "dev": true
    },
    "lodash.unescape": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
      "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
      "dev": true
    },
    "lodash.uniq": {
      "version": "4.5.0",
      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
      "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
      "dev": true
    },
    "log-symbols": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
      "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
      "dev": true,
      "requires": {
        "chalk": "1.1.3"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          }
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
          "dev": true
        }
      }
    },
    "log-update": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
      "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
      "dev": true,
      "requires": {
        "ansi-escapes": "3.0.0",
        "cli-cursor": "2.1.0",
        "wrap-ansi": "3.0.1"
      }
    },
    "lru-cache": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
      "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
      "dev": true,
      "requires": {
        "pseudomap": "1.0.2",
        "yallist": "2.1.2"
      }
    },
    "lru-queue": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
      "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
      "dev": true,
      "requires": {
        "es5-ext": "0.10.38"
      }
    },
    "map-obj": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
      "dev": true
    },
    "media-typer": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
      "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
      "dev": true
    },
    "memoizee": {
      "version": "0.4.11",
      "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.11.tgz",
      "integrity": "sha1-vemBdmPJ5A/bKk6hw2cpYIeujI8=",
      "dev": true,
      "requires": {
        "d": "1.0.0",
        "es5-ext": "0.10.38",
        "es6-weak-map": "2.0.2",
        "event-emitter": "0.3.5",
        "is-promise": "2.1.0",
        "lru-queue": "0.1.0",
        "next-tick": "1.0.0",
        "timers-ext": "0.1.2"
      }
    },
    "mensch": {
      "version": "0.3.3",
      "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.3.tgz",
      "integrity": "sha1-4gD/TdgjcX+OBWOzLj9UgfyiYrI=",
      "dev": true
    },
    "merge-descriptors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
      "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
      "dev": true
    },
    "methods": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
      "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
      "dev": true
    },
    "mime": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
      "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
      "dev": true
    },
    "mime-db": {
      "version": "1.30.0",
      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
      "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
      "dev": true
    },
    "mime-types": {
      "version": "2.1.17",
      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
      "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
      "dev": true,
      "requires": {
        "mime-db": "1.30.0"
      }
    },
    "mimer": {
      "version": "0.2.3",
      "resolved": "https://registry.npmjs.org/mimer/-/mimer-0.2.3.tgz",
      "integrity": "sha512-cICHJPMZUdZMqWaOQ+Eh0hHo1R6IUCiBee7WvIGGUJsZyjdMUInxQVmyu8hKj5uCy+Bi+Wlp/EsdUR61yOdWOw==",
      "dev": true
    },
    "mimic-fn": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
      "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
      "dev": true
    },
    "minimatch": {
      "version": "3.0.4",
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
      "dev": true,
      "requires": {
        "brace-expansion": "1.1.8"
      }
    },
    "minimist": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
      "dev": true
    },
    "mkdirp": {
      "version": "0.5.1",
      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
      "dev": true,
      "requires": {
        "minimist": "0.0.8"
      },
      "dependencies": {
        "minimist": {
          "version": "0.0.8",
          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
          "dev": true
        }
      }
    },
    "ms": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
      "dev": true
    },
    "negotiator": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
      "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=",
      "dev": true
    },
    "next-tick": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
      "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
      "dev": true
    },
    "nopt": {
      "version": "3.0.6",
      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
      "dev": true,
      "requires": {
        "abbrev": "1.1.1"
      }
    },
    "npm-run-path": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
      "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
      "dev": true,
      "requires": {
        "path-key": "2.0.1"
      }
    },
    "nth-check": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
      "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
      "dev": true,
      "requires": {
        "boolbase": "1.0.0"
      }
    },
    "oauth-sign": {
      "version": "0.8.2",
      "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
      "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
      "dev": true
    },
    "object-assign": {
      "version": "4.1.1",
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
      "dev": true
    },
    "on-finished": {
      "version": "2.3.0",
      "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
      "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
      "dev": true,
      "requires": {
        "ee-first": "1.1.1"
      }
    },
    "once": {
      "version": "1.4.0",
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
      "dev": true,
      "requires": {
        "wrappy": "1.0.2"
      }
    },
    "onetime": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
      "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
      "dev": true,
      "requires": {
        "mimic-fn": "1.2.0"
      }
    },
    "open": {
      "version": "0.0.5",
      "resolved": "https://registry.npmjs.org/open/-/open-0.0.5.tgz",
      "integrity": "sha1-QsPhjslUZra/DcQvOilFw/DK2Pw=",
      "dev": true
    },
    "p-finally": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
      "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
      "dev": true
    },
    "parse5": {
      "version": "3.0.3",
      "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz",
      "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
      "dev": true,
      "requires": {
        "@types/node": "9.4.0"
      }
    },
    "parseurl": {
      "version": "1.3.2",
      "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
      "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
      "dev": true
    },
    "path-is-absolute": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
      "dev": true
    },
    "path-key": {
      "version": "2.0.1",
      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
      "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
      "dev": true
    },
    "path-to-regexp": {
      "version": "0.1.7",
      "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
      "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
      "dev": true
    },
    "performance-now": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
      "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
      "dev": true
    },
    "plur": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz",
      "integrity": "sha1-dIJFLBoPUI4+NE6uwxLJHCncZVo=",
      "dev": true,
      "requires": {
        "irregular-plurals": "1.4.0"
      }
    },
    "postcss": {
      "version": "6.0.17",
      "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.17.tgz",
      "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==",
      "dev": true,
      "requires": {
        "chalk": "2.3.0",
        "source-map": "0.6.1",
        "supports-color": "5.1.0"
      }
    },
    "postcss-calc": {
      "version": "6.0.1",
      "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz",
      "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=",
      "dev": true,
      "requires": {
        "css-unit-converter": "1.1.1",
        "postcss": "6.0.17",
        "postcss-selector-parser": "2.2.3",
        "reduce-css-calc": "2.1.4"
      }
    },
    "postcss-color-rgba-fallback": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz",
      "integrity": "sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=",
      "dev": true,
      "requires": {
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0",
        "rgb-hex": "2.1.0"
      }
    },
    "postcss-colornames-to-hex": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/postcss-colornames-to-hex/-/postcss-colornames-to-hex-1.0.1.tgz",
      "integrity": "sha512-KMDT4xUlnabGZvCpu4Mi0Y3gYRJbtRI+O1u4XJZKX7foYtC/9Vh4hi41CHFUVPlN4eu7jBQEnjQCU1l8NIfxHA==",
      "dev": true,
      "requires": {
        "css-color-names": "0.0.4",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      },
      "dependencies": {
        "css-color-names": {
          "version": "0.0.4",
          "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
          "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
          "dev": true
        }
      }
    },
    "postcss-convert-values": {
      "version": "2.6.1",
      "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
      "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-discard-comments": {
      "version": "2.0.4",
      "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
      "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-discard-duplicates": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
      "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-discard-empty": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
      "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-discard-overridden": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
      "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-email-important": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/postcss-email-important/-/postcss-email-important-1.0.0.tgz",
      "integrity": "sha512-rKTq1VJz6K6L0S6CupcrKmnFjKNUc/tVX9GZipwFEK6+02VOQaaZ3FbQVPnhdu/oicXqicZhWfYINX7jhjCY1w==",
      "dev": true,
      "requires": {
        "postcss": "6.0.17"
      }
    },
    "postcss-hex-format": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/postcss-hex-format/-/postcss-hex-format-1.0.0.tgz",
      "integrity": "sha512-qe+H063ynv0qLxawiEfvukXlGzvlt/jYrzdU87vHNUjSXtWuv+zObx779py+HdzNcz4IlkpTFQSZsya6tcEN+Q==",
      "dev": true,
      "requires": {
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-merge-longhand": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-3.0.0.tgz",
      "integrity": "sha1-RVsUiSENuSWpB9SmB6c19qU3FSg=",
      "dev": true,
      "requires": {
        "object-assign": "4.1.1",
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0",
        "stylehacks": "2.3.2"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-merge-rules": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
      "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
      "dev": true,
      "requires": {
        "browserslist": "1.7.7",
        "caniuse-api": "1.6.1",
        "postcss": "5.2.18",
        "postcss-selector-parser": "2.2.3",
        "vendors": "1.0.1"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-minify-font-values": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
      "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
      "dev": true,
      "requires": {
        "object-assign": "4.1.1",
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-minify-gradients": {
      "version": "1.0.5",
      "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
      "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-minify-params": {
      "version": "1.2.2",
      "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
      "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
      "dev": true,
      "requires": {
        "alphanum-sort": "1.0.2",
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0",
        "uniqs": "2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-minify-selectors": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
      "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
      "dev": true,
      "requires": {
        "alphanum-sort": "1.0.2",
        "has": "1.0.1",
        "postcss": "5.2.18",
        "postcss-selector-parser": "2.2.3"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-normalize-display-values": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0-rc.2.tgz",
      "integrity": "sha512-VzIbIgBJ60Cs+hyYJOjZe8Wb1wbtNWr4IHRL6GrnEDvVMe2N2MU5jHbzpZlusm6QdQRa7uvYAkFc1HrziR3y5A==",
      "dev": true,
      "requires": {
        "cssnano-util-get-match": "4.0.0-rc.2",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-normalize-positions": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.0-rc.2.tgz",
      "integrity": "sha512-bqs0WzP8NYK6dAfGinQC99RlUR1wOCL5hDhuwh/XZFw0jem69wH2ee/QpghXdRtSrKryjpkLuPe+C5sQazwRAQ==",
      "dev": true,
      "requires": {
        "cssnano-util-get-arguments": "4.0.0-rc.2",
        "has": "1.0.1",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-normalize-repeat-style": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.0-rc.2.tgz",
      "integrity": "sha512-4Q0evHWLaTPyWLOQNrwIVepE29UMoTaeQNrbdseJrvHp3Tv+7xBt24SH0qLEK6ajX2H2BLlqU43tql1Z7SIigw==",
      "dev": true,
      "requires": {
        "cssnano-util-get-arguments": "4.0.0-rc.2",
        "cssnano-util-get-match": "4.0.0-rc.2",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-normalize-string": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.0-rc.2.tgz",
      "integrity": "sha512-5huVcaN3mCJ/6QkMMORV2A70KZi5pMzpRupOTZuOSdooYszyYcBLvOUMrgw1pQCU5gqb+ck6gd7Q4h76v3jfLQ==",
      "dev": true,
      "requires": {
        "has": "1.0.1",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-normalize-timing-functions": {
      "version": "4.0.0-rc.2",
      "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.0-rc.2.tgz",
      "integrity": "sha512-6DR2UTmLHnjuUe+gzz34YRTX4j7DcJtws2cf4kI1XTUeYOyb3tpAhzAoGsjBR7FntTROGR7Q/uJifjaPNBJWhA==",
      "dev": true,
      "requires": {
        "cssnano-util-get-match": "4.0.0-rc.2",
        "postcss": "6.0.17",
        "postcss-value-parser": "3.3.0"
      }
    },
    "postcss-ordered-values": {
      "version": "2.2.3",
      "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
      "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
      "dev": true,
      "requires": {
        "postcss": "5.2.18",
        "postcss-value-parser": "3.3.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-reporter": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-1.4.1.tgz",
      "integrity": "sha1-wTbwpbFhkV83ndN2XGEHX357mvI=",
      "dev": true,
      "requires": {
        "chalk": "1.1.3",
        "lodash": "4.17.5",
        "log-symbols": "1.0.2",
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          },
          "dependencies": {
            "supports-color": {
              "version": "3.2.3",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
              "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
              "dev": true,
              "requires": {
                "has-flag": "1.0.0"
              }
            }
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
          "dev": true
        }
      }
    },
    "postcss-rgba-hex": {
      "version": "0.3.7",
      "resolved": "https://registry.npmjs.org/postcss-rgba-hex/-/postcss-rgba-hex-0.3.7.tgz",
      "integrity": "sha1-QQkwf3MxesreVtLVvsvU+qFbgKw=",
      "dev": true,
      "requires": {
        "object-assign": "4.1.1",
        "postcss": "5.2.18",
        "rgb2hex": "0.1.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-safe-parser": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-3.0.1.tgz",
      "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=",
      "dev": true,
      "requires": {
        "postcss": "6.0.17"
      }
    },
    "postcss-selector-parser": {
      "version": "2.2.3",
      "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
      "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
      "dev": true,
      "requires": {
        "flatten": "1.0.2",
        "indexes-of": "1.0.1",
        "uniq": "1.0.1"
      }
    },
    "postcss-shorthand-expand": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/postcss-shorthand-expand/-/postcss-shorthand-expand-1.0.1.tgz",
      "integrity": "sha1-+DCbWBIN5GdtEghiC6LYgIMPiXg=",
      "dev": true,
      "requires": {
        "css-shorthand-expand": "1.1.0",
        "is-css-shorthand": "1.0.1",
        "postcss": "5.2.18"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-unique-selectors": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
      "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
      "dev": true,
      "requires": {
        "alphanum-sort": "1.0.2",
        "postcss": "5.2.18",
        "uniqs": "2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          },
          "dependencies": {
            "supports-color": {
              "version": "2.0.0",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
              "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
              "dev": true
            }
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "3.2.3",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
          "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
          "dev": true,
          "requires": {
            "has-flag": "1.0.0"
          }
        }
      }
    },
    "postcss-value-parser": {
      "version": "3.3.0",
      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz",
      "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=",
      "dev": true
    },
    "process-nextick-args": {
      "version": "1.0.7",
      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
      "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
      "dev": true
    },
    "proto-list": {
      "version": "1.2.4",
      "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
      "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
      "dev": true
    },
    "proxy-addr": {
      "version": "2.0.2",
      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
      "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
      "dev": true,
      "requires": {
        "forwarded": "0.1.2",
        "ipaddr.js": "1.5.2"
      }
    },
    "pseudomap": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
      "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
      "dev": true
    },
    "punycode": {
      "version": "1.4.1",
      "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
      "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
      "dev": true
    },
    "qs": {
      "version": "6.5.1",
      "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
      "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
      "dev": true
    },
    "querystringify": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
      "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=",
      "dev": true
    },
    "range-parser": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
      "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=",
      "dev": true
    },
    "raw-body": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
      "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
      "dev": true,
      "requires": {
        "bytes": "3.0.0",
        "http-errors": "1.6.2",
        "iconv-lite": "0.4.19",
        "unpipe": "1.0.0"
      }
    },
    "read-file-stdin": {
      "version": "0.2.1",
      "resolved": "https://registry.npmjs.org/read-file-stdin/-/read-file-stdin-0.2.1.tgz",
      "integrity": "sha1-JezP86FTtoCa+ssj7hU4fbng7mE=",
      "dev": true,
      "requires": {
        "gather-stream": "1.0.0"
      }
    },
    "readable-stream": {
      "version": "2.3.3",
      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
      "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
      "dev": true,
      "requires": {
        "core-util-is": "1.0.2",
        "inherits": "2.0.3",
        "isarray": "1.0.0",
        "process-nextick-args": "1.0.7",
        "safe-buffer": "5.1.1",
        "string_decoder": "1.0.3",
        "util-deprecate": "1.0.2"
      }
    },
    "reduce-css-calc": {
      "version": "2.1.4",
      "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz",
      "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==",
      "dev": true,
      "requires": {
        "css-unit-converter": "1.1.1",
        "postcss-value-parser": "3.3.0"
      }
    },
    "regenerator-runtime": {
      "version": "0.11.1",
      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
      "dev": true
    },
    "reload": {
      "version": "2.2.2",
      "resolved": "https://registry.npmjs.org/reload/-/reload-2.2.2.tgz",
      "integrity": "sha512-su5O0Db0LSxAw4XHl7FeSlu79PYaFt+OFxEIdc2/kb+pechWOnlQxV2LB+kHVdjjghQ7/2J1G/AWH20qUAywQQ==",
      "dev": true,
      "requires": {
        "cli-color": "1.2.0",
        "commander": "2.9.0",
        "finalhandler": "1.0.6",
        "minimist": "1.2.0",
        "open": "0.0.5",
        "serve-static": "1.12.6",
        "supervisor": "0.12.0",
        "url-parse": "1.1.9",
        "ws": "3.0.0"
      },
      "dependencies": {
        "commander": {
          "version": "2.9.0",
          "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
          "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
          "dev": true,
          "requires": {
            "graceful-readlink": "1.0.1"
          }
        },
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        },
        "finalhandler": {
          "version": "1.0.6",
          "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz",
          "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=",
          "dev": true,
          "requires": {
            "debug": "2.6.9",
            "encodeurl": "1.0.2",
            "escape-html": "1.0.3",
            "on-finished": "2.3.0",
            "parseurl": "1.3.2",
            "statuses": "1.3.1",
            "unpipe": "1.0.0"
          }
        },
        "mime": {
          "version": "1.3.4",
          "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
          "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
          "dev": true
        },
        "send": {
          "version": "0.15.6",
          "resolved": "https://registry.npmjs.org/send/-/send-0.15.6.tgz",
          "integrity": "sha1-IPI6nJJbdiq4JwX+L52yUqzkfjQ=",
          "dev": true,
          "requires": {
            "debug": "2.6.9",
            "depd": "1.1.2",
            "destroy": "1.0.4",
            "encodeurl": "1.0.2",
            "escape-html": "1.0.3",
            "etag": "1.8.1",
            "fresh": "0.5.2",
            "http-errors": "1.6.2",
            "mime": "1.3.4",
            "ms": "2.0.0",
            "on-finished": "2.3.0",
            "range-parser": "1.2.0",
            "statuses": "1.3.1"
          }
        },
        "serve-static": {
          "version": "1.12.6",
          "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.6.tgz",
          "integrity": "sha1-uXN3P2NEmTTaVOW+ul4x2fQhFXc=",
          "dev": true,
          "requires": {
            "encodeurl": "1.0.2",
            "escape-html": "1.0.3",
            "parseurl": "1.3.2",
            "send": "0.15.6"
          }
        }
      }
    },
    "repeat-element": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
      "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
      "dev": true
    },
    "request": {
      "version": "2.83.0",
      "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
      "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
      "dev": true,
      "requires": {
        "aws-sign2": "0.7.0",
        "aws4": "1.6.0",
        "caseless": "0.12.0",
        "combined-stream": "1.0.5",
        "extend": "3.0.1",
        "forever-agent": "0.6.1",
        "form-data": "2.3.1",
        "har-validator": "5.0.3",
        "hawk": "6.0.2",
        "http-signature": "1.2.0",
        "is-typedarray": "1.0.0",
        "isstream": "0.1.2",
        "json-stringify-safe": "5.0.1",
        "mime-types": "2.1.17",
        "oauth-sign": "0.8.2",
        "performance-now": "2.1.0",
        "qs": "6.5.1",
        "safe-buffer": "5.1.1",
        "stringstream": "0.0.5",
        "tough-cookie": "2.3.3",
        "tunnel-agent": "0.6.0",
        "uuid": "3.2.1"
      }
    },
    "requires-port": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
      "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
      "dev": true
    },
    "restore-cursor": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
      "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
      "dev": true,
      "requires": {
        "onetime": "2.0.1",
        "signal-exit": "3.0.2"
      }
    },
    "rgb-hex": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-2.1.0.tgz",
      "integrity": "sha1-x3PF/iJoolV42SU5qCp6XOU77aY=",
      "dev": true
    },
    "rgb-regex": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
      "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=",
      "dev": true
    },
    "rgb2hex": {
      "version": "0.1.0",
      "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.0.tgz",
      "integrity": "sha1-zNVfhgrgxcTqN1BLlY5ELY0SMls=",
      "dev": true
    },
    "rgba-regex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
      "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=",
      "dev": true
    },
    "safe-buffer": {
      "version": "5.1.1",
      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
      "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
      "dev": true
    },
    "semver": {
      "version": "5.5.0",
      "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
      "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
      "dev": true
    },
    "send": {
      "version": "0.16.1",
      "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
      "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
      "dev": true,
      "requires": {
        "debug": "2.6.9",
        "depd": "1.1.2",
        "destroy": "1.0.4",
        "encodeurl": "1.0.2",
        "escape-html": "1.0.3",
        "etag": "1.8.1",
        "fresh": "0.5.2",
        "http-errors": "1.6.2",
        "mime": "1.4.1",
        "ms": "2.0.0",
        "on-finished": "2.3.0",
        "range-parser": "1.2.0",
        "statuses": "1.3.1"
      },
      "dependencies": {
        "debug": {
          "version": "2.6.9",
          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
          "dev": true,
          "requires": {
            "ms": "2.0.0"
          }
        }
      }
    },
    "serve-static": {
      "version": "1.13.1",
      "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
      "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
      "dev": true,
      "requires": {
        "encodeurl": "1.0.2",
        "escape-html": "1.0.3",
        "parseurl": "1.3.2",
        "send": "0.16.1"
      }
    },
    "setprototypeof": {
      "version": "1.1.0",
      "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
      "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
      "dev": true
    },
    "shebang-command": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
      "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
      "dev": true,
      "requires": {
        "shebang-regex": "1.0.0"
      }
    },
    "shebang-regex": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
      "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
      "dev": true
    },
    "sigmund": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
      "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
      "dev": true
    },
    "signal-exit": {
      "version": "3.0.2",
      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
      "dev": true
    },
    "slick": {
      "version": "1.12.2",
      "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz",
      "integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc=",
      "dev": true
    },
    "sntp": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
      "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
      "dev": true,
      "requires": {
        "hoek": "4.2.0"
      }
    },
    "source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
      "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
      "dev": true
    },
    "sshpk": {
      "version": "1.13.1",
      "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
      "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
      "dev": true,
      "requires": {
        "asn1": "0.2.3",
        "assert-plus": "1.0.0",
        "bcrypt-pbkdf": "1.0.1",
        "dashdash": "1.14.1",
        "ecc-jsbn": "0.1.1",
        "getpass": "0.1.7",
        "jsbn": "0.1.1",
        "tweetnacl": "0.14.5"
      }
    },
    "statuses": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
      "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
      "dev": true
    },
    "string-width": {
      "version": "2.1.1",
      "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
      "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
      "dev": true,
      "requires": {
        "is-fullwidth-code-point": "2.0.0",
        "strip-ansi": "4.0.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
          "dev": true
        },
        "strip-ansi": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
          "dev": true,
          "requires": {
            "ansi-regex": "3.0.0"
          }
        }
      }
    },
    "string_decoder": {
      "version": "1.0.3",
      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
      "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
      "dev": true,
      "requires": {
        "safe-buffer": "5.1.1"
      }
    },
    "stringstream": {
      "version": "0.0.5",
      "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
      "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
      "dev": true
    },
    "strip-ansi": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
      "dev": true,
      "requires": {
        "ansi-regex": "2.1.1"
      }
    },
    "strip-eof": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
      "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
      "dev": true
    },
    "stylehacks": {
      "version": "2.3.2",
      "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-2.3.2.tgz",
      "integrity": "sha1-ZMg+BDimjJ7fRJ6MVSp9mrYAmws=",
      "dev": true,
      "requires": {
        "browserslist": "1.7.7",
        "chalk": "1.1.3",
        "log-symbols": "1.0.2",
        "minimist": "1.2.0",
        "plur": "2.1.2",
        "postcss": "5.2.18",
        "postcss-reporter": "1.4.1",
        "postcss-selector-parser": "2.2.3",
        "read-file-stdin": "0.2.1",
        "text-table": "0.2.0",
        "write-file-stdout": "0.0.2"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          }
        },
        "has-flag": {
          "version": "1.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
          "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
          "dev": true
        },
        "postcss": {
          "version": "5.2.18",
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
          "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
          "dev": true,
          "requires": {
            "chalk": "1.1.3",
            "js-base64": "2.4.3",
            "source-map": "0.5.7",
            "supports-color": "3.2.3"
          },
          "dependencies": {
            "supports-color": {
              "version": "3.2.3",
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
              "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
              "dev": true,
              "requires": {
                "has-flag": "1.0.0"
              }
            }
          }
        },
        "source-map": {
          "version": "0.5.7",
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
          "dev": true
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
          "dev": true
        }
      }
    },
    "supervisor": {
      "version": "0.12.0",
      "resolved": "https://registry.npmjs.org/supervisor/-/supervisor-0.12.0.tgz",
      "integrity": "sha1-3n5jNwFbKRhRwQ81OMSn8EkX7ME=",
      "dev": true
    },
    "supports-color": {
      "version": "5.1.0",
      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
      "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
      "dev": true,
      "requires": {
        "has-flag": "2.0.0"
      }
    },
    "term-size": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
      "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
      "dev": true,
      "requires": {
        "execa": "0.7.0"
      }
    },
    "text-table": {
      "version": "0.2.0",
      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
      "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
      "dev": true
    },
    "timers-ext": {
      "version": "0.1.2",
      "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz",
      "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=",
      "dev": true,
      "requires": {
        "es5-ext": "0.10.38",
        "next-tick": "1.0.0"
      }
    },
    "timsort": {
      "version": "0.3.0",
      "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
      "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
      "dev": true
    },
    "tough-cookie": {
      "version": "2.3.3",
      "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
      "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
      "dev": true,
      "requires": {
        "punycode": "1.4.1"
      }
    },
    "tunnel-agent": {
      "version": "0.6.0",
      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
      "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
      "dev": true,
      "requires": {
        "safe-buffer": "5.1.1"
      }
    },
    "tweetnacl": {
      "version": "0.14.5",
      "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
      "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
      "dev": true,
      "optional": true
    },
    "type-is": {
      "version": "1.6.15",
      "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
      "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
      "dev": true,
      "requires": {
        "media-typer": "0.3.0",
        "mime-types": "2.1.17"
      }
    },
    "ultron": {
      "version": "1.1.1",
      "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
      "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==",
      "dev": true
    },
    "uniq": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
      "dev": true
    },
    "uniqs": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
      "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
      "dev": true
    },
    "universalify": {
      "version": "0.1.1",
      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
      "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=",
      "dev": true
    },
    "unpipe": {
      "version": "1.0.0",
      "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
      "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
      "dev": true
    },
    "url-parse": {
      "version": "1.1.9",
      "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz",
      "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=",
      "dev": true,
      "requires": {
        "querystringify": "1.0.0",
        "requires-port": "1.0.0"
      }
    },
    "util-deprecate": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
      "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
      "dev": true
    },
    "utils-merge": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
      "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
      "dev": true
    },
    "uuid": {
      "version": "3.2.1",
      "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
      "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
      "dev": true
    },
    "valid-data-url": {
      "version": "0.1.4",
      "resolved": "https://registry.npmjs.org/valid-data-url/-/valid-data-url-0.1.4.tgz",
      "integrity": "sha512-p3bCVl3Vrz42TV37a1OjagyLLd6qQAXBDWarIazuo7NQzCt8Kw8ZZwSAbUVPGlz5ubgbgJmgT0KRjLeCFNrfoQ==",
      "dev": true
    },
    "vary": {
      "version": "1.1.2",
      "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
      "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
      "dev": true
    },
    "vendors": {
      "version": "1.0.1",
      "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz",
      "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=",
      "dev": true
    },
    "verror": {
      "version": "1.10.0",
      "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
      "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
      "dev": true,
      "requires": {
        "assert-plus": "1.0.0",
        "core-util-is": "1.0.2",
        "extsprintf": "1.3.0"
      }
    },
    "web-resource-inliner": {
      "version": "4.2.1",
      "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.2.1.tgz",
      "integrity": "sha512-fOWnBQHVX8zHvEbECDTxtYL0FXIIZZ5H3LWoez8mGopYJK7inEru1kVMDzM1lVdeJBNEqUnNP5FBGxvzuMcwwQ==",
      "dev": true,
      "requires": {
        "async": "2.6.0",
        "chalk": "1.1.3",
        "datauri": "1.0.5",
        "htmlparser2": "3.9.2",
        "lodash.unescape": "4.0.1",
        "request": "2.83.0",
        "valid-data-url": "0.1.4",
        "xtend": "4.0.1"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "2.2.1",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
          "dev": true
        },
        "chalk": {
          "version": "1.1.3",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
          "dev": true,
          "requires": {
            "ansi-styles": "2.2.1",
            "escape-string-regexp": "1.0.5",
            "has-ansi": "2.0.0",
            "strip-ansi": "3.0.1",
            "supports-color": "2.0.0"
          }
        },
        "supports-color": {
          "version": "2.0.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
          "dev": true
        }
      }
    },
    "which": {
      "version": "1.3.0",
      "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
      "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
      "dev": true,
      "requires": {
        "isexe": "2.0.0"
      }
    },
    "widest-line": {
      "version": "2.0.0",
      "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz",
      "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
      "dev": true,
      "requires": {
        "string-width": "2.1.1"
      }
    },
    "wrap-ansi": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
      "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
      "dev": true,
      "requires": {
        "string-width": "2.1.1",
        "strip-ansi": "4.0.0"
      },
      "dependencies": {
        "ansi-regex": {
          "version": "3.0.0",
          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
          "dev": true
        },
        "strip-ansi": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
          "dev": true,
          "requires": {
            "ansi-regex": "3.0.0"
          }
        }
      }
    },
    "wrappy": {
      "version": "1.0.2",
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
      "dev": true
    },
    "write-file-stdout": {
      "version": "0.0.2",
      "resolved": "https://registry.npmjs.org/write-file-stdout/-/write-file-stdout-0.0.2.tgz",
      "integrity": "sha1-wlLXx8WxtAKJdjDjRTx7/mkNnKE=",
      "dev": true
    },
    "ws": {
      "version": "3.0.0",
      "resolved": "https://registry.npmjs.org/ws/-/ws-3.0.0.tgz",
      "integrity": "sha1-mN2wAFbIOQy3Ued4h4hJf5kQO2w=",
      "dev": true,
      "requires": {
        "safe-buffer": "5.0.1",
        "ultron": "1.1.1"
      },
      "dependencies": {
        "safe-buffer": {
          "version": "5.0.1",
          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
          "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=",
          "dev": true
        }
      }
    },
    "xtend": {
      "version": "4.0.1",
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
      "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
      "dev": true
    },
    "yallist": {
      "version": "2.1.2",
      "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
      "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
      "dev": true
    }
  }
}

Button padding instead of anchor padding

Hello to all!
Using padding for the button element, I noticed it results in padding for the table data cell containing the anchor element, instead of padding for the anchor element.
This means that the clickable area will be the anchor text, not the whole viewable button area.
<button class="button--primary button--inverted"> GUARDA I DETTAGLI </button>

image

image

Is there a button property to change this behavior and making all the button clickable, or it is something I can override in some way via CSS or using another heml structure?

Thank you for time and commitment.
Daniele.

Can't install using command line

When I run npm install heml -g, I get the following error:

npm ERR! code E404
npm ERR! 404 Not Found: @heml/elements@^1.0.2-0

I'm currently running npm version 5.5.1. This Stack Overflow article might be useful in debugging the source problem. I'm not having any issues installing other npm packages.

Importing custom fonts

I've been trying to import font files through various methods and can't seem to find anything that works correctly. I did come across this commit which seems related, but I didn't find any documentation around the font element or how to use it. 3017190

Any recommendations about how I would use custom fonts?

New feature: convert inline image into e-mail attachement, no absolute url

New feature proposal:
Lets say i write img src=โ€œx.jpgโ€ and it converts it to inline image and attach it automatically as an inline attachment. No absolute URL. No need to look on "the internet" for the image, because it is attached in the e-mail, by heml. No need for clicking "Load remote images"-button in your e-mail client.

If I can help somehow, let me know.

cli build folder of heml files.

Would be great if the cli could build a folder of heml files. At the moment it appears the build command just accepts a single file.

Thanks for a great tool

Combining options "heml-embed" with "heml-ignore" on the style-element

Hi folks,

first of all thanks for the great effort that went into this project, in most cases it makes creating HTML emails effortless. It tends to be more expressive in nature than for example MJML, which is something I absolutely like.

We're running into an issue however where we just want to place some custom css in the head of our mailing, this is not possible because the two options on the styling tag do not work together. When we use heml-embed, the styling gets placed in the head, which is great. When we use heml-ignore, it however is not possible to embed the styling.

How are we meant to place a custom snippet of css in the head, without HEML touching it. For example:
<style heml-ignore heml-embed> a { color: red; } </style>

Thanks in advance,
Rein

Spanish Translation

Hello! I would like to translate the project into Spanish! is it already translated?

add RTL support

by adding dir="rtl" attribute to heml tag all elements should be RTL.

Import Heml Components as JS Modules?

Is there support for importing heml components i.e. (Container, Row) as individual JS modules after installing the heml Package? If not is there another way I can accomplish this, I'm trying to make a UI lib for email templates and would love to use heml layouts.

Cannot find module './Button'

I am getting this error since today

Error: Cannot find module './Button'
           at Function.Module._resolveFilename (module.js:536:15)
           at Function.Module._load (module.js:466:25)
           at Module.require (module.js:579:17)
           at require (internal/module.js:11:18)
           at Object.<anonymous> (/usr/src/app/node_modules/@heml/elements/build/index.js:68:15)
           at Module._compile (module.js:635:30)
           at Object.Module._extensions..js (module.js:646:10)
           at Module.load (module.js:554:32)
           at tryModuleLoad (module.js:497:12)
           at Function.Module._load (module.js:489:3)
           at Module.require (module.js:579:17)
           at require (internal/module.js:11:18)
           at Object.<anonymous> (/usr/src/app/node_modules/heml/build/index.js:126:17)
           at Module._compile (module.js:635:30)
           at Object.Module._extensions..js (module.js:646:10)
           at Module.load (module.js:554:32)

Was getting error on the previous version ^1.0.2-0.
Upgraded to the new version today and still the same error, any clues ?

Thanks

Layout precision using different column widths

First of all, thanks for creating a very nice language and cli.

I was playing around with it when came across the following. When I would create a table-like structure over multiple rows, for example with the following column-size structure...

6-2-2-2
6-4-2
6-2-2-2

You would expect the columns to align perfectly with each other (like it would using table colspans), except it is not the the case. The column-widths are percentage-based and sometimes their widths add up to 101% and not 100% creating differences between rows with different structures. If the percentages weren't rounded, but precise, this wouldn't be the case. Although I'm not sure if this is cross-browser supported. See screenshot for reference.

screen shot 2018-06-04 at 21 55 31

Thanks

Base tag not working with images

When attempting to use the base element along with an img, I'm getting the following error:

(node:1612) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Expected a string

I get this error whether or not my img src is relative or absolute.

Example:

<heml>
  <head>
    <base href="http://via.placeholder.com" />
  </head>
  <body>
    <img src="/350x150" alt="my image" infer />
  </body>
</heml>

Using with Blade templates

Hello. HEML looks super useful! I'd like to use it to build our Blade templates (for use with Laravel), however, I'm wondering how to get around the following issue.

For example, in my Blade file, I use

<a href="http://{{ $domain }}/auth/verify/{{ $user['confirmation'] }}">@lang('email.confirm_button')</a>

I want the contents inside the {{ }} tags to effectively be ignored by HEML. It mostly works, but there's a problem with the quotation marks. Using the online editor, the above gives

<a href="http://{{ $domain }}/auth/verify/{{ $user[&#39;confirmation&#39;] }}" class="a"><span class="a__text">@lang('email.confirm_button')</span></a>

which is almost perfect, but the ' is replaced by &#39;.

If I include heml-ignore on the tag then the template parts work, but then I lose the HEML specific additions for a link.

<a href="http://{{ $domain }}/auth/verify/{{ $user['confirmation'] }}" heml-ignore="">@lang('email.confirm_button')</a>

Any ideas? Thanks!

Table inside HEML

I don't see a particular reason to not give access to the table element directly. It would act kind of like HTML in markdown, where you could make a table yourself if HEML can't do a specific thing you want to.

For example, I want to use a table to make a sort of list with step. The min column width is too large for my "step" column, it adds too much spacing and makes the result weird. But having just a basic table would be enough in this case.

template imports

Hey,

Just want to start off by saying heml has been super useful and easy to use. Took me about 30 minutes from installation to have my first full-featured email template. Keep up the awesome work (and came at the perfect time when I needed a new email template system).

As I've added another email template, it's becomes obvious that template imports would be super helpful (i.e. I share a footer, header, etc for my emails). So that I can reuse heml/styling between templates and make mass updates to my header without having to update each individual template - make the template writing a bit more dry.

Thanks!

TypeError when running in parallel

When running heml in parallel, it seems to hit a TypeError:

TypeError {
  message: 'Cannot read property \'get\' of null',
}

Object.render (node_modules/@heml/elements/build/Style.js:104:18)
render (node_modules/@heml/render/build/renderElement.js:70:53)
exports.default (node_modules/@heml/render/build/renderElement.js:27:10)
_callee4$ (node_modules/@heml/render/build/index.js:238:74)
tryCatch (node_modules/regenerator-runtime/runtime.js:65:40)
Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:299:22)
Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:117:21)

I threw together a little repo for easily reproducing the issue.

In case rxjs is not something you're familiar with, you can read about exactly what Observable.forkJoin does here.

Let me know if this issue is known, and if there's anything I can do to help get it resolved.

Outlook 2017 image height problem

Here is the steps to reproduce the problem:

  1. Create a HEML template and save as email.heml filename:
<heml>

    <head>
        <style>
            body {
                background: white;
            }

            h1 {
                color: DarkViolet;
            }

            strong {
                color: red;
            }

            container {
                max-width: 700px;
                margin: 10px auto;
                padding: 10px 20px;
            }

            button {
                background: CornflowerBlue;
                margin: auto;
            }

            column {
                padding: 0 10px;
            }
        </style>
    </head>

    <body>
        <container>
            <p>
                Section 1
            </p>
            <p>
                <a href="http://bit.ly/UdemyVS2017Go" target="vs2017go"><img src="https://user-images.githubusercontent.com/88981/34461102-17571f88-ee5d-11e7-9f26-bc97c6ae1259.png" width="100%"></a>
            </p>
            <p>
                Section 2
            </p>
            <p>
                <img src="https://user-images.githubusercontent.com/88981/34461104-1ae3e42e-ee5d-11e7-9c40-88e026fb9304.png" width="100%">
            </p>
            <p>
                Section 3
            </p>
            <p>
                <img src="https://user-images.githubusercontent.com/88981/34461106-1f649e58-ee5d-11e7-9a93-437cedc9453c.png" width="100%">
            </p>
            <p>
                <a href="https://www.udemy.com/linq-csharp"><img src="https://user-images.githubusercontent.com/88981/34460944-97d8bdec-ee58-11e7-86c3-e6090f12ba32.png" width="100%"></a>
            </p>
            <p>
                Footer
            </p>
        </container>
    </body>
</heml>
  1. Build HEML

    heml build email.heml

  2. Send email using email.html and get email by using Outlook 2017.

  3. Then you will get the result just like below:

image

All the images has been cut-off on height.

Workaround

Right now, I'm using this to solve problem temporary. I hope this workaround can add to HEML.

Thanks!

Compiler dublicate class names and styles inside <block> element

https://heml.io/editor/

<heml>
  <head>
    <subject>Welcome to HEML!</subject>
    <style>
      body { background: SkyBlue; }
      h1 { color: DarkViolet; }
      .text-block {
          border: 2px solid #cecece;
          padding: 10px;
      }
    </style>
  </head>
  <body>
    <container>
      <marquee><h1>Explore the world of email! ๐Ÿ’Œ</h1></marquee>
      <block class="text-block">
        Test text block
      </block>
    </container>
  </body>
</heml>

Border and paddings dublicates inside element.

screen shot 2017-10-31 at 16 36 08

Extending with own components?

As I see from the heml-elements/index.js there is no mechanism for plugging in additional components. That limits usability and, I believe, prevents real world use in large projects.

I understand that SparkPost would be having trouble allowing custom JS to be run within parse or render phases on their servers, however adding extension mechanism would have grand effect on spread of HEML as open standard.

export to eml file?

As far as I know lots of email clients support opening .eml files.

I don't know Mich about the file format, buy. Ssnce HEML already have at least parts of the metadata, It shouldn't be to hard to create such a file from a HEML file, right?

Would you see something like this as part of this repo, or prefer it as a separate project that uses HEML?

Difference between MJML and HEML ?

What is the main purpose in HEML?

I was intrigued by this release (of HEML), since I'm user of SparkPost, but it seems to be a copy of MJML.

Could you please point out some of main differences, please ?

One major difference between these two, is component naming, HEML uses more friendly names, like:
<container> vs <mj-container>
But that's not deal breaker.

Bug: Compiler creates duplicate <head> element

https://heml.io/editor/

On the editor page, demo HEML content:

<heml>
  <head>
    <subject>Welcome to HEML!</subject>
    <style>
      body { background: SkyBlue; }
      h1 { color: DarkViolet; }
    </style>
  </head>
  <body>
    <container>
      <marquee><h1>Explore the world of email! ๐Ÿ’Œ</h1></marquee>
    </container>
  </body>
</heml>

Produces an additional opening <head> and closing </head> elements:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
  <head> </head>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="x-apple-disable-message-reformatting" />
    <!--[if !mso]><!-->
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!--<![endif]-->
    <style type="text/css">
      * {
        text-size-adjust: 100%;
        -ms-text-size-adjust: 100%;
        -moz-text-size-adjust: 100%;
        -webkit-text-size-adjust: 100%;
      }

      html {
        height: 100%;
        width: 100%;
      }

      body {
        height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
        mso-line-height-rule: exactly;
      }

      div[style*="margin: 16px 0"] {
        margin: 0 !important;
      }

      table,
      td {
        mso-table-lspace: 0pt;
        mso-table-rspace: 0pt;
      }

      img {
        border: 0;
        height: auto;
        line-height: 100%;
        outline: none;
        text-decoration: none;
        -ms-interpolation-mode: bicubic;
      }

      .ReadMsgBody,
      .ExternalClass {
        width: 100%;
      }

      .ExternalClass,
      .ExternalClass p,
      .ExternalClass span,
      .ExternalClass td,
      .ExternalClass div {
        line-height: 100%;
      }
    </style>
    <!--[if gte mso 9]>
      <style type="text/css">
      li { text-indent: -1em; }
      table td { border-collapse: collapse; }
      </style>
      <![endif]-->
    <title>Welcome to HEML!</title>
    <!-- content -->
    <!--[if gte mso 9]><xml>
       <o:OfficeDocumentSettings>
        <o:AllowPNG/>
        <o:PixelsPerInch>96</o:PixelsPerInch>
       </o:OfficeDocumentSettings>
      </xml><![endif]-->
  </head>
  <body class="body" style="background-color: #87CEEB; margin: 0; width: 100%;">
    <table class="bodyTable" role="presentation" width="100%" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; background-color: #87CEEB; margin: 0;" bgcolor="#87CEEB">
      <tr>
        <td class="body__content" align="left" width="100%" valign="top" style="color: #000000; font-family: Helvetica,Arial,sans-serif; font-size: 16px; line-height: 20px;">
          <div class="container" style="margin: 0 auto; max-width: 600px; width: 100%;"> <!--[if mso | IE]>
            <table class="container__table__ie" role="presentation" border="0" cellpadding="0" cellspacing="0" style="margin-right: auto; margin-left: auto;width: 600px" width="600" align="center">
              <tr>
                <td> <![endif]-->
                  <table class="container__table" role="presentation" border="0" align="center" cellpadding="0" cellspacing="0" width="100%">
                    <tr class="container__row">
                      <td class="container__cell" width="100%" align="left" valign="top">
                        <marquee>
                          <h1 class="header h1" style="margin: 20px 0; line-height: 40px; font-family: Helvetica,Arial,sans-serif; color: #9400D3;">Explore the world of email! ๐Ÿ’Œ</h1>
                        </marquee>
                      </td>
                    </tr>
                  </table> <!--[if mso | IE]> </td>
              </tr>
            </table> <![endif]--> </div>
        </td>
      </tr>
    </table>
    <div style="display:none; white-space:nowrap; font-size:15px; line-height:0;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
  </body>
</html>

This causes improper syntax which email clients will not render the second element with content in it.

Align attribute for Column

The align attribute that the Column heml element sets on td is always left. Allow it to be passed as attrs so that contents can be easily centered. I'd be open to take this on, should it be considered a valuable use case.

Way to run via code/cli (without online editor)

It wasn't clear from the website, but is there a supported way of running this offline? I'd like to be able to run this as a local build process rather than have to copy/paste my source code into the web browser every time I need to change something.

List of supported clients?

Cool project. We're going through some email hell right now for a new set of templates and would love to use something like this next time.

What clients are being targeted... aol, yahoo, outlook 2010/2013/2016? How is this tested?

How to allow custom attributes

Hi,

First of all: love HEML!

Question: how to allow non-existent, custom attributes? For example:

<img src="https://placeholdit.co//i/540x200" lp-edit="" lp-highres="" lp-label="Image">

The attributes lp-edit, lp-highres and lp-label throws a validation error but i need them for internal usage.

Thanks in advance!

wrong formatting on clients

Hi,

Thank you for heml !
Email html is problematic and your work will certainly help a lot of people !

I am trying to use heml for formatting https://my-netdata.io (https://github.com/firehol/netdata) HTML emails.

I found a few formatting discrepancies among email clients, so I thought I should let you know.

The key problem is MS Office Outlook (check below). All the others are just imperfections.

Keep in mind I just found heml today, so please be gentle if I did it the wrong way.

Click to see my heml file
<heml>
  <head>
    <subject>badhost needs attention - inbound packets dropped ratio - net_packets.eth0</subject>
    <style>
      body { background: White; }
      h1 { color: Black; }
    </style>
  </head>
  <body>
    <container style="background: #eeeeee; padding: 0.5em;">
      <container style="background: White; color: Black; padding: 0;">
        <container style="background: #dddddd; color: Black; padding-left: 0.5em;  padding-right: 0.5em; width: calc(100% - 1em);">
          <p align="right">netdata alarm notification</p>
        </container>
        <container style="background: Orange; color: White; padding-left: 0.5em;  padding-right: 0.5em;  width: calc(100% - 1em);">
          <h2 align="center">
          badhost needs attention
          </h2>
        </container>
        <container style="background: White; color: Black; padding: 0.5em;   width: calc(100% - 1em);">
          <container style="padding: 0;">
            <h3>
              inbound packets dropped ratio = 0.14%
            </h3>
            <p>
              the ratio of inbound dropped packets vs the total number of received packets of the network interface, during the last 10 minutes
            </p>
            <container>
              <row>&nbsp;</row>
              <row>
                <column large="6" small="6">net_packets.eth0</column>
                <column>eth0</column>
                <column>WARNING</column>
              </row>
              <row  style="color: grey; font-size: 0.7em;">
                <column large="6" small="6">chart</column>
                <column>family</column>
                <column>severity</column>
              </row>
              <row>&nbsp;</row>
              <row>
                <column large="12" small="12">Sun Oct 29 12:19:16 EET 2017</column>
              </row>
              <row  style="color: grey; font-size: 0.7em;">
                <column large="12" small="12">date</column>
              </row>
            </container>
            <container>
              <button href="https://registry.my-netdata.io/goto-host-from-alarm.html?host=badhost&chart=net_packets.eth0&family=eth0&alarm=inbound_packets_dropped_ratio&alarm_unique_id=1499830026&alarm_id=1499800300&alarm_event_id=2047">view netdata dashboard</button>
            </container>
            <container style="font-size: 0.83em; color: grey;">
            &nbsp;
            </container>
            <hr style="color: lightgrey;" />
              <p align="center"  style="font-size: 0.7em; line-height: 1.3em; color: grey;">
              The source of this alarm is line <code>37@/etc/netdata/health.d/net.conf</code>
              <br/>
              (alarms are configurable, edit this file to adapt the alarm to your needs)
              <br/>&nbsp;<br/>
              Sent by netdata, the real-time performance and health monitoring,
              <br/>
              running on <code>box</code>.
              </p>
          </container>
        </container>
      </container>
    </container>
    <container>
      <marquee>badhost has 4 critical and 2 warning alarms ๐Ÿ’Œ</marquee>
    </container>
  </body>
</heml>

heml editor

This is what the heml editor shows:

image

gmail

Perfect. Marquee does not roll, but it shows up nicely.

screenshot from 2017-10-29 14-23-09

outlook (MS Office Professional Plus 2016)

The main problems are:

  1. sizing of containers is inaccurate (note the white space on the sides of the orange container)
  2. tables, buttons and marquee fonts have been reset to Times and black.
  3. line-height seems to be ignored.

image

office 365 web access

Perfect! Even the marquee rolls!

screenshot from 2017-10-29 14-43-59

evolution 3.24.6

Almost perfect. It seems to ignore font sizes in style.

image

thunderbird 52.4.0

Almost perfect. It seems to ignore font sizes and colors at the tables.

image

Apple iOS 11.0.3 mail

Seems perfect! Even marquee rolls.

Outlook for iOS

Almost perfect! If seems to ignore completely the empty lines at the table (i.e. <row>&nbsp;</row>).

img_4461

White space and comments causing errors

Hey, I'm having issues on build after going through a bunch of working code and adding comments and spacing everything out. Errors in Terminal (Mac OSX 10.13.2) as follows:

errors

Not sure what's going on, I made a bunch of edits from the working file to the broken file but most were just including breaks/whitespace to make the heml file more readable. I also added some empty classes (that weren't present in the <style> tags). I tested if these were the issue but they weren't. I'm thinking it's related to the whitespace and/or have two comments near each other (I was breaking up the modules of code in begin// //end comments). Sorry I don't have more time to debug (on work time) but hopefully this is long term helpful in improving heml.

newsletter-broken.txt
newsletter-working.txt

column auto-size don't work on small screens

I. While I was doing tests for write a turorial on spanish for my blog i found a error, column auto-size don't work correctly on small screens. I create 4 columns and set small parameter to 6, minus the last column:

<row>
  <column small="6">Columna 1</column>
  <column small="6">Columna 2</column>
  <column small="6">Columna 3</column>
  <column>Columna 4</column>
 </row>

The result is this:

Is a error or the result is like this?
Thanks in advance

Add a plaintext renderer

Being able to render to the email as a plain text file will great as it will let users write their content in a single place and get it in both of the formats they'll need to send out.

Braindump time

I'm not sure what the best interface for the package/cli is.
I'm leaning towards a flag on the CLI but I can also see it as a separate command. Maybe also an option for the develop command?

My initial thought is having an option of the file type to export to: either txt or eml which might point to more of a standalone command. (See #7)

For the implementation, I'm thinking a default plaintext function that gets added by the createElement that simply returns the content. For elements where that doesn't work, you override it. i.e. the img element returns the alt text and the image url.

Any and all suggestions are welcome! ๐Ÿ™Œ

Integrate charts

Hello !

Just like I did with mjml-chart I think this library deserve a chart support as well (knowing how painful it is for developer to integrate their own server-generated chart into email), what do you think? Should I make a PR for it or should it be a independent library?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.