browserslist 2.10.2 → 2.11.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 CHANGED
@@ -1,6 +1,9 @@
1
1
  # Change Log
2
2
  This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
+ ## 2.11
5
+ * Add `last 2 years` query support (by James Harris).
6
+
4
7
  ## 2.10.2
5
8
  * Fix Browserify support.
6
9
 
package/README.md CHANGED
@@ -8,7 +8,7 @@ It is used in:
8
8
 
9
9
  * [Autoprefixer]
10
10
  * [babel-preset-env]
11
- (external config in `package.json` or `browserslist` files supported in 2.0)
11
+ (external config in `package.json` or `browserslist` will be supported in 7.0)
12
12
  * [postcss-preset-env]
13
13
  * [eslint-plugin-compat]
14
14
  * [stylelint-no-unsupported-browser-features]
@@ -69,7 +69,7 @@ You can test Browserslist queries in [online demo].
69
69
  to match Browserslist target browsers query.
70
70
  * [`caniuse-api`] returns browsers which support some specific feature.
71
71
  * Run `npx browserslist` in your project directory to see project’s
72
- target browsers. This CLI tool is built-in and available in any project
72
+ target browsers. This CLI tool is built-in and available in any project
73
73
  with Autoprefixer.
74
74
 
75
75
  [`browserslist-useragent`]: https://github.com/pastelsky/browserslist-useragent
@@ -109,8 +109,8 @@ You can specify the versions by queries (case insensitive):
109
109
  alpha and beta versions.
110
110
  * `last 2 major versions` or `last 2 iOS major versions`:
111
111
  all minor/patch releases of last 2 major versions.
112
- * `since 2013`: all versions released since year 2013
113
- (also `since 2013-03` and `since 2013-03-10`).
112
+ * `since 2015` or `last 2 years`: all versions released since year 2015
113
+ (also `since 2015-03` and `since 2015-03-10`).
114
114
  * `not ie <= 8`: exclude browsers selected by previous queries.
115
115
 
116
116
  You can add `not ` to any query.
package/index.js CHANGED
@@ -322,6 +322,17 @@ function loadCountryStatistics (country) {
322
322
  }
323
323
  }
324
324
 
325
+ function filterByYear (since) {
326
+ return Object.keys(agents).reduce(function (selected, name) {
327
+ var data = byName(name)
328
+ if (!data) return selected
329
+ var versions = Object.keys(data.releaseDate).filter(function (v) {
330
+ return data.releaseDate[v] >= since
331
+ })
332
+ return selected.concat(versions.map(nameMapper(data.name)))
333
+ }, [])
334
+ }
335
+
325
336
  // Will be filled by Can I Use data below
326
337
  browserslist.data = { }
327
338
  browserslist.usage = {
@@ -580,6 +591,15 @@ var QUERIES = [
580
591
  }).map(nameMapper(data.name))
581
592
  }
582
593
  },
594
+ {
595
+ regexp: /^last\s+(\d+)\s+years?$/i,
596
+ select: function (context, years) {
597
+ var date = new Date()
598
+ var since = date.setFullYear(date.getFullYear() - years) / 1000
599
+
600
+ return filterByYear(since)
601
+ }
602
+ },
583
603
  {
584
604
  regexp: /^since (\d+)(?:-(\d+))?(?:-(\d+))?$/i,
585
605
  select: function (context, year, month, date) {
@@ -588,14 +608,7 @@ var QUERIES = [
588
608
  date = parseInt(date || '01')
589
609
  var since = Date.UTC(year, month, date, 0, 0, 0) / 1000
590
610
 
591
- return Object.keys(agents).reduce(function (selected, name) {
592
- var data = byName(name)
593
- if (!data) return selected
594
- var versions = Object.keys(data.releaseDate).filter(function (v) {
595
- return data.releaseDate[v] >= since
596
- })
597
- return selected.concat(versions.map(nameMapper(data.name)))
598
- }, [])
611
+ return filterByYear(since)
599
612
  }
600
613
  },
601
614
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "2.10.2",
3
+ "version": "2.11.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",
@@ -21,7 +21,7 @@
21
21
  "eslint-ci": "^0.1.1",
22
22
  "eslint-config-logux": "^17.0.0",
23
23
  "eslint-config-standard": "^10.2.1",
24
- "eslint-plugin-es5": "^1.1.0",
24
+ "eslint-plugin-es5": "^1.2.0",
25
25
  "eslint-plugin-import": "^2.8.0",
26
26
  "eslint-plugin-jest": "^21.5.0",
27
27
  "eslint-plugin-node": "^5.2.1",