Add eslint to devDependencies to support latest ES version

This commit is contained in:
Faisal Salman 2023-08-30 12:55:05 +07:00
parent 1522691426
commit 807dcdbded
14 changed files with 873 additions and 49 deletions

13
.eslintrc.json Normal file
View File

@ -0,0 +1,13 @@
{
"env": {
"browser": true,
"commonjs": true,
"es2021": true,
"node": true
},
"parserOptions": {
"ecmaVersion": "latest"
},
"rules": {
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

857
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -171,7 +171,8 @@
"build": "./script/build-dist.sh && ./script/build-module.js", "build": "./script/build-dist.sh && ./script/build-module.js",
"fuzz": "jazzer ./test/jazzer-fuzz-test.js --sync", "fuzz": "jazzer ./test/jazzer-fuzz-test.js --sync",
"test": "./script/test-all.sh", "test": "./script/test-all.sh",
"test:jshint": "jshint src && jshint script", "test:eslint": "eslint src && eslint script",
"test:jshint": "jshint src/main",
"test:lockfile-lint": "npx lockfile-lint -p package-lock.json", "test:lockfile-lint": "npx lockfile-lint -p package-lock.json",
"test:mocha": "mocha -R list test/mocha*js", "test:mocha": "mocha -R list test/mocha*js",
"test:playwright": "playwright test" "test:playwright": "playwright test"
@ -181,6 +182,7 @@
"@babel/traverse": "7.15.4", "@babel/traverse": "7.15.4",
"@jazzer.js/core": "^1.4.0", "@jazzer.js/core": "^1.4.0",
"@playwright/test": "~1.32.2", "@playwright/test": "~1.32.2",
"eslint": "^8.48.0",
"jshint": "~2.13.6", "jshint": "~2.13.6",
"mocha": "~8.2.0", "mocha": "~8.2.0",
"requirejs": "2.3.2", "requirejs": "2.3.2",

View File

@ -9,6 +9,7 @@ echo '
- lint js code - lint js code
' '
npm run test:jshint || exit 1 npm run test:jshint || exit 1
npm run test:eslint || exit 1
echo ' echo '
- test using mocha - test using mocha

View File

@ -1,4 +1,4 @@
// Generated ESM version of UAParser.js enums // Generated ESM version of ua-parser-js/enums
// DO NOT EDIT THIS FILE! // DO NOT EDIT THIS FILE!
// Source: /src/enums/ua-parser-enums.js // Source: /src/enums/ua-parser-enums.js

View File

@ -1,4 +1,4 @@
// Generated ESM version of UAParser.js extensions // Generated ESM version of ua-parser-js/extensions
// DO NOT EDIT THIS FILE! // DO NOT EDIT THIS FILE!
// Source: /src/extensions/ua-parser-extensions.js // Source: /src/extensions/ua-parser-extensions.js

View File

@ -57,7 +57,7 @@
CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,
CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, BITNESS], CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTOR, BITNESS],
UA_BROWSER = 'browser', UA_BROWSER = 'browser',
UA_CPU = 'cpu', UA_CPU = 'cpu',
UA_DEVICE = 'device', UA_DEVICE = 'device',

View File

