browserslist 4.16.0 → 4.16.4
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 +7 -7
- package/index.js +137 -105
- package/node.js +1 -1
- package/package.json +5 -5
- package/update-db.js +118 -82
- package/CHANGELOG.md +0 -505
package/README.md
CHANGED
|
@@ -263,7 +263,7 @@ You can specify the browser and Node.js versions by queries (case insensitive):
|
|
|
263
263
|
* `Firefox > 20`: versions of Firefox newer than 20.
|
|
264
264
|
`>=`, `<` and `<=` work too. It also works with Node.js.
|
|
265
265
|
* `ie 6-8`: selects an inclusive range of versions.
|
|
266
|
-
* `Firefox ESR`: the latest [Firefox
|
|
266
|
+
* `Firefox ESR`: the latest [Firefox Extended Support Release].
|
|
267
267
|
* `PhantomJS 2.1` and `PhantomJS 1.9`: selects Safari versions similar
|
|
268
268
|
to PhantomJS runtime.
|
|
269
269
|
* `extends browserslist-config-mycompany`: take queries from
|
|
@@ -273,13 +273,13 @@ You can specify the browser and Node.js versions by queries (case insensitive):
|
|
|
273
273
|
page. A list of all available features can be found at
|
|
274
274
|
[`caniuse-lite/data/features`].
|
|
275
275
|
* `browserslist config`: the browsers defined in Browserslist config. Useful
|
|
276
|
-
in
|
|
276
|
+
in Differential Serving to modify user’s config like
|
|
277
277
|
`browserslist config and supports es6-module`.
|
|
278
278
|
* `since 2015` or `last 2 years`: all versions released since year 2015
|
|
279
279
|
(also `since 2015-03` and `since 2015-03-10`).
|
|
280
280
|
* `unreleased versions` or `unreleased Chrome versions`:
|
|
281
281
|
alpha and beta versions.
|
|
282
|
-
* `not ie <= 8`: exclude
|
|
282
|
+
* `not ie <= 8`: exclude IE 8 and lower from previous queries.
|
|
283
283
|
|
|
284
284
|
You can add `not ` to any query.
|
|
285
285
|
|
|
@@ -289,6 +289,7 @@ You can add `not ` to any query.
|
|
|
289
289
|
[custom usage data]: #custom-usage-data
|
|
290
290
|
[still maintained]: https://github.com/nodejs/Release
|
|
291
291
|
[Can I Use]: https://caniuse.com/
|
|
292
|
+
[Firefox Extended Support Release]: https://support.mozilla.org/en-US/kb/choosing-firefox-update-channel
|
|
292
293
|
|
|
293
294
|
|
|
294
295
|
### Debug
|
|
@@ -402,8 +403,7 @@ naming or prefixing the module with `@scope/browserslist-config`, such as
|
|
|
402
403
|
`@scope/browserslist-config` or `@scope/browserslist-config-mycompany`.
|
|
403
404
|
|
|
404
405
|
If you don’t accept Browserslist queries from users, you can disable the
|
|
405
|
-
validation by using the or `BROWSERSLIST_DANGEROUS_EXTEND` environment variable
|
|
406
|
-
or `dangerousExtend` option.
|
|
406
|
+
validation by using the or `BROWSERSLIST_DANGEROUS_EXTEND` environment variable.
|
|
407
407
|
|
|
408
408
|
```sh
|
|
409
409
|
BROWSERSLIST_DANGEROUS_EXTEND=1 npx webpack
|
|
@@ -561,9 +561,9 @@ Options:
|
|
|
561
561
|
* `stats`: custom usage statistics data.
|
|
562
562
|
* `config`: path to config if you want to set it manually.
|
|
563
563
|
* `ignoreUnknownVersions`: do not throw on direct query (like `ie 12`).
|
|
564
|
-
Default is `false
|
|
564
|
+
Default is `false`.
|
|
565
565
|
* `dangerousExtend`: Disable security checks for `extend` query.
|
|
566
|
-
Default is `false
|
|
566
|
+
Default is `false`.
|
|
567
567
|
* `mobileToDesktop`: Use desktop browsers if Can I Use doesn’t have data
|
|
568
568
|
about this mobile version. For instance, Browserslist will return
|
|
569
569
|
`chrome 20` on `and_chr 20` query (Can I Use has only data only about
|
package/index.js
CHANGED
|
@@ -614,6 +614,68 @@ browserslist.coverage = function (browsers, stats) {
|
|
|
614
614
|
}, 0)
|
|
615
615
|
}
|
|
616
616
|
|
|
617
|
+
function nodeQuery (context, version) {
|
|
618
|
+
var nodeReleases = jsReleases.filter(function (i) {
|
|
619
|
+
return i.name === 'nodejs'
|
|
620
|
+
})
|
|
621
|
+
var matched = nodeReleases.filter(function (i) {
|
|
622
|
+
return isVersionsMatch(i.version, version)
|
|
623
|
+
})
|
|
624
|
+
if (matched.length === 0) {
|
|
625
|
+
if (context.ignoreUnknownVersions) {
|
|
626
|
+
return []
|
|
627
|
+
} else {
|
|
628
|
+
throw new BrowserslistError('Unknown version ' + version + ' of Node.js')
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
return ['node ' + matched[matched.length - 1].version]
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
function sinceQuery (context, year, month, date) {
|
|
635
|
+
year = parseInt(year)
|
|
636
|
+
month = parseInt(month || '01') - 1
|
|
637
|
+
date = parseInt(date || '01')
|
|
638
|
+
return filterByYear(Date.UTC(year, month, date, 0, 0, 0), context)
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
function coverQuery (context, coverage, statMode) {
|
|
642
|
+
coverage = parseFloat(coverage)
|
|
643
|
+
var usage = browserslist.usage.global
|
|
644
|
+
if (statMode) {
|
|
645
|
+
if (statMode.match(/^my\s+stats$/)) {
|
|
646
|
+
if (!context.customUsage) {
|
|
647
|
+
throw new BrowserslistError(
|
|
648
|
+
'Custom usage statistics was not provided'
|
|
649
|
+
)
|
|
650
|
+
}
|
|
651
|
+
usage = context.customUsage
|
|
652
|
+
} else {
|
|
653
|
+
var place
|
|
654
|
+
if (statMode.length === 2) {
|
|
655
|
+
place = statMode.toUpperCase()
|
|
656
|
+
} else {
|
|
657
|
+
place = statMode.toLowerCase()
|
|
658
|
+
}
|
|
659
|
+
env.loadCountry(browserslist.usage, place, browserslist.data)
|
|
660
|
+
usage = browserslist.usage[place]
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
var versions = Object.keys(usage).sort(function (a, b) {
|
|
664
|
+
return usage[b] - usage[a]
|
|
665
|
+
})
|
|
666
|
+
var coveraged = 0
|
|
667
|
+
var result = []
|
|
668
|
+
var version
|
|
669
|
+
for (var i = 0; i <= versions.length; i++) {
|
|
670
|
+
version = versions[i]
|
|
671
|
+
if (usage[version] === 0) break
|
|
672
|
+
coveraged += usage[version]
|
|
673
|
+
result.push(version)
|
|
674
|
+
if (coveraged >= coverage) break
|
|
675
|
+
}
|
|
676
|
+
return result
|
|
677
|
+
}
|
|
678
|
+
|
|
617
679
|
var QUERIES = [
|
|
618
680
|
{
|
|
619
681
|
regexp: /^last\s+(\d+)\s+major\s+versions?$/i,
|
|
@@ -669,9 +731,11 @@ var QUERIES = [
|
|
|
669
731
|
{
|
|
670
732
|
regexp: /^last\s+(\d+)\s+electron\s+versions?$/i,
|
|
671
733
|
select: function (context, versions) {
|
|
672
|
-
return Object.keys(e2c)
|
|
673
|
-
|
|
674
|
-
|
|
734
|
+
return Object.keys(e2c)
|
|
735
|
+
.slice(-versions)
|
|
736
|
+
.map(function (i) {
|
|
737
|
+
return 'chrome ' + e2c[i]
|
|
738
|
+
})
|
|
675
739
|
}
|
|
676
740
|
},
|
|
677
741
|
{
|
|
@@ -709,9 +773,11 @@ var QUERIES = [
|
|
|
709
773
|
regexp: /^unreleased\s+(\w+)\s+versions?$/i,
|
|
710
774
|
select: function (context, name) {
|
|
711
775
|
var data = checkName(name, context)
|
|
712
|
-
return data.versions
|
|
713
|
-
|
|
714
|
-
|
|
776
|
+
return data.versions
|
|
777
|
+
.filter(function (v) {
|
|
778
|
+
return data.released.indexOf(v) === -1
|
|
779
|
+
})
|
|
780
|
+
.map(nameMapper(data.name))
|
|
715
781
|
}
|
|
716
782
|
},
|
|
717
783
|
{
|
|
@@ -721,13 +787,16 @@ var QUERIES = [
|
|
|
721
787
|
}
|
|
722
788
|
},
|
|
723
789
|
{
|
|
724
|
-
regexp: /^since (\d+)
|
|
725
|
-
select:
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
790
|
+
regexp: /^since (\d+)$/i,
|
|
791
|
+
select: sinceQuery
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
regexp: /^since (\d+)-(\d+)$/i,
|
|
795
|
+
select: sinceQuery
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
regexp: /^since (\d+)-(\d+)-(\d+)$/i,
|
|
799
|
+
select: sinceQuery
|
|
731
800
|
},
|
|
732
801
|
{
|
|
733
802
|
regexp: /^(>=?|<=?)\s*(\d*\.?\d+)%$/,
|
|
@@ -849,45 +918,12 @@ var QUERIES = [
|
|
|
849
918
|
}
|
|
850
919
|
},
|
|
851
920
|
{
|
|
852
|
-
regexp: /^cover\s+(\d*\.?\d+)
|
|
853
|
-
select:
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
if (!context.customUsage) {
|
|
859
|
-
throw new BrowserslistError(
|
|
860
|
-
'Custom usage statistics was not provided'
|
|
861
|
-
)
|
|
862
|
-
}
|
|
863
|
-
usage = context.customUsage
|
|
864
|
-
} else {
|
|
865
|
-
var match = statMode.match(/\s+in\s+((alt-)?\w\w)/)
|
|
866
|
-
var place = match[1]
|
|
867
|
-
if (place.length === 2) {
|
|
868
|
-
place = place.toUpperCase()
|
|
869
|
-
} else {
|
|
870
|
-
place = place.toLowerCase()
|
|
871
|
-
}
|
|
872
|
-
env.loadCountry(browserslist.usage, place, browserslist.data)
|
|
873
|
-
usage = browserslist.usage[place]
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
var versions = Object.keys(usage).sort(function (a, b) {
|
|
877
|
-
return usage[b] - usage[a]
|
|
878
|
-
})
|
|
879
|
-
var coveraged = 0
|
|
880
|
-
var result = []
|
|
881
|
-
var version
|
|
882
|
-
for (var i = 0; i <= versions.length; i++) {
|
|
883
|
-
version = versions[i]
|
|
884
|
-
if (usage[version] === 0) break
|
|
885
|
-
coveraged += usage[version]
|
|
886
|
-
result.push(version)
|
|
887
|
-
if (coveraged >= coverage) break
|
|
888
|
-
}
|
|
889
|
-
return result
|
|
890
|
-
}
|
|
921
|
+
regexp: /^cover\s+(\d*\.?\d+)%$/,
|
|
922
|
+
select: coverQuery
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
regexp: /^cover\s+(\d*\.?\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/,
|
|
926
|
+
select: coverQuery
|
|
891
927
|
},
|
|
892
928
|
{
|
|
893
929
|
regexp: /^supports\s+([\w-]+)$/,
|
|
@@ -916,31 +952,26 @@ var QUERIES = [
|
|
|
916
952
|
}
|
|
917
953
|
from = parseFloat(from)
|
|
918
954
|
to = parseFloat(to)
|
|
919
|
-
return Object.keys(e2c)
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
955
|
+
return Object.keys(e2c)
|
|
956
|
+
.filter(function (i) {
|
|
957
|
+
var parsed = parseFloat(i)
|
|
958
|
+
return parsed >= from && parsed <= to
|
|
959
|
+
})
|
|
960
|
+
.map(function (i) {
|
|
961
|
+
return 'chrome ' + e2c[i]
|
|
962
|
+
})
|
|
925
963
|
}
|
|
926
964
|
},
|
|
927
965
|
{
|
|
928
966
|
regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
|
|
929
967
|
select: function (context, from, to) {
|
|
930
|
-
var nodeVersions = jsReleases
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
throw new BrowserslistError(
|
|
938
|
-
'Unknown version ' + from + ' of Node.js')
|
|
939
|
-
}
|
|
940
|
-
if (!semverRegExp.test(to)) {
|
|
941
|
-
throw new BrowserslistError(
|
|
942
|
-
'Unknown version ' + to + ' of Node.js')
|
|
943
|
-
}
|
|
968
|
+
var nodeVersions = jsReleases
|
|
969
|
+
.filter(function (i) {
|
|
970
|
+
return i.name === 'nodejs'
|
|
971
|
+
})
|
|
972
|
+
.map(function (i) {
|
|
973
|
+
return i.version
|
|
974
|
+
})
|
|
944
975
|
return nodeVersions
|
|
945
976
|
.filter(semverFilterLoose('>=', from))
|
|
946
977
|
.filter(semverFilterLoose('<=', to))
|
|
@@ -976,11 +1007,13 @@ var QUERIES = [
|
|
|
976
1007
|
{
|
|
977
1008
|
regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i,
|
|
978
1009
|
select: function (context, sign, version) {
|
|
979
|
-
var nodeVersions = jsReleases
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
1010
|
+
var nodeVersions = jsReleases
|
|
1011
|
+
.filter(function (i) {
|
|
1012
|
+
return i.name === 'nodejs'
|
|
1013
|
+
})
|
|
1014
|
+
.map(function (i) {
|
|
1015
|
+
return i.version
|
|
1016
|
+
})
|
|
984
1017
|
return nodeVersions
|
|
985
1018
|
.filter(generateSemverFilter(sign, version))
|
|
986
1019
|
.map(function (v) {
|
|
@@ -1022,30 +1055,23 @@ var QUERIES = [
|
|
|
1022
1055
|
var chrome = e2c[versionToUse]
|
|
1023
1056
|
if (!chrome) {
|
|
1024
1057
|
throw new BrowserslistError(
|
|
1025
|
-
'Unknown version ' + version + ' of electron'
|
|
1058
|
+
'Unknown version ' + version + ' of electron'
|
|
1059
|
+
)
|
|
1026
1060
|
}
|
|
1027
1061
|
return ['chrome ' + chrome]
|
|
1028
1062
|
}
|
|
1029
1063
|
},
|
|
1030
1064
|
{
|
|
1031
|
-
regexp: /^node\s+(\d+
|
|
1032
|
-
select:
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
return []
|
|
1042
|
-
} else {
|
|
1043
|
-
throw new BrowserslistError(
|
|
1044
|
-
'Unknown version ' + version + ' of Node.js')
|
|
1045
|
-
}
|
|
1046
|
-
}
|
|
1047
|
-
return ['node ' + matched[matched.length - 1].version]
|
|
1048
|
-
}
|
|
1065
|
+
regexp: /^node\s+(\d+)$/i,
|
|
1066
|
+
select: nodeQuery
|
|
1067
|
+
},
|
|
1068
|
+
{
|
|
1069
|
+
regexp: /^node\s+(\d+\.\d+)$/i,
|
|
1070
|
+
select: nodeQuery
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
regexp: /^node\s+(\d+\.\d+\.\d+)$/i,
|
|
1074
|
+
select: nodeQuery
|
|
1049
1075
|
},
|
|
1050
1076
|
{
|
|
1051
1077
|
regexp: /^current\s+node$/i,
|
|
@@ -1057,13 +1083,17 @@ var QUERIES = [
|
|
|
1057
1083
|
regexp: /^maintained\s+node\s+versions$/i,
|
|
1058
1084
|
select: function (context) {
|
|
1059
1085
|
var now = Date.now()
|
|
1060
|
-
var queries = Object.keys(jsEOL)
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1086
|
+
var queries = Object.keys(jsEOL)
|
|
1087
|
+
.filter(function (key) {
|
|
1088
|
+
return (
|
|
1089
|
+
now < Date.parse(jsEOL[key].end) &&
|
|
1090
|
+
now > Date.parse(jsEOL[key].start) &&
|
|
1091
|
+
isEolReleased(key)
|
|
1092
|
+
)
|
|
1093
|
+
})
|
|
1094
|
+
.map(function (key) {
|
|
1095
|
+
return 'node ' + key.slice(1)
|
|
1096
|
+
})
|
|
1067
1097
|
return resolve(queries, context)
|
|
1068
1098
|
}
|
|
1069
1099
|
},
|
|
@@ -1100,7 +1130,8 @@ var QUERIES = [
|
|
|
1100
1130
|
return []
|
|
1101
1131
|
} else {
|
|
1102
1132
|
throw new BrowserslistError(
|
|
1103
|
-
'Unknown version ' + version + ' of ' + name
|
|
1133
|
+
'Unknown version ' + version + ' of ' + name
|
|
1134
|
+
)
|
|
1104
1135
|
}
|
|
1105
1136
|
}
|
|
1106
1137
|
return [data.name + ' ' + version]
|
|
@@ -1142,7 +1173,8 @@ var QUERIES = [
|
|
|
1142
1173
|
select: function (context, name) {
|
|
1143
1174
|
if (byName(name, context)) {
|
|
1144
1175
|
throw new BrowserslistError(
|
|
1145
|
-
'Specify versions in Browserslist query for browser ' + name
|
|
1176
|
+
'Specify versions in Browserslist query for browser ' + name
|
|
1177
|
+
)
|
|
1146
1178
|
} else {
|
|
1147
1179
|
throw unknownQuery(name)
|
|
1148
1180
|
}
|
package/node.js
CHANGED
|
@@ -127,7 +127,7 @@ function normalizeStats (data, stats) {
|
|
|
127
127
|
data[i] &&
|
|
128
128
|
data[i].versions.length === 1
|
|
129
129
|
) {
|
|
130
|
-
var normal =
|
|
130
|
+
var normal = data[i].versions[0]
|
|
131
131
|
normalized[i] = { }
|
|
132
132
|
normalized[i][normal] = stats[i][versions[0]]
|
|
133
133
|
} else {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browserslist",
|
|
3
|
-
"version": "4.16.
|
|
3
|
+
"version": "4.16.4",
|
|
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,11 +15,11 @@
|
|
|
15
15
|
"license": "MIT",
|
|
16
16
|
"repository": "browserslist/browserslist",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"caniuse-lite": "^1.0.
|
|
19
|
-
"colorette": "^1.2.
|
|
20
|
-
"electron-to-chromium": "^1.3.
|
|
18
|
+
"caniuse-lite": "^1.0.30001208",
|
|
19
|
+
"colorette": "^1.2.2",
|
|
20
|
+
"electron-to-chromium": "^1.3.712",
|
|
21
21
|
"escalade": "^3.1.1",
|
|
22
|
-
"node-releases": "^1.1.
|
|
22
|
+
"node-releases": "^1.1.71"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
25
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
package/update-db.js
CHANGED
|
@@ -19,7 +19,7 @@ function detectLockfile () {
|
|
|
19
19
|
if (!packageDir) {
|
|
20
20
|
throw new BrowserslistError(
|
|
21
21
|
'Cannot find package.json. ' +
|
|
22
|
-
'Is
|
|
22
|
+
'Is this the right directory to run `npx browserslist --update-db` in?'
|
|
23
23
|
)
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -27,48 +27,27 @@ function detectLockfile () {
|
|
|
27
27
|
var lockfileYarn = path.join(packageDir, 'yarn.lock')
|
|
28
28
|
var lockfilePnpm = path.join(packageDir, 'pnpm-lock.yaml')
|
|
29
29
|
|
|
30
|
-
/* istanbul ignore next */
|
|
31
30
|
if (fs.existsSync(lockfilePnpm)) {
|
|
32
31
|
return { mode: 'pnpm', file: lockfilePnpm }
|
|
33
32
|
} else if (fs.existsSync(lockfileNpm)) {
|
|
34
33
|
return { mode: 'npm', file: lockfileNpm }
|
|
35
34
|
} else if (fs.existsSync(lockfileYarn)) {
|
|
36
35
|
return { mode: 'yarn', file: lockfileYarn }
|
|
37
|
-
} else {
|
|
38
|
-
throw new BrowserslistError(
|
|
39
|
-
'No lockfile found. Run "npm install", "yarn install" or "pnpm install"'
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function getCurrentVersion (lock) {
|
|
45
|
-
var match
|
|
46
|
-
/* istanbul ignore if */
|
|
47
|
-
if (lock.mode === 'pnpm') {
|
|
48
|
-
match = /\/caniuse-lite\/([^:]+):/.exec(lock.content)
|
|
49
|
-
if (match[1]) return match[1]
|
|
50
|
-
} else if (lock.mode === 'npm') {
|
|
51
|
-
var dependencies = JSON.parse(lock.content).dependencies
|
|
52
|
-
if (dependencies && dependencies['caniuse-lite']) {
|
|
53
|
-
return dependencies['caniuse-lite'].version
|
|
54
|
-
}
|
|
55
|
-
} else if (lock.mode === 'yarn') {
|
|
56
|
-
match = /caniuse-lite@[^:]+:\r?\n\s+version\s+"([^"]+)"/.exec(lock.content)
|
|
57
|
-
if (match[1]) return match[1]
|
|
58
36
|
}
|
|
59
|
-
|
|
37
|
+
throw new BrowserslistError(
|
|
38
|
+
'No lockfile found. Run "npm install", "yarn install" or "pnpm install"'
|
|
39
|
+
)
|
|
60
40
|
}
|
|
61
41
|
|
|
62
42
|
function getLatestInfo (lock) {
|
|
63
|
-
if (lock.mode
|
|
64
|
-
return JSON.parse(
|
|
65
|
-
childProcess.execSync('npm show caniuse-lite --json').toString()
|
|
66
|
-
)
|
|
67
|
-
} else {
|
|
43
|
+
if (lock.mode === 'yarn') {
|
|
68
44
|
return JSON.parse(
|
|
69
45
|
childProcess.execSync('yarn info caniuse-lite --json').toString()
|
|
70
46
|
).data
|
|
71
47
|
}
|
|
48
|
+
return JSON.parse(
|
|
49
|
+
childProcess.execSync('npm show caniuse-lite --json').toString()
|
|
50
|
+
)
|
|
72
51
|
}
|
|
73
52
|
|
|
74
53
|
function getBrowsersList () {
|
|
@@ -117,66 +96,106 @@ function diffBrowsersLists (old, current) {
|
|
|
117
96
|
.join('\n')
|
|
118
97
|
}
|
|
119
98
|
|
|
120
|
-
function
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
99
|
+
function updateNpmLockfile (lock, latest) {
|
|
100
|
+
var metadata = { latest: latest, versions: [] }
|
|
101
|
+
var content = deletePackage(JSON.parse(lock.content), metadata)
|
|
102
|
+
metadata.content = JSON.stringify(content, null, ' ')
|
|
103
|
+
return metadata
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function deletePackage (node, metadata) {
|
|
107
|
+
if (node.dependencies) {
|
|
108
|
+
if (node.dependencies['caniuse-lite']) {
|
|
109
|
+
var version = node.dependencies['caniuse-lite'].version
|
|
110
|
+
metadata.versions[version] = true
|
|
111
|
+
delete node.dependencies['caniuse-lite']
|
|
112
|
+
}
|
|
113
|
+
for (var i in node.dependencies) {
|
|
114
|
+
node.dependencies[i] = deletePackage(node.dependencies[i], metadata)
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return node
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
var yarnVersionRe = new RegExp('version "(.*?)"')
|
|
121
|
+
|
|
122
|
+
function updateYarnLockfile (lock, latest) {
|
|
123
|
+
var blocks = lock.content.split(/(\n{2,})/).map(function (block) {
|
|
124
|
+
return block.split('\n')
|
|
125
|
+
})
|
|
126
|
+
var versions = {}
|
|
127
|
+
blocks.forEach(function (lines) {
|
|
128
|
+
if (lines[0].indexOf('caniuse-lite@') !== -1) {
|
|
129
|
+
var match = yarnVersionRe.exec(lines[1])
|
|
130
|
+
versions[match[1]] = true
|
|
131
|
+
if (match[1] !== latest.version) {
|
|
132
|
+
lines[1] = lines[1].replace(
|
|
133
|
+
/version "[^"]+"/, 'version "' + latest.version + '"'
|
|
134
|
+
)
|
|
135
|
+
lines[2] = lines[2].replace(
|
|
136
|
+
/resolved "[^"]+"/, 'resolved "' + latest.dist.tarball + '"'
|
|
137
|
+
)
|
|
138
|
+
lines[3] = latest.dist.integrity ? lines[3].replace(
|
|
139
|
+
/integrity .+/, 'integrity ' + latest.dist.integrity
|
|
140
|
+
) : ''
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
})
|
|
144
|
+
var content = blocks.map(function (lines) {
|
|
145
|
+
return lines.join('\n')
|
|
146
|
+
}).join('')
|
|
147
|
+
return { content: content, versions: versions }
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function updatePnpmLockfile (lock, latest) {
|
|
151
|
+
var versions = {}
|
|
152
|
+
var lines = lock.content.split('\n')
|
|
153
|
+
var i
|
|
154
|
+
var j
|
|
155
|
+
var lineParts
|
|
156
|
+
|
|
157
|
+
for (i = 0; i < lines.length; i++) {
|
|
158
|
+
if (lines[i].indexOf('caniuse-lite:') >= 0) {
|
|
159
|
+
lineParts = lines[i].split(/:\s?/, 2)
|
|
160
|
+
versions[lineParts[1]] = true
|
|
161
|
+
lines[i] = lineParts[0] + ': ' + latest.version
|
|
162
|
+
} else if (lines[i].indexOf('/caniuse-lite') >= 0) {
|
|
163
|
+
lineParts = lines[i].split(/([/:])/)
|
|
164
|
+
for (j = 0; j < lineParts.length; j++) {
|
|
165
|
+
if (lineParts[j].indexOf('caniuse-lite') >= 0) {
|
|
166
|
+
versions[lineParts[j + 2]] = true
|
|
167
|
+
lineParts[j + 2] = latest.version
|
|
168
|
+
break
|
|
143
169
|
}
|
|
144
170
|
}
|
|
145
|
-
|
|
146
|
-
for (i =
|
|
147
|
-
if (lines[i].indexOf('
|
|
148
|
-
lines[i
|
|
149
|
-
/
|
|
150
|
-
)
|
|
151
|
-
lines[i + 2] = lines[i + 2].replace(
|
|
152
|
-
/resolved "[^"]+"/, 'resolved "' + latest.dist.tarball + '"'
|
|
171
|
+
lines[i] = lineParts.join('')
|
|
172
|
+
for (i = i + 1; i < lines.length; i++) {
|
|
173
|
+
if (lines[i].indexOf('integrity: ') !== -1) {
|
|
174
|
+
lines[i] = lines[i].replace(
|
|
175
|
+
/integrity: .+/, 'integrity: ' + latest.dist.integrity
|
|
153
176
|
)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
)
|
|
157
|
-
i += 4
|
|
177
|
+
} else if (lines[i].indexOf(' /') !== -1) {
|
|
178
|
+
break
|
|
158
179
|
}
|
|
159
180
|
}
|
|
160
181
|
}
|
|
161
|
-
return lines.join('\n')
|
|
162
182
|
}
|
|
183
|
+
return { content: lines.join('\n'), versions: versions }
|
|
163
184
|
}
|
|
164
185
|
|
|
165
|
-
function
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
186
|
+
function updateLockfile (lock, latest) {
|
|
187
|
+
lock.content = fs.readFileSync(lock.file).toString()
|
|
188
|
+
|
|
189
|
+
if (lock.mode === 'npm') {
|
|
190
|
+
return updateNpmLockfile(lock, latest)
|
|
191
|
+
} else if (lock.mode === 'yarn') {
|
|
192
|
+
return updateYarnLockfile(lock, latest)
|
|
171
193
|
}
|
|
172
|
-
return
|
|
194
|
+
return updatePnpmLockfile(lock, latest)
|
|
173
195
|
}
|
|
174
196
|
|
|
175
197
|
module.exports = function updateDB (print) {
|
|
176
198
|
var lock = detectLockfile()
|
|
177
|
-
lock.content = fs.readFileSync(lock.file).toString()
|
|
178
|
-
|
|
179
|
-
var current = getCurrentVersion(lock)
|
|
180
199
|
var latest = getLatestInfo(lock)
|
|
181
200
|
var browsersListRetrievalError
|
|
182
201
|
var oldBrowsersList
|
|
@@ -186,15 +205,32 @@ module.exports = function updateDB (print) {
|
|
|
186
205
|
browsersListRetrievalError = e
|
|
187
206
|
}
|
|
188
207
|
|
|
189
|
-
|
|
190
|
-
|
|
208
|
+
print(
|
|
209
|
+
'Latest version: ' + bold(green(latest.version)) + '\n'
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
var lockfileData = updateLockfile(lock, latest)
|
|
213
|
+
var caniuseVersions = Object.keys(lockfileData.versions).sort()
|
|
214
|
+
if (caniuseVersions.length === 1 &&
|
|
215
|
+
caniuseVersions[0] === latest.version) {
|
|
216
|
+
print(
|
|
217
|
+
'Installed version: ' + bold(green(latest.version)) + '\n' +
|
|
218
|
+
bold(green('caniuse-lite is up to date')) + '\n'
|
|
219
|
+
)
|
|
220
|
+
return
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
if (caniuseVersions.length === 0) {
|
|
224
|
+
caniuseVersions[0] = 'none'
|
|
191
225
|
}
|
|
192
226
|
print(
|
|
193
|
-
'
|
|
227
|
+
'Installed version' +
|
|
228
|
+
(caniuseVersions.length === 1 ? ': ' : 's: ') +
|
|
229
|
+
bold(red(caniuseVersions.join(', '))) +
|
|
230
|
+
'\n' +
|
|
194
231
|
'Removing old caniuse-lite from lock file\n'
|
|
195
232
|
)
|
|
196
|
-
|
|
197
|
-
fs.writeFileSync(lock.file, updateLockfile(lock, latest))
|
|
233
|
+
fs.writeFileSync(lock.file, lockfileData.content)
|
|
198
234
|
|
|
199
235
|
var install = lock.mode === 'yarn' ? 'yarn add -W' : lock.mode + ' install'
|
|
200
236
|
print(
|
|
@@ -208,7 +244,7 @@ module.exports = function updateDB (print) {
|
|
|
208
244
|
red(
|
|
209
245
|
'\n' +
|
|
210
246
|
e.stack + '\n\n' +
|
|
211
|
-
'Problem with `' + install + '
|
|
247
|
+
'Problem with `' + install + ' caniuse-lite` call. ' +
|
|
212
248
|
'Run it manually.\n'
|
|
213
249
|
)
|
|
214
250
|
)
|
|
@@ -238,7 +274,7 @@ module.exports = function updateDB (print) {
|
|
|
238
274
|
red(
|
|
239
275
|
'\n' +
|
|
240
276
|
browsersListRetrievalError.stack + '\n\n' +
|
|
241
|
-
'Problem with
|
|
277
|
+
'Problem with browser list retrieval.\n' +
|
|
242
278
|
'Target browser changes won’t be shown.\n'
|
|
243
279
|
)
|
|
244
280
|
)
|
package/CHANGELOG.md
DELETED
|
@@ -1,505 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
3
|
-
|
|
4
|
-
## 4.16
|
|
5
|
-
* Add `browserslist config` query.
|
|
6
|
-
|
|
7
|
-
## 4.15
|
|
8
|
-
* Add TypeScript types (by Dmitry Semigradsky).
|
|
9
|
-
|
|
10
|
-
## 4.14.7
|
|
11
|
-
* Fixed Yarn Workspaces support to `--update-db` (by Fausto Núñez Alberro).
|
|
12
|
-
* Added browser changes to `--update-db` (by @AleksandrSl).
|
|
13
|
-
* Added color output to `--update-db`.
|
|
14
|
-
* Updated `package.funding` to have link to our Open Collective.
|
|
15
|
-
|
|
16
|
-
## 4.14.6
|
|
17
|
-
* Fixed Yarn support in `--update-db` (by Ivan Storck).
|
|
18
|
-
* Fixed npm 7 support in `--update-db`.
|
|
19
|
-
|
|
20
|
-
## 4.14.5
|
|
21
|
-
* Fixed `last 2 electron versions` query (by Sergey Melyukov).
|
|
22
|
-
|
|
23
|
-
## 4.14.4
|
|
24
|
-
* Fixed `Unknown version 59 of op_mob` error.
|
|
25
|
-
|
|
26
|
-
## 4.14.3
|
|
27
|
-
* Update Firefox ESR.
|
|
28
|
-
|
|
29
|
-
## 4.14.2
|
|
30
|
-
* Fixed `--update-db` on Windows (by James Ross).
|
|
31
|
-
* Improved `--update-db` output.
|
|
32
|
-
|
|
33
|
-
## 4.14.1
|
|
34
|
-
* Added `--update-db` explanation (by Justin Zelinsky).
|
|
35
|
-
|
|
36
|
-
## 4.14
|
|
37
|
-
* Add `BROWSERSLIST_DANGEROUS_EXTEND` support (by Timo Mayer).
|
|
38
|
-
|
|
39
|
-
## 4.13
|
|
40
|
-
* Added `supports` query to select browsers (by Jesús Leganés-Combarro).
|
|
41
|
-
|
|
42
|
-
## 4.12.2
|
|
43
|
-
* Update Firefox ESR.
|
|
44
|
-
|
|
45
|
-
## 4.12.1
|
|
46
|
-
* Update `package.json` scanning tool for `--update-db` (by Luke Edwards).
|
|
47
|
-
* Improve docs (by Mukundan Senthil).
|
|
48
|
-
* Drop Node.js 13.0-13.6 support because of ES modules bug in that versions.
|
|
49
|
-
|
|
50
|
-
## 4.12
|
|
51
|
-
* Add environments to shared configs (by Yevgeny Petukhov).
|
|
52
|
-
* Fix docs (by Dmitry Statsenko and Thomas Pozzo di Borgo).
|
|
53
|
-
|
|
54
|
-
## 4.11.1
|
|
55
|
-
* Fix Node.js 6 support.
|
|
56
|
-
|
|
57
|
-
## 4.11
|
|
58
|
-
* Add `npx browserslist --mobile-to-desktop` (by James Ross).
|
|
59
|
-
|
|
60
|
-
## 4.10
|
|
61
|
-
* Add `npx browserslist --update-db` (by Ivan Solovev).
|
|
62
|
-
|
|
63
|
-
## 4.9.1
|
|
64
|
-
* Normalize incorrect Can I Use regional data (by Huáng Jùnliàng).
|
|
65
|
-
|
|
66
|
-
## 4.9
|
|
67
|
-
* Add `node X-Y` query support (by Yuping Zuo).
|
|
68
|
-
|
|
69
|
-
## 4.8.7
|
|
70
|
-
* Fix `last N major versions` (by Valeriy Trubachev).
|
|
71
|
-
|
|
72
|
-
## 4.8.6
|
|
73
|
-
* Fix `Unknown version 10 of op_mob` error in `mobileToDesktop` option.
|
|
74
|
-
|
|
75
|
-
## 4.8.5
|
|
76
|
-
* Fix `last N browsers` again after new `caniuse-db` API changes.
|
|
77
|
-
|
|
78
|
-
## 4.8.4
|
|
79
|
-
* Fix released versions detection for queries like `last N browsers`.
|
|
80
|
-
* Add IE 11 Mobile to `dead` browsers.
|
|
81
|
-
|
|
82
|
-
## 4.8.3
|
|
83
|
-
* Fix warning message (by Anton Ivanov).
|
|
84
|
-
|
|
85
|
-
## 4.8.2
|
|
86
|
-
* Fix `Cannot convert undefined or null to object` (by Antoine Clausse).
|
|
87
|
-
* Fix `mobileToDesktop` in `defaults` (by Huáng Jùnliàng).
|
|
88
|
-
|
|
89
|
-
## 4.8.1
|
|
90
|
-
* Fix Chrome and `mobileToDesktop` (by Huáng Jùnliàng).
|
|
91
|
-
|
|
92
|
-
## 4.8
|
|
93
|
-
* Add `> 5% in browserslist-config-my stats` query (by Andrew Leedham).
|
|
94
|
-
* Improve docs (by Danny van Kooten).
|
|
95
|
-
|
|
96
|
-
## 4.7.3
|
|
97
|
-
* Add funding link for `npm fund`.
|
|
98
|
-
|
|
99
|
-
## 4.7.2
|
|
100
|
-
* Add cache for query parsing.
|
|
101
|
-
* Improve config caching (by Kārlis Gaņģis).
|
|
102
|
-
* Update Firefox ESR.
|
|
103
|
-
|
|
104
|
-
## 4.7.1
|
|
105
|
-
* Improve caching.
|
|
106
|
-
|
|
107
|
-
## 4.7
|
|
108
|
-
* Add PhantomJS queries.
|
|
109
|
-
* Improve docs (by Dorian Koehring).
|
|
110
|
-
|
|
111
|
-
## 4.6.6
|
|
112
|
-
* Remove Safari from `dead` query.
|
|
113
|
-
|
|
114
|
-
## 4.6.5
|
|
115
|
-
* Add Samsung 4 browser to `dead` query.
|
|
116
|
-
* Remove dirty fix for `android all` error.
|
|
117
|
-
|
|
118
|
-
## 4.6.4
|
|
119
|
-
* Add Firefox 68 to `Firefox ESR` query.
|
|
120
|
-
|
|
121
|
-
## 4.6.3
|
|
122
|
-
* Dirty fix for `android all` error.
|
|
123
|
-
|
|
124
|
-
## 4.6.2
|
|
125
|
-
* Fix `last x version` and similar queries for Android (by Tony Ross).
|
|
126
|
-
|
|
127
|
-
## 4.6.1
|
|
128
|
-
* Fix patch version support for Electron (by Kilian Valkhof).
|
|
129
|
-
|
|
130
|
-
## 4.6
|
|
131
|
-
* Add `mobileToDesktop` option (by Nicolò Ribaudo).
|
|
132
|
-
|
|
133
|
-
## 4.5.6
|
|
134
|
-
* Make `Node > 5` and `node > 5` queries case insensitive.
|
|
135
|
-
|
|
136
|
-
## 4.5.5
|
|
137
|
-
* Fix CLI help (by Marcel Gerber).
|
|
138
|
-
* Add KaiOS browser to docs.
|
|
139
|
-
|
|
140
|
-
## 4.5.4
|
|
141
|
-
* Update docs (by Andrew Leedham and Dan Onoshko).
|
|
142
|
-
|
|
143
|
-
## 4.5.3
|
|
144
|
-
* Fix splitting string to queries.
|
|
145
|
-
|
|
146
|
-
## 4.5.2
|
|
147
|
-
* Show default browsers in CLI on project without config.
|
|
148
|
-
|
|
149
|
-
## 4.5.1
|
|
150
|
-
* Improve text for the warning about outdated `caniuse-lite`.
|
|
151
|
-
|
|
152
|
-
## 4.5
|
|
153
|
-
* Add `>=`, `>`, and `<=` support for Node.js version (by Mathspy Terabithian).
|
|
154
|
-
|
|
155
|
-
## 4.4.2
|
|
156
|
-
* Allow to have string in `package.json` (by @dmarkhas).
|
|
157
|
-
|
|
158
|
-
## 4.4.1
|
|
159
|
-
* Allow to use `.` in scope name of shareable config (by Gustav Nikolaj).
|
|
160
|
-
|
|
161
|
-
## 4.4
|
|
162
|
-
* Added `and` and `or` keywords to combine queries (by Jon Ege Ronnenberg).
|
|
163
|
-
|
|
164
|
-
## 4.3.7
|
|
165
|
-
* Fix fraction years support in `last 1.5 years` (by Clément P).
|
|
166
|
-
* Fix version-less browser support.
|
|
167
|
-
|
|
168
|
-
## 4.3.6
|
|
169
|
-
* Fix version-less browser support in custom statistics (by Alex Walter).
|
|
170
|
-
|
|
171
|
-
## 4.3.5
|
|
172
|
-
* Fix `not` query for wrong Can I Use data.
|
|
173
|
-
|
|
174
|
-
## 4.3.4
|
|
175
|
-
* Allow to update `node-releases` without new Browserslist releases.
|
|
176
|
-
|
|
177
|
-
## 4.3.3
|
|
178
|
-
* Fix Node.js 11 support.
|
|
179
|
-
|
|
180
|
-
## 4.3.2
|
|
181
|
-
* Fix `Unknown version 11 of Node.js` error (by Dan Onoshko).
|
|
182
|
-
|
|
183
|
-
## 4.3.1
|
|
184
|
-
* Fix conflict between `caniuse-lite` and custom browsers statistics.
|
|
185
|
-
|
|
186
|
-
## 4.3
|
|
187
|
-
* Allow to use `extends browserslist-config-a/file` (by @Schweinepriester).
|
|
188
|
-
|
|
189
|
-
## 4.2.1
|
|
190
|
-
* Use new `node-releases` support (by Sergey Rubanov).
|
|
191
|
-
|
|
192
|
-
## 4.2
|
|
193
|
-
* Add `--json` argument for CLI.
|
|
194
|
-
* Allow to pass multiple areas in CLI by `--coverage=US,alt-AS,global`.
|
|
195
|
-
|
|
196
|
-
## 4.1.2
|
|
197
|
-
* Better `unknow query` error message.
|
|
198
|
-
* Use latest `node-releases`.
|
|
199
|
-
|
|
200
|
-
## 4.1.1
|
|
201
|
-
* Update Firefox ESR versions.
|
|
202
|
-
|
|
203
|
-
## 4.1
|
|
204
|
-
* Add `current node` query.
|
|
205
|
-
* Add contributors widget to docs (by Sergey Surkov).
|
|
206
|
-
|
|
207
|
-
## 4.0.2
|
|
208
|
-
* Fix new `node-releases` support (by Sergey Rubanov).
|
|
209
|
-
* Fix error text (by Josh Smith).
|
|
210
|
-
|
|
211
|
-
## 4.0.1
|
|
212
|
-
* Reduce npm package size.
|
|
213
|
-
* Fix docs.
|
|
214
|
-
|
|
215
|
-
## 4.0.0 “Erinaceus amurensis”
|
|
216
|
-
* Add `node X` and `maintained node versions` queries (by Pavel Vostrikov).
|
|
217
|
-
* Remove Node.js 4 support.
|
|
218
|
-
* Show warning if `caniuse-lite` is old (by Anton Tuzhik).
|
|
219
|
-
* Add comma support in config file.
|
|
220
|
-
|
|
221
|
-
## 3.2.8
|
|
222
|
-
* Add IE 9-5.5 to dead browsers.
|
|
223
|
-
* Remove development configs from npm package.
|
|
224
|
-
|
|
225
|
-
## 3.2.7
|
|
226
|
-
* Add Firefox 60 as Firefox ESR.
|
|
227
|
-
|
|
228
|
-
## 3.2.6
|
|
229
|
-
* Add Opera Mini 12 to dead browsers.
|
|
230
|
-
* Update docs (by Jamie Kyle).
|
|
231
|
-
|
|
232
|
-
## 3.2.5
|
|
233
|
-
* Fix excluding Opera Mini and other browsers with `all` version.
|
|
234
|
-
|
|
235
|
-
## 3.2.4
|
|
236
|
-
* Resolve shareable config from current working directory.
|
|
237
|
-
|
|
238
|
-
## 3.2.3
|
|
239
|
-
* Fix `package.json` config validation for single string case.
|
|
240
|
-
* Fix CLI error reporting.
|
|
241
|
-
|
|
242
|
-
## 3.2.2
|
|
243
|
-
* Add `package.json` config validation.
|
|
244
|
-
* Move project to `browserlist` GitHub organization.
|
|
245
|
-
|
|
246
|
-
## 3.2.1
|
|
247
|
-
* Fix error text (by Steve Schrab).
|
|
248
|
-
|
|
249
|
-
## 3.2
|
|
250
|
-
* Add `cover 99%` query (by Vasily Fedoseyev).
|
|
251
|
-
* Add `cover 99% in US` query (by Vasily Fedoseyev).
|
|
252
|
-
* Add `cover 99% in my stats` query (by Vasily Fedoseyev).
|
|
253
|
-
* Add `"my stats"` support to `browserlist.coverage()` (by Vasily Fedoseyev).
|
|
254
|
-
|
|
255
|
-
## 3.1.2
|
|
256
|
-
* Add more clear error on missed browser version.
|
|
257
|
-
|
|
258
|
-
## 3.1.1
|
|
259
|
-
* Fix JSDoc (by Sylvain Pollet-Villard).
|
|
260
|
-
|
|
261
|
-
## 3.1
|
|
262
|
-
* Add `ignoreUnknownVersions` option.
|
|
263
|
-
* Fix docs (by Pascal Duez).
|
|
264
|
-
|
|
265
|
-
## 3.0 “Atelerix sclateri”
|
|
266
|
-
* Remove country statistics from client-side build of Browserslist.
|
|
267
|
-
* Change `> 1%` to `> 0.5%` in default query.
|
|
268
|
-
* Add `not dead` to default query.
|
|
269
|
-
* Change default environment to `production` (by Marco Fugaro).
|
|
270
|
-
* Add `dead` query support with IE 10 and BlackBerry browser.
|
|
271
|
-
* Add multiple environments in one section support (by Evilebot Tnawi).
|
|
272
|
-
* Add custom statistics support to `browserlist.coverage()`.
|
|
273
|
-
* Fix `path` option check.
|
|
274
|
-
|
|
275
|
-
## 2.11.3
|
|
276
|
-
* Fix for `path: undefined` option.
|
|
277
|
-
|
|
278
|
-
## 2.11.2
|
|
279
|
-
* Remove Node.js specific code from webpack build.
|
|
280
|
-
|
|
281
|
-
## 2.11.1
|
|
282
|
-
* Fix using Browserslist in browser with `path` but without `fs`.
|
|
283
|
-
|
|
284
|
-
## 2.11
|
|
285
|
-
* Add `last 2 years` query support (by James Harris).
|
|
286
|
-
|
|
287
|
-
## 2.10.2
|
|
288
|
-
* Fix Browserify support.
|
|
289
|
-
|
|
290
|
-
## 2.10.1
|
|
291
|
-
* Fix using Browserslist without `process` (by Andrew Patton).
|
|
292
|
-
|
|
293
|
-
## 2.10
|
|
294
|
-
* Add `< 1%` and `<= 1%` queries support (by August Kaiser).
|
|
295
|
-
|
|
296
|
-
## 2.9.1
|
|
297
|
-
* Fix unknown query on trailing spaces in query.
|
|
298
|
-
|
|
299
|
-
## 2.9
|
|
300
|
-
* Add `last Electron versions` and `last Electron major versions` queries
|
|
301
|
-
(by Louis Mouhat).
|
|
302
|
-
|
|
303
|
-
## 2.8
|
|
304
|
-
* Add `since 2016-03` and `since 2016-03-20` queries support (by Andrew Blick).
|
|
305
|
-
|
|
306
|
-
## 2.7
|
|
307
|
-
* Add `since 2016` queries support (by Igor Deryabin).
|
|
308
|
-
|
|
309
|
-
## 2.6.1
|
|
310
|
-
* Fix `Path must be a string` error.
|
|
311
|
-
|
|
312
|
-
## 2.6
|
|
313
|
-
* By default load config from current directory in CLI tool.
|
|
314
|
-
|
|
315
|
-
## 2.5.1
|
|
316
|
-
* Allow `@scope/browserlist-config` config name (by Jamie Connolly).
|
|
317
|
-
|
|
318
|
-
## 2.5
|
|
319
|
-
* Add `extends` query (by YellowKirby).
|
|
320
|
-
|
|
321
|
-
## 2.4.1
|
|
322
|
-
* Throw error if `package.json` contain `browserlist` instead of `browserslist`.
|
|
323
|
-
|
|
324
|
-
## 2.4
|
|
325
|
-
* Add `last n major versions` query (by John Sanders).
|
|
326
|
-
|
|
327
|
-
## 2.3.3
|
|
328
|
-
* Fix browsers support.
|
|
329
|
-
|
|
330
|
-
## 2.3.2
|
|
331
|
-
* Fix `> 0` query for browsers with one version (by Nikolay Solovyov).
|
|
332
|
-
|
|
333
|
-
## 2.3.1
|
|
334
|
-
* Reduce library size.
|
|
335
|
-
|
|
336
|
-
## 2.3
|
|
337
|
-
* Add `unreleased versions` and `unreleased Chrome versions` queries.
|
|
338
|
-
|
|
339
|
-
## 2.2.2
|
|
340
|
-
* Fix `Path must be a string` error (by Pieter Beulque).
|
|
341
|
-
|
|
342
|
-
## 2.2.1
|
|
343
|
-
* Fix security issue with regions dynamic `require`.
|
|
344
|
-
|
|
345
|
-
## 2.2
|
|
346
|
-
* Add region usage statistics support (by Clément P).
|
|
347
|
-
|
|
348
|
-
## 2.1.5
|
|
349
|
-
* Remove Firefox 45 from Firefox ESR.
|
|
350
|
-
|
|
351
|
-
## 2.1.4
|
|
352
|
-
* Use both ESR versions when they actual.
|
|
353
|
-
|
|
354
|
-
## 2.1.3
|
|
355
|
-
* Add warning on first exclude query.
|
|
356
|
-
|
|
357
|
-
## 2.1.2
|
|
358
|
-
* Fix non-Node.js environments support.
|
|
359
|
-
|
|
360
|
-
## 2.1.1
|
|
361
|
-
* Fix CLI arguments parsing.
|
|
362
|
-
|
|
363
|
-
## 2.1
|
|
364
|
-
* Add `>= 5%`, `>= 5% in US` and `>= 5% in my stats` queries.
|
|
365
|
-
|
|
366
|
-
## 2.0 “Atelerix frontalis”
|
|
367
|
-
* `last n versions` returns versions for all browsers, not only main browsers.
|
|
368
|
-
* Cache file system operations (by Aarni Koskela).
|
|
369
|
-
* Use `caniuse-lite` 1 MB instead of `caniuse-db` 7 MB (by Ben Briggs).
|
|
370
|
-
* Add `.browserslistrc` config support.
|
|
371
|
-
* Add QQ Browser for Android support.
|
|
372
|
-
* Add tests for CLI (by Zhulduz Zhankenova).
|
|
373
|
-
|
|
374
|
-
## 1.7.7
|
|
375
|
-
* Update Firefox ESR.
|
|
376
|
-
|
|
377
|
-
## 1.7.6
|
|
378
|
-
* Fix Android Chrome selection.
|
|
379
|
-
|
|
380
|
-
## 1.7.5
|
|
381
|
-
* Fix combining `not` query with country based statistics.
|
|
382
|
-
* Fix `--env` argument in CLI (by Tuure Savuoja).
|
|
383
|
-
|
|
384
|
-
## 1.7.4
|
|
385
|
-
* Speed up browser sorting (by Aarni Koskela).
|
|
386
|
-
|
|
387
|
-
## 1.7.3
|
|
388
|
-
* Fix config finding when directory was passed to `path` (by Aarni Koskela).
|
|
389
|
-
|
|
390
|
-
## 1.7.2
|
|
391
|
-
* Fix config finding algorithm (by Aarni Koskela).
|
|
392
|
-
|
|
393
|
-
## 1.7.1
|
|
394
|
-
* Fix unreleased browsers version detection.
|
|
395
|
-
|
|
396
|
-
## 1.7
|
|
397
|
-
* Add `--config` and `--env` arguments to CLI (by Jarek Rencz).
|
|
398
|
-
|
|
399
|
-
## 1.6
|
|
400
|
-
* Convert Electron version to Chrome (by Kilian Valkhof).
|
|
401
|
-
* Fix `0` version mistake in Can I Use data.
|
|
402
|
-
|
|
403
|
-
## 1.5.2
|
|
404
|
-
* Fix browser versions ordering (by Marco Massarotto).
|
|
405
|
-
|
|
406
|
-
## 1.5.1
|
|
407
|
-
* Fix error on `package.json` and `browserslist` in same directory.
|
|
408
|
-
|
|
409
|
-
## 1.5
|
|
410
|
-
* Add `package.json` support (by Stepan Kuzmin).
|
|
411
|
-
* Add environments support (by Maksim Semenov and openlibser).
|
|
412
|
-
* Add `browserslist-stats.json` file support (by Oleh Aloshkin).
|
|
413
|
-
* Add `config` option to CLI (by Evilebot Tnawi).
|
|
414
|
-
* Add JSDoc.
|
|
415
|
-
* Fix tests on Windows (by Anna Stoliar).
|
|
416
|
-
* Don’t set custom usage statistics globally.
|
|
417
|
-
|
|
418
|
-
## 1.4
|
|
419
|
-
* Add `defaults` keyword.
|
|
420
|
-
|
|
421
|
-
## 1.3.6
|
|
422
|
-
* Add `UCAndroid` alias to `and_uc` (by Evilebot Tnawi).
|
|
423
|
-
|
|
424
|
-
## 1.3.5
|
|
425
|
-
* Fix Opera Mini support. Use `op_mini all`.
|
|
426
|
-
|
|
427
|
-
## 1.3.4
|
|
428
|
-
* Add space-less `>1%` and `>.5%` syntax support (by Andreas Lind).
|
|
429
|
-
|
|
430
|
-
## 1.3.3
|
|
431
|
-
* Clean `0` versions in some country-based requests.
|
|
432
|
-
|
|
433
|
-
## 1.3.2
|
|
434
|
-
* Update Firefox ESR.
|
|
435
|
-
|
|
436
|
-
## 1.3.1
|
|
437
|
-
* Add Safari TP support.
|
|
438
|
-
|
|
439
|
-
## 1.3
|
|
440
|
-
* Add coverage for specific country (by Joshua Wise).
|
|
441
|
-
|
|
442
|
-
## 1.2
|
|
443
|
-
* Add `browserslist.coverage()` method.
|
|
444
|
-
* Add `--coverage` and `-c` argument to CLI.
|
|
445
|
-
* Add `-v` argument support to CLI.
|
|
446
|
-
* Better error handling in CLI.
|
|
447
|
-
|
|
448
|
-
## 1.1.3
|
|
449
|
-
* Fix jspm support (by Sean Anderson).
|
|
450
|
-
|
|
451
|
-
## 1.1.2
|
|
452
|
-
* Fix jspm support (by Sean Anderson).
|
|
453
|
-
|
|
454
|
-
## 1.1.1
|
|
455
|
-
* Fix space-less `>10%` and `>10% in my stats` queries.
|
|
456
|
-
* Normalize error messages.
|
|
457
|
-
* Remove development files from npm package.
|
|
458
|
-
|
|
459
|
-
## 1.1
|
|
460
|
-
* Added query against custom browser usage data (by Daniel Rey).
|
|
461
|
-
|
|
462
|
-
## 1.0.1
|
|
463
|
-
* Update Firefox ESR (by Rouven Weßling).
|
|
464
|
-
|
|
465
|
-
## 1.0 “Atelerix algirus”
|
|
466
|
-
* Remove Opera 12.1 from default query.
|
|
467
|
-
* Add `not` keyword and exclude browsers by query.
|
|
468
|
-
* Add Microsoft Edge support (by Andrey Polischuk).
|
|
469
|
-
* Add CLI for debug and non-JS usage (by Luke Horvat).
|
|
470
|
-
* Use own class in Browserslist errors.
|
|
471
|
-
|
|
472
|
-
## 0.5
|
|
473
|
-
* Add version ranges `IE 6-9` (by Ben Briggs).
|
|
474
|
-
|
|
475
|
-
## 0.4
|
|
476
|
-
* Add `config` option and `BROWSERSLIST_CONFIG` environment variable support.
|
|
477
|
-
* Add symlink config support.
|
|
478
|
-
|
|
479
|
-
## 0.3.3
|
|
480
|
-
* Fix DynJS compatibility (by Nick Howes).
|
|
481
|
-
|
|
482
|
-
## 0.3.2
|
|
483
|
-
* Fix joined versions on versions query (by Vincent De Oliveira).
|
|
484
|
-
|
|
485
|
-
## 0.3.1
|
|
486
|
-
* Fix global variable leak (by Peter Müller).
|
|
487
|
-
|
|
488
|
-
## 0.3
|
|
489
|
-
* Takes queries from `BROWSERSLIST` environment variable.
|
|
490
|
-
|
|
491
|
-
## 0.2
|
|
492
|
-
* Return Can I Use joined versions as `ios_saf 7.0-7.1`.
|
|
493
|
-
|
|
494
|
-
## 0.1.3
|
|
495
|
-
* Better work with Can I Use joined versions like `ios_saf 7.0-7.1`.
|
|
496
|
-
* Browserslist now understands `ios_saf 7.0` or `ios_saf 7`.
|
|
497
|
-
|
|
498
|
-
## 0.1.2
|
|
499
|
-
* Do not create global `browserslist` var (by Maxime Thirouin).
|
|
500
|
-
|
|
501
|
-
## 0.1.1
|
|
502
|
-
* Sort browsers by name and version.
|
|
503
|
-
|
|
504
|
-
## 0.1 “Atelerix albiventris”
|
|
505
|
-
* Initial release.
|