From a307533f74a31e6dd3d675c0b1945a46ea65a148 Mon Sep 17 00:00:00 2001 From: Will Soares Date: Sun, 17 Feb 2019 22:05:40 -0300 Subject: [PATCH 1/8] Add support for using short version for browser name in satisfies --- CONTRIBUTING.md | 11 ++++++++--- src/constants.js | 41 +++++++++++++++++++++++++++++++++++++++++ src/parser.js | 13 ++++++++++--- src/utils.js | 15 +++++++++++++++ test/unit/parser.js | 26 ++++++++++++++++++++++++++ test/unit/utils.js | 6 ++++++ 6 files changed, 106 insertions(+), 6 deletions(-) create mode 100644 src/constants.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2652439..648ae69 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,12 +12,17 @@ If it's a small hot-fix, an improvement to the docs, or added support for a new Following these simple rules will really help maintain the repo! Thanks ❤️ -## Adding Tests +## Adding Browser Support and Tests See the list in `test/acceptance/useragentstrings.yml` with example user agents and their expected `bowser` object. -Whenever you add support for new browsers or notice a bug / mismatch, please update the list and -check if all tests are still passing. +Whenever you add support for new browsers or notice a bug / mismatch, please update the list and check if all tests are still passing. Also, make sure to keep the list of browser aliases up-to-date in `src/constants.js`. + +For creating aliases, keep the following guidelines in mind: + - use camelcase style for names + - whenever possible drop the word `browser` from the original browser name + - remove all dashes from the original browser name + - always check for possible duplicates ## Testing diff --git a/src/constants.js b/src/constants.js new file mode 100644 index 0000000..99b543e --- /dev/null +++ b/src/constants.js @@ -0,0 +1,41 @@ +// NOTE: this list must be up-to-date with browsers listed in +// test/acceptance/useragentstrings.yml +const BROWSER_ALIASES_MAP = { + 'Amazon Silk': 'amazonSilk', + 'Android Browser': 'android', + Bada: 'bada', + BlackBerry: 'blackBerry', + Chrome: 'chrome', + Chromium: 'chromium', + Epiphany: 'epiphany', + Firefox: 'firefox', + Focus: 'focus', + Generic: 'generic', + Googlebot: 'googlebot', + 'Internet Explorer': 'ie', + 'K-Meleon': 'kMeleon', + Maxthon: 'maxthon', + 'Microsoft Edge': 'edge', + 'MZ Browser': 'mz', + 'NAVER Whale Browser': 'naver', + Opera: 'opera', + 'Opera Coast': 'operaCoast', + PhantomJS: 'phantomJS', + Puffin: 'puffin', + QupZilla: 'qupZilla', + Safari: 'safari', + Sailfish: 'sailfish', + SeaMonkey: 'seaMonkey', + Sleipnir: 'sleipnir', + Swing: 'swing', + Tizen: 'tizen', + 'UC Browser': 'uc', + Vivaldi: 'vivaldi', + 'WebOS Browser': 'webOS', + WeChat: 'weChat', + 'Yandex Browser': 'yandex', +}; + +module.exports = { + BROWSER_ALIASES_MAP, +}; diff --git a/src/parser.js b/src/parser.js index daef7aa..eca1ed3 100644 --- a/src/parser.js +++ b/src/parser.js @@ -392,7 +392,7 @@ class Parser { if (browsersCounter > 0) { const browserNames = Object.keys(browsers); - const matchingDefinition = browserNames.find(name => (this.isBrowser(name))); + const matchingDefinition = browserNames.find(name => (this.isBrowser(name, true))); if (matchingDefinition !== void 0) { return this.compareVersion(browsers[matchingDefinition]); @@ -402,8 +402,15 @@ class Parser { return undefined; } - isBrowser(browserName) { - return this.getBrowserName(true) === String(browserName).toLowerCase(); + isBrowser(browserName, loosely = false) { + const defaultBrowserName = this.getBrowserName(); + const possibleNames = [defaultBrowserName.toLowerCase()]; + + if (loosely) { + possibleNames.push(getBrowserAlias(defaultBrowserName).toLowerCase()); + } + + return possibleNames.indexOf(browserName.toLowerCase()) !== -1; } compareVersion(version) { diff --git a/src/utils.js b/src/utils.js index 8b12773..8b0a8a3 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,3 +1,5 @@ +import { BROWSER_ALIASES_MAP } from './constants'; + export default class Utils { /** * Get first matched item for a string @@ -187,4 +189,17 @@ export default class Utils { } return result; } + + /** + * Get short version/alias for a browser name + * + * @example + * getBrowserAlias('Microsoft Edge') // edge + * + * @param {string} browserName + * @return {string} + */ + static getBrowserAlias(browserName) { + return BROWSER_ALIASES_MAP[browserName]; + } } diff --git a/test/unit/parser.js b/test/unit/parser.js index 17a020f..10ec0d4 100644 --- a/test/unit/parser.js +++ b/test/unit/parser.js @@ -5,6 +5,9 @@ import Parser from '../../src/parser'; const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 OPR/43.0.2442.1165'; const parser = new Parser(UA, true); +const EDGE_UA = 'Mozilla/5.0 (Linux; Android 8.0; Pixel XL Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.0 Mobile Safari/537.36 EdgA/41.1.35.1'; +const edgeParser = new Parser(EDGE_UA, true); + test('constructor', (t) => { t.truthy(parser instanceof Parser); }); @@ -145,6 +148,13 @@ test('Parser.satisfies for versionless UA strings', (t) => { }), void 0); }); +test('Parser.satisfies should consider aliases while handling browsers', (t) => { + t.is(edgeParser.satisfies({ 'Microsoft Edge': '=41.1.35.1' }), true); + t.is(edgeParser.satisfies({ 'microsoft edge': '=41.1.35.1' }), true); + t.is(edgeParser.satisfies({ 'edge': '=41.1.35.1' }), true); + t.is(edgeParser.satisfies({ 'Edge': '=41.1.35.1' }), true); +}); + test('Parser.is should pass', (t) => { t.is(parser.is('opera'), true); t.is(parser.is('desktop'), true); @@ -158,3 +168,19 @@ test('Parser.some should pass', (t) => { t.is(parser.some([]), false); t.is(parser.some(), false); }); + +test('Parser.isBrowser should pass when not loosely checking', (t) => { + t.is(edgeParser.isBrowser('Microsoft Edge', false), true); + t.is(edgeParser.isBrowser('microsoft edge', false), true); + t.is(edgeParser.isBrowser('mIcrosoft eDge', false), true); + t.is(edgeParser.isBrowser('edge', false), false); + t.is(edgeParser.isBrowser('Edge', false), false); +}); + +test('Parser.isBrowser should pass when loosely checking', (t) => { + t.is(edgeParser.isBrowser('Microsoft Edge', true), true); + t.is(edgeParser.isBrowser('microsoft edge', true), true); + t.is(edgeParser.isBrowser('mIcrosoft eDge', true), true); + t.is(edgeParser.isBrowser('edge', true), true); + t.is(edgeParser.isBrowser('Edge', true), true); +}); diff --git a/test/unit/utils.js b/test/unit/utils.js index 4d73cbc..ecbf85f 100644 --- a/test/unit/utils.js +++ b/test/unit/utils.js @@ -1,5 +1,6 @@ import test from 'ava'; import { + getBrowserAlias, getFirstMatch, getWindowsVersionName, compareVersions, @@ -50,3 +51,8 @@ test('compareVersions', (t) => { t.is(compareVersions(versionA, versionB, isLoose), result, `version ${versionA} should be ${matching} version ${versionB}`); }); }); + +test('getBrowserAlias', (t) => { + t.is(getBrowserAlias('Microsoft Edge'), 'edge'); + t.is(getBrowserAlias('Unexisting Browser'), void 0); +}); From 064aa812fce716a1d0d02ef40647185bd1b54262 Mon Sep 17 00:00:00 2001 From: Will Soares Date: Mon, 25 Feb 2019 23:23:55 -0300 Subject: [PATCH 2/8] Use snake case for alias names --- CONTRIBUTING.md | 11 +++++++++-- src/constants.js | 20 ++++++++++---------- test/unit/constants.js | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 test/unit/constants.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 648ae69..7400adf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,10 +19,17 @@ See the list in `test/acceptance/useragentstrings.yml` with example user agents Whenever you add support for new browsers or notice a bug / mismatch, please update the list and check if all tests are still passing. Also, make sure to keep the list of browser aliases up-to-date in `src/constants.js`. For creating aliases, keep the following guidelines in mind: - - use camelcase style for names + - use snake_case style for names - whenever possible drop the word `browser` from the original browser name - - remove all dashes from the original browser name + - replace dashes with underscore + - avoid capital letters - always check for possible duplicates + - aliases are supposed to also be a shorter version of the original name + +Examples: +`Opera Coast` --> `opera_coast` +`UC Browser` --> `uc` +`SeaMonkey` --> `sea_monkey` ## Testing diff --git a/src/constants.js b/src/constants.js index 99b543e..fe80944 100644 --- a/src/constants.js +++ b/src/constants.js @@ -1,10 +1,10 @@ // NOTE: this list must be up-to-date with browsers listed in // test/acceptance/useragentstrings.yml const BROWSER_ALIASES_MAP = { - 'Amazon Silk': 'amazonSilk', + 'Amazon Silk': 'amazon_silk', 'Android Browser': 'android', Bada: 'bada', - BlackBerry: 'blackBerry', + BlackBerry: 'black_berry', Chrome: 'chrome', Chromium: 'chromium', Epiphany: 'epiphany', @@ -13,27 +13,27 @@ const BROWSER_ALIASES_MAP = { Generic: 'generic', Googlebot: 'googlebot', 'Internet Explorer': 'ie', - 'K-Meleon': 'kMeleon', + 'K-Meleon': 'k_meleon', Maxthon: 'maxthon', 'Microsoft Edge': 'edge', 'MZ Browser': 'mz', 'NAVER Whale Browser': 'naver', Opera: 'opera', - 'Opera Coast': 'operaCoast', - PhantomJS: 'phantomJS', + 'Opera Coast': 'opera_coast', + PhantomJS: 'phantom_js', Puffin: 'puffin', - QupZilla: 'qupZilla', + QupZilla: 'qup_zilla', Safari: 'safari', Sailfish: 'sailfish', - SeaMonkey: 'seaMonkey', + SeaMonkey: 'sea_monkey', Sleipnir: 'sleipnir', Swing: 'swing', Tizen: 'tizen', 'UC Browser': 'uc', Vivaldi: 'vivaldi', - 'WebOS Browser': 'webOS', - WeChat: 'weChat', - 'Yandex Browser': 'yandex', + 'WebOS Browser': 'web_os', + WeChat: 'we_chat', + 'Yandex Browser': 'yandex' }; module.exports = { diff --git a/test/unit/constants.js b/test/unit/constants.js new file mode 100644 index 0000000..a8b2be6 --- /dev/null +++ b/test/unit/constants.js @@ -0,0 +1,15 @@ +import test from 'ava'; +import { BROWSER_ALIASES_MAP } from '../../src/constants'; + +test('check duplicate aliases', (t) => { + const aliasesList = Object.keys(BROWSER_ALIASES_MAP).map(value => (BROWSER_ALIASES_MAP[value])); + let foundOnce, foundTwice; + + const duplicates = aliasesList.filter(item => { + foundOnce = aliasesList.indexOf(item); + foundTwice = aliasesList.indexOf(item, foundOnce + 1); + return +foundTwice !== -1; + }); + + t.deepEqual(duplicates, []); +}); From b111862cce9a9ccb97a27ac353ae855664d5bd9d Mon Sep 17 00:00:00 2001 From: Will Soares Date: Sat, 9 Mar 2019 19:27:28 -0300 Subject: [PATCH 3/8] Update rules for creating browser aliases --- CONTRIBUTING.md | 7 +++---- src/constants.js | 12 ++++++------ src/parser.js | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7400adf..79b896a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,17 +19,16 @@ See the list in `test/acceptance/useragentstrings.yml` with example user agents Whenever you add support for new browsers or notice a bug / mismatch, please update the list and check if all tests are still passing. Also, make sure to keep the list of browser aliases up-to-date in `src/constants.js`. For creating aliases, keep the following guidelines in mind: - - use snake_case style for names + - use only lowercase letters for names + - replace special characters such as space and dashes by underscore - whenever possible drop the word `browser` from the original browser name - - replace dashes with underscore - - avoid capital letters - always check for possible duplicates - aliases are supposed to also be a shorter version of the original name Examples: `Opera Coast` --> `opera_coast` `UC Browser` --> `uc` -`SeaMonkey` --> `sea_monkey` +`SeaMonkey` --> `seamonkey` ## Testing diff --git a/src/constants.js b/src/constants.js index fe80944..547ba29 100644 --- a/src/constants.js +++ b/src/constants.js @@ -4,7 +4,7 @@ const BROWSER_ALIASES_MAP = { 'Amazon Silk': 'amazon_silk', 'Android Browser': 'android', Bada: 'bada', - BlackBerry: 'black_berry', + BlackBerry: 'blackberry', Chrome: 'chrome', Chromium: 'chromium', Epiphany: 'epiphany', @@ -20,19 +20,19 @@ const BROWSER_ALIASES_MAP = { 'NAVER Whale Browser': 'naver', Opera: 'opera', 'Opera Coast': 'opera_coast', - PhantomJS: 'phantom_js', + PhantomJS: 'phantomjs', Puffin: 'puffin', - QupZilla: 'qup_zilla', + QupZilla: 'qupzilla', Safari: 'safari', Sailfish: 'sailfish', - SeaMonkey: 'sea_monkey', + SeaMonkey: 'seamonkey', Sleipnir: 'sleipnir', Swing: 'swing', Tizen: 'tizen', 'UC Browser': 'uc', Vivaldi: 'vivaldi', - 'WebOS Browser': 'web_os', - WeChat: 'we_chat', + 'WebOS Browser': 'webos', + WeChat: 'wechat', 'Yandex Browser': 'yandex' }; diff --git a/src/parser.js b/src/parser.js index eca1ed3..88706a8 100644 --- a/src/parser.js +++ b/src/parser.js @@ -407,7 +407,7 @@ class Parser { const possibleNames = [defaultBrowserName.toLowerCase()]; if (loosely) { - possibleNames.push(getBrowserAlias(defaultBrowserName).toLowerCase()); + possibleNames.push(Utils.getBrowserAlias(defaultBrowserName).toLowerCase()); } return possibleNames.indexOf(browserName.toLowerCase()) !== -1; From ace7a8899b0bb495b6a2bdc34abb9e4c383da36b Mon Sep 17 00:00:00 2001 From: Will Soares Date: Sat, 9 Mar 2019 19:29:34 -0300 Subject: [PATCH 4/8] Fix eslint errors --- src/constants.js | 2 +- src/utils.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/constants.js b/src/constants.js index 547ba29..d0e084c 100644 --- a/src/constants.js +++ b/src/constants.js @@ -33,7 +33,7 @@ const BROWSER_ALIASES_MAP = { Vivaldi: 'vivaldi', 'WebOS Browser': 'webos', WeChat: 'wechat', - 'Yandex Browser': 'yandex' + 'Yandex Browser': 'yandex', }; module.exports = { diff --git a/src/utils.js b/src/utils.js index 8b0a8a3..942c3db 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,4 +1,4 @@ -import { BROWSER_ALIASES_MAP } from './constants'; +import { BROWSER_ALIASES_MAP } from './constants.js'; export default class Utils { /** From 428dadc503f2efb43160c1c994bbfbf700729162 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Sun, 7 Apr 2019 11:28:03 +0300 Subject: [PATCH 5/8] Fix Yandex Browser version detection fixes #308 --- src/parser-browsers.js | 2 +- test/acceptance/useragentstrings.yml | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/parser-browsers.js b/src/parser-browsers.js index 74b2bad..fd9469f 100644 --- a/src/parser-browsers.js +++ b/src/parser-browsers.js @@ -174,7 +174,7 @@ const browsersList = [ const browser = { name: 'Yandex Browser', }; - const version = Utils.getFirstMatch(commonVersionIdentifier, ua) || Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, ua); + const version = Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, ua) || Utils.getFirstMatch(commonVersionIdentifier, ua); if (version) { browser.version = version; diff --git a/test/acceptance/useragentstrings.yml b/test/acceptance/useragentstrings.yml index 5c05906..d3bd9b0 100644 --- a/test/acceptance/useragentstrings.yml +++ b/test/acceptance/useragentstrings.yml @@ -673,6 +673,22 @@ vendor: "Nexus" engine: name: "Blink" + - + ua: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 YaBrowser/19.3.3.157.10 Mobile/15E148 Safari/605.1" + spec: + browser: + name: "Yandex Browser" + version: "19.3.3.157.10" + os: + name: "iOS" + version: "12.2" + platform: + type: "mobile" + vendor: "Apple" + model: "iPhone" + engine: + name: "WebKit" + version: "605.1.15" Safari: - ua: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2" From 09b73d78978f91a972f46aba1b44ec4ba86c16a8 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Sun, 7 Apr 2019 11:43:06 +0300 Subject: [PATCH 6/8] Update changelog and readme --- CHANGELOG.md | 4 ++++ README.md | 10 ++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d090085..2a30be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Bowser Changelog +### 2.2.0 (April 7, 2019) +- [ADD] Add short aliases for browser names (#295) +- [FIX] Fix Yandex Browser version detection (#308) + ### 2.1.2 (March 6, 2019) - [FIX] Fix buggy `getFirstMatch` reference diff --git a/README.md b/README.md index c130864..7a2b381 100644 --- a/README.md +++ b/README.md @@ -131,8 +131,14 @@ Thus, you can define OS or platform specific rules and they will have more prior More of API and possibilities you will find in the `docs` folder. -### Similar Projects +### Browser names for `.satisfies()` + +By default you are supposed to use the full browser name for `.satisfies`. +But, there's a short way to define a browser using short aliases. The full +list of aliases can be found in [the file](src/constants.js). + +## Similar Projects * [Kong](https://github.com/BigBadBleuCheese/Kong) - A C# port of Bowser. -### License +## License Licensed as MIT. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details. From 91f0e8936dbcf0efb26a63eabb12d4d203e59b20 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Sun, 7 Apr 2019 11:48:04 +0300 Subject: [PATCH 7/8] Bump version --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 35fbd7b..fc5383e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bowser", - "version": "2.1.2", + "version": "2.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index f199a70..9db9c71 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bowser", - "version": "2.1.2", + "version": "2.2.0", "description": "Lightweight browser detector", "keywords": [ "browser", From 6cc8c84c565ea95049095329ff37fec41f954599 Mon Sep 17 00:00:00 2001 From: Denis Demchenko Date: Sun, 7 Apr 2019 11:48:26 +0300 Subject: [PATCH 8/8] Rebuild docs --- docs/Bowser.html | 4 +- docs/Parser.html | 8 +-- docs/bowser.js.html | 4 +- docs/global.html | 172 +++++++++++++++++++++++++++++++++++++++++--- docs/index.html | 11 +-- docs/parser.js.html | 17 +++-- docs/utils.js.html | 21 +++++- 7 files changed, 209 insertions(+), 28 deletions(-) diff --git a/docs/Bowser.html b/docs/Bowser.html index 8971ea5..57ecfa7 100644 --- a/docs/Bowser.html +++ b/docs/Bowser.html @@ -26,7 +26,7 @@
@@ -572,7 +572,7 @@ const result = parser.getResult();
- Documentation generated by JSDoc 3.5.5 on Wed Mar 06 2019 14:31:23 GMT+0200 (EET) using the docdash theme. + Documentation generated by JSDoc 3.5.5 on Sun Apr 07 2019 11:48:14 GMT+0300 (EEST) using the docdash theme.
diff --git a/docs/Parser.html b/docs/Parser.html index cae36d6..7f0c240 100644 --- a/docs/Parser.html +++ b/docs/Parser.html @@ -26,7 +26,7 @@
@@ -1670,7 +1670,7 @@ like Parser#parseBrowser or Source:
@@ -2488,7 +2488,7 @@ Returns undefined when the browser is no described in the checkTree
Source:
@@ -2793,7 +2793,7 @@ Returns undefined when the browser is no described in the checkTree
- Documentation generated by JSDoc 3.5.5 on Wed Mar 06 2019 14:31:23 GMT+0200 (EET) using the docdash theme. + Documentation generated by JSDoc 3.5.5 on Sun Apr 07 2019 11:48:14 GMT+0300 (EEST) using the docdash theme.
diff --git a/docs/bowser.js.html b/docs/bowser.js.html index a3c551b..005f8b9 100644 --- a/docs/bowser.js.html +++ b/docs/bowser.js.html @@ -26,7 +26,7 @@
@@ -105,7 +105,7 @@ export default Bowser;
- Documentation generated by JSDoc 3.5.5 on Wed Mar 06 2019 14:31:23 GMT+0200 (EET) using the docdash theme. + Documentation generated by JSDoc 3.5.5 on Sun Apr 07 2019 11:48:14 GMT+0300 (EEST) using the docdash theme.
diff --git a/docs/global.html b/docs/global.html index 6b7e103..73ac0ef 100644 --- a/docs/global.html +++ b/docs/global.html @@ -26,7 +26,7 @@
@@ -133,7 +133,7 @@
Source:
@@ -296,6 +296,162 @@ +

getBrowserAlias(browserName) → {string}

+ + + + + + +
+ + +
Source:
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+

Get short version/alias for a browser name

+
+ + + + + + + + + +
Example
+ +
getBrowserAlias('Microsoft Edge') // edge
+ + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
browserName + + +string + + + +
+ + + + + + + + + + + + + + +
Returns:
+ + + + +
+
+ Type +
+
+ +string + + +
+
+ + + + + + + + +

getFirstMatch(regexp, ua) → {Array|Object|*|boolean|string}

@@ -308,7 +464,7 @@
Source:
@@ -494,7 +650,7 @@
Source:
@@ -675,7 +831,7 @@
Source:
@@ -831,7 +987,7 @@
Source:
@@ -1005,7 +1161,7 @@
Source:
@@ -1839,7 +1995,7 @@ like "iPhone" or "Kindle Fire HD 7"
- Documentation generated by JSDoc 3.5.5 on Wed Mar 06 2019 14:31:23 GMT+0200 (EET) using the docdash theme. + Documentation generated by JSDoc 3.5.5 on Sun Apr 07 2019 11:48:14 GMT+0300 (EEST) using the docdash theme.
diff --git a/docs/index.html b/docs/index.html index 6a8be54..71f986f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -26,7 +26,7 @@
@@ -136,10 +136,13 @@ const isValidBrowser = browser.satisfies({ });

Settings for any particular OS or platform has more priority and redefines settings of standalone browsers. Thus, you can define OS or platform specific rules and they will have more priority in the end.

More of API and possibilities you will find in the docs folder.

-

Similar Projects