@ -1,4 +1,4 @@
// Generated ESM version of UAParser.js // Generated ESM version of ua-parser-js
// DO NOT EDIT THIS FILE! // DO NOT EDIT THIS FILE!
// Source: /src/main/ua-parser.js // Source: /src/main/ua-parser.js
@ -45,6 +45,7 @@
USER_AGENT = 'user-agent', USER_AGENT = 'user-agent',
UA_MAX_LENGTH = 350, UA_MAX_LENGTH = 350,
BRANDS = 'brands', BRANDS = 'brands',
FORMFACTOR = 'formFactor',
FULLVERLIST = 'fullVersionList', FULLVERLIST = 'fullVersionList',
PLATFORM = 'platform', PLATFORM = 'platform',
PLATFORMVER = 'platformVersion', PLATFORMVER = 'platformVersion',
@ -53,11 +54,12 @@
CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list', CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',
CH_HEADER_ARCH = CH_HEADER + '-arch', CH_HEADER_ARCH = CH_HEADER + '-arch',
CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS, CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,
CH_HEADER_FORM_FACTOR = CH_HEADER + '-form-factor',
CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE, CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,
CH_HEADER_MODEL = CH_HEADER + '-' + MODEL, CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,
CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM, CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,
CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version', CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',
CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, BITNESS], CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTOR, BITNESS],
UA_BROWSER = 'browser', UA_BROWSER = 'browser',
UA_CPU = 'cpu', UA_CPU = 'cpu',
UA_DEVICE = 'device', UA_DEVICE = 'device',
@ -258,6 +260,15 @@
'8.1' : 'NT 6.3', '8.1' : 'NT 6.3',
'10' : ['NT 6.4', 'NT 10.0'], '10' : ['NT 6.4', 'NT 10.0'],
'RT' : 'ARM' 'RT' : 'ARM'
},
formFactorMap = {
'embedded' : 'Automotive',
'mobile' : 'Mobile',
'tablet' : 'Tablet',
'smarttv' : 'TV',
'wearable' : ['VR', 'XR'],
'?' : 'Unknown'
}; };
////////////// //////////////
@ -932,6 +943,7 @@
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])], [PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
[PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])], [PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])],
[ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])], [ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])],
[FORMFACTOR, stripQuotes(uach[CH_HEADER_FORM_FACTOR])],
[BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])] [BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])]
]); ]);
} else { } else {
@ -1046,6 +1058,9 @@
if (uaCH[MODEL]) { if (uaCH[MODEL]) {
this.set(MODEL, uaCH[MODEL]); this.set(MODEL, uaCH[MODEL]);
} }
if (uaCH[FORMFACTOR]) {
this.set(TYPE, strMapper(uaCH[FORMFACTOR], formFactorMap));
}
break; break;
case UA_OS: case UA_OS:
var osName = uaCH[PLATFORM]; var osName = uaCH[PLATFORM];

View File

@ -7,7 +7,7 @@
/*jshint esversion: 11 */ /*jshint esversion: 11 */
const { UACHParser } = require('@ua-parser-js/client-hints-helpers'); const { UAClientHints } = require('@ua-parser-js/ua-client-hints');
/* /*
# Reference: # Reference:
@ -43,7 +43,7 @@ const unfreezeUA = async (ua, ch) => {
if (!ua['user-agent']) { if (!ua['user-agent']) {
throw new Error('User-Agent header not found'); throw new Error('User-Agent header not found');
} }
ch = UACHParser(ua); ch = new UAClientHints().setUAData(ua).getUAData();
ua = ua['user-agent']; ua = ua['user-agent'];
} else { } else {
ua = ua || navigator.userAgent; ua = ua || navigator.userAgent;

View File

@ -11,7 +11,7 @@
/*jshint esversion: 11 */ /*jshint esversion: 11 */
import { UACHParser } from '@ua-parser-js/client-hints-helpers'; import { UAClientHints } from '@ua-parser-js/ua-client-hints';
/* /*
# Reference: # Reference:
@ -47,7 +47,7 @@ const unfreezeUA = async (ua, ch) => {
if (!ua['user-agent']) { if (!ua['user-agent']) {
throw new Error('User-Agent header not found'); throw new Error('User-Agent header not found');
} }
ch = UACHParser(ua); ch = new UAClientHints().setUAData(ua).getUAData();
ua = ua['user-agent']; ua = ua['user-agent'];
} else { } else {
ua = ua || navigator.userAgent; ua = ua || navigator.userAgent;

View File

@ -345,12 +345,12 @@ describe('Map UA-CH headers', function () {
const headers = { const headers = {
'sec-ch-ua' : '"Chromium";v="93", "Google Chrome";v="93", " Not;A Brand";v="99"', 'sec-ch-ua' : '"Chromium";v="93", "Google Chrome";v="93", " Not;A Brand";v="99"',
'sec-ch-ua-full-version-list' : '"Chromium";v="93.0.1.2", "Google Chrome";v="93.0.1.2", " Not;A Brand";v="99.0.1.2"', 'sec-ch-ua-full-version-list' : '"Chromium";v="93.0.1.2", "Google Chrome";v="93.0.1.2", " Not;A Brand";v="99.0.1.2"',
'sec-ch-ua-arch' : 'ARM', 'sec-ch-ua-arch' : '"arm"',
'sec-ch-ua-bitness' : '64', 'sec-ch-ua-bitness' : '"64"',
'sec-ch-ua-mobile' : '?1', 'sec-ch-ua-mobile' : '?1',
'sec-ch-ua-model' : 'Pixel 99', 'sec-ch-ua-model' : '"Pixel 99"',
'sec-ch-ua-platform' : 'Windows', 'sec-ch-ua-platform' : '"Windows"',
'sec-ch-ua-platform-version' : '13', 'sec-ch-ua-platform-version' : '"13"',
'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36' 'user-agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'
}; };