autoprefixer-rails 9.0.0 → 9.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfc99fe9eb2b6aaa04520417ba0fa4ee24238fc299a8e1e0e0ca34aa8bedd477
4
- data.tar.gz: 142a462f01d7efdd654c45cef25a4f2f33df677c228460c9201b8476694df3c3
3
+ metadata.gz: 4e9514da40d4d8047e1fa17032c6e283d3d940549aafdb6ed87e4d655fa3cebf
4
+ data.tar.gz: 5778ef591668455627b1f2be424872244f99f4cf6e020f1c1207d1eb84da12a6
5
5
  SHA512:
6
- metadata.gz: 5cec7a60224acd9d282350c888743742f2daa6bd1df2196dce4de41393d46dbccece7eae6440c3c8e58a8afedbec3ec1d7f7ff9078c53e642bf648e3c70d18fe
7
- data.tar.gz: ce7d13b4c51291f5748c814c6be1d1f5ab628737deeb3db9362553b93611459684da8b436d196814936a3eb93d136ce2ce61c2b4008089ccf678aaad058ca1b2
6
+ metadata.gz: db0c0e8f166c5c5500dd1dc55090de882a61c76fe12e2ec1e5e97b87a33f8db8d128826e8536f30bf54f8ac92674b913e8e7e83177716f77d21b465607ac090a
7
+ data.tar.gz: b0071eabf548e153f993bc5dec231bdd5de735716e60996022cfc23e8007a54c0a999902666e3a1ce938bafcf3e18ff1c63b62ade75ada242ce26051eed33574
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 9.0.2
4
+ * Show warning on Grid area names conflict (by Bogdan).
5
+ * Fix documentation (by Sven Wagner).
6
+
3
7
  ## 9.0 “A Mari Usque Ad Mare”
4
8
  * Remove Node.js 9 and Node.js 4 support.
5
9
  * Remove RubyRacer and Sprockets 3 support.
@@ -146,8 +146,13 @@ module AutoprefixerRails
146
146
  def runtime
147
147
  @runtime ||= begin
148
148
  if ExecJS.eval('typeof Uint8Array') != 'function'
149
- raise "Current ExecJS runtime does't support ES6. " +
150
- "Please install latest Node.js."
149
+ if ExecJS.runtime.is_a?(ExecJS::RubyRacerRuntime)
150
+ raise "ExecJS::RubyRacerRuntime is not supported. " +
151
+ "Please replace therubyracer with mini_racer in your Gemfile."
152
+ else
153
+ raise "Current ExecJS runtime: '#{ExecJS.runtime.name}' does't support ES6. " +
154
+ "Please update or replace your current ExecJS runtime."
155
+ end
151
156
  end
152
157
 
153
158
  ExecJS.compile(build_js)
@@ -1,3 +1,3 @@
1
1
  module AutoprefixerRails
2
- VERSION = '9.0.0'.freeze unless defined? AutoprefixerRails::VERSION
2
+ VERSION = '9.0.2'.freeze unless defined? AutoprefixerRails::VERSION
3
3
  end
@@ -3519,7 +3519,7 @@ var utils = require('../utils');
3519
3519
  var parser = require('postcss-value-parser');
3520
3520
  var range = require('normalize-range');
3521
3521
 
3522
- var isDirection = /top|left|right|bottom/gi;
3522
+ var IS_DIRECTION = /top|left|right|bottom/gi;
3523
3523
 
