autoprefixer 9.4.6 → 9.4.7

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,9 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
+ ## 9.4.7
5
+ * Fix infinite loop on mismatched parens.
6
+
4
7
  ## 9.4.6
5
8
  * Fix warning text (by Albert Juhé Lluveras).
6
9
 
package/lib/processor.js CHANGED
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var parser = require('postcss-value-parser');
4
+
3
5
  var Value = require('./value');
4
6
 
5
7
  var insertAreas = require('./hacks/grid-utils').insertAreas;
6
8
 
7
9
  var OLD_LINEAR = /(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i;
8
10
  var OLD_RADIAL = /(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i;
9
- var RADIAL_BLOCK = /\(((?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*)\)/i;
10
11
  var IGNORE_NEXT = /(!\s*)?autoprefixer:\s*ignore\s+next/i;
11
12
  var GRID_REGEX = /(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i;
12
13
  var SIZES = ['width', 'height', 'min-width', 'max-width', 'min-height', 'max-height', 'inline-size', 'min-inline-size', 'max-inline-size', 'block-size', 'min-block-size', 'max-block-size'];
@@ -212,17 +213,49 @@ function () {
212
213
  node: decl
213
214
  });
214
215
  } else {
215
- var match = value.match(RADIAL_BLOCK);
216
-
217
- if (match) {
218
- if (/cover/.test(match[1])) {
219
- result.warn('Gradient has outdated direction syntax. ' + 'Replace `cover` to `farthest-corner`.', {
220
- node: decl
221
- });
222
- } else if (/contain/.test(match[1])) {
223
- result.warn('Gradient has outdated direction syntax. ' + 'Replace `contain` to `closest-side`.', {
224
- node: decl
225
- });
216
+ var ast = parser(value);
217
+
218
+ for (var _iterator = ast.nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
219
+ var _ref;
220
+
221
+ if (_isArray) {
222
+ if (_i >= _iterator.length) break;
223
+ _ref = _iterator[_i++];
224
+ } else {
225
+ _i = _iterator.next();
226
+ if (_i.done) break;
227
+ _ref = _i.value;
228
+ }
229
+
230
+ var i = _ref;
231
+
232
+ if (i.type === 'function' && i.value === 'radial-gradient') {
233
+ for (var _iterator2 = i.nodes, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
234
+ var _ref2;
235
+
236
+ if (_isArray2) {
237
+ if (_i2 >= _iterator2.length) break;
238
+ _ref2 = _iterator2[_i2++];
239
+ } else {
240
+ _i2 = _iterator2.next();
241
+ if (_i2.done) break;
242
+ _ref2 = _i2.value;
243
+ }
244
+
245
+ var word = _ref2;
246
+
247
+ if (word.type === 'word') {
248
+ if (word.value === 'cover') {
249
+ result.warn('Gradient has outdated direction syntax. ' + 'Replace `cover` to `farthest-corner`.', {
250
+ node: decl
251
+ });
252
+ } else if (word.value === 'contain') {
253
+ result.warn('Gradient has outdated direction syntax. ' + 'Replace `contain` to `closest-side`.', {
254
+ node: decl
255
+ });
256
+ }
257
+ }
258
+ }
226
259
  }
227
260
  }
228
261
  }
@@ -315,19 +348,19 @@ function () {
315
348
 
316
349
  var unprefixed = _this.prefixes.unprefixed(decl.prop);
317
350
 
318
- for (var _iterator = _this.prefixes.values('add', unprefixed), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
319
- var _ref;
351
+ for (var _iterator3 = _this.prefixes.values('add', unprefixed), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
352
+ var _ref3;
320
353
 
321
- if (_isArray) {
322
- if (_i >= _iterator.length) break;
323
- _ref = _iterator[_i++];
354
+ if (_isArray3) {
355
+ if (_i3 >= _iterator3.length) break;
356
+ _ref3 = _iterator3[_i3++];
324
357
  } else {
325
- _i = _iterator.next();
326
- if (_i.done) break;
327
- _ref = _i.value;
358
+ _i3 = _iterator3.next();
359
+ if (_i3.done) break;
360
+ _ref3 = _i3.value;
328
361
  }
329
362
 
330
- var value = _ref;
363
+ var value = _ref3;
331
364
  value.process(decl, result);
332
365
  }
333
366
 
@@ -355,16 +388,16 @@ function () {
355
388
  }); // Selectors
356
389
 
357
390
  var _loop = function _loop() {
358
- if (_isArray2) {
359
- if (_i2 >= _iterator2.length) return "break";
360
- _ref2 = _iterator2[_i2++];
391
+ if (_isArray4) {
392
+ if (_i4 >= _iterator4.length) return "break";
393
+ _ref4 = _iterator4[_i4++];
361
394
  } else {
362
- _i2 = _iterator2.next();
363
- if (_i2.done) return "break";
364
- _ref2 = _i2.value;
395
+ _i4 = _iterator4.next();
396
+ if (_i4.done) return "break";
397
+ _ref4 = _i4.value;
365
398
  }
366
399
 
367
- var checker = _ref2;
400
+ var checker = _ref4;
368
401
  css.walkRules(function (rule, i) {
369
402
  if (checker.check(rule)) {
370
403
  if (!_this2.disabled(rule, result)) {
@@ -374,8 +407,8 @@ function () {
374
407
  });
375
408
  };
376
409
 
377
- for (var _iterator2 = this.prefixes.remove.selectors, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
378
- var _ref2;
410
+ for (var _iterator4 = this.prefixes.remove.selectors, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
411
+ var _ref4;
379
412
 
380
413
  var _ret = _loop();
381
414
 
@@ -414,19 +447,19 @@ function () {
414
447
  } // Values
415
448
 
416
449
 
417
- for (var _iterator3 = _this2.prefixes.values('remove', unprefixed), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
418
- var _ref3;
450
+ for (var _iterator5 = _this2.prefixes.values('remove', unprefixed), _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {
451
+ var _ref5;
419
452
 
420
- if (_isArray3) {
421
- if (_i3 >= _iterator3.length) break;
422
- _ref3 = _iterator3[_i3++];
453
+ if (_isArray5) {
454
+ if (_i5 >= _iterator5.length) break;
455
+ _ref5 = _iterator5[_i5++];
423
456
  } else {
424
- _i3 = _iterator3.next();
425
- if (_i3.done) break;
426
- _ref3 = _i3.value;
457
+ _i5 = _iterator5.next();
458
+ if (_i5.done) break;
459
+ _ref5 = _i5.value;
427
460
  }
428
461
 
429
- var checker = _ref3;
462
+ var checker = _ref5;
430
463
 
431
464
  if (!checker.check(decl.value)) {
432
465
  continue;
@@ -596,19 +629,19 @@ function () {
596
629
  ;
597
630
 
598
631
  _proto.displayType = function displayType(decl) {
599
- for (var _iterator4 = decl.parent.nodes, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
600
- var _ref4;
632
+ for (var _iterator6 = decl.parent.nodes, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {
633
+ var _ref6;
601
634
 
602
- if (_isArray4) {
603
- if (_i4 >= _iterator4.length) break;
604
- _ref4 = _iterator4[_i4++];
635
+ if (_isArray6) {
636
+ if (_i6 >= _iterator6.length) break;
637
+ _ref6 = _iterator6[_i6++];
605
638
  } else {
606
- _i4 = _iterator4.next();
607
- if (_i4.done) break;
608
- _ref4 = _i4.value;
639
+ _i6 = _iterator6.next();
640
+ if (_i6.done) break;
641
+ _ref6 = _i6.value;
609
642
  }
610
643
 
611
- var i = _ref4;
644
+ var i = _ref6;
612
645
 
613
646
  if (i.prop !== 'display') {
614
647
  continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autoprefixer",
3
- "version": "9.4.6",
3
+ "version": "9.4.7",
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>",
@@ -11,10 +11,10 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "browserslist": "^4.4.1",
14
- "caniuse-lite": "^1.0.30000929",
14
+ "caniuse-lite": "^1.0.30000932",
15
15
  "normalize-range": "^0.1.2",
16
16
  "num2fraction": "^1.2.2",
17
- "postcss": "^7.0.13",
17
+ "postcss": "^7.0.14",
18
18
  "postcss-value-parser": "^3.3.1"
19
19
  },
20
20
  "bin": {