@leanbase.com/js 0.1.2 → 0.2.0-alpha.0

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.
Files changed (136) hide show
  1. package/dist/autocapture-utils.d.ts +17 -0
  2. package/dist/autocapture.d.ts +35 -0
  3. package/dist/config.d.ts +5 -0
  4. package/dist/constants.d.ts +54 -0
  5. package/dist/entrypoints/main.cjs.d.ts +4 -0
  6. package/dist/entrypoints/module.es.d.ts +4 -0
  7. package/dist/extensions/rageclick.d.ts +9 -0
  8. package/dist/iife.d.ts +19 -0
  9. package/dist/index.d.ts +2 -779
  10. package/dist/leanbase-logger.d.ts +6 -0
  11. package/dist/leanbase-persistence.d.ts +64 -0
  12. package/dist/leanbase.d.ts +49 -0
  13. package/dist/leanbase.iife.js +1 -4745
  14. package/dist/leanbase.iife.js.map +1 -1
  15. package/dist/main.js +2 -0
  16. package/dist/main.js.map +1 -0
  17. package/dist/module.d.ts +780 -0
  18. package/dist/module.js +2 -0
  19. package/dist/module.js.map +1 -0
  20. package/dist/page-view.d.ts +29 -0
  21. package/dist/scroll-manager.d.ts +21 -0
  22. package/dist/session-props.d.ts +32 -0
  23. package/dist/sessionid.d.ts +50 -0
  24. package/dist/storage.d.ts +24 -0
  25. package/{src/types.ts → dist/types.d.ts} +145 -235
  26. package/dist/utils/blocked-uas.d.ts +17 -0
  27. package/dist/utils/element-utils.d.ts +5 -0
  28. package/dist/utils/event-utils.d.ts +22 -0
  29. package/dist/utils/index.d.ts +44 -0
  30. package/dist/utils/request-utils.d.ts +12 -0
  31. package/dist/utils/simple-event-emitter.d.ts +6 -0
  32. package/dist/utils/user-agent-utils.d.ts +18 -0
  33. package/dist/uuidv7.d.ts +43 -0
  34. package/dist/version.d.ts +1 -0
  35. package/lib/autocapture-utils.d.ts +17 -0
  36. package/{src/autocapture-utils.ts → lib/autocapture-utils.js} +196 -280
  37. package/lib/autocapture-utils.js.map +1 -0
  38. package/lib/autocapture.d.ts +35 -0
  39. package/lib/autocapture.js +311 -0
  40. package/lib/autocapture.js.map +1 -0
  41. package/lib/config.d.ts +5 -0
  42. package/lib/config.js +7 -0
  43. package/lib/config.js.map +1 -0
  44. package/lib/constants.d.ts +54 -0
  45. package/{src/constants.ts → lib/constants.js} +58 -55
  46. package/lib/constants.js.map +1 -0
  47. package/lib/entrypoints/main.cjs.d.ts +4 -0
  48. package/lib/entrypoints/main.cjs.js +3 -0
  49. package/lib/entrypoints/main.cjs.js.map +1 -0
  50. package/lib/entrypoints/module.es.d.ts +4 -0
  51. package/lib/entrypoints/module.es.js +3 -0
  52. package/lib/entrypoints/module.es.js.map +1 -0
  53. package/lib/extensions/rageclick.d.ts +9 -0
  54. package/lib/extensions/rageclick.js +27 -0
  55. package/lib/extensions/rageclick.js.map +1 -0
  56. package/lib/iife.d.ts +19 -0
  57. package/lib/iife.js +67 -0
  58. package/lib/iife.js.map +1 -0
  59. package/{src/index.ts → lib/index.d.ts} +2 -2
  60. package/lib/index.js +2 -0
  61. package/lib/index.js.map +1 -0
  62. package/lib/leanbase-logger.d.ts +6 -0
  63. package/lib/leanbase-logger.js +25 -0
  64. package/lib/leanbase-logger.js.map +1 -0
  65. package/lib/leanbase-persistence.d.ts +64 -0
  66. package/lib/leanbase-persistence.js +287 -0
  67. package/lib/leanbase-persistence.js.map +1 -0
  68. package/lib/leanbase.d.ts +49 -0
  69. package/lib/leanbase.js +294 -0
  70. package/lib/leanbase.js.map +1 -0
  71. package/lib/page-view.d.ts +29 -0
  72. package/lib/page-view.js +81 -0
  73. package/lib/page-view.js.map +1 -0
  74. package/lib/scroll-manager.d.ts +21 -0
  75. package/lib/scroll-manager.js +79 -0
  76. package/lib/scroll-manager.js.map +1 -0
  77. package/lib/session-props.d.ts +32 -0
  78. package/lib/session-props.js +73 -0
  79. package/lib/session-props.js.map +1 -0
  80. package/lib/sessionid.d.ts +50 -0
  81. package/{src/sessionid.ts → lib/sessionid.js} +128 -204
  82. package/lib/sessionid.js.map +1 -0
  83. package/lib/storage.d.ts +24 -0
  84. package/{src/storage.ts → lib/storage.js} +182 -225
  85. package/lib/storage.js.map +1 -0
  86. package/lib/types.d.ts +544 -0
  87. package/lib/types.js +7 -0
  88. package/lib/types.js.map +1 -0
  89. package/lib/utils/blocked-uas.d.ts +17 -0
  90. package/{src/utils/blocked-uas.ts → lib/utils/blocked-uas.js} +19 -48
  91. package/lib/utils/blocked-uas.js.map +1 -0
  92. package/lib/utils/element-utils.d.ts +5 -0
  93. package/{src/utils/element-utils.ts → lib/utils/element-utils.js} +13 -17
  94. package/lib/utils/element-utils.js.map +1 -0
  95. package/lib/utils/event-utils.d.ts +22 -0
  96. package/lib/utils/event-utils.js +258 -0
  97. package/lib/utils/event-utils.js.map +1 -0
  98. package/lib/utils/index.d.ts +44 -0
  99. package/lib/utils/index.js +183 -0
  100. package/lib/utils/index.js.map +1 -0
  101. package/lib/utils/request-utils.d.ts +12 -0
  102. package/lib/utils/request-utils.js +107 -0
  103. package/lib/utils/request-utils.js.map +1 -0
  104. package/lib/utils/simple-event-emitter.d.ts +6 -0
  105. package/lib/utils/simple-event-emitter.js +24 -0
  106. package/lib/utils/simple-event-emitter.js.map +1 -0
  107. package/lib/utils/user-agent-utils.d.ts +18 -0
  108. package/lib/utils/user-agent-utils.js +369 -0
  109. package/lib/utils/user-agent-utils.js.map +1 -0
  110. package/lib/uuidv7.d.ts +43 -0
  111. package/{src/uuidv7.ts → lib/uuidv7.js} +103 -131
  112. package/lib/uuidv7.js.map +1 -0
  113. package/lib/version.d.ts +1 -0
  114. package/lib/version.js +2 -0
  115. package/lib/version.js.map +1 -0
  116. package/package.json +23 -11
  117. package/dist/index.cjs +0 -3032
  118. package/dist/index.cjs.map +0 -1
  119. package/dist/index.mjs +0 -3030
  120. package/dist/index.mjs.map +0 -1
  121. package/src/autocapture.ts +0 -415
  122. package/src/config.ts +0 -8
  123. package/src/extensions/rageclick.ts +0 -34
  124. package/src/iife.ts +0 -87
  125. package/src/leanbase-logger.ts +0 -26
  126. package/src/leanbase-persistence.ts +0 -374
  127. package/src/leanbase.ts +0 -424
  128. package/src/page-view.ts +0 -124
  129. package/src/scroll-manager.ts +0 -103
  130. package/src/session-props.ts +0 -114
  131. package/src/utils/event-utils.ts +0 -304
  132. package/src/utils/index.ts +0 -222
  133. package/src/utils/request-utils.ts +0 -128
  134. package/src/utils/simple-event-emitter.ts +0 -27
  135. package/src/utils/user-agent-utils.ts +0 -357
  136. package/src/version.ts +0 -1