3524
3524
  var Gradient = function (_Value) {
3525
3525
  _inherits(Gradient, _Value);
@@ -3674,8 +3674,8 @@ var Gradient = function (_Value) {
3674
3674
  if (params[0].value === 'to') {
3675
3675
  return params;
3676
3676
  }
3677
- isDirection.lastIndex = 0; // reset search index of global regexp
3678
- if (!isDirection.test(params[0].value)) {
3677
+ IS_DIRECTION.lastIndex = 0; // reset search index of global regexp
3678
+ if (!IS_DIRECTION.test(params[0].value)) {
3679
3679
  return params;
3680
3680
  }
3681
3681
 
@@ -4670,7 +4670,8 @@ var _require = require('./grid-utils'),
4670
4670
  prefixTrackProp = _require.prefixTrackProp,
4671
4671
  prefixTrackValue = _require.prefixTrackValue,
4672
4672
  getGridGap = _require.getGridGap,
4673
- warnGridGap = _require.warnGridGap;
4673
+ warnGridGap = _require.warnGridGap,
4674
+ warnDuplicateNames = _require.warnDuplicateNames;
4674
4675
 
4675
4676
  function getGridRows(tpl) {
4676
4677
  return tpl.trim().slice(1, -1).split(/['"]\s*['"]?/g);
@@ -4746,6 +4747,9 @@ var GridTemplateAreas = function (_Declaration) {
4746
4747
  result: result
4747
4748
  });
4748
4749
 
4750
+ // warn if grid-template-areas has a duplicate area name
4751
+ warnDuplicateNames({ decl: decl, result: result });
4752
+
4749
4753
  var areas = parseGridAreas({
4750
4754
  rows: gridRows,
4751
4755
  gap: gap
@@ -4804,7 +4808,8 @@ var _require = require('./grid-utils'),
4804
4808
  parseTemplate = _require.parseTemplate,
4805
4809
  insertAreas = _require.insertAreas,
4806
4810
  getGridGap = _require.getGridGap,
4807
- warnGridGap = _require.warnGridGap;
4811
+ warnGridGap = _require.warnGridGap,
4812
+ warnDuplicateNames = _require.warnDuplicateNames;
4808
4813
 
4809
4814
  var GridTemplate = function (_Declaration) {
4810
4815
  _inherits(GridTemplate, _Declaration);
@@ -4848,6 +4853,9 @@ var GridTemplate = function (_Declaration) {
4848
4853
  result: result
4849
4854
  });
4850
4855
 
4856
+ // warn if grid-template has a duplicate area name
4857
+ warnDuplicateNames({ decl: decl, result: result });
4858
+
4851
4859
  if (hasRows && hasColumns || hasAreas) {
4852
4860
  decl.cloneBefore({
4853
4861
  prop: '-ms-grid-rows',
@@ -4886,6 +4894,7 @@ module.exports = GridTemplate;
4886
4894
  'use strict';
4887
4895
 
4888
4896
  var parser = require('postcss-value-parser');
4897
+ var list = require('postcss').list;
4889
4898
 
4890
4899
  function convert(value) {
4891
4900
  if (value && value.length === 2 && value[0] === 'span' && parseInt(value[1], 10) > 0) {
@@ -5045,6 +5054,94 @@ function prefixTrackValue(_ref5) {
5045
5054
  return parser.stringify(result);
5046
5055
  }
5047
5056
 
5057
+ /**
5058
+ * Parse grid areas from declaration
5059
+ * @param Declaration [decl]
5060
+ * @return Array<String>
5061
+ */
5062
+ function parseGridTemplateStrings(decl) {
5063
+ var template = parseTemplate({ decl: decl, gap: getGridGap(decl) });
5064
+ return Object.keys(template.areas);
5065
+ }
5066
+
5067
+ /**
5068
+ * Walk through every grid-template(-areas)
5069
+ * declaration and try to find non-unique area names (duplicates)
5070
+ * @param {Declaration} decl
5071
+ * @param {Result} result
5072
+ * @return {void}
5073
+ */
5074
+ function warnDuplicateNames(_ref6) {
5075
+ var decl = _ref6.decl,
5076
+ result = _ref6.result;
5077
+
5078
+ var rule = decl.parent;
5079
+ var inMediaRule = !!getParentMedia(rule);
5080
+ var areas = parseGridTemplateStrings(decl);
5081
+ var root = decl.root();
5082
+
5083
+ // stop if no areas found
5084
+ if (areas.length === 0) {
5085
+ return false;
5086
+ }
5087
+
5088
+ root.walkDecls(/grid-template(-areas)?$/g, function (d) {
5089
+ var nodeRule = d.parent;
5090
+ var nodeRuleMedia = getParentMedia(nodeRule);
5091
+ var isEqual = rule.toString() === nodeRule.toString();
5092
+ var foundAreas = parseGridTemplateStrings(d);
5093
+ var maxIndex = Math.max(root.index(nodeRule), root.index(nodeRuleMedia));
5094
+ var isLookingDown = root.index(rule) < maxIndex;
5095
+
5096
+ // skip node if no grid areas is found
5097
+ if (foundAreas.length === 0) {
5098
+ return true;
5099
+ }
5100
+
5101
+ // abort if we outside media rule and walking below our rule
5102
+ // (we need to check ONLY the rules that are above)
5103
+ if (!inMediaRule && isLookingDown) {
5104
+ return false;
5105
+ }
5106
+
5107
+ // abort if we're in the same rule
5108
+ if (isEqual) {
5109
+ return false;
5110
+ }
5111
+
5112
+ // if we're inside media rule, we need to compare selectors
5113
+ if (inMediaRule) {
5114
+ var selectors = list.comma(nodeRule.selector);
5115
+ var selectorIsFound = selectors.some(function (sel) {
5116
+ if (sel === rule.selector) {
5117
+ // compare selectors as a comma list
5118
+ return true;
5119
+ } else if (nodeRule.selector === rule.selector) {
5120
+ // compare selectors as a whole (e.g. ".i, .j" === ".i, .j")
5121
+ return true;
5122
+ }
5123
+ return false;
5124
+ });
5125
+
5126
+ // stop walking if we found the selector
5127
+ if (selectorIsFound) {
5128
+ return false;
5129
+ }
5130
+ }
5131
+
5132
+ var duplicates = areas.filter(function (area) {
5133
+ return foundAreas.includes(area);
5134
+ });
5135
+ if (duplicates.length > 0) {
5136
+ var word = duplicates.length > 1 ? 'names' : 'name';
5137
+ decl.warn(result, ['', ' duplicate area ' + word + ' detected in rule: ' + rule.selector, ' duplicate area ' + word + ': ' + duplicates.join(', '), ' duplicate area names cause unexpected behavior in IE'].join('\n'));
5138
+ return false;
5139
+ }
5140
+ return undefined;
5141
+ });
5142
+ return undefined;
5143
+ }
5144
+
5048
5145
  // Parse grid-template-areas
5049
5146
 
5050
5147
  var DOTS = /^\.+$/;
@@ -5057,9 +5154,9 @@ function getColumns(line) {
5057
5154
  return line.trim().split(/\s+/g);
5058
5155
  }
5059
5156
 
5060
- function parseGridAreas(_ref6) {
5061
- var rows = _ref6.rows,
5062
- gap = _ref6.gap;
5157
+ function parseGridAreas(_ref7) {
5158
+ var rows = _ref7.rows,
5159
+ gap = _ref7.gap;
5063
5160
 
5064
5161
  return rows.reduce(function (areas, line, rowIndex) {
5065
5162
  if (gap.row) rowIndex *= 2;
@@ -5108,9 +5205,9 @@ function verifyRowSize(result) {
5108
5205
  return result;
5109
5206
  }
5110
5207
 
5111
- function parseTemplate(_ref7) {
5112
- var decl = _ref7.decl,
5113
- gap = _ref7.gap;
5208
+ function parseTemplate(_ref8) {
5209
+ var decl = _ref8.decl,
5210
+ gap = _ref8.gap;
5114
5211
 
5115
5212
  var gridTemplate = parser(decl.value).nodes.reduce(function (result, node) {
5116
5213
  var type = node.type,
@@ -5225,8 +5322,13 @@ function insertAreas(areas, decl, result) {
5225
5322
 
5226
5323
  if (next && next.type === 'atrule' && next.name === 'media' && next.params === parentMedia.params && next.first.type === 'rule' && next.first.selector && parentMedia.first.selector && /^-ms-/.test(next.first.first.prop)) return undefined;
5227
5324
 
5325
+ var areaParentMedia = getParentMedia(gridArea.parent);
5228
5326
  var areaMedia = parentMedia.clone().removeAll().append(rules);
5229
- gridArea.parent.after(areaMedia);
5327
+ if (areaParentMedia) {
5328
+ areaParentMedia.after(areaMedia);
5329
+ } else {
5330
+ gridArea.parent.after(areaMedia);
5331
+ }
5230
5332
  }
5231
5333
 
5232
5334
  return undefined;
@@ -5258,9 +5360,9 @@ function getGridGap(decl) {
5258
5360
 
5259
5361
  // try to find gap
5260
5362
  var testGap = /^(grid-)?((row|column)-)?gap$/;
5261
- decl.parent.walkDecls(testGap, function (_ref8) {
5262
- var prop = _ref8.prop,
5263
- value = _ref8.value;
5363
+ decl.parent.walkDecls(testGap, function (_ref9) {
5364
+ var prop = _ref9.prop,
5365
+ value = _ref9.value;
5264
5366
 
5265
5367
  if (/^(grid-)?gap$/.test(prop)) {
5266
5368
  var _parser$nodes = parser(value).nodes,
@@ -5279,11 +5381,11 @@ function getGridGap(decl) {
5279
5381
  return gap;
5280
5382
  }
5281
5383
 
5282
- function warnGridGap(_ref9) {
5283
- var gap = _ref9.gap,
5284
- hasColumns = _ref9.hasColumns,
5285
- decl = _ref9.decl,
5286
- result = _ref9.result;
5384
+ function warnGridGap(_ref10) {
5385
+ var gap = _ref10.gap,
5386
+ hasColumns = _ref10.hasColumns,
5387
+ decl = _ref10.decl,
5388
+ result = _ref10.result;
5287
5389
 
5288
5390
  var hasBothGaps = gap.row && gap.column;
5289
5391
  if (!hasColumns && (hasBothGaps || gap.column && !gap.row)) {
@@ -5302,10 +5404,11 @@ module.exports = {
5302
5404
  prefixTrackProp: prefixTrackProp,
5303
5405
  prefixTrackValue: prefixTrackValue,
5304
5406
  getGridGap: getGridGap,
5305
- warnGridGap: warnGridGap
5407
+ warnGridGap: warnGridGap,
5408
+ warnDuplicateNames: warnDuplicateNames
5306
5409
  };
5307
5410
 
5308
- },{"postcss-value-parser":582}],43:[function(require,module,exports){
5411
+ },{"postcss":599,"postcss-value-parser":582}],43:[function(require,module,exports){
5309
5412
  'use strict';
5310
5413
 
5311
5414
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
@@ -6490,7 +6593,7 @@ function capitalize(str) {
6490
6593
  return str.slice(0, 1).toUpperCase() + str.slice(1);
6491
6594
  }
6492
6595
 
6493
- var names = {
6596
+ var NAMES = {
6494
6597
  ie: 'IE',
6495
6598
  ie_mob: 'IE Mobile',
6496
6599
  ios_saf: 'iOS',
@@ -6536,7 +6639,7 @@ module.exports = function (prefixes) {
6536
6639
  var name = parts[0];
6537
6640
  var version = parts[1];
6538
6641
 
6539
- name = names[name] || capitalize(name);
6642
+ name = NAMES[name] || capitalize(name);
6540
6643
  if (versions[name]) {
6541
6644
  versions[name].push(version);
6542
6645
  } else {
@@ -8007,8 +8110,8 @@ var utils = require('./utils');
8007
8110
 
8008
8111
  var n2f = require('num2fraction');
8009
8112
 
8010
- var regexp = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpi)/gi;
8011
- var split = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpi)/i;
8113
+ var REGEXP = /(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpi)/gi;
8114
+ var SPLIT = /(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpi)/i;
8012
8115
 
8013
8116
  var Resolution = function (_Prefixer) {
8014
8117
  _inherits(Resolution, _Prefixer);
@@ -8112,8 +8215,8 @@ var Resolution = function (_Prefixer) {
8112
8215
  }
8113
8216
 
8114
8217
  var _loop = function _loop(prefix) {
8115
- var processed = query.replace(regexp, function (str) {
8116
- var parts = str.match(split);
8218
+ var processed = query.replace(REGEXP, function (str) {
8219
+ var parts = str.match(SPLIT);
8117
8220
  return _this3.prefixQuery(prefix, parts[1], parts[2], parts[3], parts[4]);
8118
8221
  });
8119
8222
  prefixed.push(processed);
@@ -10372,6 +10475,8 @@ module.exports = browserslist;
10372
10475
 
10373
10476
  'use strict';
10374
10477
 
10478
+ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
10479
+
10375
10480
  var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
10376
10481
 
10377
10482
  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; }
@@ -10422,26 +10527,24 @@ function typedArraySupport() {
10422
10527
  }
10423
10528
 
10424
10529
  Object.defineProperty(Buffer.prototype, 'parent', {
10530
+ enumerable: true,
10425
10531
  get: function get() {
10426
- if (!(this instanceof Buffer)) {
10427
- return undefined;
10428
- }
10532
+ if (!Buffer.isBuffer(this)) return undefined;
10429
10533
  return this.buffer;
10430
10534
  }
10431
10535
  });
10432
10536
 
10433
10537
  Object.defineProperty(Buffer.prototype, 'offset', {
10538
+ enumerable: true,
10434
10539
  get: function get() {
10435
- if (!(this instanceof Buffer)) {
10436
- return undefined;
10437
- }
10540
+ if (!Buffer.isBuffer(this)) return undefined;
10438
10541
  return this.byteOffset;
10439
10542
  }
10440
10543
  });
10441
10544
 
10442
10545
  function createBuffer(length) {
10443
10546
  if (length > K_MAX_LENGTH) {
10444
- throw new RangeError('Invalid typed array length');
10547
+ throw new RangeError('The value "' + length + '" is invalid for option "size"');
10445
10548
  }
10446
10549
  // Return an augmented `Uint8Array` instance
10447
10550
  var buf = new Uint8Array(length);
@@ -10465,7 +10568,7 @@ function Buffer(arg, encodingOrOffset, length) {
10465
10568
  // Common case.
10466
10569
  if (typeof arg === 'number') {
10467
10570
  if (typeof encodingOrOffset === 'string') {
10468
- throw new Error('If encoding is specified then the first argument must be a string');
10571
+ throw new TypeError('The "string" argument must be of type string. Received type number');
10469
10572
  }
10470
10573
  return allocUnsafe(arg);
10471
10574
  }
@@ -10473,7 +10576,7 @@ function Buffer(arg, encodingOrOffset, length) {
10473
10576
  }
10474
10577
 
10475
10578
  // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
10476
- if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {
10579
+ if (typeof Symbol !== 'undefined' && Symbol.species != null && Buffer[Symbol.species] === Buffer) {
10477
10580
  Object.defineProperty(Buffer, Symbol.species, {
10478
10581
  value: null,
10479
10582
  configurable: true,
@@ -10485,19 +10588,39 @@ if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] ==
10485
10588
  Buffer.poolSize = 8192; // not used by this implementation
10486
10589
 
10487
10590
  function from(value, encodingOrOffset, length) {
10488
- if (typeof value === 'number') {
10489
- throw new TypeError('"value" argument must not be a number');
10591
+ if (typeof value === 'string') {
10592
+ return fromString(value, encodingOrOffset);
10593
+ }
10594
+
10595
+ if (ArrayBuffer.isView(value)) {
10596
+ return fromArrayLike(value);
10490
10597
  }
10491
10598
 
10492
- if (isArrayBuffer(value) || value && isArrayBuffer(value.buffer)) {
10599
+ if (value == null) {
10600
+ throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)));
10601
+ }
10602
+
10603
+ if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {
10493
10604
  return fromArrayBuffer(value, encodingOrOffset, length);
10494
10605
  }
10495
10606
 
10496
- if (typeof value === 'string') {
10497
- return fromString(value, encodingOrOffset);
10607
+ if (typeof value === 'number') {
10608
+ throw new TypeError('The "value" argument must not be of type number. Received type number');
10498
10609
  }
10499
10610
 
10500
- return fromObject(value);
10611
+ var valueOf = value.valueOf && value.valueOf();
10612
+ if (valueOf != null && valueOf !== value) {
10613
+ return Buffer.from(valueOf, encodingOrOffset, length);
10614
+ }
10615
+
10616
+ var b = fromObject(value);
10617
+ if (b) return b;
10618
+
10619
+ if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {
10620
+ return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length);
10621
+ }
10622
+
10623
+ throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)));
10501
10624
  }
10502
10625
 
10503
10626
  /**
@@ -10523,7 +10646,7 @@ function assertSize(size) {
10523
10646
  if (typeof size !== 'number') {
10524
10647
  throw new TypeError('"size" argument must be of type number');
10525
10648
  } else if (size < 0) {
10526
- throw new RangeError('"size" argument must not be negative');
10649
+ throw new RangeError('The value "' + size + '" is invalid for option "size"');
10527
10650
  }
10528
10651
  }
10529
10652
 
@@ -10638,20 +10761,16 @@ function fromObject(obj) {
10638
10761
  return buf;
10639
10762
  }
10640
10763
 
10641
- if (obj) {
10642
- if (ArrayBuffer.isView(obj) || 'length' in obj) {
10643
- if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
10644
- return createBuffer(0);
10645
- }
10646
- return fromArrayLike(obj);
10647
- }
10648
-
10649
- if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
10650
- return fromArrayLike(obj.data);
10764
+ if (obj.length !== undefined) {
10765
+ if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
10766
+ return createBuffer(0);
10651
10767
  }
10768
+ return fromArrayLike(obj);
10652
10769
  }
10653
10770
 
10654
- throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.');
10771
+ if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
10772
+ return fromArrayLike(obj.data);
10773
+ }
10655
10774
  }
10656
10775
 
10657
10776
  function checked(length) {
@@ -10672,12 +10791,14 @@ function SlowBuffer(length) {
10672
10791
  }
10673
10792
 
10674
10793
  Buffer.isBuffer = function isBuffer(b) {
10675
- return b != null && b._isBuffer === true;
10794
+ return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false
10676
10795
  };
10677
10796
 
10678
10797
  Buffer.compare = function compare(a, b) {
10798
+ if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);
10799
+ if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);
10679
10800
  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
10680
- throw new TypeError('Arguments must be Buffers');
10801
+ throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');
10681
10802
  }
10682
10803
 
10683
10804
  if (a === b) return 0;
@@ -10738,7 +10859,7 @@ Buffer.concat = function concat(list, length) {
10738
10859
  var pos = 0;
10739
10860
  for (i = 0; i < list.length; ++i) {
10740
10861
  var buf = list[i];
10741
- if (ArrayBuffer.isView(buf)) {
10862
+ if (isInstance(buf, Uint8Array)) {
10742
10863
  buf = Buffer.from(buf);
10743
10864
  }
10744
10865
  if (!Buffer.isBuffer(buf)) {
@@ -10754,15 +10875,16 @@ function byteLength(string, encoding) {
10754
10875
  if (Buffer.isBuffer(string)) {
10755
10876
  return string.length;
10756
10877
  }
10757
- if (ArrayBuffer.isView(string) || isArrayBuffer(string)) {
10878
+ if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {
10758
10879
  return string.byteLength;
10759
10880
  }
10760
10881
  if (typeof string !== 'string') {
10761
- string = '' + string;
10882
+ throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + (typeof string === 'undefined' ? 'undefined' : _typeof(string)));
10762
10883
  }
10763
10884
 
10764
10885
  var len = string.length;
10765
- if (len === 0) return 0;
10886
+ var mustMatch = arguments.length > 2 && arguments[2] === true;
10887
+ if (!mustMatch && len === 0) return 0;
10766
10888
 
10767
10889
  // Use a for loop to avoid recursion
10768
10890
  var loweredCase = false;
@@ -10774,7 +10896,6 @@ function byteLength(string, encoding) {
10774
10896
  return len;
10775
10897
  case 'utf8':
10776
10898
  case 'utf-8':
10777
- case undefined:
10778
10899
  return utf8ToBytes(string).length;
10779
10900
  case 'ucs2':
10780
10901
  case 'ucs-2':
@@ -10786,7 +10907,9 @@ function byteLength(string, encoding) {
10786
10907
  case 'base64':
10787
10908
  return base64ToBytes(string).length;
10788
10909
  default:
10789
- if (loweredCase) return utf8ToBytes(string).length; // assume utf8
10910
+ if (loweredCase) {
10911
+ return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8
10912
+ }
10790
10913
  encoding = ('' + encoding).toLowerCase();
10791
10914
  loweredCase = true;
10792
10915
  }
@@ -10933,16 +11056,17 @@ Buffer.prototype.equals = function equals(b) {
10933
11056
  Buffer.prototype.inspect = function inspect() {
10934
11057
  var str = '';
10935
11058
  var max = exports.INSPECT_MAX_BYTES;
10936
- if (this.length > 0) {
10937
- str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');
10938
- if (this.length > max) str += ' ... ';
10939
- }
11059
+ str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();
11060
+ if (this.length > max) str += ' ... ';
10940
11061
  return '<Buffer ' + str + '>';
10941
11062
  };
10942
11063
 
10943
11064
  Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {
11065
+ if (isInstance(target, Uint8Array)) {
11066
+ target = Buffer.from(target, target.offset, target.byteLength);
11067
+ }
10944
11068
  if (!Buffer.isBuffer(target)) {
10945
- throw new TypeError('Argument must be a Buffer');
11069
+ throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + (typeof target === 'undefined' ? 'undefined' : _typeof(target)));
10946
11070
  }
10947
11071
 
10948
11072
  if (start === undefined) {
@@ -11909,7 +12033,7 @@ Buffer.prototype.fill = function fill(val, start, end, encoding) {
11909
12033
  this[i] = val;
11910
12034
  }
11911
12035
  } else {
11912
- var bytes = Buffer.isBuffer(val) ? val : new Buffer(val, encoding);
12036
+ var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);
11913
12037
  var len = bytes.length;
11914
12038
  if (len === 0) {
11915
12039
  throw new TypeError('The value "' + val + '" is invalid for argument "value"');
@@ -12051,13 +12175,14 @@ function blitBuffer(src, dst, offset, length) {
12051
12175
  return i;
12052
12176
  }
12053
12177
 
12054
- // ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check
12055
- // but they should be treated as valid. See: https://github.com/feross/buffer/issues/166
12056
- function isArrayBuffer(obj) {
12057
- return obj instanceof ArrayBuffer || obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' && typeof obj.byteLength === 'number';
12178
+ // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass
12179
+ // the `instanceof` check but they should be treated as of that type.
12180
+ // See: https://github.com/feross/buffer/issues/166
12181
+ function isInstance(obj, type) {
12182
+ return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;
12058
12183
  }
12059
-
12060
12184
  function numberIsNaN(obj) {
12185
+ // For IE11 support
12061
12186
  return obj !== obj; // eslint-disable-line no-self-compare
12062
12187
  }
12063
12188
 
@@ -18628,8 +18753,7 @@ var list = {
18628
18753
  * //=> ['black', 'linear-gradient(white, black)']
18629
18754
  */
18630
18755
  comma: function comma(string) {
18631
- var comma = ',';
18632
- return list.split(string, [comma], true);
18756
+ return list.split(string, [','], true);
18633
18757
  }
18634
18758
  };
18635
18759
 
@@ -19171,17 +19295,17 @@ var Node = function () {
19171
19295
  };
19172
19296
 
19173
19297
  /**
19174
- * Returns a clone of the node.
19298
+ * Returns an exact clone of the node.
19175
19299
  *
19176
- * The resulting cloned node and its (cloned) children will have
19177
- * a clean parent and code style properties.
19300
+ * The resulting cloned node and its (cloned) children will retain
19301
+ * code style properties.
19178
19302
  *
19179
19303
  * @param {object} [overrides] New properties to override in the clone.
19180
19304
  *
19181
19305
  * @example
19306
+ * decl.raws.before //=> "\n "
19182
19307
  * const cloned = decl.clone({ prop: '-moz-' + decl.prop })
19183
- * cloned.raws.before //=> undefined
19184
- * cloned.parent //=> undefined
19308
+ * cloned.raws.before //=> "\n "
19185
19309
  * cloned.toString() //=> -moz-transform: scale(0)
19186
19310
  *
19187
19311
  * @return {Node} Clone of the node.
@@ -19418,6 +19542,19 @@ var Node = function () {
19418
19542
  }return result;
19419
19543
  };
19420
19544
 
19545
+ /**
19546
+ * Clear the code style properties for the node and its children.
19547
+ *
19548
+ * @param {boolean} [keepBetween] Keep the raws.between symbols.
19549
+ *
19550
+ * @return {undefined}
19551
+ *
19552
+ * @example
19553
+ * node.raws.before //=> ' '
19554
+ * node.cleanRaws()
19555
+ * node.raws.before //=> undefined
19556
+ */
19557
+
19421
19558
  Node.prototype.cleanRaws = function cleanRaws(keepBetween) {
19422
19559
  delete this.raws.before;
19423
19560
  delete this.raws.after;
@@ -20697,7 +20834,7 @@ var Processor = function () {
20697
20834
  * throw new Error('This plugin works only with PostCSS 6')
20698
20835
  * }
20699
20836
  */
20700
- this.version = '7.0.0';
20837
+ this.version = '7.0.2';
20701
20838
  /**
20702
20839
  * Plugins added to this processor.
20703
20840
  *
@@ -20784,7 +20921,7 @@ var Processor = function () {
20784
20921
  if (this.plugins.length === 0 && opts.parser === opts.stringifier) {
20785
20922
  if (process.env.NODE_ENV !== 'production') {
20786
20923
  if (typeof console !== 'undefined' && console.warn) {
20787
- console.warn('You did not set any plugins, parser, or stringifier. ' + 'Right now PostCSS do nothing. Pick plugins for your case ' + 'on https://www.postcss.parts/ and usem them in postcss.config.js.');
20924
+ console.warn('You did not set any plugins, parser, or stringifier. ' + 'Right now PostCSS do nothing. Pick plugins for your case ' + 'on https://www.postcss.parts/ and use them in postcss.config.js.');
20788
20925
  }
20789
20926
  }
20790
20927
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoprefixer-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Sitnik
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-16 00:00:00.000000000 Z
11
+ date: 2018-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs