browserslist 4.9.0 → 4.9.1

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
+ ## 4.9.1
5
+ * Normalize incorrect Can I Use regional data (by Huáng Jùnliàng).
6
+
4
7
  ## 4.9
5
8
  * Add `node X-Y` query support (by Yuping Zuo).
6
9
 
package/index.js CHANGED
@@ -588,7 +588,7 @@ browserslist.coverage = function (browsers, stats) {
588
588
  } else {
589
589
  stats = stats.toUpperCase()
590
590
  }
591
- env.loadCountry(browserslist.usage, stats)
591
+ env.loadCountry(browserslist.usage, stats, browserslist.data)
592
592
  data = browserslist.usage[stats]
593
593
  } else {
594
594
  if ('dataByBrowser' in stats) {
@@ -823,7 +823,7 @@ var QUERIES = [
823
823
  } else {
824
824
  place = place.toLowerCase()
825
825
  }
826
- env.loadCountry(browserslist.usage, place)
826
+ env.loadCountry(browserslist.usage, place, browserslist.data)
827
827
  var usage = browserslist.usage[place]
828
828
  return Object.keys(usage).reduce(function (result, version) {
829
829
  if (sign === '>') {
@@ -866,7 +866,7 @@ var QUERIES = [
866
866
  } else {
867
867
  place = place.toLowerCase()
868
868
  }
869
- env.loadCountry(browserslist.usage, place)
869
+ env.loadCountry(browserslist.usage, place, browserslist.data)
870
870
  usage = browserslist.usage[place]
871
871
  }
872
872
  }
package/node.js CHANGED
@@ -137,6 +137,20 @@ function normalizeStats (data, stats) {
137
137
  return normalized
138
138
  }
139
139
 
140
+ function normalizeUsageData (usageData, data) {
141
+ for (var browser in usageData) {
142
+ var browserUsage = usageData[browser]
143
+ // eslint-disable-next-line max-len
144
+ // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615
145
+ // caniuse-db returns { 0: "percentage" } for `and_*` regional stats
146
+ if ('0' in browserUsage) {
147
+ var versions = data[browser].versions
148
+ browserUsage[versions[versions.length - 1]] = browserUsage[0]
149
+ delete browserUsage[0]
150
+ }
151
+ }
152
+ }
153
+
140
154
  module.exports = {
141
155
  loadQueries: function loadQueries (context, name) {
142
156
  if (!context.dangerousExtend) checkExtend(name)
@@ -201,16 +215,17 @@ module.exports = {
201
215
  }
202
216
  },
203
217
 
204
- loadCountry: function loadCountry (usage, country) {
218
+ loadCountry: function loadCountry (usage, country, data) {
205
219
  var code = country.replace(/[^\w-]/g, '')
206
220
  if (!usage[code]) {
207
221
  // eslint-disable-next-line security/detect-non-literal-require
208
222
  var compressed = require('caniuse-lite/data/regions/' + code + '.js')
209
- var data = region(compressed)
223
+ var usageData = region(compressed)
224
+ normalizeUsageData(usageData, data)
210
225
  usage[country] = { }
211
- for (var i in data) {
212
- for (var j in data[i]) {
213
- usage[country][i + ' ' + j] = data[i][j]
226
+ for (var i in usageData) {
227
+ for (var j in usageData[i]) {
228
+ usage[country][i + ' ' + j] = usageData[i][j]
214
229
  }
215
230
  }
216
231
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "4.9.0",
3
+ "version": "4.9.1",
4
4
  "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
5
5
  "keywords": [
6
6
  "caniuse",
@@ -16,7 +16,7 @@
16
16
  "repository": "browserslist/browserslist",
17
17
  "dependencies": {
18
18
  "caniuse-lite": "^1.0.30001030",
19
- "electron-to-chromium": "^1.3.361",
19
+ "electron-to-chromium": "^1.3.363",
20
20
  "node-releases": "^1.1.50"
21
21
  },
22
22
  "bin": "./cli.js",