browserslist 4.23.2 → 4.24.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/browser.js +2 -0
- package/cli.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +10 -5
- package/node.js +38 -21
- package/package.json +4 -4
- package/parse.js +1 -1
package/browser.js
CHANGED
package/cli.js
CHANGED
package/index.d.ts
CHANGED
|
@@ -174,6 +174,8 @@ declare namespace browserslist {
|
|
|
174
174
|
|
|
175
175
|
function findConfig(...pathSegments: string[]): Config | undefined
|
|
176
176
|
|
|
177
|
+
function findConfigFile(...pathSegments: string[]): string | undefined
|
|
178
|
+
|
|
177
179
|
interface LoadConfigOptions {
|
|
178
180
|
config?: string
|
|
179
181
|
path?: string
|
package/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var jsReleases = require('node-releases/data/processed/envs.json')
|
|
2
2
|
var agents = require('caniuse-lite/dist/unpacker/agents').agents
|
|
3
|
+
var e2c = require('electron-to-chromium/versions')
|
|
3
4
|
var jsEOL = require('node-releases/data/release-schedule/release-schedule.json')
|
|
4
5
|
var path = require('path')
|
|
5
|
-
var e2c = require('electron-to-chromium/versions')
|
|
6
6
|
|
|
7
7
|
var BrowserslistError = require('./error')
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var env = require('./node')
|
|
9
|
+
var parse = require('./parse') // Will load browser.js in webpack
|
|
10
10
|
|
|
11
11
|
var YEAR = 365.259641 * 24 * 60 * 60 * 1000
|
|
12
12
|
var ANDROID_EVERGREEN_FIRST = '37'
|
|
@@ -82,11 +82,11 @@ function generateFilter(sign, version) {
|
|
|
82
82
|
version = parseFloat(version)
|
|
83
83
|
if (sign === '>') {
|
|
84
84
|
return function (v) {
|
|
85
|
-
return
|
|
85
|
+
return parseLatestFloat(v) > version
|
|
86
86
|
}
|
|
87
87
|
} else if (sign === '>=') {
|
|
88
88
|
return function (v) {
|
|
89
|
-
return
|
|
89
|
+
return parseLatestFloat(v) >= version
|
|
90
90
|
}
|
|
91
91
|
} else if (sign === '<') {
|
|
92
92
|
return function (v) {
|
|
@@ -97,6 +97,10 @@ function generateFilter(sign, version) {
|
|
|
97
97
|
return parseFloat(v) <= version
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
+
|
|
101
|
+
function parseLatestFloat(v) {
|
|
102
|
+
return parseFloat(v.split('-')[1] || v)
|
|
103
|
+
}
|
|
100
104
|
}
|
|
101
105
|
|
|
102
106
|
function generateSemverFilter(sign, version) {
|
|
@@ -487,6 +491,7 @@ browserslist.versionAliases = {}
|
|
|
487
491
|
browserslist.clearCaches = env.clearCaches
|
|
488
492
|
browserslist.parseConfig = env.parseConfig
|
|
489
493
|
browserslist.readConfig = env.readConfig
|
|
494
|
+
browserslist.findConfigFile = env.findConfigFile
|
|
490
495
|
browserslist.findConfig = env.findConfig
|
|
491
496
|
browserslist.loadConfig = env.loadConfig
|
|
492
497
|
|
package/node.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var feature = require('caniuse-lite/dist/unpacker/feature').default
|
|
2
2
|
var region = require('caniuse-lite/dist/unpacker/region').default
|
|
3
|
-
var path = require('path')
|
|
4
3
|
var fs = require('fs')
|
|
4
|
+
var path = require('path')
|
|
5
5
|
|
|
6
6
|
var BrowserslistError = require('./error')
|
|
7
7
|
|
|
@@ -126,6 +126,14 @@ function parsePackage(file) {
|
|
|
126
126
|
return list
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
+
function parsePackageOrReadConfig(file) {
|
|
130
|
+
if (path.basename(file) === 'package.json') {
|
|
131
|
+
return parsePackage(file)
|
|
132
|
+
} else {
|
|
133
|
+
return module.exports.readConfig(file)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
129
137
|
function latestReleaseTime(agents) {
|
|
130
138
|
var latest = 0
|
|
131
139
|
for (var name in agents) {
|
|
@@ -237,11 +245,7 @@ module.exports = {
|
|
|
237
245
|
return process.env.BROWSERSLIST
|
|
238
246
|
} else if (opts.config || process.env.BROWSERSLIST_CONFIG) {
|
|
239
247
|
var file = opts.config || process.env.BROWSERSLIST_CONFIG
|
|
240
|
-
|
|
241
|
-
return pickEnv(parsePackage(file), opts)
|
|
242
|
-
} else {
|
|
243
|
-
return pickEnv(module.exports.readConfig(file), opts)
|
|
244
|
-
}
|
|
248
|
+
return pickEnv(parsePackageOrReadConfig(file), opts)
|
|
245
249
|
} else if (opts.path) {
|
|
246
250
|
return pickEnv(module.exports.findConfig(opts.path), opts)
|
|
247
251
|
} else {
|
|
@@ -330,17 +334,8 @@ module.exports = {
|
|
|
330
334
|
return module.exports.parseConfig(fs.readFileSync(file))
|
|
331
335
|
},
|
|
332
336
|
|
|
333
|
-
|
|
334
|
-
from = path.resolve(from)
|
|
335
|
-
|
|
336
|
-
var passed = []
|
|
337
|
+
findConfigFile: function findConfigFile(from) {
|
|
337
338
|
var resolved = eachParent(from, function (dir) {
|
|
338
|
-
if (dir in configCache) {
|
|
339
|
-
return configCache[dir]
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
passed.push(dir)
|
|
343
|
-
|
|
344
339
|
var config = path.join(dir, 'browserslist')
|
|
345
340
|
var pkg = path.join(dir, 'package.json')
|
|
346
341
|
var rc = path.join(dir, '.browserslistrc')
|
|
@@ -370,16 +365,38 @@ module.exports = {
|
|
|
370
365
|
dir + ' contains both .browserslistrc and browserslist'
|
|
371
366
|
)
|
|
372
367
|
} else if (isFile(config)) {
|
|
373
|
-
return
|
|
368
|
+
return config
|
|
374
369
|
} else if (isFile(rc)) {
|
|
375
|
-
return
|
|
376
|
-
} else {
|
|
377
|
-
return
|
|
370
|
+
return rc
|
|
371
|
+
} else if (pkgBrowserslist) {
|
|
372
|
+
return pkg
|
|
378
373
|
}
|
|
379
374
|
})
|
|
375
|
+
|
|
376
|
+
return resolved
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
findConfig: function findConfig(from) {
|
|
380
|
+
from = path.resolve(from)
|
|
381
|
+
|
|
382
|
+
var fromDir = isFile(from) ? path.dirname(from) : from
|
|
383
|
+
if (fromDir in configCache) {
|
|
384
|
+
return configCache[fromDir]
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
var resolved
|
|
388
|
+
var configFile = this.findConfigFile(from)
|
|
389
|
+
if (configFile) {
|
|
390
|
+
resolved = parsePackageOrReadConfig(configFile)
|
|
391
|
+
}
|
|
392
|
+
|
|
380
393
|
if (!process.env.BROWSERSLIST_DISABLE_CACHE) {
|
|
381
|
-
|
|
394
|
+
var configDir = configFile && path.dirname(configFile)
|
|
395
|
+
eachParent(from, function (dir) {
|
|
382
396
|
configCache[dir] = resolved
|
|
397
|
+
if (dir === configDir) {
|
|
398
|
+
return null
|
|
399
|
+
}
|
|
383
400
|
})
|
|
384
401
|
}
|
|
385
402
|
return resolved
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browserslist",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.24.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",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"repository": "browserslist/browserslist",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"caniuse-lite": "^1.0.
|
|
29
|
-
"electron-to-chromium": "^1.
|
|
30
|
-
"node-releases": "^2.0.
|
|
28
|
+
"caniuse-lite": "^1.0.30001663",
|
|
29
|
+
"electron-to-chromium": "^1.5.28",
|
|
30
|
+
"node-releases": "^2.0.18",
|
|
31
31
|
"update-browserslist-db": "^1.1.0"
|
|
32
32
|
},
|
|
33
33
|
"engines": {
|
package/parse.js
CHANGED
|
@@ -9,7 +9,7 @@ function flatten(array) {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
function find(string, predicate) {
|
|
12
|
-
for (var
|
|
12
|
+
for (var max = string.length, n = 1; n <= max; n++) {
|
|
13
13
|
var parsed = string.substr(-n, n)
|
|
14
14
|
if (predicate(parsed, n, max)) {
|
|
15
15
|
return string.slice(0, -n)
|