Socket
Socket
Sign inDemoInstall

analyze-css

Package Overview
Dependencies
11
Maintainers
1
Versions
188
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.9.6 to 0.10.0

examples/propertyResets.css

4

bin/analyze-css.js

@@ -27,2 +27,4 @@ #!/usr/bin/env node

.describe('no-offenders', 'Show only the metrics without the offenders part').boolean('no-offenders').alias('no-offenders', 'N')
.describe('auth-user', 'Sets the user name used for HTTP authentication').string('auth-user')
.describe('auth-pass', 'Sets the password used for HTTP authentication').string('auth-pass')
// version / help

@@ -70,2 +72,4 @@ .describe('version', 'Show version number and quit').boolean('version').alias('version', 'V')

runnerOpts.noOffenders = argv['no-offenders'] || (argv.offenders === false);
runnerOpts.authUser = argv['auth-user'];
runnerOpts.authPass = argv['auth-pass'];

@@ -72,0 +76,0 @@ debug('opts: %j', runnerOpts);

14

data/prefixes.js

@@ -11,6 +11,6 @@ #!/usr/bin/env node

fs = require('fs'),
instance = new autoprefixer(),
prefixes = instance.data.prefixes,
prefixes = autoprefixer.data.prefixes,
// data
browsersByPrefix = {},
namesByVendor = {},
data;

@@ -32,4 +32,4 @@

// [prefix] => [supported browsers]
Object.keys(instance.data.browsers).forEach(function(vendor) {
var vendorData = instance.data.browsers[vendor],
Object.keys(autoprefixer.data.browsers).forEach(function(vendor) {
var vendorData = autoprefixer.data.browsers[vendor],
prefix = vendorData.prefix;

@@ -52,5 +52,9 @@

});
// "and_uc" : "UC Browser for Android"
namesByVendor[vendor] = vendorData.browser;
});
debug('Browsers by prefix: %j' ,browsersByPrefix);
debug('Names by vendor: %j', namesByVendor);

