browserslist 4.8.7 → 4.9.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
+ ## 4.9
5
+ * Add `node X-Y` query support (by Yuping Zuo).
6
+
4
7
  ## 4.8.7
5
8
  * Fix `last N major versions` (by Valeriy Trubachev).
6
9
 
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright 2014 Andrey Sitnik <andrey@sitnik.ru>
3
+ Copyright 2014 Andrey Sitnik <andrey@sitnik.ru> and other contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
package/README.md CHANGED
@@ -91,12 +91,14 @@ Browserslist will take queries from tool option,
91
91
  by user agent string to match Browserslist.
92
92
  * [`browserslist-browserstack`] runs BrowserStack tests for all browsers
93
93
  in Browserslist config.
94
+ * [`browserslist-adobe-analytics`] use Adobe Analytics data to target browsers.
94
95
  * [`caniuse-api`] returns browsers which support some specific feature.
95
96
  * Run `npx browserslist` in your project directory to see project’s
96
97
  target browsers. This CLI tool is built-in and available in any project
97
98
  with Autoprefixer.
98
99
 
99
100
  [`browserslist-useragent-regexp`]: https://github.com/browserslist/browserslist-useragent-regexp
101
+ [`browserslist-adobe-analytics`]: https://github.com/xeroxinteractive/browserslist-adobe-analytics
100
102
  [`browserslist-useragent-ruby`]: https://github.com/browserslist/browserslist-useragent-ruby
101
103
  [`browserslist-browserstack`]: https://github.com/xeroxinteractive/browserslist-browserstack
102
104
  [`browserslist-ga-export`]: https://github.com/browserslist/browserslist-ga-export
package/index.js CHANGED
@@ -148,6 +148,43 @@ function compareSemver (a, b) {
148
148
  )
149
149
  }
150
150
 
151
+ // this follows the npm-like semver behavior
152
+ function semverFilterLoose (operator, range) {
153
+ range = range.split('.').map(parseSimpleInt)
154
+ if (typeof range[1] === 'undefined') {
155
+ range[1] = 'x'
156
+ }
157
+ // ignore any patch version because we only return minor versions
158
+ // range[2] = 'x'
159
+ switch (operator) {
160
+ case '<=':
161
+ return function (version) {
162
+ version = version.split('.').map(parseSimpleInt)
163
+ return compareSemverLoose(version, range) <= 0
164
+ }
165
+ default:
166
+ case '>=':
167
+ return function (version) {
168
+ version = version.split('.').map(parseSimpleInt)
169
+ return compareSemverLoose(version, range) >= 0
170
+ }
171
+ }
172
+ }
173
+
174
+ // this follows the npm-like semver behavior
175
+ function compareSemverLoose (version, range) {
176
+ if (version[0] !== range[0]) {
177
+ return version[0] < range[0] ? -1 : +1
178
+ }
179
+ if (range[1] === 'x') {
180
+ return 0
181
+ }
182
+ if (version[1] !== range[1]) {
183
+ return version[1] < range[1] ? -1 : +1
184
+ }
185
+ return 0
186
+ }
187
+
151
188
  function resolveVersion (data, version) {
152
189
  if (data.versions.indexOf(version) !== -1) {
153
190
  return version
@@ -870,6 +907,31 @@ var QUERIES = [
870
907
  })
871
908
  }
872
909
  },
910
+ {
911
+ regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,
912
+ select: function (context, from, to) {
913
+ var nodeVersions = jsReleases.filter(function (i) {
914
+ return i.name === 'nodejs'
915
+ }).map(function (i) {
916
+ return i.version
917
+ })
918
+ var semverRegExp = /^(0|[1-9]\d*)(\.(0|[1-9]\d*)){0,2}$/
919
+ if (!semverRegExp.test(from)) {
920
+ throw new BrowserslistError(
921
+ 'Unknown version ' + from + ' of Node.js')
922
+ }
923
+ if (!semverRegExp.test(to)) {
924
+ throw new BrowserslistError(
925
+ 'Unknown version ' + to + ' of Node.js')
926
+ }
927
+ return nodeVersions
928
+ .filter(semverFilterLoose('>=', from))
929
+ .filter(semverFilterLoose('<=', to))
930
+ .map(function (v) {
931
+ return 'node ' + v
932
+ })
933
+ }
934
+ },
873
935
  {
874
936
  regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,
875
937
  select: function (context, name, from, to) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "browserslist",
3
- "version": "4.8.7",
3
+ "version": "4.9.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",
@@ -15,9 +15,9 @@
15
15
  "license": "MIT",
16
16
  "repository": "browserslist/browserslist",
17
17
  "dependencies": {
18
- "caniuse-lite": "^1.0.30001027",
19
- "electron-to-chromium": "^1.3.349",
20
- "node-releases": "^1.1.49"
18
+ "caniuse-lite": "^1.0.30001030",
19
+ "electron-to-chromium": "^1.3.361",
20
+ "node-releases": "^1.1.50"
21
21
  },
22
22
  "bin": "./cli.js",
23
23
  "browser": {
@@ -26,9 +26,5 @@
26
26
  },
27
27
  "eslintIgnore": [
28
28
  "test/fixtures"
29
- ],
30
- "sharec": {
31
- "config": "@logux/sharec-config",
32
- "version": "0.5.7"
33
- }
29
+ ]
34
30
  }