posthog-js 1.87.2 → 1.87.3
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.
- package/dist/array.full.js +1 -1
- package/dist/array.full.js.map +1 -1
- package/dist/array.js +1 -1
- package/dist/array.js.map +1 -1
- package/dist/es.js +1 -1
- package/dist/es.js.map +1 -1
- package/dist/exception-autocapture.js +1 -1
- package/dist/exception-autocapture.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/recorder-v2.js +2 -2
- package/dist/recorder-v2.js.map +1 -1
- package/dist/recorder.js +1 -1
- package/dist/recorder.js.map +1 -1
- package/dist/surveys.js +1 -1
- package/dist/surveys.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/src/autocapture-utils.js +2 -1
- package/lib/src/autocapture-utils.js.map +1 -1
- package/lib/src/autocapture.js +2 -1
- package/lib/src/autocapture.js.map +1 -1
- package/lib/src/decide.js +2 -1
- package/lib/src/decide.js.map +1 -1
- package/lib/src/extensions/exception-autocapture/error-conversion.js +1 -1
- package/lib/src/extensions/exception-autocapture/error-conversion.js.map +1 -1
- package/lib/src/extensions/exception-autocapture/index.js +2 -1
- package/lib/src/extensions/exception-autocapture/index.js.map +1 -1
- package/lib/src/extensions/exception-autocapture/stack-trace.js +1 -1
- package/lib/src/extensions/exception-autocapture/stack-trace.js.map +1 -1
- package/lib/src/extensions/exception-autocapture/type-checking.js +1 -1
- package/lib/src/extensions/exception-autocapture/type-checking.js.map +1 -1
- package/lib/src/extensions/replay/sessionrecording-utils.js +1 -1
- package/lib/src/extensions/replay/sessionrecording-utils.js.map +1 -1
- package/lib/src/extensions/replay/sessionrecording.js +2 -1
- package/lib/src/extensions/replay/sessionrecording.js.map +1 -1
- package/lib/src/extensions/replay/web-performance.js +3 -1
- package/lib/src/extensions/replay/web-performance.js.map +1 -1
- package/lib/src/extensions/surveys.js +1 -1
- package/lib/src/extensions/surveys.js.map +1 -1
- package/lib/src/extensions/toolbar.js +2 -1
- package/lib/src/extensions/toolbar.js.map +1 -1
- package/lib/src/gdpr-utils.js +2 -1
- package/lib/src/gdpr-utils.js.map +1 -1
- package/lib/src/loader-exception-autocapture.js +1 -1
- package/lib/src/loader-exception-autocapture.js.map +1 -1
- package/lib/src/loader-recorder-v2.js +1 -1
- package/lib/src/loader-recorder-v2.js.map +1 -1
- package/lib/src/loader-recorder.js +1 -1
- package/lib/src/loader-recorder.js.map +1 -1
- package/lib/src/loader-surveys.js +1 -1
- package/lib/src/loader-surveys.js.map +1 -1
- package/lib/src/posthog-core.js +7 -4
- package/lib/src/posthog-core.js.map +1 -1
- package/lib/src/posthog-featureflags.js +3 -2
- package/lib/src/posthog-featureflags.js.map +1 -1
- package/lib/src/posthog-persistence.js +3 -1
- package/lib/src/posthog-persistence.js.map +1 -1
- package/lib/src/posthog-surveys.js +1 -1
- package/lib/src/posthog-surveys.js.map +1 -1
- package/lib/src/request-queue.js +2 -1
- package/lib/src/request-queue.js.map +1 -1
- package/lib/src/retry-queue.js +2 -1
- package/lib/src/retry-queue.js.map +1 -1
- package/lib/src/send-request.js +9 -5
- package/lib/src/send-request.js.map +1 -1
- package/lib/src/sessionid.js +2 -1
- package/lib/src/sessionid.js.map +1 -1
- package/lib/src/storage.js +2 -1
- package/lib/src/storage.js.map +1 -1
- package/lib/src/utils/event-utils.d.ts +29 -0
- package/lib/src/utils/event-utils.js +297 -0
- package/lib/src/utils/event-utils.js.map +1 -0
- package/lib/src/{utils.d.ts → utils/index.d.ts} +5 -45
- package/lib/src/{utils.js → utils/index.js} +8 -402
- package/lib/src/utils/index.js.map +1 -0
- package/lib/src/utils/request-utils.d.ts +5 -0
- package/lib/src/utils/request-utils.js +58 -0
- package/lib/src/utils/request-utils.js.map +1 -0
- package/lib/src/utils/type-utils.d.ts +12 -0
- package/lib/src/utils/type-utils.js +64 -0
- package/lib/src/utils/type-utils.js.map +1 -0
- package/lib/src/uuidv7.js +2 -1
- package/lib/src/uuidv7.js.map +1 -1
- package/package.json +1 -1
- package/lib/src/utils.js.map +0 -1
|
@@ -23,23 +23,20 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
23
23
|
}
|
|
24
24
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
25
|
};
|
|
26
|
-
import Config from '
|
|
26
|
+
import Config from '../config';
|
|
27
|
+
import { _isArray, _isDate, _isFunction, _isNull, _isObject, _isString, _isUndefined, hasOwnProperty, } from './type-utils';
|
|
27
28
|
/*
|
|
28
29
|
* Saved references to long variable names, so that closure compiler can
|
|
29
30
|
* minimize file size.
|
|
30
31
|
*/
|
|
31
|
-
var ArrayProto = Array.prototype;
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var hasOwnProperty = ObjProto.hasOwnProperty;
|
|
32
|
+
export var ArrayProto = Array.prototype;
|
|
33
|
+
export var nativeForEach = ArrayProto.forEach;
|
|
34
|
+
export var nativeIndexOf = ArrayProto.indexOf;
|
|
35
35
|
var win = typeof window !== 'undefined' ? window : {};
|
|
36
36
|
var navigator = win.navigator || { userAgent: '' };
|
|
37
37
|
var document = win.document || {};
|
|
38
38
|
var userAgent = navigator.userAgent;
|
|
39
|
-
var
|
|
40
|
-
var nativeForEach = ArrayProto.forEach, nativeIndexOf = ArrayProto.indexOf,
|
|
41
|
-
// eslint-disable-next-line posthog-js/no-direct-array-check
|
|
42
|
-
nativeIsArray = Array.isArray, breaker = {};
|
|
39
|
+
var breaker = {};
|
|
43
40
|
var LOGGER_PREFIX = '[PostHog.js]';
|
|
44
41
|
export var logger = {
|
|
45
42
|
_log: function (level) {
|
|
@@ -85,7 +82,7 @@ export var logger = {
|
|
|
85
82
|
// eslint-disable-next-line no-console
|
|
86
83
|
console.error.apply(console, __spreadArray([LOGGER_PREFIX], __read(args), false));
|
|
87
84
|
},
|
|
88
|
-
|
|
85
|
+
uninitializedWarning: function (methodName) {
|
|
89
86
|
logger.error("You must initialize PostHog before calling ".concat(methodName));
|
|
90
87
|
},
|
|
91
88
|
};
|
|
@@ -149,22 +146,6 @@ export var _extend = function (obj) {
|
|
|
149
146
|
});
|
|
150
147
|
return obj;
|
|
151
148
|
};
|
|
152
|
-
export var _isArray = nativeIsArray ||
|
|
153
|
-
function (obj) {
|
|
154
|
-
return toString.call(obj) === '[object Array]';
|
|
155
|
-
};
|
|
156
|
-
// from a comment on http://dbj.org/dbj/?p=286
|
|
157
|
-
// fails on only one very rare and deliberate custom object:
|
|
158
|
-
// let bomb = { toString : undefined, valueOf: function(o) { return "function BOMBA!"; }};
|
|
159
|
-
export var _isFunction = function (f) {
|
|
160
|
-
try {
|
|
161
|
-
// eslint-disable-next-line posthog-js/no-direct-function-check
|
|
162
|
-
return /^\s*\bfunction\b/.test(f);
|
|
163
|
-
}
|
|
164
|
-
catch (x) {
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
149
|
export var _include = function (obj, target) {
|
|
169
150
|
var found = false;
|
|
170
151
|
if (_isNull(obj)) {
|
|
@@ -197,45 +178,6 @@ export function _entries(obj) {
|
|
|
197
178
|
}
|
|
198
179
|
return resArray;
|
|
199
180
|
}
|
|
200
|
-
// Underscore Addons
|
|
201
|
-
export var _isObject = function (x) {
|
|
202
|
-
// eslint-disable-next-line posthog-js/no-direct-object-check
|
|
203
|
-
return x === Object(x) && !_isArray(x);
|
|
204
|
-
};
|
|
205
|
-
export var _isEmptyObject = function (x) {
|
|
206
|
-
if (_isObject(x)) {
|
|
207
|
-
for (var key in x) {
|
|
208
|
-
if (hasOwnProperty.call(x, key)) {
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
return false;
|
|
215
|
-
};
|
|
216
|
-
export var _isUndefined = function (x) {
|
|
217
|
-
return x === void 0;
|
|
218
|
-
};
|
|
219
|
-
export var _isString = function (x) {
|
|
220
|
-
// eslint-disable-next-line posthog-js/no-direct-string-check
|
|
221
|
-
return toString.call(x) == '[object String]';
|
|
222
|
-
};
|
|
223
|
-
export var _isNull = function (x) {
|
|
224
|
-
// eslint-disable-next-line posthog-js/no-direct-null-check
|
|
225
|
-
return x === null;
|
|
226
|
-
};
|
|
227
|
-
export var _isDate = function (x) {
|
|
228
|
-
// eslint-disable-next-line posthog-js/no-direct-date-check
|
|
229
|
-
return toString.call(x) == '[object Date]';
|
|
230
|
-
};
|
|
231
|
-
export var _isNumber = function (x) {
|
|
232
|
-
// eslint-disable-next-line posthog-js/no-direct-number-check
|
|
233
|
-
return toString.call(x) == '[object Number]';
|
|
234
|
-
};
|
|
235
|
-
export var _isBoolean = function (x) {
|
|
236
|
-
// eslint-disable-next-line posthog-js/no-direct-boolean-check
|
|
237
|
-
return toString.call(x) === '[object Boolean]';
|
|
238
|
-
};
|
|
239
181
|
export var _isValidRegex = function (str) {
|
|
240
182
|
try {
|
|
241
183
|
new RegExp(str);
|
|
@@ -245,11 +187,6 @@ export var _isValidRegex = function (str) {
|
|
|
245
187
|
}
|
|
246
188
|
return true;
|
|
247
189
|
};
|
|
248
|
-
export var _isUrlMatchingRegex = function (url, pattern) {
|
|
249
|
-
if (!_isValidRegex(pattern))
|
|
250
|
-
return false;
|
|
251
|
-
return new RegExp(pattern).test(url);
|
|
252
|
-
};
|
|
253
190
|
export var _encodeDates = function (obj) {
|
|
254
191
|
_each(obj, function (v, k) {
|
|
255
192
|
if (_isDate(v)) {
|
|
@@ -504,42 +441,6 @@ export var _isBlockedUA = function (ua, customBlockedUserAgents) {
|
|
|
504
441
|
}
|
|
505
442
|
});
|
|
506
443
|
};
|
|
507
|
-
export var _HTTPBuildQuery = function (formdata, arg_separator) {
|
|
508
|
-
if (arg_separator === void 0) { arg_separator = '&'; }
|
|
509
|
-
var use_val;
|
|
510
|
-
var use_key;
|
|
511
|
-
var tph_arr = [];
|
|
512
|
-
_each(formdata, function (val, key) {
|
|
513
|
-
use_val = encodeURIComponent(val.toString());
|
|
514
|
-
use_key = encodeURIComponent(key);
|
|
515
|
-
tph_arr[tph_arr.length] = use_key + '=' + use_val;
|
|
516
|
-
});
|
|
517
|
-
return tph_arr.join(arg_separator);
|
|
518
|
-
};
|
|
519
|
-
export var _getQueryParam = function (url, param) {
|
|
520
|
-
// Expects a raw URL
|
|
521
|
-
var cleanParam = param.replace(/[[]/, '\\[').replace(/[\]]/, '\\]');
|
|
522
|
-
var regexS = '[\\?&]' + cleanParam + '=([^&#]*)';
|
|
523
|
-
var regex = new RegExp(regexS);
|
|
524
|
-
var results = regex.exec(url);
|
|
525
|
-
if (_isNull(results) || (results && !_isString(results[1]) && results[1].length)) {
|
|
526
|
-
return '';
|
|
527
|
-
}
|
|
528
|
-
else {
|
|
529
|
-
var result = results[1];
|
|
530
|
-
try {
|
|
531
|
-
result = decodeURIComponent(result);
|
|
532
|
-
}
|
|
533
|
-
catch (err) {
|
|
534
|
-
logger.error('Skipping decoding for malformed query param: ' + result);
|
|
535
|
-
}
|
|
536
|
-
return result.replace(/\+/g, ' ');
|
|
537
|
-
}
|
|
538
|
-
};
|
|
539
|
-
export var _getHashParam = function (hash, param) {
|
|
540
|
-
var matches = hash.match(new RegExp(param + '=([^&]*)'));
|
|
541
|
-
return matches ? matches[1] : null;
|
|
542
|
-
};
|
|
543
444
|
export var _register_event = (function () {
|
|
544
445
|
// written by Dean Edwards, 2005
|
|
545
446
|
// with input from Tino Zijdel - crisp@xs4all.nl
|
|
@@ -609,9 +510,6 @@ export var _register_event = (function () {
|
|
|
609
510
|
};
|
|
610
511
|
return register_event;
|
|
611
512
|
})();
|
|
612
|
-
export var isLocalhost = function () {
|
|
613
|
-
return localDomains.includes(location.hostname);
|
|
614
|
-
};
|
|
615
513
|
export function loadScript(scriptUrlToLoad, callback) {
|
|
616
514
|
var addScript = function () {
|
|
617
515
|
var _a;
|
|
@@ -636,298 +534,6 @@ export function loadScript(scriptUrlToLoad, callback) {
|
|
|
636
534
|
document.addEventListener('DOMContentLoaded', addScript);
|
|
637
535
|
}
|
|
638
536
|
}
|
|
639
|
-
export var _info = {
|
|
640
|
-
campaignParams: function (customParams) {
|
|
641
|
-
var campaign_keywords = [
|
|
642
|
-
'utm_source',
|
|
643
|
-
'utm_medium',
|
|
644
|
-
'utm_campaign',
|
|
645
|
-
'utm_content',
|
|
646
|
-
'utm_term',
|
|
647
|
-
'gclid',
|
|
648
|
-
'fbclid',
|
|
649
|
-
'msclkid',
|
|
650
|
-
].concat(customParams || []);
|
|
651
|
-
var params = {};
|
|
652
|
-
_each(campaign_keywords, function (kwkey) {
|
|
653
|
-
var kw = _getQueryParam(document.URL, kwkey);
|
|
654
|
-
if (kw.length) {
|
|
655
|
-
params[kwkey] = kw;
|
|
656
|
-
}
|
|
657
|
-
});
|
|
658
|
-
return params;
|
|
659
|
-
},
|
|
660
|
-
searchEngine: function () {
|
|
661
|
-
var referrer = document.referrer;
|
|
662
|
-
if (!referrer) {
|
|
663
|
-
return null;
|
|
664
|
-
}
|
|
665
|
-
else if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {
|
|
666
|
-
return 'google';
|
|
667
|
-
}
|
|
668
|
-
else if (referrer.search('https?://(.*)bing.com') === 0) {
|
|
669
|
-
return 'bing';
|
|
670
|
-
}
|
|
671
|
-
else if (referrer.search('https?://(.*)yahoo.com') === 0) {
|
|
672
|
-
return 'yahoo';
|
|
673
|
-
}
|
|
674
|
-
else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {
|
|
675
|
-
return 'duckduckgo';
|
|
676
|
-
}
|
|
677
|
-
else {
|
|
678
|
-
return null;
|
|
679
|
-
}
|
|
680
|
-
},
|
|
681
|
-
searchInfo: function () {
|
|
682
|
-
var search = _info.searchEngine(), param = search != 'yahoo' ? 'q' : 'p', ret = {};
|
|
683
|
-
if (!_isNull(search)) {
|
|
684
|
-
ret['$search_engine'] = search;
|
|
685
|
-
var keyword = _getQueryParam(document.referrer, param);
|
|
686
|
-
if (keyword.length) {
|
|
687
|
-
ret['ph_keyword'] = keyword;
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
return ret;
|
|
691
|
-
},
|
|
692
|
-
/**
|
|
693
|
-
* This function detects which browser is running this script.
|
|
694
|
-
* The order of the checks are important since many user agents
|
|
695
|
-
* include key words used in later checks.
|
|
696
|
-
*/
|
|
697
|
-
browser: function (user_agent, vendor, opera) {
|
|
698
|
-
vendor = vendor || ''; // vendor is undefined for at least IE9
|
|
699
|
-
if (opera || _includes(user_agent, ' OPR/')) {
|
|
700
|
-
if (_includes(user_agent, 'Mini')) {
|
|
701
|
-
return 'Opera Mini';
|
|
702
|
-
}
|
|
703
|
-
return 'Opera';
|
|
704
|
-
}
|
|
705
|
-
else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {
|
|
706
|
-
return 'BlackBerry';
|
|
707
|
-
}
|
|
708
|
-
else if (_includes(user_agent, 'IEMobile') || _includes(user_agent, 'WPDesktop')) {
|
|
709
|
-
return 'Internet Explorer Mobile';
|
|
710
|
-
}
|
|
711
|
-
else if (_includes(user_agent, 'SamsungBrowser/')) {
|
|
712
|
-
// https://developer.samsung.com/internet/user-agent-string-format
|
|
713
|
-
return 'Samsung Internet';
|
|
714
|
-
}
|
|
715
|
-
else if (_includes(user_agent, 'Edge') || _includes(user_agent, 'Edg/')) {
|
|
716
|
-
return 'Microsoft Edge';
|
|
717
|
-
}
|
|
718
|
-
else if (_includes(user_agent, 'FBIOS')) {
|
|
719
|
-
return 'Facebook Mobile';
|
|
720
|
-
}
|
|
721
|
-
else if (_includes(user_agent, 'Chrome')) {
|
|
722
|
-
return 'Chrome';
|
|
723
|
-
}
|
|
724
|
-
else if (_includes(user_agent, 'CriOS')) {
|
|
725
|
-
return 'Chrome iOS';
|
|
726
|
-
}
|
|
727
|
-
else if (_includes(user_agent, 'UCWEB') || _includes(user_agent, 'UCBrowser')) {
|
|
728
|
-
return 'UC Browser';
|
|
729
|
-
}
|
|
730
|
-
else if (_includes(user_agent, 'FxiOS')) {
|
|
731
|
-
return 'Firefox iOS';
|
|
732
|
-
}
|
|
733
|
-
else if (_includes(vendor, 'Apple')) {
|
|
734
|
-
if (_includes(user_agent, 'Mobile')) {
|
|
735
|
-
return 'Mobile Safari';
|
|
736
|
-
}
|
|
737
|
-
return 'Safari';
|
|
738
|
-
}
|
|
739
|
-
else if (_includes(user_agent, 'Android')) {
|
|
740
|
-
return 'Android Mobile';
|
|
741
|
-
}
|
|
742
|
-
else if (_includes(user_agent, 'Konqueror')) {
|
|
743
|
-
return 'Konqueror';
|
|
744
|
-
}
|
|
745
|
-
else if (_includes(user_agent, 'Firefox')) {
|
|
746
|
-
return 'Firefox';
|
|
747
|
-
}
|
|
748
|
-
else if (_includes(user_agent, 'MSIE') || _includes(user_agent, 'Trident/')) {
|
|
749
|
-
return 'Internet Explorer';
|
|
750
|
-
}
|
|
751
|
-
else if (_includes(user_agent, 'Gecko')) {
|
|
752
|
-
return 'Mozilla';
|
|
753
|
-
}
|
|
754
|
-
else {
|
|
755
|
-
return '';
|
|
756
|
-
}
|
|
757
|
-
},
|
|
758
|
-
/**
|
|
759
|
-
* This function detects which browser version is running this script,
|
|
760
|
-
* parsing major and minor version (e.g., 42.1). User agent strings from:
|
|
761
|
-
* http://www.useragentstring.com/pages/useragentstring.php
|
|
762
|
-
*/
|
|
763
|
-
browserVersion: function (userAgent, vendor, opera) {
|
|
764
|
-
var browser = _info.browser(userAgent, vendor, opera);
|
|
765
|
-
var versionRegexs = {
|
|
766
|
-
'Internet Explorer Mobile': /rv:(\d+(\.\d+)?)/,
|
|
767
|
-
'Microsoft Edge': /Edge?\/(\d+(\.\d+)?)/,
|
|
768
|
-
Chrome: /Chrome\/(\d+(\.\d+)?)/,
|
|
769
|
-
'Chrome iOS': /CriOS\/(\d+(\.\d+)?)/,
|
|
770
|
-
'UC Browser': /(UCBrowser|UCWEB)\/(\d+(\.\d+)?)/,
|
|
771
|
-
Safari: /Version\/(\d+(\.\d+)?)/,
|
|
772
|
-
'Mobile Safari': /Version\/(\d+(\.\d+)?)/,
|
|
773
|
-
Opera: /(Opera|OPR)\/(\d+(\.\d+)?)/,
|
|
774
|
-
Firefox: /Firefox\/(\d+(\.\d+)?)/,
|
|
775
|
-
'Firefox iOS': /FxiOS\/(\d+(\.\d+)?)/,
|
|
776
|
-
Konqueror: /Konqueror:(\d+(\.\d+)?)/,
|
|
777
|
-
BlackBerry: /BlackBerry (\d+(\.\d+)?)/,
|
|
778
|
-
'Android Mobile': /android\s(\d+(\.\d+)?)/,
|
|
779
|
-
'Samsung Internet': /SamsungBrowser\/(\d+(\.\d+)?)/,
|
|
780
|
-
'Internet Explorer': /(rv:|MSIE )(\d+(\.\d+)?)/,
|
|
781
|
-
Mozilla: /rv:(\d+(\.\d+)?)/,
|
|
782
|
-
};
|
|
783
|
-
var regex = versionRegexs[browser];
|
|
784
|
-
if (_isUndefined(regex)) {
|
|
785
|
-
return null;
|
|
786
|
-
}
|
|
787
|
-
var matches = userAgent.match(regex);
|
|
788
|
-
if (!matches) {
|
|
789
|
-
return null;
|
|
790
|
-
}
|
|
791
|
-
return parseFloat(matches[matches.length - 2]);
|
|
792
|
-
},
|
|
793
|
-
browserLanguage: function () {
|
|
794
|
-
return (navigator.language || // Any modern browser
|
|
795
|
-
navigator.userLanguage // IE11
|
|
796
|
-
);
|
|
797
|
-
},
|
|
798
|
-
os: function (user_agent) {
|
|
799
|
-
if (/Windows/i.test(user_agent)) {
|
|
800
|
-
if (/Phone/.test(user_agent) || /WPDesktop/.test(user_agent)) {
|
|
801
|
-
return { os_name: 'Windows Phone', os_version: '' };
|
|
802
|
-
}
|
|
803
|
-
var match = /Windows NT ([0-9.]+)/i.exec(user_agent);
|
|
804
|
-
if (match && match[1]) {
|
|
805
|
-
var version = match[1];
|
|
806
|
-
return { os_name: 'Windows', os_version: version };
|
|
807
|
-
}
|
|
808
|
-
return { os_name: 'Windows', os_version: '' };
|
|
809
|
-
}
|
|
810
|
-
else if (/(iPhone|iPad|iPod)/.test(user_agent)) {
|
|
811
|
-
var match = /OS (\d+)_(\d+)_?(\d+)?/i.exec(user_agent);
|
|
812
|
-
if (match && match[1]) {
|
|
813
|
-
var versionParts = [match[1], match[2], match[3] || '0'];
|
|
814
|
-
return { os_name: 'iOS', os_version: versionParts.join('.') };
|
|
815
|
-
}
|
|
816
|
-
return { os_name: 'iOS', os_version: '' };
|
|
817
|
-
}
|
|
818
|
-
else if (/Android/.test(user_agent)) {
|
|
819
|
-
var match = /Android (\d+)\.(\d+)\.?(\d+)?/i.exec(user_agent);
|
|
820
|
-
if (match && match[1]) {
|
|
821
|
-
var versionParts = [match[1], match[2], match[3] || '0'];
|
|
822
|
-
return { os_name: 'Android', os_version: versionParts.join('.') };
|
|
823
|
-
}
|
|
824
|
-
return { os_name: 'Android', os_version: '' };
|
|
825
|
-
}
|
|
826
|
-
else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {
|
|
827
|
-
return { os_name: 'BlackBerry', os_version: '' };
|
|
828
|
-
}
|
|
829
|
-
else if (/Mac/i.test(user_agent)) {
|
|
830
|
-
var match = /Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i.exec(user_agent);
|
|
831
|
-
if (match && match[1]) {
|
|
832
|
-
var versionParts = [match[1], match[2], match[3] || '0'];
|
|
833
|
-
return { os_name: 'Mac OS X', os_version: versionParts.join('.') };
|
|
834
|
-
}
|
|
835
|
-
return { os_name: 'Mac OS X', os_version: '' };
|
|
836
|
-
}
|
|
837
|
-
else if (/Linux/.test(user_agent)) {
|
|
838
|
-
return { os_name: 'Linux', os_version: '' };
|
|
839
|
-
}
|
|
840
|
-
else if (/CrOS/.test(user_agent)) {
|
|
841
|
-
return { os_name: 'Chrome OS', os_version: '' };
|
|
842
|
-
}
|
|
843
|
-
else {
|
|
844
|
-
return { os_name: '', os_version: '' };
|
|
845
|
-
}
|
|
846
|
-
},
|
|
847
|
-
device: function (user_agent) {
|
|
848
|
-
if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {
|
|
849
|
-
return 'Windows Phone';
|
|
850
|
-
}
|
|
851
|
-
else if (/iPad/.test(user_agent)) {
|
|
852
|
-
return 'iPad';
|
|
853
|
-
}
|
|
854
|
-
else if (/iPod/.test(user_agent)) {
|
|
855
|
-
return 'iPod Touch';
|
|
856
|
-
}
|
|
857
|
-
else if (/iPhone/.test(user_agent)) {
|
|
858
|
-
return 'iPhone';
|
|
859
|
-
}
|
|
860
|
-
else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {
|
|
861
|
-
return 'BlackBerry';
|
|
862
|
-
}
|
|
863
|
-
else if (/Android/.test(user_agent) && !/Mobile/.test(user_agent)) {
|
|
864
|
-
return 'Android Tablet';
|
|
865
|
-
}
|
|
866
|
-
else if (/Android/.test(user_agent)) {
|
|
867
|
-
return 'Android';
|
|
868
|
-
}
|
|
869
|
-
else {
|
|
870
|
-
return '';
|
|
871
|
-
}
|
|
872
|
-
},
|
|
873
|
-
deviceType: function (user_agent) {
|
|
874
|
-
var device = this.device(user_agent);
|
|
875
|
-
if (device === 'iPad' || device === 'Android Tablet') {
|
|
876
|
-
return 'Tablet';
|
|
877
|
-
}
|
|
878
|
-
else if (device) {
|
|
879
|
-
return 'Mobile';
|
|
880
|
-
}
|
|
881
|
-
else {
|
|
882
|
-
return 'Desktop';
|
|
883
|
-
}
|
|
884
|
-
},
|
|
885
|
-
referrer: function () {
|
|
886
|
-
return document.referrer || '$direct';
|
|
887
|
-
},
|
|
888
|
-
referringDomain: function () {
|
|
889
|
-
if (!document.referrer) {
|
|
890
|
-
return '$direct';
|
|
891
|
-
}
|
|
892
|
-
var parser = document.createElement('a'); // Unfortunately we cannot use new URL due to IE11
|
|
893
|
-
parser.href = document.referrer;
|
|
894
|
-
return parser.host;
|
|
895
|
-
},
|
|
896
|
-
properties: function () {
|
|
897
|
-
var _a = _info.os(userAgent), os_name = _a.os_name, os_version = _a.os_version;
|
|
898
|
-
return _extend(_strip_empty_properties({
|
|
899
|
-
$os: os_name,
|
|
900
|
-
$os_version: os_version,
|
|
901
|
-
$browser: _info.browser(userAgent, navigator.vendor, win.opera),
|
|
902
|
-
$device: _info.device(userAgent),
|
|
903
|
-
$device_type: _info.deviceType(userAgent),
|
|
904
|
-
}), {
|
|
905
|
-
$current_url: win === null || win === void 0 ? void 0 : win.location.href,
|
|
906
|
-
$host: win === null || win === void 0 ? void 0 : win.location.host,
|
|
907
|
-
$pathname: win === null || win === void 0 ? void 0 : win.location.pathname,
|
|
908
|
-
$browser_version: _info.browserVersion(userAgent, navigator.vendor, win.opera),
|
|
909
|
-
$browser_language: _info.browserLanguage(),
|
|
910
|
-
$screen_height: win === null || win === void 0 ? void 0 : win.screen.height,
|
|
911
|
-
$screen_width: win === null || win === void 0 ? void 0 : win.screen.width,
|
|
912
|
-
$viewport_height: win === null || win === void 0 ? void 0 : win.innerHeight,
|
|
913
|
-
$viewport_width: win === null || win === void 0 ? void 0 : win.innerWidth,
|
|
914
|
-
$lib: 'web',
|
|
915
|
-
$lib_version: Config.LIB_VERSION,
|
|
916
|
-
$insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),
|
|
917
|
-
$time: _timestamp() / 1000, // epoch time in seconds
|
|
918
|
-
});
|
|
919
|
-
},
|
|
920
|
-
people_properties: function () {
|
|
921
|
-
var _a = _info.os(userAgent), os_name = _a.os_name, os_version = _a.os_version;
|
|
922
|
-
return _extend(_strip_empty_properties({
|
|
923
|
-
$os: os_name,
|
|
924
|
-
$os_version: os_version,
|
|
925
|
-
$browser: _info.browser(userAgent, navigator.vendor, win.opera),
|
|
926
|
-
}), {
|
|
927
|
-
$browser_version: _info.browserVersion(userAgent, navigator.vendor, win.opera),
|
|
928
|
-
});
|
|
929
|
-
},
|
|
930
|
-
};
|
|
931
537
|
export function isCrossDomainCookie(documentLocation) {
|
|
932
538
|
var hostname = documentLocation === null || documentLocation === void 0 ? void 0 : documentLocation.hostname;
|
|
933
539
|
if (!_isString(hostname)) {
|
|
@@ -939,4 +545,4 @@ export function isCrossDomainCookie(documentLocation) {
|
|
|
939
545
|
return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com';
|
|
940
546
|
}
|
|
941
547
|
export { win as window, userAgent, document };
|
|
942
|
-
//# sourceMappingURL=
|
|
548
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAE9B,OAAO,EACH,QAAQ,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,GACjB,MAAM,cAAc,CAAA;AAErB;;;GAGG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;AACzC,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,IAAM,GAAG,GAA+B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAoB,CAAA;AACtG,IAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AACpD,IAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAA;AACnC,IAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;AACrC,IAAM,OAAO,GAAY,EAAE,CAAA;AAE3B,IAAM,aAAa,GAAG,cAAc,CAAA;AAEpC,MAAM,CAAC,IAAM,MAAM,GAAG;IAClB,IAAI,EAAE,UAAC,KAA+B;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAClD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAK,MAAc,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;YACpG,IAAM,UAAU,GACZ,oBAAoB,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAS,CAAC,oBAAoB,CAAC;gBACtD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAE/B,sCAAsC;YACtC,UAAU,8BAAC,aAAa,UAAK,IAAI,WAAC;SACrC;IACL,CAAC;IAED,IAAI,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACjB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,KAAK,UAAK,IAAI,WAAC;IAC/B,CAAC;IAED,IAAI,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACjB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,MAAM,UAAK,IAAI,WAAC;IAChC,CAAC;IAED,KAAK,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,OAAO,UAAK,IAAI,WAAC;IACjC,CAAC;IAED,QAAQ,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACrB,mDAAmD;QACnD,sCAAsC;QACtC,OAAO,CAAC,KAAK,OAAb,OAAO,iBAAO,aAAa,UAAK,IAAI,WAAC;IACzC,CAAC;IAED,oBAAoB,EAAE,UAAC,UAAkB;QACrC,MAAM,CAAC,KAAK,CAAC,qDAA8C,UAAU,CAAE,CAAC,CAAA;IAC5E,CAAC;CACJ,CAAA;AAED,aAAa;AACb,uCAAuC;AACvC,MAAM,CAAC,IAAM,KAAK,GAAG,UAAU,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAA;AAChE,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAU,GAAwB;IACpE,KAAK,IAAM,IAAI,IAAI,GAAG,EAAE;QACpB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAClC;KACJ;AACL,CAAC,CAAA;AAED,MAAM,UAAU,UAAU,CACtB,GAA2B,EAC3B,QAAmD,EACnD,OAAa;IAEb,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACf,IAAI,aAAa,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE;YAChD,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;SACjC;aAAM,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACxC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,EAAE;oBAC3D,OAAM;iBACT;aACJ;SACJ;KACJ;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAQ,EAAE,QAAkD,EAAE,OAAa;IAC7F,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;QACnC,OAAM;KACT;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACf,OAAO,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;KAC5C;IACD,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO,EAAE;gBACnD,OAAM;aACT;SACJ;KACJ;AACL,CAAC;AAED,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,GAAwB;IAAE,cAA8B;SAA9B,UAA8B,EAA9B,qBAA8B,EAA9B,IAA8B;QAA9B,6BAA8B;;IACrF,UAAU,CAAC,IAAI,EAAE,UAAU,MAAM;QAC7B,KAAK,IAAM,IAAI,IAAI,MAAM,EAAE;YACvB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;gBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;aAC3B;SACJ;IACL,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,QAAQ,GAAG,UACpB,GAAqD,EACrD,MAAW;IAEX,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QACd,OAAO,KAAK,CAAA;KACf;IACD,IAAI,aAAa,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE;QAChD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;KACnC;IACD,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK;QACtB,IAAI,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,MAAM,CAAC,EAAE;YACrC,OAAO,OAAO,CAAA;SACjB;QACD,OAAM;IACV,CAAC,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,UAAU,SAAS,CAAU,GAAiB,EAAE,MAAS;IAC3D,OAAQ,GAAW,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAU,GAAsB;IACpD,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAA;IACvB,IAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,wBAAwB;IAEtD,OAAO,CAAC,EAAE,EAAE;QACR,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAChD;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,GAAW;IAC9C,IAAI;QACA,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;KAClB;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,KAAK,CAAA;KACf;IACD,OAAO,IAAI,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,YAAY,GAAG,UAAU,GAAe;IACjD,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACZ,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;SAC1B;aAAM,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE;YACrB,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;SACtC;IACL,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,UAAU,GAAG;IACtB,IAAI,CAAC,GAAG;QACJ,IAAI,CAAC,GAAG;YACR;gBACI,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;YACtB,CAAC,CAAA;IACL,OAAO,IAAI,CAAC,GAAG,EAAE,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,UAAU,CAAO;IACxC,6BAA6B;IAC7B,SAAS,GAAG,CAAC,CAAS;QAClB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,CACH,CAAC,CAAC,cAAc,EAAE;QAClB,GAAG;QACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACxB,GAAG;QACH,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;QACnB,GAAG;QACH,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpB,GAAG;QACH,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtB,GAAG;QACH,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CACzB,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,IAAI,GAAG,UAAa,EAAW;IACxC,IAAI;QACA,OAAO,EAAE,EAAE,CAAA;KACd;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,SAAS,CAAA;KACnB;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,SAAS,GAAG,UAAuE,CAAI;IAChG,OAAO;QAAU,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACpB,IAAI;YACA,6DAA6D;YAC7D,aAAa;YACb,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SAC7B;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,QAAQ,CAAC,6EAA6E,CAAC,CAAA;YAC9F,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;SACrB;IACL,CAAM,CAAA;AACV,CAAC,CAAA;AAED,wDAAwD;AACxD,MAAM,CAAC,IAAM,eAAe,GAAG,UAAU,KAAe,EAAE,SAAmB;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAC3E;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,0BAA0B,GAAG,UAAU,GAAwB;IACxE,KAAK,IAAM,IAAI,IAAI,GAAG,EAAE;QACpB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;SACnC;KACJ;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAU,CAAa;IAC1D,IAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;QACnB,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;SACb;IACL,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACd,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CACrB,KAAQ,EACR,UAAwE;IAExE,IAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAA;IAEtC,SAAS,wBAAwB,CAAC,KAAQ,EAAE,GAAY;QACpD,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,kBAAkB;QAEzG,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAA;QACrD,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,MAAS,CAAA;QAEb,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjB,MAAM,GAAG,EAAc,CAAA;YACvB,UAAU,CAAC,KAAK,EAAE,UAAC,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7C,CAAC,CAAC,CAAA;SACL;aAAM;YACH,MAAM,GAAG,EAAO,CAAA;YAChB,KAAK,CAAC,KAAK,EAAE,UAAC,GAAG,EAAE,GAAG;gBAClB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAChC,CAAC;oBAAC,MAAc,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;iBAC7D;YACL,CAAC,CAAC,CAAA;SACL;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IACD,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,IAAM,uBAAuB,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAEpD,MAAM,UAAU,uBAAuB,CACnC,MAAS,EACT,eAA8B;IAE9B,OAAO,gBAAgB,CAAC,MAAM,EAAE,UAAC,KAAU,EAAE,GAAG;QAC5C,IAAI,GAAG,IAAI,uBAAuB,CAAC,OAAO,CAAC,GAAa,CAAC,GAAG,CAAC,CAAC,EAAE;YAC5D,OAAO,KAAK,CAAA;SACf;QACD,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;YAC/C,OAAQ,KAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;SACrD;QACD,OAAO,KAAK,CAAA;IAChB,CAAC,CAAM,CAAA;AACX,CAAC;AAKD,MAAM,UAAU,aAAa,CAAC,IAA+B;IACzD,IAAM,GAAG,GAAG,mEAAmE,CAAA;IAC/E,IAAI,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,EACJ,CAAC,GAAG,CAAC,EACL,EAAE,GAAG,CAAC,EACN,GAAG,GAAG,EAAE,CAAA;IACZ,IAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,CAAC,IAAI,EAAE;QACP,OAAO,IAAI,CAAA;KACd;IAED,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAExB,GAAG;QACC,qCAAqC;QACrC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;QACzB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;QACzB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;QAEzB,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAA;QAElC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;QACxB,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;QACxB,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;QACvB,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;QAEhB,oEAAoE;QACpE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;KACpF,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,EAAC;IAEzB,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEtB,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,KAAK,CAAC;YACF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAC7B,MAAK;QACT,KAAK,CAAC;YACF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YAC5B,MAAK;KACZ;IAED,OAAO,GAAG,CAAA;AACd,CAAC;AAED,MAAM,CAAC,IAAM,WAAW,GAAG,UAAU,MAAc;IAC/C,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAElE,IAAI,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,GAAG,CAAA;IACP,IAAI,OAAO,GAAG,CAAC,EACX,CAAC,CAAA;IAEL,KAAK,GAAG,GAAG,GAAG,CAAC,CAAA;IACf,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;IAEvB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,GAAG,IAAI,CAAA;QAEd,IAAI,EAAE,GAAG,GAAG,EAAE;YACV,GAAG,EAAE,CAAA;SACR;aAAM,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE;YAC9B,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;SAC9D;aAAM;YACH,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAA;SACvF;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACf,IAAI,GAAG,GAAG,KAAK,EAAE;gBACb,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;aAC1C;YACD,OAAO,IAAI,GAAG,CAAA;YACd,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;SACtB;KACJ;IAED,IAAI,GAAG,GAAG,KAAK,EAAE;QACb,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;KACpD;IAED,OAAO,OAAO,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,uBAAuB,GAAG;IACnC,WAAW;IACX,UAAU;IACV,aAAa;IACb,SAAS;IACT,aAAa;IACb,SAAS;IACT,SAAS;IACT,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,QAAQ;IACR,SAAS;IACT,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,cAAc;IACd,WAAW;IAEX,0CAA0C;IAC1C,uFAAuF;IACvF,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,WAAW;IACX,gBAAgB;IAChB,sBAAsB;IACtB,iBAAiB;CACpB,CAAA;AAED,kBAAkB;AAClB,iEAAiE;AACjE,+BAA+B;AAC/B,MAAM,CAAC,IAAM,YAAY,GAAG,UAAU,EAAU,EAAE,uBAAiC;IAC/E,IAAI,CAAC,EAAE,EAAE;QACL,OAAO,KAAK,CAAA;KACf;IACD,IAAM,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;IAChC,OAAO,uBAAuB,CAAC,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAC,SAAS;QAChF,IAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QAC9C,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClB,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;SAC1C;aAAM;YACH,WAAW;YACX,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;SAChD;IACL,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,CAAC;IAC5B,gCAAgC;IAChC,gDAAgD;IAChD,oDAAoD;IACpD,0BAA0B;IAC1B,qDAAqD;IACrD,kCAAkC;IAElC;;;;;;OAMG;IACH,IAAM,cAAc,GAAG,UACnB,OAA2C,EAC3C,IAAY,EACZ,OAAqB,EACrB,SAAmB,EACnB,UAAoB;QAEpB,IAAI,CAAC,OAAO,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC3D,OAAM;SACT;QAED,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,SAAS,EAAE;YACxC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;SACxD;aAAM;YACH,IAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;YAC1B,IAAM,WAAW,GAAI,OAAe,CAAC,MAAM,CAAC,CAAC,mBAAmB;aAC/D;YAAC,OAAe,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;SACzE;IACL,CAAC,CAAA;IAED,SAAS,WAAW,CAChB,OAA2C,EAC3C,WAAyB,EACzB,YAA0B;QAE1B,OAAO,UAAU,KAAY;YACzB,KAAK,GAAG,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAEvC,4DAA4D;YAC5D,4DAA4D;YAC5D,4DAA4D;YAC5D,4DAA4D;YAC5D,0DAA0D;YAC1D,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,SAAS,CAAA;aACnB;YAED,IAAI,GAAG,GAAG,IAAI,CAAA;YACd,IAAI,UAAe,CAAA;YAEnB,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;gBAC3B,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;aACnC;YACD,IAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YAEnD,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,UAAU,EAAE;gBAC9C,GAAG,GAAG,KAAK,CAAA;aACd;YAED,OAAO,GAAG,CAAA;QACd,CAAC,CAAA;IACL,CAAC;IAED,SAAS,QAAQ,CAAC,KAAwB;QACtC,IAAI,KAAK,EAAE;YACP,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAA;YAC9C,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;SACnD;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,QAAQ,CAAC,cAAc,GAAG;QACtB,CAAC;QAAC,IAAqB,CAAC,WAAW,GAAG,KAAK,CAAA;IAC/C,CAAC,CAAA;IACD,QAAQ,CAAC,eAAe,GAAG;QACvB,CAAC;QAAC,IAAqB,CAAC,YAAY,GAAG,IAAI,CAAA;IAC/C,CAAC,CAAA;IAED,OAAO,cAAc,CAAA;AACzB,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,UAAU,UAAU,CAAC,eAAuB,EAAE,QAAyD;IACzG,IAAM,SAAS,GAAG;;QACd,IAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAClD,SAAS,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAClC,SAAS,CAAC,GAAG,GAAG,eAAe,CAAA;QAC/B,SAAS,CAAC,MAAM,GAAG,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,EAA1B,CAA0B,CAAA;QACxD,SAAS,CAAC,OAAO,GAAG,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe,CAAA;QAE9C,IAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,0CAAE,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7D;aAAM;YACH,gFAAgF;YAChF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;SACvC;IACL,CAAC,CAAA;IAED,IAAI,QAAQ,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,CAAA;KACd;SAAM;QACH,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAA;KAC3D;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,gBAAsC;IACtE,IAAM,QAAQ,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,QAAQ,CAAA;IAE3C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QACtB,OAAO,KAAK,CAAA;KACf;IACD,gEAAgE;IAChE,mFAAmF;IACnF,mBAAmB;IACnB,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAe,CAAA;AACtE,CAAC;AAED,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA","sourcesContent":["import Config from '../config'\nimport { Breaker, EventHandler, Properties } from '../types'\nimport {\n _isArray,\n _isDate,\n _isFunction,\n _isNull,\n _isObject,\n _isString,\n _isUndefined,\n hasOwnProperty,\n} from './type-utils'\n\n/*\n * Saved references to long variable names, so that closure compiler can\n * minimize file size.\n */\nexport const ArrayProto = Array.prototype\nexport const nativeForEach = ArrayProto.forEach\nexport const nativeIndexOf = ArrayProto.indexOf\nconst win: Window & typeof globalThis = typeof window !== 'undefined' ? window : ({} as typeof window)\nconst navigator = win.navigator || { userAgent: '' }\nconst document = win.document || {}\nconst userAgent = navigator.userAgent\nconst breaker: Breaker = {}\n\nconst LOGGER_PREFIX = '[PostHog.js]'\n\nexport const logger = {\n _log: (level: 'log' | 'warn' | 'error', ...args: any[]) => {\n if ((Config.DEBUG || (window as any).POSTHOG_DEBUG) && !_isUndefined(window.console) && window.console) {\n const consoleLog =\n '__rrweb_original__' in window.console[level]\n ? (window.console[level] as any)['__rrweb_original__']\n : window.console[level]\n\n // eslint-disable-next-line no-console\n consoleLog(LOGGER_PREFIX, ...args)\n }\n },\n\n info: (...args: any[]) => {\n logger._log('log', ...args)\n },\n\n warn: (...args: any[]) => {\n logger._log('warn', ...args)\n },\n\n error: (...args: any[]) => {\n logger._log('error', ...args)\n },\n\n critical: (...args: any[]) => {\n // Critical errors are always logged to the console\n // eslint-disable-next-line no-console\n console.error(LOGGER_PREFIX, ...args)\n },\n\n uninitializedWarning: (methodName: string) => {\n logger.error(`You must initialize PostHog before calling ${methodName}`)\n },\n}\n\n// UNDERSCORE\n// Embed part of the Underscore Library\nexport const _trim = function (str: string): string {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\n\nexport const _bind_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = obj[func].bind(obj)\n }\n }\n}\n\nexport function _eachArray<E = any>(\n obj: E[] | null | undefined,\n iterator: (value: E, key: number) => void | Breaker,\n thisArg?: any\n): void {\n if (_isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg)\n } else if ('length' in obj && obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return\n }\n }\n }\n }\n}\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\nexport function _each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void {\n if (_isNull(obj) || _isUndefined(obj)) {\n return\n }\n if (_isArray(obj)) {\n return _eachArray(obj, iterator, thisArg)\n }\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(thisArg, obj[key], key) === breaker) {\n return\n }\n }\n }\n}\n\nexport const _extend = function (obj: Record<string, any>, ...args: Record<string, any>[]): Record<string, any> {\n _eachArray(args, function (source) {\n for (const prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\n\nexport const _include = function (\n obj: null | string | Array<any> | Record<string, any>,\n target: any\n): boolean | Breaker {\n let found = false\n if (_isNull(obj)) {\n return found\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1\n }\n _each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker\n }\n return\n })\n return found\n}\n\nexport function _includes<T = any>(str: T[] | string, needle: T): boolean {\n return (str as any).indexOf(needle) !== -1\n}\n\n/**\n * Object.entries() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\nexport function _entries<T = any>(obj: Record<string, T>): [string, T][] {\n const ownProps = Object.keys(obj)\n let i = ownProps.length\n const resArray = new Array(i) // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]]\n }\n return resArray\n}\n\nexport const _isValidRegex = function (str: string): boolean {\n try {\n new RegExp(str)\n } catch (error) {\n return false\n }\n return true\n}\n\nexport const _encodeDates = function (obj: Properties): Properties {\n _each(obj, function (v, k) {\n if (_isDate(v)) {\n obj[k] = _formatDate(v)\n } else if (_isObject(v)) {\n obj[k] = _encodeDates(v) // recurse\n }\n })\n return obj\n}\n\nexport const _timestamp = function (): number {\n Date.now =\n Date.now ||\n function () {\n return +new Date()\n }\n return Date.now()\n}\n\nexport const _formatDate = function (d: Date): string {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n: number) {\n return n < 10 ? '0' + n : n\n }\n return (\n d.getUTCFullYear() +\n '-' +\n pad(d.getUTCMonth() + 1) +\n '-' +\n pad(d.getUTCDate()) +\n 'T' +\n pad(d.getUTCHours()) +\n ':' +\n pad(d.getUTCMinutes()) +\n ':' +\n pad(d.getUTCSeconds())\n )\n}\n\nexport const _try = function <T>(fn: () => T): T | undefined {\n try {\n return fn()\n } catch (e) {\n return undefined\n }\n}\n\nexport const _safewrap = function <F extends (...args: any[]) => any = (...args: any[]) => any>(f: F): F {\n return function (...args) {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args)\n } catch (e) {\n logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.')\n logger.critical(e)\n }\n } as F\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const _safewrap_class = function (klass: Function, functions: string[]): void {\n for (let i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]])\n }\n}\n\nexport const _safewrap_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = _safewrap(obj[func])\n }\n }\n}\n\nexport const _strip_empty_properties = function (p: Properties): Properties {\n const ret: Properties = {}\n _each(p, function (v, k) {\n if (_isString(v) && v.length > 0) {\n ret[k] = v\n }\n })\n return ret\n}\n\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\nfunction deepCircularCopy<T extends Record<string, any> = Record<string, any>>(\n value: T,\n customizer?: <K extends keyof T = keyof T>(value: T[K], key?: K) => T[K]\n): T | undefined {\n const COPY_IN_PROGRESS_SET = new Set()\n\n function internalDeepCircularCopy(value: T, key?: string): T | undefined {\n if (value !== Object(value)) return customizer ? customizer(value as any, key) : value // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined\n COPY_IN_PROGRESS_SET.add(value)\n let result: T\n\n if (_isArray(value)) {\n result = [] as any as T\n _eachArray(value, (it) => {\n result.push(internalDeepCircularCopy(it))\n })\n } else {\n result = {} as T\n _each(value, (val, key) => {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n ;(result as any)[key] = internalDeepCircularCopy(val, key)\n }\n })\n }\n return result\n }\n return internalDeepCircularCopy(value)\n}\n\nconst LONG_STRINGS_ALLOW_LIST = ['$performance_raw']\n\nexport function _copyAndTruncateStrings<T extends Record<string, any> = Record<string, any>>(\n object: T,\n maxStringLength: number | null\n): T {\n return deepCircularCopy(object, (value: any, key) => {\n if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key as string) > -1) {\n return value\n }\n if (_isString(value) && !_isNull(maxStringLength)) {\n return (value as string).slice(0, maxStringLength)\n }\n return value\n }) as T\n}\n\nexport function _base64Encode(data: null): null\nexport function _base64Encode(data: undefined): undefined\nexport function _base64Encode(data: string): string\nexport function _base64Encode(data: string | null | undefined): string | null | undefined {\n const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = ''\n const tmp_arr: string[] = []\n\n if (!data) {\n return data\n }\n\n data = _utf8Encode(data)\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n\nexport const _utf8Encode = function (string: string): string {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n let utftext = '',\n start,\n end\n let stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n const c1 = string.charCodeAt(n)\n let enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)\n }\n if (!_isNull(enc)) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\n\nexport const DEFAULT_BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'applebot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'bot.htm',\n 'bot.php',\n 'crawler',\n 'duckduckbot',\n 'facebookexternal',\n 'facebookcatalog',\n 'gptbot',\n 'hubspot',\n 'linkedinbot',\n 'mj12bot',\n 'petalbot',\n 'pinterest',\n 'prerender',\n 'rogerbot',\n 'screaming frog',\n 'semrushbot',\n 'sitebulb',\n 'twitterbot',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google',\n]\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false capturing data\nexport const _isBlockedUA = function (ua: string, customBlockedUserAgents: string[]): boolean {\n if (!ua) {\n return false\n }\n const uaLower = ua.toLowerCase()\n return DEFAULT_BLOCKED_UA_STRS.concat(customBlockedUserAgents || []).some((blockedUA) => {\n const blockedUaLower = blockedUA.toLowerCase()\n if (uaLower.includes) {\n return uaLower.includes(blockedUaLower)\n } else {\n // IE 11 :/\n return uaLower.indexOf(blockedUaLower) !== -1\n }\n })\n}\n\nexport const _register_event = (function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n const register_event = function (\n element: Element | Window | Document | Node,\n type: string,\n handler: EventHandler,\n oldSchool?: boolean,\n useCapture?: boolean\n ) {\n if (!element) {\n logger.error('No valid element provided to register_event')\n return\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture)\n } else {\n const ontype = 'on' + type\n const old_handler = (element as any)[ontype] // can be undefined\n ;(element as any)[ontype] = makeHandler(element, handler, old_handler)\n }\n }\n\n function makeHandler(\n element: Element | Window | Document | Node,\n new_handler: EventHandler,\n old_handlers: EventHandler\n ) {\n return function (event: Event): boolean | void {\n event = event || fixEvent(window.event)\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined\n }\n\n let ret = true\n let old_result: any\n\n if (_isFunction(old_handlers)) {\n old_result = old_handlers(event)\n }\n const new_result = new_handler.call(element, event)\n\n if (false === old_result || false === new_result) {\n ret = false\n }\n\n return ret\n }\n }\n\n function fixEvent(event: Event | undefined): Event | undefined {\n if (event) {\n event.preventDefault = fixEvent.preventDefault\n event.stopPropagation = fixEvent.stopPropagation\n }\n return event\n }\n fixEvent.preventDefault = function () {\n ;(this as any as Event).returnValue = false\n }\n fixEvent.stopPropagation = function () {\n ;(this as any as Event).cancelBubble = true\n }\n\n return register_event\n})()\n\nexport function loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void {\n const addScript = () => {\n const scriptTag = document.createElement('script')\n scriptTag.type = 'text/javascript'\n scriptTag.src = scriptUrlToLoad\n scriptTag.onload = (event) => callback(undefined, event)\n scriptTag.onerror = (error) => callback(error)\n\n const scripts = document.querySelectorAll('body > script')\n if (scripts.length > 0) {\n scripts[0].parentNode?.insertBefore(scriptTag, scripts[0])\n } else {\n // In exceptional situations this call might load before the DOM is fully ready.\n document.body.appendChild(scriptTag)\n }\n }\n\n if (document.body) {\n addScript()\n } else {\n document.addEventListener('DOMContentLoaded', addScript)\n }\n}\n\nexport function isCrossDomainCookie(documentLocation: Location | undefined) {\n const hostname = documentLocation?.hostname\n\n if (!_isString(hostname)) {\n return false\n }\n // split and slice isn't a great way to match arbitrary domains,\n // but it's good enough for ensuring we only match herokuapp.com when it is the TLD\n // for the hostname\n return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com'\n}\n\nexport { win as window, userAgent, document }\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const _isUrlMatchingRegex: (url: string, pattern: string) => boolean;
|
|
2
|
+
export declare const _HTTPBuildQuery: (formdata: Record<string, any>, arg_separator?: string) => string;
|
|
3
|
+
export declare const _getQueryParam: (url: string, param: string) => string;
|
|
4
|
+
export declare const _getHashParam: (hash: string, param: string) => string | null;
|
|
5
|
+
export declare const isLocalhost: () => boolean;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { _each, _isValidRegex, logger } from './';
|
|
2
|
+
import { _isArray, _isUndefined } from './type-utils';
|
|
3
|
+
var localDomains = ['localhost', '127.0.0.1'];
|
|
4
|
+
export var _isUrlMatchingRegex = function (url, pattern) {
|
|
5
|
+
if (!_isValidRegex(pattern))
|
|
6
|
+
return false;
|
|
7
|
+
return new RegExp(pattern).test(url);
|
|
8
|
+
};
|
|
9
|
+
export var _HTTPBuildQuery = function (formdata, arg_separator) {
|
|
10
|
+
if (arg_separator === void 0) { arg_separator = '&'; }
|
|
11
|
+
var use_val;
|
|
12
|
+
var use_key;
|
|
13
|
+
var tph_arr = [];
|
|
14
|
+
_each(formdata, function (val, key) {
|
|
15
|
+
// the key might be literally the string undefined for e.g. if {undefined: 'something'}
|
|
16
|
+
if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
use_val = encodeURIComponent(val.toString());
|
|
20
|
+
use_key = encodeURIComponent(key);
|
|
21
|
+
tph_arr[tph_arr.length] = use_key + '=' + use_val;
|
|
22
|
+
});
|
|
23
|
+
return tph_arr.join(arg_separator);
|
|
24
|
+
};
|
|
25
|
+
export var _getQueryParam = function (url, param) {
|
|
26
|
+
var withoutHash = url.split('#')[0] || '';
|
|
27
|
+
var queryParams = withoutHash.split('?')[1] || '';
|
|
28
|
+
var queryParts = queryParams.split('&');
|
|
29
|
+
var keyValuePair;
|
|
30
|
+
for (var i = 0; i < queryParts.length; i++) {
|
|
31
|
+
var parts = queryParts[i].split('=');
|
|
32
|
+
if (parts[0] === param) {
|
|
33
|
+
keyValuePair = parts;
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!_isArray(keyValuePair) || keyValuePair.length < 2) {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
var result = keyValuePair[1];
|
|
42
|
+
try {
|
|
43
|
+
result = decodeURIComponent(result);
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
logger.error('Skipping decoding for malformed query param: ' + result);
|
|
47
|
+
}
|
|
48
|
+
return result.replace(/\+/g, ' ');
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
export var _getHashParam = function (hash, param) {
|
|
52
|
+
var matches = hash.match(new RegExp(param + '=([^&]*)'));
|
|
53
|
+
return matches ? matches[1] : null;
|
|
54
|
+
};
|
|
55
|
+
export var isLocalhost = function () {
|
|
56
|
+
return localDomains.includes(location.hostname);
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=request-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../../src/utils/request-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAErD,IAAM,YAAY,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;AAE/C,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAU,GAAW,EAAE,OAAe;IACrE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,eAAe,GAAG,UAAU,QAA6B,EAAE,aAAmB;IAAnB,8BAAA,EAAA,mBAAmB;IACvF,IAAI,OAAe,CAAA;IACnB,IAAI,OAAe,CAAA;IACnB,IAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,CAAC,QAAQ,EAAE,UAAU,GAAG,EAAE,GAAG;QAC9B,uFAAuF;QACvF,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,WAAW,EAAE;YAC/D,OAAM;SACT;QAED,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC5C,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,cAAc,GAAG,UAAU,GAAW,EAAE,KAAa;IAC9D,IAAM,WAAW,GAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACnD,IAAM,WAAW,GAAW,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAE3D,IAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACzC,IAAI,YAAY,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,IAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;YACpB,YAAY,GAAG,KAAK,CAAA;YACpB,MAAK;SACR;KACJ;IAED,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,OAAO,EAAE,CAAA;KACZ;SAAM;QACH,IAAI,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI;YACA,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;SACtC;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,+CAA+C,GAAG,MAAM,CAAC,CAAA;SACzE;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;KACpC;AACL,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,IAAY,EAAE,KAAa;IAC9D,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAA;IAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,WAAW,GAAG;IACvB,OAAO,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AACnD,CAAC,CAAA","sourcesContent":["import { _each, _isValidRegex, logger } from './'\n\nimport { _isArray, _isUndefined } from './type-utils'\n\nconst localDomains = ['localhost', '127.0.0.1']\n\nexport const _isUrlMatchingRegex = function (url: string, pattern: string): boolean {\n if (!_isValidRegex(pattern)) return false\n return new RegExp(pattern).test(url)\n}\n\nexport const _HTTPBuildQuery = function (formdata: Record<string, any>, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n _each(formdata, function (val, key) {\n // the key might be literally the string undefined for e.g. if {undefined: 'something'}\n if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {\n return\n }\n\n use_val = encodeURIComponent(val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const _getQueryParam = function (url: string, param: string): string {\n const withoutHash: string = url.split('#')[0] || ''\n const queryParams: string = withoutHash.split('?')[1] || ''\n\n const queryParts = queryParams.split('&')\n let keyValuePair\n\n for (let i = 0; i < queryParts.length; i++) {\n const parts = queryParts[i].split('=')\n if (parts[0] === param) {\n keyValuePair = parts\n break\n }\n }\n\n if (!_isArray(keyValuePair) || keyValuePair.length < 2) {\n return ''\n } else {\n let result = keyValuePair[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const hasOwnProperty: (v: PropertyKey) => boolean;
|
|
2
|
+
export declare const _isArray: (arg: any) => arg is any[];
|
|
3
|
+
export declare const _isUint8Array: (x: unknown) => x is Uint8Array;
|
|
4
|
+
export declare const _isFunction: (f: any) => f is (...args: any[]) => any;
|
|
5
|
+
export declare const _isObject: (x: unknown) => x is Record<string, any>;
|
|
6
|
+
export declare const _isEmptyObject: (x: unknown) => x is Record<string, any>;
|
|
7
|
+
export declare const _isUndefined: (x: unknown) => x is undefined;
|
|
8
|
+
export declare const _isString: (x: unknown) => x is string;
|
|
9
|
+
export declare const _isNull: (x: unknown) => x is null;
|
|
10
|
+
export declare const _isDate: (x: unknown) => x is Date;
|
|
11
|
+
export declare const _isNumber: (x: unknown) => x is number;
|
|
12
|
+
export declare const _isBoolean: (x: unknown) => x is boolean;
|