posthog-js 1.76.0 → 1.77.1
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 +2 -2
- package/dist/array.full.js.map +1 -1
- package/dist/array.js +2 -2
- package/dist/array.js.map +1 -1
- package/dist/es.js +2 -2
- package/dist/es.js.map +1 -1
- package/dist/module.d.ts +38 -6
- package/dist/module.js +2 -2
- package/dist/module.js.map +1 -1
- package/lib/package.json +8 -6
- package/lib/src/autocapture-utils.d.ts +15 -0
- package/lib/src/autocapture-utils.js +303 -0
- package/lib/src/autocapture-utils.js.map +1 -0
- package/lib/src/autocapture.d.ts +27 -0
- package/lib/src/autocapture.js +290 -0
- package/lib/src/autocapture.js.map +1 -0
- package/lib/src/base-request-queue.d.ts +12 -0
- package/lib/src/base-request-queue.js +33 -0
- package/lib/src/base-request-queue.js.map +1 -0
- package/lib/src/compression.d.ts +3 -0
- package/lib/src/compression.js +35 -0
- package/lib/src/compression.js.map +1 -0
- package/lib/src/config.d.ts +5 -0
- package/lib/src/config.js +9 -0
- package/lib/src/config.js.map +1 -0
- package/lib/src/constants.d.ts +19 -0
- package/lib/src/constants.js +41 -0
- package/lib/src/constants.js.map +1 -0
- package/lib/src/decide.d.ts +8 -0
- package/lib/src/decide.js +118 -0
- package/lib/src/decide.js.map +1 -0
- package/lib/src/extensions/cloud.d.ts +1 -0
- package/lib/src/extensions/cloud.js +2 -0
- package/lib/src/extensions/cloud.js.map +1 -0
- package/lib/src/extensions/exceptions/error-conversion.d.ts +26 -0
- package/lib/src/extensions/exceptions/error-conversion.js +204 -0
- package/lib/src/extensions/exceptions/error-conversion.js.map +1 -0
- package/lib/src/extensions/exceptions/exception-autocapture.d.ts +24 -0
- package/lib/src/extensions/exceptions/exception-autocapture.js +164 -0
- package/lib/src/extensions/exceptions/exception-autocapture.js.map +1 -0
- package/lib/src/extensions/exceptions/stack-trace.d.ts +31 -0
- package/lib/src/extensions/exceptions/stack-trace.js +259 -0
- package/lib/src/extensions/exceptions/stack-trace.js.map +1 -0
- package/lib/src/extensions/exceptions/type-checking.d.ts +10 -0
- package/lib/src/extensions/exceptions/type-checking.js +43 -0
- package/lib/src/extensions/exceptions/type-checking.js.map +1 -0
- package/lib/src/extensions/rageclick.d.ts +10 -0
- package/lib/src/extensions/rageclick.js +33 -0
- package/lib/src/extensions/rageclick.js.map +1 -0
- package/lib/src/extensions/segment-integration.d.ts +44 -0
- package/lib/src/extensions/segment-integration.js +34 -0
- package/lib/src/extensions/segment-integration.js.map +1 -0
- package/lib/src/extensions/sentry-integration.d.ts +30 -0
- package/lib/src/extensions/sentry-integration.js +63 -0
- package/lib/src/extensions/sentry-integration.js.map +1 -0
- package/lib/src/extensions/sessionrecording-utils.d.ts +67 -0
- package/lib/src/extensions/sessionrecording-utils.js +192 -0
- package/lib/src/extensions/sessionrecording-utils.js.map +1 -0
- package/lib/src/extensions/sessionrecording.d.ts +45 -0
- package/lib/src/extensions/sessionrecording.js +430 -0
- package/lib/src/extensions/sessionrecording.js.map +1 -0
- package/lib/src/extensions/toolbar.d.ts +18 -0
- package/lib/src/extensions/toolbar.js +151 -0
- package/lib/src/extensions/toolbar.js.map +1 -0
- package/lib/src/extensions/web-performance.d.ts +20 -0
- package/lib/src/extensions/web-performance.js +245 -0
- package/lib/src/extensions/web-performance.js.map +1 -0
- package/lib/src/gdpr-utils.d.ts +80 -0
- package/lib/src/gdpr-utils.js +236 -0
- package/lib/src/gdpr-utils.js.map +1 -0
- package/lib/src/loader-globals-full.d.ts +1 -0
- package/lib/src/loader-globals-full.js +5 -0
- package/lib/src/loader-globals-full.js.map +1 -0
- package/lib/src/loader-globals.d.ts +1 -0
- package/lib/src/loader-globals.js +3 -0
- package/lib/src/loader-globals.js.map +1 -0
- package/lib/src/loader-module.d.ts +4 -0
- package/lib/src/loader-module.js +6 -0
- package/lib/src/loader-module.js.map +1 -0
- package/lib/src/loader-recorder-v2.d.ts +2 -0
- package/lib/src/loader-recorder-v2.js +15 -0
- package/lib/src/loader-recorder-v2.js.map +1 -0
- package/lib/src/loader-recorder.d.ts +2 -0
- package/lib/src/loader-recorder.js +15 -0
- package/lib/src/loader-recorder.js.map +1 -0
- package/lib/src/page-view.d.ts +38 -0
- package/lib/src/page-view.js +127 -0
- package/lib/src/page-view.js.map +1 -0
- package/lib/src/posthog-core.d.ts +701 -0
- package/lib/src/posthog-core.js +1916 -0
- package/lib/src/posthog-core.js.map +1 -0
- package/lib/src/posthog-featureflags.d.ts +70 -0
- package/lib/src/posthog-featureflags.js +438 -0
- package/lib/src/posthog-featureflags.js.map +1 -0
- package/lib/src/posthog-persistence.d.ts +57 -0
- package/lib/src/posthog-persistence.js +256 -0
- package/lib/src/posthog-persistence.js.map +1 -0
- package/lib/src/posthog-surveys.d.ts +57 -0
- package/lib/src/posthog-surveys.js +76 -0
- package/lib/src/posthog-surveys.js.map +1 -0
- package/lib/src/rate-limiter.d.ts +5 -0
- package/lib/src/rate-limiter.js +66 -0
- package/lib/src/rate-limiter.js.map +1 -0
- package/lib/src/request-queue.d.ts +10 -0
- package/lib/src/request-queue.js +146 -0
- package/lib/src/request-queue.js.map +1 -0
- package/lib/src/retry-queue.d.ts +28 -0
- package/lib/src/retry-queue.js +198 -0
- package/lib/src/retry-queue.js.map +1 -0
- package/lib/src/send-request.d.ts +6 -0
- package/lib/src/send-request.js +125 -0
- package/lib/src/send-request.js.map +1 -0
- package/lib/src/sessionid.d.ts +28 -0
- package/lib/src/sessionid.js +205 -0
- package/lib/src/sessionid.js.map +1 -0
- package/lib/src/storage.d.ts +7 -0
- package/lib/src/storage.js +291 -0
- package/lib/src/storage.js.map +1 -0
- package/lib/src/types.d.ts +294 -0
- package/lib/src/types.js +6 -0
- package/lib/src/types.js.map +1 -0
- package/lib/src/utils.d.ts +89 -0
- package/lib/src/utils.js +868 -0
- package/lib/src/utils.js.map +1 -0
- package/lib/src/uuidv7.d.ts +42 -0
- package/lib/src/uuidv7.js +228 -0
- package/lib/src/uuidv7.js.map +1 -0
- package/package.json +8 -6
- package/CHANGELOG.md +0 -1145
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { _bind_instance_methods, _each, _extend, _includes, _isFunction, _isUndefined, _register_event, _safewrap_instance_methods, logger, } from './utils';
|
|
2
|
+
import { getClassName, getSafeText, isElementNode, isSensitiveElement, isTag, isTextNode, shouldCaptureDomEvent, shouldCaptureElement, shouldCaptureValue, autocaptureCompatibleElements, isAngularStyleAttr, isDocumentFragment, getDirectAndNestedSpanText, } from './autocapture-utils';
|
|
3
|
+
import RageClick from './extensions/rageclick';
|
|
4
|
+
import { AUTOCAPTURE_DISABLED_SERVER_SIDE } from './constants';
|
|
5
|
+
var autocapture = {
|
|
6
|
+
_initializedTokens: [],
|
|
7
|
+
_isDisabledServerSide: null,
|
|
8
|
+
_isAutocaptureEnabled: false,
|
|
9
|
+
_setIsAutocaptureEnabled: function (instance) {
|
|
10
|
+
var _a;
|
|
11
|
+
var disabled_server_side = this._isDisabledServerSide === null
|
|
12
|
+
? !!((_a = instance.persistence) === null || _a === void 0 ? void 0 : _a.props[AUTOCAPTURE_DISABLED_SERVER_SIDE])
|
|
13
|
+
: this._isDisabledServerSide;
|
|
14
|
+
var enabled_client_side = !!instance.get_config('autocapture');
|
|
15
|
+
this._isAutocaptureEnabled = enabled_client_side && !disabled_server_side;
|
|
16
|
+
},
|
|
17
|
+
_previousElementSibling: function (el) {
|
|
18
|
+
if (el.previousElementSibling) {
|
|
19
|
+
return el.previousElementSibling;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
var _el = el;
|
|
23
|
+
do {
|
|
24
|
+
_el = _el.previousSibling; // resolves to ChildNode->Node, which is Element's parent class
|
|
25
|
+
} while (_el && !isElementNode(_el));
|
|
26
|
+
return _el;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
_getAugmentPropertiesFromElement: function (elem) {
|
|
30
|
+
var shouldCaptureEl = shouldCaptureElement(elem);
|
|
31
|
+
if (!shouldCaptureEl) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
var props = {};
|
|
35
|
+
_each(elem.attributes, function (attr) {
|
|
36
|
+
if (attr.name.indexOf('data-ph-capture-attribute') === 0) {
|
|
37
|
+
var propertyKey = attr.name.replace('data-ph-capture-attribute-', '');
|
|
38
|
+
var propertyValue = attr.value;
|
|
39
|
+
if (propertyKey && propertyValue && shouldCaptureValue(propertyValue)) {
|
|
40
|
+
props[propertyKey] = propertyValue;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return props;
|
|
45
|
+
},
|
|
46
|
+
_getPropertiesFromElement: function (elem, maskInputs, maskText) {
|
|
47
|
+
var tag_name = elem.tagName.toLowerCase();
|
|
48
|
+
var props = {
|
|
49
|
+
tag_name: tag_name,
|
|
50
|
+
};
|
|
51
|
+
if (autocaptureCompatibleElements.indexOf(tag_name) > -1 && !maskText) {
|
|
52
|
+
if (tag_name.toLowerCase() === 'a' || tag_name.toLowerCase() === 'button') {
|
|
53
|
+
props['$el_text'] = getDirectAndNestedSpanText(elem);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
props['$el_text'] = getSafeText(elem);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
var classes = getClassName(elem);
|
|
60
|
+
if (classes.length > 0)
|
|
61
|
+
props['classes'] = classes.split(' ').filter(function (c) {
|
|
62
|
+
return c !== '';
|
|
63
|
+
});
|
|
64
|
+
_each(elem.attributes, function (attr) {
|
|
65
|
+
// Only capture attributes we know are safe
|
|
66
|
+
if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1)
|
|
67
|
+
return;
|
|
68
|
+
if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {
|
|
69
|
+
props['attr__' + attr.name] = attr.value;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
var nthChild = 1;
|
|
73
|
+
var nthOfType = 1;
|
|
74
|
+
var currentElem = elem;
|
|
75
|
+
while ((currentElem = this._previousElementSibling(currentElem))) {
|
|
76
|
+
// eslint-disable-line no-cond-assign
|
|
77
|
+
nthChild++;
|
|
78
|
+
if (currentElem.tagName === elem.tagName) {
|
|
79
|
+
nthOfType++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
props['nth_child'] = nthChild;
|
|
83
|
+
props['nth_of_type'] = nthOfType;
|
|
84
|
+
return props;
|
|
85
|
+
},
|
|
86
|
+
_getDefaultProperties: function (eventType) {
|
|
87
|
+
return {
|
|
88
|
+
$event_type: eventType,
|
|
89
|
+
$ce_version: 1,
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
_extractCustomPropertyValue: function (customProperty) {
|
|
93
|
+
var propValues = [];
|
|
94
|
+
_each(document.querySelectorAll(customProperty['css_selector']), function (matchedElem) {
|
|
95
|
+
var value;
|
|
96
|
+
if (['input', 'select'].indexOf(matchedElem.tagName.toLowerCase()) > -1) {
|
|
97
|
+
value = matchedElem['value'];
|
|
98
|
+
}
|
|
99
|
+
else if (matchedElem['textContent']) {
|
|
100
|
+
value = matchedElem['textContent'];
|
|
101
|
+
}
|
|
102
|
+
if (shouldCaptureValue(value)) {
|
|
103
|
+
propValues.push(value);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return propValues.join(', ');
|
|
107
|
+
},
|
|
108
|
+
// TODO: delete custom_properties after changeless typescript refactor
|
|
109
|
+
_getCustomProperties: function (targetElementList) {
|
|
110
|
+
var _this = this;
|
|
111
|
+
var props = {}; // will be deleted
|
|
112
|
+
_each(this._customProperties, function (customProperty) {
|
|
113
|
+
_each(customProperty['event_selectors'], function (eventSelector) {
|
|
114
|
+
var eventElements = document.querySelectorAll(eventSelector);
|
|
115
|
+
_each(eventElements, function (eventElement) {
|
|
116
|
+
if (_includes(targetElementList, eventElement) && shouldCaptureElement(eventElement)) {
|
|
117
|
+
props[customProperty['name']] = _this._extractCustomPropertyValue(customProperty);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
return props;
|
|
123
|
+
},
|
|
124
|
+
_getEventTarget: function (e) {
|
|
125
|
+
var _a;
|
|
126
|
+
// https://developer.mozilla.org/en-US/docs/Web/API/Event/target#Compatibility_notes
|
|
127
|
+
if (typeof e.target === 'undefined') {
|
|
128
|
+
return e.srcElement || null;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
if ((_a = e.target) === null || _a === void 0 ? void 0 : _a.shadowRoot) {
|
|
132
|
+
return e.composedPath()[0] || null;
|
|
133
|
+
}
|
|
134
|
+
return e.target || null;
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
_captureEvent: function (e, instance, eventName) {
|
|
138
|
+
var _this = this;
|
|
139
|
+
var _a;
|
|
140
|
+
if (eventName === void 0) { eventName = '$autocapture'; }
|
|
141
|
+
/*** Don't mess with this code without running IE8 tests on it ***/
|
|
142
|
+
var target = this._getEventTarget(e);
|
|
143
|
+
if (isTextNode(target)) {
|
|
144
|
+
// defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)
|
|
145
|
+
target = (target.parentNode || null);
|
|
146
|
+
}
|
|
147
|
+
if (eventName === '$autocapture' && e.type === 'click' && e instanceof MouseEvent) {
|
|
148
|
+
if ((_a = this.rageclicks) === null || _a === void 0 ? void 0 : _a.isRageClick(e.clientX, e.clientY, new Date().getTime())) {
|
|
149
|
+
this._captureEvent(e, instance, '$rageclick');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (target && shouldCaptureDomEvent(target, e, this.config)) {
|
|
153
|
+
var targetElementList = [target];
|
|
154
|
+
var curEl = target;
|
|
155
|
+
while (curEl.parentNode && !isTag(curEl, 'body')) {
|
|
156
|
+
if (isDocumentFragment(curEl.parentNode)) {
|
|
157
|
+
targetElementList.push(curEl.parentNode.host);
|
|
158
|
+
curEl = curEl.parentNode.host;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
targetElementList.push(curEl.parentNode);
|
|
162
|
+
curEl = curEl.parentNode;
|
|
163
|
+
}
|
|
164
|
+
var elementsJson_1 = [];
|
|
165
|
+
var autocaptureAugmentProperties_1 = {};
|
|
166
|
+
var href_1, explicitNoCapture_1 = false;
|
|
167
|
+
_each(targetElementList, function (el) {
|
|
168
|
+
var shouldCaptureEl = shouldCaptureElement(el);
|
|
169
|
+
// if the element or a parent element is an anchor tag
|
|
170
|
+
// include the href as a property
|
|
171
|
+
if (el.tagName.toLowerCase() === 'a') {
|
|
172
|
+
href_1 = el.getAttribute('href');
|
|
173
|
+
href_1 = shouldCaptureEl && shouldCaptureValue(href_1) && href_1;
|
|
174
|
+
}
|
|
175
|
+
// allow users to programmatically prevent capturing of elements by adding class 'ph-no-capture'
|
|
176
|
+
var classes = getClassName(el).split(' ');
|
|
177
|
+
if (_includes(classes, 'ph-no-capture')) {
|
|
178
|
+
explicitNoCapture_1 = true;
|
|
179
|
+
}
|
|
180
|
+
elementsJson_1.push(_this._getPropertiesFromElement(el, instance.get_config('mask_all_element_attributes'), instance.get_config('mask_all_text')));
|
|
181
|
+
var augmentProperties = _this._getAugmentPropertiesFromElement(el);
|
|
182
|
+
_extend(autocaptureAugmentProperties_1, augmentProperties);
|
|
183
|
+
});
|
|
184
|
+
if (!instance.get_config('mask_all_text')) {
|
|
185
|
+
// if the element is a button or anchor tag get the span text from any
|
|
186
|
+
// children and include it as/with the text property on the parent element
|
|
187
|
+
if (target.tagName.toLowerCase() === 'a' || target.tagName.toLowerCase() === 'button') {
|
|
188
|
+
elementsJson_1[0]['$el_text'] = getDirectAndNestedSpanText(target);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
elementsJson_1[0]['$el_text'] = getSafeText(target);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (href_1) {
|
|
195
|
+
elementsJson_1[0]['attr__href'] = href_1;
|
|
196
|
+
}
|
|
197
|
+
if (explicitNoCapture_1) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
var props = _extend(this._getDefaultProperties(e.type), {
|
|
201
|
+
$elements: elementsJson_1,
|
|
202
|
+
}, this._getCustomProperties(targetElementList), autocaptureAugmentProperties_1);
|
|
203
|
+
instance.capture(eventName, props);
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
// only reason is to stub for unit tests
|
|
208
|
+
// since you can't override window.location props
|
|
209
|
+
_navigate: function (href) {
|
|
210
|
+
window.location.href = href;
|
|
211
|
+
},
|
|
212
|
+
_addDomEventHandlers: function (instance) {
|
|
213
|
+
var _this = this;
|
|
214
|
+
var handler = function (e) {
|
|
215
|
+
e = e || window.event;
|
|
216
|
+
_this._captureEvent(e, instance);
|
|
217
|
+
};
|
|
218
|
+
_register_event(document, 'submit', handler, false, true);
|
|
219
|
+
_register_event(document, 'change', handler, false, true);
|
|
220
|
+
_register_event(document, 'click', handler, false, true);
|
|
221
|
+
},
|
|
222
|
+
_customProperties: [],
|
|
223
|
+
rageclicks: null,
|
|
224
|
+
config: undefined,
|
|
225
|
+
init: function (instance) {
|
|
226
|
+
var _a;
|
|
227
|
+
if (typeof instance.__autocapture !== 'boolean') {
|
|
228
|
+
this.config = instance.__autocapture;
|
|
229
|
+
}
|
|
230
|
+
// precompile the regex
|
|
231
|
+
if ((_a = this.config) === null || _a === void 0 ? void 0 : _a.url_allowlist) {
|
|
232
|
+
this.config.url_allowlist = this.config.url_allowlist.map(function (url) { return new RegExp(url); });
|
|
233
|
+
}
|
|
234
|
+
this.rageclicks = new RageClick(instance.get_config('rageclick'));
|
|
235
|
+
},
|
|
236
|
+
afterDecideResponse: function (response, instance) {
|
|
237
|
+
var _a;
|
|
238
|
+
var token = instance.get_config('token');
|
|
239
|
+
if (this._initializedTokens.indexOf(token) > -1) {
|
|
240
|
+
logger.log('autocapture already initialized for token "' + token + '"');
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (instance.persistence) {
|
|
244
|
+
instance.persistence.register((_a = {},
|
|
245
|
+
_a[AUTOCAPTURE_DISABLED_SERVER_SIDE] = !!response['autocapture_opt_out'],
|
|
246
|
+
_a));
|
|
247
|
+
}
|
|
248
|
+
// store this in-memory incase persistence is disabled
|
|
249
|
+
this._isDisabledServerSide = !!response['autocapture_opt_out'];
|
|
250
|
+
this._setIsAutocaptureEnabled(instance);
|
|
251
|
+
this._initializedTokens.push(token);
|
|
252
|
+
if (response &&
|
|
253
|
+
response['config'] &&
|
|
254
|
+
response['config']['enable_collect_everything'] &&
|
|
255
|
+
this._isAutocaptureEnabled) {
|
|
256
|
+
// TODO: delete custom_properties after changeless typescript refactor
|
|
257
|
+
if (response['custom_properties']) {
|
|
258
|
+
this._customProperties = response['custom_properties'];
|
|
259
|
+
}
|
|
260
|
+
this._addDomEventHandlers(instance);
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
instance['__autocapture'] = false;
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
// this is a mechanism to ramp up CE with no server-side interaction.
|
|
267
|
+
// when CE is active, every page load results in a decide request. we
|
|
268
|
+
// need to gently ramp this up so we don't overload decide. this decides
|
|
269
|
+
// deterministically if CE is enabled for this project by modding the char
|
|
270
|
+
// value of the project token.
|
|
271
|
+
enabledForProject: function (token, numBuckets, numEnabledBuckets) {
|
|
272
|
+
if (!token) {
|
|
273
|
+
return true;
|
|
274
|
+
}
|
|
275
|
+
numBuckets = !_isUndefined(numBuckets) ? numBuckets : 10;
|
|
276
|
+
numEnabledBuckets = !_isUndefined(numEnabledBuckets) ? numEnabledBuckets : 10;
|
|
277
|
+
var charCodeSum = 0;
|
|
278
|
+
for (var i = 0; i < token.length; i++) {
|
|
279
|
+
charCodeSum += token.charCodeAt(i);
|
|
280
|
+
}
|
|
281
|
+
return charCodeSum % numBuckets < numEnabledBuckets;
|
|
282
|
+
},
|
|
283
|
+
isBrowserSupported: function () {
|
|
284
|
+
return _isFunction(document.querySelectorAll);
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
_bind_instance_methods(autocapture);
|
|
288
|
+
_safewrap_instance_methods(autocapture);
|
|
289
|
+
export { autocapture };
|
|
290
|
+
//# sourceMappingURL=autocapture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocapture.js","sourceRoot":"","sources":["../../src/autocapture.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,KAAK,EACL,OAAO,EACP,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,EACf,0BAA0B,EAC1B,MAAM,GACT,MAAM,SAAS,CAAA;AAChB,OAAO,EACH,YAAY,EACZ,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,GAC7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAG9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAA;AAE9D,IAAM,WAAW,GAAG;IAChB,kBAAkB,EAAE,EAAc;IAClC,qBAAqB,EAAE,IAAsB;IAC7C,qBAAqB,EAAE,KAAgB;IAEvC,wBAAwB,EAAE,UAAU,QAAiB;;QACjD,IAAM,oBAAoB,GACtB,IAAI,CAAC,qBAAqB,KAAK,IAAI;YAC/B,CAAC,CAAC,CAAC,CAAC,CAAA,MAAA,QAAQ,CAAC,WAAW,0CAAE,KAAK,CAAC,gCAAgC,CAAC,CAAA;YACjE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAA;QACpC,IAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;QAChE,IAAI,CAAC,qBAAqB,GAAG,mBAAmB,IAAI,CAAC,oBAAoB,CAAA;IAC7E,CAAC;IAED,uBAAuB,EAAE,UAAU,EAAW;QAC1C,IAAI,EAAE,CAAC,sBAAsB,EAAE;YAC3B,OAAO,EAAE,CAAC,sBAAsB,CAAA;SACnC;aAAM;YACH,IAAI,GAAG,GAAmB,EAAE,CAAA;YAC5B,GAAG;gBACC,GAAG,GAAG,GAAG,CAAC,eAAiC,CAAA,CAAC,+DAA+D;aAC9G,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAC;YACpC,OAAO,GAAG,CAAA;SACb;IACL,CAAC;IAED,gCAAgC,EAAE,UAAU,IAAa;QACrD,IAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO,EAAE,CAAA;SACZ;QAED,IAAM,KAAK,GAAe,EAAE,CAAA;QAE5B,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,IAAU;YACvC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,KAAK,CAAC,EAAE;gBACtD,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAA;gBACvE,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAA;gBAChC,IAAI,WAAW,IAAI,aAAa,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAE;oBACnE,KAAK,CAAC,WAAW,CAAC,GAAG,aAAa,CAAA;iBACrC;aACJ;QACL,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,yBAAyB,EAAE,UAAU,IAAa,EAAE,UAAmB,EAAE,QAAiB;QACtF,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QAC3C,IAAM,KAAK,GAAe;YACtB,QAAQ,EAAE,QAAQ;SACrB,CAAA;QACD,IAAI,6BAA6B,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnE,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;gBACvE,KAAK,CAAC,UAAU,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAA;aACvD;iBAAM;gBACH,KAAK,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;aACxC;SACJ;QAED,IAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gBACpD,OAAO,CAAC,KAAK,EAAE,CAAA;YACnB,CAAC,CAAC,CAAA;QAEN,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,IAAU;YACvC,2CAA2C;YAC3C,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAM;YAEzF,IAAI,CAAC,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjF,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;aAC3C;QACL,CAAC,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,WAAW,GAAmB,IAAI,CAAA;QACtC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,EAAE;YAC9D,qCAAqC;YACrC,QAAQ,EAAE,CAAA;YACV,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;gBACtC,SAAS,EAAE,CAAA;aACd;SACJ;QACD,KAAK,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAA;QAC7B,KAAK,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;QAEhC,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,qBAAqB,EAAE,UAAU,SAAiB;QAC9C,OAAO;YACH,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,CAAC;SACjB,CAAA;IACL,CAAC;IAED,2BAA2B,EAAE,UAAU,cAAyC;QAC5E,IAAM,UAAU,GAAa,EAAE,CAAA;QAC/B,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,WAAW;YAClF,IAAI,KAAK,CAAA;YAET,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;gBACrE,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;aAC/B;iBAAM,IAAI,WAAW,CAAC,aAAa,CAAC,EAAE;gBACnC,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,CAAA;aACrC;YAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACzB;QACL,CAAC,CAAC,CAAA;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,sEAAsE;IACtE,oBAAoB,EAAE,UAAU,iBAA4B;QAAtC,iBAarB;QAZG,IAAM,KAAK,GAAe,EAAE,CAAA,CAAC,kBAAkB;QAC/C,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAC,cAAc;YACzC,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAC,aAAa;gBACnD,IAAM,aAAa,GAAG,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAA;gBAC9D,KAAK,CAAC,aAAa,EAAE,UAAC,YAAY;oBAC9B,IAAI,SAAS,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,oBAAoB,CAAC,YAAY,CAAC,EAAE;wBAClF,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI,CAAC,2BAA2B,CAAC,cAAc,CAAC,CAAA;qBACnF;gBACL,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,eAAe,EAAE,UAAU,CAAQ;;QAC/B,oFAAoF;QACpF,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE;YACjC,OAAQ,CAAC,CAAC,UAAsB,IAAI,IAAI,CAAA;SAC3C;aAAM;YACH,IAAI,MAAC,CAAC,CAAC,MAAsB,0CAAE,UAAU,EAAE;gBACvC,OAAQ,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAa,IAAI,IAAI,CAAA;aAClD;YACD,OAAQ,CAAC,CAAC,MAAkB,IAAI,IAAI,CAAA;SACvC;IACL,CAAC;IAED,aAAa,EAAE,UAAU,CAAQ,EAAE,QAAiB,EAAE,SAA0B;QAAjE,iBAyFd;;QAzFqD,0BAAA,EAAA,0BAA0B;QAC5E,mEAAmE;QACnE,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YACpB,+EAA+E;YAC/E,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAmB,CAAA;SACzD;QAED,IAAI,SAAS,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,YAAY,UAAU,EAAE;YAC/E,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE;gBAC1E,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;aAChD;SACJ;QAED,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;YACzD,IAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,KAAK,GAAG,MAAM,CAAA;YAClB,OAAO,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE;gBAC9C,IAAI,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;oBACtC,iBAAiB,CAAC,IAAI,CAAE,KAAK,CAAC,UAAkB,CAAC,IAAI,CAAC,CAAA;oBACtD,KAAK,GAAI,KAAK,CAAC,UAAkB,CAAC,IAAI,CAAA;oBACtC,SAAQ;iBACX;gBACD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAqB,CAAC,CAAA;gBACnD,KAAK,GAAG,KAAK,CAAC,UAAqB,CAAA;aACtC;YAED,IAAM,cAAY,GAAiB,EAAE,CAAA;YACrC,IAAM,8BAA4B,GAAe,EAAE,CAAA;YACnD,IAAI,MAAI,EACJ,mBAAiB,GAAG,KAAK,CAAA;YAC7B,KAAK,CAAC,iBAAiB,EAAE,UAAC,EAAE;gBACxB,IAAM,eAAe,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAA;gBAEhD,sDAAsD;gBACtD,iCAAiC;gBACjC,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE;oBAClC,MAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;oBAC9B,MAAI,GAAG,eAAe,IAAI,kBAAkB,CAAC,MAAI,CAAC,IAAI,MAAI,CAAA;iBAC7D;gBAED,gGAAgG;gBAChG,IAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC3C,IAAI,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE;oBACrC,mBAAiB,GAAG,IAAI,CAAA;iBAC3B;gBAED,cAAY,CAAC,IAAI,CACb,KAAI,CAAC,yBAAyB,CAC1B,EAAE,EACF,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAClD,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CACvC,CACJ,CAAA;gBAED,IAAM,iBAAiB,GAAG,KAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAA;gBACnE,OAAO,CAAC,8BAA4B,EAAE,iBAAiB,CAAC,CAAA;YAC5D,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;gBACvC,sEAAsE;gBACtE,0EAA0E;gBAC1E,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;oBACnF,cAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;iBACnE;qBAAM;oBACH,cAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;iBACpD;aACJ;YAED,IAAI,MAAI,EAAE;gBACN,cAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,MAAI,CAAA;aACvC;YAED,IAAI,mBAAiB,EAAE;gBACnB,OAAO,KAAK,CAAA;aACf;YAED,IAAM,KAAK,GAAG,OAAO,CACjB,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,EAClC;gBACI,SAAS,EAAE,cAAY;aAC1B,EACD,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC5C,8BAA4B,CAC/B,CAAA;YAED,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAClC,OAAO,IAAI,CAAA;SACd;IACL,CAAC;IAED,wCAAwC;IACxC,iDAAiD;IACjD,SAAS,EAAE,UAAU,IAAY;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,oBAAoB,EAAE,UAAU,QAAiB;QAA3B,iBAQrB;QAPG,IAAM,OAAO,GAAG,UAAC,CAAQ;YACrB,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAA;YACrB,KAAI,CAAC,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;QACnC,CAAC,CAAA;QACD,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACzD,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACzD,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,iBAAiB,EAAE,EAAiC;IACpD,UAAU,EAAE,IAAwB;IACpC,MAAM,EAAE,SAA0C;IAElD,IAAI,EAAE,UAAU,QAAiB;;QAC7B,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,SAAS,EAAE;YAC7C,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAA;SACvC;QAED,uBAAuB;QACvB,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,aAAa,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,IAAI,MAAM,CAAC,GAAG,CAAC,EAAf,CAAe,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,mBAAmB,EAAE,UAAU,QAAwB,EAAE,QAAiB;;QACtE,IAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,6CAA6C,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;YACvE,OAAM;SACT;QAED,IAAI,QAAQ,CAAC,WAAW,EAAE;YACtB,QAAQ,CAAC,WAAW,CAAC,QAAQ;gBACzB,GAAC,gCAAgC,IAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;oBACvE,CAAA;SACL;QACD,sDAAsD;QACtD,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;QAE9D,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAA;QAEvC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEnC,IACI,QAAQ;YACR,QAAQ,CAAC,QAAQ,CAAC;YAClB,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC;YAC/C,IAAI,CAAC,qBAAqB,EAC5B;YACE,sEAAsE;YACtE,IAAI,QAAQ,CAAC,mBAAmB,CAAC,EAAE;gBAC/B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA;aACzD;YACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;SACtC;aAAM;YACH,QAAQ,CAAC,eAAe,CAAC,GAAG,KAAK,CAAA;SACpC;IACL,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,wEAAwE;IACxE,0EAA0E;IAC1E,8BAA8B;IAC9B,iBAAiB,EAAE,UACf,KAAgC,EAChC,UAAkB,EAClB,iBAAyB;QAEzB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAA;SACd;QACD,UAAU,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;QACxD,iBAAiB,GAAG,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7E,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACrC;QACD,OAAO,WAAW,GAAG,UAAU,GAAG,iBAAiB,CAAA;IACvD,CAAC;IAED,kBAAkB,EAAE;QAChB,OAAO,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IACjD,CAAC;CACJ,CAAA;AAED,sBAAsB,CAAC,WAAW,CAAC,CAAA;AACnC,0BAA0B,CAAC,WAAW,CAAC,CAAA;AAEvC,OAAO,EAAE,WAAW,EAAE,CAAA","sourcesContent":["import {\n _bind_instance_methods,\n _each,\n _extend,\n _includes,\n _isFunction,\n _isUndefined,\n _register_event,\n _safewrap_instance_methods,\n logger,\n} from './utils'\nimport {\n getClassName,\n getSafeText,\n isElementNode,\n isSensitiveElement,\n isTag,\n isTextNode,\n shouldCaptureDomEvent,\n shouldCaptureElement,\n shouldCaptureValue,\n autocaptureCompatibleElements,\n isAngularStyleAttr,\n isDocumentFragment,\n getDirectAndNestedSpanText,\n} from './autocapture-utils'\nimport RageClick from './extensions/rageclick'\nimport { AutocaptureConfig, AutoCaptureCustomProperty, DecideResponse, Properties } from './types'\nimport { PostHog } from './posthog-core'\nimport { AUTOCAPTURE_DISABLED_SERVER_SIDE } from './constants'\n\nconst autocapture = {\n _initializedTokens: [] as string[],\n _isDisabledServerSide: null as boolean | null,\n _isAutocaptureEnabled: false as boolean,\n\n _setIsAutocaptureEnabled: function (instance: PostHog): void {\n const disabled_server_side =\n this._isDisabledServerSide === null\n ? !!instance.persistence?.props[AUTOCAPTURE_DISABLED_SERVER_SIDE]\n : this._isDisabledServerSide\n const enabled_client_side = !!instance.get_config('autocapture')\n this._isAutocaptureEnabled = enabled_client_side && !disabled_server_side\n },\n\n _previousElementSibling: function (el: Element): Element | null {\n if (el.previousElementSibling) {\n return el.previousElementSibling\n } else {\n let _el: Element | null = el\n do {\n _el = _el.previousSibling as Element | null // resolves to ChildNode->Node, which is Element's parent class\n } while (_el && !isElementNode(_el))\n return _el\n }\n },\n\n _getAugmentPropertiesFromElement: function (elem: Element): Properties {\n const shouldCaptureEl = shouldCaptureElement(elem)\n if (!shouldCaptureEl) {\n return {}\n }\n\n const props: Properties = {}\n\n _each(elem.attributes, function (attr: Attr) {\n if (attr.name.indexOf('data-ph-capture-attribute') === 0) {\n const propertyKey = attr.name.replace('data-ph-capture-attribute-', '')\n const propertyValue = attr.value\n if (propertyKey && propertyValue && shouldCaptureValue(propertyValue)) {\n props[propertyKey] = propertyValue\n }\n }\n })\n return props\n },\n\n _getPropertiesFromElement: function (elem: Element, maskInputs: boolean, maskText: boolean): Properties {\n const tag_name = elem.tagName.toLowerCase()\n const props: Properties = {\n tag_name: tag_name,\n }\n if (autocaptureCompatibleElements.indexOf(tag_name) > -1 && !maskText) {\n if (tag_name.toLowerCase() === 'a' || tag_name.toLowerCase() === 'button') {\n props['$el_text'] = getDirectAndNestedSpanText(elem)\n } else {\n props['$el_text'] = getSafeText(elem)\n }\n }\n\n const classes = getClassName(elem)\n if (classes.length > 0)\n props['classes'] = classes.split(' ').filter(function (c) {\n return c !== ''\n })\n\n _each(elem.attributes, function (attr: Attr) {\n // Only capture attributes we know are safe\n if (isSensitiveElement(elem) && ['name', 'id', 'class'].indexOf(attr.name) === -1) return\n\n if (!maskInputs && shouldCaptureValue(attr.value) && !isAngularStyleAttr(attr.name)) {\n props['attr__' + attr.name] = attr.value\n }\n })\n\n let nthChild = 1\n let nthOfType = 1\n let currentElem: Element | null = elem\n while ((currentElem = this._previousElementSibling(currentElem))) {\n // eslint-disable-line no-cond-assign\n nthChild++\n if (currentElem.tagName === elem.tagName) {\n nthOfType++\n }\n }\n props['nth_child'] = nthChild\n props['nth_of_type'] = nthOfType\n\n return props\n },\n\n _getDefaultProperties: function (eventType: string): Properties {\n return {\n $event_type: eventType,\n $ce_version: 1,\n }\n },\n\n _extractCustomPropertyValue: function (customProperty: AutoCaptureCustomProperty): string {\n const propValues: string[] = []\n _each(document.querySelectorAll(customProperty['css_selector']), function (matchedElem) {\n let value\n\n if (['input', 'select'].indexOf(matchedElem.tagName.toLowerCase()) > -1) {\n value = matchedElem['value']\n } else if (matchedElem['textContent']) {\n value = matchedElem['textContent']\n }\n\n if (shouldCaptureValue(value)) {\n propValues.push(value)\n }\n })\n return propValues.join(', ')\n },\n\n // TODO: delete custom_properties after changeless typescript refactor\n _getCustomProperties: function (targetElementList: Element[]): Properties {\n const props: Properties = {} // will be deleted\n _each(this._customProperties, (customProperty) => {\n _each(customProperty['event_selectors'], (eventSelector) => {\n const eventElements = document.querySelectorAll(eventSelector)\n _each(eventElements, (eventElement) => {\n if (_includes(targetElementList, eventElement) && shouldCaptureElement(eventElement)) {\n props[customProperty['name']] = this._extractCustomPropertyValue(customProperty)\n }\n })\n })\n })\n return props\n },\n\n _getEventTarget: function (e: Event): Element | null {\n // https://developer.mozilla.org/en-US/docs/Web/API/Event/target#Compatibility_notes\n if (typeof e.target === 'undefined') {\n return (e.srcElement as Element) || null\n } else {\n if ((e.target as HTMLElement)?.shadowRoot) {\n return (e.composedPath()[0] as Element) || null\n }\n return (e.target as Element) || null\n }\n },\n\n _captureEvent: function (e: Event, instance: PostHog, eventName = '$autocapture'): boolean | void {\n /*** Don't mess with this code without running IE8 tests on it ***/\n let target = this._getEventTarget(e)\n if (isTextNode(target)) {\n // defeat Safari bug (see: http://www.quirksmode.org/js/events_properties.html)\n target = (target.parentNode || null) as Element | null\n }\n\n if (eventName === '$autocapture' && e.type === 'click' && e instanceof MouseEvent) {\n if (this.rageclicks?.isRageClick(e.clientX, e.clientY, new Date().getTime())) {\n this._captureEvent(e, instance, '$rageclick')\n }\n }\n\n if (target && shouldCaptureDomEvent(target, e, this.config)) {\n const targetElementList = [target]\n let curEl = target\n while (curEl.parentNode && !isTag(curEl, 'body')) {\n if (isDocumentFragment(curEl.parentNode)) {\n targetElementList.push((curEl.parentNode as any).host)\n curEl = (curEl.parentNode as any).host\n continue\n }\n targetElementList.push(curEl.parentNode as Element)\n curEl = curEl.parentNode as Element\n }\n\n const elementsJson: Properties[] = []\n const autocaptureAugmentProperties: Properties = {}\n let href,\n explicitNoCapture = false\n _each(targetElementList, (el) => {\n const shouldCaptureEl = shouldCaptureElement(el)\n\n // if the element or a parent element is an anchor tag\n // include the href as a property\n if (el.tagName.toLowerCase() === 'a') {\n href = el.getAttribute('href')\n href = shouldCaptureEl && shouldCaptureValue(href) && href\n }\n\n // allow users to programmatically prevent capturing of elements by adding class 'ph-no-capture'\n const classes = getClassName(el).split(' ')\n if (_includes(classes, 'ph-no-capture')) {\n explicitNoCapture = true\n }\n\n elementsJson.push(\n this._getPropertiesFromElement(\n el,\n instance.get_config('mask_all_element_attributes'),\n instance.get_config('mask_all_text')\n )\n )\n\n const augmentProperties = this._getAugmentPropertiesFromElement(el)\n _extend(autocaptureAugmentProperties, augmentProperties)\n })\n\n if (!instance.get_config('mask_all_text')) {\n // if the element is a button or anchor tag get the span text from any\n // children and include it as/with the text property on the parent element\n if (target.tagName.toLowerCase() === 'a' || target.tagName.toLowerCase() === 'button') {\n elementsJson[0]['$el_text'] = getDirectAndNestedSpanText(target)\n } else {\n elementsJson[0]['$el_text'] = getSafeText(target)\n }\n }\n\n if (href) {\n elementsJson[0]['attr__href'] = href\n }\n\n if (explicitNoCapture) {\n return false\n }\n\n const props = _extend(\n this._getDefaultProperties(e.type),\n {\n $elements: elementsJson,\n },\n this._getCustomProperties(targetElementList),\n autocaptureAugmentProperties\n )\n\n instance.capture(eventName, props)\n return true\n }\n },\n\n // only reason is to stub for unit tests\n // since you can't override window.location props\n _navigate: function (href: string): void {\n window.location.href = href\n },\n\n _addDomEventHandlers: function (instance: PostHog): void {\n const handler = (e: Event) => {\n e = e || window.event\n this._captureEvent(e, instance)\n }\n _register_event(document, 'submit', handler, false, true)\n _register_event(document, 'change', handler, false, true)\n _register_event(document, 'click', handler, false, true)\n },\n\n _customProperties: [] as AutoCaptureCustomProperty[],\n rageclicks: null as RageClick | null,\n config: undefined as AutocaptureConfig | undefined,\n\n init: function (instance: PostHog): void {\n if (typeof instance.__autocapture !== 'boolean') {\n this.config = instance.__autocapture\n }\n\n // precompile the regex\n if (this.config?.url_allowlist) {\n this.config.url_allowlist = this.config.url_allowlist.map((url) => new RegExp(url))\n }\n\n this.rageclicks = new RageClick(instance.get_config('rageclick'))\n },\n\n afterDecideResponse: function (response: DecideResponse, instance: PostHog): void {\n const token = instance.get_config('token')\n if (this._initializedTokens.indexOf(token) > -1) {\n logger.log('autocapture already initialized for token \"' + token + '\"')\n return\n }\n\n if (instance.persistence) {\n instance.persistence.register({\n [AUTOCAPTURE_DISABLED_SERVER_SIDE]: !!response['autocapture_opt_out'],\n })\n }\n // store this in-memory incase persistence is disabled\n this._isDisabledServerSide = !!response['autocapture_opt_out']\n\n this._setIsAutocaptureEnabled(instance)\n\n this._initializedTokens.push(token)\n\n if (\n response &&\n response['config'] &&\n response['config']['enable_collect_everything'] &&\n this._isAutocaptureEnabled\n ) {\n // TODO: delete custom_properties after changeless typescript refactor\n if (response['custom_properties']) {\n this._customProperties = response['custom_properties']\n }\n this._addDomEventHandlers(instance)\n } else {\n instance['__autocapture'] = false\n }\n },\n\n // this is a mechanism to ramp up CE with no server-side interaction.\n // when CE is active, every page load results in a decide request. we\n // need to gently ramp this up so we don't overload decide. this decides\n // deterministically if CE is enabled for this project by modding the char\n // value of the project token.\n enabledForProject: function (\n token: string | null | undefined,\n numBuckets: number,\n numEnabledBuckets: number\n ): boolean {\n if (!token) {\n return true\n }\n numBuckets = !_isUndefined(numBuckets) ? numBuckets : 10\n numEnabledBuckets = !_isUndefined(numEnabledBuckets) ? numEnabledBuckets : 10\n let charCodeSum = 0\n for (let i = 0; i < token.length; i++) {\n charCodeSum += token.charCodeAt(i)\n }\n return charCodeSum % numBuckets < numEnabledBuckets\n },\n\n isBrowserSupported: function (): boolean {\n return _isFunction(document.querySelectorAll)\n },\n}\n\n_bind_instance_methods(autocapture)\n_safewrap_instance_methods(autocapture)\n\nexport { autocapture }\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class RequestQueueScaffold {
|
|
2
|
+
isPolling: boolean;
|
|
3
|
+
_event_queue: any[];
|
|
4
|
+
_empty_queue_count: number;
|
|
5
|
+
_poller: number | undefined;
|
|
6
|
+
_pollInterval: number;
|
|
7
|
+
constructor(pollInterval?: number);
|
|
8
|
+
setPollInterval(interval: number): void;
|
|
9
|
+
poll(): void;
|
|
10
|
+
unload(): void;
|
|
11
|
+
getTime(): number;
|
|
12
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var RequestQueueScaffold = /** @class */ (function () {
|
|
2
|
+
function RequestQueueScaffold(pollInterval) {
|
|
3
|
+
if (pollInterval === void 0) { pollInterval = 3000; }
|
|
4
|
+
this.isPolling = true; // flag to continue to recursively poll or not
|
|
5
|
+
this._event_queue = [];
|
|
6
|
+
this._empty_queue_count = 0; // to track empty polls
|
|
7
|
+
this._poller = undefined; // to become interval for reference to clear later
|
|
8
|
+
this._pollInterval = pollInterval;
|
|
9
|
+
}
|
|
10
|
+
RequestQueueScaffold.prototype.setPollInterval = function (interval) {
|
|
11
|
+
this._pollInterval = interval;
|
|
12
|
+
// Reset interval if running already
|
|
13
|
+
if (this.isPolling) {
|
|
14
|
+
this.poll();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
// // eslint-disable-next-line no-unused-vars
|
|
18
|
+
// enqueue(_requestData: Record<string, any>): void {
|
|
19
|
+
// return
|
|
20
|
+
// }
|
|
21
|
+
RequestQueueScaffold.prototype.poll = function () {
|
|
22
|
+
return;
|
|
23
|
+
};
|
|
24
|
+
RequestQueueScaffold.prototype.unload = function () {
|
|
25
|
+
return;
|
|
26
|
+
};
|
|
27
|
+
RequestQueueScaffold.prototype.getTime = function () {
|
|
28
|
+
return new Date().getTime();
|
|
29
|
+
};
|
|
30
|
+
return RequestQueueScaffold;
|
|
31
|
+
}());
|
|
32
|
+
export { RequestQueueScaffold };
|
|
33
|
+
//# sourceMappingURL=base-request-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-request-queue.js","sourceRoot":"","sources":["../../src/base-request-queue.ts"],"names":[],"mappings":"AAAA;IAOI,8BAAY,YAAmB;QAAnB,6BAAA,EAAA,mBAAmB;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA,CAAC,8CAA8C;QACpE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA,CAAC,uBAAuB;QACnD,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA,CAAC,kDAAkD;QAC3E,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;IACrC,CAAC;IAED,8CAAe,GAAf,UAAgB,QAAgB;QAC5B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAA;QAC7B,oCAAoC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,IAAI,EAAE,CAAA;SACd;IACL,CAAC;IAED,6CAA6C;IAC7C,qDAAqD;IACrD,aAAa;IACb,IAAI;IAEJ,mCAAI,GAAJ;QACI,OAAM;IACV,CAAC;IAED,qCAAM,GAAN;QACI,OAAM;IACV,CAAC;IAED,sCAAO,GAAP;QACI,OAAO,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAC/B,CAAC;IACL,2BAAC;AAAD,CAAC,AAvCD,IAuCC","sourcesContent":["export class RequestQueueScaffold {\n isPolling: boolean // flag to continue to recursively poll or not\n _event_queue: any[]\n _empty_queue_count: number // to track empty polls\n _poller: number | undefined // to become interval for reference to clear later\n _pollInterval: number\n\n constructor(pollInterval = 3000) {\n this.isPolling = true // flag to continue to recursively poll or not\n this._event_queue = []\n this._empty_queue_count = 0 // to track empty polls\n this._poller = undefined // to become interval for reference to clear later\n this._pollInterval = pollInterval\n }\n\n setPollInterval(interval: number): void {\n this._pollInterval = interval\n // Reset interval if running already\n if (this.isPolling) {\n this.poll()\n }\n }\n\n // // eslint-disable-next-line no-unused-vars\n // enqueue(_requestData: Record<string, any>): void {\n // return\n // }\n\n poll(): void {\n return\n }\n\n unload(): void {\n return\n }\n\n getTime(): number {\n return new Date().getTime()\n }\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Compression, CompressionData, XHROptions } from './types';
|
|
2
|
+
export declare function decideCompression(compressionSupport: Partial<Record<Compression, boolean>>): Compression;
|
|
3
|
+
export declare function compressData(compression: Compression, jsonData: string, options: XHROptions): [CompressionData | Uint8Array, XHROptions];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { gzipSync, strToU8 } from 'fflate';
|
|
13
|
+
import { _base64Encode } from './utils';
|
|
14
|
+
import { Compression } from './types';
|
|
15
|
+
export function decideCompression(compressionSupport) {
|
|
16
|
+
if (compressionSupport[Compression.GZipJS]) {
|
|
17
|
+
return Compression.GZipJS;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return Compression.Base64;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function compressData(compression, jsonData, options) {
|
|
24
|
+
if (compression === Compression.GZipJS) {
|
|
25
|
+
// :TRICKY: This returns an UInt8Array. We don't encode this to a string - returning a blob will do this for us.
|
|
26
|
+
return [
|
|
27
|
+
gzipSync(strToU8(jsonData), { mtime: 0 }),
|
|
28
|
+
__assign(__assign({}, options), { blob: true, urlQueryArgs: { compression: Compression.GZipJS } }),
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return [{ data: _base64Encode(jsonData) }, options];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/compression.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,WAAW,EAA+B,MAAM,SAAS,CAAA;AAElE,MAAM,UAAU,iBAAiB,CAAC,kBAAyD;IACvF,IAAI,kBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QACxC,OAAO,WAAW,CAAC,MAAM,CAAA;KAC5B;SAAM;QACH,OAAO,WAAW,CAAC,MAAM,CAAA;KAC5B;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,WAAwB,EACxB,QAAgB,EAChB,OAAmB;IAEnB,IAAI,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE;QACpC,gHAAgH;QAChH,OAAO;YACH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;kCACpC,OAAO,KAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE;SAC9E,CAAA;KACJ;SAAM;QACH,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;KACtD;AACL,CAAC","sourcesContent":["import { gzipSync, strToU8 } from 'fflate'\nimport { _base64Encode } from './utils'\nimport { Compression, CompressionData, XHROptions } from './types'\n\nexport function decideCompression(compressionSupport: Partial<Record<Compression, boolean>>): Compression {\n if (compressionSupport[Compression.GZipJS]) {\n return Compression.GZipJS\n } else {\n return Compression.Base64\n }\n}\n\nexport function compressData(\n compression: Compression,\n jsonData: string,\n options: XHROptions\n): [CompressionData | Uint8Array, XHROptions] {\n if (compression === Compression.GZipJS) {\n // :TRICKY: This returns an UInt8Array. We don't encode this to a string - returning a blob will do this for us.\n return [\n gzipSync(strToU8(jsonData), { mtime: 0 }),\n { ...options, blob: true, urlQueryArgs: { compression: Compression.GZipJS } },\n ]\n } else {\n return [{ data: _base64Encode(jsonData) }, options]\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { version } from '../package.json';
|
|
2
|
+
// overriden in posthog-core,
|
|
3
|
+
// e.g. Config.DEBUG = Config.DEBUG || instance.get_config('debug')
|
|
4
|
+
var Config = {
|
|
5
|
+
DEBUG: false,
|
|
6
|
+
LIB_VERSION: version,
|
|
7
|
+
};
|
|
8
|
+
export default Config;
|
|
9
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC,6BAA6B;AAC7B,uEAAuE;AACvE,IAAM,MAAM,GAAG;IACX,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,OAAO;CACvB,CAAA;AAED,eAAe,MAAM,CAAA","sourcesContent":["import { version } from '../package.json'\n\n// overriden in posthog-core,\n// e.g. Config.DEBUG = Config.DEBUG || instance.get_config('debug')\nconst Config = {\n DEBUG: false,\n LIB_VERSION: version,\n}\n\nexport default Config\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const PEOPLE_DISTINCT_ID_KEY = "$people_distinct_id";
|
|
2
|
+
export declare const DISTINCT_ID = "distinct_id";
|
|
3
|
+
export declare const ALIAS_ID_KEY = "__alias";
|
|
4
|
+
export declare const CAMPAIGN_IDS_KEY = "__cmpns";
|
|
5
|
+
export declare const EVENT_TIMERS_KEY = "__timers";
|
|
6
|
+
export declare const AUTOCAPTURE_DISABLED_SERVER_SIDE = "$autocapture_disabled_server_side";
|
|
7
|
+
export declare const SESSION_RECORDING_ENABLED_SERVER_SIDE = "$session_recording_enabled_server_side";
|
|
8
|
+
export declare const CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = "$console_log_recording_enabled_server_side";
|
|
9
|
+
export declare const SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE = "$session_recording_recorder_version_server_side";
|
|
10
|
+
export declare const SESSION_ID = "$sesid";
|
|
11
|
+
export declare const ENABLED_FEATURE_FLAGS = "$enabled_feature_flags";
|
|
12
|
+
export declare const PERSISTENCE_EARLY_ACCESS_FEATURES = "$early_access_features";
|
|
13
|
+
export declare const STORED_PERSON_PROPERTIES_KEY = "$stored_person_properties";
|
|
14
|
+
export declare const STORED_GROUP_PROPERTIES_KEY = "$stored_group_properties";
|
|
15
|
+
export declare const SURVEYS = "$surveys";
|
|
16
|
+
export declare const FLAG_CALL_REPORTED = "$flag_call_reported";
|
|
17
|
+
export declare const USER_STATE = "$user_state";
|
|
18
|
+
export declare const POSTHOG_QUOTA_LIMITED = "$posthog_quota_limited";
|
|
19
|
+
export declare const PERSISTENCE_RESERVED_PROPERTIES: string[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Constants
|
|
3
|
+
*/
|
|
4
|
+
/* PROPERTY KEYS */
|
|
5
|
+
// This key is deprecated, but we want to check for it to see whether aliasing is allowed.
|
|
6
|
+
export var PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id';
|
|
7
|
+
export var DISTINCT_ID = 'distinct_id';
|
|
8
|
+
export var ALIAS_ID_KEY = '__alias';
|
|
9
|
+
export var CAMPAIGN_IDS_KEY = '__cmpns';
|
|
10
|
+
export var EVENT_TIMERS_KEY = '__timers';
|
|
11
|
+
export var AUTOCAPTURE_DISABLED_SERVER_SIDE = '$autocapture_disabled_server_side';
|
|
12
|
+
export var SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side';
|
|
13
|
+
export var CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = '$console_log_recording_enabled_server_side';
|
|
14
|
+
export var SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE = '$session_recording_recorder_version_server_side'; // follows rrweb versioning
|
|
15
|
+
export var SESSION_ID = '$sesid';
|
|
16
|
+
export var ENABLED_FEATURE_FLAGS = '$enabled_feature_flags';
|
|
17
|
+
export var PERSISTENCE_EARLY_ACCESS_FEATURES = '$early_access_features';
|
|
18
|
+
export var STORED_PERSON_PROPERTIES_KEY = '$stored_person_properties';
|
|
19
|
+
export var STORED_GROUP_PROPERTIES_KEY = '$stored_group_properties';
|
|
20
|
+
export var SURVEYS = '$surveys';
|
|
21
|
+
export var FLAG_CALL_REPORTED = '$flag_call_reported';
|
|
22
|
+
export var USER_STATE = '$user_state';
|
|
23
|
+
export var POSTHOG_QUOTA_LIMITED = '$posthog_quota_limited';
|
|
24
|
+
// These are propertties that are reserved and will not be automatically included in events
|
|
25
|
+
export var PERSISTENCE_RESERVED_PROPERTIES = [
|
|
26
|
+
PEOPLE_DISTINCT_ID_KEY,
|
|
27
|
+
ALIAS_ID_KEY,
|
|
28
|
+
CAMPAIGN_IDS_KEY,
|
|
29
|
+
EVENT_TIMERS_KEY,
|
|
30
|
+
SESSION_RECORDING_ENABLED_SERVER_SIDE,
|
|
31
|
+
SESSION_ID,
|
|
32
|
+
ENABLED_FEATURE_FLAGS,
|
|
33
|
+
USER_STATE,
|
|
34
|
+
POSTHOG_QUOTA_LIMITED,
|
|
35
|
+
PERSISTENCE_EARLY_ACCESS_FEATURES,
|
|
36
|
+
STORED_GROUP_PROPERTIES_KEY,
|
|
37
|
+
STORED_PERSON_PROPERTIES_KEY,
|
|
38
|
+
SURVEYS,
|
|
39
|
+
FLAG_CALL_REPORTED,
|
|
40
|
+
];
|
|
41
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mBAAmB;AAEnB,0FAA0F;AAC1F,MAAM,CAAC,IAAM,sBAAsB,GAAG,qBAAqB,CAAA;AAC3D,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAA;AACxC,MAAM,CAAC,IAAM,YAAY,GAAG,SAAS,CAAA;AACrC,MAAM,CAAC,IAAM,gBAAgB,GAAG,SAAS,CAAA;AACzC,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAU,CAAA;AAC1C,MAAM,CAAC,IAAM,gCAAgC,GAAG,mCAAmC,CAAA;AACnF,MAAM,CAAC,IAAM,qCAAqC,GAAG,wCAAwC,CAAA;AAC7F,MAAM,CAAC,IAAM,yCAAyC,GAAG,4CAA4C,CAAA;AACrG,MAAM,CAAC,IAAM,8CAA8C,GAAG,iDAAiD,CAAA,CAAC,2BAA2B;AAC3I,MAAM,CAAC,IAAM,UAAU,GAAG,QAAQ,CAAA;AAClC,MAAM,CAAC,IAAM,qBAAqB,GAAG,wBAAwB,CAAA;AAC7D,MAAM,CAAC,IAAM,iCAAiC,GAAG,wBAAwB,CAAA;AACzE,MAAM,CAAC,IAAM,4BAA4B,GAAG,2BAA2B,CAAA;AACvE,MAAM,CAAC,IAAM,2BAA2B,GAAG,0BAA0B,CAAA;AACrE,MAAM,CAAC,IAAM,OAAO,GAAG,UAAU,CAAA;AACjC,MAAM,CAAC,IAAM,kBAAkB,GAAG,qBAAqB,CAAA;AACvD,MAAM,CAAC,IAAM,UAAU,GAAG,aAAa,CAAA;AACvC,MAAM,CAAC,IAAM,qBAAqB,GAAG,wBAAwB,CAAA;AAE7D,2FAA2F;AAC3F,MAAM,CAAC,IAAM,+BAA+B,GAAG;IAC3C,sBAAsB;IACtB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,qCAAqC;IACrC,UAAU;IACV,qBAAqB;IACrB,UAAU;IACV,qBAAqB;IACrB,iCAAiC;IACjC,2BAA2B;IAC3B,4BAA4B;IAC5B,OAAO;IACP,kBAAkB;CACrB,CAAA","sourcesContent":["/*\n * Constants\n */\n\n/* PROPERTY KEYS */\n\n// This key is deprecated, but we want to check for it to see whether aliasing is allowed.\nexport const PEOPLE_DISTINCT_ID_KEY = '$people_distinct_id'\nexport const DISTINCT_ID = 'distinct_id'\nexport const ALIAS_ID_KEY = '__alias'\nexport const CAMPAIGN_IDS_KEY = '__cmpns'\nexport const EVENT_TIMERS_KEY = '__timers'\nexport const AUTOCAPTURE_DISABLED_SERVER_SIDE = '$autocapture_disabled_server_side'\nexport const SESSION_RECORDING_ENABLED_SERVER_SIDE = '$session_recording_enabled_server_side'\nexport const CONSOLE_LOG_RECORDING_ENABLED_SERVER_SIDE = '$console_log_recording_enabled_server_side'\nexport const SESSION_RECORDING_RECORDER_VERSION_SERVER_SIDE = '$session_recording_recorder_version_server_side' // follows rrweb versioning\nexport const SESSION_ID = '$sesid'\nexport const ENABLED_FEATURE_FLAGS = '$enabled_feature_flags'\nexport const PERSISTENCE_EARLY_ACCESS_FEATURES = '$early_access_features'\nexport const STORED_PERSON_PROPERTIES_KEY = '$stored_person_properties'\nexport const STORED_GROUP_PROPERTIES_KEY = '$stored_group_properties'\nexport const SURVEYS = '$surveys'\nexport const FLAG_CALL_REPORTED = '$flag_call_reported'\nexport const USER_STATE = '$user_state'\nexport const POSTHOG_QUOTA_LIMITED = '$posthog_quota_limited'\n\n// These are propertties that are reserved and will not be automatically included in events\nexport const PERSISTENCE_RESERVED_PROPERTIES = [\n PEOPLE_DISTINCT_ID_KEY,\n ALIAS_ID_KEY,\n CAMPAIGN_IDS_KEY,\n EVENT_TIMERS_KEY,\n SESSION_RECORDING_ENABLED_SERVER_SIDE,\n SESSION_ID,\n ENABLED_FEATURE_FLAGS,\n USER_STATE,\n POSTHOG_QUOTA_LIMITED,\n PERSISTENCE_EARLY_ACCESS_FEATURES,\n STORED_GROUP_PROPERTIES_KEY,\n STORED_PERSON_PROPERTIES_KEY,\n SURVEYS,\n FLAG_CALL_REPORTED,\n]\n"]}
|