autoprefixer 9.6.1 → 9.6.5

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/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
+ ## 9.6.5
5
+ * Fix selector prefixing (by Andrey Alexandrov).
6
+
7
+ ## 9.6.4
8
+ * Now the real fix for `'startsWith' of undefined` error.
9
+
10
+ ## 9.6.3
11
+ * Fix `Cannot read property 'startsWith' of undefined` error.
12
+
13
+ ## 9.6.2
14
+ * Fix false `Replace fill to stretch` warning.
15
+
4
16
  ## 9.6.1
5
17
  * Fix `-webkit-line-clamp` truncating multi-line text support.
6
18
 
package/data/prefixes.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- /* eslint-disable import-helpers/order-imports */
4
3
  var unpack = require('caniuse-lite').feature;
5
4
 
6
5
  function browsersSort(a, b) {
@@ -54,7 +54,7 @@ module.exports = postcss.plugin('autoprefixer', function () {
54
54
  reqs = undefined;
55
55
  } else if (reqs.length === 0 || reqs.length === 1 && !reqs[0]) {
56
56
  reqs = undefined;
57
- } else if (reqs.length <= 2 && (reqs[0] instanceof Array || !reqs[0])) {
57
+ } else if (reqs.length <= 2 && (Array.isArray(reqs[0]) || !reqs[0])) {
58
58
  options = reqs[1];
59
59
  reqs = reqs[0];
60
60
  } else if (typeof reqs[reqs.length - 1] === 'object') {
@@ -142,11 +142,11 @@ module.exports = postcss.plugin('autoprefixer', function () {
142
142
  module.exports.data = {
143
143
  browsers: agents,
144
144
  prefixes: data
145
- /**
146
- * Autoprefixer default browsers
147
- */
148
-
149
145
  };
146
+ /**
147
+ * Autoprefixer default browsers
148
+ */
149
+
150
150
  module.exports.defaults = browserslist.defaults;
151
151
  /**
152
152
  * Inspect with default Autoprefixer
package/lib/brackets.js CHANGED
@@ -12,8 +12,19 @@ var brackets = {
12
12
  var current = [''];
13
13
  var stack = [current];
14
14
 
15
- for (var i = 0; i < str.length; i++) {
16
- var sym = str[i];
15
+ for (var _iterator = str, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
16
+ var _ref;
17
+
18
+ if (_isArray) {
19
+ if (_i >= _iterator.length) break;
20
+ _ref = _iterator[_i++];
21
+ } else {
22
+ _i = _iterator.next();
23
+ if (_i.done) break;
24
+ _ref = _i.value;
25
+ }
26
+
27
+ var sym = _ref;
17
28
 
18
29
  if (sym === '(') {
19
30
  current = [''];
@@ -41,19 +52,19 @@ var brackets = {
41
52
  stringify: function stringify(ast) {
42
53
  var result = '';
43
54
 
44
- for (var _iterator = ast, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
45
- var _ref;
55
+ for (var _iterator2 = ast, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
56
+ var _ref2;
46
57
 
47
- if (_isArray) {
48
- if (_i >= _iterator.length) break;
49
- _ref = _iterator[_i++];
58
+ if (_isArray2) {
59
+ if (_i2 >= _iterator2.length) break;
60
+ _ref2 = _iterator2[_i2++];
50
61
  } else {
51
- _i = _iterator.next();
52
- if (_i.done) break;
53
- _ref = _i.value;
62
+ _i2 = _iterator2.next();
63
+ if (_i2.done) break;
64
+ _ref2 = _i2.value;
54
65
  }
55
66
 
56
- var i = _ref;
67
+ var i = _ref2;
57
68
 
58
69
  if (typeof i === 'object') {
59
70
  result += "(" + brackets.stringify(i) + ")";
package/lib/browsers.js CHANGED
@@ -90,7 +90,7 @@ function () {
90
90
  ;
91
91
 
92
92
  _proto.isSelected = function isSelected(browser) {
93
- return this.selected.indexOf(browser) !== -1;
93
+ return this.selected.includes(browser);
94
94
  };
95
95
 
96
96
  return Browsers;
@@ -69,7 +69,7 @@ function (_Prefixer) {
69
69
  continue;
70
70
  }
71
71
 
72
- if (value.indexOf(other) !== -1) {
72
+ if (value.includes(other)) {
73
73
  return true;
74
74
  }
75
75
  }
@@ -92,7 +92,7 @@ function (_Prefixer) {
92
92
 
93
93
  _proto.needCascade = function needCascade(decl) {
94
94
  if (!decl._autoprefixerCascade) {
95
- decl._autoprefixerCascade = this.all.options.cascade !== false && decl.raw('before').indexOf('\n') !== -1;
95
+ decl._autoprefixerCascade = this.all.options.cascade !== false && decl.raw('before').includes('\n');
96
96
  }
97
97
 
98
98
  return decl._autoprefixerCascade;
@@ -21,6 +21,9 @@ function (_Declaration) {
21
21
 
22
22
  var _proto = AlignContent.prototype;
23
23
 
24
+ /**
25
+ * Change property name for 2012 spec
26
+ */
24
27
  _proto.prefixed = function prefixed(prop, prefix) {
25
28
  var spec;
26
29
 
@@ -73,10 +76,6 @@ _defineProperty(AlignContent, "oldValues", {
73
76
  'flex-start': 'start',
74
77
  'space-between': 'justify',
75
78
  'space-around': 'distribute'
76
- /**
77
- * Change property name for 2012 spec
78
- */
79
-
80
79
  });
81
80
 
82
81
  module.exports = AlignContent;
@@ -21,6 +21,9 @@ function (_Declaration) {
21
21
 
22
22
  var _proto = AlignItems.prototype;
23
23
 
24
+ /**
25
+ * Change property name for 2009 and 2012 specs
26
+ */
24
27
  _proto.prefixed = function prefixed(prop, prefix) {
25
28
  var spec;
26
29
 
@@ -70,10 +73,6 @@ _defineProperty(AlignItems, "names", ['align-items', 'flex-align', 'box-align'])
70
73
  _defineProperty(AlignItems, "oldValues", {
71
74
  'flex-end': 'end',
72
75
  'flex-start': 'start'
73
- /**
74
- * Change property name for 2009 and 2012 specs
75
- */
76
-
77
76
  });
78
77
 
79
78
  module.exports = AlignItems;
package/lib/hacks/flex.js CHANGED
@@ -23,6 +23,9 @@ function (_Declaration) {
23
23
 
24
24
  var _proto = Flex.prototype;
25
25
 
26
+ /**
27
+ * Change property name for 2009 spec
28
+ */
26
29
  _proto.prefixed = function prefixed(prop, prefix) {
27
30
  var spec;
28
31
 
@@ -79,10 +82,6 @@ _defineProperty(Flex, "names", ['flex', 'box-flex']);
79
82
  _defineProperty(Flex, "oldValues", {
80
83
  auto: '1',
81
84
  none: '0'
82
- /**
83
- * Change property name for 2009 spec
84
- */
85
-
86
85
  });
87
86
 
88
87
  module.exports = Flex;
@@ -38,8 +38,7 @@ function (_Value) {
38
38
  top: 'bottom',
39
39
  left: 'right',
40
40
  bottom: 'top',
41
- right: 'left' // Direction to replace
42
-
41
+ right: 'left'
43
42
  });
44
43
 
45
44
  _defineProperty(_assertThisInitialized(_this), "oldDirections", {
@@ -55,10 +54,6 @@ function (_Value) {
55
54
  'bottom left': 'right top, left bottom',
56
55
  'left top': 'right bottom, left top',
57
56
  'left bottom': 'right top, left bottom'
58
- /**
59
- * Change degrees for webkit prefix
60
- */
61
-
62
57
  });
63
58
 
64
59
  return _this;
@@ -66,6 +61,9 @@ function (_Value) {
66
61
 
67
62
  var _proto = Gradient.prototype;
68
63
 
64
+ /**
65
+ * Change degrees for webkit prefix
66
+ */
69
67
  _proto.replace = function replace(string, prefix) {
70
68
  var ast = parser(string);
71
69
 
@@ -348,8 +346,8 @@ function (_Value) {
348
346
  */
349
347
  ;
350
348
 
351
- _proto.roundFloat = function roundFloat(float, digits) {
352
- return parseFloat(float.toFixed(digits));
349
+ _proto.roundFloat = function roundFloat(_float, digits) {
350
+ return parseFloat(_float.toFixed(digits));
353
351
  }
354
352
  /**
355
353
  * Convert to old webkit syntax
@@ -21,6 +21,9 @@ function (_Declaration) {
21
21
 
22
22
  var _proto = JustifyContent.prototype;
23
23
 
24
+ /**
25
+ * Change property name for 2009 and 2012 specs
26
+ */
24
27
  _proto.prefixed = function prefixed(prop, prefix) {
25
28
  var spec;
26
29
 
@@ -79,10 +82,6 @@ _defineProperty(JustifyContent, "oldValues", {
79
82
  'flex-start': 'start',
80
83
  'space-between': 'justify',
81
84
  'space-around': 'distribute'
82
- /**
83
- * Change property name for 2009 and 2012 specs
84
- */
85
-
86
85
  });
87
86
 
88
87
  module.exports = JustifyContent;
package/lib/info.js CHANGED
@@ -145,12 +145,12 @@ module.exports = function (prefixes) {
145
145
 
146
146
  var value = _ref3;
147
147
 
148
- var _grid = value.name.indexOf('grid') !== -1;
148
+ var _grid = value.name.includes('grid');
149
149
 
150
150
  if (_grid) hadGrid = true;
151
151
  var string = prefix(value.name, value.prefixes, _grid);
152
152
 
153
- if (values.indexOf(string) === -1) {
153
+ if (!values.includes(string)) {
154
154
  values.push(string);
155
155
  }
156
156
  }
@@ -31,7 +31,7 @@ function () {
31
31
  return true;
32
32
  }
33
33
 
34
- if (before.indexOf(this.unprefixed) !== -1 && before.match(this.nameRegexp)) {
34
+ if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) {
35
35
  return false;
36
36
  }
37
37
 
@@ -53,7 +53,7 @@ function () {
53
53
  string = _ref2[0],
54
54
  regexp = _ref2[1];
55
55
 
56
- if (before.indexOf(string) !== -1 && before.match(regexp)) {
56
+ if (before.includes(string) && before.match(regexp)) {
57
57
  some = true;
58
58
  break;
59
59
  }
@@ -74,7 +74,7 @@ function () {
74
74
  ;
75
75
 
76
76
  _proto.check = function check(rule) {
77
- if (rule.selector.indexOf(this.prefixed) === -1) {
77
+ if (!rule.selector.includes(this.prefixed)) {
78
78
  return false;
79
79
  }
80
80
 
package/lib/old-value.js CHANGED
@@ -19,7 +19,7 @@ function () {
19
19
  var _proto = OldValue.prototype;
20
20
 
21
21
  _proto.check = function check(value) {
22
- if (value.indexOf(this.string) !== -1) {
22
+ if (value.includes(this.string)) {
23
23
  return !!value.match(this.regexp);
24
24
  }
25
25
 
package/lib/prefixer.js CHANGED
@@ -23,7 +23,7 @@ function _clone(obj, parent) {
23
23
  }
24
24
  } else if (i === 'source' || i === null) {
25
25
  cloned[i] = value;
26
- } else if (value instanceof Array) {
26
+ } else if (Array.isArray(value)) {
27
27
  cloned[i] = value.map(function (x) {
28
28
  return _clone(x, cloned);
29
29
  });
@@ -107,7 +107,7 @@ function () {
107
107
  prefix = vendor.prefix(node.prop);
108
108
  } else if (node.type === 'root') {
109
109
  prefix = false;
110
- } else if (node.type === 'rule' && node.selector.indexOf(':-') !== -1 && /:(-\w+-)/.test(node.selector)) {
110
+ } else if (node.type === 'rule' && node.selector.includes(':-') && /:(-\w+-)/.test(node.selector)) {
111
111
  prefix = node.selector.match(/:(-\w+-)/)[1];
112
112
  } else if (node.type === 'atrule' && node.name[0] === '-') {
113
113
  prefix = vendor.prefix(node.name);
@@ -115,7 +115,7 @@ function () {
115
115
  prefix = this.parentPrefix(node.parent);
116
116
  }
117
117
 
118
- if (Browsers.prefixes().indexOf(prefix) === -1) {
118
+ if (!Browsers.prefixes().includes(prefix)) {
119
119
  prefix = false;
120
120
  }
121
121
 
package/lib/prefixes.js CHANGED
@@ -160,7 +160,7 @@ function () {
160
160
 
161
161
  if (_this.options.flexbox === 'no-2009') {
162
162
  add = add.filter(function (i) {
163
- return i.indexOf('2009') === -1;
163
+ return !i.includes('2009');
164
164
  });
165
165
  }
166
166
 
@@ -180,7 +180,7 @@ function () {
180
180
 
181
181
  if (add.length < all.length) {
182
182
  selected.remove[name] = all.filter(function (i) {
183
- return add.indexOf(i) === -1;
183
+ return !add.includes(i);
184
184
  });
185
185
  }
186
186
  } else {
@@ -377,16 +377,16 @@ function () {
377
377
  _ref6 = _i6.value;
378
378
  }
379
379
 
380
- var _prefix3 = _ref6;
381
- var olds = this.decl(_name).old(_name, _prefix3);
380
+ var p = _ref6;
381
+ var olds = this.decl(_name).old(_name, p);
382
382
 
383
383
  if (_name === 'align-self') {
384
384
  var a = add[_name] && add[_name].prefixes;
385
385
 
386
386
  if (a) {
387
- if (_prefix3 === '-webkit- 2009' && a.indexOf('-webkit-') !== -1) {
387
+ if (p === '-webkit- 2009' && a.includes('-webkit-')) {
388
388
  continue;
389
- } else if (_prefix3 === '-webkit-' && a.indexOf('-webkit- 2009') !== -1) {
389
+ } else if (p === '-webkit-' && a.includes('-webkit- 2009')) {
390
390
  continue;
391
391
  }
392
392
  }
package/lib/processor.js CHANGED
@@ -62,7 +62,7 @@ function () {
62
62
  if (_this.prefixes.options.supports !== false && !_this.disabled(rule, result)) {
63
63
  return supports.process(rule);
64
64
  }
65
- } else if (rule.name === 'media' && rule.params.indexOf('-resolution') !== -1) {
65
+ } else if (rule.name === 'media' && rule.params.includes('-resolution')) {
66
66
  if (!_this.disabled(rule, result)) {
67
67
  return resolution && resolution.process(rule);
68
68
  }
@@ -79,17 +79,18 @@ function () {
79
79
  });
80
80
 
81
81
  function insideGrid(decl) {
82
- return decl.parent.some(function (subDecl) {
83
- var displayGrid = subDecl.prop === 'display' && /(inline-)?grid/.test(subDecl.value);
84
- var gridTemplate = /^grid-template/.test(subDecl.prop);
85
- var gridGap = /^grid-([A-z]+-)?gap/.test(subDecl.prop);
82
+ return decl.parent.nodes.some(function (node) {
83
+ if (node.type !== 'decl') return false;
84
+ var displayGrid = node.prop === 'display' && /(inline-)?grid/.test(node.value);
85
+ var gridTemplate = node.prop.startsWith('grid-template');
86
+ var gridGap = /^grid-([A-z]+-)?gap/.test(node.prop);
86
87
  return displayGrid || gridTemplate || gridGap;
87
88
  });
88
89
  }
89
90
 
90
91
  function insideFlex(decl) {
91
- return decl.parent.some(function (subDecl) {
92
- return subDecl.prop === 'display' && /(inline-)?flex/.test(subDecl.value);
92
+ return decl.parent.some(function (node) {
93
+ return node.prop === 'display' && /(inline-)?flex/.test(node.value);
93
94
  });
94
95
  }
95
96
 
@@ -155,7 +156,7 @@ function () {
155
156
  node: decl
156
157
  });
157
158
  } else if ((status === true || status === 'no-autoplace') && !hasGridTemplate(decl)) {
158
- result.warn("grid-gap only works if grid-template(-areas) is being used", {
159
+ result.warn('grid-gap only works if grid-template(-areas) is being used', {
159
160
  node: decl
160
161
  });
161
162
  }
@@ -192,19 +193,19 @@ function () {
192
193
  }
193
194
 
194
195
  return undefined;
195
- } else if (value.indexOf('auto-fit') !== -1) {
196
+ } else if (value.includes('auto-fit')) {
196
197
  result.warn('auto-fit value is not supported by IE', {
197
198
  node: decl,
198
199
  word: 'auto-fit'
199
200
  });
200
201
  return undefined;
201
- } else if (value.indexOf('auto-fill') !== -1) {
202
+ } else if (value.includes('auto-fill')) {
202
203
  result.warn('auto-fill value is not supported by IE', {
203
204
  node: decl,
204
205
  word: 'auto-fill'
205
206
  });
206
207
  return undefined;
207
- } else if (/^grid-template/.test(prop) && value.indexOf('[') !== -1) {
208
+ } else if (prop.startsWith('grid-template') && value.includes('[')) {
208
209
  result.warn('Autoprefixer currently does not support line names. ' + 'Try using grid-template-areas instead.', {
209
210
  node: decl,
210
211
  word: '['
@@ -212,7 +213,7 @@ function () {
212
213
  }
213
214
  }
214
215
 
215
- if (value.indexOf('radial-gradient') !== -1) {
216
+ if (value.includes('radial-gradient')) {
216
217
  if (OLD_RADIAL.test(decl.value)) {
217
218
  result.warn('Gradient has outdated direction syntax. ' + 'New syntax is like `closest-side at 0 0` ' + 'instead of `0 0, closest-side`.', {
218
219
  node: decl
@@ -266,7 +267,7 @@ function () {
266
267
  }
267
268
  }
268
269
 
269
- if (value.indexOf('linear-gradient') !== -1) {
270
+ if (value.includes('linear-gradient')) {
270
271
  if (OLD_LINEAR.test(value)) {
271
272
  result.warn('Gradient has outdated direction syntax. ' + 'New syntax is like `to left` instead of `right`.', {
272
273
  node: decl
@@ -275,16 +276,22 @@ function () {
275
276
  }
276
277
  }
277
278
 
278
- if (SIZES.indexOf(decl.prop) !== -1) {
279
- if (decl.value.indexOf('-fill-available') === -1) {
280
- if (decl.value.indexOf('fill-available') !== -1) {
279
+ if (SIZES.includes(decl.prop)) {
280
+ if (!decl.value.includes('-fill-available')) {
281
+ if (decl.value.includes('fill-available')) {
281
282
  result.warn('Replace fill-available to stretch, ' + 'because spec had been changed', {
282
283
  node: decl
283
284
  });
284
- } else if (decl.value.indexOf('fill') !== -1) {
285
- result.warn('Replace fill to stretch, because spec had been changed', {
286
- node: decl
287
- });
285
+ } else if (decl.value.includes('fill')) {
286
+ var _ast = parser(value);
287
+
288
+ if (_ast.nodes.some(function (i) {
289
+ return i.type === 'word' && i.value === 'fill';
290
+ })) {
291
+ result.warn('Replace fill to stretch, because spec had been changed', {
292
+ node: decl
293
+ });
294
+ }
288
295
  }
289
296
  }
290
297
  }
@@ -387,7 +394,7 @@ function () {
387
394
  if (!_this2.disabled(rule, result)) {
388
395
  rule.parent.removeChild(i);
389
396
  }
390
- } else if (rule.name === 'media' && rule.params.indexOf('-resolution') !== -1 && resolution) {
397
+ } else if (rule.name === 'media' && rule.params.includes('-resolution') && resolution) {
391
398
  resolution.clean(rule);
392
399
  }
393
400
  }); // Selectors
@@ -452,7 +459,7 @@ function () {
452
459
  }
453
460
 
454
461
  if (notHack && !_this2.withHackValue(decl)) {
455
- if (decl.raw('before').indexOf('\n') > -1) {
462
+ if (decl.raw('before').includes('\n')) {
456
463
  _this2.reduceSpaces(decl);
457
464
  }
458
465
 
@@ -483,7 +490,7 @@ function () {
483
490
  unprefixed = checker.unprefixed;
484
491
 
485
492
  var _notHack = _this2.prefixes.group(decl).down(function (other) {
486
- return other.value.indexOf(unprefixed) !== -1;
493
+ return other.value.includes(unprefixed);
487
494
  });
488
495
 
489
496
  if (_notHack) {
@@ -508,13 +515,13 @@ function () {
508
515
 
509
516
  _proto.disabledValue = function disabledValue(node, result) {
510
517
  if (this.gridStatus(node, result) === false && node.type === 'decl') {
511
- if (node.prop === 'display' && node.value.indexOf('grid') !== -1) {
518
+ if (node.prop === 'display' && node.value.includes('grid')) {
512
519
  return true;
513
520
  }
514
521
  }
515
522
 
516
523
  if (this.prefixes.options.flexbox === false && node.type === 'decl') {
517
- if (node.prop === 'display' && node.value.indexOf('flex') !== -1) {
524
+ if (node.prop === 'display' && node.value.includes('flex')) {
518
525
  return true;
519
526
  }
520
527
  }
@@ -528,7 +535,7 @@ function () {
528
535
 
529
536
  _proto.disabledDecl = function disabledDecl(node, result) {
530
537
  if (this.gridStatus(node, result) === false && node.type === 'decl') {
531
- if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items') {
538
+ if (node.prop.includes('grid') || node.prop === 'justify-items') {
532
539
  return true;
533
540
  }
534
541
  }
@@ -536,7 +543,7 @@ function () {
536
543
  if (this.prefixes.options.flexbox === false && node.type === 'decl') {
537
544
  var other = ['order', 'justify-content', 'align-items', 'align-content'];
538
545
 
539
- if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1) {
546
+ if (node.prop.includes('flex') || other.includes(node.prop)) {
540
547
  return true;
541
548
  }
542
549
  }
@@ -662,11 +669,11 @@ function () {
662
669
  continue;
663
670
  }
664
671
 
665
- if (i.value.indexOf('flex') !== -1) {
672
+ if (i.value.includes('flex')) {
666
673
  return 'flex';
667
674
  }
668
675
 
669
- if (i.value.indexOf('grid') !== -1) {
676
+ if (i.value.includes('grid')) {
670
677
  return 'grid';
671
678
  }
672
679
  }
@@ -697,7 +704,7 @@ function () {
697
704
  var noAutoplace = /no-autoplace/i.test(i.text);
698
705
 
699
706
  if (typeof status !== 'undefined') {
700
- result.warn("Second Autoprefixer grid control comment was " + 'ignored. Autoprefixer applies control comments to the whole ' + 'block, not to the next rules.', {
707
+ result.warn('Second Autoprefixer grid control comment was ' + 'ignored. Autoprefixer applies control comments to the whole ' + 'block, not to the next rules.', {
701
708
  node: i
702
709
  });
703
710
  } else if (hasAutoplace) {
@@ -718,7 +725,7 @@ function () {
718
725
  if (node.type === 'atrule' && node.name === 'supports') {
719
726
  var params = node.params;
720
727
 
721
- if (params.indexOf('grid') !== -1 && params.indexOf('auto') !== -1) {
728
+ if (params.includes('grid') && params.includes('auto')) {
722
729
  value = false;
723
730
  }
724
731
  }
package/lib/resolution.js CHANGED
@@ -82,7 +82,7 @@ function (_Prefixer) {
82
82
  rule.params = utils.editList(rule.params, function (queries) {
83
83
  return queries.filter(function (query) {
84
84
  return _this.bad.every(function (i) {
85
- return query.indexOf(i) === -1;
85
+ return !query.includes(i);
86
86
  });
87
87
  });
88
88
  });
@@ -112,7 +112,7 @@ function (_Prefixer) {
112
112
 
113
113
  var query = _ref2;
114
114
 
115
- if (query.indexOf('min-resolution') === -1 && query.indexOf('max-resolution') === -1) {
115
+ if (!query.includes('min-resolution') && !query.includes('max-resolution')) {
116
116
  prefixed.push(query);
117
117
  continue;
118
118
  }
package/lib/selector.js CHANGED
@@ -4,6 +4,9 @@ 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 _require = require('postcss'),
8
+ list = _require.list;
9
+
7
10
  var OldSelector = require('./old-selector');
8
11
 
9
12
  var Prefixer = require('./prefixer');
@@ -32,7 +35,7 @@ function (_Prefixer) {
32
35
  var _proto = Selector.prototype;
33
36
 
34
37
  _proto.check = function check(rule) {
35
- if (rule.selector.indexOf(this.name) !== -1) {
38
+ if (rule.selector.includes(this.name)) {
36
39
  return !!rule.selector.match(this.regexp());
37
40
  }
38
41
 
@@ -74,29 +77,66 @@ function (_Prefixer) {
74
77
  ;
75
78
 
76
79
  _proto.prefixeds = function prefixeds(rule) {
80
+ var _this2 = this;
81
+
77
82
  if (rule._autoprefixerPrefixeds) {
78
- return rule._autoprefixerPrefixeds;
83
+ if (rule._autoprefixerPrefixeds[this.name]) {
84
+ return rule._autoprefixerPrefixeds;
85
+ }
86
+ } else {
87
+ rule._autoprefixerPrefixeds = {};
79
88
  }
80
89
 
81
90
  var prefixeds = {};
82
91
 
83
- for (var _iterator = this.possible(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
84
- var _ref;
92
+ if (rule.selector.includes(',')) {
93
+ var ruleParts = list.comma(rule.selector);
94
+ var toProcess = ruleParts.filter(function (el) {
95
+ return el.includes(_this2.name);
96
+ });
97
+
98
+ var _loop = function _loop() {
99
+ if (_isArray) {
100
+ if (_i >= _iterator.length) return "break";
101
+ _ref = _iterator[_i++];
102
+ } else {
103
+ _i = _iterator.next();
104
+ if (_i.done) return "break";
105
+ _ref = _i.value;
106
+ }
107
+
108
+ var prefix = _ref;
109
+ prefixeds[prefix] = toProcess.map(function (el) {
110
+ return _this2.replace(el, prefix);
111
+ }).join(', ');
112
+ };
85
113
 
86
- if (_isArray) {
87
- if (_i >= _iterator.length) break;
88
- _ref = _iterator[_i++];
89
- } else {
90
- _i = _iterator.next();
91
- if (_i.done) break;
92
- _ref = _i.value;
114
+ for (var _iterator = this.possible(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
115
+ var _ref;
116
+
117
+ var _ret = _loop();
118
+
119
+ if (_ret === "break") break;
93
120
  }
121
+ } else {
122
+ for (var _iterator2 = this.possible(), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
123
+ var _ref2;
124
+
125
+ if (_isArray2) {
126
+ if (_i2 >= _iterator2.length) break;
127
+ _ref2 = _iterator2[_i2++];
128
+ } else {
129
+ _i2 = _iterator2.next();
130
+ if (_i2.done) break;
131
+ _ref2 = _i2.value;
132
+ }
94
133
 
95
- var prefix = _ref;
96
- prefixeds[prefix] = this.replace(rule.selector, prefix);
134
+ var prefix = _ref2;
135
+ prefixeds[prefix] = this.replace(rule.selector, prefix);
136
+ }
97
137
  }
98
138
 
99
- rule._autoprefixerPrefixeds = prefixeds;
139
+ rule._autoprefixerPrefixeds[this.name] = prefixeds;
100
140
  return rule._autoprefixerPrefixeds;
101
141
  }
102
142
  /**
@@ -116,8 +156,8 @@ function (_Prefixer) {
116
156
 
117
157
  var some = false;
118
158
 
119
- for (var key in prefixeds) {
120
- var prefixed = prefixeds[key];
159
+ for (var key in prefixeds[this.name]) {
160
+ var prefixed = prefixeds[this.name][key];
121
161
 
122
162
  if (before.selector === prefixed) {
123
163
  if (prefix === key) {
@@ -159,7 +199,7 @@ function (_Prefixer) {
159
199
  }
160
200
 
161
201
  var cloned = this.clone(rule, {
162
- selector: prefixeds[prefix]
202
+ selector: prefixeds[this.name][prefix]
163
203
  });
164
204
  rule.parent.insertBefore(rule, cloned);
165
205
  }
package/lib/supports.js CHANGED
@@ -46,7 +46,7 @@ function () {
46
46
  }
47
47
 
48
48
  var filtered = this.all.browsers.selected.filter(function (i) {
49
- return supported.indexOf(i) !== -1;
49
+ return supported.includes(i);
50
50
  });
51
51
  var browsers = new Browsers(this.all.browsers.data, filtered, this.all.options);
52
52
  this.prefixerCache = new this.Prefixes(this.all.data, browsers, this.all.options);
@@ -302,7 +302,7 @@ function () {
302
302
  return i !== '';
303
303
  });
304
304
 
305
- if (typeof nodes[0] === 'string' && nodes[0].indexOf(':') !== -1) {
305
+ if (typeof nodes[0] === 'string' && nodes[0].includes(':')) {
306
306
  return [brackets.stringify(nodes)];
307
307
  }
308
308
 
@@ -356,23 +356,23 @@ function () {
356
356
 
357
357
  _proto.disabled = function disabled(node) {
358
358
  if (!this.all.options.grid) {
359
- if (node.prop === 'display' && node.value.indexOf('grid') !== -1) {
359
+ if (node.prop === 'display' && node.value.includes('grid')) {
360
360
  return true;
361
361
  }
362
362
 
363
- if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items') {
363
+ if (node.prop.includes('grid') || node.prop === 'justify-items') {
364
364
  return true;
365
365
  }
366
366
  }
367
367
 
368
368
  if (this.all.options.flexbox === false) {
369
- if (node.prop === 'display' && node.value.indexOf('flex') !== -1) {
369
+ if (node.prop === 'display' && node.value.includes('flex')) {
370
370
  return true;
371
371
  }
372
372
 
373
373
  var other = ['order', 'justify-content', 'align-items', 'align-content'];
374
374
 
375
- if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1) {
375
+ if (node.prop.includes('flex') || other.includes(node.prop)) {
376
376
  return true;
377
377
  }
378
378
  }
package/lib/transition.js CHANGED
@@ -71,7 +71,7 @@ function () {
71
71
 
72
72
  var prefixed = this.prefixes.prefixed(prop, prefix);
73
73
 
74
- if (prefixed !== '-ms-transform' && names.indexOf(prefixed) === -1) {
74
+ if (prefixed !== '-ms-transform' && !names.includes(prefixed)) {
75
75
  if (!this.disabled(prop, prefix)) {
76
76
  added.push(this.clone(prop, prefixed, param));
77
77
  }
@@ -83,13 +83,13 @@ function () {
83
83
  var value = this.stringify(params);
84
84
  var webkitClean = this.stringify(this.cleanFromUnprefixed(params, '-webkit-'));
85
85
 
86
- if (declPrefixes.indexOf('-webkit-') !== -1) {
86
+ if (declPrefixes.includes('-webkit-')) {
87
87
  this.cloneBefore(decl, "-webkit-" + decl.prop, webkitClean);
88
88
  }
89
89
 
90
90
  this.cloneBefore(decl, decl.prop, webkitClean);
91
91
 
92
- if (declPrefixes.indexOf('-o-') !== -1) {
92
+ if (declPrefixes.includes('-o-')) {
93
93
  var operaClean = this.stringify(this.cleanFromUnprefixed(params, '-o-'));
94
94
  this.cloneBefore(decl, "-o-" + decl.prop, operaClean);
95
95
  }
@@ -125,8 +125,21 @@ function () {
125
125
  var prop = param[0].value;
126
126
 
127
127
  if (/^\d/.test(prop)) {
128
- for (var i = 0; i < param.length; i++) {
129
- var token = param[i];
128
+ for (var _iterator4 = param.entries(), _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
129
+ var _ref2;
130
+
131
+ if (_isArray4) {
132
+ if (_i4 >= _iterator4.length) break;
133
+ _ref2 = _iterator4[_i4++];
134
+ } else {
135
+ _i4 = _iterator4.next();
136
+ if (_i4.done) break;
137
+ _ref2 = _i4.value;
138
+ }
139
+
140
+ var _ref3 = _ref2,
141
+ i = _ref3[0],
142
+ token = _ref3[1];
130
143
 
131
144
  if (i !== 0 && token.type === 'word') {
132
145
  return token.value;
@@ -214,14 +227,15 @@ function () {
214
227
  return;
215
228
  }
216
229
 
217
- var double = decl.parent.some(function (i) {
230
+ var _double = decl.parent.some(function (i) {
218
231
  return i.prop === decl.prop && i.value === value;
219
232
  });
233
+
220
234
  var smaller = decl.parent.some(function (i) {
221
235
  return i !== decl && i.prop === decl.prop && i.value.length > value.length;
222
236
  });
223
237
 
224
- if (double || smaller) {
238
+ if (_double || smaller) {
225
239
  decl.remove();
226
240
  return;
227
241
  }
@@ -238,19 +252,19 @@ function () {
238
252
  var result = [];
239
253
  var param = [];
240
254
 
241
- for (var _iterator4 = ast.nodes, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
242
- var _ref2;
255
+ for (var _iterator5 = ast.nodes, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
256
+ var _ref4;
243
257
 
244
- if (_isArray4) {
245
- if (_i4 >= _iterator4.length) break;
246
- _ref2 = _iterator4[_i4++];
258
+ if (_isArray5) {
259
+ if (_i5 >= _iterator5.length) break;
260
+ _ref4 = _iterator5[_i5++];
247
261
  } else {
248
- _i4 = _iterator4.next();
249
- if (_i4.done) break;
250
- _ref2 = _i4.value;
262
+ _i5 = _iterator5.next();
263
+ if (_i5.done) break;
264
+ _ref4 = _i5.value;
251
265
  }
252
266
 
253
- var node = _ref2;
267
+ var node = _ref4;
254
268
  param.push(node);
255
269
 
256
270
  if (node.type === 'div' && node.value === ',') {
@@ -276,19 +290,19 @@ function () {
276
290
 
277
291
  var nodes = [];
278
292
 
279
- for (var _iterator5 = params, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
280
- var _ref3;
293
+ for (var _iterator6 = params, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
294
+ var _ref5;
281
295
 
282
- if (_isArray5) {
283
- if (_i5 >= _iterator5.length) break;
284
- _ref3 = _iterator5[_i5++];
296
+ if (_isArray6) {
297
+ if (_i6 >= _iterator6.length) break;
298
+ _ref5 = _iterator6[_i6++];
285
299
  } else {
286
- _i5 = _iterator5.next();
287
- if (_i5.done) break;
288
- _ref3 = _i5.value;
300
+ _i6 = _iterator6.next();
301
+ if (_i6.done) break;
302
+ _ref5 = _i6.value;
289
303
  }
290
304
 
291
- var param = _ref3;
305
+ var param = _ref5;
292
306
 
293
307
  if (param[param.length - 1].type !== 'div') {
294
308
  param.push(this.div(params));
@@ -318,19 +332,19 @@ function () {
318
332
  var result = [];
319
333
  var changed = false;
320
334
 
321
- for (var _iterator6 = param, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
322
- var _ref4;
335
+ for (var _iterator7 = param, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
336
+ var _ref6;
323
337
 
324
- if (_isArray6) {
325
- if (_i6 >= _iterator6.length) break;
326
- _ref4 = _iterator6[_i6++];
338
+ if (_isArray7) {
339
+ if (_i7 >= _iterator7.length) break;
340
+ _ref6 = _iterator7[_i7++];
327
341
  } else {
328
- _i6 = _iterator6.next();
329
- if (_i6.done) break;
330
- _ref4 = _i6.value;
342
+ _i7 = _iterator7.next();
343
+ if (_i7.done) break;
344
+ _ref6 = _i7.value;
331
345
  }
332
346
 
333
- var i = _ref4;
347
+ var i = _ref6;
334
348
 
335
349
  if (!changed && i.type === 'word' && i.value === origin) {
336
350
  result.push({
@@ -351,33 +365,33 @@ function () {
351
365
  ;
352
366
 
353
367
  _proto.div = function div(params) {
354
- for (var _iterator7 = params, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {
355
- var _ref5;
368
+ for (var _iterator8 = params, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
369
+ var _ref7;
356
370
 
357
- if (_isArray7) {
358
- if (_i7 >= _iterator7.length) break;
359
- _ref5 = _iterator7[_i7++];
371
+ if (_isArray8) {
372
+ if (_i8 >= _iterator8.length) break;
373
+ _ref7 = _iterator8[_i8++];
360
374
  } else {
361
- _i7 = _iterator7.next();
362
- if (_i7.done) break;
363
- _ref5 = _i7.value;
375
+ _i8 = _iterator8.next();
376
+ if (_i8.done) break;
377
+ _ref7 = _i8.value;
364
378
  }
365
379
 
366
- var param = _ref5;
380
+ var param = _ref7;
367
381
 
368
- for (var _iterator8 = param, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {
369
- var _ref6;
382
+ for (var _iterator9 = param, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
383
+ var _ref8;
370
384
 
371
- if (_isArray8) {
372
- if (_i8 >= _iterator8.length) break;
373
- _ref6 = _iterator8[_i8++];
385
+ if (_isArray9) {
386
+ if (_i9 >= _iterator9.length) break;
387
+ _ref8 = _iterator9[_i9++];
374
388
  } else {
375
- _i8 = _iterator8.next();
376
- if (_i8.done) break;
377
- _ref6 = _i8.value;
389
+ _i9 = _iterator9.next();
390
+ if (_i9.done) break;
391
+ _ref8 = _i9.value;
378
392
  }
379
393
 
380
- var node = _ref6;
394
+ var node = _ref8;
381
395
 
382
396
  if (node.type === 'div' && node.value === ',') {
383
397
  return node;
@@ -417,23 +431,23 @@ function () {
417
431
  });
418
432
  var result = [];
419
433
 
420
- for (var _iterator9 = params, _isArray9 = Array.isArray(_iterator9), _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) {
421
- var _ref7;
434
+ for (var _iterator10 = params, _isArray10 = Array.isArray(_iterator10), _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) {
435
+ var _ref9;
422
436
 
423
- if (_isArray9) {
424
- if (_i9 >= _iterator9.length) break;
425
- _ref7 = _iterator9[_i9++];
437
+ if (_isArray10) {
438
+ if (_i10 >= _iterator10.length) break;
439
+ _ref9 = _iterator10[_i10++];
426
440
  } else {
427
- _i9 = _iterator9.next();
428
- if (_i9.done) break;
429
- _ref7 = _i9.value;
441
+ _i10 = _iterator10.next();
442
+ if (_i10.done) break;
443
+ _ref9 = _i10.value;
430
444
  }
431
445
 
432
- var param = _ref7;
446
+ var param = _ref9;
433
447
  var prop = this.findProp(param);
434
448
  var p = vendor.prefix(prop);
435
449
 
436
- if (remove.indexOf(prop) === -1 && (p === prefix || p === '')) {
450
+ if (!remove.includes(prop) && (p === prefix || p === '')) {
437
451
  result.push(param);
438
452
  }
439
453
  }
@@ -448,13 +462,13 @@ function () {
448
462
  _proto.disabled = function disabled(prop, prefix) {
449
463
  var other = ['order', 'justify-content', 'align-self', 'align-content'];
450
464
 
451
- if (prop.indexOf('flex') !== -1 || other.indexOf(prop) !== -1) {
465
+ if (prop.includes('flex') || other.includes(prop)) {
452
466
  if (this.prefixes.options.flexbox === false) {
453
467
  return true;
454
468
  }
455
469
 
456
470
  if (this.prefixes.options.flexbox === 'no-2009') {
457
- return prefix.indexOf('2009') !== -1;
471
+ return prefix.includes('2009');
458
472
  }
459
473
  }
460
474
 
package/lib/utils.js CHANGED
@@ -33,7 +33,7 @@ module.exports = {
33
33
 
34
34
  var i = _ref;
35
35
 
36
- if (filtered.indexOf(i) === -1) {
36
+ if (!filtered.includes(i)) {
37
37
  filtered.push(i);
38
38
  }
39
39
  }
@@ -45,7 +45,7 @@ module.exports = {
45
45
  * Return "-webkit-" on "-webkit- old"
46
46
  */
47
47
  removeNote: function removeNote(string) {
48
- if (string.indexOf(' ') === -1) {
48
+ if (!string.includes(' ')) {
49
49
  return string;
50
50
  }
51
51
 
package/lib/value.js CHANGED
@@ -96,7 +96,7 @@ function (_Prefixer) {
96
96
  _proto.check = function check(decl) {
97
97
  var value = decl.value;
98
98
 
99
- if (value.indexOf(this.name) === -1) {
99
+ if (!value.includes(this.name)) {
100
100
  return false;
101
101
  }
102
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoprefixer",
3
- "version": "9.6.1",
3
+ "version": "9.6.5",
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,13 +10,13 @@
10
10
  "node": ">=6.0.0"
11
11
  },
12
12
  "dependencies": {
13
- "browserslist": "^4.6.3",
14
- "caniuse-lite": "^1.0.30000980",
13
+ "browserslist": "^4.7.0",
14
+ "caniuse-lite": "^1.0.30000999",
15
15
  "chalk": "^2.4.2",
16
16
  "normalize-range": "^0.1.2",
17
17
  "num2fraction": "^1.2.2",
18
- "postcss": "^7.0.17",
19
- "postcss-value-parser": "^4.0.0"
18
+ "postcss": "^7.0.18",
19
+ "postcss-value-parser": "^4.0.2"
20
20
  },
21
21
  "bin": {
22
22
  "autoprefixer": "./bin/autoprefixer"