From e954f19b5c9627a6f91f85eb1ac7d7ea48b21c5b Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Tue, 5 Nov 2024 10:46:48 +0700 Subject: [PATCH] Move `isFrozenUA()` & `isStandalonePWA()` to its own npm module --- package.json | 4 +++- src/helpers/ua-parser-helpers.js | 16 +++------------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 7674e9273..c0f93cd79 100755 --- a/package.json +++ b/package.json @@ -211,7 +211,9 @@ "test:playwright": "playwright test" }, "dependencies": { - "detect-europe-js": "^0.1.1" + "detect-europe-js": "^0.1.1", + "is-standalone-pwa": "^0.1.0", + "ua-is-frozen": "^0.1.1" }, "devDependencies": { "@babel/parser": "7.15.8", diff --git a/src/helpers/ua-parser-helpers.js b/src/helpers/ua-parser-helpers.js index d5e35a00c..c8f6925b7 100644 --- a/src/helpers/ua-parser-helpers.js +++ b/src/helpers/ua-parser-helpers.js @@ -7,9 +7,11 @@ /*jshint esversion: 6 */ -const { CPU, OS, Engine } = require('../enums/ua-parser-enums'); const { UAParser } = require('../main/ua-parser'); +const { CPU, OS, Engine } = require('../enums/ua-parser-enums'); const { isFromEU } = require('detect-europe-js'); +const { isFrozenUA } = require('ua-is-frozen'); +const { isStandalonePWA } = require('is-standalone-pwa'); const getDeviceVendor = (model) => UAParser(`Mozilla/5.0 (Linux; Android 10; ${model}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.0.0 Safari/537.36`).device.vendor; @@ -40,18 +42,6 @@ const isChromeFamily = (res) => res.engine.is(Engine.BLINK); const isElectron = () => !!(process?.versions?.hasOwnProperty('electron') || // node.js / electron\//i.test(navigator?.userAgent)); // browser -const isFrozenUA = (ua) => /^Mozilla\/5\.0 \((Windows NT 10\.0; Win64; x64|Macintosh; Intel Mac OS X 10_15_7|X11; Linux x86_64|X11; CrOS x86_64 14541\.0\.0|Fuchsia|Linux; Android 10; K)\) AppleWebKit\/537\.36 \(KHTML, like Gecko\) Chrome\/\d+\.0\.0\.0 (Mobile )?Safari\/537\.36/.test(ua); - -const isStandalonePWA = () => window && (window.matchMedia('(display-mode: standalone)').matches || - // iOS - navigator.standalone || - // Android - document.referrer.startsWith('android-app://') || - // Windows - window.Windows || - /trident.+(msapphost|webview)\//i.test(navigator.userAgent) || - document.referrer.startsWith('app-info://platform/microsoft-store')); - module.exports = { getDeviceVendor, isAppleSilicon,