node-autoprefixer-8.6.5+repack/000077500000000000000000000000001363606675700164565ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/.editorconfig000066400000000000000000000002631363606675700211340ustar00rootroot00000000000000root = true [*] indent_style = space indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.{json,yml}] indent_size = 2 node-autoprefixer-8.6.5+repack/.gitignore000066400000000000000000000000561363606675700204470ustar00rootroot00000000000000.DS_Store *~ node_modules/ build/ coverage/ node-autoprefixer-8.6.5+repack/.npmignore000066400000000000000000000001441363606675700204540ustar00rootroot00000000000000.editorconfig node_modules yarn.lock build coverage autoprefixer.js test .travis.yml gulpfile.js node-autoprefixer-8.6.5+repack/.travis.yml000066400000000000000000000002131363606675700205630ustar00rootroot00000000000000language: node_js cache: yarn node_js: - node - "9" - "8" - "6" - "4" install: - YARN_IGNORE_ENGINES=true yarn git: depth: 5 node-autoprefixer-8.6.5+repack/AUTHORS000066400000000000000000000134151363606675700175320ustar00rootroot00000000000000# This is the official list of Autoprefixer authors for copyright purposes. # # This does not necessarily list everyone who has contributed code, since in # some cases, their employer may be the copyright holder. To see the full list # of contributors, see the revision history in source control or # https://github.com/postcss/autoprefixer/graphs/contributors # # Authors who wish to be recognized in this file should add themselves (or # their employer, as appropriate). Aaron Adam Lynch Adonis K Adriaan Aleksei Androsov Aleksey Shvayka Aleks Hudochenkov Alexey Komarov Alexey Plutalov Anders Olsen Sandvik Andreas Haller Andreas Lind Andrew Rhoads Andrey Sitnik Andrey Taritsyn Andy Trevorah Anton Khlynovskiy Artem Yavorsky aruseni Ben Briggs bernig Bogdan Chadkin brainopia Brandon Mathis Chad von Nau Chi Vinh Le Cory House Cory Simmons Craig Martin Damon Daniel Garcia-Carrillo Daniel Tschinder Danny Pule Darius David Narbutovich David Pike Denis Sokolov Diablohu Dominik Porada Dominik Schilling dotch Dmitry Semigradsky Efremov Alexey eitanr Erik Sundahl Eugene Datsky Evgeny Petukhov Evilebot Tnawi Fangzhou Li Forrest York Google Inc. Gregory Eremin GU Yiling Gustavo Real Hallvord R. M. Steen heady HongShaoRou Huáng Jùnliàng Iain Beeston Igor Adamenko Filipe W. Lima Jack Moore Jason Kuhrt Jeff Escalante Joan León Johannes J. Schmidt John Kreitlow Jonathan Ong Josh Gillies Junliang Huang jvdanilo Kevin Pfefferle Kieran Kir Shatrov Kiwi kizu Leonya Khachaturov Lovchikov Anton L.T Lucas Caton Luciano Battagliero Luke Page martco Matt Smith Maxime Thirouin Max Mechanic Michael Beil Michael Scott Hertzberg Michał Gołębiowski-Owczarek Mikael Jorhult Morton Fox mvasilkov Nick Howes Nick Marchenko Nic Nilov Nick Schonning nickspielgist Niels Dequeker Nikolay Burlov Oleh Aloshkin Oleksandr Sergiienko Pavel Pustovalov Pavel Vostrikov Paul Statezny Peter van Westen Peter Zotov Phani Kandula Phil Dokas Rafael Silva Ray Lehnhoff ReadmeCritic Reinaldo Schiehll René Stalder Richard Wang Rob Howell Roland Warmerdam Roman Dvornov Ryan Zimmerman Sami Suo-Heikki Sasha Koss Sean Anderson Sergey Belov Sergey Leschina Sergey Lysenko sethjgore Šime Vidas Simon Lydell Sindre Sorhus Stanislav Stephen Edgar Steve Mao Stig Otnes Kolstad Subash Pathak sunhao tomdavenport Tony Ganch Vegard Andreas Larsen Vera Surkova Vincent De Oliveira Vishnu Ravi Vladimir Pouzanov vladkens Yet Another Minion Yuriy Alekseyev Yury Timofeev Даниил Пронин 一丝 刘祺 忆初 node-autoprefixer-8.6.5+repack/CHANGELOG.md000066400000000000000000000623431363606675700202770ustar00rootroot00000000000000# Change Log This project adheres to [Semantic Versioning](http://semver.org/). ## 8.6.5 * Do not show Grid warnings if IE was not selected. ## 8.6.4 * Fix `stretch` prefix in Chrome >= 46. ## 8.6.3 * Add warnings for unsupported Grid features. * Add warnings about wrong Grid properties. * Add note about `grid` option for grid properties in `autoprefixer --info`. ## 8.6.2 * Fix error during adding Grid prefixes in `@media` (by Evgeny Petukhov). ## 8.6.1 * Fix `grid-template` with media queries (by Evgeny Petukhov). ## 8.6 “Follow Reason” * Add `gap` support (by Evgeny Petukhov). * Add two values support for `grid-gap` and `gap` (by Evgeny Petukhov). * Add `ignoreUnknownVersions` option for Browserslist. ## 8.5.2 * Fix `grid-template` support wit auto row sizes (by Yury Timofeev). ## 8.5.1 * Remove unnecessary warning on `-webkit-fill-available`. ## 8.5 “Muito Nobre e Sempre Leal” * Add `grid-gap` support (by Evgeny Petukhov). * Fix radial gradients direction fix. * Fix docs (by Phani Kandula and Huáng Jùnliàng). ## 8.4.1 * Fix working in old PostCSS versions (by Diablohu). ## 8.4 “Non in aves, sed in angues” * Add `/* autoprefixer: ignore next */` control comment (by Pavel Vostrikov). ## 8.3 “Benigno Numine” * Add `@media` support to `grid-template` (by Evgeny Petukhov). * Fix `radial-gradient` direction warning (by Gustavo Real). ## 8.2 “Ad Astra per Aspera” * Add `color-adjust` (by Sergey Lysenko, Stanislav Botev, and Yuriy Alekseyev). ## 8.1 “Rex, Familia et Ultio” * Add `overscroll-behavior` support. * Add `grid-template` shortcut support (by Evgeny Petukhov). * Add better `grid-column-end` and `grid-row-end` support (by Evgeny Petukhov). * Fix Grid properties support in `@supports`. ## 8.0 “Excelsior” * Use Browserslist 3.0. * Rename `autoprefixer-info` CLI tool to `autoprefixer --info`. * Remove `break-*` to `page-break-*` conversion for Firefox. ## 7.2.6 * Fix `-ms-` prefix for grid cells with same `grid-area` (by Evgeny Petukhov). ## 7.2.5 * Fix multiple prefixes in declaration value. ## 7.2.4 * Fix IE 10 support. ## 7.2.3 * Fix `grid-template-areas` in `@media` (by Evgeny Petukhov). ## 7.2.2 * Fix `_autoprefixerDisabled is undefined` issue. ## 7.2.1 * Fix IE and other old JS runtimes support. ## 7.2 “Ordem e Progresso” * Add `grid-template-areas` support (by Evgeny Petukhov). * Add `grid-template` support (by Evgeny Petukhov). * Add `grid-area` support (by Alexey Komarov). * Add `autoprefixer-info` CLI tool. * Add wrong `radial-gradient` properties warning. * Use current working dir on missed `from` in `info()` (by Phil Dokas). * Fix `grid-row` and `grid-column` support (by Alexey Komarov). * Do not prefix `reverse` animation direction. * Improve test coverage (by Dmitry Semigradsky). ## 7.1.6 * Add warning for using `browserslist` option instead of `browsers`. * Add warning for multiple control comments in the same scope. * Fix `Invalid array length` error during indent changes. ## 7.1.5 * Fix `::placeholder` prefix for Edge. * Fix `inherit`/`initial`/`unset` values for `flex-direction`. * Fix RegExp usage in gradients (by Yet Another Minion). ## 7.1.4 * Fix `radial-gradient` direction conversion. * Fix `image-set` in `cursor`. ## 7.1.3 * Add warning for old `radial-gradient` direction syntax. ## 7.1.2 * Fix `text-decoration` shortcut support. ## 7.1.1 * Remove non-`-webkit-` intrinsic prefixes in Grid Layout (by 一丝). ## 7.1 “Universitas litterarum” * Add `unicode-bidi` support. * Add `-webkit-appearance` support for Edge. * Add `from` option to `info()`. * Fix intrinsic widths prefixes in Grid Layout. ## 7.0.1 * Fix Autoprefixer for old JS runtimes. ## 7.0 “Coelestem adspicit lucem” * Remove node.js 0.12 support. * Use PostCSS 6.0. * Use Browserslist 2. * Use `caniuse-lite` instead of `caniuse-db` (by Ben Briggs). * Use `^` for Browserslist dependencies, instead of `~`. * Rewrite project from CoffeeScript to Babel (by Dmitry Semigradsky). * Disable Grid Layout prefixes for IE by default. * Fix `-ms-grid-column-align`. * Move tests to Jest. ## 6.7.7 * Fix `order` for non-digit values. ## 6.7.6 * Fix `font-kerning` (by Chi Vinh Le). ## 6.7.5 * Fix `text-decoration-skip` in iOS (by Chi Vinh Le). * Fix `clip-path` (by Chi Vinh Le). ## 6.7.4 * Improve `browsers` option perfomance. * Update CoffeeScript compiler. ## 6.7.3 * Fix compatibility with “Intrinsic & Extrinsic Sizing” spec update. ## 6.7.2 * Do not prefix grid/flexbox in `@supports` on `grid: false`/`flexbox: false`. ## 6.7.1 * Update Browserslist with `last n version` fix. ## 6.7 “Krungthep doot thep saang” * Add Electron support in browsers list (by Kilian Valkhof). * Add `flex-flow` partial support for Flexbox 2009 specification. * Fix browsers `0` version issue in some Can I Use data. ## 6.6.1 * Add metadata to use Autoprefixer in JSS tests (by Chi Vinh Le). ## 6.6 “Kaiyuan” * Add `browserslist` key in `package.json` support. * Add support for separated environments in browserslist config. * Add `browserslist-stats.json` file support to load custom usage statistics. ## 6.5.4 * Fix unitless 0 basis in IE10/IE11 shorthand flex (by Google). ## 6.5.3 * Add error for popular mistake with `browser` option instead of `browsers`. ## 6.5.2 * Clean prefixes data (by Reinaldo Schiehll). ## 6.5.1 * Fix selectors with `:--` prefix support. ## 6.5 “Einigkeit und Recht und Freiheit” * Add `defaults` keyword to browsers requirements. * Fix CSS Grid Layout support. * Fix `align-self` cleaning. ## 6.4.1 * Fix node cloning after some PostCSS plugins. ## 6.4 “Hic et ubique terrarum” * Add `:any-link` selector support. * Add `text-decoration-skip` support. * Add `transition: duration property` support. * Fix `-webkit-` prefix for `backface-visibility`. * Fix `rad` unit support in gradients (by 刘祺). * Fix `transition` support in Opera 12. * Removed Safari TP Grid prefixes support. ## 6.3.7 * Fix rare `Cannot read property 'constructor' of null` issue. ## 6.3.6 * Add Safari TP prefix support for Grid Layout. ## 6.3.5 * Fix duplicate prefixes for `-ms-interpolation-mode`. ## 6.3.4 * Show users coverage for selected browsers in `info()`. ## 6.3.3 * Fix transition warning. ## 6.3.2 * Fix jspm support (by Sean Anderson). ## 6.3.1 * Fix compatibility with Flexibility polyfill. ## 6.3 “Pro rege et lege” * Add Grid Layout support. * Add `text-spacing` support. * Add `> 10% in my stats` browsers query with custom usage statistics. * Add options to disable `@supports`, Flexbox or Grid support. * Fix compatibility with other PostCSS plugins. ## 6.2.3 * Fix error on broken transition with double comma. ## 6.2.2 * Fix issues in broken transitions. ## 6.2.1 * Fix AST error in transition warning (by @jvdanilo). ## 6.2 “Fluctuat nec mergitur” * Use `fill` instead of `fill-available` according spec changes (by 一丝). * Add `fill` support for logical dimension properties (by 一丝). * Add `text-emphasis` support (by 一丝). * Add prefixes to `@supports` only for compatible browsers. * Add `rad`, `grad` and `turn` units support to linear gradients. * Add some `deg` directions support for old WebKit linear gradients. * Fix `@supports` parenthesis (by @heady). * Add warning when prefixes could not be generated for complicated `transition-property` values. * Add warning for outdated `fill-available` value. * Add warning for wrong `text-emphasis-position` value. * Add “time capsule” warning for prefix-less future. * Normalizes all warning messages. ## 6.1.2 * Fix gradient hack on some parameters (by Alexey Efremov). ## 6.1.1 * Fix `cursor: grab` and `cursor: grabbing` support. ## 6.1 “Bil-shaʿb wa lil-shaʿb” * Change `transition` support to output more robust CSS. * Add `:read-only` support. * Add support for `appearance` with any values. * Add CSS-in-JS support via `postcss-js`. * Add loud `/*! autoprefixer: off */` control comments support. * Convert `rotateZ` to `rotate` for `-ms-transform`. * Use `postcss-value-parser` to carefully work with gradients. * Remove `-ms-transform-style` and `-o-transform-style` that never existed. ## 6.0.3 * Fix old gradient direction warning. ## 6.0.2 * Remove unnecessary `-khtml-` prefix too. ## 6.0.1 * Fix `cross-fade()` support (by 一丝). ## 6.0 “Eureka” * CLI was removed from `autoprefixer` package to `autoprefixer-cli`. * `autoprefixer-core` and `autoprefixer` packages was merged back. * Remove `autoprefixer(opt).process(css)`, use `autoprefixer.process(css, opt)`. * Remove `safe` option. Use separated Safe parser from PostCSS. * Remove Opera 12.1 from default query. * Use PostCSS 5.0 API. * Add custom syntaxes support. * Add `image-set` support (by 一丝). * Add `mask-border` support (by 一丝). * Add `filter()` function support (by Vincent De Oliveira). * Add `backdrop-filter` support (by Vincent De Oliveira). * Add `element()` support (by Vincent De Oliveira). * Add CSS Regions support. * Add Scroll Snap Points support. * Add `writing-mode` support. * Add `::backdrop` support. * Add `cross-fade()` support. * Add other `break-` properties support. * Add Microsoft Edge support (by Andrey Polischuk). * Add `not` keyword and exclude browsers by query. * Add version ranges `IE 6-9` (by Ben Briggs). * Fix `filter` in `transition` support on Safari. * Fix `url()` parsing. * Fix `pixelated` cleaning. * Always show old gradient direction warning. ## 5.2.1 * Fix parent-less node issue on some cases (by Josh Gillies). ## 5.2 “Dont tread on me” * Add `appearance` support. * Warn users on old gradient direction or flexbox syntax. * Add `add: false` option to disable new prefixes adding. * Make Autoprefixer 30% faster. * Use PostCSS 4.1 plugin API. * Add prefixes for `pixelated` instead of `crisp-edges` in `image-rendering`. * Do not add `::placeholder` prefixes for `:placeholder-shown`. * Fix `text-decoration` prefixes. * `autoprefixer.process()` was deprecated. Use PostCSS API. ## 5.1.11 * Update `num2fraction` to fix resolution media query (by 一丝). ## 5.1.10 * Do not generate `-webkit-image-rendering`. ## 5.1.9 * Fix DynJS compatibility (by Nick Howes). ## 5.1.8 * Fix gradients in `mask` and `mask-image` properties. * Fix old webkit prefix on some unsupported gradients. ## 5.1.7 * Fix placeholder selector (by Vincent De Oliveira). ## 5.1.6 * Use official `::placeholder-shown` selector (by Vincent De Oliveira). ## 5.1.5 * Add transition support for CSS Masks properties. ## 5.1.4 * Use `-webkit-` prefix for Opera Mobile 24. ## 5.1.3 * Add IE support for `image-rendering: crisp-edges`. ## 5.1.2 * Add never existed `@-ms-keyframes` to common mistake. ## 5.1.1 * Safer value split in `flex` hack. ## 5.1 “Jianyuan” * Add support for resolution media query (by 一丝). * Higher accuracy while removing prefixes in values. * Add support for logical properties (by 一丝). * Add `@viewport` support. * Add `text-overflow` support (by 一丝). * Add `text-emphasis` support (by 一丝). * Add `image-rendering: crisp-edges` support. * Add `text-align-last` support. * Return `autoprefixer.defaults` as alias to current `browserslist.defaults`. * Save code style while adding prefixes to `@keyframes` and `@viewport`. * Do not remove `-webkit-background-clip` with non-spec `text` value. * Fix `-webkit-filter` in `transition`. * Better support for browser versions joined on Can I Use like `ios_saf 7.0-7.1` (by Vincent De Oliveira). * Fix compatibility with `postcss-import` (by Jason Kuhrt). * Fix Flexbox prefixes for BlackBerry and UC Browser. * Fix gradient prefixes for old Chrome. ## 5.0 “Pravda vítězí” * Use PostCSS 4.0. * Use Browserslist to parse browsers queries. * Use global `browserslist` config. * Add `> 5% in US` query to select browsers by usage in some country. * Add `object-fit` and `object-position` properties support. * Add CSS Shape properties support. * Fix UC Browser name in debug info. * Remove `autoprefixer.defaults` and use defaults from Browserslist. ## 4.0.2 * Remove `o-border-radius`, which is common mistake in legacy CSS. ## 4.0.1 * Fix `@supports` support with brackets in values (by Vincent De Oliveira). ## 4.0 “Indivisibiliter ac Inseparabiliter” * Become 2.5 times fatser by new PostCSS 3.0 parser. * Do not remove outdated prefixes by `remove: false` option. * `map.inline` and `map.sourcesContent` options are now `true` by default. * Add `box-decoration-break` support. * Do not add old `-webkit-` prefix for gradients with `px` units. * Use previous source map to show origin source of CSS syntax error. * Use `from` option from previous source map `file` field. * Set `to` value to `from` if `to` option is missing. * Trim Unicode BOM on source maps parsing. * Parse at-rules without spaces like `@import"file"`. * Better previous `sourceMappingURL` annotation comment cleaning. * Do not remove previous `sourceMappingURL` comment on `map.annotation: false`. ## 3.1.2 * Update Firefox ESR version from 24 to 31. ## 3.1.1 * Use Flexbox 2009 spec for Android stock browser < 4.4. ## 3.1 “Satyameva Jayate” * Do not remove comments from prefixed values (by Eitan Rousso). * Allow Safari 6.1 to use final Flexbox spec (by John Kreitlow). * Fix `filter` value in `transition` in Webkits. * Show greetings if your browsers don’t require any prefixes. * Add `<=` and `<` browsers requirement (by Andreas Lind). ## 3.0.1 * Fix `autoprefixer.postcss` in callbacks. ## 3.0 “Liberté, Égalité, Fraternité” * Project was split to autoprefixer (with CLI) and autoprefixer-core. * `autoprefixer()` now receives only `options` object with `browsers` key. * GNU format for syntax error messages from PostCSS 2.2. ## 2.2 “Mobilis in mobili” * Allow to disable Autoprefixer for some rule by control comment. * Use PostCSS 2.1 with Safe Mode option and broken source line in CSS syntax error messages. ## 2.1.1 * Fix `-webkit-background-size` hack for `contain` and `cover` values. * Don’t add `-webkit-` prefix to `filter` with SVG (by Vincent De Oliveira). ## 2.1 “Eleftheria i thanatos” * Add support for `clip-path` and `mask` properties. * Return `-webkit-` prefix to `filter` with SVG URI. ## 2.0.2 * Add readable names for new browsers from 2.0 release. * Don’t add `-webkit-` prefix to `filter` with SVG URI. * Don’t add `-o-` prefix 3D transforms. ## 2.0.1 * Save declaration style, when clone declaration to prefix. ## 2.0 “Hongik Ingan” * Based on PostCSS 1.0. See [options changes](https://github.com/postcss/postcss/releases/tag/1.0.0). * Restore visual cascade after declaration removing. * Enable visual cascade by default. * Prefix declareation in `@supports` at-rule conditions. * Add all browsers from Can I Use: `ie_mob`, `and_chr`, `and_ff`, `op_mob` and `op_mini`. * Allow to use latest Autoprefixer from GitHub by npm. * Add `--no-cascade`, `--annotation` and `--sources-content` options to binary. ## 1.3.1 * Fix gradient hack, when `background` property contains color. ## 1.3 “Tenka Fubu” * Add `text-size-adjust` support. * Add `background-size` to support Android 2. ## 1.2 “Meiji” * Use Can I Use data from official `caniuse-db` npm package. * Remove package data update from binary. * Use increment value instead of current date in minor versions. ## 1.1 “Nutrisco et extingo” * Add source map annotation comment support. * Add inline source map support. * Autodetect previous source map. * Fix source maps support on Windows. * Fix source maps support in subdirectory. * Prefix selector even if it is already prefixed by developer. * Add option `cascade` to create nice visual cascade of prefixes. * Fix flexbox support for IE 10 (by Roland Warmerdam). * Better `break-inside` support. * Fix prefixing, when two same properties are near. ### 20140222: * Add `touch-action` support. ### 20140226: * Chrome 33 is moved to released versions. * Add Chrome 36 data. ### 20140302: * Add `text-decoration-*` properties support. * Update browsers usage statistics. * Use new PostCSS version. ### 20140319: * Check already prefixed properties after current declaration. * Normalize spaces before already prefixed check. * Firefox 28 is moved to released versions. * Add Firefox 31 data. * Add some Blackberry data. ### 20140327: * Don’t use `-ms-transform` in `@keyframes`, because IE 9 doesn’t support animations. * Update BlackBerry 10 data. ### 20140403: * Update browsers usage statistics. * Opera 20 is moved to released versions. * Add Opera 22 data. ### 20140410: * Chrome 34 is moved to released versions. * Add Chrome 37 data. * Fix Chrome 36 data. ### 20140429: * Fix `display: inline-flex` support by 2009 spec. * Fix old WebKit gradient converter (by Sergey Belov). * Fix CSS 3 cursors data (by Nick Schonning). ### 20140430: * Separate 2D and 3D transform prefixes to clean unnecessary `-ms-` prefixes. * Firefox 29 is moved to released versions. * Add Firefox 32 data. ### 20140510 * Do not add `-ms-` prefix for `transform` with 3D functions. * Update browsers global usage statistics. ### 20140512 * Remove unnecessary `-moz-` prefix for `wavy` in `text-decoration`. * Update Safari data for font properties. ### 20140521 * Chrome 36 is moved to released versions. * Add Chrome 38 data. ### 20140523 * Opera 21 is moved to released versions. * Add Opera 23 data. ### 20140605 * Allow to parse gradients without space between color and position. * Add iOS 8, Safari 8 and Android 4.4.3 data. * Update browsers usage statistics. ## 1.0 “Plus ultra” * Source map support. * Save origin indents and code formatting. * Change CSS parser to PostCSS. * Preserve vendor-prefixed properties put right after unprefixed ones. * Rename `compile()` to `process()` and return result object, instead of CSS string. * Rename `inspect()` to `info()`. * Add in binary `-d` option to specify output directory. * Binary now will not concat output files. * Allow to select last versions for specified browser. * Add full browser names aliases: `firefox`, `explorer` and `blackberry`. * Ignore case in browser names. * Change license to MIT. * Add prefixes inside custom at-rules. * Add only necessary prefixes to selector inside prefixed at-rule. * Safer backgrounds list parser in gradient hack. * Prefix `@keyframes` inside `@media`. * Don’t prefix values for CSS3 PIE properties. * Binary now shows file name in syntax error. * Use browserify to build standalone version. ### 20131225: * Fix deprecated API convertor. * Add `::placeholder` support for Firefix >= 18. * Fix vendor prefixes order. ### 20140103: * Add `-webkit-` prefix for `sticky` position. * Update browsers popularity statistics. ### 20140109: * Add selectors and at-rules sections to debug info. * Fix outdated prefixes cleaning. ### 20140110: * Add `Firefox ESR` browser requirement. * Opera 18 is moved to released versions. * Add Opera 20 data. ### 20140117: * Chrome 32 is moved to released versions. * Add Opera 34 data. ### 20140130: * Fix flexbox properties names in transitions. * Add Chrome 35 and Firefox 29 data. ### 20140203: * Android 4.4 stock browser and Opera 19 are moved to released versions. * Add Opera 21 data. * Update browsers usage statistics. ### 20140213: * Add case insensitive to IE’s filter hack (by Dominik Schilling). * Improve selector prefixing in some rare cases (by Simon Lydell). * Firefox 27 is moved to released versions. * Add Firefox 30 data. ## 0.8 “Unbowed, Unbent, Unbroken” * Add more browsers to defaults ("> 1%, last 2 versions, ff 17, opera 12.1" instead of just "last 2 browsers"). * Keep vendor prefixes without unprefixed version (like vendor-specific hacks). * Convert gradients to old WebKit syntax (actual for Android 2.3). * Better support for several syntaxes with one prefix (like Flexbox and gradients in WebKit). * Add intrinsic and extrinsic sizing values support. * Remove never existed prefixes from common mistakes (like -ms-transition). * Add Opera 17 data. * Fix selector prefixes order. * Fix browser versions order in inspect. ### 20130903: * Fix old WebKit gradients convertor on rgba() colors. * Allow to write old direction syntax in gradients. ### 20130906: * Fix direction syntax in radial gradients. * Don’t prefix IE filter with modern syntax. ### 20130911: * Fix parsing property name with spaces. ### 20130919: * Fix processing custom framework prefixes (by Johannes J. Schmidt). * Concat outputs if several files compiled to one output. * Decrease standalone build size by removing unnecessary Binary class. * iOS 7 is moved to released versions. * Clean up binary code (by Simon Lydell). ### 20130923: * Firefox 24 is moved to released versions. ### 20131001: * Add support for grab, grabbing, zoom-in and zoom-out cursor values. ### 20131006: * Chrome 30 is moved to released versions. ### 20131007: * Don’t add another prefixes in rule with prefixed selector. ### 20131009: * Opera 17 is moved to released versions. ### 20131015: * Fix converting multiple gradients to old webkit syntax (by Aleksei Androsov). ### 20131017: * Fix @host at-rule parsing. ### 20131020: * IE 11 and Andrid 4.3 is moved to released versions. * Add Opera 18 data. * Add @namespace support. * Sort browser versions in data file. ### 20131029: * Add Safari 6.1 data. * Add fx alias for Firefox. ### 20131104: * Update Android future version to 4.4. * Google Chrome 32 added to future versions list. * Firefox 25 now is actual version, 27 and 28 added to future versions. * Browsers statistics are updated. ### 20131205: * Google Chrome 33 added to future releases list. * Google Chrome 31 moved to current releases list. ### 20131209: * Use old webkit gradients for old iOS and Safari (by Chad von Nau). * Fix direction conversion for old webkit gradients (by Chad von Nau). * Update browsers popularity statistics. ### 20131213: * Firefox ESR in default browsers was changed to 24 version. * Firefox 26 was moved to current releases list. * Firefox 28 was added to future releases list. ## 0.7 “We Do Not Sow” * Add vendor prefixes to selectors. * Add ::selection and ::placeholder selectors support. * Allow to load support data from Can I Use pull requests. * Remove deprecated API. ### 20130806: * Add hyphens support. ### 20130807: * Add tab-size support. * Add :fullscreen support. ### 20130808: * Allow to select browser versions by > and >= operator. * Fix flex properties in transition. ### 20130810: * Add Firefox 25 data. ### 20130824: * Add Chrome 31 and 30 data. * Fix CSS comments parsing (by vladkens). ## 0.6 “As High As Honor” * New faster API, which cache preprocessed data. Old API is deprecated. * A lot of perfomance improvements. * Add Opera 15 -webkit- prefix support. * Update Chrome 29 and Safari 7 prefixes data. * Add minor browsers in popularity select. * Better syntax error messages. ### 20130721: * Add Chrome 30 data. ### 20130728: * Don’t remove non-standard -webkit-background-clip: text. * Don’t remove IE hack on CSS parse. ### 20130729: * Add Opera 16 data. * Fix “Invalid range in character class” error on Firefox. ### 20130730: * Fix correct clone comments inside keyframes (by Alexey Plutalov). * Fix angle recalculation in gradients (by Roman Komarov). ### 20130731: * Add border-image support. ## 0.5 “Ours is the Fury” * Rewrite Autoprefixer to be more flexible. * Use css, instead of Rework, to fix CSS parsing errors faster. * Fix a lot of CSS parsing errors. ### 20130616: * More useful message for CSS parsing errors. * Remove old WebKit gradient syntax. * Fix parsing error on comment with braces. ### 20130617: * Remove old Mozilla border-radius. * Don’t prefix old IE filter. * Remove old background-clip, background-size and background-origin prefixes. * Speed up regexps in values. * Allow to hack property declarations. ### 20130625: * Convert flexbox properties to 2009 and 2012 specifications. * Improve messages on syntax errors. ### 20130626: * Add Firefox 24 data. * Add prefixes for font-feature-settings. ### 20130629: * Fix convert flex properties to old box-flex. ## 0.4 “Winter Is Coming” * Remove outdated prefixes. * Add border-radius and box-shadow properties to database. * Change degrees in webkit gradients. ### 20130515: * Add old syntax in gradient direction. * Add old syntax for display: flex. * Update browser global usage statistics. ### 20130521: * Add Firefox 23 data. ### 20130524: * Add Chrome 29 data. ### 20130528: * Fix compatibilty with Rework from git master. * Add minor browsers to data, which can be selected only directly. ### 20130530: * Add Opera 15 and iOS 6.1 data. * Fix iOS versions in properties and values data. ### 20130603: * Use latest Rework 0.15 with a lot of CSS parsing fixes. * Update browsers usage statistics. ## 0.3 “Growing Strong” * Rename `autoprefixer.filter()` to `autoprefixer.rework()`. * Use own filters instead of Rework’s `prefix` and `prefixValue`. * Smarter value prefixer without false match “order” in “border”. * 40% faster. * Don’t add unnecessary properties instead of Rework’s `prefixValue`. * Don’t change properties order. * Sort properties and values in inspect output. * Add main to component config (by Jonathan Ong). * Fix documentation (by Sergey Leschina and Mark Vasilkov). ### 20130424: * Fix value override in prefixer. ### 20130427: * Prefix several same values in one property. * Fix Windows support in binary. * Improve print errors in binary. ### 20130502: * Don’t add -webkit- prefix to IE filter. * Don’t duplicate prefixes on second run. ## 0.2 “Hear Me Roar!” * Update parse libraries. * Use component package manager to build standalone script. * Add inspect to standalone script. ## 0.1 “Fire and Blood” * Initial release. node-autoprefixer-8.6.5+repack/LICENSE000066400000000000000000000021071363606675700174630ustar00rootroot00000000000000The MIT License (MIT) Copyright 2013 Andrey Sitnik 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. node-autoprefixer-8.6.5+repack/README.md000066400000000000000000000423111363606675700177360ustar00rootroot00000000000000# Autoprefixer [![Cult Of Martians][cult-img]][cult] [PostCSS] plugin to parse CSS and add vendor prefixes to CSS rules using values from [Can I Use]. It is [recommended] by Google and used in Twitter and Taobao. Write your CSS rules without vendor prefixes (in fact, forget about them entirely): ```css ::placeholder { color: gray; } ``` Autoprefixer will use the data based on current browser popularity and property support to apply prefixes for you. You can try the [interactive demo] of Autoprefixer. ```css ::-webkit-input-placeholder { color: gray; } :-ms-input-placeholder { color: gray; } ::-ms-input-placeholder { color: gray; } ::placeholder { color: gray; } ``` Twitter account for news and releases: [@autoprefixer]. Sponsored by Evil Martians [interactive demo]: http://autoprefixer.github.io/ [@autoprefixer]: https://twitter.com/autoprefixer [recommended]: https://developers.google.com/web/tools/setup/setup-buildtools#dont_trip_up_with_vendor_prefixes [Can I Use]: http://caniuse.com/ [cult-img]: http://cultofmartians.com/assets/badges/badge.svg [PostCSS]: https://github.com/postcss/postcss [cult]: http://cultofmartians.com/tasks/autoprefixer-grid.html ## Browsers Autoprefixer uses [Browserslist], so you can specify the browsers you want to target in your project by queries like `> 5%` (see [Best Practices]). The best way to provide browsers is `.browserslistrc` config or `package.json` with `browserslist` key. Put it in your project root. We recommend to avoid Autoprefixer option and use `.browserslistrc` config or `package.json`. In this case browsers will be shared with other tools like [babel-preset-env] or [Stylelint]. See [Browserslist docs] for queries, browser names, config format, and default value. [Browserslist docs]: https://github.com/ai/browserslist#queries [babel-preset-env]: https://github.com/babel/babel-preset-env [Best Practices]: https://github.com/browserslist/browserslist#best-practices [Browserslist]: https://github.com/ai/browserslist [Stylelint]: http://stylelint.io/ ## FAQ #### Does Autoprefixer polyfill Grid Layout for IE? Autoprefixer can be used to use Grid Layout for IE 10 and IE 11. But this polyfill will not work in 100 % cases. This is why it is disabled by default. First, you need to enable Grid prefixes by `grid: true` option. Second, you need to test every fix with Grid in IE. It is not, enable and forget featur. But it is still very useful. Financial Times and Yandex use it in production. Third, there is not auto placement and all grid cell position must be set explicitly. However, Autoprefixer can covert even `grid-template` and `grid-gap` (but only when they are together). ```css .page { display: grid; grid-gap: 33px; grid-template: "head head head" 1fr "nav main main" minmax(100px, 1fr) "nav foot foot" 2fr / 1fr 100px 1fr; } .page__head { grid-area: head; } .page__nav { grid-area: nav; } .page__main { grid-area: main; } .page__footer { grid-area: foot; } ``` See also: * [The guide about Grids in IE and Autoprefixer]. * [`postcss-gap-properties`] to use new `gap` property instead of old `grid-gap`. * [`postcss-grid-kiss`] has alternate “everything in one property” syntax, which make using Autoprefixer’s Grid safer. [The guide about Grids in IE and Autoprefixer]: https://css-tricks.com/css-grid-in-ie-css-grid-and-the-new-autoprefixer/ [`postcss-gap-properties`]: https://github.com/jonathantneal/postcss-gap-properties [`postcss-grid-kiss`]: https://github.com/sylvainpolletvillard/postcss-grid-kiss #### No prefixes in production Many other tools contain Autoprefixer. For example, webpack uses Autoprefixer to minify CSS by cleaning unnecessary prefixes. If you set browsers list to Autoprefixer by `browsers` option, only first Autoprefixer will know your browsers. Autoprefixer inside webpack will use default browsers list. As result, webpack will remove prefixes, that first Autoprefixer added. You need to put your browsers to [`browserslist` config] in project root — as result all tools (Autoprefixer, cssnano, doiuse, cssnext) will use same browsers list. [`browserslist` config]: https://github.com/ai/browserslist#config-file #### What is unprefixed version for `-webkit-min-device-pixel-ratio`? ```css @media (min-resolution: 2dppx) { .image { background-image: url(image@2x.png); } } ``` Will be compiled to: ```css @media (-webkit-min-device-pixel-ratio: 2), (-o-min-device-pixel-ratio: 2/1), (min-resolution: 2dppx) { .image { background-image: url(image@2x.png); } } ``` #### Does it add polyfills? No. Autoprefixer only adds prefixes. Most new CSS features will require client side JavaScript to handle a new behavior correctly. Depending on what you consider to be a “polyfill”, you can take a look at some other tools and libraries. If you are just looking for syntax sugar, you might take a look at: - [postcss-preset-env] is a plugins preset with polyfills to write future CSS today. - [Oldie], a PostCSS plugin that handles some IE hacks (opacity, rgba, etc). - [postcss-flexbugs-fixes], a PostCSS plugin to fix flexbox issues. [postcss-flexbugs-fixes]: https://github.com/luisrudge/postcss-flexbugs-fixes [postcss-preset-env]: https://github.com/jonathantneal/postcss-preset-env [Oldie]: https://github.com/jonathantneal/oldie #### Why doesn’t Autoprefixer add prefixes to `border-radius`? Developers are often surprised by how few prefixes are required today. If Autoprefixer doesn’t add prefixes to your CSS, check if they’re still required on [Can I Use]. There is a [list with all supported] properties, values, and selectors. [list with all supported]: https://github.com/postcss/autoprefixer/wiki/support-list [Can I Use]: http://caniuse.com/ #### Why Autoprefixer uses unprefixed properties in `@-webkit-keyframes`? Browser teams can remove some prefixes before others. So we try to use all combinations of prefixed/unprefixed values. #### How to work with legacy `-webkit-` only code? Autoprefixer needs unprefixed property to add prefixes. So if you only wrote `-webkit-gradient` without W3C’s `gradient`, Autoprefixer will not add other prefixes. But [PostCSS] has a plugins to convert CSS to unprefixed state. Use [postcss-unprefix] before Autoprefixer. [postcss-unprefix]: https://github.com/gucong3000/postcss-unprefix #### Does Autoprefixer add `-epub-` prefix? No, Autoprefixer works only with browsers prefixes from Can I Use. But you can use [postcss-epub](https://github.com/Rycochet/postcss-epub) for prefixing ePub3 properties. #### Why doesn’t Autoprefixer transform generic font-family `system-ui`? `system-ui` is technically not a prefix and the transformation is not future-proof. But you can use [postcss-font-family-system-ui](https://github.com/JLHwung/postcss-font-family-system-ui) to transform `system-ui` to a practical font-family list. ## Usage ### Gulp In Gulp you can use [gulp-postcss] with `autoprefixer` npm package. ```js gulp.task('autoprefixer', function () { var postcss = require('gulp-postcss'); var sourcemaps = require('gulp-sourcemaps'); var autoprefixer = require('autoprefixer'); return gulp.src('./src/*.css') .pipe(sourcemaps.init()) .pipe(postcss([ autoprefixer() ])) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('./dest')); }); ``` With `gulp-postcss` you also can combine Autoprefixer with [other PostCSS plugins]. [other PostCSS plugins]: https://github.com/postcss/postcss#plugins [gulp-postcss]: https://github.com/postcss/gulp-postcss ### Webpack In [webpack] you can use [postcss-loader] with `autoprefixer` and [other PostCSS plugins]. ```js module.exports = { module: { rules: [ { test: /\.css$/, use: ["style-loader", "css-loader", "postcss-loader"] } ] } } ``` And create a `postcss.config.js` with: ```js module.exports = { plugins: [ require('autoprefixer') ] } ``` [other PostCSS plugins]: https://github.com/postcss/postcss#plugins [postcss-loader]: https://github.com/postcss/postcss-loader [webpack]: http://webpack.github.io/ ### Grunt In Grunt you can use [grunt-postcss] with `autoprefixer` npm package. ```js module.exports = function(grunt) { grunt.loadNpmTasks('grunt-postcss'); grunt.initConfig({ postcss: { options: { map: true, processors: [ require('autoprefixer') ] }, dist: { src: 'css/*.css' } } }); grunt.registerTask('default', ['postcss:dist']); }; ``` With `grunt-postcss` you also can combine Autoprefixer with [other PostCSS plugins]. [other PostCSS plugins]: https://github.com/postcss/postcss#plugins [grunt-postcss]: https://github.com/nDmitry/grunt-postcss ### Other Build Tools: * **Ruby on Rails**: [autoprefixer-rails] * **Neutrino**: [neutrino-middleware-postcss] * **Jekyll**: add `autoprefixer-rails` and `jekyll-assets` to `Gemfile` * **Brunch**: [postcss-brunch] * **Broccoli**: [broccoli-postcss] * **Middleman**: [middleman-autoprefixer] * **Mincer**: add `autoprefixer` npm package and enable it: `environment.enable('autoprefixer')` [neutrino-middleware-postcss]: https://www.npmjs.com/package/neutrino-middleware-postcss [middleman-autoprefixer]: https://github.com/middleman/middleman-autoprefixer [autoprefixer-rails]: https://github.com/ai/autoprefixer-rails [broccoli-postcss]: https://github.com/jeffjewiss/broccoli-postcss [postcss-brunch]: https://github.com/iamvdo/postcss-brunch ### Preprocessors * **Less**: [less-plugin-autoprefix] * **Stylus**: [autoprefixer-stylus] * **Compass**: [autoprefixer-rails#compass] [less-plugin-autoprefix]: https://github.com/less/less-plugin-autoprefix [autoprefixer-stylus]: https://github.com/jenius/autoprefixer-stylus [autoprefixer-rails#compass]: https://github.com/ai/autoprefixer-rails#compass ### CSS-in-JS There is [postcss-js] to use Autoprefixer in React Inline Styles, [Free Style], Radium and other CSS-in-JS solutions. ```js let prefixer = postcssJs.sync([ autoprefixer ]); let style = prefixer({ display: 'flex' }); ``` [postcss-js]: https://github.com/postcss/postcss-js [Free Style]: https://github.com/blakeembrey/free-style ### GUI Tools * [CodeKit](https://codekitapp.com/help/autoprefixer/) * [Prepros](https://prepros.io) ### CLI You can use the [postcss-cli] to run Autoprefixer from CLI: ```sh npm install postcss-cli autoprefixer npx postcss *.css --use autoprefixer -d build/ ``` See `postcss -h` for help. [postcss-cli]: https://github.com/postcss/postcss-cli ### JavaScript You can use Autoprefixer with [PostCSS] in your Node.js application or if you want to develop an Autoprefixer plugin for new environment. ```js var autoprefixer = require('autoprefixer'); var postcss = require('postcss'); postcss([ autoprefixer ]).process(css).then(function (result) { result.warnings().forEach(function (warn) { console.warn(warn.toString()); }); console.log(result.css); }); ``` There is also [standalone build] for the browser or as a non-Node.js runtime. You can use [html-autoprefixer] to process HTML with inlined CSS. [html-autoprefixer]: https://github.com/RebelMail/html-autoprefixer [standalone build]: https://raw.github.com/ai/autoprefixer-rails/master/vendor/autoprefixer.js [PostCSS]: https://github.com/postcss/postcss ### Text Editors and IDE Autoprefixer should be used in assets build tools. Text editor plugins are not a good solution, because prefixes decrease code readability and you will need to change value in all prefixed properties. I recommend you to learn how to use build tools like [Gulp]. They work much better and will open you a whole new world of useful plugins and automatization. But, if you can’t move to a build tool, you can use text editor plugins: * [Sublime Text](https://github.com/sindresorhus/sublime-autoprefixer) * [Brackets](https://github.com/mikaeljorhult/brackets-autoprefixer) * [Atom Editor](https://github.com/sindresorhus/atom-autoprefixer) * [Visual Studio](http://vswebessentials.com/) [Gulp]: http://gulpjs.com/ ## Warnings Autoprefixer uses the [PostCSS warning API] to warn about really important problems in your CSS: * Old direction syntax in gradients. * Old unprefixed `display: box` instead of `display: flex` by latest specification version. You can get warnings from `result.warnings()`: ```js result.warnings().forEach(function (warn) { console.warn(warn.toString()); }); ``` Every Autoprefixer runner should display this warnings. [PostCSS warning API]: https://github.com/postcss/postcss/blob/master/docs/api.md#warning-class ## Disabling ### Prefixes Autoprefixer was designed to have no interface – it just works. If you need some browser specific hack just write a prefixed property after the unprefixed one. ```css a { transform: scale(0.5); -moz-transform: scale(0.6); } ``` If some prefixes were generated in a wrong way, please create an issue on GitHub. ### Features You can use these plugin options to disable some of the Autoprefixer's features. * `supports: false` will disable `@supports` parameters prefixing. * `flexbox: false` will disable flexbox properties prefixing. Or `flexbox: "no-2009"` will add prefixes only for final and IE versions of specification. * `remove: false` will disable cleaning outdated prefixes. You should set them to the plugin: ```js autoprefixer({ grid: true }); ``` ### Control Comments If you do not need Autoprefixer in some part of your CSS, you can use control comments to disable Autoprefixer. ```css .a { transition: 1s; /* it will be prefixed */ } .b { /* autoprefixer: off */ transition: 1s; /* it will not be prefixed */ } .c { /* autoprefixer: ignore next */ transition: 1s; /* it will not be prefixed */ mask: url(image.png); /* it will be prefixed */ } ``` There are two types of control comments: * `/* autoprefixer: off */` disable the whole block *before* and after comment. * `/* autoprefixer: ignore next */` disable only next property or next rule selector or at-rule parameters (but not rule/at‑rule body). You can also use comments recursively: ```css /* autoprefixer: off */ @supports (transition: all) { /* autoprefixer: on */ a { /* autoprefixer: off */ } } ``` ## Options Function `autoprefixer(options)` returns new PostCSS plugin. See [PostCSS API] for plugin usage documentation. ```js autoprefixer({ cascade: false }) ``` Available options are: * `env` (string): environment for Browserslist. * `cascade` (boolean): should Autoprefixer use Visual Cascade, if CSS is uncompressed. Default: `true` * `add` (boolean): should Autoprefixer add prefixes. Default is `true`. * `remove` (boolean): should Autoprefixer [remove outdated] prefixes. Default is `true`. * `supports` (boolean): should Autoprefixer add prefixes for `@supports` parameters. Default is `true`. * `flexbox` (boolean|string): should Autoprefixer add prefixes for flexbox properties. With `"no-2009"` value Autoprefixer will add prefixes only for final and IE versions of specification. Default is `true`. * `grid` (boolean): should Autoprefixer add IE prefixes for Grid Layout properties. Default is `false`. * `stats` (object): custom [usage statistics] for `> 10% in my stats` browsers query. * `browsers` (array): list of queries for target browsers. Try to not use it.  The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json` to share target browsers with Babel, ESLint and Stylelint. See [Browserslist docs] for available queries and default value. * `ignoreUnknownVersions` (boolean): do not raise error on unknown browser version in Browserslist config or `browsers` option. Default is `false`. Plugin object has `info()` method for debugging purpose. You can use PostCSS processor to process several CSS files to increase performance. [usage statistics]: https://github.com/ai/browserslist#custom-usage-data [PostCSS API]: http://api.postcss.org ## Debug Run `npx autoprefixer --info` in your project directory to check which browsers are selected and which properties will be prefixed: ``` $ npx autoprefixer --info Browsers: Edge: 16 These browsers account for 0.04% of all users globally At-Rules: @viewport: ms Selectors: ::placeholder: ms Properties: user-select: ms hyphens: ms appearance: webkit scroll-snap-type: ms scroll-snap-coordinate: ms scroll-snap-destination: ms scroll-snap-points-x: ms scroll-snap-points-y: ms flow-into: ms flow-from: ms region-fragment: ms text-spacing: ms ``` JS API is also available: ```js var info = autoprefixer().info(); console.log(info); ``` node-autoprefixer-8.6.5+repack/bin/000077500000000000000000000000001363606675700172265ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/bin/autoprefixer000077500000000000000000000011261363606675700216710ustar00rootroot00000000000000#!/usr/bin/env node const mode = process.argv[2]; if (mode === '--info') { process.stdout.write( require('../')().info() + '\n'); } else if (mode === '--version') { process.stdout.write( 'autoprefixer ' + require('../package.json').version + '\n'); } else { process.stdout.write( 'autoprefix\n' + '\n' + 'Options:\n' + ' --info Show target browsers and used prefixes\n' + ' --version Show version number\n' + ' --help Show help\n' + '\n' + 'Usage:\n' + ' autoprefixer --info\n' ); } node-autoprefixer-8.6.5+repack/data/000077500000000000000000000000001363606675700173675ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/data/prefixes.js000066400000000000000000000474751363606675700215730ustar00rootroot00000000000000const unpack = require('caniuse-lite').feature; const browsersSort = (a, b) => { a = a.split(' '); b = b.split(' '); if (a[0] > b[0]) { return 1; } else if (a[0] < b[0]) { return -1; } else { return Math.sign(parseFloat(a[1]) - parseFloat(b[1])); } }; // Convert Can I Use data function f(data, opts, callback) { data = unpack(data); if (!callback) { [callback, opts] = [opts, {}]; } const match = opts.match || /\sx($|\s)/; const need = []; for (let browser in data.stats) { const versions = data.stats[browser]; for (let version in versions) { const support = versions[version]; if (support.match(match)) { need.push(browser + ' ' + version); } } } callback(need.sort(browsersSort)); } // Add data for all properties const result = {}; const prefix = function (names, data) { for (const name of names) { result[name] = Object.assign({}, data); } }; const add = function (names, data) { for (const name of names) { result[name].browsers = result[name].browsers .concat(data.browsers) .sort(browsersSort); } }; module.exports = result; // Border Radius f(require('caniuse-lite/data/features/border-radius'), browsers => prefix([ 'border-radius', 'border-top-left-radius', 'border-top-right-radius', 'border-bottom-right-radius', 'border-bottom-left-radius' ], { mistakes: ['-khtml-', '-ms-', '-o-'], feature: 'border-radius', browsers }) ); // Box Shadow f(require('caniuse-lite/data/features/css-boxshadow'), browsers => prefix(['box-shadow'], { mistakes: ['-khtml-'], feature: 'css-boxshadow', browsers }) ); // Animation f(require('caniuse-lite/data/features/css-animation'), browsers => prefix([ 'animation', 'animation-name', 'animation-duration', 'animation-delay', 'animation-direction', 'animation-fill-mode', 'animation-iteration-count', 'animation-play-state', 'animation-timing-function', '@keyframes' ], { mistakes: ['-khtml-', '-ms-'], feature: 'css-animation', browsers }) ); // Transition f(require('caniuse-lite/data/features/css-transitions'), browsers => prefix([ 'transition', 'transition-property', 'transition-duration', 'transition-delay', 'transition-timing-function' ], { mistakes: ['-khtml-', '-ms-'], browsers, feature: 'css-transitions' }) ); // Transform 2D f(require('caniuse-lite/data/features/transforms2d'), browsers => prefix(['transform', 'transform-origin'], { feature: 'transforms2d', browsers }) ); // Transform 3D const transforms3d = require('caniuse-lite/data/features/transforms3d'); f(transforms3d, browsers => { prefix(['perspective', 'perspective-origin'], { feature: 'transforms3d', browsers }); return prefix(['transform-style'], { mistakes: ['-ms-', '-o-'], browsers, feature: 'transforms3d' }); }); f(transforms3d, { match: /y\sx|y\s#2/ }, browsers => prefix(['backface-visibility'], { mistakes: ['-ms-', '-o-'], feature: 'transforms3d', browsers }) ); // Gradients const gradients = require('caniuse-lite/data/features/css-gradients'); f(gradients, { match: /y\sx/ }, browsers => prefix([ 'linear-gradient', 'repeating-linear-gradient', 'radial-gradient', 'repeating-radial-gradient' ], { props: [ 'background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image' ], mistakes: ['-ms-'], feature: 'css-gradients', browsers }) ); f(gradients, { match: /a\sx/ }, browsers => { browsers = browsers.map((i) => { if (/op/.test(i)) { return i; } else { return `${i} old`; } }); return add([ 'linear-gradient', 'repeating-linear-gradient', 'radial-gradient', 'repeating-radial-gradient' ], { feature: 'css-gradients', browsers }); }); // Box sizing f(require('caniuse-lite/data/features/css3-boxsizing'), browsers => prefix(['box-sizing'], { feature: 'css3-boxsizing', browsers }) ); // Filter Effects f(require('caniuse-lite/data/features/css-filters'), browsers => prefix(['filter'], { feature: 'css-filters', browsers }) ); // filter() function f(require('caniuse-lite/data/features/css-filter-function'), browsers => prefix(['filter-function'], { props: [ 'background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image' ], feature: 'css-filter-function', browsers }) ); // Backdrop-filter f(require('caniuse-lite/data/features/css-backdrop-filter'), browsers => prefix(['backdrop-filter'], { feature: 'css-backdrop-filter', browsers }) ); // element() function f(require('caniuse-lite/data/features/css-element-function'), browsers => prefix(['element'], { props: [ 'background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image' ], feature: 'css-element-function', browsers }) ); // Multicolumns f(require('caniuse-lite/data/features/multicolumn'), browsers => { prefix([ 'columns', 'column-width', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-count', 'column-rule-style', 'column-span', 'column-fill' ], { feature: 'multicolumn', browsers }); const noff = browsers.filter(i => !/firefox/.test(i)); prefix([ 'break-before', 'break-after', 'break-inside' ], { feature: 'multicolumn', browsers: noff }); }); // User select f(require('caniuse-lite/data/features/user-select-none'), browsers => prefix(['user-select'], { mistakes: ['-khtml-'], feature: 'user-select-none', browsers }) ); // Flexible Box Layout const flexbox = require('caniuse-lite/data/features/flexbox'); f(flexbox, { match: /a\sx/ }, browsers => { browsers = browsers.map((i) => { if (/ie|firefox/.test(i)) { return i; } else { return `${i} 2009`; } }); prefix(['display-flex', 'inline-flex'], { props: ['display'], feature: 'flexbox', browsers }); prefix(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { feature: 'flexbox', browsers }); prefix([ 'flex-direction', 'flex-wrap', 'flex-flow', 'justify-content', 'order', 'align-items', 'align-self', 'align-content' ], { feature: 'flexbox', browsers }); }); f(flexbox, { match: /y\sx/ }, browsers => { add(['display-flex', 'inline-flex'], { feature: 'flexbox', browsers }); add(['flex', 'flex-grow', 'flex-shrink', 'flex-basis'], { feature: 'flexbox', browsers }); add([ 'flex-direction', 'flex-wrap', 'flex-flow', 'justify-content', 'order', 'align-items', 'align-self', 'align-content' ], { feature: 'flexbox', browsers }); }); // calc() unit f(require('caniuse-lite/data/features/calc'), browsers => prefix(['calc'], { props: ['*'], feature: 'calc', browsers }) ); // Background options f(require('caniuse-lite/data/features/background-img-opts'), browsers => prefix(['background-clip', 'background-origin', 'background-size'], { feature: 'background-img-opts', browsers }) ); // Font feature settings f(require('caniuse-lite/data/features/font-feature'), browsers => prefix([ 'font-feature-settings', 'font-variant-ligatures', 'font-language-override' ], { feature: 'font-feature', browsers }) ); // CSS font-kerning property f(require('caniuse-lite/data/features/font-kerning'), browsers => prefix(['font-kerning'], { feature: 'font-kerning', browsers }) ); // Border image f(require('caniuse-lite/data/features/border-image'), browsers => prefix(['border-image'], { feature: 'border-image', browsers }) ); // Selection selector f(require('caniuse-lite/data/features/css-selection'), browsers => prefix(['::selection'], { selector: true, feature: 'css-selection', browsers }) ); // Placeholder selector f(require('caniuse-lite/data/features/css-placeholder'), browsers => { browsers = browsers.map((i) => { const [name, version] = i.split(' '); if (name === 'firefox' && parseFloat(version) <= 18) { return i + ' old'; } else if (name === 'ie') { return i + ' old'; } else { return i; } }); prefix(['::placeholder'], { selector: true, feature: 'css-placeholder', browsers }); }); // Hyphenation f(require('caniuse-lite/data/features/css-hyphens'), browsers => prefix(['hyphens'], { feature: 'css-hyphens', browsers }) ); // Fullscreen selector const fullscreen = require('caniuse-lite/data/features/fullscreen'); f(fullscreen, browsers => prefix([':fullscreen'], { selector: true, feature: 'fullscreen', browsers }) ); f(fullscreen, { match: /x(\s#2|$)/ }, browsers => prefix(['::backdrop'], { selector: true, feature: 'fullscreen', browsers }) ); // Tab size f(require('caniuse-lite/data/features/css3-tabsize'), browsers => prefix(['tab-size'], { feature: 'css3-tabsize', browsers }) ); // Intrinsic & extrinsic sizing const intrinsic = require('caniuse-lite/data/features/intrinsic-width'); f(intrinsic, browsers => prefix(['max-content', 'min-content', 'fit-content'], { props: [ 'width', 'min-width', 'max-width', 'height', 'min-height', 'max-height', 'inline-size', 'min-inline-size', 'max-inline-size', 'block-size', 'min-block-size', 'max-block-size', 'grid', 'grid-template', 'grid-template-rows', 'grid-template-columns', 'grid-auto-columns', 'grid-auto-rows' ], feature: 'intrinsic-width', browsers }) ); f(intrinsic, { match: /x|\s#4/ }, browsers => prefix(['fill', 'fill-available', 'stretch'], { props: [ 'width', 'min-width', 'max-width', 'height', 'min-height', 'max-height', 'inline-size', 'min-inline-size', 'max-inline-size', 'block-size', 'min-block-size', 'max-block-size', 'grid', 'grid-template', 'grid-template-rows', 'grid-template-columns', 'grid-auto-columns', 'grid-auto-rows' ], feature: 'intrinsic-width', browsers }) ); // Zoom cursors f(require('caniuse-lite/data/features/css3-cursors-newer'), browsers => prefix(['zoom-in', 'zoom-out'], { props: ['cursor'], feature: 'css3-cursors-newer', browsers }) ); // Grab cursors f(require('caniuse-lite/data/features/css3-cursors-grab'), browsers => prefix(['grab', 'grabbing'], { props: ['cursor'], feature: 'css3-cursors-grab', browsers }) ); // Sticky position f(require('caniuse-lite/data/features/css-sticky'), browsers => prefix(['sticky'], { props: ['position'], feature: 'css-sticky', browsers }) ); // Pointer Events f(require('caniuse-lite/data/features/pointer'), browsers => prefix(['touch-action'], { feature: 'pointer', browsers }) ); // Text decoration const decoration = require('caniuse-lite/data/features/text-decoration'); f(decoration, browsers => prefix([ 'text-decoration-style', 'text-decoration-color', 'text-decoration-line', 'text-decoration' ], { feature: 'text-decoration', browsers }) ); f(decoration, { match: /x.*#[23]/ }, browsers => prefix(['text-decoration-skip'], { feature: 'text-decoration', browsers }) ); // Text Size Adjust f(require('caniuse-lite/data/features/text-size-adjust'), browsers => prefix(['text-size-adjust'], { feature: 'text-size-adjust', browsers }) ); // CSS Masks f(require('caniuse-lite/data/features/css-masks'), browsers => { prefix([ 'mask-clip', 'mask-composite', 'mask-image', 'mask-origin', 'mask-repeat', 'mask-border-repeat', 'mask-border-source' ], { feature: 'css-masks', browsers }); prefix([ 'mask', 'mask-position', 'mask-size', 'mask-border', 'mask-border-outset', 'mask-border-width', 'mask-border-slice' ], { feature: 'css-masks', browsers }); }); // CSS clip-path property f(require('caniuse-lite/data/features/css-clip-path'), browsers => prefix(['clip-path'], { feature: 'css-clip-path', browsers }) ); // Fragmented Borders and Backgrounds f(require('caniuse-lite/data/features/css-boxdecorationbreak'), browsers => prefix(['box-decoration-break'], { feature: 'css-boxdecorationbreak', browsers }) ); // CSS3 object-fit/object-position f(require('caniuse-lite/data/features/object-fit'), browsers => prefix(['object-fit', 'object-position'], { feature: 'object-fit', browsers }) ); // CSS Shapes f(require('caniuse-lite/data/features/css-shapes'), browsers => prefix(['shape-margin', 'shape-outside', 'shape-image-threshold'], { feature: 'css-shapes', browsers }) ); // CSS3 text-overflow f(require('caniuse-lite/data/features/text-overflow'), browsers => prefix(['text-overflow'], { feature: 'text-overflow', browsers }) ); // Viewport at-rule f(require('caniuse-lite/data/features/css-deviceadaptation'), browsers => prefix(['@viewport'], { feature: 'css-deviceadaptation', browsers }) ); // Resolution Media Queries const resolut = require('caniuse-lite/data/features/css-media-resolution'); f(resolut, { match: /( x($| )|a #3)/ }, browsers => prefix(['@resolution'], { feature: 'css-media-resolution', browsers }) ); // CSS text-align-last f(require('caniuse-lite/data/features/css-text-align-last'), browsers => prefix(['text-align-last'], { feature: 'css-text-align-last', browsers }) ); // Crisp Edges Image Rendering Algorithm const crispedges = require('caniuse-lite/data/features/css-crisp-edges'); f(crispedges, { match: /y x|a x #1/ }, browsers => prefix(['pixelated'], { props: ['image-rendering'], feature: 'css-crisp-edges', browsers }) ); f(crispedges, { match: /a x #2/ }, browsers => prefix(['image-rendering'], { feature: 'css-crisp-edges', browsers }) ); // Logical Properties const logicalProps = require('caniuse-lite/data/features/css-logical-props'); f(logicalProps, browsers => prefix([ 'border-inline-start', 'border-inline-end', 'margin-inline-start', 'margin-inline-end', 'padding-inline-start', 'padding-inline-end' ], { feature: 'css-logical-props', browsers }) ); f(logicalProps, { match: /x\s#2/ }, browsers => prefix([ 'border-block-start', 'border-block-end', 'margin-block-start', 'margin-block-end', 'padding-block-start', 'padding-block-end' ], { feature: 'css-logical-props', browsers }) ); // CSS appearance const appearance = require('caniuse-lite/data/features/css-appearance'); f(appearance, { match: /#2|x/ }, browsers => prefix(['appearance'], { feature: 'css-appearance', browsers }) ); // CSS Scroll snap points f(require('caniuse-lite/data/features/css-snappoints'), browsers => prefix([ 'scroll-snap-type', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scroll-snap-points-x', 'scroll-snap-points-y' ], { feature: 'css-snappoints', browsers }) ); // CSS Regions f(require('caniuse-lite/data/features/css-regions'), browsers => prefix([ 'flow-into', 'flow-from', 'region-fragment' ], { feature: 'css-regions', browsers }) ); // CSS image-set f(require('caniuse-lite/data/features/css-image-set'), browsers => prefix(['image-set'], { props: [ 'background', 'background-image', 'border-image', 'cursor', 'mask', 'mask-image', 'list-style', 'list-style-image', 'content' ], feature: 'css-image-set', browsers }) ); // Writing Mode const writingMode = require('caniuse-lite/data/features/css-writing-mode'); f(writingMode, { match: /a|x/ }, browsers => prefix(['writing-mode'], { feature: 'css-writing-mode', browsers }) ); // Cross-Fade Function f(require('caniuse-lite/data/features/css-cross-fade'), browsers => prefix(['cross-fade'], { props: [ 'background', 'background-image', 'border-image', 'mask', 'list-style', 'list-style-image', 'content', 'mask-image' ], feature: 'css-cross-fade', browsers }) ); // Read Only selector f(require('caniuse-lite/data/features/css-read-only-write'), browsers => prefix([':read-only', ':read-write'], { selector: true, feature: 'css-read-only-write', browsers }) ); // Text Emphasize f(require('caniuse-lite/data/features/text-emphasis'), browsers => prefix([ 'text-emphasis', 'text-emphasis-position', 'text-emphasis-style', 'text-emphasis-color' ], { feature: 'text-emphasis', browsers }) ); // CSS Grid Layout const grid = require('caniuse-lite/data/features/css-grid'); f(grid, browsers => { prefix(['display-grid', 'inline-grid'], { props: ['display'], feature: 'css-grid', browsers }); prefix([ 'grid-template-columns', 'grid-template-rows', 'grid-row-start', 'grid-column-start', 'grid-row-end', 'grid-column-end', 'grid-row', 'grid-column', 'grid-area', 'grid-template', 'grid-template-areas' ], { feature: 'css-grid', browsers }); }); f(grid, { match: /a x/ }, browsers => prefix(['grid-column-align', 'grid-row-align'], { feature: 'css-grid', browsers }) ); // CSS text-spacing f(require('caniuse-lite/data/features/css-text-spacing'), browsers => prefix(['text-spacing'], { feature: 'css-text-spacing', browsers }) ); // :any-link selector f(require('caniuse-lite/data/features/css-any-link'), browsers => prefix([':any-link'], { selector: true, feature: 'css-any-link', browsers }) ); // unicode-bidi const bidi = require('caniuse-lite/data/features/css-unicode-bidi'); f(bidi, browsers => prefix(['isolate'], { props: ['unicode-bidi'], feature: 'css-unicode-bidi', browsers }) ); f(bidi, { match: /y x|a x #2/ }, browsers => prefix(['plaintext'], { props: ['unicode-bidi'], feature: 'css-unicode-bidi', browsers }) ); f(bidi, { match: /y x/ }, browsers => prefix(['isolate-override'], { props: ['unicode-bidi'], feature: 'css-unicode-bidi', browsers }) ); // overscroll-behavior selector const over = require('caniuse-lite/data/features/css-overscroll-behavior'); f(over, { match: /a #1/ }, browsers => prefix(['overscroll-behavior'], { feature: 'css-overscroll-behavior', browsers }) ); // color-adjust f(require('caniuse-lite/data/features/css-color-adjust'), browsers => prefix(['color-adjust'], { feature: 'css-color-adjust', browsers }) ); node-autoprefixer-8.6.5+repack/gulpfile.js000066400000000000000000000051571363606675700206330ustar00rootroot00000000000000const gulp = require('gulp'); const path = require('path'); const fs = require('fs-extra'); gulp.task('clean', (done) => { fs.remove(path.join(__dirname, 'autoprefixer.js'), () => { fs.remove(path.join(__dirname, 'build'), done); }); }); gulp.task('build:lib', ['clean'], () => { const babel = require('gulp-babel'); return gulp.src(['{lib,data}/**/*.js']) .pipe(babel()) .pipe(gulp.dest('build/')); }); gulp.task('build:docs', ['clean'], () => { const ignore = require('fs').readFileSync('.npmignore').toString() .trim().split(/\n+/) .concat(['.npmignore', 'index.js', 'package.json', 'logo.svg']) .map((i) => '!' + i); return gulp.src(['*'].concat(ignore)) .pipe(gulp.dest('build')); }); gulp.task('build:bin', ['clean'], () => { return gulp.src('bin/*').pipe(gulp.dest('build/bin')); }); gulp.task('build:package', ['clean'], () => { const editor = require('gulp-json-editor'); return gulp.src('./package.json') .pipe(editor((json) => { json.main = 'lib/autoprefixer'; json.devDependencies['babel-register'] = json.dependencies['babel-register']; delete json.dependencies['babel-register']; delete json.babel; delete json.scripts; delete json.jest; delete json.eslintConfig; delete json['size-limit']; delete json['pre-commit']; delete json['lint-staged']; delete json.devDependencies; return json; })) .pipe(gulp.dest('build')); }); gulp.task('build', ['build:lib', 'build:docs', 'build:bin', 'build:package']); gulp.task('standalone', ['build:lib'], (done) => { const builder = require('browserify')({ basedir: path.join(__dirname, 'build'), standalone: 'autoprefixer' }); builder.add('./lib/autoprefixer.js'); builder .transform('babelify', { global: true, presets: [ ['env', { node: '0.10', loose: true }] ] }) .bundle((error, build) => { if (error) throw error; fs.removeSync(path.join(__dirname, 'build')); const rails = path.join(__dirname, '..', 'autoprefixer-rails', 'vendor', 'autoprefixer.js'); if (fs.existsSync(rails)) { fs.writeFileSync(rails, build); } else { const out = path.join(__dirname, 'autoprefixer.js'); fs.writeFileSync(out, build); } done(); }); }); gulp.task('default', ['build']); node-autoprefixer-8.6.5+repack/index.js000066400000000000000000000001151363606675700201200ustar00rootroot00000000000000require('babel-register')(); module.exports = require('./lib/autoprefixer'); node-autoprefixer-8.6.5+repack/lib/000077500000000000000000000000001363606675700172245ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/lib/at-rule.js000066400000000000000000000014611363606675700211350ustar00rootroot00000000000000const Prefixer = require('./prefixer'); class AtRule extends Prefixer { /** * Clone and add prefixes for at-rule */ add(rule, prefix) { const prefixed = prefix + rule.name; const already = rule.parent.some( i => i.name === prefixed && i.params === rule.params ); if (already) { return undefined; } const cloned = this.clone(rule, { name: prefixed }); return rule.parent.insertBefore(rule, cloned); } /** * Clone node with prefixes */ process(node) { const parent = this.parentPrefix(node); for (const prefix of this.prefixes) { if (!parent || parent === prefix) { this.add(node, prefix); } } } } module.exports = AtRule; node-autoprefixer-8.6.5+repack/lib/autoprefixer.js000066400000000000000000000063271363606675700223070ustar00rootroot00000000000000const browserslist = require('browserslist'); const postcss = require('postcss'); const Browsers = require('./browsers'); const Prefixes = require('./prefixes'); function isPlainObject(obj) { return Object.prototype.toString.apply(obj) === '[object Object]'; } const cache = {}; function timeCapsule(result, prefixes) { if (prefixes.browsers.selected.length === 0) { return; } if (prefixes.add.selectors.length > 0) { return; } if (Object.keys(prefixes.add).length > 2) { return; } /* istanbul ignore next */ result.warn( 'Greetings, time traveller. ' + 'We are in the golden age of prefix-less CSS, ' + 'where Autoprefixer is no longer needed for your stylesheet.' ); } module.exports = postcss.plugin('autoprefixer', (...reqs) => { let options; if (reqs.length === 1 && isPlainObject(reqs[0])) { options = reqs[0]; reqs = undefined; } else if (reqs.length === 0 || reqs.length === 1 && !reqs[0]) { reqs = undefined; } else if (reqs.length <= 2 && (reqs[0] instanceof Array || !reqs[0])) { options = reqs[1]; reqs = reqs[0]; } else if (typeof reqs[reqs.length - 1] === 'object') { options = reqs.pop(); } if (!options) { options = {}; } if (options.browser) { throw new Error( 'Change `browser` option to `browsers` in Autoprefixer' ); } else if (options.browserslist) { throw new Error( 'Change `browserslist` option to `browsers` in Autoprefixer' ); } if (options.browsers) { reqs = options.browsers; } if (typeof options.grid === 'undefined') { options.grid = false; } const brwlstOpts = { ignoreUnknownVersions: options.ignoreUnknownVersions, stats: options.stats }; const loadPrefixes = function (opts) { const data = module.exports.data; const browsers = new Browsers(data.browsers, reqs, opts, brwlstOpts); const key = browsers.selected.join(', ') + JSON.stringify(options); if (!cache[key]) { cache[key] = new Prefixes(data.prefixes, browsers, options); } return cache[key]; }; const plugin = function (css, result) { const prefixes = loadPrefixes({ from: css.source && css.source.input.file, env: options.env }); timeCapsule(result, prefixes); if (options.remove !== false) { prefixes.processor.remove(css, result); } if (options.add !== false) { prefixes.processor.add(css, result); } }; plugin.options = options; plugin.browsers = reqs; plugin.info = function (opts) { opts = opts || {}; opts.from = opts.from || process.cwd(); return require('./info')(loadPrefixes(opts)); }; return plugin; }); /** * Autoprefixer data */ module.exports.data = { browsers: require('caniuse-lite').agents, prefixes: require('../data/prefixes') }; /** * Autoprefixer default browsers */ module.exports.defaults = browserslist.defaults; /** * Inspect with default Autoprefixer */ module.exports.info = () => module.exports().info(); node-autoprefixer-8.6.5+repack/lib/brackets.js000066400000000000000000000021061363606675700213570ustar00rootroot00000000000000const last = array => array[array.length - 1]; const brackets = { /** * Parse string to nodes tree */ parse(str) { let current = ['']; const stack = [current]; for (let i = 0; i < str.length; i++) { let sym = str[i]; if (sym === '(') { current = ['']; last(stack).push(current); stack.push(current); continue; } if (sym === ')') { stack.pop(); current = last(stack); current.push(''); continue; } current[current.length - 1] += sym; } return stack[0]; }, /** * Generate output string by nodes tree */ stringify(ast) { let result = ''; for (const i of ast) { if (typeof i === 'object') { result += `(${brackets.stringify(i)})`; continue; } result += i; } return result; } }; module.exports = brackets; node-autoprefixer-8.6.5+repack/lib/browsers.js000066400000000000000000000037751363606675700214440ustar00rootroot00000000000000const browserslist = require('browserslist'); const utils = require('./utils'); class Browsers { /** * Return all prefixes for default browser data */ static prefixes() { if (this.prefixesCache) { return this.prefixesCache; } const data = require('caniuse-lite').agents; this.prefixesCache = []; for (const name in data) { this.prefixesCache.push(`-${data[name].prefix}-`); } this.prefixesCache = utils .uniq(this.prefixesCache) .sort((a, b) => b.length - a.length); return this.prefixesCache; } /** * Check is value contain any possibe prefix */ static withPrefix(value) { if (!this.prefixesRegexp) { this.prefixesRegexp = new RegExp(this.prefixes().join('|')); } return this.prefixesRegexp.test(value); } constructor(data, requirements, options, browserslistOpts) { this.data = data; this.options = options || {}; this.browserslistOpts = browserslistOpts || { }; this.selected = this.parse(requirements); } /** * Return browsers selected by requirements */ parse(requirements) { const opts = { }; for (const i in this.browserslistOpts) { opts[i] = this.browserslistOpts[i]; } opts.path = this.options.from; opts.env = this.options.env; return browserslist(requirements, opts); } /** * Return prefix for selected browser */ prefix(browser) { const [name, version] = browser.split(' '); const data = this.data[name]; let prefix = data.prefix_exceptions && data.prefix_exceptions[version]; if (!prefix) { prefix = data.prefix; } return `-${prefix}-`; } /** * Is browser is selected by requirements */ isSelected(browser) { return this.selected.indexOf(browser) !== -1; } } module.exports = Browsers; node-autoprefixer-8.6.5+repack/lib/declaration.js000066400000000000000000000110631363606675700220500ustar00rootroot00000000000000const Prefixer = require('./prefixer'); const Browsers = require('./browsers'); const utils = require('./utils'); class Declaration extends Prefixer { /** * Always true, because we already get prefixer by property name */ check(/* decl */) { return true; } /** * Return prefixed version of property */ prefixed(prop, prefix) { return prefix + prop; } /** * Return unprefixed version of property */ normalize(prop) { return prop; } /** * Check `value`, that it contain other prefixes, rather than `prefix` */ otherPrefixes(value, prefix) { for (const other of Browsers.prefixes()) { if (other === prefix) { continue; } if (value.indexOf(other) !== -1) { return true; } } return false; } /** * Set prefix to declaration */ set(decl, prefix) { decl.prop = this.prefixed(decl.prop, prefix); return decl; } /** * Should we use visual cascade for prefixes */ needCascade(decl) { if (!decl._autoprefixerCascade) { decl._autoprefixerCascade = this.all.options.cascade !== false && decl.raw('before').indexOf('\n') !== -1; } return decl._autoprefixerCascade; } /** * Return maximum length of possible prefixed property */ maxPrefixed(prefixes, decl) { if (decl._autoprefixerMax) { return decl._autoprefixerMax; } let max = 0; for (let prefix of prefixes) { prefix = utils.removeNote(prefix); if (prefix.length > max) { max = prefix.length; } } decl._autoprefixerMax = max; return decl._autoprefixerMax; } /** * Calculate indentation to create visual cascade */ calcBefore(prefixes, decl, prefix = '') { const max = this.maxPrefixed(prefixes, decl); const diff = max - utils.removeNote(prefix).length; let before = decl.raw('before'); if (diff > 0) { before += Array(diff).fill(' ').join(''); } return before; } /** * Remove visual cascade */ restoreBefore(decl) { const lines = decl.raw('before').split('\n'); let min = lines[lines.length - 1]; this.all.group(decl).up((prefixed) => { const array = prefixed.raw('before').split('\n'); const last = array[array.length - 1]; if (last.length < min.length) { min = last; } }); lines[lines.length - 1] = min; decl.raws.before = lines.join('\n'); } /** * Clone and insert new declaration */ insert(decl, prefix, prefixes) { const cloned = this.set(this.clone(decl), prefix); if (!cloned) return undefined; const already = decl.parent.some( i => i.prop === cloned.prop && i.value === cloned.value ); if (already) { return undefined; } if (this.needCascade(decl)) { cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } return decl.parent.insertBefore(decl, cloned); } /** * Did this declaration has this prefix above */ isAlready(decl, prefixed) { let already = this.all.group(decl).up(i => i.prop === prefixed); if (!already) { already = this.all.group(decl).down(i => i.prop === prefixed); } return already; } /** * Clone and add prefixes for declaration */ add(decl, prefix, prefixes, result) { const prefixed = this.prefixed(decl.prop, prefix); if (this.isAlready(decl, prefixed) || this.otherPrefixes(decl.value, prefix)) { return undefined; } return this.insert(decl, prefix, prefixes, result); } /** * Add spaces for visual cascade */ process(decl, result) { if (!this.needCascade(decl)) { super.process(decl, result); return; } const prefixes = super.process(decl, result); if (!prefixes || !prefixes.length) { return; } this.restoreBefore(decl); decl.raws.before = this.calcBefore(prefixes, decl); } /** * Return list of prefixed properties to clean old prefixes */ old(prop, prefix) { return [this.prefixed(prop, prefix)]; } } module.exports = Declaration; node-autoprefixer-8.6.5+repack/lib/hacks/000077500000000000000000000000001363606675700203155ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/lib/hacks/align-content.js000066400000000000000000000023101363606675700234110ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class AlignContent extends Declaration { static names = ['align-content', 'flex-line-pack']; static oldValues = { 'flex-end': 'end', 'flex-start': 'start', 'space-between': 'justify', 'space-around': 'distribute' }; /** * Change property name for 2012 spec */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012) { return prefix + 'flex-line-pack'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'align-content'; } /** * Change value for 2012 spec and ignore prefix for 2009 */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2012) { decl.value = AlignContent.oldValues[decl.value] || decl.value; return super.set(decl, prefix); } else if (spec === 'final') { return super.set(decl, prefix); } return undefined; } } module.exports = AlignContent; node-autoprefixer-8.6.5+repack/lib/hacks/align-items.js000066400000000000000000000021371363606675700230670ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class AlignItems extends Declaration { static names = ['align-items', 'flex-align', 'box-align']; static oldValues = { 'flex-end': 'end', 'flex-start': 'start' }; /** * Change property name for 2009 and 2012 specs */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return prefix + 'box-align'; } else if (spec === 2012) { return prefix + 'flex-align'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'align-items'; } /** * Change value for 2009 and 2012 specs */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2009 || spec === 2012) { decl.value = AlignItems.oldValues[decl.value] || decl.value; } return super.set(decl, prefix); } } module.exports = AlignItems; node-autoprefixer-8.6.5+repack/lib/hacks/align-self.js000066400000000000000000000021621363606675700226750ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class AlignSelf extends Declaration { static names = ['align-self', 'flex-item-align']; static oldValues = { 'flex-end': 'end', 'flex-start': 'start' }; /** * Change property name for 2012 specs */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012) { return prefix + 'flex-item-align'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'align-self'; } /** * Change value for 2012 spec and ignore prefix for 2009 */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2012) { decl.value = AlignSelf.oldValues[decl.value] || decl.value; return super.set(decl, prefix); } else if (spec === 'final') { return super.set(decl, prefix); } return undefined; } } module.exports = AlignSelf; node-autoprefixer-8.6.5+repack/lib/hacks/animation.js000066400000000000000000000006741363606675700226410ustar00rootroot00000000000000const Declaration = require('../declaration'); class Animation extends Declaration { static names = ['animation', 'animation-direction']; /** * Don’t add prefixes for modern values. */ check(decl) { return !decl.value.split(/\s+/).some(i => { const lower = i.toLowerCase(); return lower === 'reverse' || lower === 'alternate-reverse'; }); } } module.exports = Animation; node-autoprefixer-8.6.5+repack/lib/hacks/appearance.js000066400000000000000000000010361363606675700227520ustar00rootroot00000000000000const Declaration = require('../declaration'); const utils = require('../utils'); class Appearance extends Declaration { static names = ['appearance']; constructor(name, prefixes, all) { super(name, prefixes, all); if (this.prefixes) { this.prefixes = utils.uniq(this.prefixes.map(i => { if (i === '-ms-') { return '-webkit-'; } else { return i; } })); } } } module.exports = Appearance; node-autoprefixer-8.6.5+repack/lib/hacks/background-size.js000066400000000000000000000011001363606675700237320ustar00rootroot00000000000000const Declaration = require('../declaration'); class BackgroundSize extends Declaration { static names = ['background-size']; /** * Duplication parameter for -webkit- browsers */ set(decl, prefix) { const value = decl.value.toLowerCase(); if (prefix === '-webkit-' && value.indexOf(' ') === -1 && value !== 'contain' && value !== 'cover' ) { decl.value = decl.value + ' ' + decl.value; } return super.set(decl, prefix); } } module.exports = BackgroundSize; node-autoprefixer-8.6.5+repack/lib/hacks/block-logical.js000066400000000000000000000016771363606675700233700ustar00rootroot00000000000000const Declaration = require('../declaration'); class BlockLogical extends Declaration { static names = [ 'border-block-start', 'border-block-end', 'margin-block-start', 'margin-block-end', 'padding-block-start', 'padding-block-end', 'border-before', 'border-after', 'margin-before', 'margin-after', 'padding-before', 'padding-after' ]; /** * Use old syntax for -moz- and -webkit- */ prefixed(prop, prefix) { return prefix + (prop.indexOf('-start') !== -1 ? prop.replace('-block-start', '-before') : prop.replace('-block-end', '-after')); } /** * Return property name by spec */ normalize(prop) { if (prop.indexOf('-before') !== -1) { return prop.replace('-before', '-block-start'); } else { return prop.replace('-after', '-block-end'); } } } module.exports = BlockLogical; node-autoprefixer-8.6.5+repack/lib/hacks/border-image.js000066400000000000000000000005541363606675700232140ustar00rootroot00000000000000const Declaration = require('../declaration'); class BorderImage extends Declaration { static names = ['border-image']; /** * Remove fill parameter for prefixed declarations */ set(decl, prefix) { decl.value = decl.value.replace(/\s+fill(\s)/, '$1'); return super.set(decl, prefix); } } module.exports = BorderImage; node-autoprefixer-8.6.5+repack/lib/hacks/border-radius.js000066400000000000000000000017721363606675700234240ustar00rootroot00000000000000const Declaration = require('../declaration'); class BorderRadius extends Declaration { static names = ['border-radius']; static toMozilla = {}; static toNormal = {}; /** * Change syntax, when add Mozilla prefix */ prefixed(prop, prefix) { if (prefix === '-moz-') { return prefix + (BorderRadius.toMozilla[prop] || prop); } else { return super.prefixed(prop, prefix); } } /** * Return unprefixed version of property */ normalize(prop) { return BorderRadius.toNormal[prop] || prop; } } for (const ver of ['top', 'bottom']) { for (const hor of ['left', 'right']) { const normal = `border-${ver}-${hor}-radius`; const mozilla = `border-radius-${ver}${hor}`; BorderRadius.names.push(normal); BorderRadius.names.push(mozilla); BorderRadius.toMozilla[normal] = mozilla; BorderRadius.toNormal[mozilla] = normal; } } module.exports = BorderRadius; node-autoprefixer-8.6.5+repack/lib/hacks/break-props.js000066400000000000000000000027661363606675700231130ustar00rootroot00000000000000const Declaration = require('../declaration'); class BreakProps extends Declaration { static names = [ 'break-inside', 'page-break-inside', 'column-break-inside', 'break-before', 'page-break-before', 'column-break-before', 'break-after', 'page-break-after', 'column-break-after' ]; /** * Change name for -webkit- and -moz- prefix */ prefixed(prop, prefix) { return `${prefix}column-${prop}`; } /** * Return property name by final spec */ normalize(prop) { if (prop.indexOf('inside') !== -1) { return 'break-inside'; } else if (prop.indexOf('before') !== -1) { return 'break-before'; } else { return 'break-after'; } } /** * Change prefixed value for avoid-column and avoid-page */ set(decl, prefix) { if (decl.prop === 'break-inside' && decl.value === 'avoid-column' || decl.value === 'avoid-page' ) { decl.value = 'avoid'; } return super.set(decl, prefix); } /** * Don’t prefix some values */ insert(decl, prefix, prefixes) { if (decl.prop !== 'break-inside') { return super.insert(decl, prefix, prefixes); } else if (/region/i.test(decl.value) || /page/i.test(decl.value)) { return undefined; } else { return super.insert(decl, prefix, prefixes); } } } module.exports = BreakProps; node-autoprefixer-8.6.5+repack/lib/hacks/color-adjust.js000066400000000000000000000006711363606675700232650ustar00rootroot00000000000000const Declaration = require('../declaration'); class ColorAdjust extends Declaration { static names = ['color-adjust', 'print-color-adjust']; /** * Change property name for WebKit-based browsers */ prefixed(prop, prefix) { return prefix + 'print-color-adjust'; } /** * Return property name by spec */ normalize() { return 'color-adjust'; } } module.exports = ColorAdjust; node-autoprefixer-8.6.5+repack/lib/hacks/cross-fade.js000066400000000000000000000020251363606675700227000ustar00rootroot00000000000000const Value = require('../value'); const list = require('postcss').list; class CrossFade extends Value { static names = ['cross-fade']; replace(string, prefix) { return list.space(string) .map(value => { if (value.slice(0, +this.name.length + 1) !== this.name + '(') { return value; } const close = value.lastIndexOf(')'); const after = value.slice(close + 1); let args = value.slice(this.name.length + 1, close); if (prefix === '-webkit-') { const match = args.match(/\d*.?\d+%?/); if (match) { args = args.slice(match[0].length).trim(); args += `, ${match[0]}`; } else { args += ', 0.5'; } } return prefix + this.name + '(' + args + ')' + after; }).join(' '); } } module.exports = CrossFade; node-autoprefixer-8.6.5+repack/lib/hacks/display-flex.js000066400000000000000000000027531363606675700232630ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const OldValue = require('../old-value'); const Value = require('../value'); class DisplayFlex extends Value { static names = ['display-flex', 'inline-flex']; constructor(name, prefixes) { super(name, prefixes); if (name === 'display-flex') { this.name = 'flex'; } } /** * Faster check for flex value */ check(decl) { return decl.prop === 'display' && decl.value === this.name; } /** * Return value by spec */ prefixed(prefix) { let spec, value; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { if (this.name === 'flex') { value = 'box'; } else { value = 'inline-box'; } } else if (spec === 2012) { if (this.name === 'flex') { value = 'flexbox'; } else { value = 'inline-flexbox'; } } else if (spec === 'final') { value = this.name; } return prefix + value; } /** * Add prefix to value depend on flebox spec version */ replace(string, prefix) { return this.prefixed(prefix); } /** * Change value for old specs */ old(prefix) { const prefixed = this.prefixed(prefix); if (!prefixed) return undefined; return new OldValue(this.name, prefixed); } } module.exports = DisplayFlex; node-autoprefixer-8.6.5+repack/lib/hacks/display-grid.js000066400000000000000000000007061363606675700232460ustar00rootroot00000000000000const Value = require('../value'); class DisplayGrid extends Value { static names = ['display-grid', 'inline-grid']; constructor(name, prefixes) { super(name, prefixes); if (name === 'display-grid') { this.name = 'grid'; } } /** * Faster check for flex value */ check(decl) { return decl.prop === 'display' && decl.value === this.name; } } module.exports = DisplayGrid; node-autoprefixer-8.6.5+repack/lib/hacks/filter-value.js000066400000000000000000000004711363606675700232540ustar00rootroot00000000000000const Value = require('../value'); class FilterValue extends Value { static names = ['filter', 'filter-function']; constructor(name, prefixes) { super(name, prefixes); if (name === 'filter-function') { this.name = 'filter'; } } } module.exports = FilterValue; node-autoprefixer-8.6.5+repack/lib/hacks/filter.js000066400000000000000000000007101363606675700221360ustar00rootroot00000000000000const Declaration = require('../declaration'); class Filter extends Declaration { static names = ['filter']; /** * Check is it Internet Explorer filter */ check(decl) { const v = decl.value; return ( v.toLowerCase().indexOf('alpha(') === -1 && v.indexOf('DXImageTransform.Microsoft') === -1 && v.indexOf('data:image/svg+xml') === -1 ); } } module.exports = Filter; node-autoprefixer-8.6.5+repack/lib/hacks/flex-basis.js000066400000000000000000000016451363606675700227160ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class FlexBasis extends Declaration { static names = ['flex-basis', 'flex-preferred-size']; /** * Return property name by final spec */ normalize() { return 'flex-basis'; } /** * Return flex property for 2012 spec */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012) { return prefix + 'flex-preferred-size'; } else { return super.prefixed(prop, prefix); } } /** * Ignore 2009 spec and use flex property for 2012 */ set(decl, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012 || spec === 'final') { return super.set(decl, prefix); } return undefined; } } module.exports = FlexBasis; node-autoprefixer-8.6.5+repack/lib/hacks/flex-direction.js000066400000000000000000000042341363606675700235720ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class FlexDirection extends Declaration { static names = ['flex-direction', 'box-direction', 'box-orient']; /** * Return property name by final spec */ normalize() { return 'flex-direction'; } /** * Use two properties for 2009 spec */ insert(decl, prefix, prefixes) { let spec; [spec, prefix] = flexSpec(prefix); if (spec !== 2009) { return super.insert(decl, prefix, prefixes); } else { const already = decl.parent.some( i => i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction' ); if (already) { return undefined; } const v = decl.value; let orient, dir; if (v === 'inherit' || v === 'initial' || v === 'unset') { orient = v; dir = v; } else { orient = v.indexOf('row') !== -1 ? 'horizontal' : 'vertical'; dir = v.indexOf('reverse') !== -1 ? 'reverse' : 'normal'; } let cloned = this.clone(decl); cloned.prop = prefix + 'box-orient'; cloned.value = orient; if (this.needCascade(decl)) { cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } decl.parent.insertBefore(decl, cloned); cloned = this.clone(decl); cloned.prop = prefix + 'box-direction'; cloned.value = dir; if (this.needCascade(decl)) { cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } return decl.parent.insertBefore(decl, cloned); } } /** * Clean two properties for 2009 spec */ old(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return [prefix + 'box-orient', prefix + 'box-direction']; } else { return super.old(prop, prefix); } } } module.exports = FlexDirection; node-autoprefixer-8.6.5+repack/lib/hacks/flex-flow.js000066400000000000000000000035251363606675700225630ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class FlexFlow extends Declaration { static names = ['flex-flow', 'box-direction', 'box-orient']; /** * Use two properties for 2009 spec */ insert(decl, prefix, prefixes) { let spec; [spec, prefix] = flexSpec(prefix); if (spec !== 2009) { return super.insert(decl, prefix, prefixes); } else { const values = decl.value.split(/\s+/).filter( i => i !== 'wrap' && i !== 'nowrap' && 'wrap-reverse' ); if (values.length === 0) { return undefined; } const already = decl.parent.some( i => i.prop === prefix + 'box-orient' || i.prop === prefix + 'box-direction' ); if (already) { return undefined; } const value = values[0]; const orient = value.indexOf('row') !== -1 ? 'horizontal' : 'vertical'; const dir = value.indexOf('reverse') !== -1 ? 'reverse' : 'normal'; let cloned = this.clone(decl); cloned.prop = prefix + 'box-orient'; cloned.value = orient; if (this.needCascade(decl)) { cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } decl.parent.insertBefore(decl, cloned); cloned = this.clone(decl); cloned.prop = prefix + 'box-direction'; cloned.value = dir; if (this.needCascade(decl)) { cloned.raws.before = this.calcBefore(prefixes, decl, prefix); } return decl.parent.insertBefore(decl, cloned); } } } module.exports = FlexFlow; node-autoprefixer-8.6.5+repack/lib/hacks/flex-grow.js000066400000000000000000000012721363606675700225670ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class Flex extends Declaration { static names = ['flex-grow', 'flex-positive']; /** * Return property name by final spec */ normalize() { return 'flex'; } /** * Return flex property for 2009 and 2012 specs */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return prefix + 'box-flex'; } else if (spec === 2012) { return prefix + 'flex-positive'; } else { return super.prefixed(prop, prefix); } } } module.exports = Flex; node-autoprefixer-8.6.5+repack/lib/hacks/flex-shrink.js000066400000000000000000000016351363606675700231120ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class FlexShrink extends Declaration { static names = ['flex-shrink', 'flex-negative']; /** * Return property name by final spec */ normalize() { return 'flex-shrink'; } /** * Return flex property for 2012 spec */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012) { return prefix + 'flex-negative'; } else { return super.prefixed(prop, prefix); } } /** * Ignore 2009 spec and use flex property for 2012 */ set(decl, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2012 || spec === 'final') { return super.set(decl, prefix); } return undefined; } } module.exports = FlexShrink; node-autoprefixer-8.6.5+repack/lib/hacks/flex-spec.js000066400000000000000000000006361363606675700225460ustar00rootroot00000000000000/** * Return flexbox spec versions by prefix */ module.exports = function (prefix) { let spec; if (prefix === '-webkit- 2009' || prefix === '-moz-') { spec = 2009; } else if (prefix === '-ms-') { spec = 2012; } else if (prefix === '-webkit-') { spec = 'final'; } if (prefix === '-webkit- 2009') { prefix = '-webkit-'; } return [spec, prefix]; }; node-autoprefixer-8.6.5+repack/lib/hacks/flex-wrap.js000066400000000000000000000006541363606675700225650ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class FlexWrap extends Declaration { static names = ['flex-wrap']; /** * Don't add prefix for 2009 spec */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec !== 2009) { return super.set(decl, prefix); } return undefined; } } module.exports = FlexWrap; node-autoprefixer-8.6.5+repack/lib/hacks/flex.js000066400000000000000000000025371363606675700216200ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); const list = require('postcss').list; class Flex extends Declaration { static names = ['flex', 'box-flex']; static oldValues = { auto: '1', none: '0' }; /** * Change property name for 2009 spec */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return prefix + 'box-flex'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'flex'; } /** * Spec 2009 supports only first argument * Spec 2012 disallows unitless basis */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2009) { decl.value = list.space(decl.value)[0]; decl.value = Flex.oldValues[decl.value] || decl.value; return super.set(decl, prefix); } else if (spec === 2012) { const components = list.space(decl.value); if (components.length === 3 && components[2] === '0') { decl.value = components.slice(0, 2).concat('0px').join(' '); } } return super.set(decl, prefix); } } module.exports = Flex; node-autoprefixer-8.6.5+repack/lib/hacks/fullscreen.js000066400000000000000000000007341363606675700230210ustar00rootroot00000000000000const Selector = require('../selector'); class Fullscreen extends Selector { static names = [':fullscreen']; /** * Return different selectors depend on prefix */ prefixed(prefix) { if (prefix === '-webkit-') { return ':-webkit-full-screen'; } else if (prefix === '-moz-') { return ':-moz-full-screen'; } else { return `:${prefix}fullscreen`; } } } module.exports = Fullscreen; node-autoprefixer-8.6.5+repack/lib/hacks/gradient.js000066400000000000000000000271551363606675700224620ustar00rootroot00000000000000const OldValue = require('../old-value'); const Value = require('../value'); const utils = require('../utils'); const parser = require('postcss-value-parser'); const range = require('normalize-range'); const isDirection = /top|left|right|bottom/gi; class Gradient extends Value { static names = [ 'linear-gradient', 'repeating-linear-gradient', 'radial-gradient', 'repeating-radial-gradient' ]; // Direction to replace directions = { top: 'bottom', left: 'right', bottom: 'top', right: 'left' }; // Direction to replace oldDirections = { 'top': 'left bottom, left top', 'left': 'right top, left top', 'bottom': 'left top, left bottom', 'right': 'left top, right top', 'top right': 'left bottom, right top', 'top left': 'right bottom, left top', 'right top': 'left bottom, right top', 'right bottom': 'left top, right bottom', 'bottom right': 'left top, right bottom', 'bottom left': 'right top, left bottom', 'left top': 'right bottom, left top', 'left bottom': 'right top, left bottom' }; /** * Change degrees for webkit prefix */ replace(string, prefix) { const ast = parser(string); for (const node of ast.nodes) { if (node.type === 'function' && node.value === this.name) { node.nodes = this.newDirection(node.nodes); node.nodes = this.normalize(node.nodes); if (prefix === '-webkit- old') { const changes = this.oldWebkit(node); if (!changes) { return false; } } else { node.nodes = this.convertDirection(node.nodes); node.value = prefix + node.value; } } } return ast.toString(); } /** * Replace first token */ replaceFirst(params, ...words) { const prefix = words.map((i) => { if (i === ' ') { return { type: 'space', value: i }; } else { return { type: 'word', value: i }; } }); return prefix.concat(params.slice(1)); } /** * Convert angle unit to deg */ normalizeUnit(str, full) { const num = parseFloat(str); const deg = num / full * 360; return `${deg}deg`; } /** * Normalize angle */ normalize(nodes) { if (!nodes[0]) return nodes; if (/-?\d+(.\d+)?grad/.test(nodes[0].value)) { nodes[0].value = this.normalizeUnit(nodes[0].value, 400); } else if (/-?\d+(.\d+)?rad/.test(nodes[0].value)) { nodes[0].value = this.normalizeUnit(nodes[0].value, 2 * Math.PI); } else if (/-?\d+(.\d+)?turn/.test(nodes[0].value)) { nodes[0].value = this.normalizeUnit(nodes[0].value, 1); } else if (nodes[0].value.indexOf('deg') !== -1) { let num = parseFloat(nodes[0].value); num = range.wrap(0, 360, num); nodes[0].value = `${num}deg`; } if (nodes[0].value === '0deg') { nodes = this.replaceFirst(nodes, 'to', ' ', 'top'); } else if (nodes[0].value === '90deg') { nodes = this.replaceFirst(nodes, 'to', ' ', 'right'); } else if (nodes[0].value === '180deg') { nodes = this.replaceFirst(nodes, 'to', ' ', 'bottom'); } else if (nodes[0].value === '270deg') { nodes = this.replaceFirst(nodes, 'to', ' ', 'left'); } return nodes; } /** * Replace old direction to new */ newDirection(params) { if (params[0].value === 'to') { return params; } isDirection.lastIndex = 0; // reset search index of global regexp if (!isDirection.test(params[0].value)) { return params; } params.unshift({ type: 'word', value: 'to' }, { type: 'space', value: ' ' }); for (let i = 2; i < params.length; i++) { if (params[i].type === 'div') { break; } if (params[i].type === 'word') { params[i].value = this.revertDirection(params[i].value); } } return params; } /** * Look for at word */ isRadial(params) { let state = 'before'; for ( const param of params ) { if ( state === 'before' && param.type === 'space' ) { state = 'at'; } else if ( state === 'at' && param.value === 'at' ) { state = 'after'; } else if ( state === 'after' && param.type === 'space' ) { return true; } else if ( param.type === 'div' ) { break; } else { state = 'before'; } } return false; } /** * Change new direction to old */ convertDirection(params) { if (params.length > 0) { if (params[0].value === 'to') { this.fixDirection(params); } else if (params[0].value.indexOf('deg') !== -1) { this.fixAngle(params); } else if (this.isRadial(params)) { this.fixRadial(params); } } return params; } /** * Replace `to top left` to `bottom right` */ fixDirection(params) { params.splice(0, 2); for (const param of params) { if (param.type === 'div') { break; } if (param.type === 'word') { param.value = this.revertDirection(param.value); } } } /** * Add 90 degrees */ fixAngle(params) { let first = params[0].value; first = parseFloat(first); first = Math.abs(450 - first) % 360; first = this.roundFloat(first, 3); params[0].value = `${first}deg`; } /** * Fix radial direction syntax */ fixRadial(params) { const first = []; const second = []; let a, b, c, i, next; for (i = 0; i < params.length - 2; i++) { a = params[i]; b = params[i + 1]; c = params[i + 2]; if (a.type === 'space' && b.value === 'at' && c.type === 'space') { next = i + 3; break; } else { first.push(a); } } let div; for (i = next; i < params.length; i++) { if (params[i].type === 'div') { div = params[i]; break; } else { second.push(params[i]); } } params.splice(0, i, ...second, div, ...first); } revertDirection(word) { return this.directions[word.toLowerCase()] || word; } /** * Round float and save digits under dot */ roundFloat(float, digits) { return parseFloat(float.toFixed(digits)); } /** * Convert to old webkit syntax */ oldWebkit(node) { const { nodes } = node; const string = parser.stringify(node.nodes); if (this.name !== 'linear-gradient') { return false; } if (nodes[0] && nodes[0].value.indexOf('deg') !== -1) { return false; } if ( string.indexOf('px') !== -1 || string.indexOf('-corner') !== -1 || string.indexOf('-side') !== -1 ) { return false; } const params = [[]]; for (const i of nodes) { params[params.length - 1].push(i); if (i.type === 'div' && i.value === ',') { params.push([]); } } this.oldDirection(params); this.colorStops(params); node.nodes = []; for (const param of params) { node.nodes = node.nodes.concat(param); } node.nodes.unshift( { type: 'word', value: 'linear' }, this.cloneDiv(node.nodes)); node.value = '-webkit-gradient'; return true; } /** * Change direction syntax to old webkit */ oldDirection(params) { const div = this.cloneDiv(params[0]); if (params[0][0].value !== 'to') { return params.unshift([ { type: 'word', value: this.oldDirections.bottom }, div ]); } else { let words = []; for (let node of params[0].slice(2)) { if (node.type === 'word') { words.push(node.value.toLowerCase()); } } words = words.join(' '); const old = this.oldDirections[words] || words; params[0] = [{ type: 'word', value: old }, div]; return params[0]; } } /** * Get div token from exists parameters */ cloneDiv(params) { for (let i of params) { if (i.type === 'div' && i.value === ',') { return i; } } return { type: 'div', value: ',', after: ' ' }; } /** * Change colors syntax to old webkit */ colorStops(params) { const result = []; for (let i = 0; i < params.length; i++) { let pos; const param = params[i]; let item; if (i === 0) { continue; } const color = parser.stringify(param[0]); if (param[1] && param[1].type === 'word') { pos = param[1].value; } else if (param[2] && param[2].type === 'word') { pos = param[2].value; } let stop; if (i === 1 && (!pos || pos === '0%')) { stop = `from(${color})`; } else if (i === params.length - 1 && (!pos || pos === '100%')) { stop = `to(${color})`; } else if (pos) { stop = `color-stop(${pos}, ${color})`; } else { stop = `color-stop(${color})`; } const div = param[param.length - 1]; params[i] = [{ type: 'word', value: stop }]; if (div.type === 'div' && div.value === ',') { item = params[i].push(div); } result.push(item); } return result; } /** * Remove old WebKit gradient too */ old(prefix) { if (prefix === '-webkit-') { const type = this.name === 'linear-gradient' ? 'linear' : 'radial'; const string = '-gradient'; const regexp = utils.regexp( `-webkit-(${type}-gradient|gradient\\(\\s*${type})`, false ); return new OldValue(this.name, prefix + this.name, string, regexp); } else { return super.old(prefix); } } /** * Do not add non-webkit prefixes for list-style and object */ add(decl, prefix) { const p = decl.prop; if (p.indexOf('mask') !== -1) { if (prefix === '-webkit-' || prefix === '-webkit- old') { return super.add(decl, prefix); } } else if (p === 'list-style' || p === 'list-style-image' || p === 'content') { if (prefix === '-webkit-' || prefix === '-webkit- old') { return super.add(decl, prefix); } } else { return super.add(decl, prefix); } return undefined; } } module.exports = Gradient; node-autoprefixer-8.6.5+repack/lib/hacks/grid-area.js000066400000000000000000000015521363606675700225110ustar00rootroot00000000000000const Declaration = require('../declaration'); const utils = require('./grid-utils'); class GridArea extends Declaration { static names = ['grid-area']; /** * Translate grid-area to separate -ms- prefixed properties */ insert(decl, prefix, prefixes) { if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes); const values = utils.parse(decl); const [rowStart, rowSpan] = utils.translate(values, 0, 2); const [columnStart, columnSpan] = utils.translate(values, 1, 3); [ ['grid-row', rowStart], ['grid-row-span', rowSpan], ['grid-column', columnStart], ['grid-column-span', columnSpan] ].forEach(([prop, value]) => { utils.insertDecl(decl, prop, value); }); return undefined; } } module.exports = GridArea; node-autoprefixer-8.6.5+repack/lib/hacks/grid-column-align.js000066400000000000000000000010651363606675700241650ustar00rootroot00000000000000const Declaration = require('../declaration'); class GridColumnAlign extends Declaration { static names = ['grid-column-align']; /** * Do not prefix flexbox values */ check(decl) { return decl.value.indexOf('flex-') === -1 && decl.value !== 'baseline'; } /** * Change property name for IE */ prefixed(prop, prefix) { return prefix + 'grid-column-align'; } /** * Change IE property back */ normalize() { return 'justify-self'; } } module.exports = GridColumnAlign; node-autoprefixer-8.6.5+repack/lib/hacks/grid-end.js000066400000000000000000000025051363606675700223460ustar00rootroot00000000000000const Declaration = require('../declaration'); class GridEnd extends Declaration { static names = [ 'grid-row-end', 'grid-column-end' ]; /** * Change repeating syntax for IE */ insert(decl, prefix, prefixes, result) { if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes); const clonedDecl = this.clone(decl); const startProp = decl.prop.replace(/end$/, 'start'); const spanProp = prefix + decl.prop.replace(/end$/, 'span'); if (decl.parent.some(i => i.prop === spanProp)) { return undefined; } clonedDecl.prop = spanProp; if (decl.value.includes('span')) { clonedDecl.value = decl.value.replace(/span\s/i, ''); } else { let startDecl; decl.parent.walkDecls(startProp, d => { startDecl = d; }); if (startDecl) { const value = Number(decl.value) - Number(startDecl.value) + ''; clonedDecl.value = value; } else { decl.warn( result, `Can not prefix ${decl.prop} (${startProp} is not found)` ); } } decl.cloneBefore(clonedDecl); return undefined; } } module.exports = GridEnd; node-autoprefixer-8.6.5+repack/lib/hacks/grid-row-align.js000066400000000000000000000010471363606675700234770ustar00rootroot00000000000000const Declaration = require('../declaration'); class GridRowAlign extends Declaration { static names = ['grid-row-align']; /** * Do not prefix flexbox values */ check(decl) { return decl.value.indexOf('flex-') === -1 && decl.value !== 'baseline'; } /** * Change property name for IE */ prefixed(prop, prefix) { return prefix + 'grid-row-align'; } /** * Change IE property back */ normalize() { return 'align-self'; } } module.exports = GridRowAlign; node-autoprefixer-8.6.5+repack/lib/hacks/grid-row-column.js000066400000000000000000000013461363606675700237040ustar00rootroot00000000000000const Declaration = require('../declaration'); const utils = require('./grid-utils'); class GridRowColumn extends Declaration { static names = ['grid-row', 'grid-column']; /** * Translate grid-row / grid-column to separate -ms- prefixed properties */ insert(decl, prefix, prefixes) { if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes); const values = utils.parse(decl); const [start, span] = utils.translate(values, 0, 1); [ [decl.prop, start], [`${decl.prop}-span`, span] ].forEach(([prop, value]) => { utils.insertDecl(decl, prop, value); }); return undefined; } } module.exports = GridRowColumn; node-autoprefixer-8.6.5+repack/lib/hacks/grid-rows-columns.js000066400000000000000000000017521363606675700242530ustar00rootroot00000000000000const Declaration = require('../declaration'); const { prefixTrackProp, prefixTrackValue } = require('./grid-utils'); class GridRowsColumns extends Declaration { static names = [ 'grid-template-rows', 'grid-template-columns', 'grid-rows', 'grid-columns' ]; /** * Change property name for IE */ prefixed(prop, prefix) { if (prefix === '-ms-') { return prefixTrackProp({ prop, prefix }); } else { return super.prefixed(prop, prefix); } } /** * Change IE property back */ normalize(prop) { return prop.replace(/^grid-(rows|columns)/, 'grid-template-$1'); } /** * Change repeating syntax for IE */ set(decl, prefix) { if (prefix === '-ms-' && decl.value.indexOf('repeat(') !== -1) { decl.value = prefixTrackValue({ value: decl.value }); } return super.set(decl, prefix); } } module.exports = GridRowsColumns; node-autoprefixer-8.6.5+repack/lib/hacks/grid-start.js000066400000000000000000000013671363606675700227420ustar00rootroot00000000000000const Declaration = require('../declaration'); class GridStart extends Declaration { static names = ['grid-row-start', 'grid-column-start']; /** * Do not add prefix for unsupported value in IE */ check(decl) { const value = decl.value; return value.indexOf('/') === -1 || value.indexOf('span') !== -1; } /** * Return a final spec property */ normalize(prop) { return prop.replace('-start', ''); } /** * Change property name for IE */ prefixed(prop, prefix) { let result = super.prefixed(prop, prefix); if (prefix === '-ms-') { result = result.replace('-start', ''); } return result; } } module.exports = GridStart; node-autoprefixer-8.6.5+repack/lib/hacks/grid-template-areas.js000066400000000000000000000045741363606675700245140ustar00rootroot00000000000000const Declaration = require('../declaration'); const { parseGridAreas, insertAreas, prefixTrackProp, prefixTrackValue, getGridGap, warnGridGap } = require('./grid-utils'); function getGridRows(tpl) { return tpl.trim().slice(1, -1).split(/['"]\s*['"]?/g); } class GridTemplateAreas extends Declaration { static names = ['grid-template-areas']; /** * Translate grid-template-areas to separate -ms- prefixed properties */ insert(decl, prefix, prefixes, result) { if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes); let hasColumns = false; let hasRows = false; const parent = decl.parent; const gap = getGridGap(decl); // remove already prefixed rows and columns // without gutter to prevent doubling prefixes parent.walkDecls(/-ms-grid-(rows|columns)/, i => i.remove()); // add empty tracks to rows and columns parent.walkDecls(/grid-template-(rows|columns)/, (trackDecl) => { if (trackDecl.prop === 'grid-template-rows') { hasRows = true; const { prop, value } = trackDecl; trackDecl.cloneBefore({ prop: prefixTrackProp({ prop, prefix }), value: prefixTrackValue({ value, gap: gap.row }) }); } else { hasColumns = true; const { prop, value } = trackDecl; trackDecl.cloneBefore({ prop: prefixTrackProp({ prop, prefix }), value: prefixTrackValue({ value, gap: gap.column }) }); } }); const gridRows = getGridRows(decl.value); if (hasColumns && !hasRows && gap.row && gridRows.length > 1) { decl.cloneBefore({ prop: '-ms-grid-rows', value: prefixTrackValue({ value: `repeat(${gridRows.length}, auto)`, gap: gap.row }), raws: {} }); } // warnings warnGridGap({ gap, hasColumns, decl, result }); const areas = parseGridAreas({ rows: gridRows, gap }); insertAreas(areas, decl, result); return decl; } } module.exports = GridTemplateAreas; node-autoprefixer-8.6.5+repack/lib/hacks/grid-template.js000066400000000000000000000027701363606675700234170ustar00rootroot00000000000000const Declaration = require('../declaration'); const { parseTemplate, insertAreas, getGridGap, warnGridGap } = require('./grid-utils'); class GridTemplate extends Declaration { static names = [ 'grid-template' ]; /** * Translate grid-template to separate -ms- prefixed properties */ insert(decl, prefix, prefixes, result) { if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes); if (decl.parent.some(i => i.prop === '-ms-grid-rows')) { return undefined; } const gap = getGridGap(decl); const { rows, columns, areas } = parseTemplate({ decl, gap }); const hasAreas = Object.keys(areas).length > 0; const hasRows = Boolean(rows); const hasColumns = Boolean(columns); warnGridGap({ gap, hasColumns, decl, result }); if (hasRows && hasColumns || hasAreas) { decl.cloneBefore({ prop: '-ms-grid-rows', value: rows, raws: { } }); } if (hasColumns) { decl.cloneBefore({ prop: '-ms-grid-columns', value: columns, raws: { } }); } if (hasAreas) { insertAreas(areas, decl, result); } return decl; } } module.exports = GridTemplate; node-autoprefixer-8.6.5+repack/lib/hacks/grid-utils.js000066400000000000000000000234671363606675700227520ustar00rootroot00000000000000const parser = require('postcss-value-parser'); function convert(value) { if (value && value.length === 2 && value[0] === 'span' && parseInt(value[1], 10) > 0 ) { return [false, parseInt(value[1], 10)]; } if (value && value.length === 1 && parseInt(value[0], 10) > 0 ) { return [parseInt(value[0], 10), false]; } return [false, false]; } function translate(values, startIndex, endIndex) { const startValue = values[startIndex]; const endValue = values[endIndex]; if (!startValue) { return [false, false]; } const [start, spanStart] = convert(startValue); const [end, spanEnd] = convert(endValue); if (start && !endValue) { return [start, false]; } if (spanStart && end) { return [end - spanStart, spanStart]; } if (start && spanEnd) { return [start, spanEnd]; } if (start && end) { return [start, end - start]; } return [false, false]; } function parse(decl) { const node = parser(decl.value); let values = []; let current = 0; values[current] = []; for (const i of node.nodes) { if (i.type === 'div') { current += 1; values[current] = []; } else if (i.type === 'word') { values[current].push(i.value); } } return values; } function insertDecl(decl, prop, value) { if (value && !decl.parent.some(i => i.prop === `-ms-${prop}`)) { decl.cloneBefore({ prop: `-ms-${prop}`, value: value.toString() }); } } // Track transforms function prefixTrackProp({ prop, prefix }) { return prefix + prop.replace('template-', ''); } function transformRepeat({ nodes }, { gap }) { const { count, size } = nodes.reduce((result, node) => { if (node.type === 'div' && node.value === ',') { result.key = 'size'; } else { result[result.key].push(parser.stringify(node)); } return result; }, { key: 'count', size: [], count: [] }); if (gap) { const val = []; for (let i = 1; i <= count; i++) { if (gap && i > 1) { val.push(gap); } val.push(size.join()); } return val.join(' '); } return `(${size.join('')})[${count.join('')}]`; } function prefixTrackValue({ value, gap }) { const result = parser(value) .nodes .reduce((nodes, node) => { if (node.type === 'function' && node.value === 'repeat') { return nodes.concat({ type: 'word', value: transformRepeat(node, { gap }) }); } if (gap && node.type === 'space') { return nodes.concat({ type: 'space', value: ' ' }, { type: 'word', value: gap }, node); } return nodes.concat(node); }, []); return parser.stringify(result); } // Parse grid-template-areas const DOTS = /^\.+$/; function track(start, end) { return { start, end, span: end - start }; } function getColumns(line) { return line.trim().split(/\s+/g); } function parseGridAreas({ rows, gap }) { return rows.reduce((areas, line, rowIndex) => { if (gap.row) rowIndex *= 2; if (line.trim() === '') return areas; getColumns(line).forEach((area, columnIndex) => { if (DOTS.test(area)) return; if (gap.column) columnIndex *= 2; if (typeof areas[area] === 'undefined') { areas[area] = { column: track(columnIndex + 1, columnIndex + 2), row: track(rowIndex + 1, rowIndex + 2) }; } else { const { column, row } = areas[area]; column.start = Math.min(column.start, columnIndex + 1); column.end = Math.max(column.end, columnIndex + 2); column.span = column.end - column.start; row.start = Math.min(row.start, rowIndex + 1); row.end = Math.max(row.end, rowIndex + 2); row.span = row.end - row.start; } }); return areas; }, {}); } // Parse grid-template function testTrack(node) { return node.type === 'word' && /^\[.+\]$/.test(node.value); } function verifyRowSize(result) { if (result.areas.length > result.rows.length) { result.rows.push('auto'); } return result; } function parseTemplate({ decl, gap }) { const gridTemplate = parser(decl.value) .nodes .reduce((result, node) => { const { type, value } = node; if (testTrack(node) || type === 'space') return result; // area if (type === 'string') { result = verifyRowSize(result); result.areas.push(value); } // values and function if (type === 'word' || type === 'function') { result[result.key].push(parser.stringify(node)); } // devider(/) if (type === 'div' && value === '/') { result.key = 'columns'; result = verifyRowSize(result); } return result; }, { key: 'rows', columns: [], rows: [], areas: [] }); return { areas: parseGridAreas({ rows: gridTemplate.areas, gap }), columns: prefixTrackValue({ value: gridTemplate.columns.join(' '), gap: gap.column }), rows: prefixTrackValue({ value: gridTemplate.rows.join(' '), gap: gap.row }) }; } // Insert parsed grid areas function getMSDecls(area) { return [].concat( { prop: '-ms-grid-row', value: String(area.row.start) }, area.row.span > 1 ? { prop: '-ms-grid-row-span', value: String(area.row.span) } : [], { prop: '-ms-grid-column', value: String(area.column.start) }, area.column.span > 1 ? { prop: '-ms-grid-column-span', value: String(area.column.span) } : [] ); } function getParentMedia(parent) { if (parent.type === 'atrule' && parent.name === 'media') { return parent; } else if (!parent.parent) { return false; } return getParentMedia(parent.parent); } function insertAreas(areas, decl, result) { let missed = Object.keys(areas); const parentMedia = getParentMedia(decl.parent); const rules = []; const areasLength = Object.keys(areas).length; let areasCount = 0; decl.root().walkDecls('grid-area', gridArea => { const value = gridArea.value; const area = areas[value]; missed = missed.filter(e => e !== value); if (area && parentMedia) { // create new rule const rule = decl.parent.clone({ selector: gridArea.parent.selector }); rule.removeAll(); // insert prefixed decls in new rule getMSDecls(area) .forEach(i => rule.append( Object.assign(i, { raws: { between: gridArea.raws.between } }) )); rules.push(rule); areasCount++; if (areasCount === areasLength) { const next = gridArea.parent.next(); if ( next && next.type === 'atrule' && next.name === 'media' && next.params === parentMedia.params && next.first.type === 'rule' && next.first.selector && parentMedia.first.selector && /^-ms-/.test(next.first.first.prop) ) return undefined; const areaMedia = parentMedia.clone().removeAll().append(rules); gridArea.parent.after(areaMedia); } return undefined; } if (area) { gridArea.parent .walkDecls(/-ms-grid-(row|column)/, (d) => { d.remove(); }); // insert prefixed decls before grid-area getMSDecls(area).forEach(i => gridArea.cloneBefore(i)); } return undefined; }); if (missed.length > 0) { decl.warn(result, 'Can not find grid areas: ' + missed.join(', ')); } } // Gap utils function getGridGap(decl) { const gap = {}; // try to find gap const testGap = /^(grid-)?((row|column)-)?gap$/; decl.parent.walkDecls(testGap, ({ prop, value }) => { if (/^(grid-)?gap$/.test(prop)) { const [row = {},, column = {}] = parser(value).nodes; gap.row = row.value; gap.column = column.value || row.value; } if (/^(grid-)?row-gap$/.test(prop)) gap.row = value; if (/^(grid-)?column-gap$/.test(prop)) gap.column = value; }); return gap; } function warnGridGap({ gap, hasColumns, decl, result }) { const hasBothGaps = gap.row && gap.column; if (!hasColumns && (hasBothGaps || gap.column && !gap.row)) { delete gap.column; decl.warn( result, 'Can not impliment grid-gap without grid-tamplate-columns' ); } } module.exports = { parse, translate, parseTemplate, parseGridAreas, insertAreas, insertDecl, prefixTrackProp, prefixTrackValue, getGridGap, warnGridGap }; node-autoprefixer-8.6.5+repack/lib/hacks/image-rendering.js000066400000000000000000000020221363606675700237040ustar00rootroot00000000000000const Declaration = require('../declaration'); class ImageRendering extends Declaration { static names = ['image-rendering', 'interpolation-mode']; /** * Add hack only for crisp-edges */ check(decl) { return decl.value === 'pixelated'; } /** * Change property name for IE */ prefixed(prop, prefix) { if (prefix === '-ms-') { return '-ms-interpolation-mode'; } else { return super.prefixed(prop, prefix); } } /** * Change property and value for IE */ set(decl, prefix) { if (prefix !== '-ms-') return super.set(decl, prefix); decl.prop = '-ms-interpolation-mode'; decl.value = 'nearest-neighbor'; return decl; } /** * Return property name by spec */ normalize() { return 'image-rendering'; } /** * Warn on old value */ process(node, result) { return super.process(node, result); } } module.exports = ImageRendering; node-autoprefixer-8.6.5+repack/lib/hacks/image-set.js000066400000000000000000000006671363606675700225370ustar00rootroot00000000000000const Value = require('../value'); class ImageSet extends Value { static names = ['image-set']; /** * Use non-standard name for WebKit and Firefox */ replace(string, prefix) { let fixed = super.replace(string, prefix); if (prefix === '-webkit-') { fixed = fixed.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi, 'url($1)$2'); } return fixed; } } module.exports = ImageSet; node-autoprefixer-8.6.5+repack/lib/hacks/inline-logical.js000066400000000000000000000013751363606675700235470ustar00rootroot00000000000000const Declaration = require('../declaration'); class InlineLogical extends Declaration { static names = [ 'border-inline-start', 'border-inline-end', 'margin-inline-start', 'margin-inline-end', 'padding-inline-start', 'padding-inline-end', 'border-start', 'border-end', 'margin-start', 'margin-end', 'padding-start', 'padding-end' ]; /** * Use old syntax for -moz- and -webkit- */ prefixed(prop, prefix) { return prefix + prop.replace('-inline', ''); } /** * Return property name by spec */ normalize(prop) { return prop.replace( /(margin|padding|border)-(start|end)/, '$1-inline-$2' ); } } module.exports = InlineLogical; node-autoprefixer-8.6.5+repack/lib/hacks/intrinsic.js000066400000000000000000000030661363606675700226620ustar00rootroot00000000000000const OldValue = require('../old-value'); const Value = require('../value'); function regexp(name) { return new RegExp(`(^|[\\s,(])(${name}($|[\\s),]))`, 'gi'); } class Intrinsic extends Value { static names = [ 'max-content', 'min-content', 'fit-content', 'fill', 'fill-available', 'stretch' ]; regexp() { if (!this.regexpCache) this.regexpCache = regexp(this.name); return this.regexpCache; } isStretch() { return this.name === 'stretch' || this.name === 'fill' || this.name === 'fill-available'; } replace(string, prefix) { if (prefix === '-moz-' && this.isStretch()) { return string.replace(this.regexp(), '$1-moz-available$3'); } else if (prefix === '-webkit-' && this.isStretch()) { return string.replace(this.regexp(), '$1-webkit-fill-available$3'); } else { return super.replace(string, prefix); } } old(prefix) { let prefixed = prefix + this.name; if (this.isStretch()) { if (prefix === '-moz-') { prefixed = '-moz-available'; } else if (prefix === '-webkit-') { prefixed = '-webkit-fill-available'; } } return new OldValue(this.name, prefixed, prefixed, regexp(prefixed)); } add(decl, prefix) { if (decl.prop.indexOf('grid') !== -1 && prefix !== '-webkit-') { return undefined; } return super.add(decl, prefix); } } module.exports = Intrinsic; node-autoprefixer-8.6.5+repack/lib/hacks/justify-content.js000066400000000000000000000026301363606675700240210ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class JustifyContent extends Declaration { static names = ['justify-content', 'flex-pack', 'box-pack']; static oldValues = { 'flex-end': 'end', 'flex-start': 'start', 'space-between': 'justify', 'space-around': 'distribute' }; /** * Change property name for 2009 and 2012 specs */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return prefix + 'box-pack'; } else if (spec === 2012) { return prefix + 'flex-pack'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'justify-content'; } /** * Change value for 2009 and 2012 specs */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2009 || spec === 2012) { const value = JustifyContent.oldValues[decl.value] || decl.value; decl.value = value; if (spec !== 2009 || value !== 'distribute') { return super.set(decl, prefix); } } else if (spec === 'final') { return super.set(decl, prefix); } return undefined; } } module.exports = JustifyContent; node-autoprefixer-8.6.5+repack/lib/hacks/mask-border.js000066400000000000000000000015531363606675700230650ustar00rootroot00000000000000const Declaration = require('../declaration'); class MaskBorder extends Declaration { static names = [ 'mask-border', 'mask-border-source', 'mask-border-slice', 'mask-border-width', 'mask-border-outset', 'mask-border-repeat', 'mask-box-image', 'mask-box-image-source', 'mask-box-image-slice', 'mask-box-image-width', 'mask-box-image-outset', 'mask-box-image-repeat' ]; /** * Return property name by final spec */ normalize() { return this.name.replace('box-image', 'border'); } /** * Return flex property for 2012 spec */ prefixed(prop, prefix) { let result = super.prefixed(prop, prefix); if (prefix === '-webkit-') { result = result.replace('border', 'box-image'); } return result; } } module.exports = MaskBorder; node-autoprefixer-8.6.5+repack/lib/hacks/order.js000066400000000000000000000020621363606675700217660ustar00rootroot00000000000000const flexSpec = require('./flex-spec'); const Declaration = require('../declaration'); class Order extends Declaration { static names = ['order', 'flex-order', 'box-ordinal-group']; /** * Change property name for 2009 and 2012 specs */ prefixed(prop, prefix) { let spec; [spec, prefix] = flexSpec(prefix); if (spec === 2009) { return prefix + 'box-ordinal-group'; } else if (spec === 2012) { return prefix + 'flex-order'; } else { return super.prefixed(prop, prefix); } } /** * Return property name by final spec */ normalize() { return 'order'; } /** * Fix value for 2009 spec */ set(decl, prefix) { const spec = flexSpec(prefix)[0]; if (spec === 2009 && /\d/.test(decl.value)) { decl.value = (parseInt(decl.value) + 1).toString(); return super.set(decl, prefix); } else { return super.set(decl, prefix); } } } module.exports = Order; node-autoprefixer-8.6.5+repack/lib/hacks/overscroll-behavior.js000066400000000000000000000013541363606675700246450ustar00rootroot00000000000000 const Declaration = require('../declaration'); class OverscrollBehavior extends Declaration { static names = ['overscroll-behavior', 'scroll-chaining']; /** * Change property name for IE */ prefixed(prop, prefix) { return prefix + 'scroll-chaining'; } /** * Return property name by spec */ normalize() { return 'overscroll-behavior'; } /** * Change value for IE */ set(decl, prefix) { if (decl.value === 'auto') { decl.value = 'chained'; } else if (decl.value === 'none' || decl.value === 'contain') { decl.value = 'none'; } return super.set(decl, prefix); } } module.exports = OverscrollBehavior; node-autoprefixer-8.6.5+repack/lib/hacks/pixelated.js000066400000000000000000000016741363606675700226420ustar00rootroot00000000000000const OldValue = require('../old-value'); const Value = require('../value'); class Pixelated extends Value { static names = ['pixelated']; /** * Use non-standard name for WebKit and Firefox */ replace(string, prefix) { if (prefix === '-webkit-') { return string.replace(this.regexp(), '$1-webkit-optimize-contrast'); } else if (prefix === '-moz-') { return string.replace(this.regexp(), '$1-moz-crisp-edges'); } else { return super.replace(string, prefix); } } /** * Different name for WebKit and Firefox */ old(prefix) { if (prefix === '-webkit-') { return new OldValue(this.name, '-webkit-optimize-contrast'); } else if (prefix === '-moz-') { return new OldValue(this.name, '-moz-crisp-edges'); } else { return super.old(prefix); } } } module.exports = Pixelated; node-autoprefixer-8.6.5+repack/lib/hacks/placeholder.js000066400000000000000000000014631363606675700231410ustar00rootroot00000000000000const Selector = require('../selector'); class Placeholder extends Selector { static names = ['::placeholder']; /** * Add old mozilla to possible prefixes */ possible() { return super.possible().concat(['-moz- old', '-ms- old']); } /** * Return different selectors depend on prefix */ prefixed(prefix) { if (prefix === '-webkit-') { return '::-webkit-input-placeholder'; } else if (prefix === '-ms-') { return '::-ms-input-placeholder'; } else if (prefix === '-ms- old') { return ':-ms-input-placeholder'; } else if (prefix === '-moz- old') { return ':-moz-placeholder'; } else { return `::${prefix}placeholder`; } } } module.exports = Placeholder; node-autoprefixer-8.6.5+repack/lib/hacks/text-decoration.js000066400000000000000000000007141363606675700237660ustar00rootroot00000000000000const Declaration = require('../declaration'); const BASIC = [ 'none', 'underline', 'overline', 'line-through', 'blink', 'inherit', 'initial', 'unset' ]; class TextDecoration extends Declaration { static names = [ 'text-decoration' ]; /** * Do not add prefixes for basic values. */ check(decl) { return decl.value.split(/\s+/).some(i => BASIC.indexOf(i) === -1); } } module.exports = TextDecoration; node-autoprefixer-8.6.5+repack/lib/hacks/text-emphasis-position.js000066400000000000000000000005721363606675700253140ustar00rootroot00000000000000const Declaration = require('../declaration'); class TextEmphasisPosition extends Declaration { static names = ['text-emphasis-position']; set(decl, prefix) { if (prefix === '-webkit-') { decl.value = decl.value.replace(/\s*(right|left)\s*/i, ''); } return super.set(decl, prefix); } } module.exports = TextEmphasisPosition; node-autoprefixer-8.6.5+repack/lib/hacks/transform-decl.js000066400000000000000000000034751363606675700236040ustar00rootroot00000000000000const Declaration = require('../declaration'); class TransformDecl extends Declaration { static names = ['transform', 'transform-origin']; static functions3d = [ 'matrix3d', 'translate3d', 'translateZ', 'scale3d', 'scaleZ', 'rotate3d', 'rotateX', 'rotateY', 'perspective' ]; /** * Recursively check all parents for @keyframes */ keyframeParents(decl) { let { parent } = decl; while (parent) { if (parent.type === 'atrule' && parent.name === 'keyframes') { return true; } ({ parent } = parent); } return false; } /** * Is transform contain 3D commands */ contain3d(decl) { if (decl.prop === 'transform-origin') { return false; } for (let func of TransformDecl.functions3d) { if (decl.value.indexOf(`${func}(`) !== -1) { return true; } } return false; } /** * Replace rotateZ to rotate for IE 9 */ set(decl, prefix) { decl = super.set(decl, prefix); if (prefix === '-ms-') { decl.value = decl.value.replace(/rotateZ/gi, 'rotate'); } return decl; } /** * Don't add prefix for IE in keyframes */ insert(decl, prefix, prefixes) { if (prefix === '-ms-') { if (!this.contain3d(decl) && !this.keyframeParents(decl)) { return super.insert(decl, prefix, prefixes); } } else if (prefix === '-o-') { if (!this.contain3d(decl)) { return super.insert(decl, prefix, prefixes); } } else { return super.insert(decl, prefix, prefixes); } return undefined; } } module.exports = TransformDecl; node-autoprefixer-8.6.5+repack/lib/hacks/writing-mode.js000066400000000000000000000010351363606675700232570ustar00rootroot00000000000000const Declaration = require('../declaration'); class WritingMode extends Declaration { static names = ['writing-mode']; static msValues = { 'horizontal-tb': 'lr-tb', 'vertical-rl': 'tb-rl', 'vertical-lr': 'tb-lr' }; set(decl, prefix) { if (prefix === '-ms-') { decl.value = WritingMode.msValues[decl.value] || decl.value; return super.set(decl, prefix); } else { return super.set(decl, prefix); } } } module.exports = WritingMode; node-autoprefixer-8.6.5+repack/lib/info.js000066400000000000000000000063311363606675700205200ustar00rootroot00000000000000const browserslist = require('browserslist'); function capitalize(str) { return str.slice(0, 1).toUpperCase() + str.slice(1); } const names = { ie: 'IE', ie_mob: 'IE Mobile', ios_saf: 'iOS', op_mini: 'Opera Mini', op_mob: 'Opera Mobile', and_chr: 'Chrome for Android', and_ff: 'Firefox for Android', and_uc: 'UC for Android' }; function prefix(name, prefixes, note) { let out = ` ${name}`; if ( note ) out += ' *'; out += ': '; out += prefixes.map(i => i.replace(/^-(.*)-$/g, '$1')).join(', '); out += '\n'; return out; } module.exports = function (prefixes) { if (prefixes.browsers.selected.length === 0) { return 'No browsers selected'; } const versions = {}; for (const browser of prefixes.browsers.selected) { let [name, version] = browser.split(' '); name = names[name] || capitalize(name); if (versions[name]) { versions[name].push(version); } else { versions[name] = [version]; } } let out = 'Browsers:\n'; for (const browser in versions) { let list = versions[browser]; list = list.sort((a, b) => parseFloat(b) - parseFloat(a)); out += ` ${browser}: ${list.join(', ')}\n`; } const coverage = browserslist.coverage(prefixes.browsers.selected); const round = Math.round(coverage * 100) / 100.0; out += `\nThese browsers account for ${round}% of all users globally\n`; let atrules = ''; for (const name in prefixes.add) { const data = prefixes.add[name]; if (name[0] === '@' && data.prefixes) { atrules += prefix(name, data.prefixes); } } if (atrules !== '') { out += `\nAt-Rules:\n${atrules}`; } let selectors = ''; for (const selector of prefixes.add.selectors) { if (selector.prefixes) { selectors += prefix(selector.name, selector.prefixes); } } if (selectors !== '') { out += `\nSelectors:\n${selectors}`; } let values = ''; let props = ''; let hadGrid = false; for (const name in prefixes.add) { const data = prefixes.add[name]; if (name[0] !== '@' && data.prefixes) { const grid = name.indexOf('grid-') === 0; if ( grid ) hadGrid = true; props += prefix(name, data.prefixes, grid); } if (!data.values) { continue; } for (let value of data.values) { const grid = value.name.indexOf('grid') !== -1; if ( grid ) hadGrid = true; const string = prefix(value.name, value.prefixes, grid); if (values.indexOf(string) === -1) { values += string; } } } if (props !== '') { out += `\nProperties:\n${props}`; } if (values !== '') { out += `\nValues:\n${values}`; } if (hadGrid) { out += '\n* - Prefixes will be added only on grid: true option.\n'; } if (atrules === '' && selectors === '' && props === '' && values === '') { out += '\nAwesome! Your browsers don\'t require any vendor prefixes.' + '\nNow you can remove Autoprefixer from build steps.'; } return out; }; node-autoprefixer-8.6.5+repack/lib/old-selector.js000066400000000000000000000033261363606675700221620ustar00rootroot00000000000000class OldSelector { constructor(selector, prefix) { this.prefix = prefix; this.prefixed = selector.prefixed(this.prefix); this.regexp = selector.regexp(this.prefix); this.prefixeds = selector.possible().map( x => [selector.prefixed(x), selector.regexp(x)] ); this.unprefixed = selector.name; this.nameRegexp = selector.regexp(); } /** * Is rule a hack without unprefixed version bottom */ isHack(rule) { let index = rule.parent.index(rule) + 1; const rules = rule.parent.nodes; while (index < rules.length) { const before = rules[index].selector; if (!before) { return true; } if (before.indexOf(this.unprefixed) !== -1 && before.match(this.nameRegexp) ) { return false; } let some = false; for (const [string, regexp] of this.prefixeds) { if (before.indexOf(string) !== -1 && before.match(regexp) ) { some = true; break; } } if (!some) { return true; } index += 1; } return true; } /** * Does rule contain an unnecessary prefixed selector */ check(rule) { if (rule.selector.indexOf(this.prefixed) === -1) { return false; } if (!rule.selector.match(this.regexp)) { return false; } if (this.isHack(rule)) { return false; } return true; } } module.exports = OldSelector; node-autoprefixer-8.6.5+repack/lib/old-value.js000066400000000000000000000010211363606675700214440ustar00rootroot00000000000000const utils = require('./utils'); class OldValue { constructor(unprefixed, prefixed, string, regexp) { this.unprefixed = unprefixed; this.prefixed = prefixed; this.string = string || prefixed; this.regexp = regexp || utils.regexp(prefixed); } /** * Check, that value contain old value */ check(value) { if (value.indexOf(this.string) !== -1) { return !!value.match(this.regexp); } return false; } } module.exports = OldValue; node-autoprefixer-8.6.5+repack/lib/prefixer.js000066400000000000000000000070231363606675700214100ustar00rootroot00000000000000const Browsers = require('./browsers'); const utils = require('./utils'); const vendor = require('postcss').vendor; /** * Recursivly clone objects */ function clone(obj, parent) { const cloned = new obj.constructor(); for (const i of Object.keys(obj || {})) { let value = obj[i]; if (i === 'parent' && typeof value === 'object') { if (parent) { cloned[i] = parent; } } else if (i === 'source' || i === null) { cloned[i] = value; } else if (value instanceof Array) { cloned[i] = value.map(x => clone(x, cloned)); } else if (i !== '_autoprefixerPrefix' && i !== '_autoprefixerValues') { if (typeof value === 'object' && value !== null) { value = clone(value, cloned); } cloned[i] = value; } } return cloned; } class Prefixer { /** * Add hack to selected names */ static hack(klass) { if (!this.hacks) { this.hacks = {}; } return klass.names.map((name) => { this.hacks[name] = klass; return this.hacks[name]; }); } /** * Load hacks for some names */ static load(name, prefixes, all) { const Klass = this.hacks && this.hacks[name]; if (Klass) { return new Klass(name, prefixes, all); } else { return new this(name, prefixes, all); } } /** * Clone node and clean autprefixer custom caches */ static clone(node, overrides) { const cloned = clone(node); for (let name in overrides) { cloned[name] = overrides[name]; } return cloned; } constructor(name, prefixes, all) { this.name = name; this.prefixes = prefixes; this.all = all; } /** * Find prefix in node parents */ parentPrefix(node) { let prefix; if (typeof node._autoprefixerPrefix !== 'undefined') { prefix = node._autoprefixerPrefix; } else if (node.type === 'decl' && node.prop[0] === '-') { prefix = vendor.prefix(node.prop); } else if (node.type === 'root') { prefix = false; } else if ( node.type === 'rule' && node.selector.indexOf(':-') !== -1 && /:(-\w+-)/.test(node.selector) ) { prefix = node.selector.match(/:(-\w+-)/)[1]; } else if (node.type === 'atrule' && node.name[0] === '-') { prefix = vendor.prefix(node.name); } else { prefix = this.parentPrefix(node.parent); } if (Browsers.prefixes().indexOf(prefix) === -1) { prefix = false; } node._autoprefixerPrefix = prefix; return node._autoprefixerPrefix; } /** * Clone node with prefixes */ process(node, result) { if (!this.check(node)) { return undefined; } const parent = this.parentPrefix(node); const prefixes = this.prefixes.filter( prefix => !parent || parent === utils.removeNote(prefix) ); const added = []; for (const prefix of prefixes) { if (this.add(node, prefix, added.concat([prefix]), result)) { added.push(prefix); } } return added; } /** * Shortcut for Prefixer.clone */ clone(node, overrides) { return Prefixer.clone(node, overrides); } } module.exports = Prefixer; node-autoprefixer-8.6.5+repack/lib/prefixes.js000066400000000000000000000306431363606675700214150ustar00rootroot00000000000000const Declaration = require('./declaration'); const Resolution = require('./resolution'); const Transition = require('./transition'); const Processor = require('./processor'); const Supports = require('./supports'); const Browsers = require('./browsers'); const Selector = require('./selector'); const AtRule = require('./at-rule'); const Value = require('./value'); const utils = require('./utils'); const vendor = require('postcss').vendor; Selector.hack(require('./hacks/fullscreen')); Selector.hack(require('./hacks/placeholder')); Declaration.hack(require('./hacks/flex')); Declaration.hack(require('./hacks/order')); Declaration.hack(require('./hacks/filter')); Declaration.hack(require('./hacks/grid-end')); Declaration.hack(require('./hacks/animation')); Declaration.hack(require('./hacks/flex-flow')); Declaration.hack(require('./hacks/flex-grow')); Declaration.hack(require('./hacks/flex-wrap')); Declaration.hack(require('./hacks/grid-area')); Declaration.hack(require('./hacks/grid-start')); Declaration.hack(require('./hacks/align-self')); Declaration.hack(require('./hacks/appearance')); Declaration.hack(require('./hacks/flex-basis')); Declaration.hack(require('./hacks/mask-border')); Declaration.hack(require('./hacks/align-items')); Declaration.hack(require('./hacks/flex-shrink')); Declaration.hack(require('./hacks/break-props')); Declaration.hack(require('./hacks/writing-mode')); Declaration.hack(require('./hacks/border-image')); Declaration.hack(require('./hacks/align-content')); Declaration.hack(require('./hacks/border-radius')); Declaration.hack(require('./hacks/block-logical')); Declaration.hack(require('./hacks/grid-template')); Declaration.hack(require('./hacks/inline-logical')); Declaration.hack(require('./hacks/grid-row-align')); Declaration.hack(require('./hacks/transform-decl')); Declaration.hack(require('./hacks/flex-direction')); Declaration.hack(require('./hacks/image-rendering')); Declaration.hack(require('./hacks/text-decoration')); Declaration.hack(require('./hacks/justify-content')); Declaration.hack(require('./hacks/background-size')); Declaration.hack(require('./hacks/grid-row-column')); Declaration.hack(require('./hacks/grid-rows-columns')); Declaration.hack(require('./hacks/grid-column-align')); Declaration.hack(require('./hacks/overscroll-behavior')); Declaration.hack(require('./hacks/grid-template-areas')); Declaration.hack(require('./hacks/text-emphasis-position')); Declaration.hack(require('./hacks/color-adjust')); Value.hack(require('./hacks/gradient')); Value.hack(require('./hacks/intrinsic')); Value.hack(require('./hacks/pixelated')); Value.hack(require('./hacks/image-set')); Value.hack(require('./hacks/cross-fade')); Value.hack(require('./hacks/display-flex')); Value.hack(require('./hacks/display-grid')); Value.hack(require('./hacks/filter-value')); const declsCache = {}; class Prefixes { constructor(data, browsers, options = {}) { this.data = data; this.browsers = browsers; this.options = options; [this.add, this.remove] = this.preprocess(this.select(this.data)); this.transition = new Transition(this); this.processor = new Processor(this); } /** * Return clone instance to remove all prefixes */ cleaner() { if (this.cleanerCache) { return this.cleanerCache; } if (this.browsers.selected.length) { const empty = new Browsers(this.browsers.data, []); this.cleanerCache = new Prefixes(this.data, empty, this.options); } else { return this; } return this.cleanerCache; } /** * Select prefixes from data, which is necessary for selected browsers */ select(list) { const selected = { add: {}, remove: {} }; for (let name in list) { const data = list[name]; let add = data.browsers.map(i => { const params = i.split(' '); return { browser: `${params[0]} ${params[1]}`, note: params[2] }; }); let notes = add .filter(i => i.note) .map(i => `${this.browsers.prefix(i.browser)} ${i.note}`); notes = utils.uniq(notes); add = add .filter(i => this.browsers.isSelected(i.browser)) .map(i => { const prefix = this.browsers.prefix(i.browser); if (i.note) { return `${prefix} ${i.note}`; } else { return prefix; } }); add = this.sort(utils.uniq(add)); if (this.options.flexbox === 'no-2009') { add = add.filter(i => i.indexOf('2009') === -1); } let all = data.browsers.map(i => this.browsers.prefix(i)); if (data.mistakes) { all = all.concat(data.mistakes); } all = all.concat(notes); all = utils.uniq(all); if (add.length) { selected.add[name] = add; if (add.length < all.length) { selected.remove[name] = all.filter( i => add.indexOf(i) === -1 ); } } else { selected.remove[name] = all; } } return selected; } /** * Sort vendor prefixes */ sort(prefixes) { return prefixes.sort((a, b) => { const aLength = utils.removeNote(a).length; const bLength = utils.removeNote(b).length; if (aLength === bLength) { return b.length - a.length; } else { return bLength - aLength; } }); } /** * Cache prefixes data to fast CSS processing */ preprocess(selected) { const add = { 'selectors': [], '@supports': new Supports(Prefixes, this) }; for (const name in selected.add) { const prefixes = selected.add[name]; if (name === '@keyframes' || name === '@viewport') { add[name] = new AtRule(name, prefixes, this); } else if (name === '@resolution') { add[name] = new Resolution(name, prefixes, this); } else if (this.data[name].selector) { add.selectors.push(Selector.load(name, prefixes, this)); } else { const props = this.data[name].props; if (props) { const value = Value.load(name, prefixes, this); for (const prop of props) { if (!add[prop]) { add[prop] = { values: [] }; } add[prop].values.push(value); } } else { const values = add[name] && add[name].values || []; add[name] = Declaration.load(name, prefixes, this); add[name].values = values; } } } const remove = { selectors: [] }; for (const name in selected.remove) { const prefixes = selected.remove[name]; if (this.data[name].selector) { const selector = Selector.load(name, prefixes); for (const prefix of prefixes) { remove.selectors.push(selector.old(prefix)); } } else if (name === '@keyframes' || name === '@viewport') { for (const prefix of prefixes) { const prefixed = `@${prefix}${name.slice(1)}`; remove[prefixed] = { remove: true }; } } else if (name === '@resolution') { remove[name] = new Resolution(name, prefixes, this); } else { const props = this.data[name].props; if (props) { const value = Value.load(name, [], this); for (const prefix of prefixes) { const old = value.old(prefix); if (old) { for (const prop of props) { if (!remove[prop]) { remove[prop] = {}; } if (!remove[prop].values) { remove[prop].values = []; } remove[prop].values.push(old); } } } } else { for (const prefix of prefixes) { const olds = this.decl(name).old(name, prefix); if (name === 'align-self') { const a = add[name] && add[name].prefixes; if (a) { if (prefix === '-webkit- 2009' && a.indexOf('-webkit-') !== -1) { continue; } else if (prefix === '-webkit-' && a.indexOf('-webkit- 2009') !== -1) { continue; } } } for (const prefixed of olds) { if (!remove[prefixed]) { remove[prefixed] = {}; } remove[prefixed].remove = true; } } } } } return [add, remove]; } /** * Declaration loader with caching */ decl(prop) { const decl = declsCache[prop]; if (decl) { return decl; } else { declsCache[prop] = Declaration.load(prop); return declsCache[prop]; } } /** * Return unprefixed version of property */ unprefixed(prop) { let value = this.normalize(vendor.unprefixed(prop)); if (value === 'flex-direction') { value = 'flex-flow'; } return value; } /** * Normalize prefix for remover */ normalize(prop) { return this.decl(prop).normalize(prop); } /** * Return prefixed version of property */ prefixed(prop, prefix) { prop = vendor.unprefixed(prop); return this.decl(prop).prefixed(prop, prefix); } /** * Return values, which must be prefixed in selected property */ values(type, prop) { const data = this[type]; const global = data['*'] && data['*'].values; const values = data[prop] && data[prop].values; if (global && values) { return utils.uniq(global.concat(values)); } else { return global || values || []; } } /** * Group declaration by unprefixed property to check them */ group(decl) { const rule = decl.parent; let index = rule.index(decl); const { length } = rule.nodes; const unprefixed = this.unprefixed(decl.prop); const checker = (step, callback) => { index += step; while (index >= 0 && index < length) { const other = rule.nodes[index]; if (other.type === 'decl') { if (step === -1 && other.prop === unprefixed) { if (!Browsers.withPrefix(other.value)) { break; } } if (this.unprefixed(other.prop) !== unprefixed) { break; } else if (callback(other) === true) { return true; } if (step === +1 && other.prop === unprefixed) { if (!Browsers.withPrefix(other.value)) { break; } } } index += step; } return false; }; return { up(callback) { return checker(-1, callback); }, down(callback) { return checker(+1, callback); } }; } } module.exports = Prefixes; node-autoprefixer-8.6.5+repack/lib/processor.js000066400000000000000000000421511363606675700216040ustar00rootroot00000000000000const Value = require('./value'); const OLD_LINEAR = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i; const OLD_RADIAL = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i; const RADIAL_BLOCK = /\(((?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*)\)/i; const IGNORE_NEXT = /(!\s*)?autoprefixer:\s*ignore\s+next/i; const SIZES = [ 'width', 'height', 'min-width', 'max-width', 'min-height', 'max-height', 'inline-size', 'min-inline-size', 'max-inline-size', 'block-size', 'min-block-size', 'max-block-size' ]; class Processor { constructor(prefixes) { this.prefixes = prefixes; } /** * Add necessary prefixes */ add(css, result) { // At-rules const resolution = this.prefixes.add['@resolution']; const keyframes = this.prefixes.add['@keyframes']; const viewport = this.prefixes.add['@viewport']; const supports = this.prefixes.add['@supports']; css.walkAtRules(rule => { if (rule.name === 'keyframes') { if (!this.disabled(rule, result)) { return keyframes && keyframes.process(rule); } } else if (rule.name === 'viewport') { if (!this.disabled(rule, result)) { return viewport && viewport.process(rule); } } else if (rule.name === 'supports') { if (this.prefixes.options.supports !== false && !this.disabled(rule, result) ) { return supports.process(rule); } } else if (rule.name === 'media' && rule.params.indexOf('-resolution') !== -1 ) { if (!this.disabled(rule, result)) { return resolution && resolution.process(rule); } } return undefined; }); // Selectors css.walkRules(rule => { if (this.disabled(rule, result)) return undefined; return this.prefixes.add.selectors.map(selector => { return selector.process(rule, result); }); }); css.walkDecls(decl => { if (this.disabledDecl(decl, result)) return undefined; const prop = decl.prop; const value = decl.value; if (prop === 'grid-row-span') { result.warn( 'grid-row-span is not part of final Grid Layout. ' + 'Use grid-row.', { node: decl } ); return undefined; } else if (prop === 'grid-column-span') { result.warn( 'grid-column-span is not part of final Grid Layout. ' + 'Use grid-column.', { node: decl } ); return undefined; } else if (prop === 'display' && value === 'box') { result.warn( 'You should write display: flex by final spec ' + 'instead of display: box', { node: decl } ); return undefined; } else if (prop === 'text-emphasis-position') { if (value === 'under' || value === 'over') { result.warn( 'You should use 2 values for text-emphasis-position ' + 'For example, `under left` instead of just `under`.', { node: decl } ); } } else { const grid = this.prefixes.add['grid-area']; if (this.prefixes.options.grid && grid && grid.prefixes) { if (prop === 'grid-auto-columns') { result.warn( 'grid-auto-columns is not supported by IE', { node: decl } ); return undefined; } else if (prop === 'grid-auto-rows') { result.warn( 'grid-auto-rows is not supported by IE', { node: decl } ); return undefined; } else if (prop === 'grid-auto-flow') { result.warn( 'grid-auto-flow is not supported by IE', { node: decl } ); return undefined; } else if (value.indexOf('auto-fit') !== -1) { result.warn( 'auto-fit value is not supported by IE', { node: decl, word: 'auto-fit' } ); return undefined; } else if (value.indexOf('auto-fill') !== -1) { result.warn( 'auto-fill value is not supported by IE', { node: decl, word: 'auto-fill' } ); return undefined; } } if (value.indexOf('radial-gradient') !== -1) { if (OLD_RADIAL.test(decl.value)) { result.warn( 'Gradient has outdated direction syntax. ' + 'New syntax is like `closest-side at 0 0` ' + 'instead of `0 0, closest-side`.', { node: decl } ); } else { const match = value.match(RADIAL_BLOCK); if (match) { if (/cover/.test(match[1])) { result.warn( 'Gradient has outdated direction syntax. ' + 'Replace `cover` to `farthest-corner`.', { node: decl } ); } else if (/contain/.test(match[1])) { result.warn( 'Gradient has outdated direction syntax. ' + 'Replace `contain` to `closest-side`.', { node: decl } ); } } } } if (value.indexOf('linear-gradient') !== -1) { if (OLD_LINEAR.test(value)) { result.warn( 'Gradient has outdated direction syntax. ' + 'New syntax is like `to left` instead of `right`.', { node: decl } ); } } } if (SIZES.indexOf(decl.prop) !== -1) { if (decl.value.indexOf('-fill-available') === -1) { if (decl.value.indexOf('fill-available') !== -1) { result.warn( 'Replace fill-available to stretch, ' + 'because spec had been changed', { node: decl } ); } else if (decl.value.indexOf('fill') !== -1) { result.warn( 'Replace fill to stretch, ' + 'because spec had been changed', { node: decl } ); } } } let prefixer; if ( decl.prop === 'transition' || decl.prop === 'transition-property' ) { // Transition return this.prefixes.transition.add(decl, result); } else if (decl.prop === 'align-self') { // align-self flexbox or grid const display = this.displayType(decl); if ( display !== 'grid' && this.prefixes.options.flexbox !== false ) { prefixer = this.prefixes.add['align-self']; if (prefixer && prefixer.prefixes) { prefixer.process(decl); } } if ( display !== 'flex' && this.prefixes.options.grid !== false ) { prefixer = this.prefixes.add['grid-row-align']; if (prefixer && prefixer.prefixes) { return prefixer.process(decl, result); } } } else if (decl.prop === 'justify-self') { // justify-self flexbox or grid const display = this.displayType(decl); if ( display !== 'flex' && this.prefixes.options.grid !== false ) { prefixer = this.prefixes.add['grid-column-align']; if (prefixer && prefixer.prefixes) { return prefixer.process(decl, result); } } } else { // Properties prefixer = this.prefixes.add[decl.prop]; if (prefixer && prefixer.prefixes) { return prefixer.process(decl, result); } } return undefined; }); // Values return css.walkDecls(decl => { if (this.disabledValue(decl, result)) return; const unprefixed = this.prefixes.unprefixed(decl.prop); for (let value of this.prefixes.values('add', unprefixed)) { value.process(decl, result); } Value.save(this.prefixes, decl); }); } /** * Remove unnecessary pefixes */ remove(css, result) { // At-rules const resolution = this.prefixes.remove['@resolution']; css.walkAtRules((rule, i) => { if (this.prefixes.remove[`@${rule.name}`]) { if (!this.disabled(rule, result)) { rule.parent.removeChild(i); } } else if (rule.name === 'media' && rule.params.indexOf('-resolution') !== -1 && resolution ) { resolution.clean(rule); } }); // Selectors for (const checker of this.prefixes.remove.selectors) { css.walkRules((rule, i) => { if (checker.check(rule)) { if (!this.disabled(rule, result)) { rule.parent.removeChild(i); } } }); } return css.walkDecls((decl, i) => { if (this.disabled(decl, result)) return; const rule = decl.parent; let unprefixed = this.prefixes.unprefixed(decl.prop); // Transition if (decl.prop === 'transition' || decl.prop === 'transition-property' ) { this.prefixes.transition.remove(decl); } // Properties if (this.prefixes.remove[decl.prop] && this.prefixes.remove[decl.prop].remove ) { let notHack = this.prefixes.group(decl).down(other => { return this.prefixes.normalize(other.prop) === unprefixed; }); if (unprefixed === 'flex-flow') { notHack = true; } if (notHack && !this.withHackValue(decl)) { if (decl.raw('before').indexOf('\n') > -1) { this.reduceSpaces(decl); } rule.removeChild(i); return; } } // Values for (const checker of this.prefixes.values('remove', unprefixed)) { if (!checker.check(decl.value)) { continue; } unprefixed = checker.unprefixed; const notHack = this.prefixes.group(decl).down( other => other.value.indexOf(unprefixed) !== -1 ); if (notHack) { rule.removeChild(i); return; } } }); } /** * Some rare old values, which is not in standard */ withHackValue(decl) { return decl.prop === '-webkit-background-clip' && decl.value === 'text'; } /** * Check for grid/flexbox options. */ disabledValue(node, result) { if (this.prefixes.options.grid === false && node.type === 'decl') { if (node.prop === 'display' && node.value.indexOf('grid') !== -1) { return true; } } if (this.prefixes.options.flexbox === false && node.type === 'decl') { if (node.prop === 'display' && node.value.indexOf('flex') !== -1) { return true; } } return this.disabled(node, result); } /** * Check for grid/flexbox options. */ disabledDecl(node, result) { if (this.prefixes.options.grid === false && node.type === 'decl') { if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items' ) { return true; } } if (this.prefixes.options.flexbox === false && node.type === 'decl') { const other = [ 'order', 'justify-content', 'align-items', 'align-content' ]; if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1 ) { return true; } } return this.disabled(node, result); } /** * Check for control comment and global options */ disabled(node, result) { if (!node) return false; if (node._autoprefixerDisabled !== undefined) { return node._autoprefixerDisabled; } if (node.parent) { const p = node.prev(); if (p && p.type === 'comment' && IGNORE_NEXT.test(p.text)) { node._autoprefixerDisabled = true; node._autoprefixerSelfDisabled = true; return true; } } let value = null; if (node.nodes) { let status = undefined; node.each(i => { if (i.type !== 'comment') return; if (/(!\s*)?autoprefixer:\s*(off|on)/i.test(i.text)) { if (typeof status !== 'undefined') { result.warn( 'Second Autoprefixer control comment ' + 'was ignored. Autoprefixer applies control ' + 'comment to whole block, not to next rules.', { node: i } ); } else { status = /on/i.test(i.text); } } }); if (status !== undefined) { value = !status; } } if (!node.nodes || value === null) { if (node.parent) { const isParentDisabled = this.disabled(node.parent, result); if (node.parent._autoprefixerSelfDisabled === true) { value = false; } else { value = isParentDisabled; } } else { value = false; } } node._autoprefixerDisabled = value; return value; } /** * Normalize spaces in cascade declaration group */ reduceSpaces(decl) { let stop = false; this.prefixes.group(decl).up(() => { stop = true; return true; }); if (stop) { return; } let parts = decl.raw('before').split('\n'); const prevMin = parts[parts.length - 1].length; let diff = false; this.prefixes.group(decl).down(other => { parts = other.raw('before').split('\n'); const last = parts.length - 1; if (parts[last].length > prevMin) { if (diff === false) { diff = parts[last].length - prevMin; } parts[last] = parts[last].slice(0, -diff); other.raws.before = parts.join('\n'); } }); } /** * Is it flebox or grid rule */ displayType(decl) { for (const i of decl.parent.nodes) { if (i.prop !== 'display') { continue; } if (i.value.indexOf('flex') !== -1) { return 'flex'; } if (i.value.indexOf('grid') !== -1) { return 'grid'; } } return false; } } module.exports = Processor; node-autoprefixer-8.6.5+repack/lib/resolution.js000066400000000000000000000047751363606675700220020ustar00rootroot00000000000000const Prefixer = require('./prefixer'); const utils = require('./utils'); const n2f = require('num2fraction'); const regexp = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpi)/gi; const split = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpi)/i; class Resolution extends Prefixer { /** * Return prefixed query name */ prefixName(prefix, name) { const newName = prefix === '-moz-' ? name + '--moz-device-pixel-ratio' : prefix + name + '-device-pixel-ratio'; return newName; } /** * Return prefixed query */ prefixQuery(prefix, name, colon, value, units) { if (units === 'dpi') { value = Number(value / 96); } if (prefix === '-o-') { value = n2f(value); } return this.prefixName(prefix, name) + colon + value; } /** * Remove prefixed queries */ clean(rule) { if (!this.bad) { this.bad = []; for (const prefix of this.prefixes) { this.bad.push(this.prefixName(prefix, 'min')); this.bad.push(this.prefixName(prefix, 'max')); } } rule.params = utils.editList(rule.params, queries => { return queries.filter( query => this.bad.every(i => query.indexOf(i) === -1) ); }); } /** * Add prefixed queries */ process(rule) { const parent = this.parentPrefix(rule); const prefixes = parent ? [parent] : this.prefixes; rule.params = utils.editList(rule.params, (origin, prefixed) => { for (let query of origin) { if (query.indexOf('min-resolution') === -1 && query.indexOf('max-resolution') === -1) { prefixed.push(query); continue; } for (const prefix of prefixes) { const processed = query.replace(regexp, str => { const parts = str.match(split); return this.prefixQuery( prefix, parts[1], parts[2], parts[3], parts[4] ); }); prefixed.push(processed); } prefixed.push(query); } return utils.uniq(prefixed); }); } } module.exports = Resolution; node-autoprefixer-8.6.5+repack/lib/selector.js000066400000000000000000000061341363606675700214060ustar00rootroot00000000000000const OldSelector = require('./old-selector'); const Prefixer = require('./prefixer'); const Browsers = require('./browsers'); const utils = require('./utils'); class Selector extends Prefixer { constructor(name, prefixes, all) { super(name, prefixes, all); this.regexpCache = {}; } /** * Is rule selectors need to be prefixed */ check(rule) { if (rule.selector.indexOf(this.name) !== -1) { return !!rule.selector.match(this.regexp()); } return false; } /** * Return prefixed version of selector */ prefixed(prefix) { return this.name.replace(/^([^\w]*)/, `$1${prefix}`); } /** * Lazy loadRegExp for name */ regexp(prefix) { if (this.regexpCache[prefix]) { return this.regexpCache[prefix]; } const name = prefix ? this.prefixed(prefix) : this.name; this.regexpCache[prefix] = new RegExp(`(^|[^:"'=])${utils.escapeRegexp(name)}`, 'gi'); return this.regexpCache[prefix]; } /** * All possible prefixes */ possible() { return Browsers.prefixes(); } /** * Return all possible selector prefixes */ prefixeds(rule) { if (rule._autoprefixerPrefixeds) { return rule._autoprefixerPrefixeds; } const prefixeds = {}; for (const prefix of this.possible()) { prefixeds[prefix] = this.replace(rule.selector, prefix); } rule._autoprefixerPrefixeds = prefixeds; return rule._autoprefixerPrefixeds; } /** * Is rule already prefixed before */ already(rule, prefixeds, prefix) { let index = rule.parent.index(rule) - 1; while (index >= 0) { const before = rule.parent.nodes[index]; if (before.type !== 'rule') { return false; } let some = false; for (let key in prefixeds) { const prefixed = prefixeds[key]; if (before.selector === prefixed) { if (prefix === key) { return true; } else { some = true; break; } } } if (!some) { return false; } index -= 1; } return false; } /** * Replace selectors by prefixed one */ replace(selector, prefix) { return selector.replace(this.regexp(), `$1${this.prefixed(prefix)}`); } /** * Clone and add prefixes for at-rule */ add(rule, prefix) { const prefixeds = this.prefixeds(rule); if (this.already(rule, prefixeds, prefix)) { return; } const cloned = this.clone(rule, { selector: prefixeds[prefix] }); rule.parent.insertBefore(rule, cloned); } /** * Return function to fast find prefixed selector */ old(prefix) { return new OldSelector(this, prefix); } } module.exports = Selector; node-autoprefixer-8.6.5+repack/lib/supports.js000066400000000000000000000164361363606675700214730ustar00rootroot00000000000000const Browsers = require('./browsers'); const brackets = require('./brackets'); const Value = require('./value'); const utils = require('./utils'); const postcss = require('postcss'); const supported = []; const data = require('caniuse-lite').feature( require('caniuse-lite/data/features/css-featurequeries.js') ); for (let browser in data.stats) { const versions = data.stats[browser]; for (let version in versions) { const support = versions[version]; if (/y/.test(support)) { supported.push(browser + ' ' + version); } } } class Supports { constructor(Prefixes, all) { this.Prefixes = Prefixes; this.all = all; } /** * Return prefixer only with @supports supported browsers */ prefixer() { if (this.prefixerCache) { return this.prefixerCache; } const filtered = this.all.browsers.selected.filter(i => { return supported.indexOf(i) !== -1; }); const browsers = new Browsers( this.all.browsers.data, filtered, this.all.options ); this.prefixerCache = new this.Prefixes( this.all.data, browsers, this.all.options ); return this.prefixerCache; } /** * Parse string into declaration property and value */ parse(str) { let [prop, value] = str.split(':'); if (!value) value = ''; return [prop.trim(), value.trim()]; } /** * Create virtual rule to process it by prefixer */ virtual(str) { const [prop, value] = this.parse(str); const rule = postcss.parse('a{}').first; rule.append({ prop, value, raws: { before: '' } }); return rule; } /** * Return array of Declaration with all necessary prefixes */ prefixed(str) { const rule = this.virtual(str); if (this.disabled(rule.first)) { return rule.nodes; } const result = { warn: () => null }; const prefixer = this.prefixer().add[rule.first.prop]; prefixer && prefixer.process && prefixer.process(rule.first, result); for (let decl of rule.nodes) { for (let value of this.prefixer().values('add', rule.first.prop)) { value.process(decl); } Value.save(this.all, decl); } return rule.nodes; } /** * Return true if brackets node is "not" word */ isNot(node) { return typeof node === 'string' && /not\s*/i.test(node); } /** * Return true if brackets node is "or" word */ isOr(node) { return typeof node === 'string' && /\s*or\s*/i.test(node); } /** * Return true if brackets node is (prop: value) */ isProp(node) { return typeof node === 'object' && node.length === 1 && typeof node[0] === 'string'; } /** * Return true if prefixed property has no unprefixed */ isHack(all, unprefixed) { const check = new RegExp(`(\\(|\\s)${utils.escapeRegexp(unprefixed)}:`); return !check.test(all); } /** * Return true if we need to remove node */ toRemove(str, all) { const [prop, value] = this.parse(str); const unprefixed = this.all.unprefixed(prop); const cleaner = this.all.cleaner(); if (cleaner.remove[prop] && cleaner.remove[prop].remove && !this.isHack(all, unprefixed) ) { return true; } for (const checker of cleaner.values('remove', unprefixed)) { if (checker.check(value)) { return true; } } return false; } /** * Remove all unnecessary prefixes */ remove(nodes, all) { let i = 0; while (i < nodes.length) { if (!this.isNot(nodes[i - 1]) && this.isProp(nodes[i]) && this.isOr(nodes[i + 1]) ) { if (this.toRemove(nodes[i][0], all)) { nodes.splice(i, 2); continue; } i += 2; continue; } if (typeof nodes[i] === 'object') { nodes[i] = this.remove(nodes[i], all); } i += 1; } return nodes; } /** * Clean brackets with one child */ cleanBrackets(nodes) { return nodes.map(i => { if (typeof i !== 'object') { return i; } if (i.length === 1 && typeof i[0] === 'object') { return this.cleanBrackets(i[0]); } return this.cleanBrackets(i); }); } /** * Add " or " between properties and convert it to brackets format */ convert(progress) { const result = ['']; for (let i of progress) { result.push([`${i.prop}: ${i.value}`]); result.push(' or '); } result[result.length - 1] = ''; return result; } /** * Compress value functions into a string nodes */ normalize(nodes) { if (typeof nodes !== 'object') { return nodes; } nodes = nodes.filter(i => i !== ''); if (typeof nodes[0] === 'string' && nodes[0].indexOf(':') !== -1) { return [brackets.stringify(nodes)]; } return nodes.map(i => this.normalize(i)); } /** * Add prefixes */ add(nodes, all) { return nodes.map(i => { if (this.isProp(i)) { const prefixed = this.prefixed(i[0]); if (prefixed.length > 1) { return this.convert(prefixed); } return i; } if (typeof i === 'object') { return this.add(i, all); } return i; }); } /** * Add prefixed declaration */ process(rule) { let ast = brackets.parse(rule.params); ast = this.normalize(ast); ast = this.remove(ast, rule.params); ast = this.add(ast, rule.params); ast = this.cleanBrackets(ast); rule.params = brackets.stringify(ast); } /** * Check global options */ disabled(node) { if (!this.all.options.grid) { if (node.prop === 'display' && node.value.indexOf('grid') !== -1 ) { return true; } if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items' ) { return true; } } if (this.all.options.flexbox === false) { if (node.prop === 'display' && node.value.indexOf('flex') !== -1 ) { return true; } const other = [ 'order', 'justify-content', 'align-items', 'align-content' ]; if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1 ) { return true; } } return false; } } module.exports = Supports; node-autoprefixer-8.6.5+repack/lib/transition.js000066400000000000000000000205641363606675700217630ustar00rootroot00000000000000const parser = require('postcss-value-parser'); const vendor = require('postcss').vendor; const list = require('postcss').list; class Transition { props = ['transition', 'transition-property']; constructor(prefixes) { this.prefixes = prefixes; } /** * Process transition and add prefies for all necessary properties */ add(decl, result) { let prefix, prop; const declPrefixes = this.prefixes.add[decl.prop] && this.prefixes.add[decl.prop].prefixes || []; let params = this.parse(decl.value); const names = params.map(i => this.findProp(i)); const added = []; if (names.some(i => i[0] === '-')) { return; } for (let param of params) { prop = this.findProp(param); if (prop[0] === '-') continue; const prefixer = this.prefixes.add[prop]; if (!prefixer || !prefixer.prefixes) continue; for (prefix of prefixer.prefixes) { const prefixed = this.prefixes.prefixed(prop, prefix); if (prefixed !== '-ms-transform' && names.indexOf(prefixed) === -1 ) { if (!this.disabled(prop, prefix)) { added.push(this.clone(prop, prefixed, param)); } } } } params = params.concat(added); const value = this.stringify(params); const webkitClean = this.stringify( this.cleanFromUnprefixed(params, '-webkit-') ); if (declPrefixes.indexOf('-webkit-') !== -1) { this.cloneBefore(decl, `-webkit-${decl.prop}`, webkitClean); } this.cloneBefore(decl, decl.prop, webkitClean); if (declPrefixes.indexOf('-o-') !== -1) { const operaClean = this.stringify( this.cleanFromUnprefixed(params, '-o-') ); this.cloneBefore(decl, `-o-${decl.prop}`, operaClean); } for (prefix of declPrefixes) { if (prefix !== '-webkit-' && prefix !== '-o-') { const prefixValue = this.stringify( this.cleanOtherPrefixes(params, prefix) ); this.cloneBefore(decl, prefix + decl.prop, prefixValue); } } if (value !== decl.value && !this.already(decl, decl.prop, value)) { this.checkForWarning(result, decl); decl.cloneBefore(); decl.value = value; } } /** * Find property name */ findProp(param) { const prop = param[0].value; if (/^\d/.test(prop)) { for (let i = 0; i < param.length; i++) { const token = param[i]; if (i !== 0 && token.type === 'word') { return token.value; } } } return prop; } /** * Does we aready have this declaration */ already(decl, prop, value) { return decl.parent.some(i => i.prop === prop && i.value === value); } /** * Add declaration if it is not exist */ cloneBefore(decl, prop, value) { if (!this.already(decl, prop, value)) { decl.cloneBefore({ prop, value }); } } /** * Show transition-property warning */ checkForWarning(result, decl) { if (decl.prop !== 'transition-property') { return; } decl.parent.each((i) => { if (i.type !== 'decl') { return undefined; } if (i.prop.indexOf('transition-') !== 0) { return undefined; } if (i.prop === 'transition-property') { return undefined; } if (list.comma(i.value).length > 1) { decl.warn(result, 'Replace transition-property to transition, ' + 'because Autoprefixer could not support ' + 'any cases of transition-property ' + 'and other transition-*' ); } return false; }); } /** * Process transition and remove all unnecessary properties */ remove(decl) { let params = this.parse(decl.value); params = params.filter(i => { const prop = this.prefixes.remove[this.findProp(i)]; return !prop || !prop.remove; }); const value = this.stringify(params); if (decl.value === value) { return; } if (params.length === 0) { decl.remove(); return; } const double = decl.parent.some(i => { return i.prop === decl.prop && i.value === value; }); const smaller = decl.parent.some(i => { return i !== decl && i.prop === decl.prop && i.value.length > value.length; }); if (double || smaller) { decl.remove(); return; } decl.value = value; } /** * Parse properties list to array */ parse(value) { const ast = parser(value); const result = []; let param = []; for (let node of ast.nodes) { param.push(node); if (node.type === 'div' && node.value === ',') { result.push(param); param = []; } } result.push(param); return result.filter(i => i.length > 0); } /** * Return properties string from array */ stringify(params) { if (params.length === 0) { return ''; } let nodes = []; for (let param of params) { if (param[param.length - 1].type !== 'div') { param.push(this.div(params)); } nodes = nodes.concat(param); } if (nodes[0].type === 'div') { nodes = nodes.slice(1); } if (nodes[nodes.length - 1].type === 'div') { nodes = nodes.slice(0, +-2 + 1 || undefined); } return parser.stringify({ nodes }); } /** * Return new param array with different name */ clone(origin, name, param) { const result = []; let changed = false; for (const i of param) { if (!changed && i.type === 'word' && i.value === origin) { result.push({ type: 'word', value: name }); changed = true; } else { result.push(i); } } return result; } /** * Find or create seperator */ div(params) { for (let param of params) { for (let node of param) { if (node.type === 'div' && node.value === ',') { return node; } } } return { type: 'div', value: ',', after: ' ' }; } cleanOtherPrefixes(params, prefix) { return params.filter(param => { const current = vendor.prefix(this.findProp(param)); return current === '' || current === prefix; }); } /** * Remove all non-webkit prefixes and unprefixed params if we have prefixed */ cleanFromUnprefixed(params, prefix) { const remove = params .map(i => this.findProp(i)) .filter(i => i.slice(0, prefix.length) === prefix) .map(i => this.prefixes.unprefixed(i)); const result = []; for (const param of params) { const prop = this.findProp(param); const p = vendor.prefix(prop); if (remove.indexOf(prop) === -1 && (p === prefix || p === '')) { result.push(param); } } return result; } /** * Check property for disabled by option */ disabled(prop, prefix) { const other = [ 'order', 'justify-content', 'align-self', 'align-content' ]; if (prop.indexOf('flex') !== -1 || other.indexOf(prop) !== -1) { if (this.prefixes.options.flexbox === false) { return true; } if (this.prefixes.options.flexbox === 'no-2009') { return prefix.indexOf('2009') !== -1; } } return undefined; } } module.exports = Transition; node-autoprefixer-8.6.5+repack/lib/utils.js000066400000000000000000000030071363606675700207220ustar00rootroot00000000000000const list = require('postcss').list; module.exports = { /** * Throw special error, to tell beniary, * that this error is from Autoprefixer. */ error(text) { const err = new Error(text); err.autoprefixer = true; throw err; }, /** * Return array, that doesn’t contain duplicates. */ uniq(array) { const filtered = []; for (const i of array) { if (filtered.indexOf(i) === -1) { filtered.push(i); } } return filtered; }, /** * Return "-webkit-" on "-webkit- old" */ removeNote(string) { if (string.indexOf(' ') === -1) { return string; } return string.split(' ')[0]; }, /** * Escape RegExp symbols */ escapeRegexp(string) { return string.replace(/[.?*+\^\$\[\]\\(){}|\-]/g, '\\$&'); }, /** * Return regexp to check, that CSS string contain word */ regexp(word, escape = true) { if (escape) { word = this.escapeRegexp(word); } return new RegExp(`(^|[\\s,(])(${word}($|[\\s(,]))`, 'gi'); }, /** * Change comma list */ editList(value, callback) { const origin = list.comma(value); const changed = callback(origin, []); if (origin === changed) { return value; } let join = value.match(/,\s*/); join = join ? join[0] : ', '; return changed.join(join); } }; node-autoprefixer-8.6.5+repack/lib/value.js000066400000000000000000000060161363606675700207010ustar00rootroot00000000000000const Prefixer = require('./prefixer'); const OldValue = require('./old-value'); const utils = require('./utils'); const vendor = require('postcss').vendor; class Value extends Prefixer { /** * Clone decl for each prefixed values */ static save(prefixes, decl) { const prop = decl.prop; const result = []; for (let prefix in decl._autoprefixerValues) { const value = decl._autoprefixerValues[prefix]; if (value === decl.value) { continue; } let item; const propPrefix = vendor.prefix(prop); if (propPrefix === '-pie-') { continue; } if (propPrefix === prefix) { item = decl.value = value; result.push(item); continue; } const prefixed = prefixes.prefixed(prop, prefix); const rule = decl.parent; if (!rule.every(i => i.prop !== prefixed)) { result.push(item); continue; } const trimmed = value.replace(/\s+/, ' '); const already = rule.some( i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed ); if (already) { result.push(item); continue; } const cloned = this.clone(decl, { value }); item = decl.parent.insertBefore(decl, cloned); result.push(item); } return result; } /** * Is declaration need to be prefixed */ check(decl) { const value = decl.value; if (value.indexOf(this.name) === -1) { return false; } return !!value.match(this.regexp()); } /** * Lazy regexp loading */ regexp() { return this.regexpCache || (this.regexpCache = utils.regexp(this.name)); } /** * Add prefix to values in string */ replace(string, prefix) { return string.replace(this.regexp(), `$1${prefix}$2`); } /** * Get value with comments if it was not changed */ value(decl) { if (decl.raws.value && decl.raws.value.value === decl.value) { return decl.raws.value.raw; } else { return decl.value; } } /** * Save values with next prefixed token */ add(decl, prefix) { if (!decl._autoprefixerValues) { decl._autoprefixerValues = {}; } let value = decl._autoprefixerValues[prefix] || this.value(decl); let before; do { before = value; value = this.replace(value, prefix); if (value === false) return; } while (value !== before); decl._autoprefixerValues[prefix] = value; } /** * Return function to fast find prefixed value */ old(prefix) { return new OldValue(this.name, prefix + this.name); } } module.exports = Value; node-autoprefixer-8.6.5+repack/logo.svg000066400000000000000000000006231363606675700201400ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/package.json000066400000000000000000000046421363606675700207520ustar00rootroot00000000000000{ "name": "autoprefixer", "version": "8.6.5", "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website", "keywords": [ "autoprefixer", "css", "prefix", "postcss", "postcss-plugin" ], "author": "Andrey Sitnik ", "license": "MIT", "repository": "postcss/autoprefixer", "dependencies": { "babel-register": "^6.26.0", "browserslist": "^3.2.8", "caniuse-lite": "^1.0.30000864", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^6.0.23", "postcss-value-parser": "^3.2.3" }, "devDependencies": { "babel-core": "^6.26.3", "babel-eslint": "^8.2.3", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-proto-to-assign": "^6.26.0", "babel-preset-env": "^1.7.0", "babelify": "^8.0.0", "browserify": "^16.2.2", "eslint": "^4.19.1", "eslint-ci": "^0.1.1", "eslint-config-postcss": "^2.0.2", "fs-extra": "^5.0.0", "gulp": "^3.9.1", "gulp-babel": "^7.0.1", "gulp-json-editor": "^2.4.1", "gulp-replace": "^1.0.0", "jest": "^22.4.3", "lint-staged": "^7.1.3", "pre-commit": "^1.2.2", "size-limit": "^0.17.1" }, "bin": { "autoprefixer": "./bin/autoprefixer" }, "scripts": { "lint-staged": "lint-staged", "lint": "eslint-ci *.js lib/*.js data/*.js test/*.js", "test": "jest --coverage && npm run lint && gulp && size-limit" }, "lint-staged": { "*.js": "eslint" }, "pre-commit": [ "lint-staged" ], "size-limit": [ { "path": "build/lib/autoprefixer.js", "limit": "103 KB" } ], "eslintConfig": { "extends": "eslint-config-postcss", "parser": "babel-eslint", "rules": { "complexity": "off", "camelcase": "off" }, "env": { "jest": true } }, "jest": { "testEnvironment": "node", "coverageThreshold": { "global": { "lines": 100 } }, "modulePathIgnorePatterns": [ "/build/" ] }, "babel": { "presets": [ [ "env", { "targets": { "browsers": "last 2 version", "node": 4 }, "loose": true } ] ], "plugins": [ [ "transform-proto-to-assign" ], [ "transform-class-properties", { "spec": true } ] ] } } node-autoprefixer-8.6.5+repack/test/000077500000000000000000000000001363606675700174355ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/test/at-rule.test.js000066400000000000000000000012371363606675700223250ustar00rootroot00000000000000const AtRule = require('../lib/at-rule'); const parse = require('postcss').parse; describe('process()', () => { it('adds prefixes', () => { const keyframes = new AtRule('@keyframes', ['-moz-', '-ms-']); const css = parse('@-moz-keyframes b {} ' + '@-ms-keyframes a {} ' + '@keyframes a {}'); keyframes.process(css.last); expect(css.toString()).toEqual('@-moz-keyframes b {} ' + '@-ms-keyframes a {} ' + '@-moz-keyframes a {} ' + '@keyframes a {}'); }); }); node-autoprefixer-8.6.5+repack/test/autoprefixer.test.js000066400000000000000000000526311363606675700234750ustar00rootroot00000000000000const autoprefixer = require('../lib/autoprefixer'); const postcss = require('postcss'); const path = require('path'); const fs = require('fs'); const grider = autoprefixer({ browsers: ['Chrome 25', 'Edge 12', 'IE 10'], cascade: false, grid: true }); const cleaner = autoprefixer({ browsers: [] }); const compiler = autoprefixer({ browsers: ['Chrome 25', 'Opera 12'] }); const filterer = autoprefixer({ browsers: ['Chrome 25', 'Safari 9', 'Firefox 39'] }); const borderer = autoprefixer({ browsers: ['Safari 4', 'Firefox 3.6'] }); const cascader = autoprefixer({ browsers: ['Chrome > 19', 'Firefox 21', 'IE 10'], cascade: true }); const keyframer = autoprefixer({ browsers: ['Chrome > 19', 'Opera 12'] }); const flexboxer = autoprefixer({ browsers: ['Chrome > 19', 'Firefox 21', 'IE 10'] }); const without3d = autoprefixer({ browsers: ['Opera 12', 'IE > 0'] }); const supporter = autoprefixer({ browsers: ['Chrome 25', 'Chrome 28', 'IE > 0'] }); const uncascader = autoprefixer({ browsers: ['Firefox 15'] }); const gradienter = autoprefixer({ browsers: ['Chrome 25', 'Opera 12', 'Android 2.3'] }); const selectorer = autoprefixer({ browsers: ['Chrome 25', 'Firefox > 17', 'IE 10', 'Edge 12'] }); const intrinsicer = autoprefixer({ browsers: ['Chrome 25', 'Firefox 22', 'Safari 10'] }); const imagerender = autoprefixer({ browsers: ['iOS 8', 'iOS 6.1', 'FF 22', 'IE 11', 'Opera 12'] }); const backgrounder = autoprefixer({ browsers: ['Firefox 3.6', 'Android 2.3'] }); const resolutioner = autoprefixer({ browsers: ['Safari 7', 'Opera 12'] }); const overscroller = autoprefixer({ browsers: ['Edge 16'] }); function prefixer(name) { if ( name === 'grid' || name === 'grid-gap' || name === 'grid-area' || name === 'grid-template' || name === 'grid-template-areas' ) { return grider; } else if (name === 'keyframes') { return keyframer; } else if (name === 'border-radius') { return borderer; } else if (name === 'vendor-hack' || name === 'value-hack') { return cleaner; } else if (name === 'mistakes') { return cleaner; } else if (name === 'gradient') { return gradienter; } else if (name === 'flexbox' || name === 'flex-rewrite') { return flexboxer; } else if (name === 'double') { return flexboxer; } else if (name === 'selectors' || name === 'placeholder') { return selectorer; } else if (name === 'intrinsic' || name === 'multicolumn') { return intrinsicer; } else if (name === 'cascade') { return cascader; } else if (name === '3d-transform') { return without3d; } else if (name === 'background-size') { return backgrounder; } else if (name === 'background-clip') { return cleaner; } else if (name === 'uncascade') { return uncascader; } else if (name === 'example') { return autoprefixer; } else if (name === 'viewport' || name === 'appearance') { return flexboxer; } else if (name === 'resolution') { return resolutioner; } else if (name === 'filter' || name === 'advanced-filter') { return filterer; } else if (name === 'element') { return filterer; } else if (name === 'image-rendering' || name === 'writing-mode') { return imagerender; } else if (name === 'logical' || name === 'text-decoration') { return intrinsicer; } else if (name === 'supports') { return supporter; } else if (name === 'overscroll-behavior') { return overscroller; } else { return compiler; } } function read(name) { const file = path.join(__dirname, '/cases/' + name + '.css'); return fs.readFileSync(file).toString(); } function test(from, instance = prefixer(from)) { const input = read(from); const output = read(from + '.out'); const result = postcss([instance]).process(input); expect(result.warnings().length).toEqual(0); expect(result.css).toEqual(output); } const COMMONS = [ 'transition', 'values', 'keyframes', 'gradient', 'flex-rewrite', 'flexbox', 'filter', 'border-image', 'border-radius', 'notes', 'selectors', 'placeholder', 'fullscreen', 'intrinsic', 'mistakes', 'custom-prefix', 'cascade', 'double', 'multicolumn', '3d-transform', 'background-size', 'supports', 'viewport', 'resolution', 'logical', 'appearance', 'advanced-filter', 'element', 'image-set', 'image-rendering', 'mask-border', 'writing-mode', 'cross-fade', 'gradient-fix', 'text-emphasis-position', 'grid', 'grid-area', 'grid-template', 'grid-template-areas', 'grid-gap', 'color-adjust' ]; it('throws on wrong options', () => { expect(() => { autoprefixer({ browser: ['chrome 25', 'opera 12'] }); }).toThrowError(/browsers/); expect(() => { autoprefixer({ browserslist: ['chrome 25', 'opera 12'] }); }).toThrowError(/browsers/); }); const options = { cascade: false, grid: false }; const browsers = ['chrome 25', 'opera 12']; it('sets options via options object', () => { const allOptions = Object.assign(options, { browsers }); const instance = autoprefixer(allOptions); expect(instance.options).toEqual(allOptions); expect(instance.browsers).toEqual(browsers); }); it('sets options via array of browsers as first argument and object', () => { const instance = autoprefixer(browsers, options); expect(instance.options).toEqual(options); expect(instance.browsers).toEqual(browsers); }); it('sets options via browsers as arguments and options object', () => { const instance = autoprefixer(...browsers, options); expect(instance.options).toEqual(options); expect(instance.browsers).toEqual(browsers); }); it('has default browsers', () => { expect(autoprefixer.defaults.length).toBeDefined(); }); it('passes statistics to Browserslist', () => { const stats = { chrome: { 10: 10, 11: 40 }, ie: { 10: 10, 11: 40 } }; expect(autoprefixer({ browsers: '> 20% in my stats', stats }).info()) .toMatch(/Browsers:\n\s\sChrome: 11\n\s\sIE: 11\n/); }); it('prefixes values', () => test('values')); it('prefixes @keyframes', () => test('keyframes')); it('prefixes @viewport', () => test('viewport')); it('prefixes selectors', () => test('selectors')); it('prefixes resolution query', () => test('resolution')); it('removes common mistakes', () => test('mistakes')); it('reads notes for prefixes', () => test('notes')); it('keeps vendor-specific hacks', () => test('vendor-hack')); it('keeps values with vendor hacks', () => test('value-hack')); it('works with comments', () => test('comments')); it('uses visual cascade', () => test('cascade')); it('works with properties near', () => test('double')); it('checks prefixed in hacks', () => test('check-down')); it('normalize cascade after remove', () => test('uncascade')); it('prefix decls in @supports', () => test('supports')); it('saves declaration style', () => test('style')); it('uses ignore next control comments', () => test('ignore-next')); it('uses block control comments', () => test('disabled')); it('has actual example in docs', () => test('example')); it('uses control comments to whole scope', () => { const input = read('scope'); const output = read('scope.out'); const result = postcss([prefixer('scope')]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :5:5: Second Autoprefixer control comment ' + 'was ignored. Autoprefixer applies control comment to whole block, ' + 'not to next rules.' ]); }); it('prefixes transition', () => { const input = read('transition'); const output = read('transition.out'); const result = postcss([prefixer('transition')]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :23:5: Replace transition-property ' + 'to transition, because Autoprefixer could not support any cases ' + 'of transition-property and other transition-*' ]); }); it('works with broken transition', () => { const input = 'a{transition:,,}'; const output = 'a{-webkit-transition:;-o-transition:;transition:}'; const result = postcss([prefixer('transition')]).process(input); expect(result.css).toEqual(output); }); it('should ignore spaces inside values', () => { const css = read('trim'); expect(postcss([flexboxer]).process(css).css).toEqual(css); }); it('removes unnecessary prefixes', () => { const processor = postcss([cleaner]); for ( let type of COMMONS) { if (type === 'gradient-fix' ) continue; if (type === 'cascade' ) continue; if (type === 'mistakes' ) continue; if (type === 'flex-rewrite' ) continue; if (type === 'grid' ) continue; if (type === 'grid-gap' ) continue; if (type === 'grid-area' ) continue; if (type === 'grid-template' ) continue; if (type === 'grid-template-areas' ) continue; const input = read(type + '.out'); const output = read(type); expect(processor.process(input).css).toEqual(output); } }); it('does not remove unnecessary prefixes on request', () => { for ( let type of ['transition', 'values', 'fullscreen']) { const keeper = autoprefixer({ browsers: [], remove: false }); const css = read(type + '.out'); expect(postcss([keeper]).process(css).css).toEqual(css); } }); it('does not add prefixes on request', () => { for ( let type of ['transition', 'values', 'fullscreen']) { const remover = autoprefixer({ browsers: ['Opera 12'], add: false }); const unprefixed = read(type); expect(postcss([remover]).process(unprefixed).css).toEqual(unprefixed); } }); it('prevents doubling prefixes', () => { for ( let type of COMMONS) { const processor = postcss([prefixer(type)]); const input = read(type); const output = read(type + '.out'); expect(processor.process(processor.process(input)).css).toEqual(output); } }); it('parses difficult files', () => { const input = read('syntax'); const result = postcss([cleaner]).process(input); expect(result.css).toEqual(input); }); it('marks parsing errors', () => { expect(() => { postcss([cleaner]).process('a {').css; }).toThrowError(':1:1: Unclosed block'); }); it('shows file name in parse error', () => { expect(() => { postcss([cleaner]).process('a {', { from: 'a.css' }).css; }).toThrowError(/a.css:1:1: /); }); it('uses browserslist config', () => { const from = path.join(__dirname, 'cases/config/test.css'); const input = read('config/test'); const output = read('config/test.out'); const processor = postcss([autoprefixer]); expect(processor.process(input, { from }).css).toEqual(output); }); it('sets browserslist environment', () => { const from = path.join(__dirname, 'cases/config/test.css'); const input = read('config/test'); const output = read('config/test.production'); const processor = postcss([autoprefixer({ env: 'production' })]); expect(processor.process(input, { from }).css).toEqual(output); }); it('works without source in nodes', () => { const root = postcss.root(); root.append({ selector: 'a' }); root.first.append({ prop: 'display', value: 'flex' }); compiler(root); expect(root.toString()).toEqual( 'a {\n display: -webkit-flex;\n display: flex\n}'); }); it('takes values from other PostCSS plugins', () => { const plugin = root => { root.walkDecls(i => { i.value = 'calc(0)'; }); }; const result = postcss([plugin, compiler]).process('a{width:0/**/0}'); expect(result.css).toEqual('a{width:-webkit-calc(0);width:calc(0)}'); }); it('has option to disable @supports support', () => { const css = '@supports (cursor: grab) {}'; const instance = autoprefixer({ browsers: ['Chrome 28'], supports: false }); const result = postcss([instance]).process(css); expect(result.css).toEqual(css); }); it('has disabled grid options by default', () => { const ap = autoprefixer({ browsers: ['Edge 12', 'IE 10'] }); const input = read('grid'); const output = read('grid.disabled'); const result = postcss([ap]).process(input); expect(result.css).toEqual(output); }); it('has option to disable flexbox support', () => { const css = read('flexbox'); const instance = autoprefixer({ browsers: ['IE 10'], flexbox: false }); const result = postcss([instance]).process(css); expect(result.css).toEqual(css); }); it('has option to disable 2009 flexbox support', () => { const ap = autoprefixer({ browsers: ['Chrome > 19'], flexbox: 'no-2009' }); const css = 'a{flex:1;transition:flex}'; const result = postcss([ap]).process(css); expect(result.css).toEqual('a{' + '-webkit-flex:1;flex:1;' + '-webkit-transition:-webkit-flex;transition:-webkit-flex;' + 'transition:flex;transition:flex, -webkit-flex' + '}'); }); it('returns inspect string', () => { expect(autoprefixer({ browsers: ['chrome 25'] }).info()) .toMatch(/Browsers:\s+Chrome: 25/); }); it('uses browserslist config in inspect', () => { const from = path.join(__dirname, 'cases/config'); expect(autoprefixer().info({ from })).toMatch(/Browsers:\s+IE: 10/); }); it('ignores unknown versions on request', () => { expect(() => { autoprefixer({ browsers: ['ie 100'] }).info(); }).toThrowError(); expect(() => { autoprefixer({ browsers: ['ie 100'], ignoreUnknownVersions: true }).info(); }).not.toThrowError(); }); describe('hacks', () => { it('ignores prefix IE filter', () => test('filter')); it('supports webkit filters', () => test('advanced-filter')); it('changes border image syntax', () => test('border-image')); it('supports old Mozilla prefixes', () => test('border-radius')); it('supports all flexbox syntaxes', () => test('flexbox')); it('supports map flexbox props', () => test('flex-rewrite')); it('supports all fullscreens', () => test('fullscreen')); it('supports custom prefixes', () => test('custom-prefix')); it('fixes break properties', () => test('multicolumn')); it('ignores some 3D transforms', () => test('3d-transform')); it('supports background-size', () => test('background-size')); it('supports background-clip', () => test('background-clip')); it('supports logical properties', () => test('logical')); it('supports appearance', () => test('appearance')); it('supports all placeholders', () => test('placeholder')); it('supports image-rendering', () => test('image-rendering')); it('supports border-box mask', () => test('mask-border')); it('supports image-set()', () => test('image-set')); it('supports writing-mode', () => test('writing-mode')); it('supports cross-fade()', () => test('cross-fade')); it('supports text-decoration', () => test('text-decoration')); it('ignores modern direction', () => test('animation')); it('supports overscroll-behavior', () => test('overscroll-behavior')); it('supports color-adjust', () => test('color-adjust')); it('supports appearance for IE', () => { const instance = autoprefixer({ browsers: 'Edge 15' }); const result = postcss([instance]).process('a { appearance: none }'); expect(result.css).toEqual( 'a { -webkit-appearance: none; appearance: none }'); }); it('changes angle in gradient', () => { const input = read('gradient'); const output = read('gradient.out'); const result = postcss([prefixer('gradient')]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :18:5: Gradient has outdated direction ' + 'syntax. New syntax is like `closest-side at 0 0` instead of ' + '`0 0, closest-side`.', 'autoprefixer: :38:5: Gradient has outdated direction ' + 'syntax. New syntax is like `to left` instead of `right`.', 'autoprefixer: :100:5: Gradient has outdated ' + 'direction syntax. Replace `cover` to `farthest-corner`.', 'autoprefixer: :104:5: Gradient has outdated ' + 'direction syntax. Replace `contain` to `closest-side`.' ]); }); it('warns on old flexbox display', () => { const result = postcss([flexboxer]).process('a{ display: box; }'); expect(result.css).toEqual('a{ display: box; }'); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :1:4: You should write display: flex ' + 'by final spec instead of display: box' ]); }); it('supports intrinsic sizing', () => { const input = read('intrinsic'); const output = read('intrinsic.out'); const result = postcss([prefixer('intrinsic')]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :15:5: Replace fill to stretch, ' + 'because spec had been changed', 'autoprefixer: :19:5: Replace fill-available ' + 'to stretch, because spec had been changed' ]); }); it('supports text-emphasis', () => { const input = read('text-emphasis-position'); const output = read('text-emphasis-position.out'); const instance = prefixer('text-emphasis-position'); const result = postcss([instance]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :14:5: You should use 2 values ' + 'for text-emphasis-position For example, `under left` ' + 'instead of just `under`.' ]); }); it('supports grid layout', () => { const input = read('grid'); const output = read('grid.out'); const instance = prefixer('grid'); const result = postcss([instance]).process(input); expect(result.css).toEqual(output); expect(result.warnings().map(i => i.toString())).toEqual([ 'autoprefixer: :36:5: Can not prefix grid-column-end ' + '(grid-column-start is not found)', 'autoprefixer: :39:5: Can not impliment grid-gap ' + 'without grid-tamplate-columns', 'autoprefixer: :39:5: Can not find grid areas: ' + 'head, nav, main, foot', 'autoprefixer: :47:5: Can not impliment grid-gap ' + 'without grid-tamplate-columns', 'autoprefixer: :47:5: Can not find grid areas: a', 'autoprefixer: :55:5: Can not impliment grid-gap ' + 'without grid-tamplate-columns', 'autoprefixer: :55:5: Can not find grid areas: b', 'autoprefixer: :63:5: Can not find grid areas: c', 'autoprefixer: :71:5: Can not find grid areas: d', 'autoprefixer: :99:5: grid-column-span is not part ' + 'of final Grid Layout. Use grid-column.', 'autoprefixer: :100:5: grid-row-span is not part ' + 'of final Grid Layout. Use grid-row.', 'autoprefixer: :101:5: grid-auto-columns is not ' + 'supported by IE', 'autoprefixer: :102:5: grid-auto-rows is not ' + 'supported by IE', 'autoprefixer: :103:5: grid-auto-flow is not ' + 'supported by IE', 'autoprefixer: :104:35: auto-fill value is not ' + 'supported by IE', 'autoprefixer: :105:32: auto-fit value is not ' + 'supported by IE' ]); }); it('shows Grid warnings only for IE', () => { const input = 'a { grid-template-rows: repeat(auto-fit, 1px) }'; const instance = autoprefixer({ browsers: 'chrome 27', grid: true }); const result = postcss([instance]).process(input); expect(result.warnings()).toEqual([]); }); it('ignores values for CSS3PIE props', () => { const css = read('pie'); expect(postcss([compiler]).process(css).css).toEqual(css); }); it('add prefix for backface-visibility for Safari 9', () => { const input = 'a{ ' + 'backface-visibility: hidden; ' + 'transform-style: preserve-3d }'; const ap = autoprefixer({ browsers: ['Safari 9'], flexbox: false }); expect(postcss([ap]).process(input).css).toEqual( 'a{ ' + '-webkit-backface-visibility: hidden; ' + 'backface-visibility: hidden; ' + 'transform-style: preserve-3d }' ); }); }); node-autoprefixer-8.6.5+repack/test/brackets.test.js000066400000000000000000000017431363606675700225540ustar00rootroot00000000000000const brackets = require('../lib/brackets'); describe('.parse()', () => { it('parses simple string', () => { expect(brackets.parse('test')).toEqual(['test']); }); it('parses brackets', () => { expect(brackets.parse('a (b) a')).toEqual(['a ', ['b'], ' a']); }); it('parses many brackets', () => { expect(brackets.parse('a (b ()) a')) .toEqual(['a ', ['b ', [''], ''], ' a']); }); it('parses errors', () => { expect(brackets.parse('a (b (')).toEqual(['a ', ['b ', ['']]]); }); }); describe('.stringify()', () => { it('stringifies simple string', () => { expect(brackets.stringify(['test'])).toEqual('test'); }); it('stringifies brackets', () => { expect(brackets.stringify(['a ', ['b'], ' a'])).toEqual('a (b) a'); }); it('stringifies many brackets', () => { expect(brackets.stringify(['a ', ['b ', [''], ''], ' a'])) .toEqual('a (b ()) a'); }); }); node-autoprefixer-8.6.5+repack/test/browsers.test.js000066400000000000000000000050141363606675700226170ustar00rootroot00000000000000const Browsers = require('../lib/browsers'); const data = require('caniuse-lite').agents; const path = require('path'); describe('.prefixes()', () => { it('returns prefixes by default data', () => { expect(Browsers.prefixes()) .toEqual(['-webkit-', '-moz-', '-ms-', '-o-']); }); }); describe('.withPrefix()', () => { it('finds possible prefix', () => { expect(Browsers.withPrefix('1 -o-calc(1)')).toBeTruthy(); expect(Browsers.withPrefix('1 calc(1)')).toBeFalsy(); }); }); describe('parse()', () => { it('allows to select no browsers', () => { const browsers = new Browsers(data, []); expect(browsers.selected.length).toEqual(0); }); it('selects by older version', () => { const browsers = new Browsers(data, ['ie < 7']); expect(browsers.selected).toEqual(['ie 6', 'ie 5.5']); }); it('combines requirements', () => { const browsers = new Browsers(data, ['ie 10', 'ie < 6']); expect(browsers.selected).toEqual(['ie 10', 'ie 5.5']); }); it('has aliases', () => { expect((new Browsers(data, ['fx 10'])).selected) .toEqual(['firefox 10']); expect((new Browsers(data, ['ff 10'])).selected) .toEqual(['firefox 10']); }); it('ignores case', () => { expect((new Browsers(data, ['Firefox 10'])).selected) .toEqual(['firefox 10']); }); it('uses browserslist config', () => { const css = path.join(__dirname, 'cases/config/test.css'); expect((new Browsers(data, undefined, { from: css })).selected) .toEqual(['ie 10']); }); }); describe('prefix()', () => { it('returns browser prefix', () => { const browsers = new Browsers(data, ['chrome 30']); expect(browsers.prefix('chrome 30')).toEqual('-webkit-'); }); it('returns right prefix for Operas', () => { const browsers = new Browsers(data, ['last 1 opera version']); expect(browsers.prefix('opera 12')).toEqual('-o-'); expect(browsers.prefix(browsers.selected[0])).toEqual('-webkit-'); expect(browsers.prefix('op_mob 12')).toEqual('-o-'); expect(browsers.prefix(browsers.selected[0])).toEqual('-webkit-'); }); }); describe('isSelected()', () => { it('return true for selected browsers', () => { const browsers = new Browsers(data, ['chrome 30', 'chrome 31']); expect(browsers.isSelected('chrome 30')).toBeTruthy(); expect(browsers.isSelected('ie 6')).toBeFalsy(); }); }); node-autoprefixer-8.6.5+repack/test/cases/000077500000000000000000000000001363606675700205335ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/test/cases/3d-transform.css000066400000000000000000000003631363606675700235660ustar00rootroot00000000000000a { transition: transform 1s; transform: rotateX(45deg); } b { transform: translateX(45deg); transform-origin: 0 0; } em { transform: rotateZ(45deg); } @keyframes anim { from { transform: rotate(90deg); } } node-autoprefixer-8.6.5+repack/test/cases/3d-transform.out.css000066400000000000000000000012731363606675700243750ustar00rootroot00000000000000a { -o-transition: -o-transform 1s; transition: transform 1s; transition: transform 1s, -o-transform 1s; transform: rotateX(45deg); } b { -ms-transform: translateX(45deg); -o-transform: translateX(45deg); transform: translateX(45deg); -ms-transform-origin: 0 0; -o-transform-origin: 0 0; transform-origin: 0 0; } em { -ms-transform: rotate(45deg); -o-transform: rotateZ(45deg); transform: rotateZ(45deg); } @-o-keyframes anim { from { -o-transform: rotate(90deg); transform: rotate(90deg); } } @keyframes anim { from { -o-transform: rotate(90deg); transform: rotate(90deg); } } node-autoprefixer-8.6.5+repack/test/cases/advanced-filter.css000066400000000000000000000002561363606675700243000ustar00rootroot00000000000000div { backdrop-filter: blur(2px); } div { background: filter(url('image.jpg'), blur(2px)); } div { background: url(image.jpg), filter(url('image.jpg'), blur(2px)); } node-autoprefixer-8.6.5+repack/test/cases/advanced-filter.out.css000066400000000000000000000005421363606675700251040ustar00rootroot00000000000000div { -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); } div { background: -webkit-filter(url('image.jpg'), blur(2px)); background: filter(url('image.jpg'), blur(2px)); } div { background: url(image.jpg), -webkit-filter(url('image.jpg'), blur(2px)); background: url(image.jpg), filter(url('image.jpg'), blur(2px)); } node-autoprefixer-8.6.5+repack/test/cases/animation.css000066400000000000000000000003441363606675700232250ustar00rootroot00000000000000a { animation-direction: alternate; animation-direction: reverse; animation-direction: REVERSE; animation-direction: alternate-reverse; animation: rotation-reverse; animation: rotation-reverse reverse; } node-autoprefixer-8.6.5+repack/test/cases/animation.out.css000066400000000000000000000006361363606675700240370ustar00rootroot00000000000000a { -webkit-animation-direction: alternate; -o-animation-direction: alternate; animation-direction: alternate; animation-direction: reverse; animation-direction: REVERSE; animation-direction: alternate-reverse; -webkit-animation: rotation-reverse; -o-animation: rotation-reverse; animation: rotation-reverse; animation: rotation-reverse reverse; } node-autoprefixer-8.6.5+repack/test/cases/appearance.css000066400000000000000000000000711363606675700233420ustar00rootroot00000000000000a { appearance: none; } b { appearance: auto; } node-autoprefixer-8.6.5+repack/test/cases/appearance.out.css000066400000000000000000000003011363606675700241440ustar00rootroot00000000000000a { -webkit-appearance: none; -moz-appearance: none; appearance: none; } b { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto; } node-autoprefixer-8.6.5+repack/test/cases/background-clip.css000066400000000000000000000002671363606675700243160ustar00rootroot00000000000000a { -webkit-background-clip: text; -moz-background-clip: text; background-clip: text; } b { -webkit-background-clip: content-box; background-clip: content-box; } node-autoprefixer-8.6.5+repack/test/cases/background-clip.out.css000066400000000000000000000001551363606675700251200ustar00rootroot00000000000000a { -webkit-background-clip: text; background-clip: text; } b { background-clip: content-box; } node-autoprefixer-8.6.5+repack/test/cases/background-size.css000066400000000000000000000001041363606675700243270ustar00rootroot00000000000000a { background-size: 20px } b { background-size: contain } node-autoprefixer-8.6.5+repack/test/cases/background-size.out.css000066400000000000000000000003531363606675700251430ustar00rootroot00000000000000a { -webkit-background-size: 20px 20px; -moz-background-size: 20px; background-size: 20px } b { -webkit-background-size: contain; -moz-background-size: contain; background-size: contain } node-autoprefixer-8.6.5+repack/test/cases/border-image.css000066400000000000000000000001201363606675700235730ustar00rootroot00000000000000a { border-image: linear-gradient(black, white) 20% fill stretch stretch; } node-autoprefixer-8.6.5+repack/test/cases/border-image.out.css000066400000000000000000000003631363606675700244120ustar00rootroot00000000000000a { -o-border-image: -o-linear-gradient(black, white) 20% stretch stretch; border-image: -webkit-linear-gradient(black, white) 20% fill stretch stretch; border-image: linear-gradient(black, white) 20% fill stretch stretch; } node-autoprefixer-8.6.5+repack/test/cases/border-radius.css000066400000000000000000000001441363606675700240060ustar00rootroot00000000000000a { border-radius: 5px; border-top-left-radius: 3px; border-bottom-right-radius: 3px; } node-autoprefixer-8.6.5+repack/test/cases/border-radius.out.css000066400000000000000000000005461363606675700246220ustar00rootroot00000000000000a { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; -webkit-border-top-left-radius: 3px; -moz-border-radius-topleft: 3px; border-top-left-radius: 3px; -webkit-border-bottom-right-radius: 3px; -moz-border-radius-bottomright: 3px; border-bottom-right-radius: 3px; } node-autoprefixer-8.6.5+repack/test/cases/cascade.css000066400000000000000000000001001363606675700226170ustar00rootroot00000000000000a { flex-direction: row; mask: none } b { mask: none } node-autoprefixer-8.6.5+repack/test/cases/cascade.out.css000066400000000000000000000005141363606675700234360ustar00rootroot00000000000000a { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -moz-box-orient: horizontal; -moz-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-mask: none; mask: none } b { -webkit-mask: none; mask: none } node-autoprefixer-8.6.5+repack/test/cases/check-down.css000066400000000000000000000000701363606675700232640ustar00rootroot00000000000000* { transition: all 1s; -o-transition: all 1s } node-autoprefixer-8.6.5+repack/test/cases/check-down.out.css000066400000000000000000000001301363606675700240670ustar00rootroot00000000000000* { -webkit-transition: all 1s; transition: all 1s; -o-transition: all 1s } node-autoprefixer-8.6.5+repack/test/cases/color-adjust.css000066400000000000000000000001031363606675700236450ustar00rootroot00000000000000.a { color-adjust: economy; } .b { color-adjust: exact; } node-autoprefixer-8.6.5+repack/test/cases/color-adjust.out.css000066400000000000000000000002431363606675700244600ustar00rootroot00000000000000.a { -webkit-print-color-adjust: economy; color-adjust: economy; } .b { -webkit-print-color-adjust: exact; color-adjust: exact; } node-autoprefixer-8.6.5+repack/test/cases/comments.css000066400000000000000000000002631363606675700230730ustar00rootroot00000000000000a { /* transition */ transition: all 1s; height: calc(/* comment before */100% - /* comment inside */ 10px/* comment after */); } /* placeholder */ ::placeholder { } node-autoprefixer-8.6.5+repack/test/cases/comments.out.css000066400000000000000000000005611363606675700237020ustar00rootroot00000000000000a { /* transition */ -webkit-transition: all 1s; -o-transition: all 1s; transition: all 1s; height: -webkit-calc(/* comment before */100% - /* comment inside */ 10px/* comment after */); height: calc(/* comment before */100% - /* comment inside */ 10px/* comment after */); } /* placeholder */ ::-webkit-input-placeholder { } ::placeholder { } node-autoprefixer-8.6.5+repack/test/cases/config/000077500000000000000000000000001363606675700220005ustar00rootroot00000000000000node-autoprefixer-8.6.5+repack/test/cases/config/browserslist000066400000000000000000000000361363606675700244640ustar00rootroot00000000000000ie 10 [production] chrome 25 node-autoprefixer-8.6.5+repack/test/cases/config/test.css000066400000000000000000000000311363606675700234630ustar00rootroot00000000000000a { display: flex; } node-autoprefixer-8.6.5+repack/test/cases/config/test.out.css000066400000000000000000000000631363606675700242760ustar00rootroot00000000000000a { display: -ms-flexbox; display: flex; } node-autoprefixer-8.6.5+repack/test/cases/config/test.production.css000066400000000000000000000000641363606675700256560ustar00rootroot00000000000000a { display: -webkit-flex; display: flex; } node-autoprefixer-8.6.5+repack/test/cases/cross-fade.css000066400000000000000000000007651363606675700233030ustar00rootroot00000000000000a { background-image: cross-fade(20% url(foo.png), url(bar.png)); } b { background-image: cross-fade(url(foo.png), url(bar.png)); } h1 { background-image: cross-fade(10.823% url(foo.png), url(bar.png)); } h2 { background-image: cross-fade(0.59 url(foo.png), url(bar.png)); } h3 { background-image: cross-fade(.59 url(foo.png), url(bar.png)); } .foo { background-image: cross-fade(.59 linear-gradient(white, black), radial-gradient(circle closest-corner, white, black)); } node-autoprefixer-8.6.5+repack/test/cases/cross-fade.out.css000066400000000000000000000017651363606675700241120ustar00rootroot00000000000000a { background-image: -webkit-cross-fade(url(foo.png), url(bar.png), 20%); background-image: cross-fade(20% url(foo.png), url(bar.png)); } b { background-image: -webkit-cross-fade(url(foo.png), url(bar.png), 0.5); background-image: cross-fade(url(foo.png), url(bar.png)); } h1 { background-image: -webkit-cross-fade(url(foo.png), url(bar.png), 10.823%); background-image: cross-fade(10.823% url(foo.png), url(bar.png)); } h2 { background-image: -webkit-cross-fade(url(foo.png), url(bar.png), 0.59); background-image: cross-fade(0.59 url(foo.png), url(bar.png)); } h3 { background-image: -webkit-cross-fade(url(foo.png), url(bar.png), .59); background-image: cross-fade(.59 url(foo.png), url(bar.png)); } .foo { background-image: -webkit-cross-fade(linear-gradient(white, black), radial-gradient(circle closest-corner, white, black), .59); background-image: cross-fade(.59 linear-gradient(white, black), radial-gradient(circle closest-corner, white, black)); } node-autoprefixer-8.6.5+repack/test/cases/custom-prefix.css000066400000000000000000000000441363606675700240500ustar00rootroot00000000000000a { -evil-up: calc(10px + 1); } node-autoprefixer-8.6.5+repack/test/cases/custom-prefix.out.css000066400000000000000000000001121363606675700246520ustar00rootroot00000000000000a { -evil-up: -webkit-calc(10px + 1); -evil-up: calc(10px + 1); } node-autoprefixer-8.6.5+repack/test/cases/disabled.css000066400000000000000000000013701363606675700230150ustar00rootroot00000000000000a { -webkit-border-radius: 4px; border-radius: 4px; mask: none; } b { /* autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } .loud { /*! autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } .case { /*autoprefixer:OFF*/ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } @support (transition: 1s) { /* autoprefixer: off */ :fullscreen { -webkit-border-radius: 4px; border-radius: 4px; mask: none; } ::placeholder { /*autoprefixer: on*/ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } } node-autoprefixer-8.6.5+repack/test/cases/disabled.out.css000066400000000000000000000016021363606675700236210ustar00rootroot00000000000000a { border-radius: 4px; -webkit-mask: none; mask: none; } b { /* autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } .loud { /*! autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } .case { /*autoprefixer:OFF*/ -webkit-border-radius: 4px; border-radius: 4px; mask: none; } @support (transition: 1s) { /* autoprefixer: off */ :fullscreen { -webkit-border-radius: 4px; border-radius: 4px; mask: none; } ::-webkit-input-placeholder { /*autoprefixer: on*/ border-radius: 4px; -webkit-mask: none; mask: none; } ::placeholder { /*autoprefixer: on*/ border-radius: 4px; -webkit-mask: none; mask: none; } } node-autoprefixer-8.6.5+repack/test/cases/double.css000066400000000000000000000001041363606675700225120ustar00rootroot00000000000000a { flex-basis: 8.33333%; flex-basis: calc(100% / 12 * 1) } node-autoprefixer-8.6.5+repack/test/cases/double.out.css000066400000000000000000000004141363606675700233240ustar00rootroot00000000000000a { -webkit-flex-basis: 8.33333%; -ms-flex-preferred-size: 8.33333%; flex-basis: 8.33333%; -webkit-flex-basis: -webkit-calc(100% / 12 * 1); -ms-flex-preferred-size: calc(100% / 12 * 1); flex-basis: calc(100% / 12 * 1) } node-autoprefixer-8.6.5+repack/test/cases/element.css000066400000000000000000000001311363606675700226710ustar00rootroot00000000000000div { background: element(#id); } div { background: url(image.jpg), element(#id); } node-autoprefixer-8.6.5+repack/test/cases/element.out.css000066400000000000000000000002531363606675700235040ustar00rootroot00000000000000div { background: -moz-element(#id); background: element(#id); } div { background: url(image.jpg), -moz-element(#id); background: url(image.jpg), element(#id); } node-autoprefixer-8.6.5+repack/test/cases/example.css000066400000000000000000000000411363606675700226730ustar00rootroot00000000000000::placeholder { color: gray; } node-autoprefixer-8.6.5+repack/test/cases/example.out.css000066400000000000000000000002451363606675700235070ustar00rootroot00000000000000::-webkit-input-placeholder { color: gray; } :-ms-input-placeholder { color: gray; } ::-ms-input-placeholder { color: gray; } ::placeholder { color: gray; } node-autoprefixer-8.6.5+repack/test/cases/filter.css000066400000000000000000000003221363606675700225270ustar00rootroot00000000000000a { filter: blur(10px); transition: filter 2s; } div { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); } b { filter: alpha(opacity=100); } em { filter: Alpha(opacity=100); } node-autoprefixer-8.6.5+repack/test/cases/filter.out.css000066400000000000000000000005661363606675700233470ustar00rootroot00000000000000a { -webkit-filter: blur(10px); filter: blur(10px); -webkit-transition: -webkit-filter 2s; transition: -webkit-filter 2s; transition: filter 2s; transition: filter 2s, -webkit-filter 2s; } div { filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50); } b { filter: alpha(opacity=100); } em { filter: Alpha(opacity=100); } node-autoprefixer-8.6.5+repack/test/cases/flex-rewrite.css000066400000000000000000000000311363606675700236540ustar00rootroot00000000000000.a { flex-grow: 0; } node-autoprefixer-8.6.5+repack/test/cases/flex-rewrite.out.css000066400000000000000000000002131363606675700244640ustar00rootroot00000000000000.a { -webkit-box-flex: 0; -webkit-flex-grow: 0; -moz-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; } node-autoprefixer-8.6.5+repack/test/cases/flexbox.css000066400000000000000000000027521363606675700227220ustar00rootroot00000000000000a { -js-display: flex; display: flex; flex-flow: row; order: 0; flex: 0 1 2; transition: flex 200ms; } .inline { display: inline-flex; align-self: auto; align-content: stretch; flex: auto; } .a { display: flex; flex-direction: row; justify-content: flex-start; align-items: flex-start; flex-wrap: nowrap; align-content: flex-start; align-self: flex-start; flex: none; } .b { display: flex; flex-direction: row-reverse; justify-content: flex-end; align-items: flex-end; flex-wrap: wrap; align-content: flex-end; align-self: flex-end; flex-shrink: 1; } .c { display: flex; flex-direction: column; justify-content: center; align-items: center; flex-wrap: reverse-wrap; align-content: center; align-self: center; flex-basis: auto; } .e { display: flex; flex-direction: column-reverse; justify-content: space-between; align-items: baseline; align-content: space-between; align-self: baseline; } .f { display: flex; justify-content: space-around; align-items: stretch; align-content: space-around; align-self: stretch; } .g { display: flex; flex: calc(1em + 1px) 0 0; } .h { flex-flow: column wrap; } .i { flex-flow: nowrap; } .inherit { order: inherit; flex-direction: inherit; } @supports (display: flex) { .foo { display: flex; } } @supports (flex: auto) { .foo { flex: auto; } } node-autoprefixer-8.6.5+repack/test/cases/flexbox.out.css000066400000000000000000000173621363606675700235330ustar00rootroot00000000000000a { -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-flow: row; -moz-box-orient: horizontal; -moz-box-direction: normal; -ms-flex-flow: row; flex-flow: row; -webkit-box-ordinal-group: 1; -webkit-order: 0; -moz-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; -webkit-box-flex: 0; -webkit-flex: 0 1 2; -moz-box-flex: 0; -ms-flex: 0 1 2; flex: 0 1 2; -webkit-transition: -webkit-box-flex 200ms, -webkit-flex 200ms; transition: -webkit-box-flex 200ms, -webkit-flex 200ms; transition: flex 200ms; transition: flex 200ms, -webkit-box-flex 200ms, -webkit-flex 200ms, -moz-box-flex 200ms, -ms-flex 200ms; } .inline { display: -webkit-inline-box; display: -webkit-inline-flex; display: -moz-inline-box; display: -ms-inline-flexbox; display: inline-flex; -webkit-align-self: auto; -ms-flex-item-align: auto; align-self: auto; -webkit-align-content: stretch; -ms-flex-line-pack: stretch; align-content: stretch; -webkit-box-flex: 1; -webkit-flex: auto; -moz-box-flex: 1; -ms-flex: auto; flex: auto; } .a { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -moz-box-orient: horizontal; -moz-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: start; -webkit-justify-content: flex-start; -moz-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -webkit-box-align: start; -webkit-align-items: flex-start; -moz-box-align: start; -ms-flex-align: start; align-items: flex-start; -webkit-flex-wrap: nowrap; -ms-flex-wrap: nowrap; flex-wrap: nowrap; -webkit-align-content: flex-start; -ms-flex-line-pack: start; align-content: flex-start; -webkit-align-self: flex-start; -ms-flex-item-align: start; align-self: flex-start; -webkit-box-flex: 0; -webkit-flex: none; -moz-box-flex: 0; -ms-flex: none; flex: none; } .b { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -webkit-flex-direction: row-reverse; -moz-box-orient: horizontal; -moz-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; -webkit-box-pack: end; -webkit-justify-content: flex-end; -moz-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; -webkit-box-align: end; -webkit-align-items: flex-end; -moz-box-align: end; -ms-flex-align: end; align-items: flex-end; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-align-content: flex-end; -ms-flex-line-pack: end; align-content: flex-end; -webkit-align-self: flex-end; -ms-flex-item-align: end; align-self: flex-end; -webkit-flex-shrink: 1; -ms-flex-negative: 1; flex-shrink: 1; } .c { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-direction: column; -moz-box-orient: vertical; -moz-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: center; -webkit-justify-content: center; -moz-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -webkit-align-items: center; -moz-box-align: center; -ms-flex-align: center; align-items: center; -webkit-flex-wrap: reverse-wrap; -ms-flex-wrap: reverse-wrap; flex-wrap: reverse-wrap; -webkit-align-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-align-self: center; -ms-flex-item-align: center; align-self: center; -webkit-flex-basis: auto; -ms-flex-preferred-size: auto; flex-basis: auto; } .e { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: reverse; -webkit-flex-direction: column-reverse; -moz-box-orient: vertical; -moz-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; -webkit-box-pack: justify; -webkit-justify-content: space-between; -moz-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: baseline; -webkit-align-items: baseline; -moz-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; -webkit-align-content: space-between; -ms-flex-line-pack: justify; align-content: space-between; -webkit-align-self: baseline; -ms-flex-item-align: baseline; align-self: baseline; } .f { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; -webkit-box-align: stretch; -webkit-align-items: stretch; -moz-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; -webkit-align-content: space-around; -ms-flex-line-pack: distribute; align-content: space-around; -webkit-align-self: stretch; -ms-flex-item-align: stretch; align-self: stretch; } .g { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-flex: -webkit-calc(1em + 1px); -webkit-flex: -webkit-calc(1em + 1px) 0 0; -moz-box-flex: calc(1em + 1px); -ms-flex: calc(1em + 1px) 0 0px; flex: calc(1em + 1px) 0 0; } .h { -webkit-box-orient: vertical; -webkit-box-direction: normal; -webkit-flex-flow: column wrap; -moz-box-orient: vertical; -moz-box-direction: normal; -ms-flex-flow: column wrap; flex-flow: column wrap; } .i { -webkit-flex-flow: nowrap; -ms-flex-flow: nowrap; flex-flow: nowrap; } .inherit { -webkit-box-ordinal-group: inherit; -webkit-order: inherit; -moz-box-ordinal-group: inherit; -ms-flex-order: inherit; order: inherit; -webkit-box-orient: inherit; -webkit-box-direction: inherit; -webkit-flex-direction: inherit; -moz-box-orient: inherit; -moz-box-direction: inherit; -ms-flex-direction: inherit; flex-direction: inherit; } @supports ((display: -webkit-flex) or (display: flex)) { .foo { display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; } } @supports ((-webkit-flex: auto) or (flex: auto)) { .foo { -webkit-box-flex: 1; -webkit-flex: auto; -moz-box-flex: 1; -ms-flex: auto; flex: auto; } } node-autoprefixer-8.6.5+repack/test/cases/fullscreen.css000066400000000000000000000000461363606675700234070ustar00rootroot00000000000000:fullscreen { background: black } node-autoprefixer-8.6.5+repack/test/cases/fullscreen.out.css000066400000000000000000000001251363606675700242130ustar00rootroot00000000000000:-webkit-full-screen { background: black } :fullscreen { background: black } node-autoprefixer-8.6.5+repack/test/cases/gradient-fix.css000066400000000000000000000002011363606675700236170ustar00rootroot00000000000000.test { background-image: -webkit-linear-gradient(yellow 50%, red 50%); background-image: linear-gradient(to , red 50%); } node-autoprefixer-8.6.5+repack/test/cases/gradient-fix.out.css000066400000000000000000000003501363606675700244320ustar00rootroot00000000000000.test { background-image: -webkit-linear-gradient(yellow 50%, red 50%); background-image: -webkit-linear-gradient(red 50%); background-image: -o-linear-gradient(red 50%); background-image: linear-gradient(to , red 50%); } node-autoprefixer-8.6.5+repack/test/cases/gradient.css000066400000000000000000000056351363606675700230530ustar00rootroot00000000000000a { background: linear-gradient(350.5deg, white, black), linear-gradient(-130deg, black, white), linear-gradient(45deg, black, white); } b { background-image: linear-gradient(rgba(0,0,0,1), white), linear-gradient(white, black); } strong { background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.8) 20px, #000 30px, #000) no-repeat; } div { background-image: radial-gradient(to left, white, black), repeating-linear-gradient(to bottom right, black, white), repeating-radial-gradient(to top, aqua, red); } .old-radial { background: radial-gradient(0 50%, ellipse farthest-corner, black, white); } .simple1 { background: linear-gradient(black, white); } .simple2 { background: linear-gradient(to left, black 0%, rgba(0, 0, 0, 0.5)50%, white 100%); } .simple3 { background: linear-gradient(to left, black 50%, white 100%); } .simple4 { background: linear-gradient(to right top, black, white); } .direction { background: linear-gradient(top left, black, rgba(0, 0, 0, 0.5), white); } .silent { background: -webkit-linear-gradient(top left, black, white); } .radial { background: radial-gradient(farthest-side at 0 50%, white, black); } .second { background: red linear-gradient(red, blue); background: url('logo.png'), linear-gradient(#fff, #000); } .px { background: linear-gradient(black 0, white 100px); } .list { list-style-image: linear-gradient(white, black); } .mask { mask: linear-gradient(white, black); } .newline { background-image: linear-gradient( white, black ), linear-gradient( black, white ); } .convert { background: linear-gradient(0deg, white, black); background: linear-gradient(90deg, white, black); background: linear-gradient(180deg, white, black); background: linear-gradient(270deg, white, black); } .grad { background: linear-gradient(1grad, white, black); } .rad { background: linear-gradient(1rad, white, black); } .turn { background: linear-gradient(0.3turn, white, black); } .norm { background: linear-gradient(-90deg, white, black); } .mask { mask-image: radial-gradient(circle at 86% 86%, transparent 8px, black 8px); } .cover { background: radial-gradient(ellipse cover at center, white, black); } .contain { background: radial-gradient(contain at center, white, black); } .no-div { background: linear-gradient(black); } .background-shorthand { background: radial-gradient(#FFF, transparent) 0 0 / cover no-repeat #F0F; } .background-advanced { background: radial-gradient(ellipse farthest-corner at 5px 15px, rgba(214, 168, 18, 0.7) 0%, rgba(255, 21, 177, 0.7) 50%, rgba(210, 7, 148, 0.7) 95%), radial-gradient(#FFF, transparent), url(path/to/image.jpg) 50%/cover; } .multiradial { mask-image: radial-gradient(circle closest-corner at 100% 50%, #000, transparent); } .broken { mask-image: radial-gradient(white, black); } node-autoprefixer-8.6.5+repack/test/cases/gradient.out.css000066400000000000000000000234211363606675700236520ustar00rootroot00000000000000a { background: -webkit-linear-gradient(99.5deg, white, black), -webkit-linear-gradient(220deg, black, white), -webkit-linear-gradient(45deg, black, white); background: -o-linear-gradient(99.5deg, white, black), -o-linear-gradient(220deg, black, white), -o-linear-gradient(45deg, black, white); background: linear-gradient(350.5deg, white, black), linear-gradient(-130deg, black, white), linear-gradient(45deg, black, white); } b { background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,1)), to(white)), -webkit-gradient(linear, left top, left bottom, from(white), to(black)); background-image: -webkit-linear-gradient(rgba(0,0,0,1), white), -webkit-linear-gradient(white, black); background-image: -o-linear-gradient(rgba(0,0,0,1), white), -o-linear-gradient(white, black); background-image: linear-gradient(rgba(0,0,0,1), white), linear-gradient(white, black); } strong { background: -webkit-linear-gradient(bottom, transparent, rgba(0, 0, 0, 0.8) 20px, #000 30px, #000) no-repeat; background: -o-linear-gradient(bottom, transparent, rgba(0, 0, 0, 0.8) 20px, #000 30px, #000) no-repeat; background: linear-gradient(to top, transparent, rgba(0, 0, 0, 0.8) 20px, #000 30px, #000) no-repeat; } div { background-image: -webkit-radial-gradient(right, white, black), -webkit-repeating-linear-gradient(top left, black, white), -webkit-repeating-radial-gradient(bottom, aqua, red); background-image: -o-radial-gradient(right, white, black), -o-repeating-linear-gradient(top left, black, white), -o-repeating-radial-gradient(bottom, aqua, red); background-image: radial-gradient(to left, white, black), repeating-linear-gradient(to bottom right, black, white), repeating-radial-gradient(to top, aqua, red); } .old-radial { background: -webkit-radial-gradient(0 50%, ellipse farthest-corner, black, white); background: -o-radial-gradient(0 50%, ellipse farthest-corner, black, white); background: radial-gradient(0 50%, ellipse farthest-corner, black, white); } .simple1 { background: -webkit-gradient(linear, left top, left bottom, from(black), to(white)); background: -webkit-linear-gradient(black, white); background: -o-linear-gradient(black, white); background: linear-gradient(black, white); } .simple2 { background: -webkit-gradient(linear, right top, left top, from(black), color-stop(50%, rgba(0, 0, 0, 0.5)), to(white)); background: -webkit-linear-gradient(right, black 0%, rgba(0, 0, 0, 0.5)50%, white 100%); background: -o-linear-gradient(right, black 0%, rgba(0, 0, 0, 0.5)50%, white 100%); background: linear-gradient(to left, black 0%, rgba(0, 0, 0, 0.5)50%, white 100%); } .simple3 { background: -webkit-gradient(linear, right top, left top, color-stop(50%, black), to(white)); background: -webkit-linear-gradient(right, black 50%, white 100%); background: -o-linear-gradient(right, black 50%, white 100%); background: linear-gradient(to left, black 50%, white 100%); } .simple4 { background: -webkit-gradient(linear, left bottom, right top, from(black), to(white)); background: -webkit-linear-gradient(left bottom, black, white); background: -o-linear-gradient(left bottom, black, white); background: linear-gradient(to right top, black, white); } .direction { background: -webkit-gradient(linear, left top, right bottom, from(black), color-stop(rgba(0, 0, 0, 0.5)), to(white)); background: -webkit-linear-gradient(top left, black, rgba(0, 0, 0, 0.5), white); background: -o-linear-gradient(top left, black, rgba(0, 0, 0, 0.5), white); background: linear-gradient(top left, black, rgba(0, 0, 0, 0.5), white); } .silent { background: -webkit-linear-gradient(top left, black, white); } .radial { background: -webkit-radial-gradient(0 50%, farthest-side, white, black); background: -o-radial-gradient(0 50%, farthest-side, white, black); background: radial-gradient(farthest-side at 0 50%, white, black); } .second { background: red -webkit-gradient(linear, left top, left bottom, from(red), to(blue)); background: red -webkit-linear-gradient(red, blue); background: red -o-linear-gradient(red, blue); background: red linear-gradient(red, blue); background: url('logo.png'), -webkit-gradient(linear, left top, left bottom, from(#fff), to(#000)); background: url('logo.png'), -webkit-linear-gradient(#fff, #000); background: url('logo.png'), -o-linear-gradient(#fff, #000); background: url('logo.png'), linear-gradient(#fff, #000); } .px { background: -webkit-linear-gradient(black 0, white 100px); background: -o-linear-gradient(black 0, white 100px); background: linear-gradient(black 0, white 100px); } .list { list-style-image: -webkit-gradient(linear, left top, left bottom, from(white), to(black)); list-style-image: -webkit-linear-gradient(white, black); list-style-image: linear-gradient(white, black); } .mask { -webkit-mask: -webkit-gradient(linear, left top, left bottom, from(white), to(black)); -webkit-mask: -webkit-linear-gradient(white, black); mask: -webkit-gradient(linear, left top, left bottom, from(white), to(black)); mask: linear-gradient(white, black); } .newline { background-image: -webkit-gradient( linear, left top, left bottom, from(white), to(black) ), -webkit-gradient( linear, left top, left bottom, from(black), to(white) ); background-image: -webkit-linear-gradient( white, black ), -webkit-linear-gradient( black, white ); background-image: -o-linear-gradient( white, black ), -o-linear-gradient( black, white ); background-image: linear-gradient( white, black ), linear-gradient( black, white ); } .convert { background: -webkit-gradient(linear, left bottom, left top, from(white), to(black)); background: -webkit-linear-gradient(bottom, white, black); background: -o-linear-gradient(bottom, white, black); background: linear-gradient(0deg, white, black); background: -webkit-gradient(linear, left top, right top, from(white), to(black)); background: -webkit-linear-gradient(left, white, black); background: -o-linear-gradient(left, white, black); background: linear-gradient(90deg, white, black); background: -webkit-gradient(linear, left top, left bottom, from(white), to(black)); background: -webkit-linear-gradient(top, white, black); background: -o-linear-gradient(top, white, black); background: linear-gradient(180deg, white, black); background: -webkit-gradient(linear, right top, left top, from(white), to(black)); background: -webkit-linear-gradient(right, white, black); background: -o-linear-gradient(right, white, black); background: linear-gradient(270deg, white, black); } .grad { background: -webkit-linear-gradient(89.1deg, white, black); background: -o-linear-gradient(89.1deg, white, black); background: linear-gradient(1grad, white, black); } .rad { background: -webkit-linear-gradient(32.704deg, white, black); background: -o-linear-gradient(32.704deg, white, black); background: linear-gradient(1rad, white, black); } .turn { background: -webkit-linear-gradient(342deg, white, black); background: -o-linear-gradient(342deg, white, black); background: linear-gradient(0.3turn, white, black); } .norm { background: -webkit-gradient(linear, right top, left top, from(white), to(black)); background: -webkit-linear-gradient(right, white, black); background: -o-linear-gradient(right, white, black); background: linear-gradient(-90deg, white, black); } .mask { -webkit-mask-image: -webkit-radial-gradient(86% 86%, circle, transparent 8px, black 8px); mask-image: radial-gradient(circle at 86% 86%, transparent 8px, black 8px); } .cover { background: -webkit-radial-gradient(center, ellipse cover, white, black); background: -o-radial-gradient(center, ellipse cover, white, black); background: radial-gradient(ellipse cover at center, white, black); } .contain { background: -webkit-radial-gradient(center, contain, white, black); background: -o-radial-gradient(center, contain, white, black); background: radial-gradient(contain at center, white, black); } .no-div { background: -webkit-gradient(linear, left top, left bottom, from(black)); background: -webkit-linear-gradient(black); background: -o-linear-gradient(black); background: linear-gradient(black); } .background-shorthand { background: -webkit-radial-gradient(#FFF, transparent) 0 0 / cover no-repeat #F0F; background: -o-radial-gradient(#FFF, transparent) 0 0 / cover no-repeat #F0F; background: radial-gradient(#FFF, transparent) 0 0 / cover no-repeat #F0F; } .background-advanced { background: -webkit-radial-gradient(5px 15px, ellipse farthest-corner, rgba(214, 168, 18, 0.7) 0%, rgba(255, 21, 177, 0.7) 50%, rgba(210, 7, 148, 0.7) 95%), -webkit-radial-gradient(#FFF, transparent), url(path/to/image.jpg) 50%/cover; background: -o-radial-gradient(5px 15px, ellipse farthest-corner, rgba(214, 168, 18, 0.7) 0%, rgba(255, 21, 177, 0.7) 50%, rgba(210, 7, 148, 0.7) 95%), -o-radial-gradient(#FFF, transparent), url(path/to/image.jpg) 50%/cover; background: radial-gradient(ellipse farthest-corner at 5px 15px, rgba(214, 168, 18, 0.7) 0%, rgba(255, 21, 177, 0.7) 50%, rgba(210, 7, 148, 0.7) 95%), radial-gradient(#FFF, transparent), url(path/to/image.jpg) 50%/cover; } .multiradial { -webkit-mask-image: -webkit-radial-gradient(100% 50%, circle closest-corner, #000, transparent); mask-image: radial-gradient(circle closest-corner at 100% 50%, #000, transparent); } .broken { -webkit-mask-image: -webkit-radial-gradient(white, black); mask-image: radial-gradient(white, black); } node-autoprefixer-8.6.5+repack/test/cases/grid-area.css000066400000000000000000000003541363606675700231020ustar00rootroot00000000000000.a { grid-area: 5 / 1 / span 1 / span 5; } .b { grid-area: span 1 / span 3 / 4 / 4; } .c { grid-area: 2 / 2; } .d { grid-area: "custom-ident"; } .e { grid-area: 2 / 2 / 3 / 8; } .f { grid-area: 2 / 2 / 3; } node-autoprefixer-8.6.5+repack/test/cases/grid-area.out.css000066400000000000000000000012141363606675700237040ustar00rootroot00000000000000.a { -ms-grid-row: 5; -ms-grid-row-span: 1; -ms-grid-column: 1; -ms-grid-column-span: 5; grid-area: 5 / 1 / span 1 / span 5; } .b { -ms-grid-row: 3; -ms-grid-row-span: 1; -ms-grid-column: 1; -ms-grid-column-span: 3; grid-area: span 1 / span 3 / 4 / 4; } .c { -ms-grid-row: 2; -ms-grid-column: 2; grid-area: 2 / 2; } .d { grid-area: "custom-ident"; } .e { -ms-grid-row: 2; -ms-grid-row-span: 1; -ms-grid-column: 2; -ms-grid-column-span: 6; grid-area: 2 / 2 / 3 / 8; } .f { -ms-grid-row: 2; -ms-grid-row-span: 1; -ms-grid-column: 2; grid-area: 2 / 2 / 3; } node-autoprefixer-8.6.5+repack/test/cases/grid-gap.css000066400000000000000000000022601363606675700227370ustar00rootroot00000000000000.a { grid-gap: 1rem; grid-template-rows: 1fr minmax(100px, 1fr) 2fr; grid-template-columns: repeat(3, 1fr); grid-template-areas: "head head head" "nav main main" "nav foot foot"; } .b { grid-area: head; } .c { grid-area: main; } .d { grid-area: nav; } .e { grid-area: foot; } .f { gap: 10px 20px; grid-template-columns: 1fr 1fr 1fr; grid-template-areas: "head head head" "nav main main" "nav foot foot"; } .a-shortcut { grid-gap: 1rem 2rem; grid-template: "head-shortcut head-shortcut head-shortcut" 1fr "nav-shortcut main-shortcut main-shortcut" minmax(100px, 1fr) "nav-shortcut foot-shortcut foot-shortcut" 2fr / 1fr 100px 1fr; } .b-shortcut { grid-area: head-shortcut; } .c-shortcut { grid-area: main-shortcut; } .d-shortcut { grid-area: nav-shortcut; } .e-shortcut { grid-area: foot-shortcut; } .f-shortcut { grid-gap: 10px; grid-template: "head-shortcut head-shortcut head-shortcut" "nav-shortcut main-shortcut main-shortcut" "nav-shortcut foot-shortcut foot-shortcut" / 1fr 1fr 1fr; } node-autoprefixer-8.6.5+repack/test/cases/grid-gap.out.css000066400000000000000000000041741363606675700235530ustar00rootroot00000000000000.a { grid-gap: 1rem; -ms-grid-rows: 1fr 1rem minmax(100px, 1fr) 1rem 2fr; grid-template-rows: 1fr minmax(100px, 1fr) 2fr; -ms-grid-columns: 1fr 1rem 1fr 1rem 1fr; grid-template-columns: repeat(3, 1fr); grid-template-areas: "head head head" "nav main main" "nav foot foot"; } .b { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 5; grid-area: head; } .c { -ms-grid-row: 3; -ms-grid-column: 3; -ms-grid-column-span: 3; grid-area: main; } .d { -ms-grid-row: 3; -ms-grid-row-span: 3; -ms-grid-column: 1; grid-area: nav; } .e { -ms-grid-row: 5; -ms-grid-column: 3; -ms-grid-column-span: 3; grid-area: foot; } .f { gap: 10px 20px; -ms-grid-columns: 1fr 20px 1fr 20px 1fr; grid-template-columns: 1fr 1fr 1fr; -ms-grid-rows: auto 10px auto 10px auto; grid-template-areas: "head head head" "nav main main" "nav foot foot"; } .a-shortcut { grid-gap: 1rem 2rem; -ms-grid-rows: 1fr 1rem minmax(100px, 1fr) 1rem 2fr; -ms-grid-columns: 1fr 2rem 100px 2rem 1fr; grid-template: "head-shortcut head-shortcut head-shortcut" 1fr "nav-shortcut main-shortcut main-shortcut" minmax(100px, 1fr) "nav-shortcut foot-shortcut foot-shortcut" 2fr / 1fr 100px 1fr; } .b-shortcut { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 5; grid-area: head-shortcut; } .c-shortcut { -ms-grid-row: 3; -ms-grid-column: 3; -ms-grid-column-span: 3; grid-area: main-shortcut; } .d-shortcut { -ms-grid-row: 3; -ms-grid-row-span: 3; -ms-grid-column: 1; grid-area: nav-shortcut; } .e-shortcut { -ms-grid-row: 5; -ms-grid-column: 3; -ms-grid-column-span: 3; grid-area: foot-shortcut; } .f-shortcut { grid-gap: 10px; -ms-grid-rows: auto 10px auto 10px auto; -ms-grid-columns: 1fr 10px 1fr 10px 1fr; grid-template: "head-shortcut head-shortcut head-shortcut" "nav-shortcut main-shortcut main-shortcut" "nav-shortcut foot-shortcut foot-shortcut" / 1fr 1fr 1fr; } node-autoprefixer-8.6.5+repack/test/cases/grid-template-areas.css000066400000000000000000000004731363606675700251000ustar00rootroot00000000000000.a { grid-template-areas: "head head" "nav main" "nav foot" "another"; } @media (max-width: 1000px) { .a { grid-template-areas: "head main"; } } .b { grid-area: head; } .c { grid-area: main; } .d { grid-area: nav; } .e { grid-area: foot; } node-autoprefixer-8.6.5+repack/test/cases/grid-template-areas.out.css000066400000000000000000000013161363606675700257030ustar00rootroot00000000000000.a { grid-template-areas: "head head" "nav main" "nav foot" "another"; } @media (max-width: 1000px) { .a { grid-template-areas: "head main"; } } .b { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 2; grid-area: head; } .c { -ms-grid-row: 2; -ms-grid-column: 2; grid-area: main; } @media (max-width: 1000px) { .b { -ms-grid-row: 1; -ms-grid-column: 1; } .c { -ms-grid-row: 1; -ms-grid-column: 2; } } .d { -ms-grid-row: 2; -ms-grid-row-span: 2; -ms-grid-column: 1; grid-area: nav; } .e { -ms-grid-row: 3; -ms-grid-column: 2; grid-area: foot; } node-autoprefixer-8.6.5+repack/test/cases/grid-template.css000066400000000000000000000033711363606675700240070ustar00rootroot00000000000000.a { grid-template: 10px repeat(4, 250px 10px) 20px / auto 1fr; } .b { grid-template: [header-left] "head head" 30px [header-right] [main-left] "nav main" 1fr [main-right] [footer-left] "nav foot" 30px [footer-right] / 120px repeat(4, 250px 10px); } @media (min-width: 1000px) { .b { grid-template: [header-left] "head" 30px [header-right] [nav-left] "nav" auto [nav-right] [main-left] "main" 1fr [main-right] [footer-left] "foot" 30px [footer-right] / 1fr; } } .c { grid-template: "hd hd hd hd hd hd hd hd hd" minmax(100px, auto) "sd sd sd mn mn mn mn mn mn" minmax(100px, auto) "ft ft ft ft ft ft ft ft ft" minmax(100px, auto) / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } .d { grid-template: 10px / 200px; } .e { grid-template: 10px; } .f { grid-template: "head head" "nav main" 20px "nav foot" / 1fr 1fr; } .head { grid-area: head; } .nav { grid-area: nav; } .main { grid-area: main; } .foot { grid-area: foot; } .hd { grid-area: hd; } .sd { grid-area: sd; } .mn { grid-area: mn; } .ft { grid-area: ft; } .grid { display: grid; grid-gap: 10px; grid-template: "a b" 100px "c d" 100px "e f" 100px / 1fr 1fr; } @media (min-width: 600px){ .grid { grid-gap: 10px; grid-template: "a b c" 100px "d e f" 100px / 1fr 1fr 1fr; } } .cell-A { grid-area: a; } .cell-B { grid-area: b; } .cell-C { grid-area: c; } .cell-D { grid-area: d; } .cell-E { grid-area: e; } .cell-F { grid-area: f; } node-autoprefixer-8.6.5+repack/test/cases/grid-template.out.css000066400000000000000000000077271363606675700246260ustar00rootroot00000000000000.a { -ms-grid-rows: 10px (250px 10px)[4] 20px; -ms-grid-columns: auto 1fr; grid-template: 10px repeat(4, 250px 10px) 20px / auto 1fr; } .b { -ms-grid-rows: 30px 1fr 30px; -ms-grid-columns: 120px (250px 10px)[4]; grid-template: [header-left] "head head" 30px [header-right] [main-left] "nav main" 1fr [main-right] [footer-left] "nav foot" 30px [footer-right] / 120px repeat(4, 250px 10px); } @media (min-width: 1000px) { .b { -ms-grid-rows: 30px auto 1fr 30px; -ms-grid-columns: 1fr; grid-template: [header-left] "head" 30px [header-right] [nav-left] "nav" auto [nav-right] [main-left] "main" 1fr [main-right] [footer-left] "foot" 30px [footer-right] / 1fr; } } .c { -ms-grid-rows: minmax(100px, auto) minmax(100px, auto) minmax(100px, auto); -ms-grid-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; grid-template: "hd hd hd hd hd hd hd hd hd" minmax(100px, auto) "sd sd sd mn mn mn mn mn mn" minmax(100px, auto) "ft ft ft ft ft ft ft ft ft" minmax(100px, auto) / 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr; } .d { -ms-grid-rows: 10px; -ms-grid-columns: 200px; grid-template: 10px / 200px; } .e { grid-template: 10px; } .f { -ms-grid-rows: auto 20px auto; -ms-grid-columns: 1fr 1fr; grid-template: "head head" "nav main" 20px "nav foot" / 1fr 1fr; } .head { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 2; grid-area: head; } .nav { -ms-grid-row: 2; -ms-grid-row-span: 2; -ms-grid-column: 1; grid-area: nav; } .main { -ms-grid-row: 2; -ms-grid-column: 2; grid-area: main; } .foot { -ms-grid-row: 3; -ms-grid-column: 2; grid-area: foot; } @media (min-width: 1000px) { .head { -ms-grid-row: 1; -ms-grid-column: 1; } .nav { -ms-grid-row: 2; -ms-grid-column: 1; } .main { -ms-grid-row: 3; -ms-grid-column: 1; } .foot { -ms-grid-row: 4; -ms-grid-column: 1; } } .hd { -ms-grid-row: 1; -ms-grid-column: 1; -ms-grid-column-span: 9; grid-area: hd; } .sd { -ms-grid-row: 2; -ms-grid-column: 1; -ms-grid-column-span: 3; grid-area: sd; } .mn { -ms-grid-row: 2; -ms-grid-column: 4; -ms-grid-column-span: 6; grid-area: mn; } .ft { -ms-grid-row: 3; -ms-grid-column: 1; -ms-grid-column-span: 9; grid-area: ft; } .grid { display: -ms-grid; display: grid; grid-gap: 10px; -ms-grid-rows: 100px 10px 100px 10px 100px; -ms-grid-columns: 1fr 10px 1fr; grid-template: "a b" 100px "c d" 100px "e f" 100px / 1fr 1fr; } @media (min-width: 600px){ .grid { grid-gap: 10px; -ms-grid-rows: 100px 10px 100px; -ms-grid-columns: 1fr 10px 1fr 10px 1fr; grid-template: "a b c" 100px "d e f" 100px / 1fr 1fr 1fr; } } .cell-A { -ms-grid-row: 1; -ms-grid-column: 1; grid-area: a; } .cell-B { -ms-grid-row: 1; -ms-grid-column: 3; grid-area: b; } .cell-C { -ms-grid-row: 3; -ms-grid-column: 1; grid-area: c; } .cell-D { -ms-grid-row: 3; -ms-grid-column: 3; grid-area: d; } .cell-E { -ms-grid-row: 5; -ms-grid-column: 1; grid-area: e; } .cell-F { -ms-grid-row: 5; -ms-grid-column: 3; grid-area: f; } @media (min-width: 600px){ .cell-A { -ms-grid-row: 1; -ms-grid-column: 1; } .cell-B { -ms-grid-row: 1; -ms-grid-column: 3; } .cell-C { -ms-grid-row: 1; -ms-grid-column: 5; } .cell-D { -ms-grid-row: 3; -ms-grid-column: 1; } .cell-E { -ms-grid-row: 3; -ms-grid-column: 3; } .cell-F { -ms-grid-row: 3; -ms-grid-column: 5; } } node-autoprefixer-8.6.5+repack/test/cases/grid.css000066400000000000000000000034461363606675700222010ustar00rootroot00000000000000.a { display: grid; grid-template-columns: auto 1fr; justify-self: stretch; align-self: stretch; grid-column-start: 1; grid-column-end: span 3; } .b { display: inline-grid; grid-template-rows: 10px repeat(4, 250px 10px) 20px; justify-self: stretch; align-self: stretch; grid-row-start: 1; grid-row-end: span 3; } .c { grid-column: 1 / span 3; } .d { grid-column: 1 / 3; grid-row: span 2 / 5; } .e { grid-column-start: 1; grid-column-end: 3; grid-row-start: 1; grid-row-end: 4; } .warn { grid-column-end: 3; grid: subgrid; grid-gap: 1rem; grid-template-areas: "head head" "nav main" "foot ...."; } .warn-gap-rows { grid-gap: 1rem; grid-template-rows: 1fr 1fr; grid-template-areas: "a a" "a a"; } .warn-gap-rows { grid-column-gap: 1rem; grid-template-rows: 1fr 1fr; grid-template-areas: "b b" "b b"; } .warn-gap-columns { grid-gap: 1rem; grid-template-columns: 1fr 1fr; grid-template-areas: "c c" "c c"; } .warn-gap-columns { grid-row-gap: 1rem; grid-template-columns: 1fr 1fr; grid-template-areas: "d d" "d d"; } .unknown { justify-self: start; align-self: start; } .flex { justify-self: flex-end; align-self: flex-end; } @supports (display: grid) { .foo { display: grid; } } @supports (justify-items: start) { .foo { justify-items: start; } } .warn { grid-column-span: 2; grid-row-span: 2; grid-auto-columns: 100px; grid-auto-rows: 100px; grid-auto-flow: column; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); grid-template-rows: repeat(auto-fit, minmax(400px, 1fr)); } node-autoprefixer-8.6.5+repack/test/cases/grid.disabled.css000066400000000000000000000035541363606675700237470ustar00rootroot00000000000000.a { display: grid; grid-template-columns: auto 1fr; justify-self: stretch; align-self: stretch; grid-column-start: 1; grid-column-end: span 3; } .b { display: inline-grid; grid-template-rows: 10px repeat(4, 250px 10px) 20px; justify-self: stretch; align-self: stretch; grid-row-start: 1; grid-row-end: span 3; } .c { grid-column: 1 / span 3; } .d { grid-column: 1 / 3; grid-row: span 2 / 5; } .e { grid-column-start: 1; grid-column-end: 3; grid-row-start: 1; grid-row-end: 4; } .warn { grid-column-end: 3; grid: subgrid; grid-gap: 1rem; grid-template-areas: "head head" "nav main" "foot ...."; } .warn-gap-rows { grid-gap: 1rem; grid-template-rows: 1fr 1fr; grid-template-areas: "a a" "a a"; } .warn-gap-rows { grid-column-gap: 1rem; grid-template-rows: 1fr 1fr; grid-template-areas: "b b" "b b"; } .warn-gap-columns { grid-gap: 1rem; grid-template-columns: 1fr 1fr; grid-template-areas: "c c" "c c"; } .warn-gap-columns { grid-row-gap: 1rem; grid-template-columns: 1fr 1fr; grid-template-areas: "d d" "d d"; } .unknown { justify-self: start; -ms-flex-item-align: start; align-self: start; } .flex { justify-self: flex-end; -ms-flex-item-align: end; align-self: flex-end; } @supports (display: grid) { .foo { display: grid; } } @supports (justify-items: start) { .foo { justify-items: start; } } .warn { grid-column-span: 2; grid-row-span: 2; grid-auto-columns: 100px; grid-auto-rows: 100px; grid-auto-flow: column; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); grid-template-rows: repeat(auto-fit, minmax(400px, 1fr)); } node-autoprefixer-8.6.5+repack/test/cases/grid.out.css000066400000000000000000000055531363606675700230100ustar00rootroot00000000000000.a { display: -ms-grid; display: grid; -ms-grid-columns: auto 1fr; grid-template-columns: auto 1fr; -ms-grid-column-align: stretch; justify-self: stretch; -ms-grid-row-align: stretch; align-self: stretch; -ms-grid-column: 1; grid-column-start: 1; -ms-grid-column-span: 3; grid-column-end: span 3; } .b { display: -ms-inline-grid; display: inline-grid; -ms-grid-rows: 10px (250px 10px)[4] 20px; grid-template-rows: 10px repeat(4, 250px 10px) 20px; -ms-grid-column-align: stretch; justify-self: stretch; -ms-grid-row-align: stretch; align-self: stretch; -ms-grid-row: 1; grid-row-start: 1; -ms-grid-row-span: 3; grid-row-end: span 3; } .c { -ms-grid-column: 1; -ms-grid-column-span: 3; grid-column: 1 / span 3; } .d { -ms-grid-column: 1; -ms-grid-column-span: 2; grid-column: 1 / 3; -ms-grid-row: 3; -ms-grid-row-span: 2; grid-row: span 2 / 5; } .e { -ms-grid-column: 1; grid-column-start: 1; -ms-grid-column-span: 2; grid-column-end: 3; -ms-grid-row: 1; grid-row-start: 1; -ms-grid-row-span: 3; grid-row-end: 4; } .warn { -ms-grid-column-span: 3; grid-column-end: 3; grid: subgrid; grid-gap: 1rem; grid-template-areas: "head head" "nav main" "foot ...."; } .warn-gap-rows { grid-gap: 1rem; -ms-grid-rows: 1fr 1rem 1fr; grid-template-rows: 1fr 1fr; grid-template-areas: "a a" "a a"; } .warn-gap-rows { grid-column-gap: 1rem; -ms-grid-rows: 1fr 1fr; grid-template-rows: 1fr 1fr; grid-template-areas: "b b" "b b"; } .warn-gap-columns { grid-gap: 1rem; -ms-grid-columns: 1fr 1rem 1fr; grid-template-columns: 1fr 1fr; -ms-grid-rows: auto 1rem auto; grid-template-areas: "c c" "c c"; } .warn-gap-columns { grid-row-gap: 1rem; -ms-grid-columns: 1fr 1fr; grid-template-columns: 1fr 1fr; -ms-grid-rows: auto 1rem auto; grid-template-areas: "d d" "d d"; } .unknown { -ms-grid-column-align: start; justify-self: start; -webkit-align-self: start; -ms-flex-item-align: start; -ms-grid-row-align: start; align-self: start; } .flex { justify-self: flex-end; -webkit-align-self: flex-end; -ms-flex-item-align: end; align-self: flex-end; } @supports ((display: -ms-grid) or (display: grid)) { .foo { display: -ms-grid; display: grid; } } @supports (justify-items: start) { .foo { justify-items: start; } } .warn { grid-column-span: 2; grid-row-span: 2; grid-auto-columns: 100px; grid-auto-rows: 100px; grid-auto-flow: column; grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); grid-template-rows: repeat(auto-fit, minmax(400px, 1fr)); } node-autoprefixer-8.6.5+repack/test/cases/ignore-next.css000066400000000000000000000007231363606675700235060ustar00rootroot00000000000000.ignore-property { /* autoprefixer: ignore next */ mask: none; background: linear-gradient(to bottom, white, black); } .ignore-property_nospaces-comment { /* autoprefixer:ignore next */ mask: none; background: linear-gradient(to bottom, white, black); } /* autoprefixer: ignore next */ .ignore-rule::placeholder { mask: none; } /* autoprefixer: ignore next */ @media (min-resolution: 2dppx) { .ignore-at-rule::placeholder { mask: none; } } node-autoprefixer-8.6.5+repack/test/cases/ignore-next.out.css000066400000000000000000000015301363606675700243110ustar00rootroot00000000000000.ignore-property { /* autoprefixer: ignore next */ mask: none; background: -webkit-linear-gradient(top, white, black); background: -o-linear-gradient(top, white, black); background: linear-gradient(to bottom, white, black); } .ignore-property_nospaces-comment { /* autoprefixer:ignore next */ mask: none; background: -webkit-linear-gradient(top, white, black); background: -o-linear-gradient(top, white, black); background: linear-gradient(to bottom, white, black); } /* autoprefixer: ignore next */ .ignore-rule::placeholder { -webkit-mask: none; mask: none; } /* autoprefixer: ignore next */ @media (min-resolution: 2dppx) { .ignore-at-rule::-webkit-input-placeholder { -webkit-mask: none; mask: none; } .ignore-at-rule::placeholder { -webkit-mask: none; mask: none; } } node-autoprefixer-8.6.5+repack/test/cases/image-rendering.css000066400000000000000000000003561363606675700243060ustar00rootroot00000000000000img { image-rendering: crisp-edges; } img.other { image-rendering: pixelated; } img.already { -ms-interpolation-mode: nearest-neighbor; display: block; image-rendering: crisp-edges; image-rendering: pixelated; } node-autoprefixer-8.6.5+repack/test/cases/image-rendering.out.css000066400000000000000000000010401363606675700251030ustar00rootroot00000000000000img { image-rendering: crisp-edges; } img.other { -ms-interpolation-mode: nearest-neighbor; image-rendering: -webkit-optimize-contrast; image-rendering: -moz-crisp-edges; image-rendering: -o-pixelated; image-rendering: pixelated; } img.already { -ms-interpolation-mode: nearest-neighbor; display: block; image-rendering: crisp-edges; image-rendering: -webkit-optimize-contrast; image-rendering: -moz-crisp-edges; image-rendering: -o-pixelated; image-rendering: pixelated; } node-autoprefixer-8.6.5+repack/test/cases/image-set.css000066400000000000000000000002321363606675700231150ustar00rootroot00000000000000a { background-image: image-set(url(foo@1x.png) 1x, url(foo@2x.png) 2x); } h1 { background-image: image-set('foo@1x.png' 1x, "foo@2x.png" 2x); } node-autoprefixer-8.6.5+repack/test/cases/image-set.out.css000066400000000000000000000005001363606675700237210ustar00rootroot00000000000000a { background-image: -webkit-image-set(url(foo@1x.png) 1x, url(foo@2x.png) 2x); background-image: image-set(url(foo@1x.png) 1x, url(foo@2x.png) 2x); } h1 { background-image: -webkit-image-set(url('foo@1x.png') 1x, url("foo@2x.png") 2x); background-image: image-set('foo@1x.png' 1x, "foo@2x.png" 2x); } node-autoprefixer-8.6.5+repack/test/cases/intrinsic.css000066400000000000000000000011651363606675700232520ustar00rootroot00000000000000a { width: stretch; } b { height: max-content; } p { block-size: min-content; min-inline-size: fit-content; } .outdated { width: fill; } .old { width: fill-available; } .grid { grid: min-content max-content / fit-content(500px); } .grid-template { grid-template: min-content / fit-content(10px) max-content; grid-template: max-content 1fr max-content max-content / max-content 1fr; } .grid-template-columns { grid-template-columns: minmax(100px, min-content); } .grid-auto-columns { grid-auto-columns: min-content max-content; } .ignore { width: -webkit-fill-available; } node-autoprefixer-8.6.5+repack/test/cases/intrinsic.out.css000066400000000000000000000026131363606675700240570ustar00rootroot00000000000000a { width: -webkit-fill-available; width: -moz-available; width: stretch; } b { height: -webkit-max-content; height: -moz-max-content; height: max-content; } p { block-size: -webkit-min-content; block-size: -moz-min-content; block-size: min-content; min-inline-size: -webkit-fit-content; min-inline-size: -moz-fit-content; min-inline-size: fit-content; } .outdated { width: -webkit-fill-available; width: -moz-available; width: fill; } .old { width: -webkit-fill-available; width: -moz-available; width: fill-available; } .grid { grid: -webkit-min-content -webkit-max-content / fit-content(500px); grid: min-content max-content / fit-content(500px); } .grid-template { grid-template: -webkit-min-content / fit-content(10px) -webkit-max-content; grid-template: min-content / fit-content(10px) max-content; grid-template: -webkit-max-content 1fr -webkit-max-content -webkit-max-content / -webkit-max-content 1fr; grid-template: max-content 1fr max-content max-content / max-content 1fr; } .grid-template-columns { grid-template-columns: minmax(100px, -webkit-min-content); grid-template-columns: minmax(100px, min-content); } .grid-auto-columns { grid-auto-columns: -webkit-min-content -webkit-max-content; grid-auto-columns: min-content max-content; } .ignore { width: -webkit-fill-available; } node-autoprefixer-8.6.5+repack/test/cases/keyframes.css000066400000000000000000000005121363606675700232310ustar00rootroot00000000000000@keyframes anim { from { top: calc(10% + 10px); transform: rotate(10deg) } 50% { top: 0; display: flex } to { top: calc(10%); transform: rotate(0) } } @media screen { @keyframes inside {} } @keyframes spaces { from { color: black } to { color: white } } node-autoprefixer-8.6.5+repack/test/cases/keyframes.out.css000066400000000000000000000030771363606675700240500ustar00rootroot00000000000000@-webkit-keyframes anim { from { top: -webkit-calc(10% + 10px); top: calc(10% + 10px); -webkit-transform: rotate(10deg); transform: rotate(10deg) } 50% { top: 0; display: -webkit-box; display: -webkit-flex; display: flex } to { top: -webkit-calc(10%); top: calc(10%); -webkit-transform: rotate(0); transform: rotate(0) } } @-o-keyframes anim { from { top: calc(10% + 10px); -o-transform: rotate(10deg); transform: rotate(10deg) } 50% { top: 0; display: flex } to { top: calc(10%); -o-transform: rotate(0); transform: rotate(0) } } @keyframes anim { from { top: -webkit-calc(10% + 10px); top: calc(10% + 10px); -webkit-transform: rotate(10deg); -o-transform: rotate(10deg); transform: rotate(10deg) } 50% { top: 0; display: -webkit-box; display: -webkit-flex; display: flex } to { top: -webkit-calc(10%); top: calc(10%); -webkit-transform: rotate(0); -o-transform: rotate(0); transform: rotate(0) } } @media screen { @-webkit-keyframes inside {} @-o-keyframes inside {} @keyframes inside {} } @-webkit-keyframes spaces { from { color: black } to { color: white } } @-o-keyframes spaces { from { color: black } to { color: white } } @keyframes spaces { from { color: black } to { color: white } } node-autoprefixer-8.6.5+repack/test/cases/logical.css000066400000000000000000000002421363606675700226550ustar00rootroot00000000000000a { margin-block-start: 1px; margin-inline-start: 1px; padding-inline-end: 1px; } .border { border-block-end: 1px; border-inline-end: 1px; } node-autoprefixer-8.6.5+repack/test/cases/logical.out.css000066400000000000000000000006751363606675700234750ustar00rootroot00000000000000a { -webkit-margin-before: 1px; margin-block-start: 1px; -webkit-margin-start: 1px; -moz-margin-start: 1px; margin-inline-start: 1px; -webkit-padding-end: 1px; -moz-padding-end: 1px; padding-inline-end: 1px; } .border { -webkit-border-after: 1px; border-block-end: 1px; -webkit-border-end: 1px; -moz-border-end: 1px; border-inline-end: 1px; } node-autoprefixer-8.6.5+repack/test/cases/mask-border.css000066400000000000000000000003321363606675700234510ustar00rootroot00000000000000a { mask-border-source: url(image.png); mask-border-slice: 50% fill; mask-border-width: auto 1 50%; mask-border-outset: 0 1 2; mask-border-repeat: repeat space; mask-border: url(#foo) 1 fill; } node-autoprefixer-8.6.5+repack/test/cases/mask-border.out.css000066400000000000000000000010401363606675700242540ustar00rootroot00000000000000a { -webkit-mask-box-image-source: url(image.png); mask-border-source: url(image.png); -webkit-mask-box-image-slice: 50% fill; mask-border-slice: 50% fill; -webkit-mask-box-image-width: auto 1 50%; mask-border-width: auto 1 50%; -webkit-mask-box-image-outset: 0 1 2; mask-border-outset: 0 1 2; -webkit-mask-box-image-repeat: repeat space; mask-border-repeat: repeat space; -webkit-mask-box-image: url(#foo) 1 fill; mask-border: url(#foo) 1 fill; } node-autoprefixer-8.6.5+repack/test/cases/mistakes.css000066400000000000000000000003221363606675700230620ustar00rootroot00000000000000a { -ms-transition: all 1s; transition: all 1s; -ms-border-radius: 5px; border-radius: 5px; background: -ms-linear-gradient(white, black); background: linear-gradient(white, black); } node-autoprefixer-8.6.5+repack/test/cases/mistakes.out.css000066400000000000000000000001451363606675700236730ustar00rootroot00000000000000a { transition: all 1s; border-radius: 5px; background: linear-gradient(white, black); } node-autoprefixer-8.6.5+repack/test/cases/multicolumn.css000066400000000000000000000004071363606675700236160ustar00rootroot00000000000000.a { break-inside: auto; break-before: auto; break-after: auto; } .b { break-inside: avoid; } .c { break-inside: avoid-column; } .d { break-inside: avoid-page; } .e { break-inside: avoid-region; } .f { break-inside: region; } node-autoprefixer-8.6.5+repack/test/cases/multicolumn.out.css000066400000000000000000000007631363606675700244310ustar00rootroot00000000000000.a { -webkit-column-break-inside: auto; break-inside: auto; -webkit-column-break-before: auto; break-before: auto; -webkit-column-break-after: auto; break-after: auto; } .b { -webkit-column-break-inside: avoid; break-inside: avoid; } .c { -webkit-column-break-inside: avoid; break-inside: avoid-column; } .d { break-inside: avoid-page; } .e { break-inside: avoid-region; } .f { break-inside: region; } node-autoprefixer-8.6.5+repack/test/cases/notes.css000066400000000000000000000000311363606675700223670ustar00rootroot00000000000000a { display: flex; } node-autoprefixer-8.6.5+repack/test/cases/notes.out.css000066400000000000000000000000641363606675700232030ustar00rootroot00000000000000a { display: -webkit-flex; display: flex; } node-autoprefixer-8.6.5+repack/test/cases/overscroll-behavior.css000066400000000000000000000002631363606675700252350ustar00rootroot00000000000000.none { overscroll-behavior: none; } .contain { overscroll-behavior: contain; } .auto { overscroll-behavior: auto; } .inherit { overscroll-behavior: inherit; } node-autoprefixer-8.6.5+repack/test/cases/overscroll-behavior.out.css000066400000000000000000000005051363606675700260420ustar00rootroot00000000000000.none { -ms-scroll-chaining: none; overscroll-behavior: none; } .contain { -ms-scroll-chaining: none; overscroll-behavior: contain; } .auto { -ms-scroll-chaining: chained; overscroll-behavior: auto; } .inherit { -ms-scroll-chaining: inherit; overscroll-behavior: inherit; } node-autoprefixer-8.6.5+repack/test/cases/pie.css000066400000000000000000000000711363606675700220200ustar00rootroot00000000000000a { -pie-background: linear-gradient(white, black) } node-autoprefixer-8.6.5+repack/test/cases/placeholder.css000066400000000000000000000001161363606675700235250ustar00rootroot00000000000000::placeholder { color: #999 } :placeholder-shown { background: #eee } node-autoprefixer-8.6.5+repack/test/cases/placeholder.out.css000066400000000000000000000004421363606675700243350ustar00rootroot00000000000000::-webkit-input-placeholder { color: #999 } :-moz-placeholder { color: #999 } ::-moz-placeholder { color: #999 } :-ms-input-placeholder { color: #999 } ::-ms-input-placeholder { color: #999 } ::placeholder { color: #999 } :placeholder-shown { background: #eee } node-autoprefixer-8.6.5+repack/test/cases/resolution.css000066400000000000000000000002171363606675700234500ustar00rootroot00000000000000@media (min-resolution: 2dppx), (min-resolution: 192dpi) { } @media (min-resolution: 2.5dppx) { } @media (min-resolution: 144dpi) { } node-autoprefixer-8.6.5+repack/test/cases/resolution.out.css000066400000000000000000000005661363606675700242650ustar00rootroot00000000000000@media (-webkit-min-device-pixel-ratio: 2), (-o-min-device-pixel-ratio: 2/1), (min-resolution: 2dppx), (min-resolution: 192dpi) { } @media (-webkit-min-device-pixel-ratio: 2.5), (-o-min-device-pixel-ratio: 5/2), (min-resolution: 2.5dppx) { } @media (-webkit-min-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 144dpi) { } node-autoprefixer-8.6.5+repack/test/cases/scope.css000066400000000000000000000002151363606675700223540ustar00rootroot00000000000000a { /* autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; /* autoprefixer: on */ mask: none; } node-autoprefixer-8.6.5+repack/test/cases/scope.out.css000066400000000000000000000002151363606675700231620ustar00rootroot00000000000000a { /* autoprefixer: off */ -webkit-border-radius: 4px; border-radius: 4px; /* autoprefixer: on */ mask: none; } node-autoprefixer-8.6.5+repack/test/cases/selectors.css000066400000000000000000000002471363606675700232530ustar00rootroot00000000000000 [href=:fullscreen] {} :fullscreen a { box-sizing: border-box } :fullscreen a { color: black } :-moz-full-screen a { transform: translate3d(0, 0, 0); } node-autoprefixer-8.6.5+repack/test/cases/selectors.out.css000066400000000000000000000006651363606675700240650ustar00rootroot00000000000000 [href=:fullscreen] {} :-webkit-full-screen a { box-sizing: border-box } :-moz-full-screen a { -moz-box-sizing: border-box; box-sizing: border-box } :fullscreen a { -moz-box-sizing: border-box; box-sizing: border-box } :-webkit-full-screen a { color: black } :-moz-full-screen a { color: black } :fullscreen a { color: black } :-moz-full-screen a { transform: translate3d(0, 0, 0); } node-autoprefixer-8.6.5+repack/test/cases/style.css000066400000000000000000000000531363606675700224030ustar00rootroot00000000000000a { color : black; display: flex } node-autoprefixer-8.6.5+repack/test/cases/style.out.css000066400000000000000000000001061363606675700232100ustar00rootroot00000000000000a { color : black; display: -webkit-flex; display: flex } node-autoprefixer-8.6.5+repack/test/cases/supports.css000066400000000000000000000010031363606675700231360ustar00rootroot00000000000000@supports (cursor: grab) or not (mask: none) and (color: black) { a { color: black; } } @supports not (display: flex) { a { color: #000; } } @supports ((perspective: 1px) and (not (-webkit-overflow-scrolling: touch))) { a { color: #000; } } @supports (animation-name: test) and ((animation-timing-function: steps(4, end)) or (animation-timing-function: step-end)) { animation-name: test; } @supports (transition: color 1s) { transition: color 1s; } node-autoprefixer-8.6.5+repack/test/cases/supports.out.css000066400000000000000000000015211363606675700237510ustar00rootroot00000000000000@supports ((cursor: -webkit-grab) or (cursor: grab)) or not ((-webkit-mask: none) or (mask: none)) and (color: black) { a { color: black; } } @supports not ((display: -webkit-flex) or (display: flex)) { a { color: #000; } } @supports (((-webkit-perspective: 1px) or (perspective: 1px)) and (not (-webkit-overflow-scrolling: touch))) { a { color: #000; } } @supports ((-webkit-animation-name: test) or (animation-name: test)) and (((-webkit-animation-timing-function: steps(4, end)) or (animation-timing-function: steps(4, end))) or ((-webkit-animation-timing-function: step-end) or (animation-timing-function: step-end))) { -webkit-animation-name: test; animation-name: test; } @supports (transition: color 1s) { -webkit-transition: color 1s; transition: color 1s; } node-autoprefixer-8.6.5+repack/test/cases/syntax.css000066400000000000000000000002771363606675700226010ustar00rootroot00000000000000@page { margin: 0.5cm; } /* comment */ @-moz-document url-prefix() { a { color: black; } } a { /* c */ color/**/: white; padding: 0 /*{}*/ 1px /*}*/ 2px; } node-autoprefixer-8.6.5+repack/test/cases/text-decoration.css000066400000000000000000000002721363606675700243570ustar00rootroot00000000000000.shorthand { text-decoration: overline double red; } .full { text-decoration-style: double; } .old { text-decoration: underline; } .global { text-decoration: unset; } node-autoprefixer-8.6.5+repack/test/cases/text-decoration.out.css000066400000000000000000000006041363606675700251640ustar00rootroot00000000000000.shorthand { -webkit-text-decoration: overline double red; -moz-text-decoration: overline double red; text-decoration: overline double red; } .full { -webkit-text-decoration-style: double; -moz-text-decoration-style: double; text-decoration-style: double; } .old { text-decoration: underline; } .global { text-decoration: unset; } node-autoprefixer-8.6.5+repack/test/cases/text-emphasis-position.css000066400000000000000000000003011363606675700256740ustar00rootroot00000000000000a { text-emphasis-position: over left; } em { text-emphasis-position: under right; } .reverse { text-emphasis-position: left over; } .wrong { text-emphasis-position: over; } node-autoprefixer-8.6.5+repack/test/cases/text-emphasis-position.out.css000066400000000000000000000006121363606675700265070ustar00rootroot00000000000000a { -webkit-text-emphasis-position: over; text-emphasis-position: over left; } em { -webkit-text-emphasis-position: under; text-emphasis-position: under right; } .reverse { -webkit-text-emphasis-position: over; text-emphasis-position: left over; } .wrong { -webkit-text-emphasis-position: over; text-emphasis-position: over; } node-autoprefixer-8.6.5+repack/test/cases/transition.css000066400000000000000000000010001363606675700234260ustar00rootroot00000000000000a { transition: color 200ms, transform 200ms; transform: rotate(10deg); } div { transition-property: filter; animation-name: rotating; } .good { transition-property: filter; transition-duration: 1s; } .good2 { transition-property: color, filter; transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); } .bad { /* safe with different node types */ transition-property: color, filter; transition-duration: 1s, 2s; } .revert { transition: 200ms transform; } node-autoprefixer-8.6.5+repack/test/cases/transition.out.css000066400000000000000000000042601363606675700242470ustar00rootroot00000000000000a { -webkit-transition: color 200ms, -webkit-transform 200ms; transition: color 200ms, -webkit-transform 200ms; -o-transition: color 200ms, -o-transform 200ms; transition: color 200ms, transform 200ms; transition: color 200ms, transform 200ms, -webkit-transform 200ms, -o-transform 200ms; -webkit-transform: rotate(10deg); -o-transform: rotate(10deg); transform: rotate(10deg); } div { -webkit-transition-property: -webkit-filter; transition-property: -webkit-filter; -o-transition-property: filter; transition-property: filter; transition-property: filter, -webkit-filter; -webkit-animation-name: rotating; -o-animation-name: rotating; animation-name: rotating; } .good { -webkit-transition-property: -webkit-filter; transition-property: -webkit-filter; -o-transition-property: filter; transition-property: filter; transition-property: filter, -webkit-filter; -webkit-transition-duration: 1s; -o-transition-duration: 1s; transition-duration: 1s; } .good2 { -webkit-transition-property: color, -webkit-filter; transition-property: color, -webkit-filter; -o-transition-property: color, filter; transition-property: color, filter; transition-property: color, filter, -webkit-filter; -webkit-transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); -o-transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); transition-timing-function: cubic-bezier(0.55, 0, 0.1, 1); } .bad { /* safe with different node types */ -webkit-transition-property: color, -webkit-filter; transition-property: color, -webkit-filter; -o-transition-property: color, filter; transition-property: color, filter; transition-property: color, filter, -webkit-filter; -webkit-transition-duration: 1s, 2s; -o-transition-duration: 1s, 2s; transition-duration: 1s, 2s; } .revert { -webkit-transition: 200ms -webkit-transform; transition: 200ms -webkit-transform; -o-transition: 200ms -o-transform; transition: 200ms transform; transition: 200ms transform, 200ms -webkit-transform, 200ms -o-transform; } node-autoprefixer-8.6.5+repack/test/cases/trim.css000066400000000000000000000002261363606675700222200ustar00rootroot00000000000000a { background: -webkit-linear-gradient(top, #f00 0%, #fff 100%); background: linear-gradient(to bottom, #f00 0%, #fff 100%); } node-autoprefixer-8.6.5+repack/test/cases/uncascade.css000066400000000000000000000004051363606675700231720ustar00rootroot00000000000000a { -webkit-transition: 1s; -moz-transition: 1s; transition: 1s } a { -moz-transition: 1s; -o-transition: 1s; transition: 1s } a { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px } node-autoprefixer-8.6.5+repack/test/cases/uncascade.out.css000066400000000000000000000002101363606675700237720ustar00rootroot00000000000000a { -moz-transition: 1s; transition: 1s } a { -moz-transition: 1s; transition: 1s } a { border-radius: 4px } node-autoprefixer-8.6.5+repack/test/cases/value-hack.css000066400000000000000000000005001363606675700232600ustar00rootroot00000000000000.not-hack { width: -webkit-calc(30% + 1px); width: calc(30% + 1px); display: -webkit-box; display: flex; transition: -webkit-filter 1s, filter 1s; } .not-hack2 { transition: -webkit-filter 1s; transition: filter 1s; } .hack { width: -webkit-calc(30% + 1px); display: -webkit-box; } node-autoprefixer-8.6.5+repack/test/cases/value-hack.out.css000066400000000000000000000003141363606675700240710ustar00rootroot00000000000000.not-hack { width: calc(30% + 1px); display: flex; transition: filter 1s; } .not-hack2 { transition: filter 1s; } .hack { width: -webkit-calc(30% + 1px); display: -webkit-box; } node-autoprefixer-8.6.5+repack/test/cases/values.css000066400000000000000000000002611363606675700225430ustar00rootroot00000000000000a { margin: calc(5% + 5px) calc(10% + 10px); background: linear-gradient(black, white), radial-gradient(white, black); content: " linear-gradient(black, white) "; } node-autoprefixer-8.6.5+repack/test/cases/values.out.css000066400000000000000000000006401363606675700233520ustar00rootroot00000000000000a { margin: -webkit-calc(5% + 5px) -webkit-calc(10% + 10px); margin: calc(5% + 5px) calc(10% + 10px); background: -webkit-linear-gradient(black, white), -webkit-radial-gradient(white, black); background: -o-linear-gradient(black, white), -o-radial-gradient(white, black); background: linear-gradient(black, white), radial-gradient(white, black); content: " linear-gradient(black, white) "; } node-autoprefixer-8.6.5+repack/test/cases/vendor-hack.css000066400000000000000000000002451363606675700234470ustar00rootroot00000000000000.a { -moz-transform: scale(.9999); transform: scale(.9999); } .b { -moz-transform: scale(.9999); } .c { transform: scale(1); -moz-transform: scale(2); } node-autoprefixer-8.6.5+repack/test/cases/vendor-hack.out.css000066400000000000000000000002051363606675700242510ustar00rootroot00000000000000.a { transform: scale(.9999); } .b { -moz-transform: scale(.9999); } .c { transform: scale(1); -moz-transform: scale(2); } node-autoprefixer-8.6.5+repack/test/cases/viewport.css000066400000000000000000000000471363606675700231250ustar00rootroot00000000000000@viewport { width: device-width; } node-autoprefixer-8.6.5+repack/test/cases/viewport.out.css000066400000000000000000000001221363606675700237250ustar00rootroot00000000000000@-ms-viewport { width: device-width; } @viewport { width: device-width; } node-autoprefixer-8.6.5+repack/test/cases/writing-mode.css000066400000000000000000000001741363606675700236540ustar00rootroot00000000000000.one { writing-mode: horizontal-tb; } .two { writing-mode: vertical-rl; } .three { writing-mode: vertical-lr; } node-autoprefixer-8.6.5+repack/test/cases/writing-mode.out.css000066400000000000000000000005561363606675700244660ustar00rootroot00000000000000.one { -webkit-writing-mode: horizontal-tb; -ms-writing-mode: lr-tb; writing-mode: horizontal-tb; } .two { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; } .three { -webkit-writing-mode: vertical-lr; -ms-writing-mode: tb-lr; writing-mode: vertical-lr; } node-autoprefixer-8.6.5+repack/test/declaration.test.js000066400000000000000000000073161363606675700232450ustar00rootroot00000000000000const Declaration = require('../lib/declaration'); const Prefixes = require('../lib/prefixes'); const parse = require('postcss').parse; let prefixes, tabsize; beforeEach(() => { prefixes = new Prefixes({ }, { }); tabsize = new Declaration('tab-size', ['-moz-', '-ms-'], prefixes); }); describe('otherPrefixes()', () => { it('checks values for other prefixes', () => { expect(tabsize.otherPrefixes('black', '-moz-')).toBeFalsy(); expect(tabsize.otherPrefixes('-moz-black', '-moz-')).toBeFalsy(); expect(tabsize.otherPrefixes('-dev-black', '-moz-')).toBeFalsy(); expect(tabsize.otherPrefixes('-ms-black', '-moz-')).toBeTruthy(); }); }); describe('needCascade()', () => { afterAll(() => { delete prefixes.options.cascade; }); it('returns true by default', () => { const css = parse('a {\n tab-size: 4 }'); expect(tabsize.needCascade(css.first.first)).toBeTruthy(); }); it('return false is disabled', () => { prefixes.options.cascade = false; const css = parse('a {\n tab-size: 4 }'); expect(tabsize.needCascade(css.first.first)).toBeFalsy(); }); it('returns false on declarations in one line', () => { const css = parse('a { tab-size: 4 } a {\n tab-size: 4 }'); expect(tabsize.needCascade(css.first.first)).toBeFalsy(); expect(tabsize.needCascade(css.last.first)).toBeTruthy(); }); }); describe('maxPrefixed()', () => { it('returns max prefix length', () => { const decl = parse('a { tab-size: 4 }').first.first; const list = ['-webkit-', '-webkit- old', '-moz-']; expect(tabsize.maxPrefixed(list, decl)).toEqual(8); }); }); describe('calcBefore()', () => { it('returns before with cascade', () => { const decl = parse('a { tab-size: 4 }').first.first; const list = ['-webkit-', '-moz- old', '-moz-']; expect(tabsize.calcBefore(list, decl, '-moz- old')).toEqual(' '); }); }); describe('restoreBefore()', () => { it('removes cascade', () => { const css = parse('a {\n' + ' -moz-tab-size: 4;\n' + ' tab-size: 4 }'); const decl = css.first.nodes[1]; tabsize.restoreBefore(decl); expect(decl.raws.before).toEqual('\n '); }); }); describe('prefixed()', () => { it('returns prefixed property', () => { const css = parse('a { tab-size: 2 }'); const decl = css.first.first; expect(tabsize.prefixed(decl.prop, '-moz-')).toEqual('-moz-tab-size'); }); }); describe('normalize()', () => { it('returns property name by specification', () => { expect(tabsize.normalize('tab-size')).toEqual('tab-size'); }); }); describe('process()', () => { it('adds prefixes', () => { const css = parse('a { -moz-tab-size: 2; tab-size: 2 }'); tabsize.process(css.first.nodes[1]); expect(css.toString()).toEqual( 'a { -moz-tab-size: 2; -ms-tab-size: 2; tab-size: 2 }'); }); it('checks parents prefix', () => { const css = parse('::-moz-selection a { tab-size: 2 }'); tabsize.process(css.first.first); expect(css.toString()).toEqual( '::-moz-selection a { -moz-tab-size: 2; tab-size: 2 }'); }); it('checks value for prefixes', () => { const css = parse('a { tab-size: -ms-calc(2) }'); tabsize.process(css.first.first); expect(css.toString()).toEqual( 'a { -ms-tab-size: -ms-calc(2); tab-size: -ms-calc(2) }'); }); }); describe('old()', () => { it('returns list of prefixeds', () => { expect(tabsize.old('tab-size', '-moz-')).toEqual(['-moz-tab-size']); }); }); node-autoprefixer-8.6.5+repack/test/info.test.js000066400000000000000000000062751363606675700217160ustar00rootroot00000000000000const browserslist = require('browserslist'); const Browsers = require('../lib/browsers'); const Prefixes = require('../lib/prefixes'); const info = require('../lib/info'); const data = { browsers: require('caniuse-lite').agents, prefixes: { 'a': { browsers: ['firefox 21', 'firefox 20', 'chrome 30'], transition: true }, 'b': { browsers: ['ie 6', 'firefox 20'], props: ['a', '*'] }, 'c': { browsers: ['firefox 21'], props: ['c'] }, 'd': { browsers: ['firefox 21'], selector: true }, 'grid': { browsers: ['ie 6'], props: ['display'] }, 'grid-row': { browsers: ['ie 6'] }, '@keyframes': { browsers: ['firefox 21'] }, 'transition': { browsers: ['firefox 21'] } } }; it('returns selected browsers and prefixes', () => { const browsers = new Browsers(data.browsers, ['chrome 30', 'firefox 21', 'firefox 20', 'ie 6']); const prefixes = new Prefixes(data.prefixes, browsers); const coverage = browserslist.coverage( ['chrome 30', 'firefox 21', 'firefox 20', 'ie 6']); const round = Math.round(coverage * 100) / 100.0; expect(info(prefixes)).toEqual( 'Browsers:\n' + ' Chrome: 30\n' + ' Firefox: 21, 20\n' + ' IE: 6\n' + '\n' + `These browsers account for ${round}% ` + 'of all users globally\n' + '\n' + 'At-Rules:\n' + ' @keyframes: moz\n' + '\n' + 'Selectors:\n' + ' d: moz\n' + '\n' + 'Properties:\n' + ' a: webkit, moz\n' + ' grid-row *: ms\n' + ' transition: moz\n' + '\n' + 'Values:\n' + ' b: moz, ms\n' + ' c: moz\n' + ' grid *: ms\n' + '\n' + '* - Prefixes will be added only on grid: true option.\n' ); }); it('doesn\'t show transitions unless they are necessary', () => { const browsers = new Browsers(data.browsers, ['chrome 30', 'firefox 20']); const prefixes = new Prefixes(data.prefixes, browsers); const coverage = browserslist.coverage( ['chrome 30', 'firefox 20']); const round = Math.round(coverage * 100) / 100.0; expect(info(prefixes)).toEqual( 'Browsers:\n' + ' Chrome: 30\n' + ' Firefox: 20\n' + '\n' + `These browsers account for ${ round }% ` + 'of all users globally\n' + '\n' + 'Properties:\n' + ' a: webkit, moz\n' + '\n' + 'Values:\n' + ' b: moz\n' ); }); it('returns string for empty prefixes', () => { const browsers = new Browsers(data.browsers, ['ie 7']); const prefixes = new Prefixes(data.prefixes, browsers); expect(info(prefixes)).toMatch(/remove Autoprefixer/); }); it('returns string for empty browsers', () => { const browsers = new Browsers(data.browsers, []); const prefixes = new Prefixes(data.prefixes, browsers); expect(info(prefixes)).toEqual('No browsers selected'); }); node-autoprefixer-8.6.5+repack/test/old-selector.test.js000066400000000000000000000025061363606675700233500ustar00rootroot00000000000000const Selector = require('../lib/selector'); const parse = require('postcss').parse; const selector = new Selector('::selection', ['-moz-', '-ms-']); const old = selector.old('-moz-'); describe('isHack()', () => { it('returns true on last rule', () => { const css = parse('::selection {} ::-moz-selection {}'); expect(old.isHack(css.last)).toBeTruthy(); }); it('stops on another type', () => { const css = parse('::-moz-selection {} ' + '@keyframes anim {} ::selection {}'); expect(old.isHack(css.first)).toBeTruthy(); }); it('stops on another selector', () => { const css = parse('::-moz-selection {} a {} ::selection {}'); expect(old.isHack(css.first)).toBeTruthy(); }); it('finds unprefixed selector', () => { const css = parse('::-moz-selection {} ' + '::-o-selection {} ::selection {}'); expect(old.isHack(css.first)).toBeFalsy(); }); }); describe('check()', () => { it('finds old selector', () => { const css = parse('body::-moz-selection {} body::selection {}'); expect(old.check(css.first)).toBeTruthy(); }); it('finds right', () => { const css = parse('body:::-moz-selection {}'); expect(old.check(css.first)).toBeFalsy(); }); }); node-autoprefixer-8.6.5+repack/test/old-value.test.js000066400000000000000000000007321363606675700226430ustar00rootroot00000000000000const OldValue = require('../lib/old-value'); describe('.check()', () => { it('checks value in string', () => { const old = new OldValue('calc', '-o-calc'); expect(old.check('1px -o-calc(1px)')).toBeTruthy(); expect(old.check('1px calc(1px)')).toBeFalsy(); }); it('allows custom checks', () => { const old = new OldValue('calc', '-o-calc', 'calc', /calc/); expect(old.check('1px calc(1px)')).toBeTruthy(); }); }); node-autoprefixer-8.6.5+repack/test/prefixer.test.js000066400000000000000000000053621363606675700226030ustar00rootroot00000000000000const Prefixer = require('../lib/prefixer'); const parse = require('postcss').parse; let prefix, css; beforeEach(() => { prefix = new Prefixer(); css = parse('@-ms-keyframes a { to { } } ' + ':-moz-full-screen { } a { } ' + '@-dev-keyframes s { to { } }'); }); describe('.hack()', () => { it('registers hacks for subclasses', () => { class A extends Prefixer {} class Hack extends A { static names = ['a', 'b']; } A.hack(Hack); expect(A.hacks).toEqual({ a: Hack, b: Hack }); expect(Prefixer.hacks).not.toBeDefined(); }); }); describe('.load()', () => { it('loads hacks', () => { class A extends Prefixer { klass = 'a'; } class Hack extends A { klass = 'hack'; } A.hacks = { hacked: Hack }; expect(A.load('hacked').klass).toEqual('hack'); expect(A.load('a').klass).toEqual('a'); }); }); describe('.clone()', () => { it('cleans custom properties', () => { const rule = css.first.first; rule._autoprefixerPrefix = '-ms-'; rule._autoprefixerValues = { '-ms-': 1 }; const cloned = Prefixer.clone(rule, { selector: 'from' }); expect(cloned.selector).toEqual('from'); expect(cloned._autoprefixerPrefix).not.toBeDefined(); expect(cloned._autoprefixerValues).not.toBeDefined(); }); it('fixed declaration between', () => { const parsed = parse('a { color : black }'); const cloned = Prefixer.clone(parsed.first.first); expect(cloned.raws.between).toEqual(' : '); }); }); describe('parentPrefix', () => { it('works with root node', () => { expect(prefix.parentPrefix(css)).toBeFalsy(); }); it('finds in at-rules', () => { expect(prefix.parentPrefix(css.first)).toEqual('-ms-'); }); it('finds in selectors', () => { expect(prefix.parentPrefix(css.nodes[1])).toEqual('-moz-'); }); it('finds in parents', () => { let decl = css.first.first; expect(prefix.parentPrefix(decl)).toEqual('-ms-'); expect(prefix.parentPrefix(css.nodes[2])).toBeFalsy(); }); it('caches prefix', () => { prefix.parentPrefix(css.first); expect(css.first._autoprefixerPrefix).toEqual('-ms-'); css.first._autoprefixerPrefix = false; expect(prefix.parentPrefix(css.first)).toBeFalsy(); }); it('finds only browsers prefixes', () => { expect(prefix.parentPrefix(css.nodes[2])).toBeFalsy(); }); it('works with selector contained --', () => { const parsed = parse(':--a { color: black }'); expect(prefix.parentPrefix(parsed.first.first)).toBeFalsy(); }); }); node-autoprefixer-8.6.5+repack/test/prefixes.test.js000066400000000000000000000137411363606675700226040ustar00rootroot00000000000000const Declaration = require('../lib/declaration'); const Prefixes = require('../lib/prefixes'); const Browsers = require('../lib/browsers'); const Supports = require('../lib/supports'); const Selector = require('../lib/selector'); const OldValue = require('../lib/old-value'); const Value = require('../lib/value'); const parse = require('postcss').parse; const data = { browsers: require('caniuse-lite').agents, prefixes: { a: { browsers: ['firefox 21', 'firefox 20 old', 'chrome 30', 'ie 6'] }, b: { browsers: ['ie 7 new', 'firefox 20'], mistakes: ['-webkit-'], props: ['a', '*'] }, c: { browsers: ['ie 7', 'firefox 20'], selector: true } } }; const empty = new Prefixes({ }, new Browsers(data.browsers, [])); const fill = new Prefixes( data.prefixes, new Browsers(data.browsers, ['firefox 21', 'ie 7']) ); const cSel = new Selector('c', ['-ms-'], fill); const bVal = new Value('b', ['-ms- new'], fill); const aProp = new Declaration('a', ['-moz-'], fill); aProp.values = [bVal]; function old(prefixed) { const name = prefixed.replace(/-[^-]+-( old)?/, ''); return new OldValue(name, prefixed); } describe('select()', () => { it('selects necessary prefixes', () => { expect(fill.select(data.prefixes)).toEqual({ add: { a: ['-moz-'], b: ['-ms- new'], c: ['-ms-'] }, remove: { a: ['-webkit-', '-ms-', '-moz- old'], b: ['-ms-', '-moz-', '-webkit-'], c: ['-moz-'] } }); }); }); describe('preprocess()', () => { it('preprocesses prefixes add data', () => { expect(fill.add).toEqual({ 'selectors': [cSel], 'a': aProp, '*': { values: [bVal] }, '@supports': new Supports(Prefixes, fill) }); }); it('preprocesses prefixes remove data', () => { expect(JSON.stringify(fill.remove)).toEqual(JSON.stringify({ 'selectors': [cSel.old('-moz-')], '-webkit-a': { remove: true }, '-ms-a': { remove: true }, '-moz- olda': { remove: true }, 'a': { values: [old('-ms-b'), old('-moz-b'), old('-webkit-b')] }, '*': { values: [old('-ms-b'), old('-moz-b'), old('-webkit-b')] } })); }); }); describe('.cleaner()', () => { it('returns itself is no browsers are selected', () => { expect(empty.cleaner()).toEqual(empty); }); it('returns Prefixes with empty browsers', () => { const cleaner = new Prefixes(data.prefixes, new Browsers(data.browsers, [])); expect(Object.keys(fill.cleaner().add).length).toEqual(2); expect(fill.cleaner().remove).toEqual(cleaner.remove); }); }); describe('.decl()', () => { it('loads declarations by property', () => { expect(empty.decl('a')).toEqual(new Declaration('a')); }); it('caches values', () => { expect(empty.decl('a')).toBe(empty.decl('a')); }); }); describe('.unprefixed()', () => { it('returns unprefixed version', () => { expect(empty.unprefixed('-moz-a')).toEqual('a'); }); }); describe('.prefixed()', () => { it('adds prefix', () => { expect(empty.prefixed('a', '-ms-')).toEqual('-ms-a'); }); it('changes prefix', () => { expect(empty.prefixed('a', '-ms-')).toEqual('-ms-a'); }); }); describe('values()', () => { it('returns values for this and all properties', () => { expect(fill.values('add', 'a')).toEqual([bVal]); expect(fill.values('remove', 'a')).toEqual([ old('-ms-b'), old('-moz-b'), old('-webkit-b') ]); }); }); describe('group()', () => { describe('down()', () => { it('checks prefix group', () => { const css = parse('a { -ms-a: 1; -o-a: 1; a: 1; b: 2 }'); const props = []; empty.group(css.first.first).down(i => props.push(i.prop)); expect(props).toEqual(['-o-a', 'a']); }); it('checks prefix groups', () => { const css = parse('a { -ms-a: 1; -o-a: 1; ' + 'a: -o-calc(1); a: 1; a: 2 }'); const props = []; empty.group(css.first.first).down(i => props.push(i.prop)); expect(props).toEqual(['-o-a', 'a', 'a']); }); it('returns check decls inside group', () => { const css = parse('a { -moz-a: 1; -ms-a: 1; -o-a: 1; a: 1 }'); const decl = css.first.first; expect(empty.group(decl).down(i => i.prop === '-o-a')).toBeTruthy(); expect(empty.group(decl).down(i => i.prop === '-o-b')).toBeFalsy(); }); }); describe('up()', () => { it('checks prefix group', () => { const css = parse('a { b: 2; -ms-a: 1; -o-a: 1; a: 1 }'); const props = []; empty.group(css.first.nodes[3]).up(i => props.push(i.prop)); expect(props).toEqual(['-o-a', '-ms-a']); }); it('checks prefix groups', () => { const css = parse('a { a: 2; -ms-a: 1; ' + '-o-a: 1; a: -o-calc(1); a: 1 }'); const props = []; empty.group(css.first.nodes[4]).up(i => props.push(i.prop)); expect(props).toEqual(['a', '-o-a', '-ms-a']); }); it('returns check decls inside group', () => { const css = parse('a { -moz-a: 1; -ms-a: 1; -o-a: 1; a: 1 }'); const decl = css.first.nodes[3]; expect(empty.group(decl).up(i => i.prop === '-ms-a')).toBeTruthy(); expect(empty.group(decl).up(i => i.prop === '-ms-b')).toBeFalsy(); }); }); }); node-autoprefixer-8.6.5+repack/test/selector.test.js000066400000000000000000000072131363606675700225740ustar00rootroot00000000000000const Selector = require('../lib/selector'); const parse = require('postcss').parse; let selector; beforeEach(() => { selector = new Selector('::selection', ['-moz-', '-ms-']); }); describe('prefixed()', () => { it('adds prefix after non-letters symbols', () => { expect(selector.prefixed('-moz-')).toEqual('::-moz-selection'); }); }); describe('regexp()', () => { it('creates regexp for prefix', () => { const regexp = selector.regexp('-moz-'); expect(regexp.test('::-moz-selection')).toBeTruthy(); expect(regexp.test('::selection')).toBeFalsy(); }); it('creates regexp without prefix', () => { const regexp = selector.regexp(); expect(regexp.test('::-moz-selection')).toBeFalsy(); expect(regexp.test('::selection')).toBeTruthy(); }); }); describe('check()', () => { it('shecks rule selectors', () => { const css = parse('body .selection {}, ' + ':::selection {}, body ::selection {}'); expect(selector.check(css.nodes[0])).toBeFalsy(); expect(selector.check(css.nodes[1])).toBeFalsy(); expect(selector.check(css.nodes[2])).toBeTruthy(); }); }); describe('prefixeds()', () => { it('returns all avaiable prefixed selectors', () => { const css = parse('::selection {}'); expect(selector.prefixeds(css.first)).toEqual({ '-webkit-': '::-webkit-selection', '-moz-': '::-moz-selection', '-ms-': '::-ms-selection', '-o-': '::-o-selection' }); }); }); describe('already()', () => { let prefixeds; beforeEach(() => { const css = parse('::selection {}'); prefixeds = selector.prefixeds(css.first); }); it('returns false on first element', () => { const css = parse('::selection {}'); expect(selector.already(css.first, prefixeds, '-moz-')) .toBeFalsy(); }); it('stops on another type', () => { const css = parse('::-moz-selection {} ' + '@keyframes anim {} ::selection {}'); expect(selector.already(css.nodes[2], prefixeds, '-moz-')) .toBeFalsy(); }); it('stops on another selector', () => { const css = parse('::-moz-selection {} a {} ::selection {}'); expect(selector.already(css.nodes[2], prefixeds, '-moz-')) .toBeFalsy(); }); it('finds prefixed even if unknown prefix is between', () => { const css = parse('::-moz-selection {} ' + '::-o-selection {} ::selection {}'); expect(selector.already(css.nodes[2], prefixeds, '-moz-')) .toBeTruthy(); }); }); describe('replace()', () => { it('adds prefix to selectors', () => { expect( selector.replace('body ::selection, input::selection, a', '-ms-') ).toEqual('body ::-ms-selection, input::-ms-selection, a'); }); }); describe('process()', () => { it('adds prefixes', () => { const css = parse('b ::-moz-selection{} b ::selection{}'); selector.process(css.nodes[1]); expect(css.toString()).toEqual( 'b ::-moz-selection{} b ::-ms-selection{} b ::selection{}'); }); it('checks parents prefix', () => { const css = parse('@-moz-page{ ::selection{} }'); selector.process(css.first.first); expect(css.toString()).toEqual( '@-moz-page{ ::-moz-selection{} ::selection{} }'); }); }); describe('old()', () => { it('returns object to find old selector', () => { const old = selector.old('-moz-'); expect(old.unprefixed).toEqual('::selection'); expect(old.prefix).toEqual('-moz-'); }); }); node-autoprefixer-8.6.5+repack/test/supports.test.js000066400000000000000000000111351363606675700226510ustar00rootroot00000000000000const Prefixes = require('../lib/prefixes'); const Browsers = require('../lib/browsers'); const Supports = require('../lib/supports'); const brackets = require('../lib/brackets'); const browsers = new Browsers({ firefox: { prefix: 'moz', versions: ['firefox 22'] } }, [ 'firefox 22', 'firefox 21' ]); const prefixes = new Prefixes({ a: { browsers: ['firefox 22'] }, b: { browsers: ['firefox 22'], props: 'c' } }, browsers); const supports = new Supports(Prefixes, prefixes); function rm(str) { const ast = supports.normalize(brackets.parse(str)); return brackets.stringify(supports.remove(ast, str)); } function clean(str) { const ast = supports.normalize(brackets.parse(str)); return brackets.stringify(supports.cleanBrackets(ast)); } describe('parse()', () => { it('splits property name and value', () => { expect(supports.parse('color:black')) .toEqual(['color', 'black']); }); it('cleans spaces', () => { expect(supports.parse(' color : black ')) .toEqual(['color', 'black']); }); it('parses everything', () => { expect(supports.parse('color')).toEqual(['color', '']); }); }); describe('virtual()', () => { it('returns virtual rule', () => { const decl = supports.virtual('color: black'); expect(decl.type).toEqual('rule'); expect(decl.toString()).toEqual('a{color: black}'); }); it('works with broken CSS', () => { const decl = supports.virtual('color black'); expect(decl.type).toEqual('rule'); }); }); describe('prefixed()', () => { it('returns decls with prefixed property', () => { const decls = supports.prefixed('a: one'); expect(decls.length).toEqual(2); expect(decls[0].toString()).toEqual('-moz-a: one'); expect(decls[1].toString()).toEqual('a: one'); }); it('returns decls with prefixed value', () => { const decls = supports.prefixed('c: b'); expect(decls.length).toEqual(2); expect(decls[0].toString()).toEqual('c: -moz-b'); expect(decls[1].toString()).toEqual('c: b'); }); }); describe('normalize()', () => { it('reduces empty string', () => { expect(supports.normalize([['', ['a'], '']])) .toEqual([[['a']]]); }); it('reduces declaration to string', () => { expect(supports.normalize(['a: b', ['1']])) .toEqual(['a: b(1)']); }); it('reduces wrapped declaration to string', () => { expect(supports.normalize(['', ['a: b', ['1']], ''])) .toEqual([['a: b(1)']]); }); }); describe('remove()', () => { it('remove prefixed properties', () => { expect(rm('(-moz-a: 1) or (a: 1)')).toEqual('(a: 1)'); }); it('remove prefixed properties inside', () => { expect(rm('(((-moz-a: 1) or (a: 1)))')).toEqual('(((a: 1)))'); }); it('remove prefixed values', () => { expect(rm('(c: -moz-b) or (c: -b-)')).toEqual('(c: -b-)'); }); it('keeps and-conditions', () => { expect(rm('(-moz-a: 1) and (a: 1)')) .toEqual('(-moz-a: 1) and (a: 1)'); }); it('keeps not-conditions', () => { expect(rm('not (-moz-a: 1) or (a: 1)')) .toEqual('not (-moz-a: 1) or (a: 1)'); }); it('keeps hacks', () => { expect(rm('(-moz-a: 1) or (b: 2)')) .toEqual('(-moz-a: 1) or (b: 2)'); }); }); describe('prefixer()', () => { it('uses only browsers with @supports support', () => { expect(supports.prefixer().browsers.selected) .toEqual(['firefox 22']); }); }); describe('cleanBrackets()', () => { it('normalize brackets', () => { expect(clean('((a: 1))')).toEqual('(a: 1)'); }); it('normalize brackets recursively', () => { expect(clean('(((a: 1) or ((b: 2))))')) .toEqual('((a: 1) or (b: 2))'); }); }); describe('process()', () => { it('adds params with prefixed value', () => { const rule = { params: '(c: b)' }; supports.process(rule); expect(rule.params).toEqual('((c: -moz-b) or (c: b))'); }); it('adds params with prefixed function', () => { const rule = { params: '(c: b(1))' }; supports.process(rule); expect(rule.params).toEqual('((c: -moz-b(1)) or (c: b(1)))'); }); it('replaces params with prefixed property', () => { const rule = { params: '(color black) and not (a: 1)' }; supports.process(rule); expect(rule.params) .toEqual('(color black) and not ((-moz-a: 1) or (a: 1))'); }); }); node-autoprefixer-8.6.5+repack/test/utils.test.js000066400000000000000000000053451363606675700221200ustar00rootroot00000000000000const utils = require('../lib/utils'); describe('.error()', () => { it('raises an error', () => { expect(() => { utils.error('A'); }).toThrow('A'); }); it('marks an error', () => { let error = null; try { utils.error('A'); } catch (e) { error = e; } expect(error.autoprefixer).toBeTruthy(); }); }); describe('.uniq()', () => { it('filters doubles in array', () => { expect(utils.uniq(['1', '1', '2', '3', '3'])) .toEqual(['1', '2', '3']); }); }); describe('.removeNote()', () => { it('removes note', () => { expect(utils.removeNote('-webkit- note')).toEqual('-webkit-'); expect(utils.removeNote('-webkit-')).toEqual('-webkit-'); }); }); describe('.escapeRegexp()', () => { it('escapes RegExp symbols', () => { const string = utils.escapeRegexp('^[()\\]'); expect(string).toEqual('\\^\\[\\(\\)\\\\\\]'); }); }); describe('.regexp()', () => { it('generates RegExp that finds tokens in CSS values', () => { const regexp = utils.regexp('foo'); const test = string => string.match(regexp) !== null; expect(test('foo')).toBeTruthy(); expect(test('Foo')).toBeTruthy(); expect(test('one, foo, two')).toBeTruthy(); expect(test('one(),foo(),two()')).toBeTruthy(); expect('foo(), a, foo'.replace(regexp, '$1b$2')) .toEqual('bfoo(), a, bfoo'); expect(test('foob')).toBeFalsy(); expect(test('(foo)')).toBeFalsy(); expect(test('-a-foo')).toBeFalsy(); }); it('escapes string if needed', () => { let regexp = utils.regexp('(a|b)'); const test = string => string.match(regexp) !== null; expect(test('a')).toBeFalsy(); expect(test('(a|b)')).toBeTruthy(); regexp = utils.regexp('(a|b)', false); expect(test('a')).toBeTruthy(); expect(test('b')).toBeTruthy(); }); }); describe('.editList()', () => { it('does save without changes', () => { const list = utils.editList('a,\nb, c', parsed => parsed); expect(list).toEqual('a,\nb, c'); }); it('changes list', () => { const list = utils.editList('a, b', (parsed, edit) => { expect(parsed).toEqual(['a', 'b']); expect(edit).toEqual([]); return ['1', '2']; }); expect(list).toEqual('1, 2'); }); it('saves comma', () => { const list = utils.editList('a,\nb', () => ['1', '2']); expect(list).toEqual('1,\n2'); }); it('parse one value', () => { const list = utils.editList('1', (parsed) => [parsed[0], '2']); expect(list).toEqual('1, 2'); }); }); node-autoprefixer-8.6.5+repack/test/value.test.js000066400000000000000000000071331363606675700220710ustar00rootroot00000000000000const OldValue = require('../lib/old-value'); const Value = require('../lib//value'); const parse = require('postcss').parse; const Prefixes = require('../lib/prefixes'); const prefixes = new Prefixes(); let calc; beforeEach(() => { calc = new Value('calc', ['-moz-', '-ms-']); }); describe('.save()', () => { it('clones declaration', () => { const css = parse('a { prop: v }'); const width = css.first.first; width._autoprefixerValues = { '-ms-': '-ms-v' }; Value.save(prefixes, width); expect(css.toString()).toEqual('a { prop: -ms-v; prop: v }'); }); it('updates declaration with prefix', () => { const css = parse('a { -ms-prop: v }'); const width = css.first.first; width._autoprefixerValues = { '-ms-': '-ms-v' }; Value.save(prefixes, width); expect(css.toString()).toEqual('a { -ms-prop: -ms-v }'); }); it('ignores on another prefix property', () => { const css = parse('a { -ms-prop: v; prop: v }'); const width = css.first.last; width._autoprefixerValues = { '-ms-': '-ms-v' }; Value.save(prefixes, width); expect(css.toString()).toEqual('a { -ms-prop: v; prop: v }'); }); it('ignores prefixes without changes', () => { const css = parse('a { prop: v }'); const width = css.first.first; width._autoprefixerValues = { '-ms-': 'v' }; Value.save(prefixes, width); expect(css.toString()).toEqual('a { prop: v }'); }); }); describe('check()', () => { it('checks value in string', () => { const css = parse('a { 0: calc(1px + 1em); ' + '1: 1px calc(1px + 1em); ' + '2: (calc(1px + 1em)); ' + '3: -ms-calc; ' + '4: calced; }'); expect(calc.check(css.first.nodes[0])).toBeTruthy(); expect(calc.check(css.first.nodes[1])).toBeTruthy(); expect(calc.check(css.first.nodes[2])).toBeTruthy(); expect(calc.check(css.first.nodes[3])).toBeFalsy(); expect(calc.check(css.first.nodes[4])).toBeFalsy(); }); }); describe('old()', () => { it('check prefixed value', () => { expect(calc.old('-ms-')).toEqual(new OldValue('calc', '-ms-calc')); }); }); describe('replace()', () => { it('adds prefix to value', () => { expect(calc.replace('1px calc(1em)', '-ms-')) .toEqual('1px -ms-calc(1em)'); expect(calc.replace('1px,calc(1em)', '-ms-')) .toEqual('1px,-ms-calc(1em)'); }); }); describe('process()', () => { it('adds prefixes', () => { const css = parse('a { width: calc(1em) calc(1%) }'); const width = css.first.first; calc.process(width); expect(width._autoprefixerValues).toEqual({ '-moz-': '-moz-calc(1em) -moz-calc(1%)', '-ms-': '-ms-calc(1em) -ms-calc(1%)' }); }); it('checks parents prefix', () => { const css = parse('::-moz-fullscreen a { width: calc(1%) }'); const width = css.first.first; calc.process(width); expect(width._autoprefixerValues).toEqual({ '-moz-': '-moz-calc(1%)' }); }); it('checks property prefix', () => { const css = parse('a { -moz-width: calc(1%); -o-width: calc(1%) }'); const decls = css.first.nodes; calc.process(decls[0]); expect(decls[0]._autoprefixerValues).toEqual({ '-moz-': '-moz-calc(1%)' }); calc.process(decls[1]); expect(decls[1]._autoprefixerValues).not.toBeDefined(); }); }); node-autoprefixer-8.6.5+repack/yarn.lock000066400000000000000000010061451363606675700203100ustar00rootroot00000000000000# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 "@babel/code-frame@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" dependencies: "@babel/highlight" "7.0.0-beta.44" "@babel/code-frame@^7.0.0-beta.35": version "7.0.0-beta.46" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.46.tgz#e0d002100805daab1461c0fcb32a07e304f3a4f4" dependencies: "@babel/highlight" "7.0.0-beta.46" "@babel/generator@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" dependencies: "@babel/types" "7.0.0-beta.44" jsesc "^2.5.1" lodash "^4.2.0" source-map "^0.5.0" trim-right "^1.0.1" "@babel/helper-function-name@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" dependencies: "@babel/helper-get-function-arity" "7.0.0-beta.44" "@babel/template" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" dependencies: "@babel/types" "7.0.0-beta.44" "@babel/helper-split-export-declaration@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" dependencies: "@babel/types" "7.0.0-beta.44" "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" "@babel/highlight@7.0.0-beta.46": version "7.0.0-beta.46" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.46.tgz#c553c51e65f572bdedd6eff66fc0bb563016645e" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" dependencies: "@babel/code-frame" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" babylon "7.0.0-beta.44" lodash "^4.2.0" "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" dependencies: "@babel/code-frame" "7.0.0-beta.44" "@babel/generator" "7.0.0-beta.44" "@babel/helper-function-name" "7.0.0-beta.44" "@babel/helper-split-export-declaration" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" babylon "7.0.0-beta.44" debug "^3.1.0" globals "^11.1.0" invariant "^2.2.0" lodash "^4.2.0" "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" dependencies: esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^2.0.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" dependencies: call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" "@samverschueren/stream-to-observable@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" dependencies: any-observable "^0.3.0" "@webassemblyjs/ast@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.4.3.tgz#3b3f6fced944d8660273347533e6d4d315b5934a" dependencies: "@webassemblyjs/helper-wasm-bytecode" "1.4.3" "@webassemblyjs/wast-parser" "1.4.3" debug "^3.1.0" webassemblyjs "1.4.3" "@webassemblyjs/floating-point-hex-parser@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz#f5aee4c376a717c74264d7bacada981e7e44faad" "@webassemblyjs/helper-buffer@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz#0434b55958519bf503697d3824857b1dea80b729" dependencies: debug "^3.1.0" "@webassemblyjs/helper-code-frame@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz#f1349ca3e01a8e29ee2098c770773ef97af43641" dependencies: "@webassemblyjs/wast-printer" "1.4.3" "@webassemblyjs/helper-fsm@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz#65a921db48fb43e868f17b27497870bdcae22b79" "@webassemblyjs/helper-wasm-bytecode@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz#0e5b4b5418e33f8a26e940b7809862828c3721a5" "@webassemblyjs/helper-wasm-section@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz#9ceedd53a3f152c3412e072887ade668d0b1acbf" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/helper-buffer" "1.4.3" "@webassemblyjs/helper-wasm-bytecode" "1.4.3" "@webassemblyjs/wasm-gen" "1.4.3" debug "^3.1.0" "@webassemblyjs/leb128@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.4.3.tgz#5a5e5949dbb5adfe3ae95664d0439927ac557fb8" dependencies: leb "^0.3.0" "@webassemblyjs/validation@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/validation/-/validation-1.4.3.tgz#9e66c9b3079d7bbcf2070c1bf52a54af2a09aac9" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/wasm-edit@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz#87febd565e0ffb5ae25f6495bb3958d17aa0a779" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/helper-buffer" "1.4.3" "@webassemblyjs/helper-wasm-bytecode" "1.4.3" "@webassemblyjs/helper-wasm-section" "1.4.3" "@webassemblyjs/wasm-gen" "1.4.3" "@webassemblyjs/wasm-opt" "1.4.3" "@webassemblyjs/wasm-parser" "1.4.3" "@webassemblyjs/wast-printer" "1.4.3" debug "^3.1.0" "@webassemblyjs/wasm-gen@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz#8553164d0154a6be8f74d653d7ab355f73240aa4" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/helper-wasm-bytecode" "1.4.3" "@webassemblyjs/leb128" "1.4.3" "@webassemblyjs/wasm-opt@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz#26c7a23bfb136aa405b1d3410e63408ec60894b8" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/helper-buffer" "1.4.3" "@webassemblyjs/wasm-gen" "1.4.3" "@webassemblyjs/wasm-parser" "1.4.3" debug "^3.1.0" "@webassemblyjs/wasm-parser@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz#7ddd3e408f8542647ed612019cfb780830993698" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/helper-wasm-bytecode" "1.4.3" "@webassemblyjs/leb128" "1.4.3" "@webassemblyjs/wasm-parser" "1.4.3" webassemblyjs "1.4.3" "@webassemblyjs/wast-parser@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz#3250402e2c5ed53dbe2233c9de1fe1f9f0d51745" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/floating-point-hex-parser" "1.4.3" "@webassemblyjs/helper-code-frame" "1.4.3" "@webassemblyjs/helper-fsm" "1.4.3" long "^3.2.0" webassemblyjs "1.4.3" "@webassemblyjs/wast-printer@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz#3d59aa8d0252d6814a3ef4e6d2a34c9ded3904e0" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/wast-parser" "1.4.3" long "^3.2.0" JSONStream@^1.0.3: version "1.3.2" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.2.tgz#c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea" dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" abab@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" accepts@~1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: mime-types "~2.1.18" negotiator "0.6.1" acorn-dynamic-import@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" dependencies: acorn "^5.0.0" acorn-globals@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" dependencies: acorn "^5.0.0" acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" acorn-node@^1.2.0, acorn-node@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.3.0.tgz#5f86d73346743810ef1269b901dbcbded020861b" dependencies: acorn "^5.4.1" xtend "^4.0.1" acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" acorn@^5.0.0, acorn@^5.3.0, acorn@^5.4.1, acorn@^5.5.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: co "^4.6.0" fast-deep-equal "^1.0.0" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" ajv@^6.1.0: version "6.5.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.0.tgz#4c8affdf80887d8f132c9c52ab8a2dc4d0b7b24c" dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" uri-js "^4.2.1" align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" dependencies: kind-of "^3.0.2" longest "^1.0.1" repeat-string "^1.5.2" alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" ansi-colors@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" dependencies: ansi-wrap "^0.1.0" ansi-escapes@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-escapes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-gray@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" dependencies: ansi-wrap "0.1.0" ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" ansi-wrap@0.1.0, ansi-wrap@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" app-root-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" append-transform@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" dependencies: default-require-extensions "^1.0.0" aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" are-we-there-yet@~1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" arr-diff@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" dependencies: arr-flatten "^1.0.1" arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" assert@^1.1.1, assert@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" dependencies: util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" astw@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/astw/-/astw-2.2.0.tgz#7bd41784d32493987aeb239b6b4e1c57a873b917" dependencies: acorn "^4.0.3" async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" atob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.1.tgz#ae2d5a729477f289d60dd7f96a6314a22dd6c22a" autoprefixer@^6.3.1: version "6.7.7" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" dependencies: browserslist "^1.7.6" caniuse-db "^1.0.30000634" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^5.2.16" postcss-value-parser "^3.2.3" aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" aws4@^1.6.0: version "1.7.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: chalk "^1.1.3" esutils "^2.0.2" js-tokens "^3.0.2" babel-core@^6.0.0, babel-core@^6.26.0, babel-core@^6.26.3: version "6.26.3" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" babel-helpers "^6.24.1" babel-messages "^6.23.0" babel-register "^6.26.0" babel-runtime "^6.26.0" babel-template "^6.26.0" babel-traverse "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" convert-source-map "^1.5.1" debug "^2.6.9" json5 "^0.5.1" lodash "^4.17.4" minimatch "^3.0.4" path-is-absolute "^1.0.1" private "^0.1.8" slash "^1.0.0" source-map "^0.5.7" babel-eslint@^8.2.3: version "8.2.3" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.3.tgz#1a2e6681cc9bc4473c32899e59915e19cd6733cf" dependencies: "@babel/code-frame" "7.0.0-beta.44" "@babel/traverse" "7.0.0-beta.44" "@babel/types" "7.0.0-beta.44" babylon "7.0.0-beta.44" eslint-scope "~3.7.1" eslint-visitor-keys "^1.0.0" babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" babel-types "^6.26.0" detect-indent "^4.0.0" jsesc "^1.3.0" lodash "^4.17.4" source-map "^0.5.7" trim-right "^1.0.1" babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" dependencies: babel-helper-explode-assignable-expression "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-call-delegate@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-define-map@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.26.0" babel-types "^6.26.0" lodash "^4.17.4" babel-helper-explode-assignable-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" dependencies: babel-runtime "^6.22.0" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" dependencies: babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-get-function-arity@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-hoist-variables@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-optimise-call-expression@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-helper-regex@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" dependencies: babel-runtime "^6.26.0" babel-types "^6.26.0" lodash "^4.17.4" babel-helper-remap-async-to-generator@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helper-replace-supers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" dependencies: babel-helper-optimise-call-expression "^6.24.1" babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-helpers@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-jest@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.3.tgz#4b7a0b6041691bbd422ab49b3b73654a49a6627a" dependencies: babel-plugin-istanbul "^4.1.5" babel-preset-jest "^22.4.3" babel-messages@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: babel-runtime "^6.22.0" babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" dependencies: babel-runtime "^6.22.0" babel-plugin-istanbul@^4.1.5: version "4.1.6" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" dependencies: babel-plugin-syntax-object-rest-spread "^6.13.0" find-up "^2.1.0" istanbul-lib-instrument "^1.10.1" test-exclude "^4.2.1" babel-plugin-jest-hoist@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.3.tgz#7d8bcccadc2667f96a0dcc6afe1891875ee6c14a" babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" babel-plugin-syntax-trailing-function-commas@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" babel-plugin-transform-async-to-generator@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" dependencies: babel-helper-remap-async-to-generator "^6.24.1" babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" babel-plugin-transform-class-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" dependencies: babel-helper-function-name "^6.24.1" babel-plugin-syntax-class-properties "^6.8.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-arrow-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-block-scoping@^6.23.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: babel-runtime "^6.26.0" babel-template "^6.26.0" babel-traverse "^6.26.0" babel-types "^6.26.0" lodash "^4.17.4" babel-plugin-transform-es2015-classes@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: babel-helper-define-map "^6.24.1" babel-helper-function-name "^6.24.1" babel-helper-optimise-call-expression "^6.24.1" babel-helper-replace-supers "^6.24.1" babel-messages "^6.23.0" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-plugin-transform-es2015-computed-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-duplicate-keys@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-function-name@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: babel-helper-function-name "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: version "6.26.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" dependencies: babel-plugin-transform-strict-mode "^6.24.1" babel-runtime "^6.26.0" babel-template "^6.26.0" babel-types "^6.26.0" babel-plugin-transform-es2015-modules-systemjs@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: babel-helper-hoist-variables "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-modules-umd@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: babel-plugin-transform-es2015-modules-amd "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-plugin-transform-es2015-object-super@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" babel-plugin-transform-es2015-parameters@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: babel-helper-call-delegate "^6.24.1" babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" babel-traverse "^6.24.1" babel-types "^6.24.1" babel-plugin-transform-es2015-shorthand-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-spread@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-sticky-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" babel-types "^6.24.1" babel-plugin-transform-es2015-template-literals@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" babel-plugin-transform-es2015-unicode-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" regexpu-core "^2.0.0" babel-plugin-transform-exponentiation-operator@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" dependencies: babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" babel-plugin-transform-proto-to-assign@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-proto-to-assign/-/babel-plugin-transform-proto-to-assign-6.26.0.tgz#c493e24a62749a44f7ede96506c0cb3a1891f67b" dependencies: babel-runtime "^6.26.0" lodash "^4.17.4" babel-plugin-transform-regenerator@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: regenerator-transform "^0.10.0" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" babel-preset-env@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" dependencies: babel-plugin-check-es2015-constants "^6.22.0" babel-plugin-syntax-trailing-function-commas "^6.22.0" babel-plugin-transform-async-to-generator "^6.22.0" babel-plugin-transform-es2015-arrow-functions "^6.22.0" babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" babel-plugin-transform-es2015-block-scoping "^6.23.0" babel-plugin-transform-es2015-classes "^6.23.0" babel-plugin-transform-es2015-computed-properties "^6.22.0" babel-plugin-transform-es2015-destructuring "^6.23.0" babel-plugin-transform-es2015-duplicate-keys "^6.22.0" babel-plugin-transform-es2015-for-of "^6.23.0" babel-plugin-transform-es2015-function-name "^6.22.0" babel-plugin-transform-es2015-literals "^6.22.0" babel-plugin-transform-es2015-modules-amd "^6.22.0" babel-plugin-transform-es2015-modules-commonjs "^6.23.0" babel-plugin-transform-es2015-modules-systemjs "^6.23.0" babel-plugin-transform-es2015-modules-umd "^6.23.0" babel-plugin-transform-es2015-object-super "^6.22.0" babel-plugin-transform-es2015-parameters "^6.23.0" babel-plugin-transform-es2015-shorthand-properties "^6.22.0" babel-plugin-transform-es2015-spread "^6.22.0" babel-plugin-transform-es2015-sticky-regex "^6.22.0" babel-plugin-transform-es2015-template-literals "^6.22.0" babel-plugin-transform-es2015-typeof-symbol "^6.23.0" babel-plugin-transform-es2015-unicode-regex "^6.22.0" babel-plugin-transform-exponentiation-operator "^6.22.0" babel-plugin-transform-regenerator "^6.22.0" browserslist "^3.2.6" invariant "^2.2.2" semver "^5.3.0" babel-preset-jest@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.3.tgz#e92eef9813b7026ab4ca675799f37419b5a44156" dependencies: babel-plugin-jest-hoist "^22.4.3" babel-plugin-syntax-object-rest-spread "^6.13.0" babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" core-js "^2.5.0" home-or-tmp "^2.0.0" lodash "^4.17.4" mkdirp "^0.5.1" source-map-support "^0.4.15" babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: babel-runtime "^6.26.0" babel-traverse "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" lodash "^4.17.4" babel-traverse@^6.18.0, babel-traverse@^6.24.1, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: babel-code-frame "^6.26.0" babel-messages "^6.23.0" babel-runtime "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" debug "^2.6.8" globals "^9.18.0" invariant "^2.2.2" lodash "^4.17.4" babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: babel-runtime "^6.26.0" esutils "^2.0.2" lodash "^4.17.4" to-fast-properties "^1.0.3" babelify@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/babelify/-/babelify-8.0.0.tgz#6f60f5f062bfe7695754ef2403b842014a580ed3" babylon@7.0.0-beta.44: version "7.0.0-beta.44" resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base64-js@^1.0.2: version "1.3.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" dependencies: 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" bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" beeper@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" bfj-node4@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/bfj-node4/-/bfj-node4-5.3.1.tgz#e23d8b27057f1d0214fc561142ad9db998f26830" dependencies: bluebird "^3.5.1" check-types "^7.3.0" tryer "^1.0.0" big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" binaryextensions@2: version "2.1.1" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935" bluebird@^3.0.5, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" body-parser@1.18.2: version "1.18.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" dependencies: bytes "3.0.0" content-type "~1.0.4" debug "2.6.9" depd "~1.1.1" http-errors "~1.6.2" iconv-lite "0.4.19" on-finished "~2.3.0" qs "6.5.1" raw-body "2.3.2" type-is "~1.6.15" boom@4.x.x: version "4.3.1" resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" dependencies: hoek "4.x.x" boom@5.x.x: version "5.2.0" resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" dependencies: hoek "4.x.x" brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^1.8.2: version "1.8.5" resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" dependencies: expand-range "^1.8.1" preserve "^0.2.0" repeat-element "^1.1.2" braces@^2.3.0, braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: 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" brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" browser-pack@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" dependencies: JSONStream "^1.0.3" combine-source-map "~0.8.0" defined "^1.0.0" safe-buffer "^5.1.1" through2 "^2.0.0" umd "^3.0.0" browser-process-hrtime@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" browser-resolve@^1.11.0, browser-resolve@^1.11.2, browser-resolve@^1.7.0: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" dependencies: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.3" inherits "^2.0.1" safe-buffer "^5.0.1" browserify-cipher@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" dependencies: bn.js "^4.1.0" randombytes "^2.0.1" browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" create-hash "^1.1.0" create-hmac "^1.1.2" elliptic "^6.0.0" inherits "^2.0.1" parse-asn1 "^5.0.0" browserify-zlib@^0.2.0, browserify-zlib@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" dependencies: pako "~1.0.5" browserify@^16.2.2: version "16.2.2" resolved "https://registry.yarnpkg.com/browserify/-/browserify-16.2.2.tgz#4b1f66ba0e54fa39dbc5aa4be9629142143d91b0" dependencies: JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" browser-resolve "^1.11.0" browserify-zlib "~0.2.0" buffer "^5.0.2" cached-path-relative "^1.0.0" concat-stream "^1.6.0" console-browserify "^1.1.0" constants-browserify "~1.0.0" crypto-browserify "^3.0.0" defined "^1.0.0" deps-sort "^2.0.0" domain-browser "^1.2.0" duplexer2 "~0.1.2" events "^2.0.0" glob "^7.1.0" has "^1.0.0" htmlescape "^1.1.0" https-browserify "^1.0.0" inherits "~2.0.1" insert-module-globals "^7.0.0" labeled-stream-splicer "^2.0.0" mkdirp "^0.5.0" module-deps "^6.0.0" os-browserify "~0.3.0" parents "^1.0.1" path-browserify "~0.0.0" process "~0.11.0" punycode "^1.3.2" querystring-es3 "~0.2.0" read-only-stream "^2.0.0" readable-stream "^2.0.2" resolve "^1.1.4" shasum "^1.0.0" shell-quote "^1.6.1" stream-browserify "^2.0.0" stream-http "^2.0.0" string_decoder "^1.1.1" subarg "^1.0.0" syntax-error "^1.1.1" through2 "^2.0.0" timers-browserify "^1.0.1" tty-browserify "0.0.1" url "~0.11.0" util "~0.10.1" vm-browserify "^1.0.0" xtend "^4.0.0" browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" browserslist@^3.2.6: version "3.2.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.7.tgz#aa488634d320b55e88bab0256184dbbcca1e6de9" dependencies: caniuse-lite "^1.0.30000835" electron-to-chromium "^1.3.45" browserslist@^3.2.8: version "3.2.8" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" dependencies: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" dependencies: node-int64 "^0.4.0" buffer-from@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" buffer@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.1.0.tgz#c913e43678c7cb7c8bd16afbcddb6c5505e8f9fe" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" bytes@3.0.0, bytes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" cacache@^10.0.1, cacache@^10.0.4: version "10.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" dependencies: bluebird "^3.5.1" chownr "^1.0.1" glob "^7.1.2" graceful-fs "^4.1.11" lru-cache "^4.1.1" mississippi "^2.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" rimraf "^2.6.2" ssri "^5.2.4" unique-filename "^1.1.0" y18n "^4.0.0" cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" dependencies: 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" cached-path-relative@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.1.tgz#d09c4b52800aa4c078e2dd81a869aac90d2e54e7" call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" callsites@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" caniuse-api@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" dependencies: browserslist "^1.3.6" caniuse-db "^1.0.30000529" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: version "1.0.30000839" resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000839.tgz#55a86e402c74ae17149707bea3ea399522233497" caniuse-lite@^1.0.30000835: version "1.0.30000839" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000839.tgz#41fcc036cf1cb77a0e0be041210f77f1ced44a7b" caniuse-lite@^1.0.30000844: version "1.0.30000846" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000846.tgz#2092911eecad71a89dae1faa62bcc202fde7f959" caniuse-lite@^1.0.30000864: version "1.0.30000864" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000864.tgz#7a08c78da670f23c06f11aa918831b8f2dd60ddc" capture-exit@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" dependencies: rsvp "^3.3.3" caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" dependencies: align-text "^0.1.3" lazy-cache "^1.0.3" chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: ansi-styles "^2.2.1" escape-string-regexp "^1.0.2" has-ansi "^2.0.0" strip-ansi "^3.0.0" supports-color "^2.0.0" chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" check-types@^7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.3.0.tgz#468f571a4435c24248f5fd0cb0e8d87c3c341e7d" chokidar@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" dependencies: anymatch "^2.0.0" async-each "^1.0.0" braces "^2.3.0" glob-parent "^3.1.0" inherits "^2.0.1" is-binary-path "^1.0.0" is-glob "^4.0.0" normalize-path "^2.1.1" path-is-absolute "^1.0.0" readdirp "^2.0.0" upath "^1.0.0" optionalDependencies: fsevents "^1.1.2" chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" chrome-trace-event@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz#d395af2d31c87b90a716c831fe326f69768ec084" ci-info@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" ci-job-number@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-0.3.0.tgz#34bdd114b0dece1960287bd40a57051041a2a800" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" dependencies: chalk "^1.1.3" class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" dependencies: arr-union "^3.1.0" define-property "^0.2.5" isobject "^3.0.0" static-extend "^0.1.1" cli-cursor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" dependencies: restore-cursor "^1.0.1" cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: restore-cursor "^2.0.0" cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" dependencies: slice-ansi "0.0.4" string-width "^1.0.1" cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" dependencies: center-align "^0.1.1" right-align "^0.1.1" wordwrap "0.0.2" cliui@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" wrap-ansi "^2.0.0" clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" clone@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" clone@^1.0.0, clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" coa@~1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" dependencies: q "^1.1.2" code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" dependencies: map-visit "^1.0.0" object-visit "^1.0.0" color-convert@^1.3.0, color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" dependencies: color-name "^1.1.1" color-name@^1.0.0, color-name@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" color-string@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" dependencies: color-name "^1.0.0" color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" color@^0.11.0: version "0.11.4" resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" dependencies: clone "^1.0.2" color-convert "^1.3.0" color-string "^0.3.0" colormin@^1.0.5: version "1.1.2" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" dependencies: color "^0.11.0" css-color-names "0.0.4" has "^1.0.1" colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" combine-source-map@^0.8.0, combine-source-map@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" lodash.memoize "~3.0.3" source-map "~0.5.3" combined-stream@1.0.6, combined-stream@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" commander@^2.13.0, commander@^2.14.1, commander@^2.9.0: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" compare-versions@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.1.0.tgz#43310256a5c555aaed4193c04d8f154cf9c6efd5" component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" compression-webpack-plugin@^1.1.11: version "1.1.11" resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-1.1.11.tgz#8384c7a6ead1d2e2efb190bdfcdcf35878ed8266" dependencies: cacache "^10.0.1" find-cache-dir "^1.0.0" neo-async "^2.5.0" serialize-javascript "^1.4.0" webpack-sources "^1.0.1" concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" config-chain@~1.1.5: version "1.1.11" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.11.tgz#aba09747dfbe4c3e70e766a6e41586e1859fc6f2" dependencies: ini "^1.3.4" proto-list "~1.2.1" console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" dependencies: date-now "^0.1.4" console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" constants-browserify@^1.0.0, constants-browserify@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" convert-source-map@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" iferr "^0.1.5" mkdirp "^0.5.1" rimraf "^2.5.4" run-queue "^1.0.0" copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" core-js@^2.4.0, core-js@^2.5.0: version "2.5.6" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.6.tgz#0fe6d45bf3cac3ac364a9d72de7576f4eb221b9d" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" cosmiconfig@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.2.tgz#03f8965ae4675317a0015b4a5a48a470d9baeada" dependencies: is-directory "^0.3.1" js-yaml "^3.9.0" parse-json "^4.0.0" create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" dependencies: cipher-base "^1.0.1" inherits "^2.0.1" md5.js "^1.3.4" ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" inherits "^2.0.1" ripemd160 "^2.0.0" safe-buffer "^5.0.1" sha.js "^2.4.8" cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" cryptiles@3.x.x: version "3.1.2" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" dependencies: boom "5.x.x" crypto-browserify@^3.0.0, crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" create-ecdh "^4.0.0" create-hash "^1.1.0" create-hmac "^1.1.0" diffie-hellman "^5.0.0" inherits "^2.0.1" pbkdf2 "^3.0.3" public-encrypt "^4.0.0" randombytes "^2.0.0" randomfill "^1.0.3" css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" css-loader@^0.28.11: version "0.28.11" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" dependencies: babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" cssnano "^3.10.0" icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" object-assign "^4.1.1" postcss "^5.0.6" postcss-modules-extract-imports "^1.2.0" postcss-modules-local-by-default "^1.2.0" postcss-modules-scope "^1.1.0" postcss-modules-values "^1.3.0" postcss-value-parser "^3.3.0" source-list-map "^2.0.0" css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" dependencies: cssesc "^0.1.0" fastparse "^1.1.1" regexpu-core "^1.0.0" cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" cssnano@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: autoprefixer "^6.3.1" decamelize "^1.1.2" defined "^1.0.0" has "^1.0.1" object-assign "^4.0.1" postcss "^5.0.14" postcss-calc "^5.2.0" postcss-colormin "^2.1.8" postcss-convert-values "^2.3.4" postcss-discard-comments "^2.0.4" postcss-discard-duplicates "^2.0.1" postcss-discard-empty "^2.0.1" postcss-discard-overridden "^0.1.1" postcss-discard-unused "^2.2.1" postcss-filter-plugins "^2.0.0" postcss-merge-idents "^2.1.5" postcss-merge-longhand "^2.0.1" postcss-merge-rules "^2.0.3" postcss-minify-font-values "^1.0.2" postcss-minify-gradients "^1.0.1" postcss-minify-params "^1.0.4" postcss-minify-selectors "^2.0.4" postcss-normalize-charset "^1.1.0" postcss-normalize-url "^3.0.7" postcss-ordered-values "^2.1.0" postcss-reduce-idents "^2.2.2" postcss-reduce-initial "^1.0.0" postcss-reduce-transforms "^1.0.3" postcss-svgo "^2.1.1" postcss-unique-selectors "^2.0.2" postcss-value-parser "^3.2.3" postcss-zindex "^2.0.1" csso@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" dependencies: clap "^1.0.9" source-map "^0.5.3" cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.2" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" "cssstyle@>= 0.2.37 < 0.3.0": version "0.2.37" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" dependencies: cssom "0.3.x" cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" data-urls@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.0.0.tgz#24802de4e81c298ea8a9388bb0d8e461c774684f" dependencies: abab "^1.0.4" whatwg-mimetype "^2.0.0" whatwg-url "^6.4.0" date-fns@^1.27.2: version "1.29.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" dateformat@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" deep-extend@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" deepmerge@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.0.tgz#511a54fff405fc346f0240bb270a3e9533a31102" default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" dependencies: strip-bom "^2.0.0" defaults@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" dependencies: clone "^1.0.2" define-properties@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" dependencies: foreach "^2.0.5" object-keys "^1.0.8" define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: globby "^5.0.0" is-path-cwd "^1.0.0" is-path-in-cwd "^1.0.0" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" rimraf "^2.2.8" delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" depd@~1.1.1, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" deprecated@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" deps-sort@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" dependencies: JSONStream "^1.0.3" shasum "^1.0.0" subarg "^1.0.0" through2 "^2.0.0" des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" detective@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/detective/-/detective-5.1.0.tgz#7a20d89236d7b331ccea65832e7123b5551bb7cb" dependencies: acorn-node "^1.3.0" defined "^1.0.0" minimist "^1.1.1" diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" randombytes "^2.0.0" dir-glob@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" dependencies: arrify "^1.0.1" path-type "^3.0.0" doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: esutils "^2.0.2" domain-browser@^1.1.1, domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" domexception@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" dependencies: webidl-conversions "^4.0.2" duplexer2@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" dependencies: readable-stream "~1.1.9" duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" dependencies: readable-stream "^2.0.2" duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" duplexify@^3.4.2, duplexify@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" editions@^1.3.3: version "1.3.4" resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" editorconfig@^0.13.2: version "0.13.3" resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.13.3.tgz#e5219e587951d60958fd94ea9a9a008cdeff1b34" dependencies: bluebird "^3.0.5" commander "^2.9.0" lru-cache "^3.2.0" semver "^5.1.0" sigmund "^1.0.1" ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" ejs@^2.5.7: version "2.6.1" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.45: version "1.3.45" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.45.tgz#458ac1b1c5c760ce8811a16d2bfbd97ec30bafb8" electron-to-chromium@^1.3.47: version "1.3.48" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz#d3b0d8593814044e092ece2108fc3ac9aea4b900" elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" elliptic@^6.0.0: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" dependencies: bn.js "^4.4.0" brorand "^1.0.1" hash.js "^1.0.0" hmac-drbg "^1.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" dependencies: once "^1.4.0" end-of-stream@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" dependencies: once "~1.3.0" enhanced-resolve@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" tapable "^1.0.0" errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" dependencies: is-arrayish "^0.2.1" es-abstract@^1.5.1: version "1.11.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" has "^1.0.1" is-callable "^1.1.3" is-regex "^1.0.4" es-to-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" dependencies: is-callable "^1.1.1" is-date-object "^1.0.1" is-symbol "^1.0.1" escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escodegen@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" eslint-ci@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/eslint-ci/-/eslint-ci-0.1.1.tgz#4601539547e8369d3ea9d1075166dcffb6a54f4b" dependencies: ci-job-number "^0.3.0" eslint-config-postcss@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/eslint-config-postcss/-/eslint-config-postcss-2.0.2.tgz#cae1c6093ced7850894a5b85fbe1d1e232b72afb" eslint-scope@^3.7.1, eslint-scope@~3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" eslint@^4.19.1: version "4.19.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" chalk "^2.1.0" concat-stream "^1.6.0" cross-spawn "^5.1.0" debug "^3.1.0" doctrine "^2.1.0" eslint-scope "^3.7.1" eslint-visitor-keys "^1.0.0" espree "^3.5.4" esquery "^1.0.0" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" globals "^11.0.1" ignore "^3.3.3" imurmurhash "^0.1.4" inquirer "^3.0.6" is-resolvable "^1.0.0" js-yaml "^3.9.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" lodash "^4.17.4" minimatch "^3.0.2" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" regexpp "^1.0.1" require-uncached "^1.0.3" semver "^5.3.0" strip-ansi "^4.0.0" strip-json-comments "~2.0.1" table "4.0.2" text-table "~0.2.0" espree@^3.5.4: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" esquery@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: estraverse "^4.0.0" esrecurse@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" events@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/events/-/events-2.0.0.tgz#cbbb56bf3ab1ac18d71c43bb32c86255062769f2" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" exec-sh@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" dependencies: merge "^1.1.3" execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" dependencies: 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" execa@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.9.0.tgz#adb7ce62cf985071f60580deb4a88b9e34712d01" dependencies: 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" exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" dependencies: is-posix-bracket "^0.1.0" expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" dependencies: 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" expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" dependencies: fill-range "^2.1.0" expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" dependencies: homedir-polyfill "^1.0.1" expect@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" dependencies: ansi-styles "^3.2.0" jest-diff "^22.4.3" jest-get-type "^22.4.3" jest-matcher-utils "^22.4.3" jest-message-util "^22.4.3" jest-regex-util "^22.4.3" express@^4.16.2: version "4.16.3" resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" dependencies: accepts "~1.3.5" array-flatten "1.1.1" body-parser "1.18.2" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" cookie-signature "1.0.6" debug "2.6.9" depd "~1.1.2" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" finalhandler "1.1.1" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" proxy-addr "~2.0.3" qs "6.5.1" range-parser "~1.2.0" safe-buffer "5.1.1" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" statuses "~1.4.0" type-is "~1.6.16" utils-merge "1.0.1" vary "~1.1.2" extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" extend@^3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" tmp "^0.0.33" extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" dependencies: is-extglob "^1.0.0" extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" dependencies: 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" extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" extsprintf@^1.2.0: version "1.4.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" fancy-log@^1.1.0: version "1.3.2" resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1" dependencies: ansi-gray "^0.1.1" color-support "^1.1.3" time-stamp "^1.0.0" fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" fast-glob@^2.0.2: version "2.2.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.1.tgz#686c2345be88f3741e174add0be6f2e5b6078889" dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" glob-parent "^3.1.0" is-glob "^4.0.0" merge2 "^1.2.1" micromatch "^3.1.10" fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" dependencies: bser "^2.0.0" figures@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" dependencies: escape-string-regexp "^1.0.5" object-assign "^4.1.0" figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" file-loader@^1.1.11: version "1.1.11" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" dependencies: loader-utils "^1.0.2" schema-utils "^0.4.5" filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" fileset@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" dependencies: glob "^7.0.3" minimatch "^3.0.3" filesize@^3.5.11: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" fill-range@^2.1.0: version "2.2.4" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" dependencies: is-number "^2.1.0" isobject "^2.0.0" randomatic "^3.0.0" repeat-element "^1.1.2" repeat-string "^1.5.2" fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" dependencies: extend-shallow "^2.0.1" is-number "^3.0.0" repeat-string "^1.6.1" to-regex-range "^2.1.0" finalhandler@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" dependencies: debug "2.6.9" encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" parseurl "~1.3.2" statuses "~1.4.0" unpipe "~1.0.0" find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" dependencies: commondir "^1.0.1" make-dir "^1.0.0" pkg-dir "^2.0.0" find-index@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" find-parent-dir@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" dependencies: path-exists "^2.0.0" pinkie-promise "^2.0.0" find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" dependencies: locate-path "^2.0.0" findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" dependencies: detect-file "^1.0.0" is-glob "^3.1.0" micromatch "^3.0.4" resolve-dir "^1.0.1" fined@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" dependencies: expand-tilde "^2.0.2" is-plain-object "^2.0.3" object.defaults "^1.1.0" object.pick "^1.2.0" parse-filepath "^1.0.1" first-chunk-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" flagged-respawn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" dependencies: circular-json "^0.3.1" del "^2.0.2" graceful-fs "^4.1.2" write "^0.2.1" flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" dependencies: inherits "^2.0.1" readable-stream "^2.0.4" for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: for-in "^1.0.1" for-own@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" dependencies: for-in "^1.0.1" foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: asynckit "^0.4.0" combined-stream "1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fs-extra@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" dependencies: graceful-fs "^4.1.2" jsonfile "^4.0.0" universalify "^0.1.0" fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" dependencies: minipass "^2.2.1" fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" imurmurhash "^0.1.4" readable-stream "1 || 2" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.1.2, fsevents@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.3.tgz#08292982e7059f6674c93d8b829c1e8604979ac0" dependencies: nan "^2.9.2" node-pre-gyp "^0.9.0" function-bind@^1.0.2, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" dependencies: aproba "^1.0.3" console-control-strings "^1.0.0" has-unicode "^2.0.0" object-assign "^4.1.0" signal-exit "^3.0.0" string-width "^1.0.1" strip-ansi "^3.0.1" wide-align "^1.1.0" gaze@^0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" dependencies: globule "~0.1.0" get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" get-own-enumerable-property-symbols@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" dependencies: assert-plus "^1.0.0" glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" dependencies: glob-parent "^2.0.0" is-glob "^2.0.0" glob-parent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" dependencies: is-glob "^2.0.0" glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" glob-stream@^3.1.5: version "3.1.18" resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" dependencies: glob "^4.3.1" glob2base "^0.0.12" minimatch "^2.0.1" ordered-read-streams "^0.1.0" through2 "^0.6.1" unique-stream "^1.0.0" glob-to-regexp@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" glob-watcher@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" dependencies: gaze "^0.5.1" glob2base@^0.0.12: version "0.0.12" resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" dependencies: find-index "^0.1.1" glob@^4.3.1: version "4.5.3" resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" dependencies: inflight "^1.0.4" inherits "2" minimatch "^2.0.1" once "^1.3.0" glob@^7.0.3, glob@^7.0.5, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: 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@~3.1.21: version "3.1.21" resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" dependencies: graceful-fs "~1.2.0" inherits "1" minimatch "~0.2.11" global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" resolve-dir "^1.0.0" global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" ini "^1.3.4" is-windows "^1.0.1" which "^1.2.14" globals@^11.0.1, globals@^11.1.0: version "11.5.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.5.0.tgz#6bc840de6771173b191f13d3a9c94d441ee92642" globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" dependencies: array-union "^1.0.1" arrify "^1.0.0" glob "^7.0.3" object-assign "^4.0.1" pify "^2.0.0" pinkie-promise "^2.0.0" globby@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" dependencies: array-union "^1.0.1" dir-glob "^2.0.0" fast-glob "^2.0.2" glob "^7.1.2" ignore "^3.3.5" pify "^3.0.0" slash "^1.0.0" globule@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" dependencies: glob "~3.1.21" lodash "~1.0.1" minimatch "~0.2.11" glogg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.1.tgz#dcf758e44789cc3f3d32c1f3562a3676e6a34810" dependencies: sparkles "^1.0.0" graceful-fs@^3.0.0: version "3.0.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" dependencies: natives "^1.1.0" graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" graceful-fs@~1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" gulp-babel@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-7.0.1.tgz#b9c8e29fa376b36c57989db820fc1c1715bb47cb" dependencies: plugin-error "^1.0.1" replace-ext "0.0.1" through2 "^2.0.0" vinyl-sourcemaps-apply "^0.2.0" gulp-json-editor@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/gulp-json-editor/-/gulp-json-editor-2.4.1.tgz#ef9dfcc7a29c664bdd0e992a331d2f1b0e64650d" dependencies: deepmerge "^2.1.0" detect-indent "^5.0.0" js-beautify "^1.7.5" plugin-error "^1.0.1" through2 "^2.0.3" gulp-replace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.0.0.tgz#b32bd61654d97b8d78430a67b3e8ce067b7c9143" dependencies: istextorbinary "2.2.1" readable-stream "^2.0.1" replacestream "^4.0.0" gulp-util@^3.0.0: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" dependencies: array-differ "^1.0.0" array-uniq "^1.0.2" beeper "^1.0.0" chalk "^1.0.0" dateformat "^2.0.0" fancy-log "^1.1.0" gulplog "^1.0.0" has-gulplog "^0.1.0" lodash._reescape "^3.0.0" lodash._reevaluate "^3.0.0" lodash._reinterpolate "^3.0.0" lodash.template "^3.0.0" minimist "^1.1.0" multipipe "^0.1.2" object-assign "^3.0.0" replace-ext "0.0.1" through2 "^2.0.0" vinyl "^0.5.0" gulp@^3.9.1: version "3.9.1" resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" dependencies: archy "^1.0.0" chalk "^1.0.0" deprecated "^0.0.1" gulp-util "^3.0.0" interpret "^1.0.0" liftoff "^2.1.0" minimist "^1.1.0" orchestrator "^0.3.0" pretty-hrtime "^1.0.0" semver "^4.1.0" tildify "^1.0.0" v8flags "^2.0.2" vinyl-fs "^0.3.0" gulplog@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" dependencies: glogg "^1.0.0" gzip-size@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" dependencies: duplexer "^0.1.1" pify "^3.0.0" handlebars@^4.0.3: version "4.0.11" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" dependencies: async "^1.4.0" optimist "^0.6.1" source-map "^0.4.4" optionalDependencies: uglify-js "^2.6" har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" har-validator@~5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" dependencies: ajv "^5.1.0" har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" has-gulplog@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" dependencies: sparkles "^1.0.0" has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" dependencies: get-value "^2.0.3" has-values "^0.1.4" isobject "^2.0.0" has-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" dependencies: get-value "^2.0.6" has-values "^1.0.0" isobject "^3.0.0" has-values@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" has-values@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" dependencies: is-number "^3.0.0" kind-of "^4.0.0" has@^1.0.0, has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" dependencies: function-bind "^1.0.2" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.0" hawk@~6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" dependencies: boom "4.x.x" cryptiles "3.x.x" hoek "4.x.x" sntp "2.x.x" hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" hoek@4.x.x: version "4.2.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: version "2.6.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" html-comment-regex@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: whatwg-encoding "^1.0.1" htmlescape@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" dependencies: depd "1.1.1" inherits "2.0.3" setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" http-errors@~1.6.2: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: depd "~1.1.2" inherits "2.0.3" setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" dependencies: assert-plus "^1.0.0" jsprim "^1.2.2" sshpk "^1.7.0" https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" iconv-lite@^0.4.17, iconv-lite@^0.4.4: version "0.4.23" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" dependencies: safer-buffer ">= 2.1.2 < 3" icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" icss-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" dependencies: postcss "^6.0.1" ieee754@^1.1.4: version "1.1.11" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" dependencies: minimatch "^3.0.4" ignore@^3.3.3, ignore@^3.3.5: version "3.3.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" dependencies: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" dependencies: repeating "^2.0.0" indent-string@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" dependencies: once "^1.3.0" wrappy "1" inherits@1: version "1.0.2" resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" inline-source-map@~0.6.0: version "0.6.2" resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" dependencies: source-map "~0.5.3" inquirer@^3.0.6: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" external-editor "^2.0.4" figures "^2.0.0" lodash "^4.3.0" mute-stream "0.0.7" run-async "^2.2.0" rx-lite "^4.0.8" rx-lite-aggregates "^4.0.8" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" insert-module-globals@^7.0.0: version "7.0.6" resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.6.tgz#15a31d9d394e76d08838b9173016911d7fd4ea1b" dependencies: JSONStream "^1.0.3" combine-source-map "^0.8.0" concat-stream "^1.6.1" is-buffer "^1.1.0" lexical-scope "^1.2.0" path-is-absolute "^1.0.1" process "~0.11.0" through2 "^2.0.0" xtend "^4.0.0" interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" invariant@^2.2.0, invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" ipaddr.js@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" dependencies: is-relative "^1.0.0" is-windows "^1.0.1" is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" dependencies: kind-of "^6.0.0" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" dependencies: binary-extensions "^1.0.0" is-buffer@^1.1.0, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" dependencies: builtin-modules "^1.0.0" is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" is-ci@^1.0.10: version "1.1.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" dependencies: ci-info "^1.0.0" is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" kind-of "^5.0.0" is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" kind-of "^6.0.2" is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" is-equal-shallow@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" dependencies: is-primitive "^2.0.0" is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" dependencies: is-plain-object "^2.0.4" is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" is-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" dependencies: is-extglob "^1.0.0" is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" dependencies: is-extglob "^2.1.1" is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" dependencies: kind-of "^3.0.2" is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" dependencies: symbol-observable "^1.1.0" is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" dependencies: is-number "^4.0.0" is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" dependencies: is-path-inside "^1.0.0" is-path-inside@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" dependencies: path-is-inside "^1.0.1" is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" dependencies: isobject "^3.0.1" is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: has "^1.0.1" is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" dependencies: is-unc-path "^1.0.0" is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" dependencies: html-comment-regex "^1.1.0" is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" dependencies: unc-path-regex "^0.1.2" is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" isarray@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.4.tgz#38e7bcbb0f3ba1b7933c86ba1894ddfc3781bbb7" isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.1.14: version "1.3.1" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" dependencies: async "^2.1.4" compare-versions "^3.1.0" fileset "^2.0.2" istanbul-lib-coverage "^1.2.0" istanbul-lib-hook "^1.2.0" istanbul-lib-instrument "^1.10.1" istanbul-lib-report "^1.1.4" istanbul-lib-source-maps "^1.2.4" istanbul-reports "^1.3.0" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" istanbul-lib-hook@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" dependencies: append-transform "^0.4.0" istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.8.0: version "1.10.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" babylon "^6.18.0" istanbul-lib-coverage "^1.2.0" semver "^5.3.0" istanbul-lib-report@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" dependencies: istanbul-lib-coverage "^1.2.0" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" istanbul-lib-source-maps@^1.2.1: version "1.2.3" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" dependencies: debug "^3.1.0" istanbul-lib-coverage "^1.1.2" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" istanbul-lib-source-maps@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" dependencies: debug "^3.1.0" istanbul-lib-coverage "^1.2.0" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" istanbul-reports@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" dependencies: handlebars "^4.0.3" istextorbinary@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" dependencies: binaryextensions "2" editions "^1.3.3" textextensions "2" jest-changed-files@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.4.3.tgz#8882181e022c38bd46a2e4d18d44d19d90a90fb2" dependencies: throat "^4.0.0" jest-cli@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.3.tgz#bf16c4a5fb7edc3fa5b9bb7819e34139e88a72c7" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" graceful-fs "^4.1.11" import-local "^1.0.0" is-ci "^1.0.10" istanbul-api "^1.1.14" istanbul-lib-coverage "^1.1.1" istanbul-lib-instrument "^1.8.0" istanbul-lib-source-maps "^1.2.1" jest-changed-files "^22.4.3" jest-config "^22.4.3" jest-environment-jsdom "^22.4.3" jest-get-type "^22.4.3" jest-haste-map "^22.4.3" jest-message-util "^22.4.3" jest-regex-util "^22.4.3" jest-resolve-dependencies "^22.4.3" jest-runner "^22.4.3" jest-runtime "^22.4.3" jest-snapshot "^22.4.3" jest-util "^22.4.3" jest-validate "^22.4.3" jest-worker "^22.4.3" micromatch "^2.3.11" node-notifier "^5.2.1" realpath-native "^1.0.0" rimraf "^2.5.4" slash "^1.0.0" string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" yargs "^10.0.3" jest-config@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.3.tgz#0e9d57db267839ea31309119b41dc2fa31b76403" dependencies: chalk "^2.0.1" glob "^7.1.1" jest-environment-jsdom "^22.4.3" jest-environment-node "^22.4.3" jest-get-type "^22.4.3" jest-jasmine2 "^22.4.3" jest-regex-util "^22.4.3" jest-resolve "^22.4.3" jest-util "^22.4.3" jest-validate "^22.4.3" pretty-format "^22.4.3" jest-diff@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" dependencies: chalk "^2.0.1" diff "^3.2.0" jest-get-type "^22.4.3" pretty-format "^22.4.3" jest-docblock@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.3.tgz#50886f132b42b280c903c592373bb6e93bb68b19" dependencies: detect-newline "^2.1.0" jest-environment-jsdom@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.3.tgz#d67daa4155e33516aecdd35afd82d4abf0fa8a1e" dependencies: jest-mock "^22.4.3" jest-util "^22.4.3" jsdom "^11.5.1" jest-environment-node@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.3.tgz#54c4eaa374c83dd52a9da8759be14ebe1d0b9129" dependencies: jest-mock "^22.4.3" jest-util "^22.4.3" jest-get-type@^22.1.0, jest-get-type@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" jest-haste-map@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" jest-docblock "^22.4.3" jest-serializer "^22.4.3" jest-worker "^22.4.3" micromatch "^2.3.11" sane "^2.0.0" jest-jasmine2@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.3.tgz#4daf64cd14c793da9db34a7c7b8dcfe52a745965" dependencies: chalk "^2.0.1" co "^4.6.0" expect "^22.4.3" graceful-fs "^4.1.11" is-generator-fn "^1.0.0" jest-diff "^22.4.3" jest-matcher-utils "^22.4.3" jest-message-util "^22.4.3" jest-snapshot "^22.4.3" jest-util "^22.4.3" source-map-support "^0.5.0" jest-leak-detector@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" dependencies: pretty-format "^22.4.3" jest-matcher-utils@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" dependencies: chalk "^2.0.1" jest-get-type "^22.4.3" pretty-format "^22.4.3" jest-message-util@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.3.tgz#cf3d38aafe4befddbfc455e57d65d5239e399eb7" dependencies: "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" stack-utils "^1.0.1" jest-mock@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.4.3.tgz#f63ba2f07a1511772cdc7979733397df770aabc7" jest-regex-util@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.4.3.tgz#a826eb191cdf22502198c5401a1fc04de9cef5af" jest-resolve-dependencies@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" dependencies: jest-regex-util "^22.4.3" jest-resolve@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" dependencies: browser-resolve "^1.11.2" chalk "^2.0.1" jest-runner@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.3.tgz#298ddd6a22b992c64401b4667702b325e50610c3" dependencies: exit "^0.1.2" jest-config "^22.4.3" jest-docblock "^22.4.3" jest-haste-map "^22.4.3" jest-jasmine2 "^22.4.3" jest-leak-detector "^22.4.3" jest-message-util "^22.4.3" jest-runtime "^22.4.3" jest-util "^22.4.3" jest-worker "^22.4.3" throat "^4.0.0" jest-runtime@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.3.tgz#b69926c34b851b920f666c93e86ba2912087e3d0" dependencies: babel-core "^6.0.0" babel-jest "^22.4.3" babel-plugin-istanbul "^4.1.5" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" graceful-fs "^4.1.11" jest-config "^22.4.3" jest-haste-map "^22.4.3" jest-regex-util "^22.4.3" jest-resolve "^22.4.3" jest-util "^22.4.3" jest-validate "^22.4.3" json-stable-stringify "^1.0.1" micromatch "^2.3.11" realpath-native "^1.0.0" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" yargs "^10.0.3" jest-serializer@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.3.tgz#a679b81a7f111e4766235f4f0c46d230ee0f7436" jest-snapshot@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" dependencies: chalk "^2.0.1" jest-diff "^22.4.3" jest-matcher-utils "^22.4.3" mkdirp "^0.5.1" natural-compare "^1.4.0" pretty-format "^22.4.3" jest-util@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.3.tgz#c70fec8eec487c37b10b0809dc064a7ecf6aafac" dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" is-ci "^1.0.10" jest-message-util "^22.4.3" mkdirp "^0.5.1" source-map "^0.6.0" jest-validate@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.3.tgz#0780954a5a7daaeec8d3c10834b9280865976b30" dependencies: chalk "^2.0.1" jest-config "^22.4.3" jest-get-type "^22.4.3" leven "^2.1.0" pretty-format "^22.4.3" jest-validate@^23.0.0: version "23.0.1" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.0.1.tgz#cd9f01a89d26bb885f12a8667715e9c865a5754f" dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" leven "^2.1.0" pretty-format "^23.0.1" jest-worker@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.4.3.tgz#5c421417cba1c0abf64bf56bd5fb7968d79dd40b" dependencies: merge-stream "^1.0.1" jest@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.3.tgz#2261f4b117dc46d9a4a1a673d2150958dee92f16" dependencies: import-local "^1.0.0" jest-cli "^22.4.3" js-base64@^2.1.9: version "2.4.3" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" js-beautify@^1.7.5: version "1.7.5" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.7.5.tgz#69d9651ef60dbb649f65527b53674950138a7919" dependencies: config-chain "~1.1.5" editorconfig "^0.13.2" mkdirp "~0.5.0" nopt "~3.0.1" js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: argparse "^1.0.7" esprima "^4.0.0" js-yaml@~3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" dependencies: argparse "^1.0.7" esprima "^2.6.0" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" jsdom@^11.5.1: version "11.10.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.10.0.tgz#a42cd54e88895dc765f03f15b807a474962ac3b5" dependencies: abab "^1.0.4" acorn "^5.3.0" acorn-globals "^4.1.0" array-equal "^1.0.0" cssom ">= 0.3.2 < 0.4.0" cssstyle ">= 0.2.37 < 0.3.0" data-urls "^1.0.0" domexception "^1.0.0" escodegen "^1.9.0" html-encoding-sniffer "^1.0.2" left-pad "^1.2.0" nwmatcher "^1.4.3" parse5 "4.0.0" pn "^1.1.0" request "^2.83.0" request-promise-native "^1.0.5" sax "^1.2.4" symbol-tree "^3.2.2" tough-cookie "^2.3.3" w3c-hr-time "^1.0.1" webidl-conversions "^4.0.2" whatwg-encoding "^1.0.3" whatwg-mimetype "^2.1.0" whatwg-url "^6.4.0" ws "^4.0.0" xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: jsonify "~0.0.0" json-stable-stringify@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" dependencies: jsonify "~0.0.0" json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" optionalDependencies: graceful-fs "^4.1.6" jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" jsonparse@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: assert-plus "1.0.0" extsprintf "1.3.0" json-schema "0.2.3" verror "1.10.0" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" labeled-stream-splicer@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz#9cffa32fd99e1612fd1d86a8db962416d5292926" dependencies: inherits "^2.0.1" isarray "^2.0.4" stream-splicer "^2.0.0" lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" dependencies: invert-kv "^1.0.0" leb@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/leb/-/leb-0.3.0.tgz#32bee9fad168328d6aea8522d833f4180eed1da3" left-pad@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: prelude-ls "~1.1.2" type-check "~0.3.2" lexical-scope@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" dependencies: astw "^2.0.0" liftoff@^2.1.0: version "2.5.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" dependencies: extend "^3.0.0" findup-sync "^2.0.0" fined "^1.0.1" flagged-respawn "^1.0.0" is-plain-object "^2.0.4" object.map "^1.0.0" rechoir "^0.6.2" resolve "^1.1.7" lint-staged@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-7.1.3.tgz#0eb77b42131653808e02bc0eba66ad8ff8a8ca1f" dependencies: app-root-path "^2.0.1" chalk "^2.3.1" commander "^2.14.1" cosmiconfig "^5.0.2" debug "^3.1.0" dedent "^0.7.0" execa "^0.9.0" find-parent-dir "^0.3.0" is-glob "^4.0.0" is-windows "^1.0.2" jest-validate "^23.0.0" listr "^0.14.1" lodash "^4.17.5" log-symbols "^2.2.0" micromatch "^3.1.8" npm-which "^3.0.1" p-map "^1.1.1" path-is-inside "^1.0.2" pify "^3.0.0" please-upgrade-node "^3.0.2" staged-git-files "1.1.1" string-argv "^0.0.2" stringify-object "^3.2.2" listr-silent-renderer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" listr-update-renderer@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" dependencies: chalk "^1.1.3" cli-truncate "^0.2.1" elegant-spinner "^1.0.1" figures "^1.7.0" indent-string "^3.0.0" log-symbols "^1.0.2" log-update "^1.0.2" strip-ansi "^3.0.1" listr-verbose-renderer@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" dependencies: chalk "^1.1.3" cli-cursor "^1.0.2" date-fns "^1.27.2" figures "^1.7.0" listr@^0.14.1: version "0.14.1" resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.1.tgz#8a7afa4a7135cee4c921d128e0b7dfc6e522d43d" dependencies: "@samverschueren/stream-to-observable" "^0.3.0" cli-truncate "^0.2.1" figures "^1.7.0" indent-string "^2.1.0" is-observable "^1.1.0" is-promise "^2.1.0" is-stream "^1.1.0" listr-silent-renderer "^1.1.1" listr-update-renderer "^0.4.0" listr-verbose-renderer "^0.4.0" log-symbols "^1.0.2" log-update "^1.0.2" ora "^0.2.3" p-map "^1.1.1" rxjs "^6.1.0" strip-ansi "^3.0.1" load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" pify "^2.0.0" pinkie-promise "^2.0.0" strip-bom "^2.0.0" load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" pify "^3.0.0" strip-bom "^3.0.0" loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: big.js "^3.1.3" emojis-list "^2.0.0" json5 "^0.5.0" locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" dependencies: p-locate "^2.0.0" path-exists "^3.0.0" lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" lodash._basetostring@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" lodash._basevalues@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" lodash._reescape@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" lodash._reevaluate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" lodash._root@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" lodash.escape@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" dependencies: lodash._root "^3.0.0" lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" dependencies: lodash._getnative "^3.0.0" lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" lodash.memoize@~3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" lodash.template@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" dependencies: lodash._basecopy "^3.0.0" lodash._basetostring "^3.0.0" lodash._basevalues "^3.0.0" lodash._isiterateecall "^3.0.0" lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" lodash.keys "^3.0.0" lodash.restparam "^3.0.0" lodash.templatesettings "^3.0.0" lodash.templatesettings@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" dependencies: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" lodash@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" dependencies: chalk "^1.0.0" log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: chalk "^2.0.1" log-update@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" dependencies: ansi-escapes "^1.0.0" cli-cursor "^1.0.2" long@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" lru-cache@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-3.2.0.tgz#71789b3b7f5399bec8565dda38aa30d2a097efee" dependencies: pseudomap "^1.0.1" lru-cache@^4.0.1, lru-cache@^4.1.1: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" dependencies: pify "^3.0.0" make-iterator@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" dependencies: kind-of "^6.0.2" makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" dependencies: tmpl "1.0.x" map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" dependencies: object-visit "^1.0.0" math-expression-evaluator@^1.2.14: version "1.2.17" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" math-random@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" md5.js@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" dependencies: hash-base "^3.0.0" inherits "^2.0.1" media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" dependencies: mimic-fn "^1.0.0" memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: errno "^0.1.3" readable-stream "^2.0.1" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" dependencies: readable-stream "^2.0.1" merge2@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" merge@^1.1.3: version "1.2.0" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: arr-diff "^2.0.0" array-unique "^0.2.1" braces "^1.8.2" expand-brackets "^0.1.4" extglob "^0.3.1" filename-regex "^2.0.0" is-extglob "^1.0.0" is-glob "^2.0.1" kind-of "^3.0.2" normalize-path "^2.0.1" object.omit "^2.0.0" parse-glob "^3.0.4" regex-cache "^0.4.2" micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: 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" miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" dependencies: bn.js "^4.0.0" brorand "^1.0.1" mime-db@~1.33.0: version "1.33.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: mime-db "~1.33.0" mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" minimatch@^2.0.1: version "2.0.10" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" dependencies: brace-expansion "^1.0.0" minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" minimatch@~0.2.11: version "0.2.14" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" dependencies: lru-cache "2" sigmund "~1.0.0" minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" minipass@^2.2.1, minipass@^2.2.4: version "2.3.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.0.tgz#2e11b1c46df7fe7f1afbe9a490280add21ffe384" dependencies: safe-buffer "^5.1.1" yallist "^3.0.0" minizlib@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" dependencies: minipass "^2.2.1" mississippi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" end-of-stream "^1.1.0" flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" pump "^2.0.1" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" dependencies: for-in "^1.0.2" is-extendable "^1.0.1" mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" module-deps@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.0.2.tgz#660217d1602b863ac8d4d16951a3720dd9aa4c80" dependencies: JSONStream "^1.0.3" browser-resolve "^1.7.0" cached-path-relative "^1.0.0" concat-stream "~1.6.0" defined "^1.0.0" detective "^5.0.2" duplexer2 "^0.1.2" inherits "^2.0.1" parents "^1.0.0" readable-stream "^2.0.2" resolve "^1.4.0" stream-combiner2 "^1.1.1" subarg "^1.0.0" through2 "^2.0.0" xtend "^4.0.0" move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" fs-write-stream-atomic "^1.0.8" mkdirp "^0.5.1" rimraf "^2.5.4" run-queue "^1.0.3" ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" dependencies: duplexer2 "0.0.2" mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" nanomatch@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" dependencies: 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-odd "^2.0.0" 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" natives@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.3.tgz#44a579be64507ea2d6ed1ca04a9415915cf75558" natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" needle@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" dependencies: debug "^2.1.2" iconv-lite "^0.4.4" sax "^1.2.4" negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" neo-async@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" buffer "^4.3.0" console-browserify "^1.1.0" constants-browserify "^1.0.0" crypto-browserify "^3.11.0" domain-browser "^1.1.1" events "^1.0.0" https-browserify "^1.0.0" os-browserify "^0.3.0" path-browserify "0.0.0" process "^0.11.10" punycode "^1.2.4" querystring-es3 "^0.2.0" readable-stream "^2.3.3" stream-browserify "^2.0.1" stream-http "^2.7.2" string_decoder "^1.0.0" timers-browserify "^2.0.4" tty-browserify "0.0.0" url "^0.11.0" util "^0.10.3" vm-browserify "0.0.4" node-notifier@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" dependencies: growly "^1.3.0" semver "^5.4.1" shellwords "^0.1.1" which "^1.3.0" node-pre-gyp@^0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz#f11c07516dd92f87199dbc7e1838eab7cd56c9e0" dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" needle "^2.2.0" nopt "^4.0.1" npm-packlist "^1.1.6" npmlog "^4.0.2" rc "^1.1.7" rimraf "^2.6.1" semver "^5.3.0" tar "^4" nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" dependencies: abbrev "1" osenv "^0.1.4" nopt@~3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" normalize-package-data@^2.3.2: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" normalize-url@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" dependencies: object-assign "^4.0.1" prepend-http "^1.0.0" query-string "^4.1.0" sort-keys "^1.0.0" npm-bundled@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" npm-packlist@^1.1.6: version "1.1.10" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" npm-path@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" dependencies: which "^1.2.10" npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" dependencies: path-key "^2.0.0" npm-which@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" dependencies: commander "^2.9.0" npm-path "^2.0.2" which "^1.2.10" npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" gauge "~2.7.3" set-blocking "~2.0.0" num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" nwmatcher@^1.4.3: version "1.4.4" resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" oauth-sign@~0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" dependencies: isobject "^3.0.0" object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" dependencies: array-each "^1.0.1" array-slice "^1.0.0" for-own "^1.0.0" isobject "^3.0.0" object.getownpropertydescriptors@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" dependencies: define-properties "^1.1.2" es-abstract "^1.5.1" object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" dependencies: for-own "^1.0.0" make-iterator "^1.0.0" object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" dependencies: for-own "^0.1.4" is-extendable "^0.1.1" object.pick@^1.2.0, object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" dependencies: isobject "^3.0.1" on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" dependencies: ee-first "1.1.1" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" once@~1.3.0: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" dependencies: wrappy "1" onetime@^1.0.0: version "1.1.0" resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" dependencies: mimic-fn "^1.0.0" opener@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" dependencies: minimist "~0.0.1" wordwrap "~0.0.2" optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.4" levn "~0.3.0" prelude-ls "~1.1.2" type-check "~0.3.2" wordwrap "~1.0.0" ora@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" dependencies: chalk "^1.1.1" cli-cursor "^1.0.2" cli-spinners "^0.1.2" object-assign "^4.0.1" orchestrator@^0.3.0: version "0.3.8" resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" dependencies: end-of-stream "~0.1.5" sequencify "~0.0.7" stream-consume "~0.1.0" ordered-read-streams@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" os-browserify@^0.3.0, os-browserify@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" dependencies: execa "^0.7.0" lcid "^1.0.0" mem "^1.1.0" os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" p-limit@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" dependencies: p-try "^1.0.0" p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" dependencies: cyclist "~0.2.2" inherits "^2.0.3" readable-stream "^2.1.5" parents@^1.0.0, parents@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" dependencies: path-platform "~0.11.15" parse-asn1@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" path-root "^0.1.1" parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" dependencies: glob-base "^0.3.0" is-dotfile "^1.0.0" is-extglob "^1.0.0" is-glob "^2.0.0" parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" path-browserify@0.0.0, path-browserify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" path-platform@~0.11.15: version "0.11.15" resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" path-root@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" dependencies: path-root-regex "^0.1.0" path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" dependencies: graceful-fs "^4.1.2" pify "^2.0.0" pinkie-promise "^2.0.0" path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" dependencies: pify "^3.0.0" pbkdf2@^3.0.3: version "3.0.16" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" ripemd160 "^2.0.1" safe-buffer "^5.0.1" sha.js "^2.4.8" performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" pkg-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" dependencies: find-up "^2.1.0" please-upgrade-node@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.0.2.tgz#7b9eaeca35aa4a43d6ebdfd10616c042f9a83acc" dependencies: semver-compare "^1.0.0" plugin-error@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" dependencies: ansi-colors "^1.0.1" arr-diff "^4.0.0" arr-union "^3.1.0" extend-shallow "^3.0.2" pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" postcss-calc@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" dependencies: postcss "^5.0.2" postcss-message-helpers "^2.0.0" reduce-css-calc "^1.2.6" postcss-colormin@^2.1.8: version "2.2.2" resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" dependencies: colormin "^1.0.5" postcss "^5.0.13" postcss-value-parser "^3.2.3" postcss-convert-values@^2.3.4: version "2.6.1" resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" dependencies: postcss "^5.0.11" postcss-value-parser "^3.1.2" postcss-discard-comments@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" dependencies: postcss "^5.0.14" postcss-discard-duplicates@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" dependencies: postcss "^5.0.4" postcss-discard-empty@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" dependencies: postcss "^5.0.14" postcss-discard-overridden@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" dependencies: postcss "^5.0.16" postcss-discard-unused@^2.2.1: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" dependencies: postcss "^5.0.14" uniqs "^2.0.0" postcss-filter-plugins@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" dependencies: postcss "^5.0.4" uniqid "^4.0.0" postcss-merge-idents@^2.1.5: version "2.1.7" resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" dependencies: has "^1.0.1" postcss "^5.0.10" postcss-value-parser "^3.1.1" postcss-merge-longhand@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" dependencies: postcss "^5.0.4" postcss-merge-rules@^2.0.3: version "2.1.2" resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" dependencies: browserslist "^1.5.2" caniuse-api "^1.5.2" postcss "^5.0.4" postcss-selector-parser "^2.2.2" vendors "^1.0.0" postcss-message-helpers@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" postcss-minify-font-values@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" dependencies: object-assign "^4.0.1" postcss "^5.0.4" postcss-value-parser "^3.0.2" postcss-minify-gradients@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" dependencies: postcss "^5.0.12" postcss-value-parser "^3.3.0" postcss-minify-params@^1.0.4: version "1.2.2" resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" dependencies: alphanum-sort "^1.0.1" postcss "^5.0.2" postcss-value-parser "^3.0.2" uniqs "^2.0.0" postcss-minify-selectors@^2.0.4: version "2.1.1" resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" dependencies: alphanum-sort "^1.0.2" has "^1.0.1" postcss "^5.0.14" postcss-selector-parser "^2.0.0" postcss-modules-extract-imports@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" postcss-normalize-charset@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" dependencies: postcss "^5.0.5" postcss-normalize-url@^3.0.7: version "3.0.8" resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" dependencies: is-absolute-url "^2.0.0" normalize-url "^1.4.0" postcss "^5.0.14" postcss-value-parser "^3.2.3" postcss-ordered-values@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.1" postcss-reduce-idents@^2.2.2: version "2.4.0" resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" dependencies: postcss "^5.0.4" postcss-value-parser "^3.0.2" postcss-reduce-initial@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" dependencies: postcss "^5.0.4" postcss-reduce-transforms@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" dependencies: has "^1.0.1" postcss "^5.0.8" postcss-value-parser "^3.0.1" postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" postcss-svgo@^2.1.1: version "2.1.6" resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" dependencies: is-svg "^2.0.0" postcss "^5.0.14" postcss-value-parser "^3.2.3" svgo "^0.7.0" postcss-unique-selectors@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" dependencies: alphanum-sort "^1.0.1" postcss "^5.0.4" uniqs "^2.0.0" postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" postcss-zindex@^2.0.1: version "2.2.0" resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" dependencies: has "^1.0.1" postcss "^5.0.4" uniqs "^2.0.0" postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: version "5.2.18" resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" source-map "^0.5.6" supports-color "^3.2.3" postcss@^6.0.1: version "6.0.22" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.22.tgz#e23b78314905c3b90cbd61702121e7a78848f2a3" dependencies: chalk "^2.4.1" source-map "^0.6.1" supports-color "^5.4.0" postcss@^6.0.23: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" dependencies: chalk "^2.4.1" source-map "^0.6.1" supports-color "^5.4.0" pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" dependencies: cross-spawn "^5.0.1" spawn-sync "^1.0.15" which "1.2.x" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" prepend-http@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" pretty-format@^22.4.3: version "22.4.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" pretty-format@^23.0.1: version "23.0.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.0.1.tgz#d61d065268e4c759083bccbca27a01ad7c7601f4" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" process@^0.11.10, process@~0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" progress@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" proxy-addr@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" dependencies: forwarded "~0.1.2" ipaddr.js "1.6.0" prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" pseudomap@^1.0.1, pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" public-encrypt@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" pump@^2.0.0, pump@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3: version "1.5.0" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.0.tgz#30c905a26c88fa0074927af07256672b474b1c15" dependencies: duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" punycode@^1.2.4, punycode@^1.3.2, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" qs@6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" qs@~6.5.1: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" querystring-es3@^0.2.0, querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" randomatic@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" dependencies: is-number "^4.0.0" kind-of "^6.0.0" math-random "^1.0.1" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" raw-body@2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" dependencies: bytes "3.0.0" http-errors "1.6.2" iconv-lite "0.4.19" unpipe "1.0.0" rc@^1.1.7: version "1.2.7" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" dependencies: deep-extend "^0.5.1" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" read-only-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" dependencies: readable-stream "^2.0.2" read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" dependencies: find-up "^1.0.0" read-pkg "^1.0.0" read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" dependencies: find-up "^2.0.0" read-pkg "^3.0.0" read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" dependencies: load-json-file "^1.0.0" normalize-package-data "^2.3.2" path-type "^1.0.0" read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" dependencies: load-json-file "^4.0.0" normalize-package-data "^2.3.2" path-type "^3.0.0" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: 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" "readable-stream@>=1.0.33-1 <1.1.0-0": version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" dependencies: graceful-fs "^4.1.2" minimatch "^3.0.2" readable-stream "^2.0.2" set-immediate-shim "^1.0.1" realpath-native@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" dependencies: util.promisify "^1.0.0" rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" dependencies: resolve "^1.1.6" reduce-css-calc@^1.2.6: version "1.3.0" resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" dependencies: balanced-match "^0.4.2" math-expression-evaluator "^1.2.14" reduce-function-call "^1.0.1" reduce-function-call@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" dependencies: balanced-match "^0.4.2" regenerate@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" regenerator-transform@^0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" dependencies: babel-runtime "^6.18.0" babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" dependencies: is-equal-shallow "^0.1.3" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" regexpp@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" regjsparser "^0.1.4" regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" regjsparser "^0.1.4" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" repeat-string@^1.5.2, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" repeating@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" dependencies: is-finite "^1.0.0" replace-ext@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" replacestream@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" dependencies: escape-string-regexp "^1.0.3" object-assign "^4.0.1" readable-stream "^2.0.2" request-promise-core@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" dependencies: lodash "^4.13.1" request-promise-native@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" dependencies: request-promise-core "1.1.1" stealthy-require "^1.1.0" tough-cookie ">=2.3.3" request@^2.83.0: version "2.85.0" resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" caseless "~0.12.0" combined-stream "~1.0.5" extend "~3.0.1" forever-agent "~0.6.1" form-data "~2.3.1" har-validator "~5.0.3" hawk "~6.0.2" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" json-stringify-safe "~5.0.1" mime-types "~2.1.17" oauth-sign "~0.8.2" performance-now "^2.1.0" qs "~6.5.1" safe-buffer "^5.1.1" stringstream "~0.0.5" tough-cookie "~2.3.3" tunnel-agent "^0.6.0" uuid "^3.1.0" require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@^1.1.4, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.4.0: version "1.7.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" dependencies: path-parse "^1.0.5" restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" dependencies: exit-hook "^1.0.0" onetime "^1.0.0" restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" dependencies: onetime "^2.0.0" signal-exit "^3.0.2" ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" dependencies: align-text "^0.1.1" rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" dependencies: hash-base "^3.0.0" inherits "^2.0.1" rsvp@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" dependencies: aproba "^1.1.1" rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" dependencies: rx-lite "*" rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" rxjs@^6.1.0: version "6.2.0" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.0.tgz#e024d0e180b72756a83c2aaea8f25423751ba978" dependencies: tslib "^1.9.0" safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" sane@^2.0.0: version "2.5.2" resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" dependencies: anymatch "^2.0.0" capture-exit "^1.2.0" exec-sh "^0.2.0" fb-watchman "^2.0.0" micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" watch "~0.18.0" optionalDependencies: fsevents "^1.2.3" sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" schema-utils@^0.4.4, schema-utils@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" semver@^4.1.0: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" dependencies: debug "2.6.9" depd "~1.1.2" destroy "~1.0.4" encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" http-errors "~1.6.2" mime "1.4.1" ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" statuses "~1.4.0" sequencify@~0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" serialize-javascript@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" serve-static@1.13.2: version "1.13.2" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.2" send "0.16.2" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" set-value@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" is-plain-object "^2.0.1" to-object-path "^0.3.0" set-value@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" is-plain-object "^2.0.3" split-string "^3.0.1" setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" setprototypeof@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" sha.js@^2.4.0, sha.js@^2.4.8, sha.js@~2.4.4: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" shasum@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" dependencies: json-stable-stringify "~0.0.0" sha.js "~2.4.4" shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shell-quote@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" dependencies: array-filter "~0.0.0" array-map "~0.0.0" array-reduce "~0.0.0" jsonify "~0.0.0" shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" sigmund@^1.0.1, sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" size-limit@^0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-0.17.1.tgz#6d4ccaaeb8f91206c2d94b4c2fe74275b51af35f" dependencies: bytes "^3.0.0" chalk "^2.4.1" ci-job-number "^0.3.0" compression-webpack-plugin "^1.1.11" cosmiconfig "^5.0.2" css-loader "^0.28.11" escape-string-regexp "^1.0.5" file-loader "^1.1.11" globby "^8.0.1" gzip-size "^4.1.0" memory-fs "^0.4.1" read-pkg-up "^3.0.0" style-loader "^0.21.0" webpack "^4.1.1" webpack-bundle-analyzer "^2.11.2" yargs "^11.0.0" slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" dependencies: is-fullwidth-code-point "^2.0.0" snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" dependencies: define-property "^1.0.0" isobject "^3.0.0" snapdragon-util "^3.0.1" snapdragon-util@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" dependencies: 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" sntp@2.x.x: version "2.1.0" resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" dependencies: hoek "4.x.x" sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" dependencies: 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-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" source-map-support@^0.5.0: version "0.5.5" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.5.tgz#0d4af9e00493e855402e8ec36ebed2d266fceb90" dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@~0.5.3: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" spawn-sync@^1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" dependencies: concat-stream "^1.4.7" os-shim "^0.1.2" spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" spdx-expression-parse@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: version "1.14.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" dashdash "^1.12.0" getpass "^0.1.1" optionalDependencies: bcrypt-pbkdf "^1.0.0" ecc-jsbn "~0.1.1" jsbn "~0.1.0" tweetnacl "~0.14.0" ssri@^5.2.4: version "5.3.0" resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" dependencies: safe-buffer "^5.1.1" stack-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" staged-git-files@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.1.tgz#37c2218ef0d6d26178b1310719309a16a59f8f7b" static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" dependencies: define-property "^0.2.5" object-copy "^0.1.0" "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" stream-browserify@^2.0.0, stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" dependencies: inherits "~2.0.1" readable-stream "^2.0.2" stream-combiner2@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" stream-consume@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" stream-each@^1.1.0: version "1.2.2" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.0.0, stream-http@^2.7.2: version "2.8.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.2.tgz#4126e8c6b107004465918aa2fc35549e77402c87" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" stream-splicer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" dependencies: inherits "^2.0.1" readable-stream "^2.0.2" strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" string-argv@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: code-point-at "^1.0.0" is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" dependencies: safe-buffer "~5.1.0" string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" stringify-object@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" dependencies: get-own-enumerable-property-symbols "^2.0.1" is-obj "^1.0.1" is-regexp "^1.0.0" stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" strip-bom@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" dependencies: first-chunk-stream "^1.0.0" is-utf8 "^0.2.0" strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" dependencies: is-utf8 "^0.2.0" strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" style-loader@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852" dependencies: loader-utils "^1.1.0" schema-utils "^0.4.5" subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" dependencies: minimist "^1.1.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" supports-color@^5.3.0, supports-color@^5.4.0: version "5.4.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" dependencies: has-flag "^3.0.0" svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" dependencies: coa "~1.0.1" colors "~1.1.2" csso "~2.3.1" js-yaml "~3.7.0" mkdirp "~0.5.1" sax "~1.2.1" whet.extend "~0.9.9" symbol-observable@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" syntax-error@^1.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" dependencies: acorn-node "^1.2.0" table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: ajv "^5.2.3" ajv-keywords "^2.1.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" string-width "^2.1.1" tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" tar@^4: version "4.4.2" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462" dependencies: chownr "^1.0.1" fs-minipass "^1.2.5" minipass "^2.2.4" minizlib "^1.1.0" mkdirp "^0.5.0" safe-buffer "^5.1.2" yallist "^3.0.2" test-exclude@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" dependencies: arrify "^1.0.1" micromatch "^3.1.8" object-assign "^4.1.0" read-pkg-up "^1.0.1" require-main-filename "^1.0.1" text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" textextensions@2: version "2.2.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286" throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" through2@^0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" dependencies: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" through2@^2.0.0, through2@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" dependencies: readable-stream "^2.1.5" xtend "~4.0.1" "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" tildify@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" dependencies: os-homedir "^1.0.0" time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" timers-browserify@^1.0.1: version "1.4.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" dependencies: process "~0.11.0" timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" dependencies: os-tmpdir "~1.0.2" tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" dependencies: is-number "^3.0.0" repeat-string "^1.6.1" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" regex-not "^1.0.2" safe-regex "^1.1.0" tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3: version "2.3.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" dependencies: punycode "^1.4.1" tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" dependencies: punycode "^2.1.0" trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" tryer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7" tslib@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.1.tgz#a5d1f0532a49221c87755cfcc89ca37197242ba7" tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" tty-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" dependencies: safe-buffer "^5.0.1" tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" type-is@~1.6.15, type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: media-typer "0.3.0" mime-types "~2.1.18" typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uglify-es@^3.3.4: version "3.3.9" resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" dependencies: commander "~2.13.0" source-map "~0.6.1" uglify-js@^2.6: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: source-map "~0.5.1" yargs "~3.10.0" optionalDependencies: uglify-to-browserify "~1.0.0" uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" uglifyjs-webpack-plugin@^1.2.4: version "1.2.5" resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz#2ef8387c8f1a903ec5e44fa36f9f3cbdcea67641" dependencies: cacache "^10.0.4" find-cache-dir "^1.0.0" schema-utils "^0.4.5" serialize-javascript "^1.4.0" source-map "^0.6.1" uglify-es "^3.3.4" webpack-sources "^1.1.0" worker-farm "^1.5.2" umd@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" dependencies: arr-union "^3.1.0" get-value "^2.0.6" is-extendable "^0.1.1" set-value "^0.4.3" uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" uniqid@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" dependencies: macaddress "^0.2.8" uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" unique-filename@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" dependencies: imurmurhash "^0.1.4" unique-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" dependencies: has-value "^0.3.1" isobject "^3.0.0" upath@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.5.tgz#02cab9ecebe95bbec6d5fc2566325725ab6d1a73" uri-js@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.1.tgz#4595a80a51f356164e22970df64c7abd6ade9850" dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" url@^0.11.0, url@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" dependencies: punycode "1.3.2" querystring "0.2.0" use@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" dependencies: kind-of "^6.0.2" user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" util.promisify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" util@0.10.3, util@^0.10.3, util@~0.10.1: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: inherits "2.0.1" utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" v8flags@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" dependencies: user-home "^1.1.1" validate-npm-package-license@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" vendors@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801" verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: assert-plus "^1.0.0" core-util-is "1.0.2" extsprintf "^1.2.0" vinyl-fs@^0.3.0: version "0.3.14" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" dependencies: defaults "^1.0.0" glob-stream "^3.1.5" glob-watcher "^0.0.6" graceful-fs "^3.0.0" mkdirp "^0.5.0" strip-bom "^1.0.0" through2 "^0.6.1" vinyl "^0.4.0" vinyl-sourcemaps-apply@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" dependencies: source-map "^0.5.1" vinyl@^0.4.0: version "0.4.6" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" dependencies: clone "^0.2.0" clone-stats "^0.0.1" vinyl@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" dependencies: clone "^1.0.0" clone-stats "^0.0.1" replace-ext "0.0.1" vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" dependencies: indexof "0.0.1" vm-browserify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.0.1.tgz#a15d7762c4c48fa6bf9f3309a21340f00ed23063" w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" dependencies: browser-process-hrtime "^0.1.2" walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" dependencies: makeerror "1.0.x" watch@~0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" dependencies: exec-sh "^0.2.0" minimist "^1.2.0" watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" webassemblyjs@1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webassemblyjs/-/webassemblyjs-1.4.3.tgz#0591893efb8fbde74498251cbe4b2d83df9239cb" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/validation" "1.4.3" "@webassemblyjs/wasm-parser" "1.4.3" "@webassemblyjs/wast-parser" "1.4.3" long "^3.2.0" webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" webpack-bundle-analyzer@^2.11.2: version "2.11.2" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.11.2.tgz#5ae05bfccffb16683977237bf319323653e44f9f" dependencies: acorn "^5.3.0" bfj-node4 "^5.2.0" chalk "^2.3.0" commander "^2.13.0" ejs "^2.5.7" express "^4.16.2" filesize "^3.5.11" gzip-size "^4.1.0" lodash "^4.17.4" mkdirp "^0.5.1" opener "^1.4.3" ws "^4.0.0" webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" webpack@^4.1.1: version "4.8.3" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.8.3.tgz#957c8e80000f9e5cc03d775e78b472d8954f4eeb" dependencies: "@webassemblyjs/ast" "1.4.3" "@webassemblyjs/wasm-edit" "1.4.3" "@webassemblyjs/wasm-parser" "1.4.3" acorn "^5.0.0" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" chrome-trace-event "^0.1.1" enhanced-resolve "^4.0.0" eslint-scope "^3.7.1" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" micromatch "^3.1.8" mkdirp "~0.5.0" neo-async "^2.5.0" node-libs-browser "^2.0.0" schema-utils "^0.4.4" tapable "^1.0.0" uglifyjs-webpack-plugin "^1.2.4" watchpack "^1.5.0" webpack-sources "^1.0.1" whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" dependencies: iconv-lite "0.4.19" whatwg-mimetype@^2.0.0, whatwg-mimetype@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz#f0f21d76cbba72362eb609dbed2a30cd17fcc7d4" whatwg-url@^6.4.0: version "6.4.1" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.1.tgz#fdb94b440fd4ad836202c16e9737d511f012fd67" dependencies: lodash.sortby "^4.7.0" tr46 "^1.0.1" webidl-conversions "^4.0.2" whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" which@1.2.x: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: isexe "^2.0.0" which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" dependencies: string-width "^1.0.2" window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" dependencies: errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" dependencies: string-width "^1.0.1" strip-ansi "^3.0.1" wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" signal-exit "^3.0.2" write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" ws@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" dependencies: async-limiter "~1.0.0" safe-buffer "~5.1.0" xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" yargs-parser@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" dependencies: camelcase "^4.1.0" yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" dependencies: camelcase "^4.1.0" yargs@^10.0.3: version "10.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" dependencies: cliui "^4.0.0" decamelize "^1.1.1" find-up "^2.1.0" get-caller-file "^1.0.1" os-locale "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" yargs-parser "^8.1.0" yargs@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" dependencies: cliui "^4.0.0" decamelize "^1.1.1" find-up "^2.1.0" get-caller-file "^1.0.1" os-locale "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" yargs-parser "^9.0.2" yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" dependencies: camelcase "^1.0.2" cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0"