autoprefixer 9.4.9 → 9.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/data/prefixes.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable import-helpers/order-imports */
3
4
  var unpack = require('caniuse-lite').feature;
4
5
 
5
6
  function browsersSort(a, b) {
@@ -196,7 +197,11 @@ f(require('caniuse-lite/data/features/css-filter-function'), function (browsers)
196
197
  });
197
198
  }); // Backdrop-filter
198
199
 
199
- f(require('caniuse-lite/data/features/css-backdrop-filter'), function (browsers) {
200
+ var backdrop = require('caniuse-lite/data/features/css-backdrop-filter');
201
+
202
+ f(backdrop, {
203
+ match: /y\sx|y\s#2/
204
+ }, function (browsers) {
200
205
  return prefix(['backdrop-filter'], {
201
206
  feature: 'css-backdrop-filter',
202
207
  browsers: browsers
@@ -498,7 +503,7 @@ f(require('caniuse-lite/data/features/css-deviceadaptation'), function (browsers
498
503
  var resolut = require('caniuse-lite/data/features/css-media-resolution');
499
504
 
500
505
  f(resolut, {
501
- match: /( x($| )|a #3)/
506
+ match: /( x($| )|a #2)/
502
507
  }, function (browsers) {
503
508
  return prefix(['@resolution'], {
504
509
  feature: 'css-media-resolution',
@@ -698,4 +703,11 @@ f(require('caniuse-lite/data/features/css-color-adjust'), function (browsers) {
698
703
  feature: 'css-color-adjust',
699
704
  browsers: browsers
700
705
  });
706
+ }); // text-orientation
707
+
708
+ f(require('caniuse-lite/data/features/css-text-orientation'), function (browsers) {
709
+ return prefix(['text-orientation'], {
710
+ feature: 'css-text-orientation',
711
+ browsers: browsers
712
+ });
701
713
  });
@@ -6,6 +6,8 @@ var postcss = require('postcss');
6
6
 
7
7
  var agents = require('caniuse-lite').agents;
8
8
 
9
+ var chalk = require('chalk');
10
+
9
11
  var Browsers = require('./browsers');
10
12
 
11
13
  var Prefixes = require('./prefixes');
@@ -14,6 +16,8 @@ var data = require('../data/prefixes');
14
16
 
15
17
  var info = require('./info');
16
18
 
19
+ var WARNING = '\n' + ' Replace Autoprefixer `browsers` option to Browserslist config.\n' + ' Use `browserslist` key in `package.json` or `.browserslistrc` file.\n' + '\n' + ' Using `browsers` option cause some error. Browserslist config \n' + ' can be used for Babel, Autoprefixer, postcss-normalize and other tools.\n' + '\n' + ' If you really need to use option, rename it to `overrideBrowserslist`.\n' + '\n' + ' Learn more at:\n' + ' https://github.com/browserslist/browserslist#readme\n' + ' https://twitter.com/browserslist\n' + '\n';
20
+
17
21
  function isPlainObject(obj) {
18
22
  return Object.prototype.toString.apply(obj) === '[object Object]';
19
23
  }
@@ -62,12 +66,24 @@ module.exports = postcss.plugin('autoprefixer', function () {
62
66
  }
63
67
 
64
68
  if (options.browser) {
65
- throw new Error('Change `browser` option to `browsers` in Autoprefixer');
69
+ throw new Error('Change `browser` option to `overrideBrowserslist` in Autoprefixer');
66
70
  } else if (options.browserslist) {
67
- throw new Error('Change `browserslist` option to `browsers` in Autoprefixer');
71
+ throw new Error('Change `browserslist` option to `overrideBrowserslist` in Autoprefixer');
68
72
  }
69
73
 
70
- if (options.browsers) {
74
+ if (options.overrideBrowserslist) {
75
+ reqs = options.overrideBrowserslist;
76
+ } else if (options.browsers) {
77
+ if (typeof console !== 'undefined' && console.warn) {
78
+ if (chalk && chalk.red) {
79
+ console.warn(chalk.red(WARNING.replace(/`[^`]+`/g, function (i) {
80
+ return chalk.yellow(i.slice(1, -1));
81
+ })));
82
+ } else {
83
+ console.warn(WARNING);
84
+ }
85
+ }
86
+
71
87
  reqs = options.browsers;
72
88
  }
73
89
 
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
4
+
5
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); }
6
+
7
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+
9
+ var Declaration = require('../declaration');
10
+
11
+ var utils = require('../utils');
12
+
13
+ var BackdropFilter =
14
+ /*#__PURE__*/
15
+ function (_Declaration) {
16
+ _inheritsLoose(BackdropFilter, _Declaration);
17
+
18
+ function BackdropFilter(name, prefixes, all) {
19
+ var _this;
20
+
21
+ _this = _Declaration.call(this, name, prefixes, all) || this;
22
+
23
+ if (_this.prefixes) {
24
+ _this.prefixes = utils.uniq(_this.prefixes.map(function (i) {
25
+ return i === '-ms-' ? '-webkit-' : i;
26
+ }));
27
+ }
28
+
29
+ return _this;
30
+ }
31
+
32
+ return BackdropFilter;
33
+ }(Declaration);
34
+
35
+ _defineProperty(BackdropFilter, "names", ['backdrop-filter']);
36
+
37
+ module.exports = BackdropFilter;
@@ -22,11 +22,7 @@ function (_Declaration) {
22
22
 
23
23
  if (_this.prefixes) {
24
24
  _this.prefixes = utils.uniq(_this.prefixes.map(function (i) {
25
- if (i === '-ms-') {
26
- return '-webkit-';
27
- }
28
-
29
- return i;
25
+ return i === '-ms-' ? '-webkit-' : i;
30
26
  }));
31
27
  }
32
28
 
@@ -47,13 +47,10 @@ _defineProperty(BorderRadius, "toMozilla", {});
47
47
 
48
48
  _defineProperty(BorderRadius, "toNormal", {});
49
49
 
50
- var _arr = ['top', 'bottom'];
51
-
52
- for (var _i = 0; _i < _arr.length; _i++) {
50
+ for (var _i = 0, _arr = ['top', 'bottom']; _i < _arr.length; _i++) {
53
51
  var ver = _arr[_i];
54
- var _arr2 = ['left', 'right'];
55
52
 
56
- for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
53
+ for (var _i2 = 0, _arr2 = ['left', 'right']; _i2 < _arr2.length; _i2++) {
57
54
  var hor = _arr2[_i2];
58
55
  var normal = "border-" + ver + "-" + hor + "-radius";
59
56
  var mozilla = "border-radius-" + ver + hor;
@@ -6,10 +6,10 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.crea
6
6
 
7
7
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
8
 
9
- var Value = require('../value');
10
-
11
9
  var list = require('postcss').list;
12
10
 
11
+ var Value = require('../value');
12
+
13
13
  var CrossFade =
14
14
  /*#__PURE__*/
15
15
  function (_Value) {
package/lib/hacks/flex.js CHANGED
@@ -6,12 +6,12 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.crea
6
6
 
7
7
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
8
 
9
+ var list = require('postcss').list;
10
+
9
11
  var flexSpec = require('./flex-spec');
10
12
 
11
13
  var Declaration = require('../declaration');
12
14
 
13
- var list = require('postcss').list;
14
-
15
15
  var Flex =
16
16
  /*#__PURE__*/
17
17
  function (_Declaration) {
@@ -8,16 +8,16 @@ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.crea
8
8
 
9
9
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
10
 
11
+ var parser = require('postcss-value-parser');
12
+
13
+ var range = require('normalize-range');
14
+
11
15
  var OldValue = require('../old-value');
12
16
 
13
17
  var Value = require('../value');
14
18
 
15
19
  var utils = require('../utils');
16
20
 
17
- var parser = require('postcss-value-parser');
18
-
19
- var range = require('normalize-range');
20
-
21
21
  var IS_DIRECTION = /top|left|right|bottom/gi;
22
22
 
23
23
  var Gradient =
@@ -398,8 +398,8 @@ function (_Value) {
398
398
  this.colorStops(params);
399
399
  node.nodes = [];
400
400
 
401
- for (var _i5 = 0; _i5 < params.length; _i5++) {
402
- var param = params[_i5];
401
+ for (var _i5 = 0, _params = params; _i5 < _params.length; _i5++) {
402
+ var param = _params[_i5];
403
403
  node.nodes = node.nodes.concat(param);
404
404
  }
405
405
 
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }
4
+
5
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); }
6
+
7
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+
9
+ var Declaration = require('../declaration');
10
+
11
+ var MaskComposite =
12
+ /*#__PURE__*/
13
+ function (_Declaration) {
14
+ _inheritsLoose(MaskComposite, _Declaration);
15
+
16
+ function MaskComposite() {
17
+ return _Declaration.apply(this, arguments) || this;
18
+ }
19
+
20
+ var _proto = MaskComposite.prototype;
21
+
22
+ /**
23
+ * Prefix mask-composite for webkit
24
+ */
25
+ _proto.insert = function insert(decl, prefix, prefixes) {
26
+ var isCompositeProp = decl.prop === 'mask-composite';
27
+ var compositeValues;
28
+
29
+ if (isCompositeProp) {
30
+ compositeValues = decl.value.split(',');
31
+ } else {
32
+ compositeValues = decl.value.match(MaskComposite.regexp) || [];
33
+ }
34
+
35
+ compositeValues = compositeValues.map(function (el) {
36
+ return el.trim();
37
+ }).filter(function (el) {
38
+ return el;
39
+ });
40
+ var hasCompositeValues = compositeValues.length;
41
+ var compositeDecl;
42
+
43
+ if (hasCompositeValues) {
44
+ compositeDecl = this.clone(decl);
45
+ compositeDecl.value = compositeValues.map(function (value) {
46
+ return MaskComposite.oldValues[value] || value;
47
+ }).join(', ');
48
+
49
+ if (compositeValues.includes('intersect')) {
50
+ compositeDecl.value += ', xor';
51
+ }
52
+
53
+ compositeDecl.prop = prefix + 'mask-composite';
54
+ }
55
+
56
+ if (isCompositeProp) {
57
+ if (!hasCompositeValues) {
58
+ return undefined;
59
+ }
60
+
61
+ if (this.needCascade(decl)) {
62
+ compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix);
63
+ }
64
+
65
+ return decl.parent.insertBefore(decl, compositeDecl);
66
+ }
67
+
68
+ var cloned = this.clone(decl);
69
+ cloned.prop = prefix + cloned.prop;
70
+
71
+ if (hasCompositeValues) {
72
+ cloned.value = cloned.value.replace(MaskComposite.regexp, '');
73
+ }
74
+
75
+ if (this.needCascade(decl)) {
76
+ cloned.raws.before = this.calcBefore(prefixes, decl, prefix);
77
+ }
78
+
79
+ decl.parent.insertBefore(decl, cloned);
80
+
81
+ if (!hasCompositeValues) {
82
+ return decl;
83
+ }
84
+
85
+ if (this.needCascade(decl)) {
86
+ compositeDecl.raws.before = this.calcBefore(prefixes, decl, prefix);
87
+ }
88
+
89
+ return decl.parent.insertBefore(decl, compositeDecl);
90
+ };
91
+
92
+ return MaskComposite;
93
+ }(Declaration);
94
+
95
+ _defineProperty(MaskComposite, "names", ['mask', 'mask-composite']);
96
+
97
+ _defineProperty(MaskComposite, "oldValues", {
98
+ add: 'source-over',
99
+ substract: 'source-out',
100
+ intersect: 'source-in',
101
+ exclude: 'xor'
102
+ });
103
+
104
+ _defineProperty(MaskComposite, "regexp", new RegExp("\\s+(" + Object.keys(MaskComposite.oldValues).join('|') + ")\\b(?!\\))\\s*(?=[,])", 'ig'));
105
+
106
+ module.exports = MaskComposite;
package/lib/prefixer.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ var vendor = require('postcss').vendor;
4
+
3
5
  var Browsers = require('./browsers');
4
6
 
5
7
  var utils = require('./utils');
6
-
7
- var vendor = require('postcss').vendor;
8
8
  /**
9
9
  * Recursively clone objects
10
10
  */
@@ -13,10 +13,8 @@ var vendor = require('postcss').vendor;
13
13
  function _clone(obj, parent) {
14
14
  var cloned = new obj.constructor();
15
15
 
16
- var _arr = Object.keys(obj || {});
17
-
18
- for (var _i = 0; _i < _arr.length; _i++) {
19
- var i = _arr[_i];
16
+ for (var _i = 0, _Object$keys = Object.keys(obj || {}); _i < _Object$keys.length; _i++) {
17
+ var i = _Object$keys[_i];
20
18
  var value = obj[i];
21
19
 
22
20
  if (i === 'parent' && typeof value === 'object') {
package/lib/prefixes.js CHANGED
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var vendor = require('postcss').vendor;
4
+
3
5
  var Declaration = require('./declaration');
4
6
 
5
7
  var Resolution = require('./resolution');
@@ -20,8 +22,6 @@ var Value = require('./value');
20
22
 
21
23
  var utils = require('./utils');
22
24
 
23
- var vendor = require('postcss').vendor;
24
-
25
25
  Selector.hack(require('./hacks/fullscreen'));
26
26
  Selector.hack(require('./hacks/placeholder'));
27
27
  Declaration.hack(require('./hacks/flex'));
@@ -39,6 +39,7 @@ Declaration.hack(require('./hacks/align-self'));
39
39
  Declaration.hack(require('./hacks/appearance'));
40
40
  Declaration.hack(require('./hacks/flex-basis'));
41
41
  Declaration.hack(require('./hacks/mask-border'));
42
+ Declaration.hack(require('./hacks/mask-composite'));
42
43
  Declaration.hack(require('./hacks/align-items'));
43
44
  Declaration.hack(require('./hacks/flex-shrink'));
44
45
  Declaration.hack(require('./hacks/break-props'));
@@ -54,6 +55,7 @@ Declaration.hack(require('./hacks/grid-row-align'));
54
55
  Declaration.hack(require('./hacks/transform-decl'));
55
56
  Declaration.hack(require('./hacks/flex-direction'));
56
57
  Declaration.hack(require('./hacks/image-rendering'));
58
+ Declaration.hack(require('./hacks/backdrop-filter'));
57
59
  Declaration.hack(require('./hacks/background-clip'));
58
60
  Declaration.hack(require('./hacks/text-decoration'));
59
61
  Declaration.hack(require('./hacks/justify-content'));
package/lib/processor.js CHANGED
@@ -204,6 +204,11 @@ function () {
204
204
  word: 'auto-fill'
205
205
  });
206
206
  return undefined;
207
+ } else if (/^grid-template/.test(prop) && value.indexOf('[') !== -1) {
208
+ result.warn('Autoprefixer currently does not support line names. ' + 'Try using grid-template-areas instead.', {
209
+ node: decl,
210
+ word: '['
211
+ });
207
212
  }
208
213
  }
209
214
 
package/lib/resolution.js CHANGED
@@ -4,14 +4,14 @@ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaul
4
4
 
5
5
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); }
6
6
 
7
+ var n2f = require('num2fraction');
8
+
7
9
  var Prefixer = require('./prefixer');
8
10
 
9
11
  var utils = require('./utils');
10
12
 
11
- var n2f = require('num2fraction');
12
-
13
- var REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpi)/gi;
14
- var SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpi)/i;
13
+ var REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpi|x)/gi;
14
+ var SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpi|x)/i;
15
15
 
16
16
  var Resolution =
17
17
  /*#__PURE__*/
package/lib/supports.js CHANGED
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
2
 
3
+ var postcss = require('postcss');
4
+
5
+ var data = require('caniuse-lite').feature(require('caniuse-lite/data/features/css-featurequeries.js'));
6
+
3
7
  var Browsers = require('./browsers');
4
8
 
5
9
  var brackets = require('./brackets');
@@ -8,12 +12,8 @@ var Value = require('./value');
8
12
 
9
13
  var utils = require('./utils');
10
14
 
11
- var postcss = require('postcss');
12
-
13
15
  var supported = [];
14
16
 
15
- var data = require('caniuse-lite').feature(require('caniuse-lite/data/features/css-featurequeries.js'));
16
-
17
17
  for (var browser in data.stats) {
18
18
  var versions = data.stats[browser];
19
19
 
package/lib/value.js CHANGED
@@ -4,14 +4,14 @@ function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaul
4
4
 
5
5
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); }
6
6
 
7
+ var vendor = require('postcss').vendor;
8
+
7
9
  var Prefixer = require('./prefixer');
8
10
 
9
11
  var OldValue = require('./old-value');
10
12
 
11
13
  var utils = require('./utils');
12
14
 
13
- var vendor = require('postcss').vendor;
14
-
15
15
  var Value =
16
16
  /*#__PURE__*/
17
17
  function (_Prefixer) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoprefixer",
3
- "version": "9.4.9",
3
+ "version": "9.6.0",
4
4
  "description": "Parse CSS and add vendor prefixes to CSS rules using values from the Can I Use website",
5
5
  "keywords": ["autoprefixer", "css", "prefix", "postcss", "postcss-plugin"],
6
6
  "author": "Andrey Sitnik <andrey@sitnik.ru>",
@@ -10,15 +10,19 @@
10
10
  "node": ">=6.0.0"
11
11
  },
12
12
  "dependencies": {
13
- "browserslist": "^4.4.2",
14
- "caniuse-lite": "^1.0.30000939",
13
+ "browserslist": "^4.6.1",
14
+ "caniuse-lite": "^1.0.30000971",
15
+ "chalk": "^2.4.2",
15
16
  "normalize-range": "^0.1.2",
16
17
  "num2fraction": "^1.2.2",
17
- "postcss": "^7.0.14",
18
+ "postcss": "^7.0.16",
18
19
  "postcss-value-parser": "^3.3.1"
19
20
  },
20
21
  "bin": {
21
22
  "autoprefixer": "./bin/autoprefixer"
22
23
  },
24
+ "browser": {
25
+ "chalk": false
26
+ },
23
27
  "main": "lib/autoprefixer"
24
28
  }