Skip to content

Commit 3100e6c

Browse files
committed
Merge tag '2.0.5' into pro-enterprise
2 parents 6fc8ec3 + 3ea5721 commit 3100e6c

33 files changed

+3325
-1118
lines changed

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,35 @@
6565

6666
---
6767

68+
## Version 2.0.5
69+
70+
- Add new browser: Zalo
71+
- Add new CPU arch: alpha
72+
- Add new device vendor: Philips
73+
- Improve device detection: Pico
74+
- Fix parsing error on pages with modified Array prototypes
75+
- Improve type declarations:
76+
- Replace `node-fetch` dependency with `undici`
77+
- Replace hardcoded string values with enum from `enum` submodule
78+
- `enums` submodule:
79+
- Add `Extension` enum for `extensions` submodule
80+
- Type declaration file now automatically generated using build script
81+
- Naming adjustments:
82+
- `Browser` => `BrowserName`
83+
- `CPU` => `CPUArch`
84+
- `Device` => `DeviceType`
85+
- `Vendor` => `DeviceVendor`
86+
- `Engine` => `EngineName`
87+
- `OS` => `OSName`
88+
- `extensions` submodule:
89+
- Add new crawlers:
90+
APIs-Google, Algolia Crawler, Algolia Crawler Renderscript, Baidu-ADS, BLEXBot, botify, Bravebot, Claude-Web, cohere-training-data-crawler, contxbot, Cotoyogi, Coveobot, CriteoBot, DeepSeekBot, DuckDuckGo-Favicons-Bot, Elastic, FirecrawlAgent, Freespoke, Google-CloudVertexBot, HuggingFace-Bot, Kagibot, Kangaroo Bot, marginalia, msnbot, OnCrawl, Replicate-Bot, RunPod-Bot, SBIntuitionsBot, SeekportBot, Siteimprove, Sogou Pic Spider, TikTokSpider, TwinAgent, v0bot, webzio, Webzio-Extended, xAI-Bot, YandexAccessibilityBot, YandexAdditionalBot, YandexAdNet, YandexBot MirrorDetector, YandexBlogs, YandexComBot, YandexFavicons, YandexImageResizer, YandexImages, YandexMarket, YandexMetrika, YandexMedia, YandexMobileBot, YandexMobileScreenShotBot, YandexNews, YandexOntoDB, YandexOntoDBAPI, YandexPartner, YandexRCA, YandexRenderResourcesBot, YandexScreenshotBot, YandexSpravBot, YandexTracker, YandexVertis, YandexVerticals, YandexVideo, YandexVideoParser, YandexWebmaster, YepBot, ZumBot
91+
- Add new fetchers:
92+
Asana, bitlybot, Blueno, BufferLinkPreviewBot, Chrome-Lighthouse, Gemini-Deep-Research, HubSpot Page Fetcher, kakaotalk-scrap, vercel-favicon-bot, vercel-screenshot-bot, vercelflags, verceltracing, YaDirectFetcher, YandexCalendar, YandexDirect, YandexDirectDyn, YandexForDomain, YandexPagechecker, YandexSearchShop, YandexSitelinks, YandexUserproxy
93+
- `helpers` submodule:
94+
- Add some crawler to `isAIBot()`:
95+
Bravebot, cohere-training-data-crawler, FirecrawlAgent, HuggingFace-Bot, Kangaroo Bot, PanguBot, Replicate-Bot, RunPod-Bot, TikTokSpider, Together-Bot, v0bot, xAI-Bot
96+
6897
## Version 2.0.4
6998

7099
- Add new browser: Edge WebView, Edge WebView2
@@ -240,6 +269,16 @@
240269

241270
---
242271

272+
## Version 0.7.41 / 1.0.41
273+
- Add new browser: Daum, Ladybird
274+
- Add new device vendor: HMD
275+
- Add new engine: LibWeb
276+
- Add new os: Windows IoT, Ubuntu Touch
277+
- Improve cpu detection: ARM, x86
278+
- Improve device vendor detection: Apple, Archos, Generic, Google, Honor, Huawei, Infinix, Nvidia, Lenovo, Nokia, OnePlus, Xiaomi
279+
- Improve device type detection: smarttv, wearables
280+
- Improve os detection: Linux, Symbian
281+
243282
## Version 0.7.40 / 1.0.40
244283
- Add new browser: 115, LibreWolf, Slimboat, Slimjet
245284
- Add new device: Advan, Cat, Energizer, IMO, Micromax, Smartfren

dist/ua-parser.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ua-parser.min.mjs

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