@@ -79,3 +83,3 @@ function getLatestVersions(browsers, oldest) {

Object.keys(latest).forEach(function(vendor) {
ret.push(vendor + ' ' + latest[vendor]);
ret.push((namesByVendor[vendor] || vendor) + ' ' + latest[vendor]);
});

@@ -82,0 +86,0 @@

@@ -71,2 +71,3 @@ /**

analyzer.EXIT_NEED_OPTIONS = 2;
analyzer.EXIT_PARSING_FAILED = 251;
analyzer.EXIT_EMPTY_CSS = 252;

@@ -231,3 +232,4 @@ analyzer.EXIT_CSS_PASSED_IS_NOT_STRING = 253;

if (typeof parsedSelector === 'undefined') {
throw 'Unable to parse "' + selector + '" selector';
var positionDump = "Rule position start @ " + rule.position.start.line + ':' + rule.position.start.column + ", end @ " + rule.position.end.line + ':' + rule.position.end.column;
throw this.error('Unable to parse "' + selector + '" selector. ' + positionDump, analyzer.EXIT_PARSING_FAILED);
}

@@ -325,3 +327,7 @@

// now go through parsed CSS tree and emit events for rules
this.run();
try {
this.run();
} catch (ex) {
return ex;
}

@@ -328,0 +334,0 @@ this.emit('report');

@@ -87,2 +87,6 @@ /**

if (options.authUser && options.authPass) {
requestOptions.auth = options.authUser + ':' + options.authPass;
}
request(requestOptions, function(err, resp, css) {

@@ -89,0 +93,0 @@ if (err || resp.statusCode !== 200) {

{
"name": "analyze-css",
"version": "0.9.6",
"version": "0.10.0",
"author": "Maciej Brencz <maciej.brencz@gmail.com> (https://github.com/macbre)",

@@ -23,8 +23,9 @@ "description": "CSS selectors complexity and performance analyzer",

"dependencies": {
"cli": "~0.6.2",
"cli": "0.8.x",
"css": "2.2.x",
"debug": "~2.1.0",
"css-shorthand-properties": "1.0.x",
"debug": "2.2.x",
"fast-stats": "0.0.x",
"glob": "4.4.x",
"node-sass": "3.0.0-alpha.0",
"glob": "5.0.x",
"node-sass": "3.2.x",
"onecolor": "2.4.x",

@@ -36,8 +37,8 @@ "optimist": "0.6.x",

"devDependencies": {
"autoprefixer-core": "5.1.x",
"browserslist": "0.2.x",
"autoprefixer-core": "^5.2.1",
"browserslist": "0.5.x",
"istanbul": "0.3.x",
"js-beautify": "~1.5.4",
"jshint": "2.6.x",
"mocha": "~2.1.0"
"jshint": "2.8.x",
"mocha": "2.2.x"
},

@@ -44,0 +45,0 @@ "bin": "./bin/analyze-css.js",

@@ -38,2 +38,4 @@ analyze-css

Basic HTTP authentication can be provided through the options `--auth-user` and `--auth-pass`.
### CommonJS module

@@ -97,2 +99,3 @@

"oldPropertyPrefixes": 79,
"propertyResets": 0,
"qualifiedSelectors": 28,

@@ -105,2 +108,4 @@ "specificityIdAvg": 0.04,

"specificityTagTotal": 562,
"selectors": 712,
"selectorLengthAvg": 1.5722460658082975,
"selectorsByAttribute": 92,

@@ -114,3 +119,2 @@ "selectorsByClass": 600,

"rules": 433,
"selectors": 712,
"declarations": 1288

@@ -147,2 +151,3 @@ },

* **oldPropertyPrefixes**: number of properties with no longer needed vendor prefix, powered by data provided by [autoprefixer](https://github.com/ai/autoprefixer) (e.g. ``--moz-border-radius``)
* **propertyResets**: number of [accidental property resets](http://css-tricks.com/accidental-css-resets/)
* **qualifiedSelectors**: number of [qualified selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficient_CSS) (e.g. ``header#nav``, ``.foo#bar``, ``h1.title``)

@@ -155,2 +160,4 @@ * **specificityIdAvg**: average [specificity](http://css-tricks.com/specifics-on-css-specificity/) for ID

* **specificityTagTotal**: total [specificity](http://css-tricks.com/specifics-on-css-specificity/) for element
* **selectors**: number of selectors (e.g. ``.foo, .bar { color: red }`` is counted as two selectors - ``.foo`` and ``.bar``)
* **selectorLengthAvg**: average length of selector (e.g. for ``.foo .bar, #test div > span { color: red }`` will be set as 2.5)
* **selectorsByAttribute**: number of selectors by attribute (e.g. ``.foo[value=bar]``)

@@ -164,3 +171,2 @@ * **selectorsByClass**: number of selectors by class

* **rules**: number of rules (e.g. ``.foo, .bar { color: red }`` is counted as one rule)
* **selectors**: number of selectors (e.g. ``.foo, .bar { color: red }`` is counted as two selectors - ``.foo`` and ``.bar``)
* **declarations**: number of declarations (e.g. ``.foo, .bar { color: red }`` is counted as one declaration - ``color: red``)

@@ -167,0 +173,0 @@

@@ -14,2 +14,3 @@ 'use strict';

'table': ['tr', 'th'], // e.g. table can not be followed by any of tr / th
'tr': ['td', 'th'],
};

@@ -16,0 +17,0 @@

{
"generated": "2015-02-23 using autoprefixer-core v5.1.7",
"generated": "2015-07-06 using autoprefixer-core v5.2.1",
"browsers": [
"and_chr 40",
"and_chr 42",
"and_uc 9.9",

@@ -9,7 +9,7 @@ "android 4.2-4.3",

"android 4.4.3-4.4.4",
"chrome 39",
"chrome 40",
"chrome 42",
"chrome 43",
"firefox 31",
"firefox 34",
"firefox 35",
"firefox 38",
"firefox 39",
"ie 10",

@@ -21,9 +21,8 @@ "ie 11",

"ie_mob 11",
"ios_saf 7.0-7.1",
"ios_saf 8",
"ios_saf 8.1",
"ios_saf 8.1-8.3",
"op_mini 5.0-8.0",
"opera 12.1",
"opera 26",
"opera 27",
"opera 29",
"opera 30",
"safari 7.1",

@@ -39,7 +38,7 @@ "safari 8"

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-border-radius": {
"keep": false,
"msg": "was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier"
"msg": "was required by Android Browser 2.1, Chrome 4, iOS Safari 3.2, Safari 4 and earlier"
},

@@ -56,7 +55,7 @@ "-o-border-radius": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-border-top-left-radius": {
"keep": false,
"msg": "was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier"
"msg": "was required by Android Browser 2.1, Chrome 4, iOS Safari 3.2, Safari 4 and earlier"
},

@@ -73,7 +72,7 @@ "-o-border-top-left-radius": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-border-top-right-radius": {
"keep": false,
"msg": "was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier"
"msg": "was required by Android Browser 2.1, Chrome 4, iOS Safari 3.2, Safari 4 and earlier"
},

@@ -90,7 +89,7 @@ "-o-border-top-right-radius": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-border-bottom-right-radius": {
"keep": false,
"msg": "was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier"
"msg": "was required by Android Browser 2.1, Chrome 4, iOS Safari 3.2, Safari 4 and earlier"
},

@@ -107,7 +106,7 @@ "-o-border-bottom-right-radius": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-border-bottom-left-radius": {
"keep": false,
"msg": "was required by android 2.1, chrome 4, ios_saf 3.2, safari 4 and earlier"
"msg": "was required by Android Browser 2.1, Chrome 4, iOS Safari 3.2, Safari 4 and earlier"
},

@@ -124,7 +123,7 @@ "-o-border-bottom-left-radius": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-box-shadow": {
"keep": false,
"msg": "was required by android 3, chrome 9, ios_saf 4.2, safari 5 and earlier"
"msg": "was required by Android Browser 3, Chrome 9, iOS Safari 4.2, Safari 5 and earlier"
},

@@ -141,7 +140,7 @@ "-o-box-shadow": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -158,7 +157,7 @@ "-o-animation": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-name": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -175,7 +174,7 @@ "-o-animation-name": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-duration": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -192,7 +191,7 @@ "-o-animation-duration": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-delay": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -209,7 +208,7 @@ "-o-animation-delay": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-direction": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -226,7 +225,7 @@ "-o-animation-direction": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-fill-mode": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -243,7 +242,7 @@ "-o-animation-fill-mode": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-iteration-count": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -260,7 +259,7 @@ "-o-animation-iteration-count": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-play-state": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -277,7 +276,7 @@ "-o-animation-play-state": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-animation-timing-function": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -294,7 +293,7 @@ "-o-animation-timing-function": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-@keyframes": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -311,7 +310,7 @@ "-o-@keyframes": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transition": {
"keep": true,
"msg": "required by android 4.2, and_uc 9.9 and later"
"msg": "required by Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -328,7 +327,7 @@ "-o-transition": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transition-property": {
"keep": true,
"msg": "required by android 4.2, and_uc 9.9 and later"
"msg": "required by Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -345,7 +344,7 @@ "-o-transition-property": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transition-duration": {
"keep": true,
"msg": "required by android 4.2, and_uc 9.9 and later"
"msg": "required by Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -362,7 +361,7 @@ "-o-transition-duration": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transition-delay": {
"keep": true,
"msg": "required by android 4.2, and_uc 9.9 and later"
"msg": "required by Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -379,7 +378,7 @@ "-o-transition-delay": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transition-timing-function": {
"keep": true,
"msg": "required by android 4.2, and_uc 9.9 and later"
"msg": "required by Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -392,11 +391,11 @@ "-o-transition-timing-function": {

"keep": true,
"msg": "required by ie 9 and later"
"msg": "required by IE 9 and later"
},
"-moz-transform": {
"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transform": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -409,11 +408,11 @@ "-o-transform": {

"keep": true,
"msg": "required by ie 9 and later"
"msg": "required by IE 9 and later"
},
"-moz-transform-origin": {
"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transform-origin": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -430,7 +429,7 @@ "-o-transform-origin": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-perspective": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -447,7 +446,7 @@ "-o-perspective": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-perspective-origin": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -464,7 +463,7 @@ "-o-perspective-origin": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-transform-style": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -481,7 +480,7 @@ "-o-transform-style": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "was required by Firefox 15 and earlier"
},
"-webkit-backface-visibility": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -498,7 +497,7 @@ "-o-backface-visibility": {

"keep": false,
"msg": "was required by firefox 28 and earlier"
"msg": "was required by Firefox 28 and earlier"
},
"-webkit-box-sizing": {
"keep": false,
"msg": "was required by android 3, chrome 9, ios_saf 4.2, safari 5 and earlier"
"msg": "was required by Android Browser 3, Chrome 9, iOS Safari 4.2, Safari 5 and earlier"
},

@@ -519,3 +518,3 @@ "-o-box-sizing": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -532,7 +531,7 @@ "-o-filter": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-columns": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -549,7 +548,7 @@ "-o-columns": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-width": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -566,7 +565,7 @@ "-o-column-width": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-gap": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -583,7 +582,7 @@ "-o-column-gap": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-rule": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -600,7 +599,7 @@ "-o-column-rule": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-rule-color": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -617,7 +616,7 @@ "-o-column-rule-color": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-rule-width": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -634,7 +633,7 @@ "-o-column-rule-width": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-count": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -651,7 +650,7 @@ "-o-column-count": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-rule-style": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -668,7 +667,7 @@ "-o-column-rule-style": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-span": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -685,7 +684,7 @@ "-o-column-span": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-column-fill": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -702,7 +701,7 @@ "-o-column-fill": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-break-before": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -719,7 +718,7 @@ "-o-break-before": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-break-after": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -736,7 +735,7 @@ "-o-break-after": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-break-inside": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -749,11 +748,11 @@ "-o-break-inside": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-user-select": {
"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-user-select": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -766,11 +765,11 @@ "-o-user-select": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -783,11 +782,11 @@ "-o-flex": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-grow": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-grow": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -800,11 +799,11 @@ "-o-flex-grow": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-shrink": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-shrink": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -817,11 +816,11 @@ "-o-flex-shrink": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-basis": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-basis": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -834,11 +833,11 @@ "-o-flex-basis": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-direction": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-direction": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -851,11 +850,11 @@ "-o-flex-direction": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-wrap": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-wrap": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -868,11 +867,11 @@ "-o-flex-wrap": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-flex-flow": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-flex-flow": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -885,11 +884,11 @@ "-o-flex-flow": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-justify-content": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-justify-content": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -902,11 +901,11 @@ "-o-justify-content": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-order": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-order": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -919,11 +918,11 @@ "-o-order": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-align-items": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-align-items": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -936,11 +935,11 @@ "-o-align-items": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-align-self": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-align-self": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -953,11 +952,11 @@ "-o-align-self": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},
"-moz-align-content": {
"keep": false,
"msg": "was required by firefox 21 and earlier"
"msg": "was required by Firefox 21 and earlier"
},
"-webkit-align-content": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -974,7 +973,7 @@ "-o-align-content": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-background-clip": {
"keep": false,
"msg": "was required by android 2.3, opera 10 and earlier"
"msg": "was required by Android Browser 2.3, Opera 10 and earlier"
},

@@ -991,7 +990,7 @@ "-o-background-clip": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-background-origin": {
"keep": false,
"msg": "was required by android 2.3, opera 10 and earlier"
"msg": "was required by Android Browser 2.3, Opera 10 and earlier"
},

@@ -1008,7 +1007,7 @@ "-o-background-origin": {

"keep": false,
"msg": "was required by firefox 3.6 and earlier"
"msg": "was required by Firefox 3.6 and earlier"
},
"-webkit-background-size": {
"keep": false,
"msg": "was required by android 2.3, opera 10 and earlier"
"msg": "was required by Android Browser 2.3, Opera 10 and earlier"
},

@@ -1025,7 +1024,7 @@ "-o-background-size": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-font-feature-settings": {
"keep": true,
"msg": "required by chrome 39, opera 26, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Opera 29, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1042,7 +1041,7 @@ "-o-font-feature-settings": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-font-variant-ligatures": {
"keep": true,
"msg": "required by chrome 39, opera 26, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Opera 29, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1059,7 +1058,7 @@ "-o-font-variant-ligatures": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-font-language-override": {
"keep": true,
"msg": "required by chrome 39, opera 26, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Opera 29, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1076,7 +1075,7 @@ "-o-font-language-override": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-font-kerning": {
"keep": true,
"msg": "required by chrome 39, opera 26, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Opera 29, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1093,23 +1092,23 @@ "-o-font-kerning": {

"keep": false,
"msg": "was required by firefox 14 and earlier"
"msg": "was required by Firefox 14 and earlier"
},
"-webkit-border-image": {
"keep": true,
"msg": "required by opera 12.1, android 4.2 and later"
"msg": "required by Opera 12.1, Android Browser 4.2 and later"
},
"-o-border-image": {
"keep": false,
"msg": "prefix is no longer supported"
"keep": true,
"msg": "required by Opera Mini 5 and later"
},
"-ms-hyphens": {
"keep": true,
"msg": "required by ie 10 and later"
"msg": "required by IE 10 and later"
},
"-moz-hyphens": {
"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-hyphens": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, UC Browser for Android 9.9 and later"
},

@@ -1126,15 +1125,15 @@ "-o-hyphens": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-tab-size": {
"keep": true,
"msg": "required by opera 12.1 and later"
"msg": "required by Opera 12.1 and later"
},
"-o-tab-size": {
"keep": true,
"msg": "required by op_mini 5 and later"
"msg": "required by Opera Mini 5 and later"
},
"-ms-touch-action": {
"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},

@@ -1159,7 +1158,7 @@ "-moz-touch-action": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-text-decoration-style": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, ios_saf 8 and later"
"msg": "required by Chrome 42, Safari 7.1, iOS Safari 8 and later"
},

@@ -1176,7 +1175,7 @@ "-o-text-decoration-style": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-text-decoration-line": {
"keep": false,
"msg": "prefix is no longer supported"
"keep": true,
"msg": "required by Chrome 42, Safari 7.1, iOS Safari 8 and later"
},

@@ -1193,7 +1192,7 @@ "-o-text-decoration-line": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-text-decoration-color": {
"keep": false,
"msg": "prefix is no longer supported"
"keep": true,
"msg": "required by Chrome 42, Safari 7.1, iOS Safari 8 and later"
},

@@ -1206,3 +1205,3 @@ "-o-text-decoration-color": {

"keep": true,
"msg": "required by ie_mob 10 and later"
"msg": "required by IE Mobile 10 and later"
},

@@ -1215,3 +1214,3 @@ "-moz-text-size-adjust": {

"keep": true,
"msg": "required by ios_saf 7, and_uc 9.9 and later"
"msg": "required by iOS Safari 8, UC Browser for Android 9.9 and later"
},

@@ -1232,3 +1231,3 @@ "-o-text-size-adjust": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1249,3 +1248,3 @@ "-o-mask-clip": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1266,3 +1265,3 @@ "-o-mask-composite": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1283,3 +1282,3 @@ "-o-mask-image": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1300,3 +1299,3 @@ "-o-mask-origin": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1317,3 +1316,3 @@ "-o-mask-repeat": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1334,3 +1333,3 @@ "-o-clip-path": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1351,3 +1350,3 @@ "-o-mask": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1368,3 +1367,3 @@ "-o-mask-position": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.2, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1385,3 +1384,3 @@ "-o-mask-size": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, android 4.4, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.4, Chrome for Android 42 and later"
},

@@ -1402,7 +1401,7 @@ "-o-box-decoration-break": {

"keep": true,
"msg": "required by opera 12.1 and later"
"msg": "required by Opera 12.1 and later"
},
"-o-object-fit": {
"keep": true,
"msg": "required by op_mini 5 and later"
"msg": "required by Opera Mini 5 and later"
},

@@ -1419,7 +1418,7 @@ "-ms-object-position": {

"keep": true,
"msg": "required by opera 12.1 and later"
"msg": "required by Opera 12.1 and later"
},
"-o-object-position": {
"keep": true,
"msg": "required by op_mini 5 and later"
"msg": "required by Opera Mini 5 and later"
},

@@ -1436,3 +1435,3 @@ "-ms-shape-margin": {

"keep": true,
"msg": "required by safari 7.1, ios_saf 8 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -1453,3 +1452,3 @@ "-o-shape-margin": {

"keep": true,
"msg": "required by safari 7.1, ios_saf 8 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -1470,3 +1469,3 @@ "-o-shape-outside": {

"keep": true,
"msg": "required by safari 7.1, ios_saf 8 and later"
"msg": "required by Safari 7.1, iOS Safari 8 and later"
},

@@ -1487,3 +1486,3 @@ "-o-shape-image-threshold": {

"keep": false,
"msg": "was required by opera 10.6 and earlier"
"msg": "was required by Opera 10.6 and earlier"
},

@@ -1504,3 +1503,3 @@ "-o-text-overflow": {

"keep": true,
"msg": "required by chrome 39, opera 26, android 4.4, and_chr 40, and_uc 9.9 and later"
"msg": "required by Chrome 42, Opera 29, Android Browser 4.4, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1513,3 +1512,3 @@ "-o-text-emphasis": {

"keep": true,
"msg": "required by ie 10, ie_mob 10 and later"
"msg": "required by IE 10, IE Mobile 10 and later"
},

@@ -1526,3 +1525,3 @@ "-moz-@viewport": {

"keep": true,
"msg": "required by op_mini 5 and later"
"msg": "required by Opera Mini 5 and later"
},

@@ -1535,7 +1534,7 @@ "-ms-@resolution": {

"keep": false,
"msg": "was required by firefox 15 and earlier"
"msg": "prefix is no longer supported"
},
"-webkit-@resolution": {
"keep": true,
"msg": "required by safari 7.1, ios_saf 7, android 4.2, and_uc 9.9 and later"
"msg": "required by Safari 7.1, iOS Safari 8, Android Browser 4.2, UC Browser for Android 9.9 and later"
},

@@ -1552,3 +1551,3 @@ "-o-@resolution": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},

@@ -1565,3 +1564,3 @@ "-webkit-text-align-last": {

"keep": true,
"msg": "required by ie 8, ie_mob 10 and later"
"msg": "required by IE 8, IE Mobile 10 and later"
},

@@ -1573,4 +1572,4 @@ "-moz-image-rendering": {

"-webkit-image-rendering": {
"keep": true,
"msg": "required by and_uc 9.9 and later"
"keep": false,
"msg": "prefix is no longer supported"
},

@@ -1587,7 +1586,7 @@ "-o-image-rendering": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-border-inline-start": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1604,7 +1603,7 @@ "-o-border-inline-start": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-border-inline-end": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1621,7 +1620,7 @@ "-o-border-inline-end": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-margin-inline-start": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1638,7 +1637,7 @@ "-o-margin-inline-start": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-margin-inline-end": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1655,7 +1654,7 @@ "-o-margin-inline-end": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-padding-inline-start": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1672,7 +1671,7 @@ "-o-padding-inline-start": {

"keep": true,
"msg": "required by firefox 31 and later"
"msg": "required by Firefox 31 and later"
},
"-webkit-padding-inline-end": {
"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1693,3 +1692,3 @@ "-o-padding-inline-end": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1710,3 +1709,3 @@ "-o-border-block-start": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1727,3 +1726,3 @@ "-o-border-block-end": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1744,3 +1743,3 @@ "-o-margin-block-start": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1761,3 +1760,3 @@ "-o-margin-block-end": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1778,3 +1777,3 @@ "-o-padding-block-start": {

"keep": true,
"msg": "required by chrome 39, safari 7.1, opera 26, ios_saf 7, and_chr 40 and later"
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},

@@ -1784,4 +1783,20 @@ "-o-padding-block-end": {

"msg": "prefix is no longer supported"
},
"-ms-appearance": {
"keep": false,
"msg": "prefix is no longer supported"
},
"-moz-appearance": {
"keep": true,
"msg": "required by Firefox 31 and later"
},
"-webkit-appearance": {
"keep": true,
"msg": "required by Chrome 42, Safari 7.1, Opera 29, iOS Safari 8, Android Browser 4.2, Chrome for Android 42, UC Browser for Android 9.9 and later"
},
"-o-appearance": {
"keep": false,
"msg": "prefix is no longer supported"
}
}
}
'use strict';
function rule(analyzer) {
var selectors = 0,
selectorsLength = 0;
analyzer.setMetric('selectors');
analyzer.setMetric('selectorLengthAvg');
analyzer.setMetric('selectorsByAttribute');

@@ -14,4 +20,5 @@ analyzer.setMetric('selectorsByClass');

analyzer.on('selector', function() {
analyzer.incrMetric('selectors');
analyzer.on('selector', function(rule, selector, expressions) {
selectors += 1;
selectorsLength += expressions.length;
});

@@ -49,2 +56,7 @@

});
analyzer.on('report', function() {
analyzer.setMetric('selectors', selectors);
analyzer.setMetric('selectorLengthAvg', selectorsLength / selectors);
});
}

@@ -51,0 +63,0 @@

@@ -26,2 +26,9 @@ /*global describe, it */

code: analyzer.EXIT_CSS_PASSED_IS_NOT_STRING
},
// issue #98
{
name: 'Invalid CSS selector',
css: 'foo, bar, {color: red}',
check: /Unable to parse "" selector. Rule position start @ 1:1, end @ 1:23/,
code: analyzer.EXIT_PARSING_FAILED
}

