browserslist 2.3.3 → 2.4.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/CHANGELOG.md +3 -0
- package/README.md +4 -0
- package/index.js +49 -15
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -79,6 +79,10 @@ You can specify the versions by queries (case insensitive):
|
|
|
79
79
|
|
|
80
80
|
* `last 2 versions`: the last 2 versions for each browser.
|
|
81
81
|
* `last 2 Chrome versions`: the last 2 versions of Chrome browser.
|
|
82
|
+
* `last 2 major versions`: all minor/patch releases of the current
|
|
83
|
+
and previous major versions.
|
|
84
|
+
* `last 2 iOS major versions`: all minor/patch releases of the current
|
|
85
|
+
and previous major versions of iOS Safari.
|
|
82
86
|
* `> 5%` or `>= 5%`: versions selected by global usage statistics.
|
|
83
87
|
* `> 5% in US`: uses USA usage statistics. It accepts [two-letter country code].
|
|
84
88
|
* `> 5% in alt-AS`: uses Asia region usage statistics. List of all region codes
|
package/index.js
CHANGED
|
@@ -11,6 +11,27 @@ function normalize (versions) {
|
|
|
11
11
|
})
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
function nameMapper (name) {
|
|
15
|
+
return function mapName (version) {
|
|
16
|
+
return name + ' ' + version
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function getMajor (version) {
|
|
21
|
+
return parseInt(version.split('.')[0])
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function getMajorVersions (released, number) {
|
|
25
|
+
if (released.length === 0) return []
|
|
26
|
+
var minimum = getMajor(released[released.length - 1]) - parseInt(number) + 1
|
|
27
|
+
var selected = []
|
|
28
|
+
for (var i = released.length - 1; i >= 0; i--) {
|
|
29
|
+
if (minimum > getMajor(released[i])) break
|
|
30
|
+
selected.unshift(released[i])
|
|
31
|
+
}
|
|
32
|
+
return selected
|
|
33
|
+
}
|
|
34
|
+
|
|
14
35
|
var env = process.env
|
|
15
36
|
|
|
16
37
|
// eslint-disable-next-line security/detect-unsafe-regex
|
|
@@ -461,6 +482,21 @@ browserslist.clearCaches = function () {
|
|
|
461
482
|
}
|
|
462
483
|
|
|
463
484
|
var QUERIES = [
|
|
485
|
+
{
|
|
486
|
+
regexp: /^last\s+(\d+)\s+major versions?$/i,
|
|
487
|
+
select: function (context, versions) {
|
|
488
|
+
var selected = []
|
|
489
|
+
Object.keys(agents).forEach(function (name) {
|
|
490
|
+
var data = byName(name)
|
|
491
|
+
if (!data) return
|
|
492
|
+
var array = getMajorVersions(data.released, versions)
|
|
493
|
+
|
|
494
|
+
array = array.map(nameMapper(data.name))
|
|
495
|
+
selected = selected.concat(array)
|
|
496
|
+
})
|
|
497
|
+
return selected
|
|
498
|
+
}
|
|
499
|
+
},
|
|
464
500
|
{
|
|
465
501
|
regexp: /^last\s+(\d+)\s+versions?$/i,
|
|
466
502
|
select: function (context, versions) {
|
|
@@ -470,21 +506,25 @@ var QUERIES = [
|
|
|
470
506
|
if (!data) return
|
|
471
507
|
var array = data.released.slice(-versions)
|
|
472
508
|
|
|
473
|
-
array = array.map(
|
|
474
|
-
return data.name + ' ' + v
|
|
475
|
-
})
|
|
509
|
+
array = array.map(nameMapper(data.name))
|
|
476
510
|
selected = selected.concat(array)
|
|
477
511
|
})
|
|
478
512
|
return selected
|
|
479
513
|
}
|
|
480
514
|
},
|
|
515
|
+
{
|
|
516
|
+
regexp: /^last\s+(\d+)\s+(\w+)\s+major versions?$/i,
|
|
517
|
+
select: function (context, versions, name) {
|
|
518
|
+
var data = checkName(name)
|
|
519
|
+
var validVersions = getMajorVersions(data.released, versions)
|
|
520
|
+
return validVersions.map(nameMapper(data.name))
|
|
521
|
+
}
|
|
522
|
+
},
|
|
481
523
|
{
|
|
482
524
|
regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i,
|
|
483
525
|
select: function (context, versions, name) {
|
|
484
526
|
var data = checkName(name)
|
|
485
|
-
return data.released.slice(-versions).map(
|
|
486
|
-
return data.name + ' ' + v
|
|
487
|
-
})
|
|
527
|
+
return data.released.slice(-versions).map(nameMapper(data.name))
|
|
488
528
|
}
|
|
489
529
|
},
|
|
490
530
|
{
|
|
@@ -498,9 +538,7 @@ var QUERIES = [
|
|
|
498
538
|
return data.released.indexOf(v) === -1
|
|
499
539
|
})
|
|
500
540
|
|
|
501
|
-
array = array.map(
|
|
502
|
-
return data.name + ' ' + v
|
|
503
|
-
})
|
|
541
|
+
array = array.map(nameMapper(data.name))
|
|
504
542
|
selected = selected.concat(array)
|
|
505
543
|
})
|
|
506
544
|
return selected
|
|
@@ -512,9 +550,7 @@ var QUERIES = [
|
|
|
512
550
|
var data = checkName(name)
|
|
513
551
|
return data.versions.filter(function (v) {
|
|
514
552
|
return data.released.indexOf(v) === -1
|
|
515
|
-
}).map(
|
|
516
|
-
return data.name + ' ' + v
|
|
517
|
-
})
|
|
553
|
+
}).map(nameMapper(data.name))
|
|
518
554
|
}
|
|
519
555
|
},
|
|
520
556
|
{
|
|
@@ -620,9 +656,7 @@ var QUERIES = [
|
|
|
620
656
|
return parsed >= from && parsed <= to
|
|
621
657
|
}
|
|
622
658
|
|
|
623
|
-
return data.released.filter(filter).map(
|
|
624
|
-
return data.name + ' ' + v
|
|
625
|
-
})
|
|
659
|
+
return data.released.filter(filter).map(nameMapper(data.name))
|
|
626
660
|
}
|
|
627
661
|
},
|
|
628
662
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browserslist",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "Share browsers list between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"caniuse",
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"repository": "ai/browserslist",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"caniuse-lite": "^1.0.
|
|
13
|
+
"caniuse-lite": "^1.0.30000718",
|
|
14
14
|
"electron-to-chromium": "^1.3.18"
|
|
15
15
|
},
|
|
16
16
|
"bin": "./cli.js",
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"cross-spawn": "^5.1.0",
|
|
19
|
-
"eslint": "^4.
|
|
19
|
+
"eslint": "^4.5.0",
|
|
20
20
|
"eslint-config-logux": "^16.0.0",
|
|
21
21
|
"eslint-config-standard": "^10.2.1",
|
|
22
22
|
"eslint-plugin-es5": "^1.1.0",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"eslint-plugin-security": "^1.4.0",
|
|
28
28
|
"eslint-plugin-standard": "^3.0.1",
|
|
29
29
|
"jest": "^20.0.4",
|
|
30
|
-
"lint-staged": "^4.0.
|
|
30
|
+
"lint-staged": "^4.0.4",
|
|
31
31
|
"pre-commit": "^1.1.3",
|
|
32
|
-
"size-limit": "^0.
|
|
32
|
+
"size-limit": "^0.10.0",
|
|
33
33
|
"yaspeller-ci": "^0.6.0"
|
|
34
34
|
},
|
|
35
35
|
"eslintConfig": {
|