@@ -0,0 +1,183 @@
1
+ import { isFormData, isNull, isNullish, hasOwnProperty, isArray, isString, isNumber } from '@posthog/core';
2
+ const breaker = {};
3
+ export const ArrayProto = Array.prototype;
4
+ export const nativeForEach = ArrayProto.forEach;
5
+ export const nativeIndexOf = ArrayProto.indexOf;
6
+ const win = typeof window !== 'undefined' ? window : undefined;
7
+ const global = typeof globalThis !== 'undefined' ? globalThis : win;
8
+ export const navigator = global?.navigator;
9
+ export const document = global?.document;
10
+ export const location = global?.location;
11
+ export const fetch = global?.fetch;
12
+ export const XMLHttpRequest = global?.XMLHttpRequest && 'withCredentials' in new global.XMLHttpRequest() ? global.XMLHttpRequest : undefined;
13
+ export const AbortController = global?.AbortController;
14
+ export const userAgent = navigator?.userAgent;
15
+ export { win as window };
16
+ export function eachArray(obj, iterator, thisArg) {
17
+ if (isArray(obj)) {
18
+ if (nativeForEach && obj.forEach === nativeForEach) {
19
+ obj.forEach(iterator, thisArg);
20
+ }
21
+ else if ('length' in obj && obj.length === +obj.length) {
22
+ for (let i = 0, l = obj.length; i < l; i++) {
23
+ if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {
24
+ return;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ }
30
+ /**
31
+ * @param {*=} obj
32
+ * @param {function(...*)=} iterator
33
+ * @param {Object=} thisArg
34
+ */
35
+ export function each(obj, iterator, thisArg) {
36
+ if (isNullish(obj)) {
37
+ return;
38
+ }
39
+ if (isArray(obj)) {
40
+ return eachArray(obj, iterator, thisArg);
41
+ }
42
+ if (isFormData(obj)) {
43
+ for (const pair of obj.entries()) {
44
+ if (iterator.call(thisArg, pair[1], pair[0]) === breaker) {
45
+ return;
46
+ }
47
+ }
48
+ return;
49
+ }
50
+ for (const key in obj) {
51
+ if (hasOwnProperty.call(obj, key)) {
52
+ if (iterator.call(thisArg, obj[key], key) === breaker) {
53
+ return;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ export const extend = function (obj, ...args) {
59
+ eachArray(args, function (source) {
60
+ for (const prop in source) {
61
+ if (source[prop] !== void 0) {
62
+ obj[prop] = source[prop];
63
+ }
64
+ }
65
+ });
66
+ return obj;
67
+ };
68
+ export const extendArray = function (obj, ...args) {
69
+ eachArray(args, function (source) {
70
+ eachArray(source, function (item) {
71
+ obj.push(item);
72
+ });
73
+ });
74
+ return obj;
75
+ };
76
+ export const include = function (obj, target) {
77
+ let found = false;
78
+ if (isNull(obj)) {
79
+ return found;
80
+ }
81
+ if (nativeIndexOf && obj.indexOf === nativeIndexOf) {
82
+ return obj.indexOf(target) != -1;
83
+ }
84
+ each(obj, function (value) {
85
+ if (found || (found = value === target)) {
86
+ return breaker;
87
+ }
88
+ return;
89
+ });
90
+ return found;
91
+ };
92
+ /**
93
+ * Object.entries() polyfill
94
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
95
+ */
96
+ export function entries(obj) {
97
+ const ownProps = Object.keys(obj);
98
+ let i = ownProps.length;
99
+ const resArray = new Array(i); // preallocate the Array
100
+ while (i--) {
101
+ resArray[i] = [ownProps[i], obj[ownProps[i]]];
102
+ }
103
+ return resArray;
104
+ }
105
+ export function addEventListener(element, event, callback, options) {
106
+ const { capture = false, passive = true } = options ?? {};
107
+ // This is the only place where we are allowed to call this function
108
+ // because the whole idea is that we should be calling this instead of the built-in one
109
+ // eslint-disable-next-line posthog-js/no-add-event-listener
110
+ element?.addEventListener(event, callback, { capture, passive });
111
+ }
112
+ export const stripEmptyProperties = function (p) {
113
+ const ret = {};
114
+ each(p, function (v, k) {
115
+ if ((isString(v) && v.length > 0) || isNumber(v)) {
116
+ ret[k] = v;
117
+ }
118
+ });
119
+ return ret;
120
+ };
121
+ const EXCLUDED_FROM_CROSS_SUBDOMAIN_COOKIE = ['herokuapp.com', 'vercel.app', 'netlify.app'];
122
+ export function isCrossDomainCookie(documentLocation) {
123
+ const hostname = documentLocation?.hostname;
124
+ if (!isString(hostname)) {
125
+ return false;
126
+ }
127
+ // split and slice isn't a great way to match arbitrary domains,
128
+ // but it's good enough for ensuring we only match herokuapp.com when it is the TLD
129
+ // for the hostname
130
+ const lastTwoParts = hostname.split('.').slice(-2).join('.');
131
+ for (const excluded of EXCLUDED_FROM_CROSS_SUBDOMAIN_COOKIE) {
132
+ if (lastTwoParts === excluded) {
133
+ return false;
134
+ }
135
+ }
136
+ return true;
137
+ }
138
+ /**
139
+ * Deep copies an object.
140
+ * It handles cycles by replacing all references to them with `undefined`
141
+ * Also supports customizing native values
142
+ *
143
+ * @param value
144
+ * @param customizer
145
+ * @returns {{}|undefined|*}
146
+ */
147
+ function deepCircularCopy(value, customizer) {
148
+ const COPY_IN_PROGRESS_SET = new Set();
149
+ function internalDeepCircularCopy(value, key) {
150
+ if (value !== Object(value))
151
+ return customizer ? customizer(value, key) : value; // primitive value
152
+ if (COPY_IN_PROGRESS_SET.has(value))
153
+ return undefined;
154
+ COPY_IN_PROGRESS_SET.add(value);
155
+ let result;
156
+ if (isArray(value)) {
157
+ result = [];
158
+ eachArray(value, (it) => {
159
+ result.push(internalDeepCircularCopy(it));
160
+ });
161
+ }
162
+ else {
163
+ result = {};
164
+ each(value, (val, key) => {
165
+ if (!COPY_IN_PROGRESS_SET.has(val)) {
166
+ ;
167
+ result[key] = internalDeepCircularCopy(val, key);
168
+ }
169
+ });
170
+ }
171
+ return result;
172
+ }
173
+ return internalDeepCircularCopy(value);
174
+ }
175
+ export function copyAndTruncateStrings(object, maxStringLength) {
176
+ return deepCircularCopy(object, (value) => {
177
+ if (isString(value) && !isNull(maxStringLength)) {
178
+ return value.slice(0, maxStringLength);
179
+ }
180
+ return value;
181
+ });
182
+ }
183
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * IE11 doesn't support `new URL`
3
+ * so we can create an anchor element and use that to parse the URL
4
+ * there's a lot of overlap between HTMLHyperlinkElementUtils and URL
5
+ * meaning useful properties like `pathname` are available on both
6
+ */
7
+ export declare const convertToURL: (url: string) => HTMLAnchorElement | null;
8
+ export declare const formDataToQuery: (formdata: Record<string, any> | FormData, arg_separator?: string) => string;
9
+ export declare const getQueryParam: (url: string, param: string) => string;
10
+ export declare const maskQueryParams: <T extends string | undefined>(url: T, maskedParams: string[] | undefined, mask: string) => T extends string ? string : undefined;
11
+ export declare const _getHashParam: (hash: string, param: string) => string | null;
12
+ export declare const isLocalhost: () => boolean;
@@ -0,0 +1,107 @@
1
+ import { logger } from '../leanbase-logger';
2
+ import { each, document } from './';
3
+ import { isArray, isFile, isUndefined } from '@posthog/core';
4
+ const localDomains = ['localhost', '127.0.0.1'];
5
+ /**
6
+ * IE11 doesn't support `new URL`
7
+ * so we can create an anchor element and use that to parse the URL
8
+ * there's a lot of overlap between HTMLHyperlinkElementUtils and URL
9
+ * meaning useful properties like `pathname` are available on both
10
+ */
11
+ export const convertToURL = (url) => {
12
+ const location = document?.createElement('a');
13
+ if (isUndefined(location)) {
14
+ return null;
15
+ }
16
+ location.href = url;
17
+ return location;
18
+ };
19
+ export const formDataToQuery = function (formdata, arg_separator = '&') {
20
+ let use_val;
21
+ let use_key;
22
+ const tph_arr = [];
23
+ each(formdata, function (val, key) {
24
+ // the key might be literally the string undefined for e.g. if {undefined: 'something'}
25
+ if (isUndefined(val) || isUndefined(key) || key === 'undefined') {
26
+ return;
27
+ }
28
+ use_val = encodeURIComponent(isFile(val) ? val.name : val.toString());
29
+ use_key = encodeURIComponent(key);
30
+ tph_arr[tph_arr.length] = use_key + '=' + use_val;
31
+ });
32
+ return tph_arr.join(arg_separator);
33
+ };
34
+ // NOTE: Once we get rid of IE11/op_mini we can start using URLSearchParams
35
+ export const getQueryParam = function (url, param) {
36
+ const withoutHash = url.split('#')[0] || '';
37
+ // Split only on the first ? to sort problem out for those with multiple ?s
38
+ // and then remove them
39
+ const queryParams = withoutHash.split(/\?(.*)/)[1] || '';
40
+ const cleanedQueryParams = queryParams.replace(/^\?+/g, '');
41
+ const queryParts = cleanedQueryParams.split('&');
42
+ let keyValuePair;
43
+ for (let i = 0; i < queryParts.length; i++) {
44
+ const parts = queryParts[i].split('=');
45
+ if (parts[0] === param) {
46
+ keyValuePair = parts;
47
+ break;
48
+ }
49
+ }
50
+ if (!isArray(keyValuePair) || keyValuePair.length < 2) {
51
+ return '';
52
+ }
53
+ else {
54
+ let result = keyValuePair[1];
55
+ try {
56
+ result = decodeURIComponent(result);
57
+ }
58
+ catch {
59
+ logger.error('Skipping decoding for malformed query param: ' + result);
60
+ }
61
+ return result.replace(/\+/g, ' ');
62
+ }
63
+ };
64
+ // replace any query params in the url with the provided mask value. Tries to keep the URL as instant as possible,
65
+ // including preserving malformed text in most cases
66
+ export const maskQueryParams = function (url, maskedParams, mask) {
67
+ if (!url || !maskedParams || !maskedParams.length) {
68
+ return url;
69
+ }
70
+ const splitHash = url.split('#');
71
+ const withoutHash = splitHash[0] || '';
72
+ const hash = splitHash[1];
73
+ const splitQuery = withoutHash.split('?');
74
+ const queryString = splitQuery[1];
75
+ const urlWithoutQueryAndHash = splitQuery[0];
76
+ const queryParts = (queryString || '').split('&');
77
+ // use an array of strings rather than an object to preserve ordering and duplicates
78
+ const paramStrings = [];
79
+ for (let i = 0; i < queryParts.length; i++) {
80
+ const keyValuePair = queryParts[i].split('=');
81
+ if (!isArray(keyValuePair)) {
82
+ continue;
83
+ }
84
+ else if (maskedParams.includes(keyValuePair[0])) {
85
+ paramStrings.push(keyValuePair[0] + '=' + mask);
86
+ }
87
+ else {
88
+ paramStrings.push(queryParts[i]);
89
+ }
90
+ }
91
+ let result = urlWithoutQueryAndHash;
92
+ if (queryString != null) {
93
+ result += '?' + paramStrings.join('&');
94
+ }
95
+ if (hash != null) {
96
+ result += '#' + hash;
97
+ }
98
+ return result;
99
+ };
100
+ export const _getHashParam = function (hash, param) {
101
+ const matches = hash.match(new RegExp(param + '=([^&]*)'));
102
+ return matches ? matches[1] : null;
103
+ };
104
+ export const isLocalhost = () => {
105
+ return localDomains.includes(location.hostname);
106
+ };
107
+ //# sourceMappingURL=request-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../src/utils/request-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class SimpleEventEmitter {
2
+ private _events;
3
+ constructor();
4
+ on(event: string, listener: (...args: any[]) => void): () => void;
5
+ emit(event: string, payload: any): void;
6
+ }
@@ -0,0 +1,24 @@
1
+ export class SimpleEventEmitter {
2
+ constructor() {
3
+ this._events = {};
4
+ this._events = {};
5
+ }
6
+ on(event, listener) {
7
+ if (!this._events[event]) {
8
+ this._events[event] = [];
9
+ }
10
+ this._events[event].push(listener);
11
+ return () => {
12
+ this._events[event] = this._events[event].filter((x) => x !== listener);
13
+ };
14
+ }
15
+ emit(event, payload) {
16
+ for (const listener of this._events[event] || []) {
17
+ listener(payload);
18
+ }
19
+ for (const listener of this._events['*'] || []) {
20
+ listener(event, payload);
21
+ }
22
+ }
23
+ }
24
+ //# sourceMappingURL=simple-event-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-event-emitter.js","sourceRoot":"","sources":["../../src/utils/simple-event-emitter.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAkB;IAG3B;QAFQ,YAAO,GAAoD,EAAE,CAAA;QAGjE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACrB,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,QAAkC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAC5B,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAElC,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;QAC3E,CAAC,CAAA;IACL,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAAY;QAC5B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,QAAQ,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC5B,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This function detects which browser is running this script.
3
+ * The order of the checks are important since many user agents
4
+ * include keywords used in later checks.
5
+ */
6
+ export declare const detectBrowser: (user_agent: string, vendor: string | undefined) => string;
7
+ /**
8
+ * This function detects which browser version is running this script,
9
+ * parsing major and minor version (e.g., 42.1). User agent strings from:
10
+ * http://www.useragentstring.com/pages/useragentstring.php
11
+ *
12
+ * `navigator.vendor` is passed in and used to help with detecting certain browsers
13
+ * NB `navigator.vendor` is deprecated and not present in every browser
14
+ */
15
+ export declare const detectBrowserVersion: (userAgent: string, vendor: string | undefined) => number | null;
16
+ export declare const detectOS: (user_agent: string) => [string, string];
17
+ export declare const detectDevice: (user_agent: string) => string;
18
+ export declare const detectDeviceType: (user_agent: string) => string;