dist/ua-parser.pack.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ua-parser.pack.mjs

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 12 additions & 120 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"title": "UAParser.js PRO Enterprise",
33
"name": "@ua-parser-js/pro-enterprise",
4-
"version": "2.0.4",
4+
"version": "2.0.5",
55
"author": "Faisal Salman <[email protected]> (http://faisalman.com)",
66
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment",
77
"keywords": [
@@ -227,8 +227,7 @@
227227
"detect-europe-js": "^0.1.2",
228228
"is-standalone-pwa": "^0.1.1",
229229
"ua-is-frozen": "^0.1.2",
230-
"node-fetch": "^2.7.0",
231-
"@types/node-fetch": "^2.6.12"
230+
"undici": "^7.12.0"
232231
},
233232
"devDependencies": {
234233
"@babel/parser": "7.15.8",

script/build-esm.js

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,58 +2,73 @@
22
/* jshint esversion: 6 */
33
const fs = require('fs');
44

5-
const generateMJS = (module) => {
6-
let { src, dest, title, replacements } = module;
7-
let text = fs.readFileSync(src, 'utf-8');
8-
9-
replacements.push(
5+
const defaultReplacements = {
6+
mjs: [
107
[/const (.+?)\s*=\s*require\(\'\.(.+)\'\)/ig, 'import $1 from \'\.$2.mjs\''],
118
[/const (.+?)\s*=\s*require\(\'(.+)\'\)/ig, 'import $1 from \'$2\''],
129
[/module\.exports =/ig, 'export']
13-
);
10+
]
11+
}
12+
13+
const generateFile = (module) => {
14+
let { src, dest, title, replacements } = module;
15+
let text = fs.readFileSync(src, 'utf-8');
16+
1417
replacements.forEach(rep => {
1518
text = text.replace(rep[0], rep[1]);
1619
});
1720

1821
console.log(`Generate ${dest}`);
1922

2023
fs.writeFileSync(dest,
21-
`// Generated ESM version of ${title}
24+
`// ${title}
2225
// DO NOT EDIT THIS FILE!
2326
// Source: /${src}
2427
2528
${text}`, 'utf-8');
26-
2729
};
2830

29-
const modules = [
31+
const files = [
3032
{
3133
src : 'src/main/ua-parser.js',
3234
dest : 'src/main/ua-parser.mjs',
33-
title : 'ua-parser-js',
35+
title : 'Generated ESM version of ua-parser-js',
3436
replacements : [
3537
[/\(func[\s\S]+strict\';/ig, ''],
3638
[/esversion\: 3/ig, 'esversion: 6'],
37-
[/\/[\/\s]+export[\s\S]+/ig,'export {UAParser};']
39+
[/\/[\/\s]+export[\s\S]+/ig,'export {UAParser};'],
40+
...defaultReplacements.mjs
3841
]
39-
},{
42+
},
43+
{
4044
src : 'src/enums/ua-parser-enums.js',
4145
dest :'src/enums/ua-parser-enums.mjs',
42-
title : 'ua-parser-js/enums',
43-
replacements : []
46+
title : 'Generated ESM version of ua-parser-js/enums',
47+
replacements : [...defaultReplacements.mjs]
48+
},
49+
{
50+
src : 'src/enums/ua-parser-enums.js',
51+
dest :'src/enums/ua-parser-enums.d.ts',
52+
title : 'Generated type declarations of ua-parser-js/enums',
53+
replacements : [
54+
[/(const .+) = object\.freeze\(/ig, 'export $1: Readonly<'],
55+
[/(const .+) =( .+;)/ig, 'export $1: typeof$2'],
56+
[/}\);/ig, '}>;'],
57+
[/module\.exports =.+/igs, '']
58+
]
4459
},
4560
{
4661
src : 'src/extensions/ua-parser-extensions.js',
4762
dest : 'src/extensions/ua-parser-extensions.mjs',
48-
title : 'ua-parser-js/extensions',
49-
replacements : []
63+
title : 'Generated ESM version of ua-parser-js/extensions',
64+
replacements : [...defaultReplacements.mjs]
5065
},
5166
{
5267
src : 'src/helpers/ua-parser-helpers.js',
5368
dest : 'src/helpers/ua-parser-helpers.mjs',
54-
title : 'ua-parser-js/helpers',
55-
replacements : []
69+
title : 'Generated ESM version of ua-parser-js/helpers',
70+
replacements : [...defaultReplacements.mjs]
5671
}
5772
];
5873

59-
modules.forEach(module => generateMJS(module));
74+
files.forEach(module => generateFile(module));

0 commit comments

Comments
 (0)