@@ -35,4 +42,10 @@ ];

new analyzer(test.css, function(err, res) {
assert.equal(test.check.test(err && err.toString()), true, err);
assert.equal(err instanceof Error, true, 'Error should be thrown');
if (!test.check.test(err.toString())) {
assert.fail(err.toString(), test.check);
}
assert.equal(err.code, test.code);
assert.equal(res, null);
done();

@@ -39,0 +52,0 @@ });

@@ -95,2 +95,34 @@ exports.tests = [

},
// tr + td
{
css: '.foo tr td {}',
metrics: {
redundantChildNodesSelectors: 1
}
},
{
css: '.foo tr th {}',
metrics: {
redundantChildNodesSelectors: 1
}
},
// table + tr & tr + td
{
css: 'table.recommended tr td {}',
metrics: {
redundantChildNodesSelectors: 2
}
},
{
css: 'table.tableborder tr.first td {}',
metrics: {
redundantChildNodesSelectors: 2
}
},
{
css: 'table tr th.first {}',
metrics: {
redundantChildNodesSelectors: 2
}
},
];

@@ -7,2 +7,3 @@ exports.tests = [

selectors: 2,
selectorLengthAvg: 1,
declarations: 2

@@ -27,3 +28,4 @@ }

selectorsByClass: 1,
selectorsByTag: 3
selectorsByTag: 3,
selectorLengthAvg: 1.5
}

@@ -41,2 +43,3 @@ },

selectorsByAttribute: 1,
selectorLengthAvg: 1
}

@@ -65,3 +68,10 @@ },

}
},
{
css: 'div .foo, div .bar, div .foo .bar, div#foo .bar span.test {}',
metrics: {
selectors: 4,
selectorLengthAvg: 2.5
}
}
];

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc