browserslist 4.2.1 → 4.3.3

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
+ ## 4.3.3
5
+ * Fix Node.js 11 support.
6
+
7
+ ## 4.3.2
8
+ * Fix `Unknown version 11 of Node.js` error (by Dan Onoshko).
9
+
10
+ ## 4.3.1
11
+ * Fix conflict between `caniuse-lite` and custom browsers statistics.
12
+
13
+ ## 4.3
14
+ * Allow to use `extends browserslist-config-a/file` (by @Schweinepriester).
15
+
4
16
  ## 4.2.1
5
17
  * Use new `node-releases` support (by Sergey Rubanov).
6
18
 
package/index.js CHANGED
@@ -9,6 +9,17 @@ var env = require('./node') // Will load browser.js in webpack
9
9
 
10
10
  var FLOAT_RANGE = /^\d+(\.\d+)?(-\d+(\.\d+)?)*$/
11
11
 
12
+ function isVersionsMatch (versionA, versionB) {
13
+ return (versionA + '.').indexOf(versionB + '.') === 0
14
+ }
15
+
16
+ function isEolReleased (name) {
17
+ var version = name.slice(1)
18
+ return jsReleases.some(function (i) {
19
+ return isVersionsMatch(i.version, version)
20
+ })
21
+ }
22
+
12
23
  function normalize (versions) {
13
24
  return versions.filter(function (version) {
14
25
  return typeof version === 'string'
@@ -211,7 +222,7 @@ function browserslist (queries, opts) {
211
222
  }
212
223
 
213
224
  env.oldDataWarning(browserslist.data)
214
- var stats = env.getStat(opts)
225
+ var stats = env.getStat(opts, browserslist.data)
215
226
  if (stats) {
216
227
  context.customUsage = { }
217
228
  for (var browser in stats) {
@@ -680,7 +691,7 @@ var QUERIES = [
680
691
  return i.name === 'nodejs'
681
692
  })
682
693
  var matched = nodeReleases.filter(function (i) {
683
- return (i.version + '.').indexOf(version + '.') === 0
694
+ return isVersionsMatch(i.version, version)
684
695
  })
685
696
  if (matched.length === 0) {
686
697
  if (context.ignoreUnknownVersions) {
@@ -705,7 +716,8 @@ var QUERIES = [
705
716
  var now = Date.now()
706
717
  var queries = Object.keys(jsEOL).filter(function (key) {
707
718
  return now < Date.parse(jsEOL[key].end) &&
708
- now > Date.parse(jsEOL[key].start)
719
+ now > Date.parse(jsEOL[key].start) &&
720
+ isEolReleased(key)
709
721
  }).map(function (key) {
710
722
  return 'node ' + key.slice(1)
711
723
  })
package/node.js CHANGED
@@ -6,7 +6,7 @@ var BrowserslistError = require('./error')
6
6
 
7
7
  var IS_SECTION = /^\s*\[(.+)\]\s*$/
8
8
  var CONFIG_PATTERN = /^browserslist-config-/
9
- var SCOPED_CONFIG__PATTERN = /@[^./]+\/browserslist-config(-|$)/
9
+ var SCOPED_CONFIG__PATTERN = /@[^./]+\/browserslist-config(-|$|\/)/
10
10
  var TIME_TO_UPDATE_CANIUSE = 6 * 30 * 24 * 60 * 60 * 1000
11
11
  var FORMAT = 'Browserslist config should be a string or an array ' +
12
12
  'of strings with browser queries'
@@ -123,7 +123,7 @@ module.exports = {
123
123
  return queries
124
124
  },
125
125
 
126
- getStat: function getStat (opts) {
126
+ getStat: function getStat (opts, data) {
127
127
  var stats
128
128
  if (opts.stats) {
129
129
  stats = opts.stats
@@ -148,7 +148,21 @@ module.exports = {
148
148
  stats = stats.dataByBrowser
149
149
  }
150
150
 
151
- return stats
151
+ if (typeof stats !== 'object') return undefined
152
+
153
+ var normalized = { }
154
+ for (var i in stats) {
155
+ var versions = Object.keys(stats[i])
156
+ if (versions.length === 1 && data[i] && data[i].versions.length === 1) {
157
+ var normal = Object.keys(data[i].versions)[0]
158
+ normalized[i] = { }
159
+ normalized[i][normal] = stats[i]
160
+ } else {
161
+ normalized[i] = stats[i]
162
+ }
163
+ }
164
+
165
+ return normalized
152
166
  },
153
167
 
154
168
  loadConfig: function loadConfig (opts) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "4.2.1",
3
+ "version": "4.3.3",
4
4
  "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
5
5
  "keywords": [
6
6
  "caniuse",
@@ -11,9 +11,9 @@
11
11
  "license": "MIT",
12
12
  "repository": "browserslist/browserslist",
13
13
  "dependencies": {
14
- "caniuse-lite": "^1.0.30000890",
15
- "electron-to-chromium": "^1.3.79",
16
- "node-releases": "^1.0.0-alpha.14"
14
+ "caniuse-lite": "^1.0.30000898",
15
+ "electron-to-chromium": "^1.3.81",
16
+ "node-releases": "^1.0.0-alpha.15"
17
17
  },
18
18
  "bin": "./cli.js",
19
19
  "browser": {