@pratham.raval/browser-core 6.22.4 → 6.22.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,122 +1,4 @@
1
1
  "use strict";
2
- // // Exported only for tests
3
- // export const enum Browser {
4
- // CHROMIUM,
5
- // SAFARI,
6
- // OTHER,
7
- // }
8
- //
9
- // export function isChromium() {
10
- // return detectBrowserCached() === Browser.CHROMIUM
11
- // }
12
- //
13
- // export function isSafari() {
14
- // return detectBrowserCached() === Browser.SAFARI
15
- // }
16
- //
17
- // let browserCache: Browser | undefined
18
- // function detectBrowserCached() {
19
- // return browserCache ?? (browserCache = detectBrowser())
20
- // }
21
- //
22
- // // Exported only for tests
23
- // export function detectBrowser(browserWindow: Window = window) {
24
- // const userAgent = browserWindow.navigator.userAgent
25
- // if ((browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
26
- // return Browser.CHROMIUM
27
- // }
28
- //
29
- // if (
30
- // // navigator.vendor is deprecated, but it is the most resilient way we found to detect
31
- // // "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
32
- // // useragent test as a semi-working fallback.
33
- // browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
34
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))
35
- // ) {
36
- // return Browser.SAFARI
37
- // }
38
- //
39
- // return Browser.OTHER
40
- // }
41
- //
42
- // /**
43
- // * Get detailed browser name for X-Browser-Name header
44
- // * Returns one of: Chrome, Firefox, Edge, Opera, Safari, other
45
- // */
46
- // let detailedBrowserNameCache: string | undefined
47
- // export function getDetailedBrowserName(browserWindow: Window = window): string {
48
- // return detailedBrowserNameCache ?? (detailedBrowserNameCache = detectDetailedBrowserName(browserWindow))
49
- // }
50
- //
51
- // // Exported only for tests
52
- // export function detectDetailedBrowserName(browserWindow: Window = window): string {
53
- // // Try Client Hints API first for more accurate detection
54
- // const clientHintsBrowser = parseClientHints(browserWindow)
55
- // if (clientHintsBrowser) {
56
- // return clientHintsBrowser
57
- // }
58
- //
59
- // // Fallback to user agent parsing
60
- // return parseUserAgent(browserWindow)
61
- // }
62
- //
63
- // function parseClientHints(browserWindow: Window = window): string {
64
- //
65
- // // fallback to userAgent
66
- // const ua = browserWindow.navigator.userAgent
67
- //
68
- // if (/edg/i.test(ua)) {
69
- // return 'Edge';
70
- // }
71
- // if (/opr|opera/i.test(ua)) {return 'Opera'}
72
- // if (/chrome/i.test(ua)) {return 'Chrome'}
73
- // if (/safari/i.test(ua)) {return 'Safari'}
74
- // if (/firefox/i.test(ua)) {return 'Firefox'}
75
- //
76
- // return 'other'
77
- // }
78
- //
79
- // function parseUserAgent(browserWindow: Window = window): string {
80
- // const userAgent = browserWindow.navigator.userAgent
81
- //
82
- // // Firefox detection
83
- // if (/Firefox\//i.test(userAgent)) {
84
- // return 'Firefox'
85
- // }
86
- //
87
- // // Safari detection (must come before Chrome check)
88
- // if (
89
- // (browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
90
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent)))
91
- // ) {
92
- // return 'Safari'
93
- // }
94
- //
95
- // // Chrome-based browsers detection
96
- // if (/Chrome\//i.test(userAgent) || (browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
97
- // // Edge detection
98
- // if (/Edg\//i.test(userAgent)) {
99
- // return 'Edge'
100
- // }
101
- //
102
- // // Opera detection
103
- // if (/OPR\//i.test(userAgent) || /Opera\//i.test(userAgent)) {
104
- // return 'Opera'
105
- // }
106
- //
107
- // // Brave detection (fallback - Brave shows as Chrome in user agent)
108
- // // Note: This is less reliable than Client Hints, but better than nothing
109
- // if (/Brave\//i.test(userAgent)) {
110
- // return 'other'
111
- // }
112
- //
113
- // // Default Chrome detection
114
- // return 'Chrome'
115
- // }
116
- //
117
- // // All other browsers
118
- // return 'other'
119
- // }
120
2
  Object.defineProperty(exports, "__esModule", { value: true });
