pax_global_header00006660000000000000000000000064142052152210014504gustar00rootroot0000000000000052 comment=5af3b53f8c983d0ca634ff84a646ed083e9f9f73 bourbon-7.2.0/000077500000000000000000000000001420521522100131605ustar00rootroot00000000000000bourbon-7.2.0/.circleci/000077500000000000000000000000001420521522100150135ustar00rootroot00000000000000bourbon-7.2.0/.circleci/config.yml000066400000000000000000000011741420521522100170060ustar00rootroot00000000000000version: 2 jobs: build: docker: - image: circleci/ruby:2.6.5-node steps: - checkout - restore_cache: keys: - bourbon-bundle-v1-{{ checksum "bourbon.gemspec" }} - bourbon-bundle-v1- - run: name: Run Bundler command: bundle install --path vendor/bundle - save_cache: key: bourbon-bundle-v1-{{ checksum "bourbon.gemspec" }} paths: - vendor/bundle - run: name: Run the tests command: bundle exec rake - run: name: Parse SassDoc comments command: npm run sassdoc bourbon-7.2.0/.github/000077500000000000000000000000001420521522100145205ustar00rootroot00000000000000bourbon-7.2.0/.github/ISSUE_TEMPLATE.md000066400000000000000000000010521420521522100172230ustar00rootroot00000000000000 ## Description ## Steps to Reproduce 1. Step 1… 2. 3. ## Development Environment - Bourbon version: - Platform: - Link to the code repository: bourbon-7.2.0/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000005631420521522100203250ustar00rootroot00000000000000 ## Description ## Additional Information bourbon-7.2.0/.gitignore000066400000000000000000000001061420521522100151450ustar00rootroot00000000000000*gem *swp .DS_store .sass-cache _site Gemfile.lock npm-debug.log tmp/ bourbon-7.2.0/.hound.yml000066400000000000000000000001751420521522100151010ustar00rootroot00000000000000ruby: enabled: true scss: enabled: false stylelint: config_file: .stylelintrc.json enabled: true # version: 10.1.0 bourbon-7.2.0/.npmignore000066400000000000000000000003311420521522100151540ustar00rootroot00000000000000.circleci/ .github/ .gitignore .hound.yml .ruby-version .sass-cache .stylelintrc.json _site bin/ bourbon.gemspec CODE_OF_CONDUCT.md CONTRIBUTING.md features/ Gemfile Gemfile.lock lib/ pkg/ Rakefile RELEASING.md spec/ bourbon-7.2.0/.stylelintrc.json000066400000000000000000000000601420521522100165010ustar00rootroot00000000000000{ "extends": "@thoughtbot/stylelint-config" } bourbon-7.2.0/.tool-versions000066400000000000000000000000321420521522100157770ustar00rootroot00000000000000ruby 2.6.5 nodejs 12.16.1 bourbon-7.2.0/CHANGELOG.md000066400000000000000000000331761420521522100150030ustar00rootroot00000000000000# Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org). ## [7.2.0] - 2022-02-22 ### Changed - Revert "Replace `/` with `math.div` per Dart Sass 2.0.0 updates." [7.2.0]: https://github.com/thoughtbot/bourbon/compare/v7.1.0...v7.2.0 ## [7.1.0] - 2022-02-22 ### Changed - Replace `/` with `math.div` per Dart Sass 2.0.0 updates. [7.1.0]: https://github.com/thoughtbot/bourbon/compare/v7.0.0...v7.1.0 ## [7.0.0] - 2020-03-09 ### Added - Improved error handling of unsupported font file formats in the `font-face` mixin (supported formats are `woff2` and `woff`). - CSS `var()` and `env()` functions are now accepted as values in the `position` and `size` mixins. ### Changed - Updated `thor` from 0.x to 1.x ### Removed - The `font-face` mixin no longer supports `ttf`, `svg`, and `eot` font file formats. [7.0.0]: https://github.com/thoughtbot/bourbon/compare/v6.0.0...v7.0.0 ## [6.0.0] - 2019-07-10 ### Removed - Installation through Bower is no longer supported. - The sass gem (the deprecated Ruby Sass) is no longer a runtime dependency. [6.0.0]: https://github.com/thoughtbot/bourbon/compare/v5.1.0...v6.0.0 ## [5.1.0] - 2018-07-20 ### Added - `$font-stack-system` now includes the `system-ui` value. ### Changed - The `_gamma` function will use a `pow` function, if available. [5.1.0]: https://github.com/thoughtbot/bourbon/compare/v5.0.1...v5.1.0 ## [5.0.1] - 2018-06-08 ### Fixed - Fixed an issue that would cause Bourbon to not be found when using SassC. [5.0.1]: https://github.com/thoughtbot/bourbon/compare/v5.0.0...v5.0.1 ## [5.0.0] - 2018-01-05 Bourbon 5.0.0 is a major release with lots of changes and removals, which are documented below in each of the alpha and beta releases. There are no changes between v5.0.0-beta.8 and v5.0.0. For information on how to upgrade from v4 to v5, read our [migrating guide][migrating-guide]. [5.0.0]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.8...v5.0.0 [migrating-guide]: https://www.bourbon.io/docs/migrating-from-v4-to-v5/ ## [5.0.0-beta.8] - 2017-06-26 ### Added - A `style` property has been added to our `package.json`, which makes for easy importing when using npm-sass, sass-module-importer and others. ### Changed - The `triangle` mixin no longer has default argument values. The order of the arguments also changed: `$width` and `$height` now come before `$color`. ### Fixed - The `bourbon update` CLI command now works when Bourbon is installed using a custom path. - Fixed an issue that would cause Bourbon to not be found within Rails apps. [5.0.0-beta.8]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.7...v5.0.0.beta.8 ## [5.0.0-beta.7] - 2016-11-03 ### Added - Added `white-space: nowrap;` to the `hide-visually` mixin so that content renders on one line and is correctly pronounced by screen readers. You can read more about this in Jesse Beach’s article “[Beware smushed off-screen accessible text][smushed-text-article].” ### Changed - Removed the default values from the `$position` and `$coordinates` arguments for the `position` mixin. - Updated `contrast-switch` to calculate contrast based on the WCAG 2.0 specification. Please note that it is an approximation and we cannot guarantee full compliance, though all of our manual testing passed. - Renamed the `$coordinates` argument in the `position` mixin to `$box-edge-values`. - Updated `$font-stack-system` to include Avenir Next, Avenir, Lucida Grande, Helvetica, Noto, Franklin Gothic Medium, Century Gothic, and Liberation Sans. This follows [system-fonts] by Adam Morse. - The `word-break` property was removed from the `word-wrap` mixin and is no longer output. - Renamed the `word-wrap` mixin to `overflow-wrap` to align with the name change in the [CSS spec]. [smushed-text-article]: https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe#.l4hkljiza [system-fonts]: https://github.com/mrmrs/css-system-fonts [CSS spec]: https://drafts.csswg.org/css-text-3/#propdef-overflow-wrap [5.0.0-beta.7]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.6...v5.0.0.beta.7 ## [5.0.0-beta.6] - 2016-06-06 ### Added - Added a `value-prefixer` mixin for generating vendor prefixes on values. [5.0.0-beta.6]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.5...v5.0.0.beta.6 ## [5.0.0-beta.5] - 2016-03-23 ### Fixed - Fixed a Sass load path issue that would intermittently break the importing of Bourbon in Rails apps. ### Changed - Swapped the order of the `$file-formats` and `$asset-pipeline` arguments in the `font-face` mixin, so that `$asset-pipeline` is last (because it has a default and is likely used the least). [5.0.0-beta.5]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.4...v5.0.0.beta.5 ## [5.0.0-beta.4] - 2016-03-11 ### Fixed - We accidentally published `5.0.0.beta.3` as a stable release on npm, rather than a prerelease. We’ve unpublished that to go back to `4.2.6` on the stable channel. [5.0.0-beta.4]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.3...v5.0.0.beta.4 ## [5.0.0-beta.3] - 2016-03-04 ### Fixed - Added `pathname` requirement to fix install issues. [5.0.0-beta.3]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.2...v5.0.0.beta.3 ## [5.0.0-beta.2] - 2016-03-03 ### Added - Added global settings for the `contrast-switch` mixin: `contrast-switch-dark-color` & `contrast-switch-light-color`. - Added the `triangle` mixin back, but note that it’s been refactored and the arguments have changed. See [43e5a90]. ### Changed - Switched argument names in `contrast-switch`; `$dark-color` is now `$light-color` and `$light-color` is now `$dark-color`. - The `is-light` function is now private. ### Removed - Dropped support for Ruby on Rails versions older than 4.2. - Dropped support for LibSass versions older than 3.3. [5.0.0-beta.2]: https://github.com/thoughtbot/bourbon/compare/v5.0.0.beta.1...v5.0.0.beta.2 [43e5a90]: https://github.com/thoughtbot/bourbon/commit/43e5a90e7e624d2977731030ccdb36b3c2e460d9 ## [5.0.0-beta.1] - 2016-02-09 ### Added - Added a `contrast-switch` function that switches between two colors based on the lightness of a another color. Great for building button styles. - Added an `$all-text-inputs-invalid` variable to target the `:invalid` pseudo-class on all text-based inputs. - The `ellipsis` mixin now takes a `$display` argument. - Added a font stack for system fonts: `$font-stack-system`. - Added a `hide-visually` mixin that hides an element visually while still allowing the content to be accessible to assistive technology, e.g. screen readers. - The `font-face` mixin now allows additional CSS properties to be included in its block, which will output as part of the `@font-face` declaration. See [2356719]. ### Changed - The global default for the `modular-scale` ratio is now set to `$major-third` (`1.25`), instead of `$perfect-fourth` (`1.333`). - All font stack variables are now prefixed with `$font-stack-`, e.g. `$font-stack-helvetica`. - Global settings are now set via a `$bourbon` map, instead of variables. See [4e43c2d]. - The `clearfix` mixin now uses `block` display, instead of `table`. ### Removed - The `$weight` and `$style` arguments in the `font-face` mixin have been removed. Instead, you can now include these—along with other CSS properties—within the mixin block and they’ll be output as part of the `@font-face` declaration. [5.0.0-beta.1]: https://github.com/thoughtbot/bourbon/compare/da4451e...v5.0.0.beta.1 [2356719]: https://github.com/thoughtbot/bourbon/commit/235671948ef3a9c343c4391d250082a0373c8d83 [4e43c2d]: https://github.com/thoughtbot/bourbon/commit/4e43c2d7507999b539771bdc1b3733b18b3c1883 ## [5.0.0.alpha.0] - 2015-08-21 ### Added - Added a `$global-font-file-formats` setting to globally set the file formats for the `font-face` mixin. The default is `("ttf", "woff2", "woff")`. - Add `$consolas`, `$courier-new` and `$monaco` variables (these replace the removed `$monospace` variable). ### Changed - Removed the type selectors in `$all-text-inputs` and `$all-buttons` to reduce specificity. - Font stacks have been modernized. See [3cf106a]. - The `strip-units` function is now `strip-unit`. - The `size` mixin now requires a comma-separated argument list, e.g. `@include size(1em, 2em);`. ### Removed - All vendor prefixing mixins have been removed. These include: - `align-items` - `animation-delay` - `animation-direction` - `animation-duration` - `animation-fill-mode` - `animation-iteration-count` - `animation-name` - `animation-play-state` - `animation-timing-function` - `animation` - `appearance` - `backface-visibility` - `background-image` - `background` - `border-image` - `calc` - `column-count` - `column-fill` - `column-gap` - `column-rule-color` - `column-rule-style` - `column-rule-width` - `column-rule` - `column-span` - `column-width` - `columns` - `display` - `filter` - `flex-direction` - `flex` - `font-feature-settings` - `hidpi` - `hyphens` - `image-rendering` - `justify-content` - `keyframes` - `linear-gradient` - `perspective` - `placeholder` - `radial-gradient` - `selection` - `text-decoration-color` - `text-decoration-line` - `text-decoration-style` - `text-decoration` - `transform-origin` - `transform-style` - `transform` - `transition-delay` - `transition-duration` - `transition-property` - `transition-timing-function` - `transition` - `user-select` - For prefixing, we recommend using a more robust and maintainable solution like [Autoprefixer]. - The `$global-prefixes` setting has been removed and the `prefixer` mixin has been refactored and no longer uses it. - The `$monospace` variable has been removed. - The `box-sizing` mixin has been removed. - The `button` mixin has been removed. - The `em` and `rem` functions have been removed. - [See the discussion on why these were removed][em-rem-issue]. - The `flex-grid` function has been removed. - The `flex-gutter` function has been removed. - The `golden-ratio` function has been removed. - The `grid-width` function has been removed. - The `inline-block` mixin has been removed. - The `retina-image` mixin has been removed. - The `triangle` mixin has been removed. [5.0.0.alpha.0]: https://github.com/thoughtbot/bourbon/compare/v4.3.4...v5.0.0.alpha.0 [3cf106a]: https://github.com/thoughtbot/bourbon/commit/3cf106a210c1bae7765e6193f62310f95fdee0b7 [Autoprefixer]: https://github.com/postcss/autoprefixer [em-rem-issue]: https://github.com/thoughtbot/bourbon/issues/691 ## [4.3.4] - 2017-04-01 ### Changed - Updated deprecation warning message for `strip-units`. ([#1016]) [4.3.4]: https://github.com/thoughtbot/bourbon/compare/v4.3.3...v4.3.4 [#1016]: https://github.com/thoughtbot/bourbon/pull/1016 ## [4.3.3] - 2017-02-23 ### Fixed - Internal Bourbon deprecation warnings for `is-size` and `is-length` will no longer be thrown when using the `size` mixin. [4.3.3]: https://github.com/thoughtbot/bourbon/compare/v4.3.2...v4.3.3 ## [4.3.2] - 2017-02-10 ### Fixed - Internal Bourbon deprecation warnings for `unpack` and `is-length` will no longer be thrown when using the `position` mixin. ([#1004]) [4.3.2]: https://github.com/thoughtbot/bourbon/compare/v4.3.1...v4.3.2 [#1004]: https://github.com/thoughtbot/bourbon/pull/1004 ## [4.3.1] - 2017-02-07 ### Fixed - Internal Bourbon deprecation warnings will no longer be thrown. ([#1002]) [4.3.1]: https://github.com/thoughtbot/bourbon/compare/v4.3.0...v4.3.1 [#1002]: https://github.com/thoughtbot/bourbon/pull/1002 ## [4.3.0] - 2017-02-03 ### Added - Added deprecation warnings for features that will be removed in 5.0.0. Please reference our [change log], which includes a list of these changes and removals. ([#891]) [4.3.0]: https://github.com/thoughtbot/bourbon/compare/v4.2.7...v4.3.0 [change log]: https://github.com/thoughtbot/bourbon/blob/master/CHANGELOG.md [#891]: https://github.com/thoughtbot/bourbon/pull/891 ## [4.2.7] - 2016-04-15 ### Fixed - Fixed a Sass deprecation warning when using the `background` and `background-image` mixins. [4.2.7]: https://github.com/thoughtbot/bourbon/compare/v4.2.6...v4.2.7 ## [4.2.6] - 2015-10-17 ### Fixed - Fixed a bug with eyeglass support. [4.2.6]: https://github.com/thoughtbot/bourbon/compare/v4.2.5...v4.2.6 ## [4.2.5] - 2015-09-17 ## Added - Support for [eyeglass]. [4.2.5]: https://github.com/thoughtbot/bourbon/compare/v4.2.4...v4.2.5 [eyeglass]: http://eyeglass.rocks/ ## [4.2.4] - 2015-08-21 ## Changed - [`$all-text-inputs`] now accounts for `input`’s that don’t have a `type` attribute specified, as they default to `type="text"`. (https://github.com/thoughtbot/bourbon/commit/8e7e36e01c47194d83951fb6315c5b26a008f2b7) - The [`bourbon` npm package] now has a proper load path. (https://github.com/thoughtbot/bourbon/commit/36c2d5576f1fe9dbdfd9543e15064c5a4a16343e) [4.2.4]: https://github.com/thoughtbot/bourbon/compare/v4.2.3...v4.2.4 [`$all-text-inputs`]: http://bourbon.io/docs/#text-inputs [`bourbon` npm package]: https://npmjs.com/package/bourbon ## [4.2.3] - 2015-05-18 ## Fixed - Fixed an issue with the `font-face` mixin outputting an extraneous commas when using LibSass set to compressed output. [4.2.3]: https://github.com/thoughtbot/bourbon/compare/v4.2.2...v4.2.3 ## [4.2.2] - 2015-04-01 ## Fixed - The `flex-direction` mixin now properly outputs box-direction (old syntax) if set to normal. [4.2.2]: https://github.com/thoughtbot/bourbon/compare/v4.2.1...v4.2.2 ## [4.2.1] - 2015-02-23 ## Fixed - Restored the `app/` directory for npm. [4.2.1]: https://github.com/thoughtbot/bourbon/compare/v4.2.0...v4.2.1 bourbon-7.2.0/CODE_OF_CONDUCT.md000066400000000000000000000002631420521522100157600ustar00rootroot00000000000000# Code of Conduct By participating in this project, you agree to abide by the [thoughtbot code of conduct][tb-coc]. [tb-coc]: https://thoughtbot.com/open-source-code-of-conduct bourbon-7.2.0/CONTRIBUTING.md000066400000000000000000000060621420521522100154150ustar00rootroot00000000000000# Contributing ## Governance We, the maintainers of Bourbon, would like you to know what to expect when interacting with this project's repo. As a *user* of Bourbon, you can expect care to be put into official releases. The maintainers cannot guarantee that the `master` branch will have the same API forever. If you *review pull requests* or *comment on issues*, you are expected to abide by our [code of conduct]. As a *contributor*, submitting a pull request or opening an issue, you can expect an initial response from a maintainer within two weeks. The maintainers cannot guarantee that we will accept all feature requests, and may fix bugs in ways other than how the contributor suggests. You are expected to abide by our [code of conduct]. As a *maintainer*, you can merge pull requests (even your own) at any time. Maintainers are encouraged to request code review from others at thoughtbot or any relevant peers. You are expected to abide by our [code of conduct]. Only members of thoughtbot may be maintainers. ## Pull Requests We welcome pull requests from everyone. Here’s a quick guide: 1. [Fork the repository][fork] and clone to your machine. 1. Run `bundle install`. 1. Make sure the tests pass: `bundle exec rake`. 1. Make your change, following our style guide (below). Write tests. Make sure the tests pass: `bundle exec rake`. 1. Write a [good commit message][commit]. Push to your fork and [submit a pull request][pr]. If [Hound] catches style violations, fix them. 1. Wait for us. We try to at least comment on pull requests within one week. We may suggest changes. [fork]: https://github.com/thoughtbot/bourbon/fork [commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html [pr]: https://github.com/thoughtbot/bourbon/compare/ [hound]: https://houndci.com ### Style Guide Bourbon uses Sass’s SCSS syntax and aligns to [thoughtbot’s style guides][sass guide]. High-level notes: - Use two-space indentation (no tabs). - Use double quotation marks. - Use hyphens when naming things: `hide-visually` rather than `hide_visually` or `hideVisually`. - Use one space between property and value: `width: 20px` rather than `width:20px`. - Names should be descriptive and aim for clarity over brevity: `$all-text-inputs-hover` rather than `$inputshover` or `$alltxthvr`. - Order CSS declarations alphabetically. - No trailing whitespace. We use [stylelint][stylelint] to lint our CSS and Sass. It's configuration can be found in `.stylelintrc.json`. You can run stylelint from the command line via `npm run stylelint`, or integrate it with your text editor. [sass guide]: https://github.com/thoughtbot/guides [stylelint]: https://stylelint.io/ ### Documentation We use [SassDoc] to document Bourbon. [Annotations] should be ordered: - `@link` - `@see` - `@type` - `@argument` - `@content` - `@property` - `@return` - `@example` - `@require` - `@access` - `@since` - `@author` - `@deprecated` - `@todo` [SassDoc]: http://sassdoc.com [Annotations]: http://sassdoc.com/annotations [code of conduct]: https://thoughtbot.com/open-source-code-of-conduct bourbon-7.2.0/Gemfile000066400000000000000000000000471420521522100144540ustar00rootroot00000000000000source "https://rubygems.org" gemspec bourbon-7.2.0/LICENSE.md000066400000000000000000000021401420521522100145610ustar00rootroot00000000000000The MIT License (MIT) Copyright © 2011-2020 [thoughtbot, inc.](http://thoughtbot.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. bourbon-7.2.0/README.md000066400000000000000000000130701420521522100144400ustar00rootroot00000000000000[Bourbon logo][Bourbon] [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) ## A Lightweight Sass Tool Set [Bourbon] is a library of [Sass] mixins and functions that are designed to make you a more efficient style sheet author. It is… - Dependency-free: Bourbon is pure Sass. - Human-readable: We aim for clarity over brevity. - Lightweight: Zero output post-install and has no visual opinion. [Bourbon]: https://www.bourbon.io/ [Sass]: http://sass-lang.com ### Helpful Links - [Documentation](https://www.bourbon.io/docs/latest/) - [Change log](CHANGELOG.md) - [Twitter](https://twitter.com/bourbonsass) - [Stack Overflow](https://stackoverflow.com/questions/tagged/bourbon) ## Table of Contents - [Requirements](#requirements) - [Installation](#installation) - [Command Line Interface](#command-line-interface) - [Browser Support](#browser-support) - [Contributing](#contributing) - [License](#license) - [About](#about) ## Requirements - [Sass] 3.4+ or [LibSass] 3.3+ [Sass]: https://github.com/sass/sass [LibSass]: https://github.com/sass/libsass ## Installation 1. Install the Bourbon gem using the [RubyGems] package manager: ```bash gem install bourbon ``` 1. Install the Bourbon library into the current directory: ```bash bourbon install ``` **Pro Tip:** You can target installation into a specific directory using the `path` flag: ```bash bourbon install --path my/custom/path/ ``` 1. Import Bourbon at the beginning of your stylesheet: ```scss @import "bourbon/bourbon"; ``` It’s not recommended that you modify Bourbon’s files directly as it will make updating to future versions difficult, by overwriting your custom changes or causing merge conflicts. [RubyGems]: https://rubygems.org ### Installation for Ruby on Rails 4.2+ 1. Add Bourbon to your Gemfile: ```ruby gem "bourbon" ``` 1. Then run: ```bash bundle install ``` 1. Restart your server and rename `application.css` to `application.scss`: ```bash mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss ``` 1. Delete _all_ Sprockets directives in `application.scss` (`require`, `require_tree` and `require_self`) and use Sass’s native `@import` instead ([why?][sass-import]). 1. Import Bourbon at the beginning of `application.scss`. Any project styles that utilize Bourbon’s features must be imported after Bourbon. ```scss @import "bourbon"; @import "home"; @import "users"; ``` [sass-import]: https://content.pivotal.io/blog/structure-your-sass-files-with-import ### Installing with npm and using a Node-based asset pipeline 1. Add Bourbon as a dependency: ```bash npm install --save bourbon ``` 1. If you’re using [eyeglass], skip to Step 3. Otherwise, you’ll need to add Bourbon to your node-sass `includePaths` option. `require("bourbon").includePaths` is an array of directories that you should pass to node-sass. How you do this depends on how node-sass is integrated into your project. 1. Import Bourbon into your Sass files: ```scss @import "bourbon"; ``` [eyeglass]: https://github.com/sass-eyeglass/eyeglass ### Installing older versions of Bourbon 1. Uninstall any Bourbon gem versions you already have: ```bash gem uninstall bourbon ``` 1. Reinstall the Bourbon gem, using the `-v` flag to specify the version you need: ```bash gem install bourbon -v 4.2.7 ``` 1. Follow the [instructions above](#installation) to install Bourbon into your project. ## Command Line Interface ```bash bourbon [options] ``` ### Options | Option | Description | | :---------------- | :------------------------ | | `-h`, `--help` | Show help | | `-v`, `--version` | Show the version number | | `--path` | Specify a custom path | | `--force` | Force install (overwrite) | ### Commands | Command | Description | | :---------------- | :---------------------------------------------------- | | `bourbon install` | Install Bourbon into the current directory | | `bourbon update` | Overwrite and update Bourbon in the current directory | | `bourbon help` | Show help | ## Browser Support Bourbon supports Internet Explorer 11+ and the latest versions of Chrome, Firefox, Safari, and Edge. ## Contributing See the [contributing] document. Thank you, [contributors]! [contributing]: CONTRIBUTING.md [contributors]: https://github.com/thoughtbot/bourbon/graphs/contributors ## License Bourbon is copyright © 2011-2020 [thoughtbot, inc.][thoughtbot] It is free software, and may be redistributed under the terms specified in the [license]. [license]: LICENSE.md ## About Bourbon is maintained by the thoughtbot design team. It is funded by [thoughtbot, inc.][thoughtbot] and the names and logos for thoughtbot are trademarks of thoughtbot, inc. [![thoughtbot][thoughtbot-logo]][thoughtbot] We love open-source software! See [our other projects][community] or [hire us][hire] to design, develop, and grow your product. [thoughtbot]: https://thoughtbot.com?utm_source=github [thoughtbot-logo]: http://presskit.thoughtbot.com/images/thoughtbot-logo-for-readmes.svg [community]: https://thoughtbot.com/community?utm_source=github [hire]: https://thoughtbot.com/hire-us?utm_source=github bourbon-7.2.0/RELEASING.md000066400000000000000000000021571420521522100150200ustar00rootroot00000000000000# Releasing 1. Update the version number in these places: - `lib/bourbon/version.rb` - `core/_bourbon.scss` - `package.json` 1. Update `CHANGELOG.md`. We follow the guidelines from [Keep a Changelog][keep-a-changelog]. 1. Commit changes. Use the convention “Bourbon vX.X.X” in your commit message. There shouldn’t be code changes, and thus CI doesn’t need to run. 1. Run `bundle exec rake release`, which tags the release, pushes the tag to GitHub, and pushes the gem to RubyGems.org. 1. Run `npm publish`, which pushes the new version to npm’s registry (if releasing a pre-release, run `npm publish --tag beta`). 1. Draft a [new GitHub release][github-release]. 1. Tweet about the release from the [@bourbonsass] Twitter account, e.g. > We’ve released Bourbon {release_title}: {release_link} 1. Re-generate and publish the [documentation website][website]. [keep-a-changelog]: https://keepachangelog.com/en/1.0.0/ [github-release]: https://github.com/thoughtbot/bourbon/releases/new [@bourbonsass]: https://twitter.com/bourbonsass [website]: https://github.com/thoughtbot/bourbon.io bourbon-7.2.0/Rakefile000066400000000000000000000003171420521522100146260ustar00rootroot00000000000000require "bundler" require "cucumber/rake/task" require "rspec/core/rake_task" Bundler::GemHelper.install_tasks Cucumber::Rake::Task.new RSpec::Core::RakeTask.new(:spec) task :default => [:spec, :cucumber] bourbon-7.2.0/bin/000077500000000000000000000000001420521522100137305ustar00rootroot00000000000000bourbon-7.2.0/bin/bourbon000077500000000000000000000001451420521522100153240ustar00rootroot00000000000000#!/usr/bin/env ruby require File.dirname(__FILE__) + "/../lib/bourbon.rb" Bourbon::Generator.start bourbon-7.2.0/bourbon.gemspec000066400000000000000000000023661420521522100162020ustar00rootroot00000000000000$:.push File.expand_path("../lib", __FILE__) require "bourbon/version" Gem::Specification.new do |s| s.add_development_dependency "aruba", "~> 0.14" s.add_development_dependency "css_parser", "~> 1.4" s.add_development_dependency "cucumber", "~> 2.0" s.add_development_dependency "rake" s.add_development_dependency "rspec", "~> 3.4" s.add_development_dependency "sass" s.add_runtime_dependency "thor", "~> 1.0" s.authors = [ "Christian Reuter", "Damian Galarza", "Gabe Berke-Williams", "Hugo Giraudel", "Joshua Ogle", "Kyle Fiedler", "Phil LaPier", "Reda Lemeden", "Tyson Gach", "Will McMahan" ] s.description = <<-DESC Bourbon is a library of pure Sass mixins and functions that are designed to make you a more efficient developer. DESC s.email = "design+bourbon@thoughtbot.com" s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.files = `git ls-files`.split("\n") s.homepage = "https://www.bourbon.io/" s.license = "MIT" s.name = "bourbon" s.platform = Gem::Platform::RUBY s.require_paths = ["lib"] s.summary = "A lightweight Sass tool set." s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.version = Bourbon::VERSION end bourbon-7.2.0/core/000077500000000000000000000000001420521522100141105ustar00rootroot00000000000000bourbon-7.2.0/core/_bourbon.scss000066400000000000000000000035441420521522100166200ustar00rootroot00000000000000// Bourbon 7.2.0 // https://www.bourbon.io/ // Copyright 2011-2020 thoughtbot, inc. // MIT License @import "bourbon/helpers/buttons-list"; @import "bourbon/helpers/scales"; @import "bourbon/helpers/text-inputs-list"; @import "bourbon/settings/settings"; @import "bourbon/validators/contains"; @import "bourbon/validators/contains-falsy"; @import "bourbon/validators/is-color"; @import "bourbon/validators/is-length"; @import "bourbon/validators/is-number"; @import "bourbon/validators/is-size"; @import "bourbon/utilities/assign-inputs"; @import "bourbon/utilities/compact-shorthand"; @import "bourbon/utilities/directional-property"; @import "bourbon/utilities/fetch-bourbon-setting"; @import "bourbon/utilities/font-source-declaration"; @import "bourbon/utilities/gamma"; @import "bourbon/utilities/lightness"; @import "bourbon/utilities/contrast-ratio"; @import "bourbon/utilities/unpack-shorthand"; @import "bourbon/library/border-color"; @import "bourbon/library/border-radius"; @import "bourbon/library/border-style"; @import "bourbon/library/border-width"; @import "bourbon/library/buttons"; @import "bourbon/library/clearfix"; @import "bourbon/library/contrast-switch"; @import "bourbon/library/ellipsis"; @import "bourbon/library/font-face"; @import "bourbon/library/font-stacks"; @import "bourbon/library/hide-text"; @import "bourbon/library/hide-visually"; @import "bourbon/library/margin"; @import "bourbon/library/modular-scale"; @import "bourbon/library/overflow-wrap"; @import "bourbon/library/padding"; @import "bourbon/library/position"; @import "bourbon/library/prefixer"; @import "bourbon/library/shade"; @import "bourbon/library/size"; @import "bourbon/library/strip-unit"; @import "bourbon/library/text-inputs"; @import "bourbon/library/timing-functions"; @import "bourbon/library/tint"; @import "bourbon/library/triangle"; @import "bourbon/library/value-prefixer"; bourbon-7.2.0/core/bourbon/000077500000000000000000000000001420521522100155565ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/helpers/000077500000000000000000000000001420521522100172205ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/helpers/_buttons-list.scss000066400000000000000000000003061420521522100227220ustar00rootroot00000000000000@charset "UTF-8"; /// A list of all HTML button elements. /// /// @type list /// /// @access private $_buttons-list: ( "button", "[type='button']", "[type='reset']", "[type='submit']", ); bourbon-7.2.0/core/bourbon/helpers/_scales.scss000066400000000000000000000010031420521522100215200ustar00rootroot00000000000000@charset "UTF-8"; //// /// Pre-defined scales for use with the `modular-scale` function. /// /// @type number (unitless) /// /// @see {function} modular-scale //// $minor-second: 1.067; $major-second: 1.125; $minor-third: 1.2; $major-third: 1.25; $perfect-fourth: 1.333; $augmented-fourth: 1.414; $perfect-fifth: 1.5; $minor-sixth: 1.6; $golden: 1.618; $major-sixth: 1.667; $minor-seventh: 1.778; $major-seventh: 1.875; $octave: 2; $major-tenth: 2.5; $major-eleventh: 2.667; $major-twelfth: 3; $double-octave: 4; bourbon-7.2.0/core/bourbon/helpers/_text-inputs-list.scss000066400000000000000000000007121420521522100235310ustar00rootroot00000000000000@charset "UTF-8"; /// A list of all _text-based_ HTML inputs. /// /// @type list /// /// @access private $_text-inputs-list: ( "[type='color']", "[type='date']", "[type='datetime']", "[type='datetime-local']", "[type='email']", "[type='month']", "[type='number']", "[type='password']", "[type='search']", "[type='tel']", "[type='text']", "[type='time']", "[type='url']", "[type='week']", "input:not([type])", "textarea", ); bourbon-7.2.0/core/bourbon/library/000077500000000000000000000000001420521522100172225ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/library/_border-color.scss000066400000000000000000000012531420521522100226500ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting `border-color` on specific /// edges of a box. Use a `null` value to “skip” edges of the box with standard /// CSS shorthand. /// /// @argument {list} $values /// List of colors; accepts CSS shorthand. /// /// @example scss /// .element { /// @include border-color(#a60b55 #76cd9c null #e8ae1a); /// } /// /// // CSS Output /// .element { /// border-left-color: #e8ae1a; /// border-right-color: #76cd9c; /// border-top-color: #a60b55; /// } /// /// @require {mixin} _directional-property @mixin border-color($values) { @include _directional-property(border, color, $values); } bourbon-7.2.0/core/bourbon/library/_border-radius.scss000066400000000000000000000037161420521522100230270ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting `border-radius` on both the /// top-left and top-right of a box. /// /// @argument {number (with unit)} $radii /// /// @example scss /// .element { /// @include border-top-radius(4px); /// } /// /// // CSS Output /// .element { /// border-top-left-radius: 4px; /// border-top-right-radius: 4px; /// } @mixin border-top-radius($radii) { border-top-left-radius: $radii; border-top-right-radius: $radii; } /// Provides a concise, one-line method for setting `border-radius` on both the /// top-right and bottom-right of a box. /// /// @argument {number (with unit)} $radii /// /// @example scss /// .element { /// @include border-right-radius(3px); /// } /// /// // CSS Output /// .element { /// border-bottom-right-radius: 3px; /// border-top-right-radius: 3px; /// } @mixin border-right-radius($radii) { border-bottom-right-radius: $radii; border-top-right-radius: $radii; } /// Provides a concise, one-line method for setting `border-radius` on both the /// bottom-left and bottom-right of a box. /// /// @argument {number (with unit)} $radii /// /// @example scss /// .element { /// @include border-bottom-radius(2px); /// } /// /// // CSS Output /// .element { /// border-bottom-left-radius: 2px; /// border-bottom-right-radius: 2px; /// } @mixin border-bottom-radius($radii) { border-bottom-left-radius: $radii; border-bottom-right-radius: $radii; } /// Provides a concise, one-line method for setting `border-radius` on both the /// top-left and bottom-left of a box. /// /// @argument {number (with unit)} $radii /// /// @example scss /// .element { /// @include border-left-radius(1px); /// } /// /// // CSS Output /// .element { /// border-bottom-left-radius: 1px; /// border-top-left-radius: 1px; /// } @mixin border-left-radius($radii) { border-bottom-left-radius: $radii; border-top-left-radius: $radii; } bourbon-7.2.0/core/bourbon/library/_border-style.scss000066400000000000000000000012011420521522100226630ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting `border-style` on specific /// edges of a box. Use a `null` value to “skip” edges of the box with standard /// CSS shorthand. /// /// @argument {list} $values /// List of border styles; accepts CSS shorthand. /// /// @example scss /// .element { /// @include border-style(dashed null solid); /// } /// /// // CSS Output /// .element { /// border-bottom-style: solid; /// border-top-style: dashed; /// } /// /// @require {mixin} _directional-property @mixin border-style($values) { @include _directional-property(border, style, $values); } bourbon-7.2.0/core/bourbon/library/_border-width.scss000066400000000000000000000011711420521522100226500ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting `border-width` on specific /// edges of a box. Use a `null` value to “skip” edges of the box with standard /// CSS shorthand. /// /// @argument {list} $values /// List of border widths; accepts CSS shorthand. /// /// @example scss /// .element { /// @include border-width(1em null 20px); /// } /// /// // CSS Output /// .element { /// border-bottom-width: 20px; /// border-top-width: 1em; /// } /// /// @require {mixin} _directional-property @mixin border-width($values) { @include _directional-property(border, width, $values); } bourbon-7.2.0/core/bourbon/library/_buttons.scss000066400000000000000000000037601420521522100217620ustar00rootroot00000000000000@charset "UTF-8"; //// /// @type list /// /// @require {function} _assign-inputs /// /// @require {variable} $_buttons-list //// /// A list of all HTML button elements. Please note that you must interpolate /// the variable (`#{}`) to use it as a selector. /// /// @example scss /// #{$all-buttons} { /// background-color: #f00; /// } /// /// // CSS Output /// button, /// [type='button'], /// [type='reset'], /// [type='submit'] { /// background-color: #f00; /// } $all-buttons: _assign-inputs($_buttons-list); /// A list of all HTML button elements with the `:active` pseudo-class applied. /// Please note that you must interpolate the variable (`#{}`) to use it as a /// selector. /// /// @example scss /// #{$all-buttons-active} { /// background-color: #00f; /// } /// /// // CSS Output /// button:active, /// [type='button']:active, /// [type='reset']:active, /// [type='submit']:active { /// background-color: #00f; /// } $all-buttons-active: _assign-inputs($_buttons-list, active); /// A list of all HTML button elements with the `:focus` pseudo-class applied. /// Please note that you must interpolate the variable (`#{}`) to use it as a /// selector. /// /// @example scss /// #{$all-buttons-focus} { /// background-color: #0f0; /// } /// /// // CSS Output /// button:focus, /// [type='button']:focus, /// [type='reset']:focus, /// [type='submit']:focus { /// background-color: #0f0; /// } $all-buttons-focus: _assign-inputs($_buttons-list, focus); /// A list of all HTML button elements with the `:hover` pseudo-class applied. /// Please note that you must interpolate the variable (`#{}`) to use it as a /// selector. /// /// @example scss /// #{$all-buttons-hover} { /// background-color: #0f0; /// } /// /// // CSS Output /// button:hover, /// [type='button']:hover, /// [type='reset']:hover, /// [type='submit']:hover { /// background-color: #0f0; /// } $all-buttons-hover: _assign-inputs($_buttons-list, hover); bourbon-7.2.0/core/bourbon/library/_clearfix.scss000066400000000000000000000006351420521522100220570ustar00rootroot00000000000000@charset "UTF-8"; /// Provides an easy way to include a clearfix for containing floats. /// /// @link https://goo.gl/yP5hiZ /// /// @example scss /// .element { /// @include clearfix; /// } /// /// // CSS Output /// .element::after { /// clear: both; /// content: ""; /// display: block; /// } @mixin clearfix { &::after { clear: both; content: ""; display: block; } } bourbon-7.2.0/core/bourbon/library/_contrast-switch.scss000066400000000000000000000050241420521522100234130ustar00rootroot00000000000000@charset "UTF-8"; /// Switches between two colors based on the contrast to another color. It’s /// like a [ternary operator] for color contrast and can be useful for building /// a button system. /// /// The calculation of the contrast ratio is based on the [WCAG 2.0 /// specification]. However, we cannot guarantee full compliance, though all of /// our manual testing passed. /// /// [ternary operator]: https://goo.gl/ccfLqi /// [WCAG 2.0 specification]: https://goo.gl/zhQuYA /// /// @argument {color} $base-color /// The color to evaluate lightness against. /// /// @argument {color} $dark-color [#000] /// The color to be output when `$base-color` is light. Can also be set /// globally using the `contrast-switch-dark-color` key in the /// Bourbon settings. /// /// @argument {color} $light-color [#fff] /// The color to be output when `$base-color` is dark. Can also be set /// globally using the `contrast-switch-light-color` key in the /// Bourbon settings. /// /// @return {color} /// /// @example scss /// .element { /// color: contrast-switch(#bae6e6); /// } /// /// // CSS Output /// .element { /// color: #000; /// } /// /// @example scss /// .element { /// $button-color: #2d72d9; /// background-color: $button-color; /// color: contrast-switch($button-color, #222, #eee); /// } /// /// // CSS Output /// .element { /// background-color: #2d72d9; /// color: #eee; /// } /// /// @require {function} _fetch-bourbon-setting /// /// @require {function} _is-color /// /// @require {function} _contrast-ratio /// /// @since 5.0.0 @function contrast-switch( $base-color, $dark-color: _fetch-bourbon-setting("contrast-switch-dark-color"), $light-color: _fetch-bourbon-setting("contrast-switch-light-color") ) { @if not _is-color($base-color) { @error "`#{$base-color}` is not a valid color for the `$base-color` " + "argument in the `contrast-switch` function."; } @else if not _is-color($dark-color) { @error "`#{$dark-color}` is not a valid color for the `$dark-color` " + "argument in the `contrast-switch` function."; } @else if not _is-color($light-color) { @error "`#{$light-color}` is not a valid color for the `$light-color` " + "argument in the `contrast-switch` function."; } @else { $-contrast-to-dark: _contrast-ratio($base-color, $dark-color); $-contrast-to-light: _contrast-ratio($base-color, $light-color); $-prefer-dark: $-contrast-to-dark >= $-contrast-to-light; @return if($-prefer-dark, $dark-color, $light-color); } } bourbon-7.2.0/core/bourbon/library/_ellipsis.scss000066400000000000000000000014171420521522100221050ustar00rootroot00000000000000@charset "UTF-8"; /// Truncates text and adds an ellipsis to represent overflow. /// /// @argument {number} $width [100%] /// The `max-width` for the string to respect before being truncated. /// /// @argument {string} $display [inline-block] /// Sets the display-value of the element. /// /// @example scss /// .element { /// @include ellipsis; /// } /// /// // CSS Output /// .element { /// display: inline-block; /// max-width: 100%; /// overflow: hidden; /// text-overflow: ellipsis; /// white-space: nowrap; /// word-wrap: normal; /// } @mixin ellipsis( $width: 100%, $display: inline-block ) { display: $display; max-width: $width; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; word-wrap: normal; } bourbon-7.2.0/core/bourbon/library/_font-face.scss000066400000000000000000000040321420521522100221170ustar00rootroot00000000000000@charset "UTF-8"; /// Generates an `@font-face` declaration. You can choose the specific file /// formats you need to output; the mixin supports `woff2` /// and `woff`. The mixin also supports usage with the Rails Asset Pipeline, /// which you can enable per use, or globally in the `$bourbon()` settings. /// /// @argument {string} $font-family /// /// @argument {string} $file-path /// /// @argument {string | list} $file-formats [("woff2", "woff")] /// List of the font file formats to include. Can also be set globally using /// the `global-font-file-formats` key in the Bourbon settings. /// /// @argument {boolean} $asset-pipeline [false] /// Set to `true` if you’re using the Rails Asset Pipeline (place the fonts /// in `app/assets/fonts/`). Can also be set globally using the /// `rails-asset-pipeline` key in the Bourbon settings. /// /// @content /// Any additional CSS properties that are included in the `@include` /// directive will be output within the `@font-face` declaration, e.g. you can /// pass in `font-weight`, `font-style` and/or `unicode-range`. /// /// @example scss /// @include font-face( /// "source-sans-pro", /// "fonts/source-sans-pro-regular", /// ("woff2", "woff") /// ) { /// font-style: normal; /// font-weight: 400; /// } /// /// // CSS Output /// @font-face { /// font-family: "source-sans-pro"; /// src: url("fonts/source-sans-pro-regular.woff2") format("woff2"), /// url("fonts/source-sans-pro-regular.woff") format("woff"); /// font-style: normal; /// font-weight: 400; /// } /// /// @require {function} _font-source-declaration /// /// @require {function} _fetch-bourbon-setting @mixin font-face( $font-family, $file-path, $file-formats: _fetch-bourbon-setting("global-font-file-formats"), $asset-pipeline: _fetch-bourbon-setting("rails-asset-pipeline") ) { @font-face { font-family: $font-family; src: _font-source-declaration( $font-family, $file-path, $asset-pipeline, $file-formats ); @content; } } bourbon-7.2.0/core/bourbon/library/_font-stacks.scss000066400000000000000000000111651420521522100225160ustar00rootroot00000000000000@charset "UTF-8"; /// A variable that outputs a Helvetica font stack. /// /// @link https://goo.gl/uSJvZe /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-helvetica; /// } /// /// // CSS Output /// .element { /// font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; /// } $font-stack-helvetica: ( "Helvetica Neue", "Helvetica", "Arial", sans-serif, ); /// A variable that outputs a Lucida Grande font stack. /// /// @link https://goo.gl/R5UyYE /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-lucida-grande; /// } /// /// // CSS Output /// .element { /// font-family: "Lucida Grande", "Lucida Sans Unicode", "Geneva", "Verdana", sans-serif; /// } $font-stack-lucida-grande: ( "Lucida Grande", "Lucida Sans Unicode", "Geneva", "Verdana", sans-serif, ); /// A variable that outputs a Verdana font stack. /// /// @link https://goo.gl/yGXWSS /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-verdana; /// } /// /// // CSS Output /// .element { /// font-family: "Verdana", "Geneva", sans-serif; /// } $font-stack-verdana: ( "Verdana", "Geneva", sans-serif, ); /// A variable that outputs a system font stack. /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-system; /// } /// /// // CSS Output /// .element { /// font-family: system-ui, -apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif; /// } $font-stack-system: ( system-ui, -apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif, ); /// A variable that outputs a Garamond font stack. /// /// @link https://goo.gl/QQFEkV /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-garamond; /// } /// /// // CSS Output /// .element { /// font-family: "Garamond", "Baskerville", "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif; /// } $font-stack-garamond: ( "Garamond", "Baskerville", "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif, ); /// A variable that outputs a Georgia font stack. /// /// @link https://goo.gl/wtzVPy /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-georgia; /// } /// /// // CSS Output /// .element { /// font-family: "Georgia", "Times", "Times New Roman", serif; /// } $font-stack-georgia: ( "Georgia", "Times", "Times New Roman", serif, ); /// A variable that outputs a Hoefler Text font stack. /// /// @link https://goo.gl/n7U7zx /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-hoefler-text; /// } /// /// // CSS Output /// .element { /// font-family: "Hoefler Text", "Baskerville Old Face", "Garamond", "Times New Roman", serif; /// } $font-stack-hoefler-text: ( "Hoefler Text", "Baskerville Old Face", "Garamond", "Times New Roman", serif, ); /// A variable that outputs a Consolas font stack. /// /// @link https://goo.gl/iKrtqv /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-consolas; /// } /// /// // CSS Output /// .element { /// font-family: "Consolas", "monaco", monospace; /// } $font-stack-consolas: ( "Consolas", "monaco", monospace, ); /// A variable that outputs a Courier New font stack. /// /// @link https://goo.gl/bHfWMP /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-courier-new; /// } /// /// // CSS Output /// .element { /// font-family: "Courier New", "Courier", "Lucida Sans Typewriter", "Lucida Typewriter", monospace; /// } $font-stack-courier-new: ( "Courier New", "Courier", "Lucida Sans Typewriter", "Lucida Typewriter", monospace, ); /// A variable that outputs a Monaco font stack. /// /// @link https://goo.gl/9PgKDO /// /// @type list /// /// @example scss /// .element { /// font-family: $font-stack-monaco; /// } /// /// // CSS Output /// .element { /// font-family: "Monaco", "Consolas", "Lucida Console", monospace; /// } $font-stack-monaco: ( "Monaco", "Consolas", "Lucida Console", monospace, ); bourbon-7.2.0/core/bourbon/library/_hide-text.scss000066400000000000000000000007351420521522100221560ustar00rootroot00000000000000@charset "UTF-8"; /// Hides the text in an element, commonly used to show an image instead. Some /// elements will need block-level styles applied. /// /// @link https://goo.gl/EvLRIu /// /// @example scss /// .element { /// @include hide-text; /// } /// /// // CSS Output /// .element { /// overflow: hidden; /// text-indent: 101%; /// white-space: nowrap; /// } @mixin hide-text { overflow: hidden; text-indent: 101%; white-space: nowrap; } bourbon-7.2.0/core/bourbon/library/_hide-visually.scss000066400000000000000000000033151420521522100230370ustar00rootroot00000000000000@charset "UTF-8"; /// Hides an element visually while still allowing the content to be accessible /// to assistive technology, e.g. screen readers. Passing `unhide` will reverse /// the affects of the hiding, which is handy for showing the element on focus, /// for example. /// /// @link https://goo.gl/Vf1TGn /// /// @argument {string} $toggle [hide] /// Accepts `hide` or `unhide`. `unhide` reverses the affects of `hide`. /// /// @example scss /// .element { /// @include hide-visually; /// /// &:active, /// &:focus { /// @include hide-visually("unhide"); /// } /// } /// /// // CSS Output /// .element { /// border: 0; /// clip: rect(1px, 1px, 1px, 1px); /// clip-path: inset(100%); /// height: 1px; /// overflow: hidden; /// padding: 0; /// position: absolute; /// width: 1px; /// } /// /// .hide-visually:active, /// .hide-visually:focus { /// clip: auto; /// clip-path: none; /// height: auto; /// overflow: visible; /// position: static; /// width: auto; /// } /// /// @since 5.0.0 @mixin hide-visually($toggle: "hide") { @if not index("hide" "unhide", $toggle) { @error "`#{$toggle}` is not a valid value for the `$toggle` argument in " + "the `hide-visually` mixin. Must be either `hide` or `unhide`."; } @else if $toggle == "hide" { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(100%); height: 1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; } @else if $toggle == "unhide" { clip: auto; clip-path: none; height: auto; overflow: visible; position: static; white-space: inherit; width: auto; } } bourbon-7.2.0/core/bourbon/library/_margin.scss000066400000000000000000000014661420521522100215420ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting `margin` on specific edges /// of a box. Use a `null` value to “skip” edges of the box with standard /// CSS shorthand. /// /// @argument {list} $values /// List of margin values; accepts CSS shorthand. /// /// @example scss /// .element { /// @include margin(null auto); /// } /// /// // CSS Output /// .element { /// margin-left: auto; /// margin-right: auto; /// } /// /// @example scss /// .element { /// @include margin(10px 3em 20vh null); /// } /// /// // CSS Output /// .element { /// margin-bottom: 20vh; /// margin-right: 3em; /// margin-top: 10px; /// } /// /// @require {mixin} _directional-property @mixin margin($values) { @include _directional-property(margin, null, $values); } bourbon-7.2.0/core/bourbon/library/_modular-scale.scss000066400000000000000000000054601420521522100230130ustar00rootroot00000000000000@charset "UTF-8"; /// Increments up or down a defined scale and returns an adjusted value. This /// helps establish consistent measurements and spacial relationships throughout /// your project. We provide a list of commonly used scales as /// [pre-defined variables][scales]. /// /// [scales]: https://github.com/thoughtbot/bourbon/blob/master/core/bourbon/helpers/_scales.scss /// /// @argument {number (unitless)} $increment /// How many steps to increment up or down the scale. /// /// @argument {number (with unit) | list} $value [1em] /// The base value the scale starts at. Can also be set globally using the /// `modular-scale-base` key in the Bourbon settings. /// /// @argument {number (unitless)} $ratio [1.25] /// The ratio the scale is built on. Can also be set globally using the /// `modular-scale-ratio` key in the Bourbon settings. /// /// @return {number (with unit)} /// /// @example scss /// .element { /// font-size: modular-scale(2); /// } /// /// // CSS Output /// .element { /// font-size: 1.5625em; /// } /// /// @example scss /// .element { /// margin-right: modular-scale(3, 2em); /// } /// /// // CSS Output /// .element { /// margin-right: 3.90625em; /// } /// /// @example scss /// .element { /// font-size: modular-scale(3, 1em 1.6em, $major-seventh); /// } /// /// // CSS Output /// .element { /// font-size: 3em; /// } /// /// @example scss /// // Globally change the base ratio /// $bourbon: ( /// "modular-scale-ratio": 1.2, /// ); /// /// .element { /// font-size: modular-scale(3); /// } /// /// // CSS Output /// .element { /// font-size: 1.728em; /// } /// /// @require {function} _fetch-bourbon-setting @function modular-scale( $increment, $value: _fetch-bourbon-setting("modular-scale-base"), $ratio: _fetch-bourbon-setting("modular-scale-ratio") ) { $v1: nth($value, 1); $v2: nth($value, length($value)); $value: $v1; // scale $v2 to just above $v1 @while $v2 > $v1 { $v2: ($v2 / $ratio); // will be off-by-1 } @while $v2 < $v1 { $v2: ($v2 * $ratio); // will fix off-by-1 } // check AFTER scaling $v2 to prevent double-counting corner-case $double-stranded: $v2 > $v1; @if $increment > 0 { @for $i from 1 through $increment { @if $double-stranded and ($v1 * $ratio) > $v2 { $value: $v2; $v2: ($v2 * $ratio); } @else { $v1: ($v1 * $ratio); $value: $v1; } } } @if $increment < 0 { // adjust $v2 to just below $v1 @if $double-stranded { $v2: ($v2 / $ratio); } @for $i from $increment through -1 { @if $double-stranded and ($v1 / $ratio) < $v2 { $value: $v2; $v2: ($v2 / $ratio); } @else { $v1: ($v1 / $ratio); $value: $v1; } } } @return $value; } bourbon-7.2.0/core/bourbon/library/_overflow-wrap.scss000066400000000000000000000012051420521522100230660ustar00rootroot00000000000000@charset "UTF-8"; /// Outputs the `overflow-wrap` property and its legacy name `word-wrap` to /// support browsers that do not yet use `overflow-wrap`. /// /// @argument {string} $wrap [break-word] /// Accepted CSS values are `normal`, `break-word`, `inherit`, `initial`, /// or `unset`. /// /// @example scss /// .wrapper { /// @include overflow-wrap; /// } /// /// // CSS Output /// .wrapper { /// word-wrap: break-word; /// overflow-wrap: break-word; /// } @mixin overflow-wrap($wrap: break-word) { word-wrap: $wrap; // stylelint-disable-next-line order/properties-alphabetical-order overflow-wrap: $wrap; } bourbon-7.2.0/core/bourbon/library/_padding.scss000066400000000000000000000014341420521522100216660ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise method for targeting `padding` on specific sides of a /// box. Use a `null` value to “skip” a side. /// /// @argument {list} $values /// List of padding values; accepts CSS shorthand. /// /// @example scss /// .element-one { /// @include padding(null 1rem); /// } /// /// // CSS Output /// .element-one { /// padding-left: 1rem; /// padding-right: 1rem; /// } /// /// @example scss /// .element-two { /// @include padding(10vh null 10px 5%); /// } /// /// // CSS Output /// .element-two { /// padding-bottom: 10px; /// padding-left: 5%; /// padding-top: 10vh; /// } /// /// @require {mixin} _directional-property @mixin padding($values) { @include _directional-property(padding, null, $values); } bourbon-7.2.0/core/bourbon/library/_position.scss000066400000000000000000000024511420521522100221240ustar00rootroot00000000000000@charset "UTF-8"; /// Provides a concise, one-line method for setting an element’s positioning /// properties: `position`, `top`, `right`, `bottom` and `left`. Use a `null` /// value to “skip” an edge of the box. /// /// @argument {string} $position /// A CSS position value. /// /// @argument {list} $box-edge-values /// List of lengths; accepts CSS shorthand. /// /// @example scss /// .element { /// @include position(relative, 0 null null 10em); /// } /// /// // CSS Output /// .element { /// left: 10em; /// position: relative; /// top: 0; /// } /// /// @example scss /// .element { /// @include position(absolute, 0); /// } /// /// // CSS Output /// .element { /// position: absolute; /// top: 0; /// right: 0; /// bottom: 0; /// left: 0; /// } /// /// @require {function} _is-length /// /// @require {function} _unpack-shorthand @mixin position( $position, $box-edge-values ) { $box-edge-values: _unpack-shorthand($box-edge-values); $offsets: ( "top": nth($box-edge-values, 1), "right": nth($box-edge-values, 2), "bottom": nth($box-edge-values, 3), "left": nth($box-edge-values, 4), ); position: $position; @each $offset, $value in $offsets { @if _is-length($value) { #{$offset}: $value; } } } bourbon-7.2.0/core/bourbon/library/_prefixer.scss000066400000000000000000000012561420521522100221060ustar00rootroot00000000000000@charset "UTF-8"; /// Generates vendor prefixes. /// /// @argument {string} $property /// Property to prefix. /// /// @argument {string} $value /// Value to use. /// /// @argument {list} $prefixes /// Vendor prefixes to output. /// /// @example scss /// .element { /// @include prefixer(appearance, none, ("webkit", "moz")); /// } /// /// // CSS Output /// .element { /// -webkit-appearance: none; /// -moz-appearance: none; /// appearance: none; /// } /// /// @author Hugo Giraudel @mixin prefixer( $property, $value, $prefixes: () ) { @each $prefix in $prefixes { #{"-" + $prefix + "-" + $property}: $value; } #{$property}: $value; } bourbon-7.2.0/core/bourbon/library/_shade.scss000066400000000000000000000011451420521522100213430ustar00rootroot00000000000000@charset "UTF-8"; /// Mixes a color with black. /// /// @argument {color} $color /// /// @argument {number (percentage)} $percent /// The amount of black to be mixed in. /// /// @return {color} /// /// @example scss /// .element { /// background-color: shade(#ffbb52, 60%); /// } /// /// // CSS Output /// .element { /// background-color: #664a20; /// } @function shade( $color, $percent ) { @if not _is-color($color) { @error "`#{$color}` is not a valid color for the `$color` argument in " + "the `shade` mixin."; } @else { @return mix(#000, $color, $percent); } } bourbon-7.2.0/core/bourbon/library/_size.scss000066400000000000000000000017421420521522100212340ustar00rootroot00000000000000@charset "UTF-8"; /// Sets the `width` and `height` of the element in one statement. /// /// @argument {number (with unit) | string} $width /// /// @argument {number (with unit) | string} $height [$width] /// /// @example scss /// .first-element { /// @include size(2em); /// } /// /// // CSS Output /// .first-element { /// width: 2em; /// height: 2em; /// } /// /// @example scss /// .second-element { /// @include size(auto, 10em); /// } /// /// // CSS Output /// .second-element { /// width: auto; /// height: 10em; /// } /// /// @require {function} _is-size @mixin size( $width, $height: $width ) { @if _is-size($height) { height: $height; } @else { @error "`#{$height}` is not a valid length for the `$height` argument " + "in the `size` mixin."; } @if _is-size($width) { width: $width; } @else { @error "`#{$width}` is not a valid length for the `$width` argument " + "in the `size` mixin."; } } bourbon-7.2.0/core/bourbon/library/_strip-unit.scss000066400000000000000000000004511420521522100223740ustar00rootroot00000000000000@charset "UTF-8"; /// Strips the unit from a number. /// /// @argument {number} $value /// /// @return {number (unitless)} /// /// @example scss /// $dimension: strip-unit(10em); /// /// // Output /// $dimension: 10; @function strip-unit($value) { @return ($value / ($value * 0 + 1)); } bourbon-7.2.0/core/bourbon/library/_text-inputs.scss000066400000000000000000000103611420521522100225630ustar00rootroot00000000000000@charset "UTF-8"; //// /// @type list /// /// @require {function} _assign-inputs /// /// @require {variable} $_text-inputs-list //// /// A list of all _text-based_ HTML inputs. Please note that you must /// interpolate the variable (`#{}`) to use it as a selector. /// /// @example scss /// #{$all-text-inputs} { /// border: 1px solid #ccc; /// } /// /// // CSS Output /// [type='color'], /// [type='date'], /// [type='datetime'], /// [type='datetime-local'], /// [type='email'], /// [type='month'], /// [type='number'], /// [type='password'], /// [type='search'], /// [type='tel'], /// [type='text'], /// [type='time'], /// [type='url'], /// [type='week'], /// input:not([type]), /// textarea { /// border: 1px solid #ccc; /// } $all-text-inputs: _assign-inputs($_text-inputs-list); /// A list of all _text-based_ HTML inputs with the `:active` pseudo-class /// applied. Please note that you must interpolate the variable (`#{}`) to use /// it as a selector. /// /// @example scss /// #{$all-text-inputs-active} { /// border: 1px solid #aaa; /// } /// /// // CSS Output /// [type='color']:active, /// [type='date']:active, /// [type='datetime']:active, /// [type='datetime-local']:active, /// [type='email']:active, /// [type='month']:active, /// [type='number']:active, /// [type='password']:active, /// [type='search']:active, /// [type='tel']:active, /// [type='text']:active, /// [type='time']:active, /// [type='url']:active, /// [type='week']:active, /// input:not([type]):active, /// textarea:active { /// border: 1px solid #aaa; /// } $all-text-inputs-active: _assign-inputs($_text-inputs-list, active); /// A list of all _text-based_ HTML inputs with the `:focus` pseudo-class /// applied. Please note that you must interpolate the variable (`#{}`) to use /// it as a selector. /// /// @example scss /// #{$all-text-inputs-focus} { /// border: 1px solid #1565c0; /// } /// /// // CSS Output /// [type='color']:focus, /// [type='date']:focus, /// [type='datetime']:focus, /// [type='datetime-local']:focus, /// [type='email']:focus, /// [type='month']:focus, /// [type='number']:focus, /// [type='password']:focus, /// [type='search']:focus, /// [type='tel']:focus, /// [type='text']:focus, /// [type='time']:focus, /// [type='url']:focus, /// [type='week']:focus, /// input:not([type]):focus, /// textarea:focus { /// border: 1px solid #1565c0; /// } $all-text-inputs-focus: _assign-inputs($_text-inputs-list, focus); /// A list of all _text-based_ HTML inputs with the `:hover` pseudo-class /// applied. Please note that you must interpolate the variable (`#{}`) to use /// it as a selector. /// /// @example scss /// #{$all-text-inputs-hover} { /// border: 1px solid #aaa; /// } /// /// // CSS Output /// [type='color']:hover, /// [type='date']:hover, /// [type='datetime']:hover, /// [type='datetime-local']:hover, /// [type='email']:hover, /// [type='month']:hover, /// [type='number']:hover, /// [type='password']:hover, /// [type='search']:hover, /// [type='tel']:hover, /// [type='text']:hover, /// [type='time']:hover, /// [type='url']:hover, /// [type='week']:hover, /// input:not([type]):hover, /// textarea:hover { /// border: 1px solid #aaa; /// } $all-text-inputs-hover: _assign-inputs($_text-inputs-list, hover); /// A list of all _text-based_ HTML inputs with the `:invalid` pseudo-class /// applied. Please note that you must interpolate the variable (`#{}`) to use /// it as a selector. /// /// @example scss /// #{$all-text-inputs-invalid} { /// border: 1px solid #00f; /// } /// /// // CSS Output /// [type='color']:invalid, /// [type='date']:invalid, /// [type='datetime']:invalid, /// [type='datetime-local']:invalid, /// [type='email']:invalid, /// [type='month']:invalid, /// [type='number']:invalid, /// [type='password']:invalid, /// [type='search']:invalid, /// [type='tel']:invalid, /// [type='text']:invalid, /// [type='time']:invalid, /// [type='url']:invalid, /// [type='week']:invalid, /// input:not([type]):invalid, /// textarea:invalid { /// border: 1px solid #00f; /// } $all-text-inputs-invalid: _assign-inputs($_text-inputs-list, invalid); bourbon-7.2.0/core/bourbon/library/_timing-functions.scss000066400000000000000000000026261420521522100235610ustar00rootroot00000000000000@charset "UTF-8"; //// /// CSS cubic-bezier timing functions. /// /// @link https://goo.gl/p8u6SK /// /// @type string //// $ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53); $ease-in-cubic: cubic-bezier(0.55, 0.055, 0.675, 0.19); $ease-in-quart: cubic-bezier(0.895, 0.03, 0.685, 0.22); $ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06); $ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715); $ease-in-expo: cubic-bezier(0.95, 0.05, 0.795, 0.035); $ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.335); $ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045); $ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94); $ease-out-cubic: cubic-bezier(0.215, 0.61, 0.355, 1); $ease-out-quart: cubic-bezier(0.165, 0.84, 0.44, 1); $ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1); $ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1); $ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1); $ease-out-circ: cubic-bezier(0.075, 0.82, 0.165, 1); $ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275); $ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955); $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1); $ease-in-out-quart: cubic-bezier(0.77, 0, 0.175, 1); $ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1); $ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95); $ease-in-out-expo: cubic-bezier(1, 0, 0, 1); $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.15, 0.86); $ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55); bourbon-7.2.0/core/bourbon/library/_tint.scss000066400000000000000000000011421420521522100212320ustar00rootroot00000000000000@charset "UTF-8"; /// Mixes a color with white. /// /// @argument {color} $color /// /// @argument {number (percentage)} $percent /// The amount of white to be mixed in. /// /// @return {color} /// /// @example scss /// .element { /// background-color: tint(#6ecaa6, 40%); /// } /// /// // CSS Output /// .element { /// background-color: #a8dfc9; /// } @function tint( $color, $percent ) { @if not _is-color($color) { @error "`#{$color}` is not a valid color for the `$color` argument in " + "the `tint` mixin."; } @else { @return mix(#fff, $color, $percent); } } bourbon-7.2.0/core/bourbon/library/_triangle.scss000066400000000000000000000047501420521522100220710ustar00rootroot00000000000000@charset "UTF-8"; /// Generates a triangle pointing in a specified direction. /// /// @argument {string} $direction /// The direction the triangle should point. Accepts `up`, `up-right`, /// `right`, `down-right`, `down`, `down-left`, `left` or `up-left`. /// /// @argument {number (with unit)} $width /// Width of the triangle. /// /// @argument {number (with unit)} $height /// Height of the triangle. /// /// @argument {color} $color /// Color of the triangle. /// /// @example scss /// .element { /// &::before { /// @include triangle("up", 2rem, 1rem, #b25c9c); /// content: ""; /// } /// } /// /// // CSS Output /// .element::before { /// border-style: solid; /// height: 0; /// width: 0; /// border-color: transparent transparent #b25c9c; /// border-width: 0 1rem 1rem; /// content: ""; /// } @mixin triangle( $direction, $width, $height, $color ) { @if not index( "up" "up-right" "right" "down-right" "down" "down-left" "left" "up-left", $direction ) { @error "Direction must be `up`, `up-right`, `right`, `down-right`, " + "`down`, `down-left`, `left` or `up-left`."; } @else if not _is-color($color) { @error "`#{$color}` is not a valid color for the `$color` argument in " + "the `triangle` mixin."; } @else { border-style: solid; height: 0; width: 0; @if $direction == "up" { border-color: transparent transparent $color; border-width: 0 ($width / 2) $height; } @else if $direction == "up-right" { border-color: transparent $color transparent transparent; border-width: 0 $width $width 0; } @else if $direction == "right" { border-color: transparent transparent transparent $color; border-width: ($height / 2) 0 ($height / 2) $width; } @else if $direction == "down-right" { border-color: transparent transparent $color; border-width: 0 0 $width $width; } @else if $direction == "down" { border-color: $color transparent transparent; border-width: $height ($width / 2) 0; } @else if $direction == "down-left" { border-color: transparent transparent transparent $color; border-width: $width 0 0 $width; } @else if $direction == "left" { border-color: transparent $color transparent transparent; border-width: ($height / 2) $width ($height / 2) 0; } @else if $direction == "up-left" { border-color: $color transparent transparent; border-width: $width $width 0 0; } } } bourbon-7.2.0/core/bourbon/library/_value-prefixer.scss000066400000000000000000000012721420521522100232160ustar00rootroot00000000000000@charset "UTF-8"; /// Generates vendor prefixes for values. /// /// @argument {string} $property /// Property to use. /// /// @argument {string} $value /// Value to prefix. /// /// @argument {list} $prefixes /// Vendor prefixes to output. /// /// @example scss /// .element { /// @include value-prefixer(cursor, grab, ("webkit", "moz")); /// } /// /// // CSS Output /// .element { /// cursor: -webkit-grab; /// cursor: -moz-grab; /// cursor: grab; /// } /// /// @author Matthew Tobiasz @mixin value-prefixer( $property, $value, $prefixes: () ) { @each $prefix in $prefixes { #{$property}: #{"-" + $prefix + "-" + $value}; } #{$property}: $value; } bourbon-7.2.0/core/bourbon/settings/000077500000000000000000000000001420521522100174165ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/settings/_settings.scss000066400000000000000000000050541420521522100223160ustar00rootroot00000000000000@charset "UTF-8"; /// Default global Bourbon settings. Values in this map are overwritten by any /// values set in the `$bourbon` map. /// /// @type map /// /// @property {color} contrast-switch-dark-color [#000] /// Global dark color for the `contrast-switch` function. /// /// @property {color} contrast-switch-light-color [#fff] /// Global light color for the `contrast-switch` function. /// /// @property {list} global-font-file-formats [("woff2", "woff")] /// Global font file formats for the `font-face` mixin. /// /// @property {number (with unit)} modular-scale-base [1em] /// Global base value for the `modular-scale` function. /// /// @property {number (unitless)} modular-scale-ratio [$major-third (1.25)] /// Global base ratio for the `modular-scale` function. /// /// @property {boolean} rails-asset-pipeline [false] /// Set this to `true` when using the Rails Asset Pipeline and Bourbon will /// write asset paths using /// [sass-rails’ asset helpers](https://github.com/rails/sass-rails#asset-helpers). /// /// @access private $_bourbon-defaults: ( "contrast-switch-dark-color": #000, "contrast-switch-light-color": #fff, "global-font-file-formats": ("woff2", "woff"), "modular-scale-base": 1em, "modular-scale-ratio": $major-third, "rails-asset-pipeline": false, ); /// Global Bourbon settings. /// /// @name Settings /// /// @type map /// /// @property {color} contrast-switch-dark-color [#000] /// Global dark color for the `contrast-switch` function. /// /// @property {color} contrast-switch-light-color [#fff] /// Global light color for the `contrast-switch` function. /// /// @property {list} global-font-file-formats [("woff2", "woff")] /// Global font file formats for the `font-face` mixin. /// /// @property {number (with unit)} modular-scale-base [1em] /// Global base value for the `modular-scale` function. /// /// @property {number (unitless)} modular-scale-ratio [$major-third (1.25)] /// Global base ratio for the `modular-scale` function. /// /// @property {boolean} rails-asset-pipeline [false] /// Set this to `true` when using the Rails Asset Pipeline and Bourbon will /// write asset paths using /// [sass-rails’ asset helpers](https://github.com/rails/sass-rails#asset-helpers). /// /// @example scss /// $bourbon: ( /// "contrast-switch-dark-color": #000, /// "contrast-switch-light-color": #fff, /// "global-font-file-formats": ("woff2", "woff"), /// "modular-scale-base": 1em, /// "modular-scale-ratio": $major-third, /// "rails-asset-pipeline": false, /// ); $bourbon: () !default; bourbon-7.2.0/core/bourbon/utilities/000077500000000000000000000000001420521522100175715ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/utilities/_assign-inputs.scss000066400000000000000000000010601420521522100234260ustar00rootroot00000000000000@charset "UTF-8"; /// Append pseudo-classes to a selector(s). /// /// @argument {list | string} $inputs /// A selector, or list of selectors, to apply the pseudo-class to. /// /// @argument {pseudo-class} $pseudo [null] /// The pseudo-class to be appended. /// /// @return {list} /// /// @access private @function _assign-inputs( $inputs, $pseudo: null ) { $list: (); @each $input in $inputs { $input: unquote($input); $input: if($pseudo, $input + ":" + $pseudo, $input); $list: append($list, $input, comma); } @return $list; } bourbon-7.2.0/core/bourbon/utilities/_compact-shorthand.scss000066400000000000000000000016151420521522100242460ustar00rootroot00000000000000@charset "UTF-8"; /// Transforms shorthand to its shortest possible form. /// /// @argument {list} $values /// List of directional values. /// /// @example scss /// $values: _compact-shorthand(10px 20px 10px 20px); /// /// // Output /// $values: 10px 20px; /// /// @return {list} /// /// @access private @function _compact-shorthand($values) { $output: null; $a: nth($values, 1); $b: if(length($values) < 2, $a, nth($values, 2)); $c: if(length($values) < 3, $a, nth($values, 3)); $d: if(length($values) < 2, $a, nth($values, if(length($values) < 4, 2, 4))); @if $a == 0 { $a: 0; } @if $b == 0 { $b: 0; } @if $c == 0 { $c: 0; } @if $d == 0 { $d: 0; } @if $a == $b and $a == $c and $a == $d { $output: $a; } @else if $a == $c and $b == $d { $output: $a $b; } @else if $b == $d { $output: $a $b $c; } @else { $output: $a $b $c $d; } @return $output; } bourbon-7.2.0/core/bourbon/utilities/_contrast-ratio.scss000066400000000000000000000013441420521522100236000ustar00rootroot00000000000000@charset "UTF-8"; /// Programatically determines the contrast ratio between two colors. /// /// Note that the alpha channel is ignored. /// /// @link https://goo.gl/54htLV /// /// @argument {color (hex)} $color-1 /// /// @argument {color (hex)} $color-2 /// /// @return {number (1-21)} /// /// @example scss /// _contrast-ratio(black, white) /// /// @require {function} _lightness /// /// @access private @function _contrast-ratio($color-1, $color-2) { $-local-lightness-1: _lightness($color-1) + 0.05; $-local-lightness-2: _lightness($color-2) + 0.05; @if $-local-lightness-1 > $-local-lightness-2 { @return $-local-lightness-1 / $-local-lightness-2; } @else { @return $-local-lightness-2 / $-local-lightness-1; } } bourbon-7.2.0/core/bourbon/utilities/_directional-property.scss000066400000000000000000000036611420521522100250120ustar00rootroot00000000000000@charset "UTF-8"; /// Builds directional properties by parsing CSS shorthand values. For example, /// a value of `10px null` will output top and bottom directional properties, /// but the `null` skips left and right from being output. /// /// @argument {string} $property /// Base property. /// /// @argument {string} $suffix /// Suffix to append. Use `null` to omit. /// /// @argument {list} $values /// List of values to set for the property. /// /// @example scss /// .element { /// @include _directional-property(border, width, null 5px); /// } /// /// // CSS Output /// .element { /// border-right-width: 5px; /// border-left-width: 5px; /// } /// /// @require {function} _compact-shorthand /// /// @require {function} _contains-falsy /// /// @access private @mixin _directional-property( $property, $suffix, $values ) { $top: $property + "-top" + if($suffix, "-#{$suffix}", ""); $bottom: $property + "-bottom" + if($suffix, "-#{$suffix}", ""); $left: $property + "-left" + if($suffix, "-#{$suffix}", ""); $right: $property + "-right" + if($suffix, "-#{$suffix}", ""); $all: $property + if($suffix, "-#{$suffix}", ""); $values: _compact-shorthand($values); @if _contains-falsy($values) { @if nth($values, 1) { #{$top}: nth($values, 1); } @if length($values) == 1 { @if nth($values, 1) { #{$right}: nth($values, 1); } } @else { @if nth($values, 2) { #{$right}: nth($values, 2); } } @if length($values) == 2 { @if nth($values, 1) { #{$bottom}: nth($values, 1); } @if nth($values, 2) { #{$left}: nth($values, 2); } } @else if length($values) == 3 { @if nth($values, 3) { #{$bottom}: nth($values, 3); } @if nth($values, 2) { #{$left}: nth($values, 2); } } @else if length($values) == 4 { @if nth($values, 3) { #{$bottom}: nth($values, 3); } @if nth($values, 4) { #{$left}: nth($values, 4); } } } @else { #{$all}: $values; } } bourbon-7.2.0/core/bourbon/utilities/_fetch-bourbon-setting.scss000066400000000000000000000005471420521522100250430ustar00rootroot00000000000000@charset "UTF-8"; /// Return a Bourbon setting. /// /// @argument {string} $setting /// /// @return {boolean | color | list | number | string} /// /// @example scss /// _fetch-bourbon-setting(rails-asset-pipeline) /// /// @access private @function _fetch-bourbon-setting($setting) { @return map-get(map-merge($_bourbon-defaults, $bourbon), $setting); } bourbon-7.2.0/core/bourbon/utilities/_font-source-declaration.scss000066400000000000000000000022201420521522100253500ustar00rootroot00000000000000@charset "UTF-8"; /// Builds the `src` list for an `@font-face` declaration. /// /// @link https://goo.gl/Ru1bKP /// /// @argument {string} $font-family /// /// @argument {string} $file-path /// /// @argument {boolean} $asset-pipeline /// /// @argument {list} $file-formats /// /// @return {list} /// /// @require {function} _contains /// /// @access private @function _font-source-declaration( $font-family, $file-path, $asset-pipeline, $file-formats ) { $src: (); $formats-map: ( "woff2": "#{$file-path}.woff2" format("woff2"), "woff": "#{$file-path}.woff" format("woff"), ); @each $format in $file-formats { @if _contains(map-keys($formats-map), $format) { $value: map-get($formats-map, $format); $file-path: nth($value, 1); $font-format: nth($value, 2); @if $asset-pipeline == true { $src: append($src, font-url($file-path) $font-format, comma); } @else { $src: append($src, url($file-path) $font-format, comma); } } @else { @error "`#{$file-formats}` contains an unsupported font file format. " + "Must be `woff` and/or `woff2`."; } } @return $src; } bourbon-7.2.0/core/bourbon/utilities/_gamma.scss000066400000000000000000000010171420521522100217060ustar00rootroot00000000000000@charset "UTF-8"; /// Performs gamma correction on a single color channel. /// /// Note that the calculation is approximate if a `pow()` is not available. /// /// @argument {number (0-1)} $channel /// /// @return {number (0-1)} /// /// @access private @function _gamma($channel) { @if $channel < 0.03928 { @return $channel / 12.92; } @else { $c: ($channel + 0.055) / 1.055; @if function-exists("pow") { @return pow($c, 2.4); } @else { @return 0.56 * $c * $c * $c + 0.44 * $c * $c; } } } bourbon-7.2.0/core/bourbon/utilities/_lightness.scss000066400000000000000000000011631420521522100226260ustar00rootroot00000000000000@charset "UTF-8"; /// Programatically determines the lightness of a color. /// /// @argument {color (hex)} $hex-color /// /// @return {number (0-1)} /// /// @example scss /// _lightness($color) /// /// @access private @function _lightness($hex-color) { $-local-red-raw: red(rgba($hex-color, 1)); $-local-green-raw: green(rgba($hex-color, 1)); $-local-blue-raw: blue(rgba($hex-color, 1)); $-local-red: _gamma($-local-red-raw / 255); $-local-green: _gamma($-local-green-raw / 255); $-local-blue: _gamma($-local-blue-raw / 255); @return $-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722; } bourbon-7.2.0/core/bourbon/utilities/_unpack-shorthand.scss000066400000000000000000000014251420521522100241000ustar00rootroot00000000000000@charset "UTF-8"; /// Transforms shorthand that can range from 1-to-4 values to be 4 values. /// /// @argument {list} $shorthand /// /// @example scss /// .element { /// margin: _unpack-shorthand(1em 2em); /// } /// /// // CSS Output /// .element { /// margin: 1em 2em 1em 2em; /// } /// /// @access private @function _unpack-shorthand($shorthand) { @if length($shorthand) == 1 { @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); } @else if length($shorthand) == 2 { @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); } @else if length($shorthand) == 3 { @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); } @else { @return $shorthand; } } bourbon-7.2.0/core/bourbon/validators/000077500000000000000000000000001420521522100177265ustar00rootroot00000000000000bourbon-7.2.0/core/bourbon/validators/_contains-falsy.scss000066400000000000000000000004721420521522100237170ustar00rootroot00000000000000@charset "UTF-8"; /// Checks if a list does not contain any values. /// /// @argument {list} $list /// The list to check against. /// /// @return {boolean} /// /// @access private @function _contains-falsy($list) { @each $item in $list { @if not $item { @return true; } } @return false; } bourbon-7.2.0/core/bourbon/validators/_contains.scss000066400000000000000000000006671420521522100226110ustar00rootroot00000000000000@charset "UTF-8"; /// Checks if a list contains a value(s). /// /// @argument {list} $list /// The list to check against. /// /// @argument {list} $values /// A single value or list of values to check for. /// /// @return {boolean} /// /// @access private @function _contains( $list, $values... ) { @each $value in $values { @if type-of(index($list, $value)) != "number" { @return false; } } @return true; } bourbon-7.2.0/core/bourbon/validators/_is-color.scss000066400000000000000000000003561420521522100225150ustar00rootroot00000000000000@charset "UTF-8"; /// Checks for a valid CSS color. /// /// @argument {string} $color /// /// @return {boolean} /// /// @access private @function _is-color($color) { @return (type-of($color) == color) or ($color == "currentColor"); } bourbon-7.2.0/core/bourbon/validators/_is-length.scss000066400000000000000000000007341420521522100226600ustar00rootroot00000000000000@charset "UTF-8"; /// Checks for a valid CSS length. /// /// @argument {string} $value /// /// @return {boolean} /// /// @access private @function _is-length($value) { @return type-of($value) != "null" and ( str-slice($value + "", 1, 4) == "calc" or str-slice($value + "", 1, 3) == "var" or str-slice($value + "", 1, 3) == "env" or index(auto inherit initial 0, $value) or (type-of($value) == "number" and not(unitless($value))) ); } bourbon-7.2.0/core/bourbon/validators/_is-number.scss000066400000000000000000000004501420521522100226620ustar00rootroot00000000000000@charset "UTF-8"; /// Checks for a valid number. /// /// @argument {number} $value /// /// @require {function} _contains /// /// @return {boolean} /// /// @access private @function _is-number($value) { @return _contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); } bourbon-7.2.0/core/bourbon/validators/_is-size.scss000066400000000000000000000005361420521522100223510ustar00rootroot00000000000000@charset "UTF-8"; /// Checks for a valid CSS size. /// /// @argument {string} $value /// /// @return {boolean} /// /// @require {function} _contains /// /// @require {function} _is-length /// /// @access private @function _is-size($value) { @return _is-length($value) or _contains("fill" "fit-content" "min-content" "max-content", $value); } bourbon-7.2.0/eyeglass-exports.js000066400000000000000000000002071420521522100170330ustar00rootroot00000000000000var bourbon = require("./index"); module.exports = function(eyeglass, sass) { return { sassDir: bourbon.includePaths[0] }; }; bourbon-7.2.0/features/000077500000000000000000000000001420521522100147765ustar00rootroot00000000000000bourbon-7.2.0/features/install.feature000066400000000000000000000026231420521522100200240ustar00rootroot00000000000000Feature: Install bourbon files Scenario: Bourbon generates a new bourbon installation When I run `bundle exec bourbon install` Then the sass directories should have been generated And the following directories should exist: | bourbon | And the master bourbon partial should have been generated And the output should contain "Bourbon files installed to bourbon/" Scenario: Generating does not overwrite an existing bourbon directory Given bourbon is already installed When I run `bundle exec bourbon install` Then the output should contain "Bourbon files already installed, doing nothing." Scenario: Install Bourbon into a custom path When I run `bundle exec bourbon install --path=custom_path` Then the sass directories with "custom_path" prefix should have been generated And the following directories should exist: | custom_path/bourbon | And the master bourbon partial should have been generated within "custom_path" directory And the output should contain "Bourbon files installed to custom_path/bourbon/" Scenario: Forcing install of bourbon Given bourbon is already installed When I run `bundle exec bourbon install --force` Then the output from "bundle exec bourbon install --force" should contain "Bourbon files installed to bourbon/" And the output should not contain "Bourbon files already installed, doing nothing." bourbon-7.2.0/features/step_definitions/000077500000000000000000000000001420521522100203445ustar00rootroot00000000000000bourbon-7.2.0/features/step_definitions/bourbon_steps.rb000066400000000000000000000017321420521522100235600ustar00rootroot00000000000000Given /^bourbon is already installed$/ do install_bourbon end Given /^I install bourbon to "([^"]*)"$/ do |path| end Then /^the sass directories(?: with "([^"]+)" prefix)? should have been generated$/ do |prefix| sass_directories = [ "bourbon/helpers", "bourbon/library", "bourbon/settings", "bourbon/utilities", "bourbon/validators", ] sass_directories.map!{ |directory| bourbon_path(prefix, directory) } sass_directories.each do |sass_directory| expect(sass_directory).to be_an_existing_directory end end Then /^the master bourbon partial should have been generated(?: within "([^"]+)" directory)?$/ do |prefix| expect(bourbon_path(prefix, "_bourbon.scss")).to be_an_existing_file end Then /^bourbon should not have been generated$/ do expect("bourbon").not_to be_an_existing_directory end Then /^the output should contain the current version of Bourbon$/ do expect(last_command_started).to have_output "Bourbon #{Bourbon::VERSION}" end bourbon-7.2.0/features/support/000077500000000000000000000000001420521522100165125ustar00rootroot00000000000000bourbon-7.2.0/features/support/bourbon_support.rb000066400000000000000000000005701420521522100223030ustar00rootroot00000000000000module BourbonSupport def install_bourbon(path = nil) if path run_simple("bundle exec bourbon install --path '#{path}'") else run_simple("bundle exec bourbon install") end end def bourbon_path(prefix, path) if prefix File.join(prefix, 'bourbon', path) else File.join('bourbon', path) end end end World(BourbonSupport) bourbon-7.2.0/features/support/env.rb000066400000000000000000000000311420521522100176210ustar00rootroot00000000000000require "aruba/cucumber" bourbon-7.2.0/features/update.feature000066400000000000000000000021611420521522100176350ustar00rootroot00000000000000Feature: Update bourbon files Scenario: Updating updates an existing bourbon install Given bourbon is already installed When I write to "bourbon/_bourbon.scss" with: """ foobar """ And I run `bundle exec bourbon update` Then the output should contain "Bourbon files updated." And the file "bourbon/_bourbon.scss" should not contain "foobar" Scenario: Updating with a --path option Given I install bourbon to "custom_path" When I write to "custom_path/bourbon/_bourbon.scss" with: """ foobar """ And I run `bundle exec bourbon update` Then the output should contain "No existing bourbon installation. Doing nothing." When I run `bundle exec bourbon update --path custom_path` Then the output should contain "Bourbon files updated." And the file "custom_path/bourbon/_bourbon.scss" should not contain "foobar" Scenario: Updating does not generate a new bourbon install And I run `bundle exec bourbon update` Then bourbon should not have been generated And the output should contain "No existing bourbon installation. Doing nothing." bourbon-7.2.0/features/version.feature000066400000000000000000000002601420521522100200360ustar00rootroot00000000000000Feature: Show version Scenario: Viewing version When I successfully run `bundle exec bourbon --version` Then the output should contain the current version of Bourbon bourbon-7.2.0/index.js000066400000000000000000000001521420521522100146230ustar00rootroot00000000000000var path = require("path"); module.exports = { includePaths: [ path.join(__dirname, "core") ] }; bourbon-7.2.0/lib/000077500000000000000000000000001420521522100137265ustar00rootroot00000000000000bourbon-7.2.0/lib/bourbon.rb000066400000000000000000000005241420521522100157220ustar00rootroot00000000000000require "bourbon/generator" module Bourbon if defined?(Rails) && defined?(Rails::Engine) class Engine < ::Rails::Engine config.assets.paths << File.expand_path("../core", __dir__) end else begin require "sass" Sass.load_paths << File.expand_path("../core", __dir__) rescue LoadError end end end bourbon-7.2.0/lib/bourbon/000077500000000000000000000000001420521522100153745ustar00rootroot00000000000000bourbon-7.2.0/lib/bourbon/generator.rb000066400000000000000000000034201420521522100177060ustar00rootroot00000000000000require "bourbon/version" require "fileutils" require "thor" require "pathname" module Bourbon class Generator < Thor map ["-v", "--version"] => :version desc "install", "Install Bourbon into your project" method_options :path => :string, :force => :boolean def install if bourbon_files_already_exist? && !options[:force] puts "Bourbon files already installed, doing nothing." else install_files puts "Bourbon files installed to #{install_path}/" end end desc "update", "Update Bourbon" method_options :path => :string def update if bourbon_files_already_exist? remove_bourbon_directory install_files puts "Bourbon files updated." else puts "No existing bourbon installation. Doing nothing." end end desc "version", "Show Bourbon version" def version say "Bourbon #{Bourbon::VERSION}" end private def bourbon_files_already_exist? install_path.exist? end def install_path @install_path ||= if options[:path] Pathname.new(File.join(options[:path], "bourbon")) else Pathname.new("bourbon") end end def install_files make_install_directory copy_in_scss_files end def remove_bourbon_directory FileUtils.rm_rf(install_path) end def make_install_directory FileUtils.mkdir_p(install_path) end def copy_in_scss_files FileUtils.cp_r(all_stylesheets, install_path) end def all_stylesheets Dir["#{stylesheets_directory}/*"] end def stylesheets_directory File.join(top_level_directory, "core") end def top_level_directory File.dirname(File.dirname(File.dirname(__FILE__))) end end end bourbon-7.2.0/lib/bourbon/version.rb000066400000000000000000000000471420521522100174070ustar00rootroot00000000000000module Bourbon VERSION = "7.2.0" end bourbon-7.2.0/package-lock.json000066400000000000000000007145761420521522100164200ustar00rootroot00000000000000{ "name": "bourbon", "version": "7.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/core": { "version": "7.4.5", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/generator": "^7.4.4", "@babel/helpers": "^7.4.4", "@babel/parser": "^7.4.5", "@babel/template": "^7.4.4", "@babel/traverse": "^7.4.5", "@babel/types": "^7.4.4", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", "lodash": "^4.17.11", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "dev": true, "requires": { "@babel/types": "^7.4.4", "jsesc": "^2.5.1", "lodash": "^4.17.11", "source-map": "^0.5.0", "trim-right": "^1.0.1" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-function-name": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.0.0", "@babel/template": "^7.1.0", "@babel/types": "^7.0.0" } }, "@babel/helper-get-function-arity": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@babel/helper-split-export-declaration": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { "@babel/types": "^7.4.4" } }, "@babel/helpers": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", "dev": true, "requires": { "@babel/template": "^7.4.4", "@babel/traverse": "^7.4.4", "@babel/types": "^7.4.4" } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { "version": "7.4.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", "dev": true }, "@babel/template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/parser": "^7.4.4", "@babel/types": "^7.4.4" } }, "@babel/traverse": { "version": "7.4.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/generator": "^7.4.4", "@babel/helper-function-name": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", "@babel/parser": "^7.4.5", "@babel/types": "^7.4.4", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.11" } }, "@babel/types": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.11", "to-fast-properties": "^2.0.0" } }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, "@thoughtbot/stylelint-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@thoughtbot/stylelint-config/-/stylelint-config-1.1.0.tgz", "integrity": "sha512-DVHlAQ9AcsPl75/3YYeEviecpQ1waNxGLjRcgQaXmEo2J/GsHFtCiHUoN6JXI2GatfGZ6M7rrB8S36CaCczhoA==", "dev": true, "requires": { "stylelint-config-recommended": "^2.2.0", "stylelint-declaration-block-no-ignored-properties": "^2.0.0", "stylelint-order": "^3.0.0", "stylelint-scss": ">=3.9.3" } }, "@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "dev": true, "requires": { "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, "@types/node": { "version": "12.0.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.7.tgz", "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==", "dev": true }, "@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", "dev": true }, "@types/vfile": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", "dev": true, "requires": { "@types/node": "*", "@types/unist": "*", "@types/vfile-message": "*" } }, "@types/vfile-message": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-1.0.1.tgz", "integrity": "sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==", "dev": true, "requires": { "@types/node": "*", "@types/unist": "*" } }, "a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", "dev": true }, "ajv": { "version": "6.10.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "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.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 }, "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 }, "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" } }, "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" } } } }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "optional": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" }, "dependencies": { "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } } } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { "array-uniq": "^1.0.1" } }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true, "optional": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "autoprefixer": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz", "integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==", "dev": true, "requires": { "browserslist": "^4.6.1", "caniuse-lite": "^1.0.30000971", "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.16", "postcss-value-parser": "^3.3.1" }, "dependencies": { "postcss": { "version": "7.0.17", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } } } }, "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.4.0", "regenerator-runtime": "^0.11.0" } }, "bail": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "optional": true }, "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.0.0", "chalk": "^2.0.1", "cli-boxes": "^1.0.0", "string-width": "^2.0.0", "term-size": "^1.2.0", "widest-line": "^2.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 }, "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 }, "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" } }, "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" } } } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "browserslist": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.2.tgz", "integrity": "sha512-2neU/V0giQy9h3XMPwLhEY3+Ao0uHSwHvU8Q1Ea6AgLVL1sXbX3dzPrJ8NWe5Hi4PoTkCYXOtVR9rfRLI0J/8Q==", "dev": true, "requires": { "caniuse-lite": "^1.0.30000974", "electron-to-chromium": "^1.3.150", "node-releases": "^1.1.23" } }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "dev": true, "requires": { "callsites": "^2.0.0" } }, "caller-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "dev": true, "requires": { "caller-callsite": "^2.0.0" } }, "callsites": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", "dev": true }, "camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { "no-case": "^2.2.0", "upper-case": "^1.1.1" } }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "camelcase-keys": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", "dev": true, "requires": { "camelcase": "^4.1.0", "map-obj": "^2.0.0", "quick-lru": "^1.0.0" } }, "caniuse-lite": { "version": "1.0.30000974", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000974.tgz", "integrity": "sha512-xc3rkNS/Zc3CmpMKuczWEdY2sZgx09BkAxfvkxlAEBTqcMHeL8QnPqhKse+5sRTi3nrw2pJwToD2WvKn1Uhvww==", "dev": true }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true }, "ccount": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==", "dev": true }, "cdocparser": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/cdocparser/-/cdocparser-0.13.0.tgz", "integrity": "sha1-G6mKHh4WaOK/s11Bdh6eRkXXMbo=", "dev": true, "requires": { "escape-string-regexp": "^1.0.2", "lodash.assign": "^2.4.1", "strip-indent": "^1.0.0" }, "dependencies": { "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { "get-stdin": "^4.0.1" } } } }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, "dependencies": { "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "character-entities": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==", "dev": true }, "character-entities-html4": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==", "dev": true }, "character-entities-legacy": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==", "dev": true }, "character-reference-invalid": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==", "dev": true }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "optional": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" } }, "chroma-js": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/chroma-js/-/chroma-js-1.4.1.tgz", "integrity": "sha512-jTwQiT859RTFN/vIf7s+Vl/Z2LcMrvMv3WUFmd/4u76AdlFC0NTNgqEEFPcRiHmAswPsMiQEDZLM8vX8qXpZNQ==", "dev": true }, "ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "clean-css": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "dev": true, "requires": { "source-map": "~0.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 }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "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.0.0" } } } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "clone-regexp": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", "dev": true, "requires": { "is-regexp": "^2.0.0" } }, "clone-stats": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", "dev": true }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "collapse-white-space": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==", "dev": true }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "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 }, "commander": { "version": "2.17.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", "dev": true }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "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 }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "configstore": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { "dot-prop": "^4.1.0", "graceful-fs": "^4.1.2", "make-dir": "^1.0.0", "unique-string": "^1.0.0", "write-file-atomic": "^2.0.0", "xdg-basedir": "^3.0.0" } }, "convert-source-map": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.6.11", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "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 }, "cosmiconfig": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "dev": true, "requires": { "import-fresh": "^2.0.0", "is-directory": "^0.3.1", "js-yaml": "^3.13.1", "parse-json": "^4.0.0" } }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { "capture-stack-trace": "^1.0.0" } }, "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.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "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 }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { "array-find-index": "^1.0.1" } }, "dargs": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" }, "dependencies": { "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true } } }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "dir-glob": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { "path-type": "^3.0.0" } }, "docopt": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz", "integrity": "sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=", "dev": true }, "dom-serializer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", "dev": true, "requires": { "domelementtype": "^1.3.0", "entities": "^1.1.1" } }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" } }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", "domelementtype": "1" } }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { "is-obj": "^1.0.0" } }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { "readable-stream": "^2.0.2" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "electron-to-chromium": { "version": "1.3.155", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.155.tgz", "integrity": "sha512-/ci/XgZG8jkLYOgOe3mpJY1onxPPTDY17y7scldhnSjjZqV6VvREG/LvwhRuV7BJbnENFfuDWZkSqlTh4x9ZjQ==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "ends-with": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ends-with/-/ends-with-0.2.0.tgz", "integrity": "sha1-L52pjVelDP2kVxzkM5AAUA9Oa4o=", "dev": true }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es6-denodeify": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/es6-denodeify/-/es6-denodeify-0.1.5.tgz", "integrity": "sha1-MdTV/pxVA+ElRgQ5MQ4WoqPznB8=", "dev": true }, "es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", "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 }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "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.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" } }, "execall": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", "dev": true, "requires": { "clone-regexp": "^2.1.0" } }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.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" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { "fill-range": "^2.1.0" }, "dependencies": { "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { "kind-of": "^3.0.2" } }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.1.2", "glob-parent": "^3.1.0", "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" }, "dependencies": { "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } } } }, "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 }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" } }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "find-index": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", "dev": true }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "^2.0.0" } }, "first-chunk-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", "dev": true }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" } }, "flatted": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", "dev": true }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { "for-in": "^1.0.1" } }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fs-extra": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.10.tgz", "integrity": "sha512-Dw5DScF/8AWhWzWRbnQrFJfeR/TOJZjRr9Du9kfmd8t234ICcVeDBlauFl/jVcE5ZewhlPoCFvIqp0SE3kAVxA==", "dev": true, "optional": true, "requires": { "nan": "^2.12.1", "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true, "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "chownr": { "version": "1.1.3", "bundled": true, "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "debug": { "version": "3.2.6", "bundled": true, "dev": true, "optional": true, "requires": { "ms": "^2.1.1" } }, "deep-extend": { "version": "0.6.0", "bundled": true, "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { "minipass": "^2.6.0" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "glob": { "version": "7.1.6", "bundled": true, "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "has-unicode": { "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { "version": "3.0.3", "bundled": true, "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, "optional": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "bundled": true, "dev": true, "optional": true }, "ini": { "version": "1.3.5", "bundled": true, "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "isarray": { "version": "1.0.0", "bundled": true, "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, "dev": true, "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", "bundled": true, "dev": true, "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, "optional": true, "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { "version": "0.12.0", "bundled": true, "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", "mkdirp": "^0.5.1", "needle": "^2.2.1", "nopt": "^4.0.1", "npm-packlist": "^1.1.6", "npmlog": "^4.0.2", "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", "tar": "^4" } }, "nopt": { "version": "4.0.1", "bundled": true, "dev": true, "optional": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" } }, "npm-bundled": { "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } }, "npm-normalize-package-bin": { "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.7", "bundled": true, "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", "npm-bundled": "^1.0.1" } }, "npmlog": { "version": "4.1.2", "bundled": true, "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, "dev": true, "optional": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, "rc": { "version": "1.2.8", "bundled": true, "dev": true, "optional": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", "bundled": true, "dev": true, "optional": true } } }, "readable-stream": { "version": "2.3.6", "bundled": true, "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "rimraf": { "version": "2.7.1", "bundled": true, "dev": true, "optional": true, "requires": { "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", "bundled": true, "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "sax": { "version": "1.2.4", "bundled": true, "dev": true, "optional": true }, "semver": { "version": "5.7.1", "bundled": true, "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, "dev": true, "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "string_decoder": { "version": "1.1.1", "bundled": true, "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", "bundled": true, "dev": true, "optional": true }, "tar": { "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", "minipass": "^2.8.6", "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.3" } }, "util-deprecate": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, "dev": true, "optional": true, "requires": { "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true, "optional": true }, "yallist": { "version": "3.1.1", "bundled": true, "dev": true, "optional": true } } }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "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 }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" }, "dependencies": { "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { "is-glob": "^2.0.0" } }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "^1.0.0" } } } }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, "glob-stream": { "version": "5.3.5", "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", "dev": true, "requires": { "extend": "^3.0.0", "glob": "^5.0.3", "glob-parent": "^3.0.0", "micromatch": "^2.3.7", "ordered-read-streams": "^0.3.0", "through2": "^0.6.0", "to-absolute-glob": "^0.1.1", "unique-stream": "^2.0.2" }, "dependencies": { "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { "arr-flatten": "^1.0.1" } }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { "expand-range": "^1.8.1", "preserve": "^0.2.0", "repeat-element": "^1.1.2" } }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { "is-posix-bracket": "^0.1.0" } }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { "is-extglob": "^1.0.0" } }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "^1.0.0" } }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", "braces": "^1.8.2", "expand-brackets": "^0.1.4", "extglob": "^0.3.1", "filename-regex": "^2.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.1", "kind-of": "^3.0.2", "normalize-path": "^2.0.1", "object.omit": "^2.0.0", "parse-glob": "^3.0.4", "regex-cache": "^0.4.2" } }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", "xtend": ">=4.0.0 <4.1.0-0" } } } }, "glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, "glob2base": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { "find-index": "^0.1.1" } }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { "ini": "^1.3.4" } }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { "global-prefix": "^3.0.0" } }, "global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" } }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "requires": { "@types/glob": "^7.1.1", "array-union": "^1.0.2", "dir-glob": "^2.2.2", "fast-glob": "^2.2.6", "glob": "^7.1.3", "ignore": "^4.0.3", "pify": "^4.0.1", "slash": "^2.0.0" }, "dependencies": { "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true } } }, "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", "dev": true }, "gonzales-pe": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz", "integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==", "dev": true, "requires": { "minimist": "1.1.x" }, "dependencies": { "minimist": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", "dev": true } } }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", "is-redirect": "^1.0.0", "is-retry-allowed": "^1.0.0", "is-stream": "^1.0.0", "lowercase-keys": "^1.0.0", "safe-buffer": "^5.0.1", "timed-out": "^4.0.0", "unzip-response": "^2.0.1", "url-parse-lax": "^1.0.0" } }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "gulp-sourcemaps": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", "dev": true, "requires": { "convert-source-map": "^1.1.1", "graceful-fs": "^4.1.2", "strip-bom": "^2.0.0", "through2": "^2.0.0", "vinyl": "^1.0.0" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "^0.2.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } } } }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "html-minifier": { "version": "3.5.21", "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "dev": true, "requires": { "camel-case": "3.0.x", "clean-css": "4.2.x", "commander": "2.17.x", "he": "1.2.x", "param-case": "2.1.x", "relateurl": "0.2.x", "uglify-js": "3.4.x" } }, "html-tags": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.0.0.tgz", "integrity": "sha512-xiXEBjihaNI+VZ2mKEoI5ZPxqUsevTKM+aeeJ/W4KAg2deGE35minmCJMn51BvwJZmiHaeAxrb2LAS0yZJxuuA==", "dev": true }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" } }, "ignore": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", "dev": true }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "dev": true, "requires": { "caller-path": "^2.0.0", "resolve-from": "^3.0.0" }, "dependencies": { "resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true } } }, "import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indent-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "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.3.0", "wrappy": "1" } }, "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 }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-alphabetical": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==", "dev": true }, "is-alphanumeric": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", "dev": true }, "is-alphanumerical": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", "dev": true, "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, "requires": { "binary-extensions": "^1.0.0" } }, "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-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { "ci-info": "^1.5.0" } }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-decimal": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==", "dev": true }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-hexadecimal": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==", "dev": true }, "is-installed-globally": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" } }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "^1.0.1" } }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, "is-regexp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", "dev": true }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "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-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-valid-glob": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=", "dev": true }, "is-whitespace-character": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==", "dev": true }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-word-character": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==", "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 }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", "dev": true, "requires": { "minimist": "^1.2.0" }, "dependencies": { "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, "known-css-properties": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.14.0.tgz", "integrity": "sha512-P+0a/gBzLgVlCnK8I7VcD0yuYJscmWn66wH9tlKsQnmVdg689tLEmziwB9PuazZYLkcm07fvWOKCJJqI55sD5Q==", "dev": true }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { "package-json": "^4.0.0" } }, "lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "requires": { "readable-stream": "^2.0.5" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "^1.0.0" } }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.14", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", "dev": true }, "lodash._basebind": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._basebind/-/lodash._basebind-2.4.1.tgz", "integrity": "sha1-6UC5690nwyfgqNqxtVkWxTQelXU=", "dev": true, "requires": { "lodash._basecreate": "~2.4.1", "lodash._setbinddata": "~2.4.1", "lodash._slice": "~2.4.1", "lodash.isobject": "~2.4.1" } }, "lodash._basecreate": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-2.4.1.tgz", "integrity": "sha1-+Ob1tXip405UEXm1a47uv0oofgg=", "dev": true, "requires": { "lodash._isnative": "~2.4.1", "lodash.isobject": "~2.4.1", "lodash.noop": "~2.4.1" } }, "lodash._basecreatecallback": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._basecreatecallback/-/lodash._basecreatecallback-2.4.1.tgz", "integrity": "sha1-fQsmdknLKeehOdAQO3wR+uhOSFE=", "dev": true, "requires": { "lodash._setbinddata": "~2.4.1", "lodash.bind": "~2.4.1", "lodash.identity": "~2.4.1", "lodash.support": "~2.4.1" } }, "lodash._basecreatewrapper": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._basecreatewrapper/-/lodash._basecreatewrapper-2.4.1.tgz", "integrity": "sha1-TTHy595+E0+/KAN2K4FQsyUZZm8=", "dev": true, "requires": { "lodash._basecreate": "~2.4.1", "lodash._setbinddata": "~2.4.1", "lodash._slice": "~2.4.1", "lodash.isobject": "~2.4.1" } }, "lodash._createwrapper": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._createwrapper/-/lodash._createwrapper-2.4.1.tgz", "integrity": "sha1-UdaVeXPaTtVW43KQ2MGhjFPeFgc=", "dev": true, "requires": { "lodash._basebind": "~2.4.1", "lodash._basecreatewrapper": "~2.4.1", "lodash._slice": "~2.4.1", "lodash.isfunction": "~2.4.1" } }, "lodash._isnative": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", "dev": true }, "lodash._objecttypes": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", "dev": true }, "lodash._setbinddata": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._setbinddata/-/lodash._setbinddata-2.4.1.tgz", "integrity": "sha1-98IAzRuS7yNrOZ7s9zxkjReqlNI=", "dev": true, "requires": { "lodash._isnative": "~2.4.1", "lodash.noop": "~2.4.1" } }, "lodash._shimkeys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", "dev": true, "requires": { "lodash._objecttypes": "~2.4.1" } }, "lodash._slice": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._slice/-/lodash._slice-2.4.1.tgz", "integrity": "sha1-dFz0GlNZexj2iImFREBe+isG2Q8=", "dev": true }, "lodash.assign": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-2.4.1.tgz", "integrity": "sha1-hMOVlt1xGBqXsGUpE6fJZ15Jsao=", "dev": true, "requires": { "lodash._basecreatecallback": "~2.4.1", "lodash._objecttypes": "~2.4.1", "lodash.keys": "~2.4.1" } }, "lodash.bind": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-2.4.1.tgz", "integrity": "sha1-XRn6AFyMTSNvr0dCx7eh/Kvikmc=", "dev": true, "requires": { "lodash._createwrapper": "~2.4.1", "lodash._slice": "~2.4.1" } }, "lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, "lodash.identity": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.identity/-/lodash.identity-2.4.1.tgz", "integrity": "sha1-ZpTP+mX++TH3wxzobHRZfPVg9PE=", "dev": true }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, "lodash.isfunction": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-2.4.1.tgz", "integrity": "sha1-LP1XXHPkmKtX4xm3f6Aq3vE6lNE=", "dev": true }, "lodash.isobject": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "requires": { "lodash._objecttypes": "~2.4.1" } }, "lodash.keys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { "lodash._isnative": "~2.4.1", "lodash._shimkeys": "~2.4.1", "lodash.isobject": "~2.4.1" } }, "lodash.noop": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-2.4.1.tgz", "integrity": "sha1-T7VPgWZS5a4Q6PcvcXo4jHMmU4o=", "dev": true }, "lodash.support": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.support/-/lodash.support-2.4.1.tgz", "integrity": "sha1-Mg4LZwMWc8KNeiu12eAzGkUkBRU=", "dev": true, "requires": { "lodash._isnative": "~2.4.1" } }, "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": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { "chalk": "^2.4.2" } }, "longest-streak": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==", "dev": true }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" } }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" } }, "markdown-escapes": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==", "dev": true }, "markdown-table": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", "dev": true }, "marked": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==", "dev": true }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, "mathml-tag-names": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz", "integrity": "sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw==", "dev": true }, "mdast-util-compact": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz", "integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==", "dev": true, "requires": { "unist-util-visit": "^1.1.0" } }, "memoize-decorator": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/memoize-decorator/-/memoize-decorator-1.0.2.tgz", "integrity": "sha1-YFpBcVxBcdsZKpAJiwCrjW4RAvU=", "dev": true }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { "camelcase-keys": "^4.0.0", "decamelize-keys": "^1.0.0", "loud-rejection": "^1.0.0", "minimist-options": "^3.0.1", "normalize-package-data": "^2.3.4", "read-pkg-up": "^3.0.0", "redent": "^2.0.0", "trim-newlines": "^2.0.0", "yargs-parser": "^10.0.0" } }, "merge-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "dev": true, "requires": { "readable-stream": "^2.0.1" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "merge2": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", "dev": true }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" }, "dependencies": { "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } } } }, "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.7" } }, "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minimist-options": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", "dev": true, "requires": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" } }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "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" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multipipe": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz", "integrity": "sha1-zBPv2DPJzamfIk+GhGG44aP9k50=", "dev": true, "requires": { "duplexer2": "^0.1.2", "object-assign": "^4.1.0" } }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", "dev": true, "optional": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { "lower-case": "^1.1.1" } }, "node-releases": { "version": "1.1.23", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.23.tgz", "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", "dev": true, "requires": { "semver": "^5.3.0" } }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "optional": true }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", "dev": true }, "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.0" } }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nunjucks": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.0.tgz", "integrity": "sha512-YS/qEQ6N7qCnUdm6EoYRBfJUdWNT0PpKbbRnogV2XyXbBm2STIP1O6yrdZHgwMVK7fIYUx7i8+yatEixnXSB1w==", "dev": true, "requires": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", "chokidar": "^2.0.0", "yargs": "^3.32.0" } }, "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 }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" } }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.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" } }, "ordered-read-streams": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", "dev": true, "requires": { "is-stream": "^1.0.1", "readable-stream": "^2.0.1" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { "lcid": "^1.0.0" } }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", "registry-url": "^3.0.3", "semver": "^5.1.0" } }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { "no-case": "^2.2.0" } }, "parse-entities": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", "dev": true, "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" }, "dependencies": { "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "^1.0.0" } } } }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "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-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "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-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { "pify": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "picomatch": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "postcss": { "version": "7.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "postcss-html": { "version": "0.36.0", "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", "dev": true, "requires": { "htmlparser2": "^3.10.0" } }, "postcss-jsx": { "version": "0.36.1", "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.1.tgz", "integrity": "sha512-xaZpy01YR7ijsFUtu5rViYCFHurFIPHir+faiOQp8g/NfTfWqZCKDhKrydQZ4d8WlSAmVdXGwLjpFbsNUI26Sw==", "dev": true, "requires": { "@babel/core": ">=7.2.2" } }, "postcss-less": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", "dev": true, "requires": { "postcss": "^7.0.14" } }, "postcss-markdown": { "version": "0.36.0", "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz", "integrity": "sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==", "dev": true, "requires": { "remark": "^10.0.1", "unist-util-find-all-after": "^1.0.2" } }, "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, "postcss-reporter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", "dev": true, "requires": { "chalk": "^2.4.1", "lodash": "^4.17.11", "log-symbols": "^2.2.0", "postcss": "^7.0.7" }, "dependencies": { "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { "chalk": "^2.0.1" } } } }, "postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, "postcss-safe-parser": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", "dev": true, "requires": { "postcss": "^7.0.0" } }, "postcss-sass": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.5.tgz", "integrity": "sha512-B5z2Kob4xBxFjcufFnhQ2HqJQ2y/Zs/ic5EZbCywCkxKd756Q40cIQ/veRDwSrw1BF6+4wUgmpm0sBASqVi65A==", "dev": true, "requires": { "gonzales-pe": "^4.2.3", "postcss": "^7.0.1" } }, "postcss-scss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz", "integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==", "dev": true, "requires": { "postcss": "^7.0.0" } }, "postcss-selector-parser": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "postcss-sorting": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-5.0.1.tgz", "integrity": "sha512-Y9fUFkIhfrm6i0Ta3n+89j56EFqaNRdUKqXyRp6kvTcSXnmgEjaVowCXH+JBe9+YKWqd4nc28r2sgwnzJalccA==", "dev": true, "requires": { "lodash": "^4.17.14", "postcss": "^7.0.17" }, "dependencies": { "postcss": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } } } }, "postcss-syntax": { "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", "dev": true }, "postcss-value-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "quick-lru": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", "dev": true }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" }, "dependencies": { "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true } } }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" } }, "read-pkg-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^3.0.0" } }, "readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, "dependencies": { "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" } } } }, "redent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", "dev": true, "requires": { "indent-string": "^3.0.0", "strip-indent": "^2.0.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 }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "^0.1.3" } }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", "dev": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, "registry-url": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { "rc": "^1.0.1" } }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, "remark": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", "dev": true, "requires": { "remark-parse": "^6.0.0", "remark-stringify": "^6.0.0", "unified": "^7.0.0" } }, "remark-parse": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", "dev": true, "requires": { "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", "parse-entities": "^1.1.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", "unist-util-remove-position": "^1.0.0", "vfile-location": "^2.0.0", "xtend": "^4.0.1" } }, "remark-stringify": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", "dev": true, "requires": { "ccount": "^1.0.0", "is-alphanumeric": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "longest-streak": "^2.0.1", "markdown-escapes": "^1.0.0", "markdown-table": "^1.1.0", "mdast-util-compact": "^1.0.0", "parse-entities": "^1.0.2", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "stringify-entities": "^1.0.1", "unherit": "^1.0.4", "xtend": "^4.0.1" } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, "resolve": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, "safe-wipe": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/safe-wipe/-/safe-wipe-0.2.4.tgz", "integrity": "sha1-U7k113dbc5qSS1FslbskF/qaRR4=", "dev": true, "requires": { "extend": "2.*", "q": "1.*", "rimraf": "2.*" }, "dependencies": { "extend": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz", "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==", "dev": true } } }, "sass-convert": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/sass-convert/-/sass-convert-0.5.2.tgz", "integrity": "sha1-se1CsOjW/pjsftbnijjiZWSGDwY=", "dev": true, "requires": { "concat-stream": "^1.4.7", "dargs": "^4.0.0", "ends-with": "^0.2.0", "es6-denodeify": "^0.1.0", "es6-promise": "^3.0.2", "memoize-decorator": "^1.0.2", "object-assign": "^3.0.0", "semver": "^5.0.1", "semver-regex": "^1.0.0", "through2": "^2.0.0", "which": "^1.0.5" }, "dependencies": { "object-assign": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", "dev": true }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } } } }, "sassdoc": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/sassdoc/-/sassdoc-2.7.1.tgz", "integrity": "sha512-eE06YYOyZAWccMl2mEIPnCgxiHKTwJ/vWGis9ZqVrXiYzQm3GKigsoQjU4Nz6/sp6qm7mY0RKgmlAkeBuhkxxg==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "babel-runtime": "^6.26.0", "chalk": "^2.4.2", "concat-stream": "^1.6.2", "docopt": "^0.6.1", "glob": "^7.1.4", "glob2base": "0.0.12", "js-yaml": "^3.13.1", "lodash.difference": "^4.5.0", "lodash.uniq": "^4.5.0", "minimatch": "^3.0.4", "mkdirp": "^0.5.0", "multipipe": "1.0.2", "rimraf": "^2.6.2", "safe-wipe": "0.2.4", "sass-convert": "^0.5.0", "sassdoc-theme-default": "^2.8.3", "scss-comment-parser": "^0.8.4", "strip-indent": "^2.0.0", "through2": "1.1.1", "update-notifier": "^2.5.0", "vinyl-fs": "^2.4.4", "vinyl-source-stream": "^1.0.0", "vinyl-string": "^1.0.2" } }, "sassdoc-extras": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/sassdoc-extras/-/sassdoc-extras-2.5.1.tgz", "integrity": "sha512-/+ilEnk1H1hG9nympL1GIFWhAczzoclyDzgzfphIg46nsT/dWJuzWYHyzIpduc/nTVwKeQfmTz0ZVvy12QMkrQ==", "dev": true, "requires": { "marked": "^0.6.2" } }, "sassdoc-theme-default": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/sassdoc-theme-default/-/sassdoc-theme-default-2.8.3.tgz", "integrity": "sha512-KEl1ghIAwkkBGiYvkwVFepOA8IDEqgKsm0fGHUIcepcXiIp2SoHA0ZC5TZFjwaTrs296K1QK5WL4QtjNhS76+g==", "dev": true, "requires": { "babel-runtime": "^6.22.0", "chroma-js": "^1.2.2", "es6-denodeify": "^0.1.0", "es6-promise": "^4.2.6", "extend": "^3.0.2", "fs-extra": "^2.0.0", "html-minifier": "^3.5.21", "nunjucks": "^3.1.7", "sassdoc-extras": "^2.5.0" }, "dependencies": { "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true } } }, "scss-comment-parser": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/scss-comment-parser/-/scss-comment-parser-0.8.4.tgz", "integrity": "sha512-ERw4BODvM22n8Ke8hJxuH3fKXLm0Q4chfUNHwDSOAExCths2ZXq8PT32vms4R9Om6dffRSXzzGZS1p38UU4EAg==", "dev": true, "requires": { "cdocparser": "^0.13.0" } }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true }, "semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { "semver": "^5.0.3" } }, "semver-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", "dev": true }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "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 }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "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 } } }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.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" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "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 }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", "dev": true }, "specificity": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", "dev": true }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "state-toggle": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==", "dev": true }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "string-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^5.2.0" } }, "string_decoder": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "stringify-entities": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-bom-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", "dev": true, "requires": { "first-chunk-stream": "^1.0.0", "strip-bom": "^2.0.0" }, "dependencies": { "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "^0.2.0" } } } }, "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 }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", "dev": true }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, "stylelint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-10.1.0.tgz", "integrity": "sha512-OmlUXrgzEMLQYj1JPTpyZPR9G4bl0StidfHnGJEMpdiQ0JyTq0MPg1xkHk1/xVJ2rTPESyJCDWjG8Kbpoo7Kuw==", "dev": true, "requires": { "autoprefixer": "^9.5.1", "balanced-match": "^1.0.0", "chalk": "^2.4.2", "cosmiconfig": "^5.2.0", "debug": "^4.1.1", "execall": "^2.0.0", "file-entry-cache": "^5.0.1", "get-stdin": "^7.0.0", "global-modules": "^2.0.0", "globby": "^9.2.0", "globjoin": "^0.1.4", "html-tags": "^3.0.0", "ignore": "^5.0.6", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "known-css-properties": "^0.14.0", "leven": "^3.1.0", "lodash": "^4.17.11", "log-symbols": "^3.0.0", "mathml-tag-names": "^2.1.0", "meow": "^5.0.0", "micromatch": "^4.0.0", "normalize-selector": "^0.2.0", "pify": "^4.0.1", "postcss": "^7.0.14", "postcss-html": "^0.36.0", "postcss-jsx": "^0.36.1", "postcss-less": "^3.1.4", "postcss-markdown": "^0.36.0", "postcss-media-query-parser": "^0.2.3", "postcss-reporter": "^6.0.1", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^4.0.1", "postcss-sass": "^0.3.5", "postcss-scss": "^2.0.0", "postcss-selector-parser": "^3.1.0", "postcss-syntax": "^0.36.2", "postcss-value-parser": "^3.3.1", "resolve-from": "^5.0.0", "signal-exit": "^3.0.2", "slash": "^3.0.0", "specificity": "^0.4.1", "string-width": "^4.1.0", "strip-ansi": "^5.2.0", "style-search": "^0.1.0", "sugarss": "^2.0.0", "svg-tags": "^1.0.0", "table": "^5.2.3" }, "dependencies": { "postcss-selector-parser": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { "dot-prop": "^4.1.1", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } } } }, "stylelint-config-recommended": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz", "integrity": "sha512-bZ+d4RiNEfmoR74KZtCKmsABdBJr4iXRiCso+6LtMJPw5rd/KnxUWTxht7TbafrTJK1YRjNgnN0iVZaJfc3xJA==", "dev": true }, "stylelint-declaration-block-no-ignored-properties": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/stylelint-declaration-block-no-ignored-properties/-/stylelint-declaration-block-no-ignored-properties-2.1.0.tgz", "integrity": "sha512-uz9aPLJc5cLHWmrEgXOxxobjjhuJFFO2a4XKGgVooL4Ip4OagLl9HaDlDJwr8vzbs0ZRhotaUJh+zrZcK19z/g==", "dev": true, "requires": { "postcss": "^7.0.14" } }, "stylelint-order": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-3.1.0.tgz", "integrity": "sha512-0BGQhRWOcdPi4oDVuInOHiXWzgCB9vEwJt5fvBre/I/brXLIumC9uiiAc3E6xUiUdWEmU2OLzAop8LK8UY0X0A==", "dev": true, "requires": { "lodash": "^4.17.15", "postcss": "^7.0.17", "postcss-sorting": "^5.0.1" }, "dependencies": { "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "postcss": { "version": "7.0.18", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } } } }, "stylelint-scss": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.10.1.tgz", "integrity": "sha512-YnzYmcLd5DGGsjfoj44gArjo3TWhMWjS/ytfu+1HKtToZae5ditZOXHBmrgitsHvNk9mzp5WO3/PjA5IO1GpUw==", "dev": true, "requires": { "lodash": "^4.17.15", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.0.2" }, "dependencies": { "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", "dev": true }, "postcss-value-parser": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", "dev": true } } }, "sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", "dev": true, "requires": { "postcss": "^7.0.2" } }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, "table": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/table/-/table-5.4.0.tgz", "integrity": "sha512-nHFDrxmbrkU7JAFKqKbDJXfzrX2UBsWmrieXFTGxiI5e4ncg3VqsZeI4EzNmX0ncp4XNGVeoxIWJXfCIXwrsvw==", "dev": true, "requires": { "ajv": "^6.9.1", "lodash": "^4.17.11", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "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 }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.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" } }, "through2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/through2/-/through2-1.1.1.tgz", "integrity": "sha1-CEfLxESfNAVXTb3M2buEG4OsNUU=", "dev": true, "requires": { "readable-stream": ">=1.1.13-1 <1.2.0-0", "xtend": ">=4.0.0 <4.1.0-0" }, "dependencies": { "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } }, "through2-filter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", "dev": true, "requires": { "through2": "~2.0.0", "xtend": "~4.0.0" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } } } }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, "to-absolute-glob": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", "dev": true, "requires": { "extend-shallow": "^2.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, "trim-newlines": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", "dev": true }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, "trim-trailing-lines": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==", "dev": true }, "trough": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==", "dev": true }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "uglify-js": { "version": "3.4.10", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", "dev": true, "requires": { "commander": "~2.19.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true } } }, "unherit": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", "dev": true, "requires": { "inherits": "^2.0.1", "xtend": "^4.0.1" } }, "unified": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", "dev": true, "requires": { "@types/unist": "^2.0.0", "@types/vfile": "^3.0.0", "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", "trough": "^1.0.0", "vfile": "^3.0.0", "x-is-string": "^0.1.0" } }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "unique-stream": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", "dev": true, "requires": { "json-stable-stringify-without-jsonify": "^1.0.1", "through2-filter": "^3.0.0" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "through2-filter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", "dev": true, "requires": { "through2": "~2.0.0", "xtend": "~4.0.0" } } } }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { "crypto-random-string": "^1.0.0" } }, "unist-util-find-all-after": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz", "integrity": "sha512-CaxvMjTd+yF93BKLJvZnEfqdM7fgEACsIpQqz8vIj9CJnUb9VpyymFS3tg6TCtgrF7vfCJBF5jbT2Ox9CBRYRQ==", "dev": true, "requires": { "unist-util-is": "^3.0.0" } }, "unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", "dev": true }, "unist-util-remove-position": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz", "integrity": "sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA==", "dev": true, "requires": { "unist-util-visit": "^1.1.0" } }, "unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, "requires": { "unist-util-visit-parents": "^2.0.0" } }, "unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dev": true, "requires": { "unist-util-is": "^3.0.0" } }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "optional": true }, "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { "boxen": "^1.2.1", "chalk": "^2.0.1", "configstore": "^3.0.0", "import-lazy": "^2.1.0", "is-ci": "^1.0.10", "is-installed-globally": "^0.1.0", "is-npm": "^1.0.0", "latest-version": "^3.0.0", "semver-diff": "^2.0.0", "xdg-basedir": "^3.0.0" }, "dependencies": { "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true } } }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { "prepend-http": "^1.0.1" } }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "vali-date": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "vfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", "dev": true, "requires": { "is-buffer": "^2.0.0", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" }, "dependencies": { "is-buffer": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", "dev": true } } }, "vfile-location": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.5.tgz", "integrity": "sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ==", "dev": true }, "vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "requires": { "unist-util-stringify-position": "^1.1.1" } }, "vinyl": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "dev": true, "requires": { "clone": "^1.0.0", "clone-stats": "^0.0.1", "replace-ext": "0.0.1" }, "dependencies": { "replace-ext": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", "dev": true } } }, "vinyl-fs": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", "dev": true, "requires": { "duplexify": "^3.2.0", "glob-stream": "^5.3.2", "graceful-fs": "^4.0.0", "gulp-sourcemaps": "1.6.0", "is-valid-glob": "^0.3.0", "lazystream": "^1.0.0", "lodash.isequal": "^4.0.0", "merge-stream": "^1.0.0", "mkdirp": "^0.5.0", "object-assign": "^4.0.0", "readable-stream": "^2.0.4", "strip-bom": "^2.0.0", "strip-bom-stream": "^1.0.0", "through2": "^2.0.0", "through2-filter": "^2.0.0", "vali-date": "^1.0.0", "vinyl": "^1.0.0" }, "dependencies": { "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "^0.2.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } } } }, "vinyl-source-stream": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz", "integrity": "sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=", "dev": true, "requires": { "through2": "^2.0.3", "vinyl": "^0.4.3" }, "dependencies": { "clone": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", "dev": true }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "vinyl": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", "dev": true, "requires": { "clone": "^0.2.0", "clone-stats": "^0.0.1" } } } }, "vinyl-string": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vinyl-string/-/vinyl-string-1.0.2.tgz", "integrity": "sha1-OiSe/rDTbEywpeWeMNaOVPc52OM=", "dev": true, "requires": { "vinyl": "^1.1.1" } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", "dev": true, "requires": { "string-width": "^2.1.1" }, "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 }, "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 }, "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" } }, "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" } } } }, "window-size": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", "dev": true }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "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.0.0" } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yargs": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "dev": true, "requires": { "camelcase": "^2.0.1", "cliui": "^3.0.3", "decamelize": "^1.1.1", "os-locale": "^1.4.0", "string-width": "^1.0.1", "window-size": "^0.1.4", "y18n": "^3.2.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "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.0.0" } } } }, "yargs-parser": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { "camelcase": "^4.1.0" } } } } bourbon-7.2.0/package.json000066400000000000000000000016301420521522100154460ustar00rootroot00000000000000{ "author": { "name": "thoughtbot", "url": "http://thoughtbot.com" }, "bugs": { "url": "https://github.com/thoughtbot/bourbon/issues" }, "description": "A lightweight Sass tool set.", "devDependencies": { "@thoughtbot/stylelint-config": "1.1.0", "sassdoc": "^2.5.0", "stylelint": "10.1.0" }, "eyeglass": { "needs": "*", "exports": "eyeglass-exports.js" }, "homepage": "https://www.bourbon.io/", "keywords": [ "css", "eyeglass-module", "mixins", "sass", "scss" ], "license": "MIT", "main": "index.js", "style": "core/_bourbon.scss", "name": "bourbon", "repository": { "type": "git", "url": "https://github.com/thoughtbot/bourbon.git" }, "scripts": { "sassdoc": "npx sassdoc core/ --parse --verbose --strict", "stylelint": "npx stylelint 'core/**/*.scss'", "test": "bundle exec rake" }, "version": "7.2.0" } bourbon-7.2.0/spec/000077500000000000000000000000001420521522100141125ustar00rootroot00000000000000bourbon-7.2.0/spec/bourbon/000077500000000000000000000000001420521522100155605ustar00rootroot00000000000000bourbon-7.2.0/spec/bourbon/library/000077500000000000000000000000001420521522100172245ustar00rootroot00000000000000bourbon-7.2.0/spec/bourbon/library/border_color_spec.rb000066400000000000000000000025021420521522100232350ustar00rootroot00000000000000require "spec_helper" describe "border-color" do before(:all) do ParserSupport.parse_file("library/border-color") end context "called with one color" do it "applies same color to all sides" do rule = "border-color: #f00" expect(".border-color-all").to have_rule(rule) end end context "called with two colors" do it "applies to alternating sides" do rule = "border-color: #0f0 #00f" expect(".border-color-alternate").to have_rule(rule) end end context "called with three colors" do it "applies second color to left and right" do rule = "border-color: #f00 #0f0 #00f" expect(".border-color-implied-left").to have_rule(rule) end end context "called with four colors" do it "applies different colors to all sides" do rule = "border-color: #00f #0f0 #f00 #ff0" expect(".border-color-explicit").to have_rule(rule) end end context "called with null values" do it "writes rules for other three" do ruleset = "border-top-color: #0f0; " + "border-right-color: #ff0; " + "border-left-color: #00f;" bad_rule = "border-bottom-color: null;" expect(".border-color-false-third").to have_ruleset(ruleset) expect(".border-color-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/border_radius_spec.rb000066400000000000000000000015201420521522100234050ustar00rootroot00000000000000require "spec_helper" describe "border-radius" do before(:all) do ParserSupport.parse_file("library/border-radius") end context "called with one argument" do it "applies to correct sides" do top = "border-top-left-radius: 1em; " + "border-top-right-radius: 1em;" left = "border-bottom-left-radius: 2em; " + "border-top-left-radius: 2em;" right = "border-bottom-right-radius: 3em; " + "border-top-right-radius: 3em;" bottom = "border-bottom-left-radius: 4em; " + "border-bottom-right-radius: 4em;" expect(".border-top-radius").to have_ruleset(top) expect(".border-left-radius").to have_ruleset(left) expect(".border-right-radius").to have_ruleset(right) expect(".border-bottom-radius").to have_ruleset(bottom) end end end bourbon-7.2.0/spec/bourbon/library/border_style_spec.rb000066400000000000000000000025241420521522100232630ustar00rootroot00000000000000require "spec_helper" describe "border-style" do before(:all) do ParserSupport.parse_file("library/border-style") end context "called with one style" do it "applies same style to all sides" do rule = "border-style: solid" expect(".border-style-all").to have_rule(rule) end end context "called with two styles" do it "applies to alternating sides" do rule = "border-style: dotted dashed" expect(".border-style-alternate").to have_rule(rule) end end context "called with three styles" do it "applies second style to left and right" do rule = "border-style: dashed double solid" expect(".border-style-implied-left").to have_rule(rule) end end context "called with four styles" do it "applies different styles to all sides" do rule = "border-style: dotted groove ridge none" expect(".border-style-explicit").to have_rule(rule) end end context "called with null values" do it "writes rules for other three" do ruleset = "border-top-style: inset; " + "border-right-style: none; " + "border-left-style: double;" bad_rule = "border-bottom-style: null;" expect(".border-style-false-third").to have_ruleset(ruleset) expect(".border-style-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/border_width_spec.rb000066400000000000000000000024711420521522100232430ustar00rootroot00000000000000require "spec_helper" describe "border-width" do before(:all) do ParserSupport.parse_file("library/border-width") end context "called with one color" do it "applies same width to all sides" do rule = "border-width: 1px" expect(".border-width-all").to have_rule(rule) end end context "called with two widths" do it "applies to alternating sides" do rule = "border-width: 2px 3px" expect(".border-width-alternate").to have_rule(rule) end end context "called with three widths" do it "applies second width to left and right" do rule = "border-width: 4px 5px 6px" expect(".border-width-implied-left").to have_rule(rule) end end context "called with four widths" do it "applies different widths to all sides" do rule = "border-width: 7px 8px 9px 10px" expect(".border-width-explicit").to have_rule(rule) end end context "called with null values" do it "writes rules for other three" do ruleset = "border-top-width: 11px; " + "border-right-width: 12px; " + "border-left-width: 13px;" bad_rule = "border-bottom-width: null;" expect(".border-width-false-third").to have_ruleset(ruleset) expect(".border-width-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/buttons_spec.rb000066400000000000000000000023301420521522100222570ustar00rootroot00000000000000require "spec_helper" describe "buttons" do before(:all) do ParserSupport.parse_file("library/buttons") @buttons_list = %w( button [type='button'] [type='reset'] [type='submit'] ) end context "expands plain buttons" do it "finds selectors" do list = @buttons_list.join(", ") ruleset = "content: #{list};" expect(".all-buttons").to have_ruleset(ruleset) end end context "expands active buttons" do it "finds selectors" do list = @buttons_list.map { |input| "#{input}:active" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-buttons-active").to have_ruleset(ruleset) end end context "expands focus buttons" do it "finds selectors" do list = @buttons_list.map { |input| "#{input}:focus" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-buttons-focus").to have_ruleset(ruleset) end end context "expands hover buttons" do it "finds selectors" do list = @buttons_list.map { |input| "#{input}:hover" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-buttons-hover").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/clearfix_spec.rb000066400000000000000000000005721420521522100223640ustar00rootroot00000000000000require "spec_helper" describe "clearfix" do before(:all) do ParserSupport.parse_file("library/clearfix") end context "called on element" do it "adds clearfix" do input = ".clearfix::after" ruleset = "clear: both; " + 'content: ""; ' + "display: block;" expect(input).to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/contrast_switch_spec.rb000066400000000000000000000010061420521522100237760ustar00rootroot00000000000000require "spec_helper" describe "contrast-switch" do before(:all) do ParserSupport.parse_file("library/contrast-switch") end context "called with a light base color" do it "outputs the dark color" do rule = "color: #000;" expect(".contrast-switch-light-base").to have_ruleset(rule) end end context "called with a dark base color" do it "outputs the light color" do rule = "color: #eee;" expect(".contrast-switch-dark-base").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/library/ellipsis_spec.rb000066400000000000000000000007571420521522100224200ustar00rootroot00000000000000require "spec_helper" describe "ellipsis" do before(:all) do ParserSupport.parse_file("library/ellipsis") end context "called on element" do it "adds ellipsis" do ruleset = "display: inline-block; " + "max-width: 100%; " + "overflow: hidden; " + "text-overflow: ellipsis; " + "white-space: nowrap; " + "word-wrap: normal;" expect(".ellipsis").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/font_face_spec_1.rb000066400000000000000000000007501420521522100227310ustar00rootroot00000000000000require "spec_helper" describe "font-face" do before(:all) do ParserSupport.parse_file("library/font-face-1") end context "called with defaults" do it "outputs defaults" do ruleset = 'font-family: "source-sans-pro"; ' + 'src: url("/fonts/source-sans-pro/source-sans-pro-regular.woff2") format("woff2"), url("/fonts/source-sans-pro/source-sans-pro-regular.woff") format("woff");' expect("@font-face").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/font_face_spec_2.rb000066400000000000000000000011171420521522100227300ustar00rootroot00000000000000require "spec_helper" describe "font-face" do before(:all) do ParserSupport.parse_file("library/font-face-5") end context "called with additional CSS rules" do it "outputs defaults with additional content" do ruleset = 'font-family: "calibre"; ' + 'src: url("fonts/calibre.woff2") format("woff2"), ' + 'url("fonts/calibre.woff") format("woff"); ' + "font-style: normal;" + "font-weight: 600;" + "unicode-range: U+26;" expect("@font-face").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/font_face_spec_3.rb000066400000000000000000000005651420521522100227370ustar00rootroot00000000000000require "spec_helper" describe "font-face" do before(:all) do ParserSupport.parse_file("library/font-face-3") end context "called with defaults" do it "outputs defaults" do ruleset = 'font-family: "pitch";' + 'src: font-url("/fonts/pitch.woff2") format("woff2");' expect("@font-face").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/font_stacks_spec.rb000066400000000000000000000035771420521522100231150ustar00rootroot00000000000000require "spec_helper" describe "font-stacks" do before(:all) do ParserSupport.parse_file("library/font-stacks") end context "stacks used in variable" do it "output stacks" do helvetica = '"Helvetica Neue", "Helvetica", "Arial", sans-serif' lucida_grande = '"Lucida Grande", "Lucida Sans Unicode", ' + '"Geneva", "Verdana", sans-serif' verdana = '"Verdana", "Geneva", sans-serif' garamond = '"Garamond", "Baskerville", "Baskerville Old Face", ' + '"Hoefler Text", "Times New Roman", serif' georgia = '"Georgia", "Times", "Times New Roman", serif' hoefler_text = '"Hoefler Text", "Baskerville Old Face", ' + '"Garamond", "Times New Roman", serif' consolas = '"Consolas", "monaco", monospace' courier_new = '"Courier New", "Courier", "Lucida Sans Typewriter", ' + '"Lucida Typewriter", monospace' monaco = '"Monaco", "Consolas", "Lucida Console", monospace' system = 'system-ui, -apple-system, BlinkMacSystemFont, "Avenir Next", ' + '"Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", ' + '"Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", ' + '"Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", ' + '"Century Gothic", "Liberation Sans", sans-serif' expect(".helvetica").to have_value(helvetica) expect(".lucida-grande").to have_value(lucida_grande) expect(".verdana").to have_value(verdana) expect(".garamond").to have_value(garamond) expect(".georgia").to have_value(georgia) expect(".hoefler-text").to have_value(hoefler_text) expect(".consolas").to have_value(consolas) expect(".courier-new").to have_value(courier_new) expect(".monaco").to have_value(monaco) expect(".system").to have_value(system) end end end bourbon-7.2.0/spec/bourbon/library/hide_text_spec.rb000066400000000000000000000005631420521522100225440ustar00rootroot00000000000000require "spec_helper" describe "hide-text" do before(:all) do ParserSupport.parse_file("library/hide-text") end context "called on element" do it "adds hide-text" do ruleset = "overflow: hidden; " + "text-indent: 101%; " + "white-space: nowrap;" expect(".hide-text").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/hide_visually_spec.rb000066400000000000000000000020721420521522100234250ustar00rootroot00000000000000require "spec_helper" describe "hide-visually" do before(:all) do ParserSupport.parse_file("library/hide-visually") end context "called on element" do it "adds properties to hide the element" do ruleset = "border: 0; " + "clip: rect(1px, 1px, 1px, 1px); " + "clip-path: inset(100%); " + "height: 1px; " + "overflow: hidden; " + "padding: 0; " + "position: absolute; " + "white-space: nowrap; " + "width: 1px;" expect(".hide-visually").to have_ruleset(ruleset) end end context "called with unhide argument" do it "adds properties to reverse the hiding of the element" do ruleset = "clip: auto; " + "clip-path: none; " + "height: auto; " + "overflow: visible; " + "position: static; " + "white-space: inherit; " + "width: auto;" expect(".hide-visually--unhide").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/margin_spec.rb000066400000000000000000000023251420521522100220420ustar00rootroot00000000000000require "spec_helper" describe "margin" do before(:all) do ParserSupport.parse_file("library/margin") end context "called with one size" do it "applies same width to all sides" do rule = "margin: 1px" expect(".margin-all").to have_rule(rule) end end context "called with two sizes" do it "applies to alternating sides" do rule = "margin: 2px 3px" expect(".margin-alternate").to have_rule(rule) end end context "called with three sizes" do it "applies second width to left and right" do rule = "margin: 4px 5px 6px" expect(".margin-implied-left").to have_rule(rule) end end context "called with four sizes" do it "applies different widths to all sides" do rule = "margin: 7px 8px 9px 10px" expect(".margin-explicit").to have_rule(rule) end end context "called with null values" do it "writes rules for other three" do ruleset = "margin-top: 11px; " + "margin-right: 12px; " + "margin-left: 13px;" bad_rule = "margin-bottom: null;" expect(".margin-false-third").to have_ruleset(ruleset) expect(".margin-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/modular_scale_spec.rb000066400000000000000000000025021420521522100233740ustar00rootroot00000000000000require "spec_helper" describe "modular-scale" do before(:all) do ParserSupport.parse_file("library/modular-scale") end context "called with arguments (1, $value: 2em)" do it "outputs double the first value from the default scale" do expect(".one-base-two").to have_rule("font-size: 2.5em") end end context "called with arguments (1, $value: 3em)" do it "outputs triple the first value from the default scale" do expect(".one-base-three").to have_rule("font-size: 3.75em") end end context "called with arguments (1, $value: 4em 6em)" do it "outputs quadruple the first value from the default scale" do expect(".one-double-value").to have_rule("font-size: 1.024em") end end context "called with arguments (1, $ratio: $golden-ratio)" do it "output the first value from the golden ratio scale" do expect(".one-golden-ratio").to have_rule("font-size: 1.618em") end end context "called with argument (2)" do it "outputs the second value from the default scale" do expect(".two-base-one").to have_rule("font-size: 1.5625em") end end context "called with arguments (2, $value: 4em 6em)" do it "outputs sextuple the second value from the default scale" do expect(".two-double-value").to have_rule("font-size: 3.125em") end end end bourbon-7.2.0/spec/bourbon/library/overflow_wrap_spec.rb000066400000000000000000000012131420521522100234540ustar00rootroot00000000000000require "spec_helper" describe "overflow-wrap" do before(:all) do ParserSupport.parse_file("library/overflow-wrap") end context "called on element" do it "adds overflow-wrap and word-wrap" do input = ".overflow-wrap" ruleset = "word-wrap: break-word; " + "overflow-wrap: break-word;" expect(input).to have_ruleset(ruleset) end end context "called on element with normal" do it "sets values as normal" do input = ".overflow-wrap-normal" ruleset = "word-wrap: normal; " + "overflow-wrap: normal;" expect(input).to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/padding_spec.rb000066400000000000000000000023451420521522100221750ustar00rootroot00000000000000require "spec_helper" describe "padding" do before(:all) do ParserSupport.parse_file("library/padding") end context "called with one size" do it "applies same width to all sides" do rule = "padding: 1px" expect(".padding-all").to have_rule(rule) end end context "called with two sizes" do it "applies to alternating sides" do rule = "padding: 2px 3px" expect(".padding-alternate").to have_rule(rule) end end context "called with three sizes" do it "applies second width to left and right" do rule = "padding: 4px 5px 6px" expect(".padding-implied-left").to have_rule(rule) end end context "called with four sizes" do it "applies different widths to all sides" do rule = "padding: 7px 8px 9px 10px" expect(".padding-explicit").to have_rule(rule) end end context "called with null values" do it "writes rules for other three" do ruleset = "padding-top: 11px; " + "padding-right: 12px; " + "padding-left: 13px;" bad_rule = "padding-bottom: null;" expect(".padding-false-third").to have_ruleset(ruleset) expect(".padding-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/position_spec.rb000066400000000000000000000034261420521522100224340ustar00rootroot00000000000000require "spec_helper" describe "position" do before(:all) do ParserSupport.parse_file("library/position") end context "called with one size" do it "applies same width to all sides" do ruleset = "position: fixed; " + "top: 1em; " + "right: 1em; " + "bottom: 1em; " + "left: 1em;" expect(".position-all").to have_ruleset(ruleset) end end context "called with two sizes" do it "applies to alternating sides" do ruleset = "position: absolute; " + "top: 2px; " + "right: 3px; " + "bottom: 2px; " + "left: 3px;" expect(".position-alternate").to have_ruleset(ruleset) end end context "called with three sizes" do it "applies second width to left and right" do ruleset = "position: relative; " + "top: 4px; " + "right: 5px; " + "bottom: 6px; " + "left: 5px;" expect(".position-implied-left").to have_ruleset(ruleset) end end context "called with four sizes" do it "applies different widths to all sides" do ruleset = "position: fixed; " + "top: 7px; " + "right: 8px; " + "bottom: 9px; " + "left: 10px;" expect(".position-explicit").to have_ruleset(ruleset) end end context "called with null values" do it "writes rules for others" do ruleset = "position: static; " + "top: 11px; " + "left: 13px;" bad_rule = "position-bottom: null; position-right: null;" expect(".position-false-third").to have_ruleset(ruleset) expect(".position-false-third").to_not have_rule(bad_rule) end end end bourbon-7.2.0/spec/bourbon/library/prefixer_spec.rb000066400000000000000000000014341420521522100224110ustar00rootroot00000000000000require "spec_helper" describe "prefixer" do before(:all) do ParserSupport.parse_file("library/prefixer") end context "called with no prefixes" do it "outputs the spec" do rule = "appearance: none;" expect(".prefix").to have_ruleset(rule) end end context "called with one prefix" do it "applies the prefix to the property" do rule = "-webkit-appearance: none; " + "appearance: none;" expect(".prefix--webkit").to have_ruleset(rule) end end context "called with multiple prefixes" do it "applies the prefixes to the property" do rule = "-moz-appearance: none; " + "-ms-appearance: none; " + "appearance: none;" expect(".prefix--moz-ms").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/library/shade_spec.rb000066400000000000000000000011751420521522100216530ustar00rootroot00000000000000require "spec_helper" describe "shade" do before(:all) do ParserSupport.parse_file("library/shade") end context "called on white" do it "shades white" do expect(".shade-white").to have_rule("color: #404040") end end context "called on black" do it "still returns black" do expect(".shade-black").to have_rule("color: black") end end context "called on red" do it "shades red" do expect(".shade-red").to have_rule("color: #bf0000") end end context "called on gray" do it "shades gray" do expect(".shade-gray").to have_rule("color: #171717") end end end bourbon-7.2.0/spec/bourbon/library/size_spec.rb000066400000000000000000000012461420521522100215400ustar00rootroot00000000000000require "spec_helper" describe "size" do before(:all) do ParserSupport.parse_file("library/size") end context "called with one size" do it "applies same width to both height and width" do rule = "height: 10px; width: 10px;" expect(".size-implicit").to have_ruleset(rule) end end context "called with two sizes" do it "applies to height and width" do rule = "height: 2em; width: 1em;" expect(".size-both").to have_ruleset(rule) end end context "called with auto" do it "applies to auto to height" do rule = "height: auto; width: 100px;" expect(".size-auto").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/library/strip_unit_spec.rb000066400000000000000000000011331420521522100227610ustar00rootroot00000000000000require "spec_helper" describe "strip-unit" do before(:all) do ParserSupport.parse_file("library/strip-unit") end context "called with px" do it "strips units" do expect(".px").to have_rule("width: 10") end end context "called with em" do it "strips units" do expect(".em").to have_rule("width: 2") end end context "called with rem" do it "strips units" do expect(".rem").to have_rule("width: 1.5") end end context "called with percent" do it "strips units" do expect(".percent").to have_rule("width: 20") end end end bourbon-7.2.0/spec/bourbon/library/text_inputs_spec.rb000066400000000000000000000034321420521522100231530ustar00rootroot00000000000000require "spec_helper" describe "text-inputs" do before(:all) do ParserSupport.parse_file("library/text-inputs") @inputs_list = %w( [type='color'] [type='date'] [type='datetime'] [type='datetime-local'] [type='email'] [type='month'] [type='number'] [type='password'] [type='search'] [type='tel'] [type='text'] [type='time'] [type='url'] [type='week'] input:not([type]) textarea ) end context "expands plain text inputs" do it "finds selectors" do list = @inputs_list.join(", ") ruleset = "content: #{list};" expect(".all-text-inputs").to have_ruleset(ruleset) end end context "expands active text inputs" do it "finds selectors" do list = @inputs_list.map { |input| "#{input}:active" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-text-inputs-active").to have_ruleset(ruleset) end end context "expands focus text inputs" do it "finds selectors" do list = @inputs_list.map { |input| "#{input}:focus" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-text-inputs-focus").to have_ruleset(ruleset) end end context "expands hover text inputs" do it "finds selectors" do list = @inputs_list.map { |input| "#{input}:hover" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-text-inputs-hover").to have_ruleset(ruleset) end end context "expands invalid text inputs" do it "finds selectors" do list = @inputs_list.map { |input| "#{input}:invalid" } list = list.join(", ") ruleset = "content: #{list};" expect(".all-text-inputs-invalid").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/library/tint_spec.rb000066400000000000000000000011611420521522100215400ustar00rootroot00000000000000require "spec_helper" describe "tint" do before(:all) do ParserSupport.parse_file("library/tint") end context "called on white" do it "still returns white" do expect(".tint-white").to have_rule("color: white") end end context "called on black" do it "tints black" do expect(".tint-black").to have_rule("color: gray") end end context "called on red" do it "tints red" do expect(".tint-red").to have_rule("color: #ff4040") end end context "called on gray" do it "tints gray" do expect(".tint-gray").to have_rule("color: #c6c6c6") end end end bourbon-7.2.0/spec/bourbon/library/triangle_spec.rb000066400000000000000000000015321420521522100223710ustar00rootroot00000000000000require "spec_helper" describe "triangle" do before(:all) do ParserSupport.parse_file("library/triangle") end context "called with defaults" do it "outputs the properties" do ruleset = "border-style: solid; " + "height: 0; " + "width: 0; " + "border-color: transparent transparent #b25c9c; " + "border-width: 0 1rem 1rem;" expect(".triangle--up").to have_ruleset(ruleset) end end context "called with arguments" do it "outputs the properties" do ruleset = "border-style: solid; " + "height: 0; " + "width: 0; " + "border-color: transparent transparent transparent #aaa; " + "border-width: 6px 0 6px 5px;" expect(".triangle--right").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/utilities/000077500000000000000000000000001420521522100175735ustar00rootroot00000000000000bourbon-7.2.0/spec/bourbon/utilities/assign_inputs_spec.rb000066400000000000000000000022411420521522100240170ustar00rootroot00000000000000require "spec_helper" describe "assign-inputs" do before(:all) do ParserSupport.parse_file("utilities/assign-inputs") @text_inputs_list = [ "[type='password']", "[type='text']", "textarea" ] end context "expands plain text inputs" do it "finds selectors" do @text_inputs_list.each do |input| expect(input).to have_rule("color: #f00") end end end context "expands text inputs with pseudo classes" do it "finds selectors" do list = @text_inputs_list.dup list.map! { |input| input + ":active" } list.each do |input| expect(input).to have_rule("color: #0f0") end end end context "expands text inputs when first in list" do it "finds selectors" do list = @text_inputs_list.dup list.push "select" list.each do |input| expect(input).to have_rule("color: #00f") end end end context "expands text inputs when middle of list" do it "finds selectors" do list = @text_inputs_list.dup list.unshift "[type=\"file\"]" list.each do |input| expect(input).to have_rule("color: #f0f") end end end end bourbon-7.2.0/spec/bourbon/utilities/compact_shorthand_spec.rb000066400000000000000000000015671420521522100246430ustar00rootroot00000000000000require "spec_helper" describe "compact-shorthand" do before(:all) do ParserSupport.parse_file("utilities/compact-shorthand") end context "compact-shorthand" do it "returns four values unaltered" do expect(".four-values-a").to have_rule("padding: 10px 20px 30px 40px") end it "returns four values when the left and right values are not equal" do expect(".four-values-b").to have_rule("padding: 5px 10px 5px 20px") end it "compacts four values to two values when the top/bottom and " + "left/right values are equal" do expect(".two-values").to have_rule("padding: 50px 100px") end it "compacts four values to one value when they all match" do expect(".one-value").to have_rule("padding: 10px") end it "skips null values" do expect(".null-value").to have_rule("padding: 10px 20px") end end end bourbon-7.2.0/spec/bourbon/utilities/contrast_ratio_spec.rb000066400000000000000000000010161420521522100241630ustar00rootroot00000000000000require "spec_helper" describe "contrast-ratio" do before(:all) do ParserSupport.parse_file("utilities/contrast-ratio") end context "calculates between white and black" do it "outputs the contrast ratio" do rule = "content: 21;" expect(".contrast-ratio-black").to have_ruleset(rule) end end context "calculates between white and blue" do it "outputs the contrast ratio" do rule = "content: 8.59247;" expect(".contrast-ratio-blue").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/utilities/directional_property_spec.rb000066400000000000000000000014641420521522100254000ustar00rootroot00000000000000require "spec_helper" describe "directional-property" do before(:all) do ParserSupport.parse_file("utilities/directional-property") end context "directional-property" do it "returns property and values with four distinct lengths" do expect(".border-all").to have_rule("border-width: 2px 5px 8px 12px") end it "returns property and value with one length" do expect(".border-top").to have_rule("border-top: 10px") end it "returns property and value with vertical and horizontal values" do expect(".border-color").to have_rule("border-color: #fff #000") end it "returns properties for top and bottom margin" do ruleset = "margin-top: 20px; " + "margin-bottom: 10px;" expect(".margin-null").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/utilities/fetch_bourbon_setting_spec.rb000066400000000000000000000016411420521522100255100ustar00rootroot00000000000000require "spec_helper" describe "fetch-bourbon-setting" do before(:all) do ParserSupport.parse_file("utilities/fetch-bourbon-setting") end context "fetches the modular-scale-base setting" do it "and returns the default value" do expect(".test-1").to have_rule("content: 1em") end end context "fetches the rails-asset-pipeline setting" do it "and returns the user-overridden value" do expect(".test-2").to have_rule("content: true") end end context "called from the font-face mixin" do it "outputs user-overridden font file formats" do ruleset = 'font-family: "source-sans-pro"; ' + 'src: font-url("source-sans-pro-regular.woff2") ' + 'format("woff2"), ' + 'font-url("source-sans-pro-regular.woff") ' + 'format("woff");' expect("@font-face").to have_ruleset(ruleset) end end end bourbon-7.2.0/spec/bourbon/utilities/font_source_declaration_spec.rb000066400000000000000000000012011420521522100260170ustar00rootroot00000000000000require "spec_helper" describe "font-source-declaration" do before(:all) do ParserSupport.parse_file("utilities/font-source-declaration") end context "called with pipeline" do it "returns pipeline path" do rule = 'src: font-url("b.woff2") format("woff2"), ' + 'font-url("b.woff") format("woff")' expect(".has-pipeline").to have_rule(rule) end end context "called with no pipeline" do it "does not return pipeline path" do rule = 'src: url("b.woff2") format("woff2"), ' + 'url("b.woff") format("woff")' expect(".no-pipeline").to have_rule(rule) end end end bourbon-7.2.0/spec/bourbon/utilities/gamma_spec.rb000066400000000000000000000007551420521522100222230ustar00rootroot00000000000000require "spec_helper" describe "gamma" do before(:all) do ParserSupport.parse_file("utilities/gamma") end context "called on a color channel" do it "outputs a gamma value between 0 and 1" do rule = "content: 0.12168;" expect(".gamma").to have_ruleset(rule) end end context "called on a full color channel" do it "outputs a gamma value between 0 and 1" do rule = "content: 1;" expect(".gamma-full").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/utilities/lightness_spec.rb000066400000000000000000000013171420521522100231340ustar00rootroot00000000000000require "spec_helper" describe "lightness" do before(:all) do ParserSupport.parse_file("utilities/lightness") end context "called on black" do it "outputs a number between 0 and 1 to indicate lightness" do rule = "content: 0;" expect(".lightness-black").to have_ruleset(rule) end end context "called on white" do it "outputs a number between 0 and 1 to indicate lightness" do rule = "content: 1;" expect(".lightness-white").to have_ruleset(rule) end end context "called on gray" do it "outputs a number between 0 and 1 to indicate lightness" do rule = "content: 0.20503;" expect(".lightness-gray").to have_ruleset(rule) end end end bourbon-7.2.0/spec/bourbon/utilities/unpack_spec.rb000066400000000000000000000015021420521522100224110ustar00rootroot00000000000000require "spec_helper" describe "unpack" do before(:all) do ParserSupport.parse_file("utilities/unpack") end context "single" do it "unpacks four identical measurements" do expect(".single").to have_rule("padding: 10px 10px 10px 10px") end end context "double" do it "unpacks identical measurements for top and bottom, and different identical measurements for left and right" do expect(".double").to have_rule("padding: 1em 2em 1em 2em") end end context "triple" do it "unpacks identical measurements for left and right" do expect(".triple").to have_rule("padding: 10px 20px 0 20px") end end context "quadruple" do it "unpacks four distict measurements" do expect(".quadruple").to have_rule("padding: 0 calc(1em + 10px) 20px 50px") end end end bourbon-7.2.0/spec/bourbon/validators/000077500000000000000000000000001420521522100177305ustar00rootroot00000000000000bourbon-7.2.0/spec/bourbon/validators/contains_spec.rb000066400000000000000000000011751420521522100231110ustar00rootroot00000000000000require "spec_helper" describe "contains" do before(:all) do ParserSupport.parse_file("validators/contains") end context "called on array with single item" do it "contains item" do expect(".single").to have_rule("color: #fff") end it "doesn't contain missing item" do expect(".single-missing").to have_rule("color: #000") end end context "called with array with multiple items" do it "contains item" do expect(".multiple").to have_rule("color: #fff") end it "doesn't contain missing item" do expect(".multiple-missing").to have_rule("color: #000") end end end bourbon-7.2.0/spec/bourbon/validators/is_length_spec.rb000066400000000000000000000026701420521522100232500ustar00rootroot00000000000000require "spec_helper" describe "is-length" do before(:all) do ParserSupport.parse_file("validators/is-length") end context "checks if unitless integer can be represented as a length" do it "returns false" do expect(".integer").not_to have_rule("color: #fff") end end context "checks if px can be represented as a length" do it "returns true" do expect(".pixels").to have_rule("color: #fff") end end context "checks if em can be represented as a length" do it "returns true" do expect(".ems").to have_rule("color: #fff") end end context "checks if percent can be represented as a length" do it "returns true" do expect(".percent").to have_rule("color: #fff") end end context "parses calculated values" do it "returns true" do expect(".calc").to have_rule("color: #fff") end end context "parses custom properties" do it "returns true" do expect(".var").to have_rule("color: #fff") end end context "parses environment variables" do it "returns true" do expect(".env").to have_rule("color: #fff") end end context "checks if strings can be represented as a length" do it "returns false" do expect(".string").not_to have_rule("color: #fff") end end context "checks if null can be represented as a length" do it "returns false" do expect(".null").not_to have_rule("color: #fff") end end end bourbon-7.2.0/spec/bourbon/validators/is_number_spec.rb000066400000000000000000000016101420521522100232500ustar00rootroot00000000000000require "spec_helper" describe "is-number" do before(:all) do ParserSupport.parse_file("validators/is-number") end context "called with integer" do it "is a number" do expect(".integer").to have_rule("line-height: 1") end end context "called with px" do it "is a number" do expect(".px").to have_rule("line-height: 2px") end end context "called with em" do it "is a number" do expect(".em").to have_rule("line-height: 3em") end end context "called with rem" do it "is a number" do expect(".rem").to have_rule("line-height: 4rem") end end context "called with percent" do it "is a number" do expect(".percent").to have_rule("line-height: 5%") end end context "called with string" do it "is not a number" do expect(".string").to_not have_rule("line-height: \"stringy\"") end end end bourbon-7.2.0/spec/bourbon/validators/is_size_spec.rb000066400000000000000000000015721420521522100227410ustar00rootroot00000000000000require "spec_helper" describe "is-size" do before(:all) do ParserSupport.parse_file("validators/is-size") end context "called with integer" do it "is not a size" do expect(".integer").to_not have_rule("margin-top: 1") end end context "called with px" do it "is a size" do expect(".px").to have_rule("margin-top: 2px") end end context "called with em" do it "is a size" do expect(".em").to have_rule("margin-top: 3em") end end context "called with rem" do it "is a size" do expect(".rem").to have_rule("margin-top: 4rem") end end context "called with percent" do it "is a size" do expect(".percent").to have_rule("margin-top: 5%") end end context "called with string" do it "is not a size" do expect(".string").to_not have_rule("margin-top: \"stringy\"") end end end bourbon-7.2.0/spec/fixtures/000077500000000000000000000000001420521522100157635ustar00rootroot00000000000000bourbon-7.2.0/spec/fixtures/_setup.scss000066400000000000000000000000301420521522100201500ustar00rootroot00000000000000@import "core/bourbon"; bourbon-7.2.0/spec/fixtures/library/000077500000000000000000000000001420521522100174275ustar00rootroot00000000000000bourbon-7.2.0/spec/fixtures/library/border-color.scss000066400000000000000000000006611420521522100227200ustar00rootroot00000000000000@import "setup"; $red: #f00; $blue: #0f0; $green: #00f; $purple: #ff0; .border-color-all { @include border-color($red); } .border-color-alternate { @include border-color($blue $green); } .border-color-implied-left { @include border-color($red $blue $green); } .border-color-explicit { @include border-color($green $blue $red $purple); } .border-color-false-third { @include border-color($blue $purple null $green); } bourbon-7.2.0/spec/fixtures/library/border-radius.scss000066400000000000000000000004111420521522100230620ustar00rootroot00000000000000@import "setup"; .border-top-radius { @include border-top-radius(1em); } .border-left-radius { @include border-left-radius(2em); } .border-right-radius { @include border-right-radius(3em); } .border-bottom-radius { @include border-bottom-radius(4em); } bourbon-7.2.0/spec/fixtures/library/border-style.scss000066400000000000000000000005721420521522100227430ustar00rootroot00000000000000@import "setup"; .border-style-all { @include border-style(solid); } .border-style-alternate { @include border-style(dotted dashed); } .border-style-implied-left { @include border-style(dashed double solid); } .border-style-explicit { @include border-style(dotted groove ridge none); } .border-style-false-third { @include border-style(inset none null double); } bourbon-7.2.0/spec/fixtures/library/border-width.scss000066400000000000000000000005371420521522100227230ustar00rootroot00000000000000@import "setup"; .border-width-all { @include border-width(1px); } .border-width-alternate { @include border-width(2px 3px); } .border-width-implied-left { @include border-width(4px 5px 6px); } .border-width-explicit { @include border-width(7px 8px 9px 10px); } .border-width-false-third { @include border-width(11px 12px null 13px); } bourbon-7.2.0/spec/fixtures/library/buttons.scss000066400000000000000000000003431420521522100220220ustar00rootroot00000000000000@import "setup"; .all-buttons { content: $all-buttons; } .all-buttons-active { content: $all-buttons-active; } .all-buttons-focus { content: $all-buttons-focus; } .all-buttons-hover { content: $all-buttons-hover; } bourbon-7.2.0/spec/fixtures/library/clearfix.scss000066400000000000000000000000651420521522100221220ustar00rootroot00000000000000@import "setup"; .clearfix { @include clearfix; } bourbon-7.2.0/spec/fixtures/library/contrast-switch.scss000066400000000000000000000002441420521522100234600ustar00rootroot00000000000000@import "setup"; .contrast-switch-light-base { color: contrast-switch(#bae6e6); } .contrast-switch-dark-base { color: contrast-switch(#2d72d9, #222, #eee); } bourbon-7.2.0/spec/fixtures/library/ellipsis.scss000066400000000000000000000000651420521522100221510ustar00rootroot00000000000000@import "setup"; .ellipsis { @include ellipsis; } bourbon-7.2.0/spec/fixtures/library/font-face-1.scss000066400000000000000000000001611420521522100223220ustar00rootroot00000000000000@import "setup"; @include font-face( "source-sans-pro", "/fonts/source-sans-pro/source-sans-pro-regular" ); bourbon-7.2.0/spec/fixtures/library/font-face-2.scss000066400000000000000000000002141420521522100223220ustar00rootroot00000000000000@import "setup"; @include font-face( "calibre", "fonts/calibre" ) { font-style: normal; font-weight: 600; unicode-range: U+26; } bourbon-7.2.0/spec/fixtures/library/font-face-3.scss000066400000000000000000000001511420521522100223230ustar00rootroot00000000000000@import "setup"; @include font-face( "pitch", "/fonts/pitch", "woff2", $asset-pipeline: true ); bourbon-7.2.0/spec/fixtures/library/font-stacks.scss000066400000000000000000000007771420521522100225730ustar00rootroot00000000000000@import "setup"; .helvetica { content: $font-stack-helvetica; } .lucida-grande { content: $font-stack-lucida-grande; } .verdana { content: $font-stack-verdana; } .garamond { content: $font-stack-garamond; } .georgia { content: $font-stack-georgia; } .hoefler-text { content: $font-stack-hoefler-text; } .consolas { content: $font-stack-consolas; } .courier-new { content: $font-stack-courier-new; } .monaco { content: $font-stack-monaco; } .system { content: $font-stack-system; } bourbon-7.2.0/spec/fixtures/library/hide-text.scss000066400000000000000000000000671420521522100222220ustar00rootroot00000000000000@import "setup"; .hide-text { @include hide-text; } bourbon-7.2.0/spec/fixtures/library/hide-visually.scss000066400000000000000000000001771420521522100231100ustar00rootroot00000000000000@import "setup"; .hide-visually { @include hide-visually; } .hide-visually--unhide { @include hide-visually("unhide"); } bourbon-7.2.0/spec/fixtures/library/margin.scss000066400000000000000000000004431420521522100216020ustar00rootroot00000000000000@import "setup"; .margin-all { @include margin(1px); } .margin-alternate { @include margin(2px 3px); } .margin-implied-left { @include margin(4px 5px 6px); } .margin-explicit { @include margin(7px 8px 9px 10px); } .margin-false-third { @include margin(11px 12px null 13px); } bourbon-7.2.0/spec/fixtures/library/modular-scale.scss000066400000000000000000000007051420521522100230560ustar00rootroot00000000000000@import "setup"; .one { &-base-two { font-size: modular-scale(1, $value: 2em); } &-base-three { font-size: modular-scale(1, $value: 3em); } &-double-value { font-size: modular-scale(1, $value: 1em 2em); } &-golden-ratio { font-size: modular-scale(1, $ratio: $golden); } } .two { &-base-one { font-size: modular-scale(2, $value: 1em); } &-double-value { font-size: modular-scale(2, $value: 2em); } } bourbon-7.2.0/spec/fixtures/library/overflow-wrap.scss000066400000000000000000000001741420521522100231400ustar00rootroot00000000000000@import "setup"; .overflow-wrap { @include overflow-wrap; } .overflow-wrap-normal { @include overflow-wrap(normal); } bourbon-7.2.0/spec/fixtures/library/padding.scss000066400000000000000000000004551420521522100217360ustar00rootroot00000000000000@import "setup"; .padding-all { @include padding(1px); } .padding-alternate { @include padding(2px 3px); } .padding-implied-left { @include padding(4px 5px 6px); } .padding-explicit { @include padding(7px 8px 9px 10px); } .padding-false-third { @include padding(11px 12px null 13px); } bourbon-7.2.0/spec/fixtures/library/position.scss000066400000000000000000000005411420521522100221700ustar00rootroot00000000000000@import "setup"; .position-all { @include position(fixed, 1em); } .position-alternate { @include position(absolute, 2px 3px); } .position-implied-left { @include position(relative, 4px 5px 6px); } .position-explicit { @include position(fixed, 7px 8px 9px 10px); } .position-false-third { @include position(static, 11px null null 13px); } bourbon-7.2.0/spec/fixtures/library/prefixer.scss000066400000000000000000000003301420521522100221440ustar00rootroot00000000000000@import "setup"; .prefix { @include prefixer(appearance, none); } .prefix--webkit { @include prefixer(appearance, none, ("webkit")); } .prefix--moz-ms { @include prefixer(appearance, none, ("moz", "ms")); } bourbon-7.2.0/spec/fixtures/library/shade.scss000066400000000000000000000003021420521522100214030ustar00rootroot00000000000000@import "setup"; .shade-white { color: shade(#fff, 75%); } .shade-black { color: shade(#000, 50%); } .shade-red { color: shade(#f00, 25%); } .shade-gray { color: shade(#222, 33%); } bourbon-7.2.0/spec/fixtures/library/size.scss000066400000000000000000000002251420521522100212750ustar00rootroot00000000000000@import "setup"; .size-implicit { @include size(10px); } .size-both { @include size(1em, 2em); } .size-auto { @include size(100px, auto); } bourbon-7.2.0/spec/fixtures/library/strip-unit.scss000066400000000000000000000002471420521522100224450ustar00rootroot00000000000000@import "setup"; .px { width: strip-unit(10px); } .em { width: strip-unit(2em); } .rem { width: strip-unit(1.5rem); } .percent { width: strip-unit(20%); } bourbon-7.2.0/spec/fixtures/library/text-inputs.scss000066400000000000000000000005061420521522100226310ustar00rootroot00000000000000@import "setup"; .all-text-inputs { content: $all-text-inputs; } .all-text-inputs-active { content: $all-text-inputs-active; } .all-text-inputs-focus { content: $all-text-inputs-focus; } .all-text-inputs-hover { content: $all-text-inputs-hover; } .all-text-inputs-invalid { content: $all-text-inputs-invalid; } bourbon-7.2.0/spec/fixtures/library/tint.scss000066400000000000000000000002721420521522100213030ustar00rootroot00000000000000@import "setup"; .tint-white { color: tint(#fff, 75%); } .tint-black { color: tint(#000, 50%); } .tint-red { color: tint(#f00, 25%); } .tint-gray { color: tint(#aaa, 33%); } bourbon-7.2.0/spec/fixtures/library/triangle.scss000066400000000000000000000002311420521522100221250ustar00rootroot00000000000000@import "setup"; .triangle--up { @include triangle("up", 2rem, 1rem, #b25c9c); } .triangle--right { @include triangle("right", 5px, 12px, #aaa); } bourbon-7.2.0/spec/fixtures/utilities/000077500000000000000000000000001420521522100177765ustar00rootroot00000000000000bourbon-7.2.0/spec/fixtures/utilities/assign-inputs.scss000066400000000000000000000004301420521522100234740ustar00rootroot00000000000000@import "setup"; #{_assign-inputs($_text-inputs-list)} { color: #f00; } #{_assign-inputs($_text-inputs-list, active)} { color: #0f0; } #{_assign-inputs($_text-inputs-list)}, select { color: #00f; } [type="file"], #{_assign-inputs($_text-inputs-list)} { color: #f0f; } bourbon-7.2.0/spec/fixtures/utilities/compact-shorthand.scss000066400000000000000000000005521420521522100243130ustar00rootroot00000000000000@import "setup"; .four-values-a { padding: _compact-shorthand(10px 20px 30px 40px); } .four-values-b { padding: _compact-shorthand(5px 10px 5px 20px); } .two-values { padding: _compact-shorthand(50px 100px 50px 100px); } .one-value { padding: _compact-shorthand(10px 10px 10px 10px); } .null-value { padding: _compact-shorthand(10px null 20px); } bourbon-7.2.0/spec/fixtures/utilities/contrast-ratio.scss000066400000000000000000000002261420521522100236440ustar00rootroot00000000000000@import "setup"; .contrast-ratio-black { content: _contrast-ratio(#fff, #000); } .contrast-ratio-blue { content: _contrast-ratio(#fff, #00f); } bourbon-7.2.0/spec/fixtures/utilities/directional-property.scss000066400000000000000000000005141420521522100250520ustar00rootroot00000000000000@import "setup"; .border-all { @include _directional-property(border, width, 2px 5px 8px 12px); } .border-top { @include _directional-property(border, top, 10px); } .border-color { @include _directional-property(border, color, #fff #000); } .margin-null { @include _directional-property(margin, null, 20px null 10px); } bourbon-7.2.0/spec/fixtures/utilities/fetch-bourbon-setting.scss000066400000000000000000000005031420521522100251010ustar00rootroot00000000000000@import "setup"; $bourbon: ( "global-font-file-formats": ("woff2", "woff"), "rails-asset-pipeline": true, ); .test-1 { content: _fetch-bourbon-setting("modular-scale-base"); } .test-2 { content: _fetch-bourbon-setting("rails-asset-pipeline"); } @include font-face("source-sans-pro", "source-sans-pro-regular"); bourbon-7.2.0/spec/fixtures/utilities/font-source-declaration.scss000066400000000000000000000003321420521522100254200ustar00rootroot00000000000000@import "setup"; $file-formats: ("woff2", "woff"); .has-pipeline { src: _font-source-declaration("a", "b", true, $file-formats); } .no-pipeline { src: _font-source-declaration("a", "b", false, $file-formats); } bourbon-7.2.0/spec/fixtures/utilities/gamma.scss000066400000000000000000000001521420521522100217530ustar00rootroot00000000000000@import "setup"; .gamma { content: _gamma(100 / 255); } .gamma-full { content: _gamma(255 / 255); } bourbon-7.2.0/spec/fixtures/utilities/lightness.scss000066400000000000000000000002711420521522100226730ustar00rootroot00000000000000@import "setup"; .lightness-black { content: _lightness(#000); } .lightness-white { content: _lightness(#fff); } .lightness-gray { content: _lightness(mix(#000, #fff, 50%)); } bourbon-7.2.0/spec/fixtures/utilities/unpack.scss000066400000000000000000000003721420521522100221560ustar00rootroot00000000000000@import "setup"; .single { padding: _unpack-shorthand(10px); } .double { padding: _unpack-shorthand(1em 2em); } .triple { padding: _unpack-shorthand(10px 20px 0); } .quadruple { padding: _unpack-shorthand(0 calc(1em + 10px) 20px 50px); } bourbon-7.2.0/spec/fixtures/validators/000077500000000000000000000000001420521522100201335ustar00rootroot00000000000000bourbon-7.2.0/spec/fixtures/validators/contains.scss000066400000000000000000000007251420521522100226520ustar00rootroot00000000000000@import "setup"; $single: "apple"; $multiple: "pineapple", "banana", "cumquat"; @mixin color-contains($list, $values) { @if _contains($list, $values) { color: #fff; } @else { color: #000; } } .single { @include color-contains($single, "apple"); } .single-missing { @include color-contains($single, "pear"); } .multiple { @include color-contains($multiple, "banana"); } .multiple-missing { @include color-contains($multiple, "strawberry"); } bourbon-7.2.0/spec/fixtures/validators/is-length.scss000066400000000000000000000010321420521522100227160ustar00rootroot00000000000000@import "setup"; @mixin color-length($value) { @if _is-length($value) { color: #fff; } } .integer { @include color-length(1); } .pixels { @include color-length(10px); } .ems { @include color-length(10em); } .percent { @include color-length(10%); } .calc { @include color-length(calc(2em - 5px)); } .env { @include color-length(env(safe-area-inset-top, 0)); } .var { @include color-length(var(--a-custom-property)); } .string { @include color-length("stringy"); } .null { @include color-length(null); } bourbon-7.2.0/spec/fixtures/validators/is-number.scss000066400000000000000000000005431420521522100227330ustar00rootroot00000000000000@import "setup"; @mixin line-height($number) { @if _is-number($number) { line-height: $number; } } .integer { @include line-height(1); } .px { @include line-height(2px); } .em { @include line-height(3em); } .rem { @include line-height(4rem); } .percent { @include line-height(5%); } .string { @include line-height("stringy"); } bourbon-7.2.0/spec/fixtures/validators/is-size.scss000066400000000000000000000005321420521522100224130ustar00rootroot00000000000000@import "setup"; @mixin size-margin($size) { @if _is-size($size) { margin-top: $size; } } .integer { @include size-margin(1); } .px { @include size-margin(2px); } .em { @include size-margin(3em); } .rem { @include size-margin(4rem); } .percent { @include size-margin(5%); } .string { @include size-margin("stringy"); } bourbon-7.2.0/spec/spec_helper.rb000066400000000000000000000007621420521522100167350ustar00rootroot00000000000000$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib")) $LOAD_PATH.unshift(File.dirname(__FILE__)) require "rspec" require "bourbon" require "aruba/api" require "css_parser" Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } RSpec.configure do |config| config.include SassSupport config.include CssParser config.include ParserSupport config.include Aruba::Api config.before(:all) do generate_css end config.after(:all) do clean_up end end bourbon-7.2.0/spec/support/000077500000000000000000000000001420521522100156265ustar00rootroot00000000000000bourbon-7.2.0/spec/support/matchers/000077500000000000000000000000001420521522100174345ustar00rootroot00000000000000bourbon-7.2.0/spec/support/matchers/have_rule.rb000066400000000000000000000013631420521522100217360ustar00rootroot00000000000000RSpec::Matchers.define :have_rule do |expected| match do |selector| @rules = rules_from_selector(selector) @rules.include? expected end failure_message do |selector| if @rules.empty? %{no CSS for selector #{selector} were found} else rules = @rules.join("; ") %{Expected selector #{selector} to have CSS rule "#{expected}". Had "#{rules}".} end end def rules_from_selector(selector) rulesets = ParserSupport.parser.find_by_selector(selector) if rulesets.empty? [] else rules(rulesets) end end def rules(rulesets) rules = [] rulesets.map do |ruleset| ruleset.split(";").each do |rule| rules << rule.strip end end rules end end bourbon-7.2.0/spec/support/matchers/have_ruleset.rb000066400000000000000000000010131420521522100224420ustar00rootroot00000000000000RSpec::Matchers.define :have_ruleset do |expected| match do |selector| @ruleset = rules_from_selector(selector) @ruleset.join("; ") == expected end failure_message do |selector| if @ruleset.empty? %{no CSS for selector #{selector} were found} else ruleset = @ruleset.join("; ") %{Expected selector #{selector} to have CSS rule "#{expected}". Had "#{ruleset}".} end end def rules_from_selector(selector) ParserSupport.parser.find_by_selector(selector) end end bourbon-7.2.0/spec/support/matchers/have_value.rb000066400000000000000000000010341420521522100220760ustar00rootroot00000000000000RSpec::Matchers.define :have_value do |expected| match do |variable| selector_class = variable.sub("$", ".") @value_attribute = ParserSupport.parser.find_by_selector(selector_class)[0] unless @value_attribute.nil? actual_value = @value_attribute.split(":")[1].strip.sub(";", "") actual_value == expected end end failure_message do |variable_name| value_attribute = @value_attribute.to_s %{Expected variable #{variable_name} to have value "#{expected}". Had "#{value_attribute}".} end end bourbon-7.2.0/spec/support/parser_support.rb000066400000000000000000000005351420521522100212460ustar00rootroot00000000000000module ParserSupport def self.parser @parser ||= CssParser::Parser.new end def self.parse_file(identifier) parser.load_file!("tmp/#{identifier}.css") end def self.show_contents(identifier) css_file_contents = File.open("tmp/#{identifier}.css").read css_file_contents.each_line do |line| puts line end end end bourbon-7.2.0/spec/support/sass_support.rb000066400000000000000000000003061420521522100207170ustar00rootroot00000000000000module SassSupport def generate_css FileUtils.mkdir("tmp") `sass -I . spec/fixtures:tmp --update --precision=5 --sourcemap=none` end def clean_up FileUtils.rm_rf("tmp") end end