chayns-api 1.1.3 → 1.1.4

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.
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getScreenSize = exports.getClientDeviceInfo = exports.default = void 0;
7
- var _detectBrowser = require("detect-browser");
7
+ var _uaParserJs = require("ua-parser-js");
8
8
  var _IChaynsReact = require("../types/IChaynsReact");
9
9
  const getDeviceInfo = (userAgent, acceptHeader) => {
10
- var _match$groups, _match$groups2, _customMatch$groups, _parsedUA$version$spl, _parsedUA$version;
11
- const parsedUA = (0, _detectBrowser.parseUserAgent)(userAgent);
10
+ var _match$groups, _match$groups2, _customMatch$groups, _browser$version$spli, _browser$version, _uaParser$getOS;
11
+ const uaParser = new _uaParserJs.UAParser(userAgent);
12
12
  let appName = _IChaynsReact.AppName.Unknown;
13
13
  const match = /(?:my)?chayns\/(?<version>\d+).*(?<siteId>\d{5}-\d{5})/i.exec(userAgent);
14
14
  const customMatch = /\s(?<name>intercom|sidekick|team)\/(?<version>\d+)/i.exec(userAgent);
@@ -32,10 +32,11 @@ const getDeviceInfo = (userAgent, acceptHeader) => {
32
32
  appVersion = Number.parseInt(customMatch.groups.version, 10);
33
33
  }
34
34
  const result = {};
35
+ const browser = uaParser.getBrowser();
35
36
  result.browser = {
36
- name: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.name,
37
- version: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.version,
38
- majorVersion: Number.parseInt((_parsedUA$version$spl = parsedUA === null || parsedUA === void 0 || (_parsedUA$version = parsedUA.version) === null || _parsedUA$version === void 0 ? void 0 : _parsedUA$version.split('.')[0]) !== null && _parsedUA$version$spl !== void 0 ? _parsedUA$version$spl : '0', 10) || 0,
37
+ name: browser === null || browser === void 0 ? void 0 : browser.name,
38
+ version: browser === null || browser === void 0 ? void 0 : browser.version,
39
+ majorVersion: Number.parseInt((_browser$version$spli = browser === null || browser === void 0 || (_browser$version = browser.version) === null || _browser$version === void 0 ? void 0 : _browser$version.split('.')[0]) !== null && _browser$version$spli !== void 0 ? _browser$version$spli : '0', 10) || 0,
39
40
  isWebPSupported: acceptHeader.includes('image/webp')
40
41
  };
41
42
  result.app = {
@@ -46,7 +47,7 @@ const getDeviceInfo = (userAgent, acceptHeader) => {
46
47
  };
47
48
  result.imei = undefined; // TODO
48
49
  result.accessToken = undefined; // TODO
49
- result.os = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os;
50
+ result.os = (_uaParser$getOS = uaParser.getOS()) === null || _uaParser$getOS === void 0 ? void 0 : _uaParser$getOS.name;
50
51
  if (typeof window !== 'undefined') {
51
52
  result.screenSize = getScreenSize(window.innerWidth);
52
53
  result.isTouch = getClientDeviceInfo().isTouch;
@@ -22,7 +22,7 @@ const isAppCallSupported = ({
22
22
  if (device.os && ['iOS', 'Mac OS'].includes(device.os)) {
23
23
  return device.app.callVersion >= minIOSVersion;
24
24
  }
25
- if (device.os === 'Android OS') {
25
+ if (device.os === 'Android') {
26
26
  return device.app.callVersion >= minAndroidVersion;
27
27
  }
28
28
  return false;
@@ -1,8 +1,8 @@
1
- import { parseUserAgent } from 'detect-browser';
1
+ import { UAParser } from 'ua-parser-js';
2
2
  import { AppName, ScreenSize } from '../types/IChaynsReact';
3
3
  const getDeviceInfo = (userAgent, acceptHeader) => {
4
- var _match$groups, _match$groups2, _customMatch$groups, _parsedUA$version$spl, _parsedUA$version;
5
- const parsedUA = parseUserAgent(userAgent);
4
+ var _match$groups, _match$groups2, _customMatch$groups, _browser$version$spli, _browser$version, _uaParser$getOS;
5
+ const uaParser = new UAParser(userAgent);
6
6
  let appName = AppName.Unknown;
7
7
  const match = /(?:my)?chayns\/(?<version>\d+).*(?<siteId>\d{5}-\d{5})/i.exec(userAgent);
8
8
  const customMatch = /\s(?<name>intercom|sidekick|team)\/(?<version>\d+)/i.exec(userAgent);
@@ -26,10 +26,11 @@ const getDeviceInfo = (userAgent, acceptHeader) => {
26
26
  appVersion = Number.parseInt(customMatch.groups.version, 10);
27
27
  }
28
28
  const result = {};
29
+ const browser = uaParser.getBrowser();
29
30
  result.browser = {
30
- name: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.name,
31
- version: parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.version,
32
- majorVersion: Number.parseInt((_parsedUA$version$spl = parsedUA === null || parsedUA === void 0 || (_parsedUA$version = parsedUA.version) === null || _parsedUA$version === void 0 ? void 0 : _parsedUA$version.split('.')[0]) !== null && _parsedUA$version$spl !== void 0 ? _parsedUA$version$spl : '0', 10) || 0,
31
+ name: browser === null || browser === void 0 ? void 0 : browser.name,
32
+ version: browser === null || browser === void 0 ? void 0 : browser.version,
33
+ majorVersion: Number.parseInt((_browser$version$spli = browser === null || browser === void 0 || (_browser$version = browser.version) === null || _browser$version === void 0 ? void 0 : _browser$version.split('.')[0]) !== null && _browser$version$spli !== void 0 ? _browser$version$spli : '0', 10) || 0,
33
34
  isWebPSupported: acceptHeader.includes('image/webp')
34
35
  };
35
36
  result.app = {
@@ -40,7 +41,7 @@ const getDeviceInfo = (userAgent, acceptHeader) => {
40
41
  };
41
42
  result.imei = undefined; // TODO
42
43
  result.accessToken = undefined; // TODO
43
- result.os = parsedUA === null || parsedUA === void 0 ? void 0 : parsedUA.os;
44
+ result.os = (_uaParser$getOS = uaParser.getOS()) === null || _uaParser$getOS === void 0 ? void 0 : _uaParser$getOS.name;
44
45
  if (typeof window !== 'undefined') {
45
46
  result.screenSize = getScreenSize(window.innerWidth);
46
47
  result.isTouch = getClientDeviceInfo().isTouch;
@@ -16,7 +16,7 @@ export const isAppCallSupported = _ref => {
16
16
  if (device.os && ['iOS', 'Mac OS'].includes(device.os)) {
17
17
  return device.app.callVersion >= minIOSVersion;
18
18
  }
19
- if (device.os === 'Android OS') {
19
+ if (device.os === 'Android') {
20
20
  return device.app.callVersion >= minAndroidVersion;
21
21
  }
22
22
  return false;
@@ -232,6 +232,10 @@ export declare const getParameters: () => {
232
232
  };
233
233
  export declare const getPages: () => import("../types/IChaynsReact").Page[];
234
234
  export declare const getEnvironment: () => {
235
+ /**
236
+ * Removes visibility change listener.
237
+ * @category Event listener
238
+ */
235
239
  buildEnvironment: import("../types/IChaynsReact").Environment;
236
240
  runtimeEnvironment: string | import("../types/IChaynsReact").RuntimeEnviroment;
237
241
  };
@@ -250,6 +254,10 @@ export declare const parameters: {
250
254
  };
251
255
  export declare const pages: import("../types/IChaynsReact").Page[];
252
256
  export declare const environment: {
257
+ /**
258
+ * Removes visibility change listener.
259
+ * @category Event listener
260
+ */
253
261
  buildEnvironment: import("../types/IChaynsReact").Environment;
254
262
  runtimeEnvironment: string | import("../types/IChaynsReact").RuntimeEnviroment;
255
263
  };
@@ -1,4 +1,4 @@
1
- import { Browser, OperatingSystem } from 'detect-browser';
1
+ import { IBrowser } from 'ua-parser-js';
2
2
  import DialogHandler from '../handler/DialogHandler';
3
3
  import { DialogButtonOld, SelectDialogItem } from './dialog';
4
4
  export type DialogButton = {
@@ -176,14 +176,14 @@ export type ChaynsApiDevice = {
176
176
  storePackageName?: string;
177
177
  };
178
178
  browser?: {
179
- name?: Browser | 'bot' | null;
179
+ name?: IBrowser["name"] | 'bot' | null;
180
180
  version?: string | null;
181
181
  majorVersion: number;
182
182
  isWebPSupported: boolean;
183
183
  };
184
184
  imei?: string;
185
185
  accessToken?: string;
186
- os?: OperatingSystem | null;
186
+ os?: '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' | null;
187
187
  isTouch: boolean;
188
188
  screenSize: ScreenSize;
189
189
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chayns-api",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "description": "new chayns api",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -37,13 +37,13 @@
37
37
  "dependencies": {
38
38
  "@types/semver": "^7.3.9",
39
39
  "comlink": "4.3.1",
40
- "detect-browser": "^5.2.1",
41
40
  "htmlescape": "^1.1.1",
42
41
  "lodash.throttle": "^4.1.1",
43
42
  "prop-types": "^15.7.2",
44
43
  "scheduler": "^0.20.2",
45
44
  "semaphore-async-await": "^1.5.1",
46
45
  "semver": "^7.3.5",
46
+ "ua-parser-js": "^1.0.38",
47
47
  "use-context-selector": "^1.3.9",
48
48
  "util": "^0.12.5"
49
49
  },
@@ -60,6 +60,7 @@
60
60
  "@types/prop-types": "^15.7.3",
61
61
  "@types/react": "^18.0.28",
62
62
  "@types/react-dom": "^18.0.10",
63
+ "@types/ua-parser-js": "^0.7.39",
63
64
  "@typescript-eslint/parser": "^5.50.0",
64
65
  "chayns-toolkit": "^2.0.8",
65
66
  "concurrently": "^7.6.0",