diff --git a/src/extensions/ua-parser-extensions.d.ts b/src/extensions/ua-parser-extensions.d.ts index 5d6f300..e432b21 100644 --- a/src/extensions/ua-parser-extensions.d.ts +++ b/src/extensions/ua-parser-extensions.d.ts @@ -4,6 +4,7 @@ import type { UAParserExt } from "../main/ua-parser"; +export const Bots: UAParserExt; export const CLIs: UAParserExt; export const Crawlers: UAParserExt; export const ExtraDevices: UAParserExt; diff --git a/src/extensions/ua-parser-extensions.js b/src/extensions/ua-parser-extensions.js index a85052c..a1efa24 100644 --- a/src/extensions/ua-parser-extensions.js +++ b/src/extensions/ua-parser-extensions.js @@ -342,7 +342,21 @@ const Modules = Object.freeze({ ] }); +////////// +// BOTS +///////// + +const Bots = Object.freeze({ + browser : [ + ...CLIs.browser, + ...Crawlers.browser, + ...Fetchers.browser, + ...Modules.browser + ] +}); + module.exports = { + Bots, CLIs, Crawlers, ExtraDevices, diff --git a/test/mocha-test-extension.js b/test/mocha-test-extension.js index c2ee99d..2f81a5c 100644 --- a/test/mocha-test-extension.js +++ b/test/mocha-test-extension.js @@ -9,7 +9,7 @@ const crawlers = require('./specs/browser-crawlers.json'); const emails = require('./specs/browser-emails.json'); const fetchers = require('./specs/browser-fetchers.json'); const modules = require('./specs/browser-modules.json'); -const { CLIs, Crawlers, Emails, Fetchers, Modules } = require('../src/extensions/ua-parser-extensions'); +const { Bots, CLIs, Crawlers, Emails, Fetchers, Modules } = require('../src/extensions/ua-parser-extensions'); describe('Extensions', () => { [ @@ -38,6 +38,8 @@ describe('Extensions', () => { const jsdom = 'Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/20.0.3'; const scrapy = 'Scrapy/1.5.0 (+https://scrapy.org)'; + assert.equal(UAParser(scrapy, Bots).browser.name, 'Scrapy'); + const emailParser = new UAParser(Emails); assert.deepEqual(emailParser.setUA(outlook).getBrowser(), {name: "Microsoft Outlook", version: "16.0.9126", major: "16", type: "email"}); assert.deepEqual(emailParser.setUA(thunderbird).getBrowser(), {name: "Thunderbird", version: "78.13.0", major: "78", type: "email"}); @@ -67,7 +69,7 @@ describe('Merge', () => { }); }); -describe('Testing regexes', () => { +describe('Testing the safety of regexes', () => { let regexes; let code = fs.readFileSync('src/extensions/ua-parser-extensions.js', 'utf8').toString();