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 +0 -3
- package/cli.js +0 -1
- package/index.js +5 -31
- package/node.js +2 -7
- package/package.json +5 -5
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')
|
|
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'
|
|
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
|
-
|
|
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 (
|
|
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(/^@[^/]
|
|
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.
|
|
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.
|
|
37
|
-
"caniuse-lite": "^1.0.
|
|
38
|
-
"electron-to-chromium": "^1.5.
|
|
39
|
-
"node-releases": "^2.0.
|
|
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": {
|