posthog-js 1.87.2 → 1.87.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.
- 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 +3 -1
- package/lib/src/autocapture-utils.js.map +1 -1
- package/lib/src/autocapture.js +3 -1
- package/lib/src/autocapture.js.map +1 -1
- package/lib/src/decide.js +3 -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 +3 -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 +3 -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/segment-integration.d.ts +18 -0
- package/lib/src/extensions/segment-integration.js +1 -19
- package/lib/src/extensions/segment-integration.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 +4 -1
- package/lib/src/extensions/toolbar.js.map +1 -1
- package/lib/src/gdpr-utils.js +4 -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/page-view.js +1 -1
- package/lib/src/page-view.js.map +1 -1
- package/lib/src/posthog-core.js +9 -4
- package/lib/src/posthog-core.js.map +1 -1
- package/lib/src/posthog-featureflags.js +4 -2
- package/lib/src/posthog-featureflags.js.map +1 -1
- package/lib/src/posthog-persistence.js +4 -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/rate-limiter.js +6 -2
- package/lib/src/rate-limiter.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 +10 -5
- package/lib/src/send-request.js.map +1 -1
- package/lib/src/sessionid.js +3 -1
- package/lib/src/sessionid.js.map +1 -1
- package/lib/src/storage.js +3 -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 +298 -0
- package/lib/src/utils/event-utils.js.map +1 -0
- package/lib/src/utils/globals.d.ts +7 -0
- package/lib/src/utils/globals.js +12 -0
- package/lib/src/utils/globals.js.map +1 -0
- package/lib/src/utils/index.d.ts +37 -0
- package/lib/src/utils/index.js +463 -0
- package/lib/src/utils/index.js.map +1 -0
- package/lib/src/utils/logger.d.ts +8 -0
- package/lib/src/utils/logger.js +78 -0
- package/lib/src/utils/logger.js.map +1 -0
- package/lib/src/utils/request-utils.d.ts +5 -0
- package/lib/src/utils/request-utils.js +59 -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.d.ts +0 -92
- package/lib/src/utils.js +0 -942
- package/lib/src/utils.js.map +0 -1
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
import { _isArray, _isDate, _isFunction, _isNull, _isObject, _isString, _isUndefined, hasOwnProperty, } from './type-utils';
|
|
2
|
+
import { logger } from './logger';
|
|
3
|
+
import { document, nativeForEach, nativeIndexOf } from './globals';
|
|
4
|
+
var breaker = {};
|
|
5
|
+
// UNDERSCORE
|
|
6
|
+
// Embed part of the Underscore Library
|
|
7
|
+
export var _trim = function (str) {
|
|
8
|
+
return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
|
|
9
|
+
};
|
|
10
|
+
export var _bind_instance_methods = function (obj) {
|
|
11
|
+
for (var func in obj) {
|
|
12
|
+
if (_isFunction(obj[func])) {
|
|
13
|
+
obj[func] = obj[func].bind(obj);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export function _eachArray(obj, iterator, thisArg) {
|
|
18
|
+
if (_isArray(obj)) {
|
|
19
|
+
if (nativeForEach && obj.forEach === nativeForEach) {
|
|
20
|
+
obj.forEach(iterator, thisArg);
|
|
21
|
+
}
|
|
22
|
+
else if ('length' in obj && obj.length === +obj.length) {
|
|
23
|
+
for (var i = 0, l = obj.length; i < l; i++) {
|
|
24
|
+
if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @param {*=} obj
|
|
33
|
+
* @param {function(...*)=} iterator
|
|
34
|
+
* @param {Object=} thisArg
|
|
35
|
+
*/
|
|
36
|
+
export function _each(obj, iterator, thisArg) {
|
|
37
|
+
if (_isNull(obj) || _isUndefined(obj)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (_isArray(obj)) {
|
|
41
|
+
return _eachArray(obj, iterator, thisArg);
|
|
42
|
+
}
|
|
43
|
+
for (var key in obj) {
|
|
44
|
+
if (hasOwnProperty.call(obj, key)) {
|
|
45
|
+
if (iterator.call(thisArg, obj[key], key) === breaker) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export var _extend = function (obj) {
|
|
52
|
+
var args = [];
|
|
53
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
54
|
+
args[_i - 1] = arguments[_i];
|
|
55
|
+
}
|
|
56
|
+
_eachArray(args, function (source) {
|
|
57
|
+
for (var prop in source) {
|
|
58
|
+
if (source[prop] !== void 0) {
|
|
59
|
+
obj[prop] = source[prop];
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return obj;
|
|
64
|
+
};
|
|
65
|
+
export var _include = function (obj, target) {
|
|
66
|
+
var found = false;
|
|
67
|
+
if (_isNull(obj)) {
|
|
68
|
+
return found;
|
|
69
|
+
}
|
|
70
|
+
if (nativeIndexOf && obj.indexOf === nativeIndexOf) {
|
|
71
|
+
return obj.indexOf(target) != -1;
|
|
72
|
+
}
|
|
73
|
+
_each(obj, function (value) {
|
|
74
|
+
if (found || (found = value === target)) {
|
|
75
|
+
return breaker;
|
|
76
|
+
}
|
|
77
|
+
return;
|
|
78
|
+
});
|
|
79
|
+
return found;
|
|
80
|
+
};
|
|
81
|
+
export function _includes(str, needle) {
|
|
82
|
+
return str.indexOf(needle) !== -1;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Object.entries() polyfill
|
|
86
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
|
|
87
|
+
*/
|
|
88
|
+
export function _entries(obj) {
|
|
89
|
+
var ownProps = Object.keys(obj);
|
|
90
|
+
var i = ownProps.length;
|
|
91
|
+
var resArray = new Array(i); // preallocate the Array
|
|
92
|
+
while (i--) {
|
|
93
|
+
resArray[i] = [ownProps[i], obj[ownProps[i]]];
|
|
94
|
+
}
|
|
95
|
+
return resArray;
|
|
96
|
+
}
|
|
97
|
+
export var _isValidRegex = function (str) {
|
|
98
|
+
try {
|
|
99
|
+
new RegExp(str);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
};
|
|
106
|
+
export var _encodeDates = function (obj) {
|
|
107
|
+
_each(obj, function (v, k) {
|
|
108
|
+
if (_isDate(v)) {
|
|
109
|
+
obj[k] = _formatDate(v);
|
|
110
|
+
}
|
|
111
|
+
else if (_isObject(v)) {
|
|
112
|
+
obj[k] = _encodeDates(v); // recurse
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return obj;
|
|
116
|
+
};
|
|
117
|
+
export var _timestamp = function () {
|
|
118
|
+
Date.now =
|
|
119
|
+
Date.now ||
|
|
120
|
+
function () {
|
|
121
|
+
return +new Date();
|
|
122
|
+
};
|
|
123
|
+
return Date.now();
|
|
124
|
+
};
|
|
125
|
+
export var _formatDate = function (d) {
|
|
126
|
+
// YYYY-MM-DDTHH:MM:SS in UTC
|
|
127
|
+
function pad(n) {
|
|
128
|
+
return n < 10 ? '0' + n : n;
|
|
129
|
+
}
|
|
130
|
+
return (d.getUTCFullYear() +
|
|
131
|
+
'-' +
|
|
132
|
+
pad(d.getUTCMonth() + 1) +
|
|
133
|
+
'-' +
|
|
134
|
+
pad(d.getUTCDate()) +
|
|
135
|
+
'T' +
|
|
136
|
+
pad(d.getUTCHours()) +
|
|
137
|
+
':' +
|
|
138
|
+
pad(d.getUTCMinutes()) +
|
|
139
|
+
':' +
|
|
140
|
+
pad(d.getUTCSeconds()));
|
|
141
|
+
};
|
|
142
|
+
export var _try = function (fn) {
|
|
143
|
+
try {
|
|
144
|
+
return fn();
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
export var _safewrap = function (f) {
|
|
151
|
+
return function () {
|
|
152
|
+
var args = [];
|
|
153
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
154
|
+
args[_i] = arguments[_i];
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
158
|
+
// @ts-ignore
|
|
159
|
+
return f.apply(this, args);
|
|
160
|
+
}
|
|
161
|
+
catch (e) {
|
|
162
|
+
logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.');
|
|
163
|
+
logger.critical(e);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
168
|
+
export var _safewrap_class = function (klass, functions) {
|
|
169
|
+
for (var i = 0; i < functions.length; i++) {
|
|
170
|
+
klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]]);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
export var _safewrap_instance_methods = function (obj) {
|
|
174
|
+
for (var func in obj) {
|
|
175
|
+
if (_isFunction(obj[func])) {
|
|
176
|
+
obj[func] = _safewrap(obj[func]);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
export var _strip_empty_properties = function (p) {
|
|
181
|
+
var ret = {};
|
|
182
|
+
_each(p, function (v, k) {
|
|
183
|
+
if (_isString(v) && v.length > 0) {
|
|
184
|
+
ret[k] = v;
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
return ret;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* Deep copies an object.
|
|
191
|
+
* It handles cycles by replacing all references to them with `undefined`
|
|
192
|
+
* Also supports customizing native values
|
|
193
|
+
*
|
|
194
|
+
* @param value
|
|
195
|
+
* @param customizer
|
|
196
|
+
* @returns {{}|undefined|*}
|
|
197
|
+
*/
|
|
198
|
+
function deepCircularCopy(value, customizer) {
|
|
199
|
+
var COPY_IN_PROGRESS_SET = new Set();
|
|
200
|
+
function internalDeepCircularCopy(value, key) {
|
|
201
|
+
if (value !== Object(value))
|
|
202
|
+
return customizer ? customizer(value, key) : value; // primitive value
|
|
203
|
+
if (COPY_IN_PROGRESS_SET.has(value))
|
|
204
|
+
return undefined;
|
|
205
|
+
COPY_IN_PROGRESS_SET.add(value);
|
|
206
|
+
var result;
|
|
207
|
+
if (_isArray(value)) {
|
|
208
|
+
result = [];
|
|
209
|
+
_eachArray(value, function (it) {
|
|
210
|
+
result.push(internalDeepCircularCopy(it));
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
result = {};
|
|
215
|
+
_each(value, function (val, key) {
|
|
216
|
+
if (!COPY_IN_PROGRESS_SET.has(val)) {
|
|
217
|
+
;
|
|
218
|
+
result[key] = internalDeepCircularCopy(val, key);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return result;
|
|
223
|
+
}
|
|
224
|
+
return internalDeepCircularCopy(value);
|
|
225
|
+
}
|
|
226
|
+
var LONG_STRINGS_ALLOW_LIST = ['$performance_raw'];
|
|
227
|
+
export function _copyAndTruncateStrings(object, maxStringLength) {
|
|
228
|
+
return deepCircularCopy(object, function (value, key) {
|
|
229
|
+
if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key) > -1) {
|
|
230
|
+
return value;
|
|
231
|
+
}
|
|
232
|
+
if (_isString(value) && !_isNull(maxStringLength)) {
|
|
233
|
+
return value.slice(0, maxStringLength);
|
|
234
|
+
}
|
|
235
|
+
return value;
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
export function _base64Encode(data) {
|
|
239
|
+
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
|
240
|
+
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = '';
|
|
241
|
+
var tmp_arr = [];
|
|
242
|
+
if (!data) {
|
|
243
|
+
return data;
|
|
244
|
+
}
|
|
245
|
+
data = _utf8Encode(data);
|
|
246
|
+
do {
|
|
247
|
+
// pack three octets into four hexets
|
|
248
|
+
o1 = data.charCodeAt(i++);
|
|
249
|
+
o2 = data.charCodeAt(i++);
|
|
250
|
+
o3 = data.charCodeAt(i++);
|
|
251
|
+
bits = (o1 << 16) | (o2 << 8) | o3;
|
|
252
|
+
h1 = (bits >> 18) & 0x3f;
|
|
253
|
+
h2 = (bits >> 12) & 0x3f;
|
|
254
|
+
h3 = (bits >> 6) & 0x3f;
|
|
255
|
+
h4 = bits & 0x3f;
|
|
256
|
+
// use hexets to index into b64, and append result to encoded string
|
|
257
|
+
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
|
|
258
|
+
} while (i < data.length);
|
|
259
|
+
enc = tmp_arr.join('');
|
|
260
|
+
switch (data.length % 3) {
|
|
261
|
+
case 1:
|
|
262
|
+
enc = enc.slice(0, -2) + '==';
|
|
263
|
+
break;
|
|
264
|
+
case 2:
|
|
265
|
+
enc = enc.slice(0, -1) + '=';
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
return enc;
|
|
269
|
+
}
|
|
270
|
+
export var _utf8Encode = function (string) {
|
|
271
|
+
string = (string + '').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
272
|
+
var utftext = '', start, end;
|
|
273
|
+
var stringl = 0, n;
|
|
274
|
+
start = end = 0;
|
|
275
|
+
stringl = string.length;
|
|
276
|
+
for (n = 0; n < stringl; n++) {
|
|
277
|
+
var c1 = string.charCodeAt(n);
|
|
278
|
+
var enc = null;
|
|
279
|
+
if (c1 < 128) {
|
|
280
|
+
end++;
|
|
281
|
+
}
|
|
282
|
+
else if (c1 > 127 && c1 < 2048) {
|
|
283
|
+
enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128);
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128);
|
|
287
|
+
}
|
|
288
|
+
if (!_isNull(enc)) {
|
|
289
|
+
if (end > start) {
|
|
290
|
+
utftext += string.substring(start, end);
|
|
291
|
+
}
|
|
292
|
+
utftext += enc;
|
|
293
|
+
start = end = n + 1;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
if (end > start) {
|
|
297
|
+
utftext += string.substring(start, string.length);
|
|
298
|
+
}
|
|
299
|
+
return utftext;
|
|
300
|
+
};
|
|
301
|
+
export var DEFAULT_BLOCKED_UA_STRS = [
|
|
302
|
+
'ahrefsbot',
|
|
303
|
+
'applebot',
|
|
304
|
+
'baiduspider',
|
|
305
|
+
'bingbot',
|
|
306
|
+
'bingpreview',
|
|
307
|
+
'bot.htm',
|
|
308
|
+
'bot.php',
|
|
309
|
+
'crawler',
|
|
310
|
+
'duckduckbot',
|
|
311
|
+
'facebookexternal',
|
|
312
|
+
'facebookcatalog',
|
|
313
|
+
'gptbot',
|
|
314
|
+
'hubspot',
|
|
315
|
+
'linkedinbot',
|
|
316
|
+
'mj12bot',
|
|
317
|
+
'petalbot',
|
|
318
|
+
'pinterest',
|
|
319
|
+
'prerender',
|
|
320
|
+
'rogerbot',
|
|
321
|
+
'screaming frog',
|
|
322
|
+
'semrushbot',
|
|
323
|
+
'sitebulb',
|
|
324
|
+
'twitterbot',
|
|
325
|
+
'yahoo! slurp',
|
|
326
|
+
'yandexbot',
|
|
327
|
+
// a whole bunch of goog-specific crawlers
|
|
328
|
+
// https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers
|
|
329
|
+
'adsbot-google',
|
|
330
|
+
'apis-google',
|
|
331
|
+
'duplexweb-google',
|
|
332
|
+
'feedfetcher-google',
|
|
333
|
+
'google favicon',
|
|
334
|
+
'google web preview',
|
|
335
|
+
'google-read-aloud',
|
|
336
|
+
'googlebot',
|
|
337
|
+
'googleweblight',
|
|
338
|
+
'mediapartners-google',
|
|
339
|
+
'storebot-google',
|
|
340
|
+
];
|
|
341
|
+
// _.isBlockedUA()
|
|
342
|
+
// This is to block various web spiders from executing our JS and
|
|
343
|
+
// sending false capturing data
|
|
344
|
+
export var _isBlockedUA = function (ua, customBlockedUserAgents) {
|
|
345
|
+
if (!ua) {
|
|
346
|
+
return false;
|
|
347
|
+
}
|
|
348
|
+
var uaLower = ua.toLowerCase();
|
|
349
|
+
return DEFAULT_BLOCKED_UA_STRS.concat(customBlockedUserAgents || []).some(function (blockedUA) {
|
|
350
|
+
var blockedUaLower = blockedUA.toLowerCase();
|
|
351
|
+
if (uaLower.includes) {
|
|
352
|
+
return uaLower.includes(blockedUaLower);
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
// IE 11 :/
|
|
356
|
+
return uaLower.indexOf(blockedUaLower) !== -1;
|
|
357
|
+
}
|
|
358
|
+
});
|
|
359
|
+
};
|
|
360
|
+
export var _register_event = (function () {
|
|
361
|
+
// written by Dean Edwards, 2005
|
|
362
|
+
// with input from Tino Zijdel - crisp@xs4all.nl
|
|
363
|
+
// with input from Carl Sverre - mail@carlsverre.com
|
|
364
|
+
// with input from PostHog
|
|
365
|
+
// http://dean.edwards.name/weblog/2005/10/add-event/
|
|
366
|
+
// https://gist.github.com/1930440
|
|
367
|
+
/**
|
|
368
|
+
* @param {Object} element
|
|
369
|
+
* @param {string} type
|
|
370
|
+
* @param {function(...*)} handler
|
|
371
|
+
* @param {boolean=} oldSchool
|
|
372
|
+
* @param {boolean=} useCapture
|
|
373
|
+
*/
|
|
374
|
+
var register_event = function (element, type, handler, oldSchool, useCapture) {
|
|
375
|
+
if (!element) {
|
|
376
|
+
logger.error('No valid element provided to register_event');
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
379
|
+
if (element.addEventListener && !oldSchool) {
|
|
380
|
+
element.addEventListener(type, handler, !!useCapture);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
var ontype = 'on' + type;
|
|
384
|
+
var old_handler = element[ontype] // can be undefined
|
|
385
|
+
;
|
|
386
|
+
element[ontype] = makeHandler(element, handler, old_handler);
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
function makeHandler(element, new_handler, old_handlers) {
|
|
390
|
+
return function (event) {
|
|
391
|
+
event = event || fixEvent(window.event);
|
|
392
|
+
// this basically happens in firefox whenever another script
|
|
393
|
+
// overwrites the onload callback and doesn't pass the event
|
|
394
|
+
// object to previously defined callbacks. All the browsers
|
|
395
|
+
// that don't define window.event implement addEventListener
|
|
396
|
+
// so the dom_loaded handler will still be fired as usual.
|
|
397
|
+
if (!event) {
|
|
398
|
+
return undefined;
|
|
399
|
+
}
|
|
400
|
+
var ret = true;
|
|
401
|
+
var old_result;
|
|
402
|
+
if (_isFunction(old_handlers)) {
|
|
403
|
+
old_result = old_handlers(event);
|
|
404
|
+
}
|
|
405
|
+
var new_result = new_handler.call(element, event);
|
|
406
|
+
if (false === old_result || false === new_result) {
|
|
407
|
+
ret = false;
|
|
408
|
+
}
|
|
409
|
+
return ret;
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
function fixEvent(event) {
|
|
413
|
+
if (event) {
|
|
414
|
+
event.preventDefault = fixEvent.preventDefault;
|
|
415
|
+
event.stopPropagation = fixEvent.stopPropagation;
|
|
416
|
+
}
|
|
417
|
+
return event;
|
|
418
|
+
}
|
|
419
|
+
fixEvent.preventDefault = function () {
|
|
420
|
+
;
|
|
421
|
+
this.returnValue = false;
|
|
422
|
+
};
|
|
423
|
+
fixEvent.stopPropagation = function () {
|
|
424
|
+
;
|
|
425
|
+
this.cancelBubble = true;
|
|
426
|
+
};
|
|
427
|
+
return register_event;
|
|
428
|
+
})();
|
|
429
|
+
export function loadScript(scriptUrlToLoad, callback) {
|
|
430
|
+
var addScript = function () {
|
|
431
|
+
var _a;
|
|
432
|
+
var scriptTag = document.createElement('script');
|
|
433
|
+
scriptTag.type = 'text/javascript';
|
|
434
|
+
scriptTag.src = scriptUrlToLoad;
|
|
435
|
+
scriptTag.onload = function (event) { return callback(undefined, event); };
|
|
436
|
+
scriptTag.onerror = function (error) { return callback(error); };
|
|
437
|
+
var scripts = document.querySelectorAll('body > script');
|
|
438
|
+
if (scripts.length > 0) {
|
|
439
|
+
(_a = scripts[0].parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(scriptTag, scripts[0]);
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
// In exceptional situations this call might load before the DOM is fully ready.
|
|
443
|
+
document.body.appendChild(scriptTag);
|
|
444
|
+
}
|
|
445
|
+
};
|
|
446
|
+
if (document.body) {
|
|
447
|
+
addScript();
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
document.addEventListener('DOMContentLoaded', addScript);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
export function isCrossDomainCookie(documentLocation) {
|
|
454
|
+
var hostname = documentLocation === null || documentLocation === void 0 ? void 0 : documentLocation.hostname;
|
|
455
|
+
if (!_isString(hostname)) {
|
|
456
|
+
return false;
|
|
457
|
+
}
|
|
458
|
+
// split and slice isn't a great way to match arbitrary domains,
|
|
459
|
+
// but it's good enough for ensuring we only match herokuapp.com when it is the TLD
|
|
460
|
+
// for the hostname
|
|
461
|
+
return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com';
|
|
462
|
+
}
|
|
463
|
+
//# 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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","sourcesContent":["import { 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'\nimport { logger } from './logger'\nimport { document, nativeForEach, nativeIndexOf } from './globals'\n\nconst breaker: Breaker = {}\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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const logger: {
|
|
2
|
+
_log: (level: 'log' | 'warn' | 'error', ...args: any[]) => void;
|
|
3
|
+
info: (...args: any[]) => void;
|
|
4
|
+
warn: (...args: any[]) => void;
|
|
5
|
+
error: (...args: any[]) => void;
|
|
6
|
+
critical: (...args: any[]) => void;
|
|
7
|
+
uninitializedWarning: (methodName: string) => void;
|
|
8
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
2
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
3
|
+
if (!m) return o;
|
|
4
|
+
var i = m.call(o), r, ar = [], e;
|
|
5
|
+
try {
|
|
6
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
7
|
+
}
|
|
8
|
+
catch (error) { e = { error: error }; }
|
|
9
|
+
finally {
|
|
10
|
+
try {
|
|
11
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
12
|
+
}
|
|
13
|
+
finally { if (e) throw e.error; }
|
|
14
|
+
}
|
|
15
|
+
return ar;
|
|
16
|
+
};
|
|
17
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
18
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
19
|
+
if (ar || !(i in from)) {
|
|
20
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
21
|
+
ar[i] = from[i];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
|
+
};
|
|
26
|
+
import Config from '../config';
|
|
27
|
+
import { _isUndefined } from './type-utils';
|
|
28
|
+
import { window } from './globals';
|
|
29
|
+
var LOGGER_PREFIX = '[PostHog.js]';
|
|
30
|
+
export var logger = {
|
|
31
|
+
_log: function (level) {
|
|
32
|
+
var args = [];
|
|
33
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
34
|
+
args[_i - 1] = arguments[_i];
|
|
35
|
+
}
|
|
36
|
+
if ((Config.DEBUG || window.POSTHOG_DEBUG) && !_isUndefined(window.console) && window.console) {
|
|
37
|
+
var consoleLog = '__rrweb_original__' in window.console[level]
|
|
38
|
+
? window.console[level]['__rrweb_original__']
|
|
39
|
+
: window.console[level];
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
41
|
+
consoleLog.apply(void 0, __spreadArray([LOGGER_PREFIX], __read(args), false));
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
info: function () {
|
|
45
|
+
var args = [];
|
|
46
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
47
|
+
args[_i] = arguments[_i];
|
|
48
|
+
}
|
|
49
|
+
logger._log.apply(logger, __spreadArray(['log'], __read(args), false));
|
|
50
|
+
},
|
|
51
|
+
warn: function () {
|
|
52
|
+
var args = [];
|
|
53
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
54
|
+
args[_i] = arguments[_i];
|
|
55
|
+
}
|
|
56
|
+
logger._log.apply(logger, __spreadArray(['warn'], __read(args), false));
|
|
57
|
+
},
|
|
58
|
+
error: function () {
|
|
59
|
+
var args = [];
|
|
60
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
61
|
+
args[_i] = arguments[_i];
|
|
62
|
+
}
|
|
63
|
+
logger._log.apply(logger, __spreadArray(['error'], __read(args), false));
|
|
64
|
+
},
|
|
65
|
+
critical: function () {
|
|
66
|
+
var args = [];
|
|
67
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
68
|
+
args[_i] = arguments[_i];
|
|
69
|
+
}
|
|
70
|
+
// Critical errors are always logged to the console
|
|
71
|
+
// eslint-disable-next-line no-console
|
|
72
|
+
console.error.apply(console, __spreadArray([LOGGER_PREFIX], __read(args), false));
|
|
73
|
+
},
|
|
74
|
+
uninitializedWarning: function (methodName) {
|
|
75
|
+
logger.error("You must initialize PostHog before calling ".concat(methodName));
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,IAAM,aAAa,GAAG,cAAc,CAAA;AACpC,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","sourcesContent":["import Config from '../config'\nimport { _isUndefined } from './type-utils'\nimport { window } from './globals'\n\nconst LOGGER_PREFIX = '[PostHog.js]'\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"]}
|
|
@@ -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;
|