autoprefixer-rails 9.0.0 → 9.0.2

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.
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