121
3
  exports.isChromium = isChromium;
122
4
  exports.isSafari = isSafari;
@@ -1 +1 @@
1
- {"version":3,"file":"browserDetection.js","sourceRoot":"","sources":["../../../src/tools/utils/browserDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browserDetection.js","sourceRoot":"","sources":["../../../src/tools/utils/browserDetection.ts"],"names":[],"mappings":";;AAUA,gCAEC;AAED,4BAEC;AAQD,sCAiBC;AAQD,wDAKC;AAED,8DAQC;AAhED,uIAAuI;AACvI,+CAAwC;AASxC,SAAgB,UAAU;IACxB,OAAO,mBAAmB,EAAE,6BAAqB,CAAA;AACnD,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO,mBAAmB,EAAE,2BAAmB,CAAA;AACjD,CAAC;AAED,IAAI,YAAiC,CAAA;AACrC,SAAS,mBAAmB;IAC1B,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,0BAA0B;AAC1B,SAAgB,aAAa,CAAC,gBAAwB,MAAM;;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IACnD,IAAK,aAAqB,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,gCAAuB;IACzB,CAAC;IAED;IACE,sFAAsF;IACtF,0FAA0F;IAC1F,6CAA6C;IAC7C,CAAA,MAAA,aAAa,CAAC,SAAS,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,MAAK,CAAC;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,CAAC;QACD,8BAAqB;IACvB,CAAC;IAED,6BAAoB;AACtB,CAAC;AAED;;;GAGG;AACH,IAAI,wBAA4C,CAAA;AAEhD,SAAgB,sBAAsB,CAAC,gBAAwB,MAAM;IACnE,OAAO,CACL,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GACxB,CAAC,wBAAwB,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC,CACtE,CAAA;AACH,CAAC;AAED,SAAgB,yBAAyB,CAAC,gBAAwB,MAAM;IACtE,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,uBAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,4CAA4C;IAC5C,kEAAkE;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAA;AACjD,CAAC"}
@@ -1,121 +1,3 @@
1
- // // Exported only for tests
2
- // export const enum Browser {
3
- // CHROMIUM,
4
- // SAFARI,
5
- // OTHER,
6
- // }
7
- //
8
- // export function isChromium() {
9
- // return detectBrowserCached() === Browser.CHROMIUM
10
- // }
11
- //
12
- // export function isSafari() {
13
- // return detectBrowserCached() === Browser.SAFARI
14
- // }
15
- //
16
- // let browserCache: Browser | undefined
17
- // function detectBrowserCached() {
18
- // return browserCache ?? (browserCache = detectBrowser())
19
- // }
20
- //
21
- // // Exported only for tests
22
- // export function detectBrowser(browserWindow: Window = window) {
23
- // const userAgent = browserWindow.navigator.userAgent
24
- // if ((browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
25
- // return Browser.CHROMIUM
26
- // }
27
- //
28
- // if (
29
- // // navigator.vendor is deprecated, but it is the most resilient way we found to detect
30
- // // "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
31
- // // useragent test as a semi-working fallback.
32
- // browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
33
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))
34
- // ) {
35
- // return Browser.SAFARI
36
- // }
37
- //
38
- // return Browser.OTHER
39
- // }
40
- //
41
- // /**
42
- // * Get detailed browser name for X-Browser-Name header
43
- // * Returns one of: Chrome, Firefox, Edge, Opera, Safari, other
44
- // */
45
- // let detailedBrowserNameCache: string | undefined
46
- // export function getDetailedBrowserName(browserWindow: Window = window): string {
47
- // return detailedBrowserNameCache ?? (detailedBrowserNameCache = detectDetailedBrowserName(browserWindow))
48
- // }
49
- //
50
- // // Exported only for tests
51
- // export function detectDetailedBrowserName(browserWindow: Window = window): string {
52
- // // Try Client Hints API first for more accurate detection
53
- // const clientHintsBrowser = parseClientHints(browserWindow)
54
- // if (clientHintsBrowser) {
55
- // return clientHintsBrowser
56
- // }
57
- //
58
- // // Fallback to user agent parsing
59
- // return parseUserAgent(browserWindow)
60
- // }
61
- //
62
- // function parseClientHints(browserWindow: Window = window): string {
63
- //
64
- // // fallback to userAgent
65
- // const ua = browserWindow.navigator.userAgent
66
- //
67
- // if (/edg/i.test(ua)) {
68
- // return 'Edge';
69
- // }
70
- // if (/opr|opera/i.test(ua)) {return 'Opera'}
71
- // if (/chrome/i.test(ua)) {return 'Chrome'}
72
- // if (/safari/i.test(ua)) {return 'Safari'}
73
- // if (/firefox/i.test(ua)) {return 'Firefox'}
74
- //
75
- // return 'other'
76
- // }
77
- //
78
- // function parseUserAgent(browserWindow: Window = window): string {
79
- // const userAgent = browserWindow.navigator.userAgent
80
- //
81
- // // Firefox detection
82
- // if (/Firefox\//i.test(userAgent)) {
83
- // return 'Firefox'
84
- // }
85
- //
86
- // // Safari detection (must come before Chrome check)
87
- // if (
88
- // (browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
89
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent)))
90
- // ) {
91
- // return 'Safari'
92
- // }
93
- //
94
- // // Chrome-based browsers detection
95
- // if (/Chrome\//i.test(userAgent) || (browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
96
- // // Edge detection
97
- // if (/Edg\//i.test(userAgent)) {
98
- // return 'Edge'
99
- // }
100
- //
101
- // // Opera detection
102
- // if (/OPR\//i.test(userAgent) || /Opera\//i.test(userAgent)) {
103
- // return 'Opera'
104
- // }
105
- //
106
- // // Brave detection (fallback - Brave shows as Chrome in user agent)
107
- // // Note: This is less reliable than Client Hints, but better than nothing
108
- // if (/Brave\//i.test(userAgent)) {
109
- // return 'other'
110
- // }
111
- //
112
- // // Default Chrome detection
113
- // return 'Chrome'
114
- // }
115
- //
116
- // // All other browsers
117
- // return 'other'
118
- // }
119
1
  // eslint-disable-next-line import/no-extraneous-dependencies, local-rules/disallow-side-effects, local-rules/enforce-prod-deps-imports
