mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 16:08:47 +03:00
BREAKING CHANGE - Add new property to browser
: type
This commit is contained in:
parent
1a22c6951f
commit
39590f112d
@ -144,6 +144,14 @@ const Browser = Object.freeze({
|
||||
// TODO : test!
|
||||
});
|
||||
|
||||
const BrowserType = Object.freeze({
|
||||
BOT: 'bot',
|
||||
CLI: 'cli',
|
||||
EMAIL: 'email',
|
||||
INAPP: 'inapp',
|
||||
MODULE: 'module'
|
||||
});
|
||||
|
||||
const CPU = Object.freeze({
|
||||
ARM : 'arm',
|
||||
ARM_64: 'arm64',
|
||||
@ -342,6 +350,7 @@ const OS = Object.freeze({
|
||||
|
||||
module.exports = {
|
||||
Browser,
|
||||
BrowserType,
|
||||
CPU,
|
||||
Device,
|
||||
Vendor,
|
||||
|
@ -15,12 +15,6 @@ const VERSION = 'version';
|
||||
const MOBILE = 'mobile';
|
||||
const TABLET = 'tablet';
|
||||
|
||||
const Apps = Object.freeze({
|
||||
browser : [
|
||||
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'app']]
|
||||
]
|
||||
});
|
||||
|
||||
const Bots = Object.freeze({
|
||||
browser : [
|
||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
||||
@ -124,6 +118,12 @@ const Emails = Object.freeze({
|
||||
]
|
||||
});
|
||||
|
||||
const InApps = Object.freeze({
|
||||
browser : [
|
||||
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'inapp']]
|
||||
]
|
||||
});
|
||||
|
||||
const MediaPlayers = Object.freeze({
|
||||
browser : [[
|
||||
|
||||
@ -238,11 +238,11 @@ const Modules = Object.freeze({
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
Apps,
|
||||
Bots,
|
||||
CLIs,
|
||||
ExtraDevices,
|
||||
Emails,
|
||||
InApps,
|
||||
MediaPlayers,
|
||||
Modules
|
||||
};
|
1
src/main/ua-parser.d.ts
vendored
1
src/main/ua-parser.d.ts
vendored
@ -62,6 +62,7 @@ declare namespace UAParser {
|
||||
NAME: 'name';
|
||||
VERSION: 'version';
|
||||
MAJOR: 'major';
|
||||
TYPE: 'type';
|
||||
};
|
||||
static readonly CPU: {
|
||||
ARCHITECTURE: 'architecture';
|
||||
|
@ -847,7 +847,7 @@
|
||||
var defaultProps = (function () {
|
||||
var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};
|
||||
setProps.call(props.init, [
|
||||
[UA_BROWSER, [NAME, VERSION, MAJOR]],
|
||||
[UA_BROWSER, [NAME, VERSION, MAJOR, TYPE]],
|
||||
[UA_CPU, [ARCHITECTURE]],
|
||||
[UA_DEVICE, [TYPE, MODEL, VENDOR]],
|
||||
[UA_ENGINE, [NAME, VERSION]],
|
||||
@ -1225,7 +1225,7 @@
|
||||
}
|
||||
|
||||
UAParser.VERSION = LIBVERSION;
|
||||
UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
|
||||
UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);
|
||||
UAParser.CPU = enumerize([ARCHITECTURE]);
|
||||
UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
|
||||
UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
|
||||
|
@ -28,6 +28,7 @@ expectType<IBrowser>(browser);
|
||||
expectType<string | undefined>(browser.name);
|
||||
expectType<string | undefined>(browser.version);
|
||||
expectType<string | undefined>(browser.major);
|
||||
expectType<string | undefined>(browser.type);
|
||||
expectType<boolean>(browser.is(''));
|
||||
expectType<string>(browser.toString());
|
||||
expectType<IBrowser | PromiseLike<IBrowser>>(browser.withClientHints());
|
||||
|
@ -7,8 +7,7 @@ describe('Returns', () => {
|
||||
assert.deepEqual(new UAParser('').getResult(),
|
||||
{
|
||||
ua : '',
|
||||
//ua_ch : { architecture: undefined, bitness: undefined, brands: undefined, fullVersionList: undefined, mobile: false, model: undefined, platform: undefined, platformVersion: undefined },
|
||||
browser: { name: undefined, version: undefined, major: undefined },
|
||||
browser: { name: undefined, version: undefined, major: undefined, type: undefined },
|
||||
cpu: { architecture: undefined },
|
||||
device: { vendor: undefined, model: undefined, type: undefined },
|
||||
engine: { name: undefined, version: undefined},
|
||||
|
@ -26,7 +26,7 @@ describe('Bots', () => {
|
||||
assert.deepEqual(botParser.setUA(gptBot).getBrowser(), {name: "GPTBot", version: "1.0", major: "1", type: "bot"});
|
||||
assert.deepEqual(botParser.setUA(msnBot).getBrowser(), {name: "msnbot-media", version: "1.1", major: "1", type: "bot"});
|
||||
assert.deepEqual(botParser.setUA(bingPreview).getBrowser(), {name: "BingPreview", version: "1.0b", major: "1", type: "bot"});
|
||||
assert.deepEqual(botParser.setUA(opera).getBrowser(), {name: "Opera", version: "8.5", major: "8"});
|
||||
assert.deepEqual(botParser.setUA(opera).getBrowser(), {name: "Opera", version: "8.5", major: "8", type: undefined});
|
||||
|
||||
// try merging Bots & CLIs
|
||||
const botsAndCLIs = { browser : [...Bots.browser, ...CLIs.browser]};
|
||||
|
@ -10,6 +10,7 @@ var cpus = require('./specs/cpu-all.json');
|
||||
var devices = require('./specs/device-all.json');
|
||||
var engines = require('./specs/engine-all.json');
|
||||
var os = require('./specs/os-all.json');
|
||||
|
||||
var parser = new UAParser();
|
||||
var methods = [
|
||||
{
|
||||
@ -82,7 +83,7 @@ describe('Returns', function () {
|
||||
assert.deepEqual(new UAParser('').getResult(),
|
||||
{
|
||||
ua : '',
|
||||
browser: { name: undefined, version: undefined, major: undefined },
|
||||
browser: { name: undefined, version: undefined, major: undefined, type: undefined },
|
||||
cpu: { architecture: undefined },
|
||||
device: { vendor: undefined, model: undefined, type: undefined },
|
||||
engine: { name: undefined, version: undefined},
|
||||
|
Loading…
x
Reference in New Issue
Block a user