@amplitude/analytics-browser
Version:
Official Amplitude SDK for Web
202 lines • 9.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFormInteractionsConfig = exports.getAttributionTrackingConfig = exports.getPageViewTrackingConfig = exports.getNetworkTrackingConfig = exports.getFrustrationInteractionsConfig = exports.getElementInteractionsConfig = exports.isFrustrationInteractionsEnabled = exports.isWebVitalsEnabled = exports.isElementInteractionsEnabled = exports.isNetworkTrackingEnabled = exports.isPageUrlEnrichmentEnabled = exports.isSessionTrackingEnabled = exports.isPageViewTrackingEnabled = exports.isFormInteractionTrackingEnabled = exports.isFileDownloadTrackingEnabled = exports.isAttributionTrackingEnabled = void 0;
var tslib_1 = require("tslib");
/**
* Returns false if autocapture === false or if autocapture[event],
* otherwise returns true (even if "config.autocapture === undefined")
*/
var isTrackingEnabled = function (autocapture, event) {
if (typeof autocapture === 'boolean') {
return autocapture;
}
if ((autocapture === null || autocapture === void 0 ? void 0 : autocapture[event]) === false) {
return false;
}
return true;
};
var isAttributionTrackingEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'attribution');
};
exports.isAttributionTrackingEnabled = isAttributionTrackingEnabled;
var isFileDownloadTrackingEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'fileDownloads');
};
exports.isFileDownloadTrackingEnabled = isFileDownloadTrackingEnabled;
var isFormInteractionTrackingEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'formInteractions');
};
exports.isFormInteractionTrackingEnabled = isFormInteractionTrackingEnabled;
var isPageViewTrackingEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'pageViews');
};
exports.isPageViewTrackingEnabled = isPageViewTrackingEnabled;
var isSessionTrackingEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'sessions');
};
exports.isSessionTrackingEnabled = isSessionTrackingEnabled;
var isPageUrlEnrichmentEnabled = function (autocapture) {
return isTrackingEnabled(autocapture, 'pageUrlEnrichment');
};
exports.isPageUrlEnrichmentEnabled = isPageUrlEnrichmentEnabled;
/**
* Returns true if
* 1. if autocapture.networkTracking === true
* 2. if autocapture.networkTracking === object
* otherwise returns false
*/
var isNetworkTrackingEnabled = function (autocapture) {
if (typeof autocapture === 'boolean') {
return autocapture;
}
if (typeof autocapture === 'object' &&
(autocapture.networkTracking === true || typeof autocapture.networkTracking === 'object')) {
return true;
}
return false;
};
exports.isNetworkTrackingEnabled = isNetworkTrackingEnabled;
/**
* Returns true if
* 1. autocapture === true
* 2. if autocapture.elementInteractions === true
* 3. if autocapture.elementInteractions === object
* otherwise returns false
*/
var isElementInteractionsEnabled = function (autocapture) {
if (typeof autocapture === 'boolean') {
return autocapture;
}
if (typeof autocapture === 'object' &&
(autocapture.elementInteractions === true || typeof autocapture.elementInteractions === 'object')) {
return true;
}
return false;
};
exports.isElementInteractionsEnabled = isElementInteractionsEnabled;
/**
* Returns true if
* 1. autocapture === true
* 2. if autocapture.webVitals === true
* otherwise returns false
*/
var isWebVitalsEnabled = function (autocapture) {
if (typeof autocapture === 'boolean') {
return autocapture;
}
if (typeof autocapture === 'object' && autocapture.webVitals === true) {
return true;
}
return false;
};
exports.isWebVitalsEnabled = isWebVitalsEnabled;
var isFrustrationInteractionsEnabled = function (autocapture) {
if (typeof autocapture === 'boolean') {
return autocapture;
}
if (typeof autocapture === 'object' &&
(autocapture.frustrationInteractions === true || typeof autocapture.frustrationInteractions === 'object')) {
return true;
}
return false;
};
exports.isFrustrationInteractionsEnabled = isFrustrationInteractionsEnabled;
var getElementInteractionsConfig = function (config) {
if ((0, exports.isElementInteractionsEnabled)(config.autocapture) &&
typeof config.autocapture === 'object' &&
typeof config.autocapture.elementInteractions === 'object') {
return config.autocapture.elementInteractions;
}
return undefined;
};
exports.getElementInteractionsConfig = getElementInteractionsConfig;
var getFrustrationInteractionsConfig = function (config) {
if ((0, exports.isFrustrationInteractionsEnabled)(config.autocapture) &&
typeof config.autocapture === 'object' &&
typeof config.autocapture.frustrationInteractions === 'object') {
return config.autocapture.frustrationInteractions;
}
return undefined;
};
exports.getFrustrationInteractionsConfig = getFrustrationInteractionsConfig;
var getNetworkTrackingConfig = function (config) {
var _a;
if ((0, exports.isNetworkTrackingEnabled)(config.autocapture)) {
var networkTrackingConfig = void 0;
if (typeof config.autocapture === 'object' && typeof config.autocapture.networkTracking === 'object') {
networkTrackingConfig = config.autocapture.networkTracking;
}
else if (config.networkTrackingOptions) {
networkTrackingConfig = config.networkTrackingOptions;
}
return tslib_1.__assign(tslib_1.__assign({}, networkTrackingConfig), { captureRules: (_a = networkTrackingConfig === null || networkTrackingConfig === void 0 ? void 0 : networkTrackingConfig.captureRules) === null || _a === void 0 ? void 0 : _a.map(function (rule) {
var _a, _b, _c;
// if URLs and hosts are both set, URLs take precedence over hosts
if (((_a = rule.urls) === null || _a === void 0 ? void 0 : _a.length) && ((_b = rule.hosts) === null || _b === void 0 ? void 0 : _b.length)) {
var hostsString = JSON.stringify(rule.hosts);
var urlsString = JSON.stringify(rule.urls);
/* istanbul ignore next */
(_c = config.loggerProvider) === null || _c === void 0 ? void 0 : _c.warn("Found network capture rule with both urls='".concat(urlsString, "' and hosts='").concat(hostsString, "' set. ") +
"Definition of urls takes precedence over hosts, so ignoring hosts.");
return tslib_1.__assign(tslib_1.__assign({}, rule), { hosts: undefined });
}
return rule;
}) });
}
return;
};
exports.getNetworkTrackingConfig = getNetworkTrackingConfig;
var getPageViewTrackingConfig = function (config) {
var trackOn = function () { return false; };
var trackHistoryChanges = undefined;
var eventType;
var pageCounter = config.pageCounter;
var isDefaultPageViewTrackingEnabled = (0, exports.isPageViewTrackingEnabled)(config.defaultTracking);
if (isDefaultPageViewTrackingEnabled) {
trackOn = undefined;
eventType = undefined;
if (config.defaultTracking &&
typeof config.defaultTracking === 'object' &&
config.defaultTracking.pageViews &&
typeof config.defaultTracking.pageViews === 'object') {
if ('trackOn' in config.defaultTracking.pageViews) {
trackOn = config.defaultTracking.pageViews.trackOn;
}
if ('trackHistoryChanges' in config.defaultTracking.pageViews) {
trackHistoryChanges = config.defaultTracking.pageViews.trackHistoryChanges;
}
if ('eventType' in config.defaultTracking.pageViews && config.defaultTracking.pageViews.eventType) {
eventType = config.defaultTracking.pageViews.eventType;
}
}
}
return {
trackOn: trackOn,
trackHistoryChanges: trackHistoryChanges,
eventType: eventType,
pageCounter: pageCounter,
};
};
exports.getPageViewTrackingConfig = getPageViewTrackingConfig;
var getAttributionTrackingConfig = function (config) {
if ((0, exports.isAttributionTrackingEnabled)(config.defaultTracking) &&
config.defaultTracking &&
typeof config.defaultTracking === 'object' &&
config.defaultTracking.attribution &&
typeof config.defaultTracking.attribution === 'object') {
return tslib_1.__assign({}, config.defaultTracking.attribution);
}
return {};
};
exports.getAttributionTrackingConfig = getAttributionTrackingConfig;
var getFormInteractionsConfig = function (config) {
if ((0, exports.isFormInteractionTrackingEnabled)(config.defaultTracking) &&
config.defaultTracking &&
typeof config.defaultTracking === 'object' &&
typeof config.defaultTracking.formInteractions === 'object') {
return config.defaultTracking.formInteractions;
}
return undefined;
};
exports.getFormInteractionsConfig = getFormInteractionsConfig;
//# sourceMappingURL=default-tracking.js.map