120
2
  import { UAParser } from 'ua-parser-js';
121
3
  export function isChromium() {
@@ -1 +1 @@
1
- {"version":3,"file":"browserDetection.js","sourceRoot":"","sources":["../../../src/tools/utils/browserDetection.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,8BAA8B;AAC9B,cAAc;AACd,YAAY;AACZ,WAAW;AACX,IAAI;AACJ,EAAE;AACF,iCAAiC;AACjC,sDAAsD;AACtD,IAAI;AACJ,EAAE;AACF,+BAA+B;AAC/B,oDAAoD;AACpD,IAAI;AACJ,EAAE;AACF,wCAAwC;AACxC,mCAAmC;AACnC,4DAA4D;AAC5D,IAAI;AACJ,EAAE;AACF,6BAA6B;AAC7B,kEAAkE;AAClE,wDAAwD;AACxD,6EAA6E;AAC7E,8BAA8B;AAC9B,MAAM;AACN,EAAE;AACF,SAAS;AACT,6FAA6F;AAC7F,iGAAiG;AACjG,oDAAoD;AACpD,gEAAgE;AAChE,wEAAwE;AACxE,QAAQ;AACR,4BAA4B;AAC5B,MAAM;AACN,EAAE;AACF,yBAAyB;AACzB,IAAI;AACJ,EAAE;AACF,MAAM;AACN,yDAAyD;AACzD,iEAAiE;AACjE,MAAM;AACN,mDAAmD;AACnD,mFAAmF;AACnF,6GAA6G;AAC7G,IAAI;AACJ,EAAE;AACF,6BAA6B;AAC7B,sFAAsF;AACtF,8DAA8D;AAC9D,+DAA+D;AAC/D,8BAA8B;AAC9B,gCAAgC;AAChC,MAAM;AACN,EAAE;AACF,sCAAsC;AACtC,yCAAyC;AACzC,IAAI;AACJ,EAAE;AACF,sEAAsE;AACtE,EAAE;AACF,6BAA6B;AAC7B,iDAAiD;AACjD,EAAE;AACF,2BAA2B;AAC3B,qBAAqB;AACrB,MAAM;AACN,gDAAgD;AAChD,8CAA8C;AAC9C,8CAA8C;AAC9C,gDAAgD;AAChD,EAAE;AACF,mBAAmB;AACnB,IAAI;AACJ,EAAE;AACF,oEAAoE;AACpE,wDAAwD;AACxD,EAAE;AACF,yBAAyB;AACzB,wCAAwC;AACxC,uBAAuB;AACvB,MAAM;AACN,EAAE;AACF,wDAAwD;AACxD,SAAS;AACT,iEAAiE;AACjE,2EAA2E;AAC3E,QAAQ;AACR,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,uCAAuC;AACvC,4GAA4G;AAC5G,wBAAwB;AACxB,sCAAsC;AACtC,sBAAsB;AACtB,QAAQ;AACR,EAAE;AACF,yBAAyB;AACzB,oEAAoE;AACpE,uBAAuB;AACvB,QAAQ;AACR,EAAE;AACF,0EAA0E;AAC1E,gFAAgF;AAChF,wCAAwC;AACxC,uBAAuB;AACvB,QAAQ;AACR,EAAE;AACF,kCAAkC;AAClC,sBAAsB;AACtB,MAAM;AACN,EAAE;AACF,0BAA0B;AAC1B,mBAAmB;AACnB,IAAI;AAGJ,uIAAuI;AACvI,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AASxC,MAAM,UAAU,UAAU;IACxB,OAAO,mBAAmB,EAAE,6BAAqB,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,mBAAmB,EAAE,2BAAmB,CAAA;AACjD,CAAC;AAED,IAAI,YAAiC,CAAA;AACrC,SAAS,mBAAmB;IAC1B,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,aAAa,CAAC,gBAAwB,MAAM;;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IACnD,IAAK,aAAqB,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,gCAAuB;IACzB,CAAC;IAED;IACE,sFAAsF;IACtF,0FAA0F;IAC1F,6CAA6C;IAC7C,CAAA,MAAA,aAAa,CAAC,SAAS,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,MAAK,CAAC;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,CAAC;QACD,8BAAqB;IACvB,CAAC;IAED,6BAAoB;AACtB,CAAC;AAED;;;GAGG;AACH,IAAI,wBAA4C,CAAA;AAEhD,MAAM,UAAU,sBAAsB,CAAC,gBAAwB,MAAM;IACnE,OAAO,CACL,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GACxB,CAAC,wBAAwB,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC,CACtE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,gBAAwB,MAAM;IACtE,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,4CAA4C;IAC5C,kEAAkE;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAA;AACjD,CAAC"}
1
+ {"version":3,"file":"browserDetection.js","sourceRoot":"","sources":["../../../src/tools/utils/browserDetection.ts"],"names":[],"mappings":"AAAA,uIAAuI;AACvI,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AASxC,MAAM,UAAU,UAAU;IACxB,OAAO,mBAAmB,EAAE,6BAAqB,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,mBAAmB,EAAE,2BAAmB,CAAA;AACjD,CAAC;AAED,IAAI,YAAiC,CAAA;AACrC,SAAS,mBAAmB;IAC1B,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,aAAa,CAAC,gBAAwB,MAAM;;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IACnD,IAAK,aAAqB,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,gCAAuB;IACzB,CAAC;IAED;IACE,sFAAsF;IACtF,0FAA0F;IAC1F,6CAA6C;IAC7C,CAAA,MAAA,aAAa,CAAC,SAAS,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,MAAK,CAAC;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,CAAC;QACD,8BAAqB;IACvB,CAAC;IAED,6BAAoB;AACtB,CAAC;AAED;;;GAGG;AACH,IAAI,wBAA4C,CAAA;AAEhD,MAAM,UAAU,sBAAsB,CAAC,gBAAwB,MAAM;IACnE,OAAO,CACL,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GACxB,CAAC,wBAAwB,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC,CACtE,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,gBAAwB,MAAM;IACtE,MAAM,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,4CAA4C;IAC5C,kEAAkE;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAA;AACjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pratham.raval/browser-core",
3
- "version": "6.22.4",
3
+ "version": "6.22.5",
4
4
  "license": "Apache-2.0",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -1,123 +1,3 @@
1
- // // Exported only for tests
2
- // export const enum Browser {
3
- // CHROMIUM,
4
- // SAFARI,
5
- // OTHER,
6
- // }
7
- //
8
- // export function isChromium() {
9
- // return detectBrowserCached() === Browser.CHROMIUM
10
- // }
11
- //
12
- // export function isSafari() {
13
- // return detectBrowserCached() === Browser.SAFARI
14
- // }
15
- //
16
- // let browserCache: Browser | undefined
17
- // function detectBrowserCached() {
18
- // return browserCache ?? (browserCache = detectBrowser())
19
- // }
20
- //
21
- // // Exported only for tests
22
- // export function detectBrowser(browserWindow: Window = window) {
23
- // const userAgent = browserWindow.navigator.userAgent
24
- // if ((browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
25
- // return Browser.CHROMIUM
26
- // }
27
- //
28
- // if (
29
- // // navigator.vendor is deprecated, but it is the most resilient way we found to detect
30
- // // "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
31
- // // useragent test as a semi-working fallback.
32
- // browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
33
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))
34
- // ) {
35
- // return Browser.SAFARI
36
- // }
37
- //
38
- // return Browser.OTHER
39
- // }
40
- //
41
- // /**
42
- // * Get detailed browser name for X-Browser-Name header
43
- // * Returns one of: Chrome, Firefox, Edge, Opera, Safari, other
44
- // */
45
- // let detailedBrowserNameCache: string | undefined
46
- // export function getDetailedBrowserName(browserWindow: Window = window): string {
47
- // return detailedBrowserNameCache ?? (detailedBrowserNameCache = detectDetailedBrowserName(browserWindow))
48
- // }
49
- //
50
- // // Exported only for tests
51
- // export function detectDetailedBrowserName(browserWindow: Window = window): string {
52
- // // Try Client Hints API first for more accurate detection
53
- // const clientHintsBrowser = parseClientHints(browserWindow)
54
- // if (clientHintsBrowser) {
55
- // return clientHintsBrowser
56
- // }
57
- //
58
- // // Fallback to user agent parsing
59
- // return parseUserAgent(browserWindow)
60
- // }
61
- //
62
- // function parseClientHints(browserWindow: Window = window): string {
63
- //
64
- // // fallback to userAgent
65
- // const ua = browserWindow.navigator.userAgent
66
- //
67
- // if (/edg/i.test(ua)) {
68
- // return 'Edge';
69
- // }
70
- // if (/opr|opera/i.test(ua)) {return 'Opera'}
71
- // if (/chrome/i.test(ua)) {return 'Chrome'}
72
- // if (/safari/i.test(ua)) {return 'Safari'}
73
- // if (/firefox/i.test(ua)) {return 'Firefox'}
74
- //
75
- // return 'other'
76
- // }
77
- //
78
- // function parseUserAgent(browserWindow: Window = window): string {
79
- // const userAgent = browserWindow.navigator.userAgent
80
- //
81
- // // Firefox detection
82
- // if (/Firefox\//i.test(userAgent)) {
83
- // return 'Firefox'
84
- // }
85
- //
86
- // // Safari detection (must come before Chrome check)
87
- // if (
88
- // (browserWindow.navigator.vendor?.indexOf('Apple') === 0 ||
89
- // (/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent)))
90
- // ) {
91
- // return 'Safari'
92
- // }
93
- //
94
- // // Chrome-based browsers detection
95
- // if (/Chrome\//i.test(userAgent) || (browserWindow as any).chrome || /HeadlessChrome/.test(userAgent)) {
96
- // // Edge detection
97
- // if (/Edg\//i.test(userAgent)) {
98
- // return 'Edge'
99
- // }
100
- //
101
- // // Opera detection
102
- // if (/OPR\//i.test(userAgent) || /Opera\//i.test(userAgent)) {
103
- // return 'Opera'
104
- // }
105
- //
106
- // // Brave detection (fallback - Brave shows as Chrome in user agent)
107
- // // Note: This is less reliable than Client Hints, but better than nothing
108
- // if (/Brave\//i.test(userAgent)) {
109
- // return 'other'
110
- // }
111
- //
112
- // // Default Chrome detection
113
- // return 'Chrome'
114
- // }
115
- //
116
- // // All other browsers
117
- // return 'other'
118
- // }
119
-
120
-
121
1
  // eslint-disable-next-line import/no-extraneous-dependencies, local-rules/disallow-side-effects, local-rules/enforce-prod-deps-imports
122
2
  import { UAParser } from 'ua-parser-js';
123
3