mirror of
https://github.com/lancedikson/bowser
synced 2026-02-10 01:50:10 +00:00
Merge c9929fc5b8 into 2bb8caee93
This commit is contained in:
commit
6acd2b2c24
5
.babelrc
5
.babelrc
@ -1,11 +1,12 @@
|
||||
{
|
||||
"presets": [["@babel/preset-env", {
|
||||
"useBuiltIns": "entry",
|
||||
"corejs": 3,
|
||||
"modules": "cjs",
|
||||
"loose": true,
|
||||
"targets": {
|
||||
"ie": "8",
|
||||
"browsers": ">2%"
|
||||
"ie": "11",
|
||||
"browsers": ">0.25%"
|
||||
}
|
||||
}]],
|
||||
"plugins": [
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
parser: babel-eslint
|
||||
parserOptions:
|
||||
ecmaVersion: 2020
|
||||
sourceType: module
|
||||
extends: airbnb-base
|
||||
rules:
|
||||
no-underscore-dangle: 0
|
||||
|
||||
2
.github/workflows/merge-to-master.yml
vendored
2
.github/workflows/merge-to-master.yml
vendored
@ -10,7 +10,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12.16.3]
|
||||
node-version: [20, 22, 24]
|
||||
|
||||
steps:
|
||||
- name: Get branch name (merge)
|
||||
|
||||
2
.github/workflows/publish.yml
vendored
2
.github/workflows/publish.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 12.16.3
|
||||
node-version: 20
|
||||
- uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.npm
|
||||
|
||||
4
.github/workflows/pull-request.yml
vendored
4
.github/workflows/pull-request.yml
vendored
@ -8,7 +8,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
node: [12.16.3]
|
||||
node: [20, 22, 24]
|
||||
name: Node ${{ matrix.node }}
|
||||
steps:
|
||||
- name: "Checkout latest code"
|
||||
@ -37,7 +37,7 @@ jobs:
|
||||
- name: Set up node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "16"
|
||||
node-version: "24"
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
- name: Run ESLint
|
||||
|
||||
21764
package-lock.json
generated
21764
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
50
package.json
50
package.json
@ -27,36 +27,38 @@
|
||||
"browser": "es5.js",
|
||||
"module": "src/bowser.js",
|
||||
"types": "index.d.ts",
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/bowser-js/bowser.git"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.11.6",
|
||||
"@babel/core": "^7.8.0",
|
||||
"@babel/polyfill": "^7.8.3",
|
||||
"@babel/preset-env": "^7.8.2",
|
||||
"@babel/register": "^7.8.3",
|
||||
"@babel/cli": "^7.23.0",
|
||||
"@babel/core": "^7.23.0",
|
||||
"@babel/preset-env": "^7.23.0",
|
||||
"@babel/register": "^7.23.0",
|
||||
"ava": "^3.0.0",
|
||||
"babel-eslint": "^10.0.3",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-plugin-add-module-exports": "^1.0.2",
|
||||
"babel-plugin-istanbul": "^6.0.0",
|
||||
"compression-webpack-plugin": "^4.0.0",
|
||||
"coveralls": "^3.0.6",
|
||||
"docdash": "^1.1.1",
|
||||
"eslint": "^6.5.1",
|
||||
"eslint-config-airbnb-base": "^13.2.0",
|
||||
"eslint-plugin-ava": "^10.0.0",
|
||||
"eslint-plugin-import": "^2.18.2",
|
||||
"gh-pages": "^3.0.0",
|
||||
"jsdoc": "^3.6.3",
|
||||
"nyc": "^15.0.0",
|
||||
"sinon": "^9.0.0",
|
||||
"testem": "^3.0.0",
|
||||
"webpack": "^4.41.0",
|
||||
"webpack-bundle-analyzer": "^3.5.2",
|
||||
"webpack-cli": "^3.3.9",
|
||||
"babel-loader": "^9.1.3",
|
||||
"babel-plugin-add-module-exports": "^1.0.4",
|
||||
"babel-plugin-istanbul": "^6.1.1",
|
||||
"compression-webpack-plugin": "^10.0.0",
|
||||
"core-js": "^3.33.0",
|
||||
"coveralls": "^3.1.1",
|
||||
"docdash": "^2.0.2",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-airbnb-base": "^15.0.0",
|
||||
"eslint-plugin-ava": "^14.0.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"gh-pages": "^6.1.0",
|
||||
"jsdoc": "^4.0.2",
|
||||
"nyc": "^15.1.0",
|
||||
"sinon": "^17.0.1",
|
||||
"testem": "^3.10.1",
|
||||
"webpack": "^5.89.0",
|
||||
"webpack-bundle-analyzer": "^4.10.1",
|
||||
"webpack-cli": "^5.1.4",
|
||||
"yamljs": "^0.3.0"
|
||||
},
|
||||
"ava": {
|
||||
|
||||
@ -111,7 +111,7 @@ class Parser {
|
||||
}
|
||||
const brandLower = brandName.toLowerCase();
|
||||
return this._hints.brands.some(
|
||||
b => b.brand && b.brand.toLowerCase() === brandLower,
|
||||
(b) => b.brand && b.brand.toLowerCase() === brandLower,
|
||||
);
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@ class Parser {
|
||||
}
|
||||
const brandLower = brandName.toLowerCase();
|
||||
const brand = this._hints.brands.find(
|
||||
b => b.brand && b.brand.toLowerCase() === brandLower,
|
||||
(b) => b.brand && b.brand.toLowerCase() === brandLower,
|
||||
);
|
||||
return brand ? brand.version : undefined;
|
||||
}
|
||||
@ -169,7 +169,7 @@ class Parser {
|
||||
}
|
||||
|
||||
if (Array.isArray(_browser.test)) {
|
||||
return _browser.test.some(condition => this.test(condition));
|
||||
return _browser.test.some((condition) => this.test(condition));
|
||||
}
|
||||
|
||||
throw new Error("Browser's test function is not valid");
|
||||
@ -209,7 +209,6 @@ class Parser {
|
||||
return this.getBrowser().name || '';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get browser's version
|
||||
* @return {String} version of browser
|
||||
@ -252,7 +251,7 @@ class Parser {
|
||||
}
|
||||
|
||||
if (Array.isArray(_os.test)) {
|
||||
return _os.test.some(condition => this.test(condition));
|
||||
return _os.test.some((condition) => this.test(condition));
|
||||
}
|
||||
|
||||
throw new Error("Browser's test function is not valid");
|
||||
@ -328,7 +327,7 @@ class Parser {
|
||||
}
|
||||
|
||||
if (Array.isArray(_platform.test)) {
|
||||
return _platform.test.some(condition => this.test(condition));
|
||||
return _platform.test.some((condition) => this.test(condition));
|
||||
}
|
||||
|
||||
throw new Error("Browser's test function is not valid");
|
||||
@ -379,7 +378,7 @@ class Parser {
|
||||
}
|
||||
|
||||
if (Array.isArray(_engine.test)) {
|
||||
return _engine.test.some(condition => this.test(condition));
|
||||
return _engine.test.some((condition) => this.test(condition));
|
||||
}
|
||||
|
||||
throw new Error("Browser's test function is not valid");
|
||||
@ -452,7 +451,7 @@ class Parser {
|
||||
|
||||
if (platformsAndOSCounter > 0) {
|
||||
const platformsAndOSNames = Object.keys(platformsAndOSes);
|
||||
const OSMatchingDefinition = Utils.find(platformsAndOSNames, name => (this.isOS(name)));
|
||||
const OSMatchingDefinition = Utils.find(platformsAndOSNames, (name) => (this.isOS(name)));
|
||||
|
||||
if (OSMatchingDefinition) {
|
||||
const osResult = this.satisfies(platformsAndOSes[OSMatchingDefinition]);
|
||||
@ -464,7 +463,7 @@ class Parser {
|
||||
|
||||
const platformMatchingDefinition = Utils.find(
|
||||
platformsAndOSNames,
|
||||
name => (this.isPlatform(name)),
|
||||
(name) => (this.isPlatform(name)),
|
||||
);
|
||||
if (platformMatchingDefinition) {
|
||||
const platformResult = this.satisfies(platformsAndOSes[platformMatchingDefinition]);
|
||||
@ -477,7 +476,7 @@ class Parser {
|
||||
|
||||
if (browsersCounter > 0) {
|
||||
const browserNames = Object.keys(browsers);
|
||||
const matchingDefinition = Utils.find(browserNames, name => (this.isBrowser(name, true)));
|
||||
const matchingDefinition = Utils.find(browserNames, (name) => (this.isBrowser(name, true)));
|
||||
|
||||
if (matchingDefinition !== void 0) {
|
||||
return this.compareVersion(browsers[matchingDefinition]);
|
||||
@ -585,7 +584,7 @@ class Parser {
|
||||
* @returns {Boolean}
|
||||
*/
|
||||
some(anythings = []) {
|
||||
return anythings.some(anything => this.is(anything));
|
||||
return anythings.some((anything) => this.is(anything));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ export default class Utils {
|
||||
* @return {string} versionName
|
||||
*/
|
||||
static getMacOSVersionName(version) {
|
||||
const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);
|
||||
const v = version.split('.').splice(0, 2).map((s) => parseInt(s, 10) || 0);
|
||||
v.push(0);
|
||||
const major = v[0];
|
||||
const minor = v[1];
|
||||
@ -136,7 +136,7 @@ export default class Utils {
|
||||
* @return {string} versionName
|
||||
*/
|
||||
static getAndroidVersionName(version) {
|
||||
const v = version.split('.').splice(0, 2).map(s => parseInt(s, 10) || 0);
|
||||
const v = version.split('.').splice(0, 2).map((s) => parseInt(s, 10) || 0);
|
||||
v.push(0);
|
||||
if (v[0] === 1 && v[1] < 5) return undefined;
|
||||
if (v[0] === 1 && v[1] < 6) return 'Cupcake';
|
||||
@ -201,7 +201,7 @@ export default class Utils {
|
||||
const _version = version + new Array(delta + 1).join('.0');
|
||||
|
||||
// 3) "9.0" -> ["000000000"", "000000009"]
|
||||
return Utils.map(_version.split('.'), chunk => new Array(20 - chunk.length).join('0') + chunk).reverse();
|
||||
return Utils.map(_version.split('.'), (chunk) => new Array(20 - chunk.length).join('0') + chunk).reverse();
|
||||
});
|
||||
|
||||
// adjust precision for loose comparison
|
||||
|
||||
@ -9,7 +9,7 @@ module.exports = {
|
||||
mode: 'production', // "production" | "development" | "none"
|
||||
// Chosen mode tells webpack to use its built-in optimizations accordingly.
|
||||
entry: {
|
||||
bundled: ['@babel/polyfill', './src/bowser.js'],
|
||||
bundled: ['core-js/stable', './src/bowser.js'],
|
||||
es5: './src/bowser.js',
|
||||
}, // string | object | array
|
||||
// defaults to ./src
|
||||
|
||||
Loading…
Reference in New Issue
Block a user