browserslist 4.28.2 → 4.28.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/README.md CHANGED
@@ -59,6 +59,3 @@ You can check how config works at our playground: [`browsersl.ist`](https://brow
59
59
  [Autoprefixer]: https://github.com/postcss/autoprefixer
60
60
  [Can I Use]: https://caniuse.com/
61
61
  [Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env
62
-
63
- ## Docs
64
- Read full docs **[here](https://github.com/browserslist/browserslist#readme)**.
package/cli.js CHANGED
@@ -38,7 +38,6 @@ if (isArg('--help') || isArg('-h')) {
38
38
  } else if (isArg('--version') || isArg('-v')) {
39
39
  process.stdout.write('browserslist ' + pkg.version + '\n')
40
40
  } else if (isArg('--update-db')) {
41
- /* c8 ignore next 8 */
42
41
  process.stdout.write(
43
42
  'The --update-db command is deprecated.\n' +
44
43
  'Please use npx update-browserslist-db@latest instead.\n'
package/index.js CHANGED
@@ -7,14 +7,13 @@ var path = require('path')
7
7
 
8
8
  var BrowserslistError = require('./error')
9
9
  var env = require('./node')
10
- var parseWithoutCache = require('./parse') // Will load browser.js in webpack
10
+ var parseWithoutCache = require('./parse')
11
11
 
12
12
  var YEAR = 365.259641 * 24 * 60 * 60 * 1000
13
13
  var ANDROID_EVERGREEN_FIRST = '37'
14
14
  var OP_MOB_BLINK_FIRST = 14
15
15
  var FIREFOX_ESR_VERSION = '140'
16
16
 
17
- // Helpers
18
17
 
19
18
  function isVersionsMatch(versionA, versionB) {
20
19
  return (versionA + '.').indexOf(versionB + '.') === 0
@@ -150,14 +149,11 @@ function compareSemver(a, b) {
150
149
  )
151
150
  }
152
151
 
153
- // this follows the npm-like semver behavior
154
152
  function semverFilterLoose(operator, range) {
155
153
  range = range.split('.').map(parseSimpleInt)
156
154
  if (typeof range[1] === 'undefined') {
157
155
  range[1] = 'x'
158
156
  }
159
- // ignore any patch version because we only return minor versions
160
- // range[2] = 'x'
161
157
  switch (operator) {
162
158
  case '<=':
163
159
  return function (version) {
@@ -173,7 +169,6 @@ function semverFilterLoose(operator, range) {
173
169
  }
174
170
  }
175
171
 
176
- // this follows the npm-like semver behavior
177
172
  function compareSemverLoose(version, range) {
178
173
  if (version[0] !== range[0]) {
179
174
  return version[0] < range[0] ? -1 : +1
@@ -294,8 +289,6 @@ function unknownQuery(query) {
294
289
  )
295
290
  }
296
291
 
297
- // Adjusts last X versions queries for some mobile browsers,
298
- // where caniuse data jumps from a legacy version to the latest
299
292
  function filterJumps(list, name, nVersions, context) {
300
293
  var jump = 1
301
294
  switch (name) {
@@ -418,7 +411,6 @@ function browserslist(queries, opts) {
418
411
  mobileToDesktop: opts.mobileToDesktop,
419
412
  env: opts.env
420
413
  }
421
- // Removing to avoid using context.path without marking query as needsPath
422
414
  if (needsPath) {
423
415
  context.path = opts.path
424
416
  }
@@ -439,9 +431,6 @@ function browserslist(queries, opts) {
439
431
  name1 = name1.split(' ')
440
432
  name2 = name2.split(' ')
441
433
  if (name1[0] === name2[0]) {
442
- // assumptions on caniuse data
443
- // 1) version ranges never overlaps
444
- // 2) if version is not a range, it never contains `-`
445
434
  var version1 = name1[1].split('-')[0]
446
435
  var version2 = name2[1].split('-')[0]
447
436
  return compareSemver(version2.split('.'), version1.split('.'))
@@ -486,7 +475,6 @@ browserslist.parse = function (queries, opts) {
486
475
  return parseQueries(queries)
487
476
  }
488
477
 
489
- // Will be filled by Can I Use data below
490
478
  browserslist.cache = {}
491
479
  browserslist.data = {}
492
480
  browserslist.usage = {
@@ -494,10 +482,8 @@ browserslist.usage = {
494
482
  custom: null
495
483
  }
496
484
 
497
- // Default browsers query
498
485
  browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']
499
486
 
500
- // Browser names aliases
501
487
  browserslist.aliases = {
502
488
  fx: 'firefox',
503
489
  ff: 'firefox',
@@ -513,17 +499,13 @@ browserslist.aliases = {
513
499
  qqandroid: 'and_qq'
514
500
  }
515
501
 
516
- // Can I Use only provides a few versions for some browsers (e.g. and_chr).
517
- // Fallback to a similar browser for unknown versions
518
- // Note op_mob is not included as its chromium versions are not in sync with Opera desktop
519
502
  browserslist.desktopNames = {
520
503
  and_chr: 'chrome',
521
504
  and_ff: 'firefox',
522
505
  ie_mob: 'ie',
523
- android: 'chrome' // has extra processing logic
506
+ android: 'chrome'
524
507
  }
525
508
 
526
- // Aliases to work with joined versions like `ios_saf 7.0-7.1`
527
509
  browserslist.versionAliases = {}
528
510
 
529
511
  browserslist.clearCaches = env.clearCaches
@@ -816,20 +798,14 @@ var QUERIES = {
816
798
  },
817
799
  baseline: {
818
800
  matches: ['year', 'availability', 'date', 'downstream', 'kaios'],
819
- // Matches:
820
- // baseline 2024
821
- // baseline newly available
822
- // baseline widely available
823
- // baseline widely available on 2024-06-01
824
- // ...with downstream
825
- // ...including kaios
826
801
  regexp:
827
802
  /^baseline\s+(?:(\d+)|(newly|widely)\s+available(?:\s+on\s+(\d{4}-\d{2}-\d{2}))?)?(\s+with\s+downstream)?(\s+including\s+kaios)?$/i,
828
803
  select: function (context, node) {
829
804
  var baselineVersions
830
805
  var includeDownstream = !!node.downstream
831
806
  var includeKaiOS = !!node.kaios
832
- if (node.availability === 'newly' && node.date) {
807
+ var availability = node.availability && node.availability.toLowerCase()
808
+ if (availability === 'newly' && node.date) {
833
809
  throw new BrowserslistError(
834
810
  'Using newly available with a date is not supported, please use "widely available on YYYY-MM-DD" and add 30 months to the date you specified.'
835
811
  )
@@ -848,7 +824,7 @@ var QUERIES = {
848
824
  includeKaiOS: includeKaiOS,
849
825
  suppressWarnings: true
850
826
  })
851
- } else if (node.availability === 'newly') {
827
+ } else if (availability === 'newly') {
852
828
  var future30months = new Date().setMonth(new Date().getMonth() + 30)
853
829
  baselineVersions = bbm.getCompatibleVersions({
854
830
  widelyAvailableOnDate: future30months,
@@ -1020,7 +996,6 @@ var QUERIES = {
1020
996
  var result = []
1021
997
  for (var name in features) {
1022
998
  var data = byName(name, context)
1023
- // Only check desktop when latest released mobile has support
1024
999
  var iMax = data.released.length - 1
1025
1000
  while (iMax >= 0) {
1026
1001
  if (data.released[iMax] in features[name]) break
@@ -1302,7 +1277,6 @@ var QUERIES = {
1302
1277
  }
1303
1278
  }
1304
1279
 
1305
- // Get and convert Can I Use data
1306
1280
 
1307
1281
  ;(function () {
1308
1282
  for (var name in agents) {
package/node.js CHANGED
@@ -27,7 +27,7 @@ function checkExtend(name) {
27
27
  'Browserslist config needs `browserslist-config-` prefix. ' + use
28
28
  )
29
29
  }
30
- if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) {
30
+ if (name.replace(/^@[^/]+\
31
31
  throw new BrowserslistError(
32
32
  '`.` not allowed in Browserslist config name. ' + use
33
33
  )
@@ -44,7 +44,6 @@ function getPathType(filepath) {
44
44
  try {
45
45
  stats = fs.existsSync(filepath) && fs.statSync(filepath)
46
46
  } catch (err) {
47
- /* c8 ignore start */
48
47
  if (
49
48
  err.code !== 'ENOENT' &&
50
49
  err.code !== 'EACCES' &&
@@ -52,7 +51,6 @@ function getPathType(filepath) {
52
51
  ) {
53
52
  throw err
54
53
  }
55
- /* c8 ignore end */
56
54
  }
57
55
 
58
56
  if (stats && stats.isDirectory()) return PATHTYPE_DIR
@@ -239,8 +237,6 @@ function normalizeStats(data, stats) {
239
237
  function normalizeUsageData(usageData, data) {
240
238
  for (var browser in usageData) {
241
239
  var browserUsage = usageData[browser]
242
- // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615
243
- // caniuse-db returns { 0: "percentage" } for `and_*` regional stats
244
240
  if ('0' in browserUsage) {
245
241
  var versions = data[browser].versions
246
242
  browserUsage[versions[versions.length - 1]] = browserUsage[0]
@@ -279,7 +275,6 @@ module.exports = {
279
275
  checkExtend(name)
280
276
  }
281
277
  var stats = require(
282
- // Use forward slashes for module paths, also on Windows.
283
278
  require.resolve(path.posix.join(name, 'browserslist-stats.json'), {
284
279
  paths: ['.']
285
280
  })
@@ -337,7 +332,7 @@ module.exports = {
337
332
  }
338
333
  var usageData = region(compressed)
339
334
  normalizeUsageData(usageData, data)
340
- usage[country] = {}
335
+ usage[country] = Object.create(null)
341
336
  for (var i in usageData) {
342
337
  for (var j in usageData[i]) {
343
338
  usage[country][i + ' ' + j] = usageData[i][j]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "4.28.2",
3
+ "version": "4.28.3",
4
4
  "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
5
5
  "keywords": [
6
6
  "browsers",
@@ -33,10 +33,10 @@
33
33
  },
34
34
  "types": "./index.d.ts",
35
35
  "dependencies": {
36
- "baseline-browser-mapping": "^2.10.12",
37
- "caniuse-lite": "^1.0.30001782",
38
- "electron-to-chromium": "^1.5.328",
39
- "node-releases": "^2.0.36",
36
+ "baseline-browser-mapping": "^2.10.38",
37
+ "caniuse-lite": "^1.0.30001799",
38
+ "electron-to-chromium": "^1.5.376",
39
+ "node-releases": "^2.0.48",
40
40
  "update-browserslist-db": "^1.2.3"
41
41
  },
42
42
  "engines": {