browserslist 4.19.1 → 4.20.0

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/cli.js CHANGED
@@ -20,7 +20,7 @@ var USAGE =
20
20
  ' npx browserslist --env="environment name defined in config"\n' +
21
21
  ' npx browserslist --stats="path/to/browserlist/stats/file"\n' +
22
22
  ' npx browserslist --mobile-to-desktop\n' +
23
- ' npx browserslist --ignore-unknown-versions' +
23
+ ' npx browserslist --ignore-unknown-versions\n' +
24
24
  ' npx browserslist --update-db'
25
25
 
26
26
  function isArg(arg) {
package/index.d.ts CHANGED
@@ -102,6 +102,8 @@ declare namespace browserslist {
102
102
  | undefined
103
103
  }
104
104
 
105
+ let nodeVersions: string[]
106
+
105
107
  interface Usage {
106
108
  [version: string]: number
107
109
  }
package/index.js CHANGED
@@ -19,8 +19,8 @@ function isVersionsMatch(versionA, versionB) {
19
19
 
20
20
  function isEolReleased(name) {
21
21
  var version = name.slice(1)
22
- return jsReleases.some(function (i) {
23
- return isVersionsMatch(i.version, version)
22
+ return browserslist.nodeVersions.some(function (i) {
23
+ return isVersionsMatch(i, version)
24
24
  })
25
25
  }
26
26
 
@@ -617,11 +617,8 @@ browserslist.coverage = function (browsers, stats) {
617
617
  }
618
618
 
619
619
  function nodeQuery(context, version) {
620
- var nodeReleases = jsReleases.filter(function (i) {
621
- return i.name === 'nodejs'
622
- })
623
- var matched = nodeReleases.filter(function (i) {
624
- return isVersionsMatch(i.version, version)
620
+ var matched = browserslist.nodeVersions.filter(function (i) {
621
+ return isVersionsMatch(i, version)
625
622
  })
626
623
  if (matched.length === 0) {
627
624
  if (context.ignoreUnknownVersions) {
@@ -630,7 +627,7 @@ function nodeQuery(context, version) {
630
627
  throw new BrowserslistError('Unknown version ' + version + ' of Node.js')
631
628
  }
632
629
  }
633
- return ['node ' + matched[matched.length - 1].version]
630
+ return ['node ' + matched[matched.length - 1]]
634
631
  }
635
632
 
636
633
  function sinceQuery(context, year, month, date) {
@@ -716,6 +713,16 @@ var QUERIES = [
716
713
  })
717
714
  }
718
715
  },
716
+ {
717
+ regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i,
718
+ select: function (context, versions) {
719
+ return getMajorVersions(browserslist.nodeVersions, versions).map(
720
+ function (version) {
721
+ return 'node ' + version
722
+ }
723
+ )
724
+ }
725
+ },
719
726
  {
720
727
  regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,
721
728
  select: function (context, versions, name) {
@@ -738,6 +745,14 @@ var QUERIES = [
738
745
  })
739
746
  }
740
747
  },
748
+ {
749
+ regexp: /^last\s+(\d+)\s+node\s+versions?$/i,
750
+ select: function (context, versions) {
751
+ return browserslist.nodeVersions.slice(-versions).map(function (version) {
752
+ return 'node ' + version
753
+ })
754
+ }
755
+ },
741
756
  {
742
757
  regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
743
758
  select: function (context, versions, name) {
@@ -980,14 +995,7 @@ var QUERIES = [
980
995
  {
981
996
  regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
982
997
  select: function (context, from, to) {
983
- var nodeVersions = jsReleases
984
- .filter(function (i) {
985
- return i.name === 'nodejs'
986
- })
987
- .map(function (i) {
988
- return i.version
989
- })
990
- return nodeVersions
998
+ return browserslist.nodeVersions
991
999
  .filter(semverFilterLoose('>=', from))
992
1000
  .filter(semverFilterLoose('<=', to))
993
1001
  .map(function (v) {
@@ -1022,14 +1030,7 @@ var QUERIES = [
1022
1030
  {
1023
1031
  regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
1024
1032
  select: function (context, sign, version) {
1025
- var nodeVersions = jsReleases
1026
- .filter(function (i) {
1027
- return i.name === 'nodejs'
1028
- })
1029
- .map(function (i) {
1030
- return i.version
1031
- })
1032
- return nodeVersions
1033
+ return browserslist.nodeVersions
1033
1034
  .filter(generateSemverFilter(sign, version))
1034
1035
  .map(function (v) {
1035
1036
  return 'node ' + v
@@ -1054,7 +1055,7 @@ var QUERIES = [
1054
1055
  {
1055
1056
  regexp: /^(firefox|ff|fx)\s+esr$/i,
1056
1057
  select: function () {
1057
- return ['firefox 78', 'firefox 91']
1058
+ return ['firefox 91']
1058
1059
  }
1059
1060
  },
1060
1061
  {
@@ -1225,6 +1226,10 @@ var QUERIES = [
1225
1226
  }
1226
1227
 
1227
1228
  browserslist.versionAliases.op_mob['59'] = '58'
1229
+
1230
+ browserslist.nodeVersions = jsReleases.map(function (release) {
1231
+ return release.version
1232
+ })
1228
1233
  })()
1229
1234
 
1230
1235
  module.exports = browserslist
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "4.19.1",
3
+ "version": "4.20.0",
4
4
  "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
5
5
  "keywords": [
6
6
  "caniuse",
@@ -15,16 +15,15 @@
15
15
  "license": "MIT",
16
16
  "repository": "browserslist/browserslist",
17
17
  "dependencies": {
18
- "caniuse-lite": "^1.0.30001286",
19
- "electron-to-chromium": "^1.4.17",
18
+ "caniuse-lite": "^1.0.30001313",
19
+ "electron-to-chromium": "^1.4.76",
20
20
  "escalade": "^3.1.1",
21
- "node-releases": "^2.0.1",
21
+ "node-releases": "^2.0.2",
22
22
  "picocolors": "^1.0.0"
23
23
  },
24
24
  "engines": {
25
25
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
26
26
  },
27
- "packageManager": "pnpm@6.23.6",
28
27
  "bin": {
29
28
  "browserslist": "cli.js"
30
29
  },
package/update-db.js CHANGED
@@ -170,64 +170,11 @@ function updateYarnLockfile(lock, latest) {
170
170
  return { content: content, versions: versions }
171
171
  }
172
172
 
173
- function updatePnpmLockfile(lock, latest) {
174
- var versions = {}
175
- var lines = lock.content.split('\n')
176
- var i
177
- var j
178
- var lineParts
179
-
180
- for (i = 0; i < lines.length; i++) {
181
- if (lines[i].indexOf('caniuse-lite:') >= 0) {
182
- lineParts = lines[i].split(/:\s?/, 2)
183
- if (lineParts[1].indexOf('/') >= 0) {
184
- /* c8 ignore start */
185
- var sublineParts = lineParts[1].split(/([/:])/)
186
- for (j = 0; j < sublineParts.length; j++) {
187
- if (sublineParts[j].indexOf('caniuse-lite') >= 0) {
188
- versions[sublineParts[j + 2]] = true
189
- sublineParts[j + 2] = latest.version
190
- break
191
- }
192
- }
193
- lineParts[1] = sublineParts.join('')
194
- /* c8 ignore stop */
195
- } else {
196
- versions[lineParts[1]] = true
197
- }
198
- lines[i] = lineParts[0] + ': ' + latest.version
199
- } else if (lines[i].indexOf('/caniuse-lite') >= 0) {
200
- lineParts = lines[i].split(/([/:])/)
201
- for (j = 0; j < lineParts.length; j++) {
202
- if (lineParts[j].indexOf('caniuse-lite') >= 0) {
203
- versions[lineParts[j + 2]] = true
204
- lineParts[j + 2] = latest.version
205
- break
206
- }
207
- }
208
- lines[i] = lineParts.join('')
209
- for (i = i + 1; i < lines.length; i++) {
210
- if (lines[i].indexOf('integrity: ') !== -1) {
211
- lines[i] = lines[i].replace(
212
- /integrity: .+/,
213
- 'integrity: ' + latest.dist.integrity
214
- )
215
- } else if (lines[i].indexOf(' /') !== -1) {
216
- break
217
- }
218
- }
219
- }
220
- }
221
- return { content: lines.join('\n'), versions: versions }
222
- }
223
-
224
173
  function updateLockfile(lock, latest) {
225
174
  if (!lock.content) lock.content = fs.readFileSync(lock.file).toString()
226
175
 
227
176
  if (lock.mode === 'yarn') {
228
177
  return updateYarnLockfile(lock, latest)
229
- } else if (lock.mode === 'pnpm') {
230
- return updatePnpmLockfile(lock, latest)
231
178
  } else {
232
179
  return updateNpmLockfile(lock, latest)
233
180
  }
@@ -328,6 +275,8 @@ module.exports = function updateDB(print) {
328
275
 
329
276
  if (lock.mode === 'yarn' && lock.version !== 1) {
330
277
  updateWith(print, 'yarn up -R caniuse-lite')
278
+ } else if (lock.mode === 'pnpm') {
279
+ updateWith(print, 'pnpm up caniuse-lite')
331
280
  } else {
332
281
  updatePackageManually(print, lock, latest)
333
282
  }