mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-09-27 07:58:45 +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!
|
// TODO : test!
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const BrowserType = Object.freeze({
|
||||||
|
BOT: 'bot',
|
||||||
|
CLI: 'cli',
|
||||||
|
EMAIL: 'email',
|
||||||
|
INAPP: 'inapp',
|
||||||
|
MODULE: 'module'
|
||||||
|
});
|
||||||
|
|
||||||
const CPU = Object.freeze({
|
const CPU = Object.freeze({
|
||||||
ARM : 'arm',
|
ARM : 'arm',
|
||||||
ARM_64: 'arm64',
|
ARM_64: 'arm64',
|
||||||
@ -341,7 +349,8 @@ const OS = Object.freeze({
|
|||||||
});
|
});
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
Browser,
|
Browser,
|
||||||
|
BrowserType,
|
||||||
CPU,
|
CPU,
|
||||||
Device,
|
Device,
|
||||||
Vendor,
|
Vendor,
|
||||||
|
@ -15,12 +15,6 @@ const VERSION = 'version';
|
|||||||
const MOBILE = 'mobile';
|
const MOBILE = 'mobile';
|
||||||
const TABLET = 'tablet';
|
const TABLET = 'tablet';
|
||||||
|
|
||||||
const Apps = Object.freeze({
|
|
||||||
browser : [
|
|
||||||
[/chatlyio\/([\d\.]+)/i], [VERSION, 'Slack', [TYPE, 'app']]
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
const Bots = Object.freeze({
|
const Bots = Object.freeze({
|
||||||
browser : [
|
browser : [
|
||||||
// Googlebot / BingBot / MSNBot / FacebookBot
|
// 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({
|
const MediaPlayers = Object.freeze({
|
||||||
browser : [[
|
browser : [[
|
||||||
|
|
||||||
@ -238,11 +238,11 @@ const Modules = Object.freeze({
|
|||||||
});
|
});
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
Apps,
|
|
||||||
Bots,
|
Bots,
|
||||||
CLIs,
|
CLIs,
|
||||||
ExtraDevices,
|
ExtraDevices,
|
||||||
Emails,
|
Emails,
|
||||||
|
InApps,
|
||||||
MediaPlayers,
|
MediaPlayers,
|
||||||
Modules
|
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';
|
NAME: 'name';
|
||||||
VERSION: 'version';
|
VERSION: 'version';
|
||||||
MAJOR: 'major';
|
MAJOR: 'major';
|
||||||
|
TYPE: 'type';
|
||||||
};
|
};
|
||||||
static readonly CPU: {
|
static readonly CPU: {
|
||||||
ARCHITECTURE: 'architecture';
|
ARCHITECTURE: 'architecture';
|
||||||
|
@ -847,7 +847,7 @@
|
|||||||
var defaultProps = (function () {
|
var defaultProps = (function () {
|
||||||
var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};
|
var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};
|
||||||
setProps.call(props.init, [
|
setProps.call(props.init, [
|
||||||
[UA_BROWSER, [NAME, VERSION, MAJOR]],
|
[UA_BROWSER, [NAME, VERSION, MAJOR, TYPE]],
|
||||||
[UA_CPU, [ARCHITECTURE]],
|
[UA_CPU, [ARCHITECTURE]],
|
||||||
[UA_DEVICE, [TYPE, MODEL, VENDOR]],
|
[UA_DEVICE, [TYPE, MODEL, VENDOR]],
|
||||||
[UA_ENGINE, [NAME, VERSION]],
|
[UA_ENGINE, [NAME, VERSION]],
|
||||||
@ -1225,7 +1225,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
UAParser.VERSION = LIBVERSION;
|
UAParser.VERSION = LIBVERSION;
|
||||||
UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);
|
UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);
|
||||||
UAParser.CPU = enumerize([ARCHITECTURE]);
|
UAParser.CPU = enumerize([ARCHITECTURE]);
|
||||||
UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
|
UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
|
||||||
UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
|
UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);
|
||||||
|
@ -28,6 +28,7 @@ expectType<IBrowser>(browser);
|
|||||||
expectType<string | undefined>(browser.name);
|
expectType<string | undefined>(browser.name);
|
||||||
expectType<string | undefined>(browser.version);
|
expectType<string | undefined>(browser.version);
|
||||||
expectType<string | undefined>(browser.major);
|
expectType<string | undefined>(browser.major);
|
||||||
|
expectType<string | undefined>(browser.type);
|
||||||
expectType<boolean>(browser.is(''));
|
expectType<boolean>(browser.is(''));
|
||||||
expectType<string>(browser.toString());
|
expectType<string>(browser.toString());
|
||||||
expectType<IBrowser | PromiseLike<IBrowser>>(browser.withClientHints());
|
expectType<IBrowser | PromiseLike<IBrowser>>(browser.withClientHints());
|
||||||
|
@ -7,8 +7,7 @@ describe('Returns', () => {
|
|||||||
assert.deepEqual(new UAParser('').getResult(),
|
assert.deepEqual(new UAParser('').getResult(),
|
||||||
{
|
{
|
||||||
ua : '',
|
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, type: undefined },
|
||||||
browser: { name: undefined, version: undefined, major: undefined },
|
|
||||||
cpu: { architecture: undefined },
|
cpu: { architecture: undefined },
|
||||||
device: { vendor: undefined, model: undefined, type: undefined },
|
device: { vendor: undefined, model: undefined, type: undefined },
|
||||||
engine: { name: undefined, version: 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(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(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(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
|
// try merging Bots & CLIs
|
||||||
const botsAndCLIs = { browser : [...Bots.browser, ...CLIs.browser]};
|
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 devices = require('./specs/device-all.json');
|
||||||
var engines = require('./specs/engine-all.json');
|
var engines = require('./specs/engine-all.json');
|
||||||
var os = require('./specs/os-all.json');
|
var os = require('./specs/os-all.json');
|
||||||
|
|
||||||
var parser = new UAParser();
|
var parser = new UAParser();
|
||||||
var methods = [
|
var methods = [
|
||||||
{
|
{
|
||||||
@ -82,7 +83,7 @@ describe('Returns', function () {
|
|||||||
assert.deepEqual(new UAParser('').getResult(),
|
assert.deepEqual(new UAParser('').getResult(),
|
||||||
{
|
{
|
||||||
ua : '',
|
ua : '',
|
||||||
browser: { name: undefined, version: undefined, major: undefined },
|
browser: { name: undefined, version: undefined, major: undefined, type: undefined },
|
||||||
cpu: { architecture: undefined },
|
cpu: { architecture: undefined },
|
||||||
device: { vendor: undefined, model: undefined, type: undefined },
|
device: { vendor: undefined, model: undefined, type: undefined },
|
||||||
engine: { name: undefined, version: undefined},
|
engine: { name: undefined, version: undefined},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user