From 4c461b900e4eb187130fad184ed115c95b803ce7 Mon Sep 17 00:00:00 2001 From: Victor Miroshnikov Date: Wed, 12 Aug 2015 11:29:16 +0200 Subject: [PATCH] Adding definition file for ua-parser-js --- ua-parser-js/ua-parser-js-tests.ts | 44 +++++++++ ua-parser-js/ua-parser-js.d.ts | 150 +++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 ua-parser-js/ua-parser-js-tests.ts create mode 100644 ua-parser-js/ua-parser-js.d.ts diff --git a/ua-parser-js/ua-parser-js-tests.ts b/ua-parser-js/ua-parser-js-tests.ts new file mode 100644 index 0000000000..02ddf1403f --- /dev/null +++ b/ua-parser-js/ua-parser-js-tests.ts @@ -0,0 +1,44 @@ +/// + +function test_parser(){ + var ua = 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6'; + var parser = new UAParser(ua); + var result = parser.getResult(); + + parser.getUA() + parser.setUA("foo") + + result.ua + + // browser + result.browser.name + result.browser.version + parser.getBrowser().name + parser.getBrowser().version + + // device + result.device.model + result.device.type + result.device.vendor + + parser.getDevice().model + parser.getDevice().type + parser.getDevice().vendor + + // Engine + result.engine.name + result.engine.version + parser.getEngine().name + parser.getEngine().version + + // OS + result.os.name + result.os.version + parser.getOS().name + parser.getOS().version + + // CPU + result.cpu.architecture + parser.getCPU().architecture + +} diff --git a/ua-parser-js/ua-parser-js.d.ts b/ua-parser-js/ua-parser-js.d.ts new file mode 100644 index 0000000000..5ac748dcf5 --- /dev/null +++ b/ua-parser-js/ua-parser-js.d.ts @@ -0,0 +1,150 @@ +// Type definitions for js-cookie v2.0 +// Project: https://github.com/faisalman/ua-parser-js +// Definitions by: Viktor Miroshnikov +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module UAParser { + + export interface IBrowser { + /** + * Possible values : + * Amaya, Android Browser, Arora, Avant, Baidu, Blazer, Bolt, Camino, Chimera, Chrome, + * Chromium, Comodo Dragon, Conkeror, Dillo, Dolphin, Doris, Edge, Epiphany, Fennec, + * Firebird, Firefox, Flock, GoBrowser, iCab, ICE Browser, IceApe, IceCat, IceDragon, + * Iceweasel, IE [Mobile], Iron, Jasmine, K-Meleon, Konqueror, Kindle, Links, + * Lunascape, Lynx, Maemo, Maxthon, Midori, Minimo, MIUI Browser, [Mobile] Safari, + * Mosaic, Mozilla, Netfront, Netscape, NetSurf, Nokia, OmniWeb, Opera [Mini/Mobi/Tablet], + * Phoenix, Polaris, QQBrowser, RockMelt, Silk, Skyfire, SeaMonkey, SlimBrowser, Swiftfox, + * Tizen, UCBrowser, Vivaldi, w3m, Yandex + * + */ + name: string; + + /** + * Determined dynamically + */ + version: string; + } + + export interface IDevice { + /** + * Determined dynamically + */ + model: string; + + /** + * Possible type: + * console, mobile, tablet, smarttv, wearable, embedded + */ + type: string; + + /** + * Possible vendor: + * Acer, Alcatel, Amazon, Apple, Archos, Asus, BenQ, BlackBerry, Dell, GeeksPhone, + * Google, HP, HTC, Huawei, Jolla, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian, + * Nintendo, Nokia, Nvidia, Ouya, Palm, Panasonic, Polytron, RIM, Samsung, Sharp, + * Siemens, Sony-Ericsson, Sprint, Xbox, ZTE + */ + vendor: string; + } + + export interface IEngine { + /** + * Possible name: + * Amaya, EdgeHTML, Gecko, iCab, KHTML, Links, Lynx, NetFront, NetSurf, Presto, + * Tasman, Trident, w3m, WebKit + */ + name: string; + /** + * Determined dynamically + */ + version: string; + } + + export interface IOS{ + /** + * Possible 'os.name' + * AIX, Amiga OS, Android, Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS, Contiki, + * Fedora, Firefox OS, FreeBSD, Debian, DragonFly, Gentoo, GNU, Haiku, Hurd, iOS, + * Joli, Linpus, Linux, Mac OS, Mageia, Mandriva, MeeGo, Minix, Mint, Morph OS, NetBSD, + * Nintendo, OpenBSD, OpenVMS, OS/2, Palm, PCLinuxOS, Plan9, Playstation, QNX, RedHat, + * RIM Tablet OS, RISC OS, Sailfish, Series40, Slackware, Solaris, SUSE, Symbian, Tizen, + * Ubuntu, UNIX, VectorLinux, WebOS, Windows [Phone/Mobile], Zenwalk + */ + name: string; + /** + * Determined dynamically + */ + version: string; + } + + export interface ICPU{ + /** + * Possible architecture: + * 68k, amd64, arm, arm64, avr, ia32, ia64, irix, irix64, mips, mips64, pa-risc, + * ppc, sparc, sparc64 + */ + architecture: string; + } + + export interface IResult{ + ua: string; + browser: IBrowser; + device: IDevice; + engine: IEngine; + os: IOS; + cpu: ICPU; + } + +} + +declare class UAParser { + /** + * Returns browser information + */ + getBrowser(): UAParser.IBrowser; + /** + * Returns OS information + */ + getOS(): UAParser.IOS; + + /** + * Returns browsers engine information + */ + getEngine(): UAParser.IEngine; + + /** + * Returns device information + */ + getDevice(): UAParser.IDevice; + + /** + * Returns parsed CPU information + */ + getCPU(): UAParser.ICPU; + + /** + * Returns UA string of current instance + */ + getUA(): string; + + /** + * Set & parse UA string + */ + setUA(ua: string): void; + + /** + * Returns parse result + */ + getResult(): UAParser.IResult; + + /** + * Create a new parser + */ + constructor (); + + /** + * Create a new parser with UA prepopulated + */ + constructor (ua: string); +}