@amplitude/analytics-browser 2.11.12 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cjs/__mocks__/det-notification.js +1 -0
- package/lib/cjs/__mocks__/det-notification.js.map +1 -1
- package/lib/cjs/attribution/campaign-parser.d.ts +8 -0
- package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-parser.js +69 -0
- package/lib/cjs/attribution/campaign-parser.js.map +1 -0
- package/lib/cjs/attribution/campaign.d.ts +31 -0
- package/lib/cjs/attribution/campaign.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign.js +3 -0
- package/lib/cjs/attribution/campaign.js.map +1 -0
- package/lib/cjs/attribution/constants.d.ts +22 -0
- package/lib/cjs/attribution/constants.d.ts.map +1 -0
- package/lib/cjs/attribution/constants.js +44 -0
- package/lib/cjs/attribution/constants.js.map +1 -0
- package/lib/cjs/attribution/helpers.d.ts +12 -0
- package/lib/cjs/attribution/helpers.d.ts.map +1 -0
- package/lib/cjs/attribution/helpers.js +77 -0
- package/lib/cjs/attribution/helpers.js.map +1 -0
- package/lib/cjs/attribution/web-attribution.d.ts +25 -0
- package/lib/cjs/attribution/web-attribution.d.ts.map +1 -0
- package/lib/cjs/attribution/web-attribution.js +73 -0
- package/lib/cjs/attribution/web-attribution.js.map +1 -0
- package/lib/cjs/browser-client-factory.d.ts +1 -1
- package/lib/cjs/browser-client-factory.d.ts.map +1 -1
- package/lib/cjs/browser-client-factory.js +1 -0
- package/lib/cjs/browser-client-factory.js.map +1 -1
- package/lib/cjs/browser-client.d.ts +7 -8
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +22 -21
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config/joined-config.d.ts +6 -1
- package/lib/cjs/config/joined-config.d.ts.map +1 -1
- package/lib/cjs/config/joined-config.js +12 -12
- package/lib/cjs/config/joined-config.js.map +1 -1
- package/lib/cjs/config.d.ts +4 -7
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +18 -16
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/constants.d.ts +13 -13
- package/lib/cjs/constants.d.ts.map +1 -1
- package/lib/cjs/constants.js +1 -0
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts +1 -1
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +10 -6
- package/lib/cjs/cookie-migration/index.js.map +1 -1
- package/lib/cjs/default-tracking.d.ts +18 -0
- package/lib/cjs/default-tracking.d.ts.map +1 -0
- package/lib/cjs/default-tracking.js +108 -0
- package/lib/cjs/default-tracking.js.map +1 -0
- package/lib/cjs/det-notification.d.ts +1 -1
- package/lib/cjs/det-notification.d.ts.map +1 -1
- package/lib/cjs/det-notification.js +1 -0
- package/lib/cjs/det-notification.js.map +1 -1
- package/lib/cjs/gtm-snippet-index.js +4 -3
- package/lib/cjs/gtm-snippet-index.js.map +1 -1
- package/lib/cjs/index.d.ts +4 -4
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/lib-prefix.js +1 -0
- package/lib/cjs/lib-prefix.js.map +1 -1
- package/lib/cjs/plugins/context.d.ts +1 -1
- package/lib/cjs/plugins/context.d.ts.map +1 -1
- package/lib/cjs/plugins/context.js +3 -3
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.js +6 -6
- package/lib/cjs/plugins/file-download-tracking.js.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.js +6 -6
- package/lib/cjs/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/cjs/plugins/network-connectivity-checker.js +5 -5
- package/lib/cjs/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/cjs/snippet-index.js +4 -3
- package/lib/cjs/snippet-index.js.map +1 -1
- package/lib/cjs/storage/browser-storage.d.ts +1 -1
- package/lib/cjs/storage/browser-storage.d.ts.map +1 -1
- package/lib/cjs/storage/browser-storage.js +5 -4
- package/lib/cjs/storage/browser-storage.js.map +1 -1
- package/lib/cjs/storage/local-storage.d.ts +3 -3
- package/lib/cjs/storage/local-storage.d.ts.map +1 -1
- package/lib/cjs/storage/local-storage.js +4 -4
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/session-storage.js +3 -2
- package/lib/cjs/storage/session-storage.js.map +1 -1
- package/lib/cjs/transports/send-beacon.d.ts +1 -2
- package/lib/cjs/transports/send-beacon.d.ts.map +1 -1
- package/lib/cjs/transports/send-beacon.js +2 -2
- package/lib/cjs/transports/send-beacon.js.map +1 -1
- package/lib/cjs/transports/xhr.d.ts +1 -2
- package/lib/cjs/transports/xhr.d.ts.map +1 -1
- package/lib/cjs/transports/xhr.js +2 -1
- package/lib/cjs/transports/xhr.js.map +1 -1
- package/lib/cjs/utils/snippet-helper.d.ts +12 -1
- package/lib/cjs/utils/snippet-helper.d.ts.map +1 -1
- package/lib/cjs/utils/snippet-helper.js +1 -0
- package/lib/cjs/utils/snippet-helper.js.map +1 -1
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.d.ts.map +1 -1
- package/lib/cjs/version.js +2 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/attribution/campaign-parser.d.ts +8 -0
- package/lib/esm/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-parser.js +66 -0
- package/lib/esm/attribution/campaign-parser.js.map +1 -0
- package/lib/esm/attribution/campaign.d.ts +31 -0
- package/lib/esm/attribution/campaign.d.ts.map +1 -0
- package/lib/esm/attribution/campaign.js +2 -0
- package/lib/esm/attribution/campaign.js.map +1 -0
- package/lib/esm/attribution/constants.d.ts +22 -0
- package/lib/esm/attribution/constants.d.ts.map +1 -0
- package/lib/esm/attribution/constants.js +41 -0
- package/lib/esm/attribution/constants.js.map +1 -0
- package/lib/esm/attribution/helpers.d.ts +12 -0
- package/lib/esm/attribution/helpers.d.ts.map +1 -0
- package/lib/esm/attribution/helpers.js +70 -0
- package/lib/esm/attribution/helpers.js.map +1 -0
- package/lib/esm/attribution/web-attribution.d.ts +25 -0
- package/lib/esm/attribution/web-attribution.d.ts.map +1 -0
- package/lib/esm/attribution/web-attribution.js +70 -0
- package/lib/esm/attribution/web-attribution.js.map +1 -0
- package/lib/esm/browser-client-factory.d.ts +1 -1
- package/lib/esm/browser-client-factory.d.ts.map +1 -1
- package/lib/esm/browser-client-factory.js.map +1 -1
- package/lib/esm/browser-client.d.ts +7 -8
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +4 -4
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config/joined-config.d.ts +6 -1
- package/lib/esm/config/joined-config.d.ts.map +1 -1
- package/lib/esm/config/joined-config.js +10 -10
- package/lib/esm/config/joined-config.js.map +1 -1
- package/lib/esm/config.d.ts +4 -7
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +9 -7
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/constants.d.ts +13 -13
- package/lib/esm/constants.d.ts.map +1 -1
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts +1 -1
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +9 -5
- package/lib/esm/cookie-migration/index.js.map +1 -1
- package/lib/esm/default-tracking.d.ts +18 -0
- package/lib/esm/default-tracking.d.ts.map +1 -0
- package/lib/esm/default-tracking.js +96 -0
- package/lib/esm/default-tracking.js.map +1 -0
- package/lib/esm/det-notification.d.ts +1 -1
- package/lib/esm/det-notification.d.ts.map +1 -1
- package/lib/esm/det-notification.js.map +1 -1
- package/lib/esm/gtm-snippet-index.js +1 -1
- package/lib/esm/gtm-snippet-index.js.map +1 -1
- package/lib/esm/index.d.ts +4 -4
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/plugins/context.d.ts +1 -1
- package/lib/esm/plugins/context.d.ts.map +1 -1
- package/lib/esm/plugins/context.js +2 -3
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/file-download-tracking.js +1 -1
- package/lib/esm/plugins/file-download-tracking.js.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/esm/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/esm/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/esm/plugins/network-connectivity-checker.js +1 -1
- package/lib/esm/plugins/network-connectivity-checker.js.map +1 -1
- package/lib/esm/snippet-index.js +1 -1
- package/lib/esm/snippet-index.js.map +1 -1
- package/lib/esm/storage/browser-storage.d.ts +1 -1
- package/lib/esm/storage/browser-storage.d.ts.map +1 -1
- package/lib/esm/storage/browser-storage.js +4 -4
- package/lib/esm/storage/browser-storage.js.map +1 -1
- package/lib/esm/storage/local-storage.d.ts +3 -3
- package/lib/esm/storage/local-storage.d.ts.map +1 -1
- package/lib/esm/storage/local-storage.js +3 -4
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/session-storage.js +1 -1
- package/lib/esm/storage/session-storage.js.map +1 -1
- package/lib/esm/transports/send-beacon.d.ts +1 -2
- package/lib/esm/transports/send-beacon.d.ts.map +1 -1
- package/lib/esm/transports/send-beacon.js +1 -2
- package/lib/esm/transports/send-beacon.js.map +1 -1
- package/lib/esm/transports/xhr.d.ts +1 -2
- package/lib/esm/transports/xhr.d.ts.map +1 -1
- package/lib/esm/transports/xhr.js +2 -2
- package/lib/esm/transports/xhr.js.map +1 -1
- package/lib/esm/utils/snippet-helper.d.ts +12 -1
- package/lib/esm/utils/snippet-helper.d.ts.map +1 -1
- package/lib/esm/utils/snippet-helper.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.d.ts.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
- package/lib/scripts/amplitude-bookmarklet.html +1 -1
- package/lib/scripts/amplitude-gtm-min.js +1 -1
- package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
- package/lib/scripts/amplitude-gtm-min.js.map +1 -1
- package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.js.map +1 -1
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/lib/scripts/attribution/campaign-parser.d.ts +8 -0
- package/lib/scripts/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/scripts/attribution/campaign.d.ts +31 -0
- package/lib/scripts/attribution/campaign.d.ts.map +1 -0
- package/lib/scripts/attribution/constants.d.ts +22 -0
- package/lib/scripts/attribution/constants.d.ts.map +1 -0
- package/lib/scripts/attribution/helpers.d.ts +12 -0
- package/lib/scripts/attribution/helpers.d.ts.map +1 -0
- package/lib/scripts/attribution/web-attribution.d.ts +25 -0
- package/lib/scripts/attribution/web-attribution.d.ts.map +1 -0
- package/lib/scripts/browser-client-factory.d.ts +1 -1
- package/lib/scripts/browser-client-factory.d.ts.map +1 -1
- package/lib/scripts/browser-client.d.ts +7 -8
- package/lib/scripts/browser-client.d.ts.map +1 -1
- package/lib/scripts/config/joined-config.d.ts +6 -1
- package/lib/scripts/config/joined-config.d.ts.map +1 -1
- package/lib/scripts/config.d.ts +1 -4
- package/lib/scripts/config.d.ts.map +1 -1
- package/lib/scripts/constants.d.ts +1 -1
- package/lib/scripts/constants.d.ts.map +1 -1
- package/lib/scripts/cookie-migration/index.d.ts +1 -1
- package/lib/scripts/cookie-migration/index.d.ts.map +1 -1
- package/lib/scripts/default-tracking.d.ts +18 -0
- package/lib/scripts/default-tracking.d.ts.map +1 -0
- package/lib/scripts/det-notification.d.ts +1 -1
- package/lib/scripts/det-notification.d.ts.map +1 -1
- package/lib/scripts/index.d.ts +4 -4
- package/lib/scripts/index.d.ts.map +1 -1
- package/lib/scripts/plugins/context.d.ts +1 -1
- package/lib/scripts/plugins/context.d.ts.map +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/network-connectivity-checker.d.ts +1 -1
- package/lib/scripts/plugins/network-connectivity-checker.d.ts.map +1 -1
- package/lib/scripts/storage/browser-storage.d.ts +1 -1
- package/lib/scripts/storage/browser-storage.d.ts.map +1 -1
- package/lib/scripts/storage/local-storage.d.ts +3 -3
- package/lib/scripts/storage/local-storage.d.ts.map +1 -1
- package/lib/scripts/transports/send-beacon.d.ts +1 -2
- package/lib/scripts/transports/send-beacon.d.ts.map +1 -1
- package/lib/scripts/transports/xhr.d.ts +1 -2
- package/lib/scripts/transports/xhr.d.ts.map +1 -1
- package/lib/scripts/utils/snippet-helper.d.ts +12 -1
- package/lib/scripts/utils/snippet-helper.d.ts.map +1 -1
- package/lib/scripts/version.d.ts +1 -1
- package/lib/scripts/version.d.ts.map +1 -1
- package/package.json +6 -7
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
exports.AmplitudeBrowser = void 0;
|
|
3
4
|
var tslib_1 = require("tslib");
|
|
4
5
|
var analytics_core_1 = require("@amplitude/analytics-core");
|
|
5
|
-
var
|
|
6
|
-
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
6
|
+
var default_tracking_1 = require("./default-tracking");
|
|
7
7
|
var snippet_helper_1 = require("./utils/snippet-helper");
|
|
8
8
|
var context_1 = require("./plugins/context");
|
|
9
9
|
var config_1 = require("./config");
|
|
@@ -15,6 +15,7 @@ var det_notification_1 = require("./det-notification");
|
|
|
15
15
|
var network_connectivity_checker_1 = require("./plugins/network-connectivity-checker");
|
|
16
16
|
var joined_config_1 = require("./config/joined-config");
|
|
17
17
|
var plugin_autocapture_browser_1 = require("@amplitude/plugin-autocapture-browser");
|
|
18
|
+
var web_attribution_1 = require("./attribution/web-attribution");
|
|
18
19
|
var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
19
20
|
tslib_1.__extends(AmplitudeBrowser, _super);
|
|
20
21
|
function AmplitudeBrowser() {
|
|
@@ -41,10 +42,10 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
41
42
|
return (0, analytics_core_1.returnWrapper)(this._init(tslib_1.__assign(tslib_1.__assign({}, options), { userId: userId, apiKey: apiKey })));
|
|
42
43
|
};
|
|
43
44
|
AmplitudeBrowser.prototype._init = function (options) {
|
|
44
|
-
var _a, _b, _c;
|
|
45
45
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
46
46
|
var browserOptions, joinedConfigGenerator, attributionTrackingOptions, queryParams, querySessionId, connector;
|
|
47
47
|
var _this = this;
|
|
48
|
+
var _a, _b, _c;
|
|
48
49
|
return tslib_1.__generator(this, function (_d) {
|
|
49
50
|
switch (_d.label) {
|
|
50
51
|
case 0:
|
|
@@ -68,9 +69,9 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
68
69
|
case 5:
|
|
69
70
|
_d.sent();
|
|
70
71
|
this.logBrowserOptions(browserOptions);
|
|
71
|
-
if (!(0,
|
|
72
|
-
attributionTrackingOptions = (0,
|
|
73
|
-
this.webAttribution = new
|
|
72
|
+
if (!(0, default_tracking_1.isAttributionTrackingEnabled)(this.config.defaultTracking)) return [3 /*break*/, 7];
|
|
73
|
+
attributionTrackingOptions = (0, default_tracking_1.getAttributionTrackingConfig)(this.config);
|
|
74
|
+
this.webAttribution = new web_attribution_1.WebAttribution(attributionTrackingOptions, this.config);
|
|
74
75
|
// Fetch the current campaign, check if need to track web attribution later
|
|
75
76
|
return [4 /*yield*/, this.webAttribution.init()];
|
|
76
77
|
case 6:
|
|
@@ -78,17 +79,17 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
78
79
|
_d.sent();
|
|
79
80
|
_d.label = 7;
|
|
80
81
|
case 7:
|
|
81
|
-
queryParams = (0,
|
|
82
|
+
queryParams = (0, analytics_core_1.getQueryParams)();
|
|
82
83
|
querySessionId = Number.isNaN(Number(queryParams.ampSessionId))
|
|
83
84
|
? undefined
|
|
84
85
|
: Number(queryParams.ampSessionId);
|
|
85
86
|
this.setSessionId((_c = (_b = (_a = options.sessionId) !== null && _a !== void 0 ? _a : querySessionId) !== null && _b !== void 0 ? _b : this.config.sessionId) !== null && _c !== void 0 ? _c : Date.now());
|
|
86
|
-
connector = (0,
|
|
87
|
+
connector = (0, analytics_core_1.getAnalyticsConnector)(options.instanceName);
|
|
87
88
|
connector.identityStore.setIdentity({
|
|
88
89
|
userId: this.config.userId,
|
|
89
90
|
deviceId: this.config.deviceId,
|
|
90
91
|
});
|
|
91
|
-
if (!(this.config.offline !==
|
|
92
|
+
if (!(this.config.offline !== analytics_core_1.OfflineDisabled)) return [3 /*break*/, 9];
|
|
92
93
|
return [4 /*yield*/, this.add((0, network_connectivity_checker_1.networkConnectivityCheckerPlugin)()).promise];
|
|
93
94
|
case 8:
|
|
94
95
|
_d.sent();
|
|
@@ -99,35 +100,35 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
99
100
|
return [4 /*yield*/, this.add(new context_1.Context()).promise];
|
|
100
101
|
case 11:
|
|
101
102
|
_d.sent();
|
|
102
|
-
return [4 /*yield*/, this.add(new
|
|
103
|
+
return [4 /*yield*/, this.add(new analytics_core_1.IdentityEventSender()).promise];
|
|
103
104
|
case 12:
|
|
104
105
|
_d.sent();
|
|
105
106
|
// Notify if DET is enabled
|
|
106
107
|
(0, det_notification_1.detNotify)(this.config);
|
|
107
|
-
if (!(0,
|
|
108
|
+
if (!(0, default_tracking_1.isFileDownloadTrackingEnabled)(this.config.defaultTracking)) return [3 /*break*/, 14];
|
|
108
109
|
this.config.loggerProvider.debug('Adding file download tracking plugin');
|
|
109
110
|
return [4 /*yield*/, this.add((0, file_download_tracking_1.fileDownloadTracking)()).promise];
|
|
110
111
|
case 13:
|
|
111
112
|
_d.sent();
|
|
112
113
|
_d.label = 14;
|
|
113
114
|
case 14:
|
|
114
|
-
if (!(0,
|
|
115
|
+
if (!(0, default_tracking_1.isFormInteractionTrackingEnabled)(this.config.defaultTracking)) return [3 /*break*/, 16];
|
|
115
116
|
this.config.loggerProvider.debug('Adding form interaction plugin');
|
|
116
117
|
return [4 /*yield*/, this.add((0, form_interaction_tracking_1.formInteractionTracking)()).promise];
|
|
117
118
|
case 15:
|
|
118
119
|
_d.sent();
|
|
119
120
|
_d.label = 16;
|
|
120
121
|
case 16:
|
|
121
|
-
if (!(0,
|
|
122
|
+
if (!(0, default_tracking_1.isPageViewTrackingEnabled)(this.config.defaultTracking)) return [3 /*break*/, 18];
|
|
122
123
|
this.config.loggerProvider.debug('Adding page view tracking plugin');
|
|
123
|
-
return [4 /*yield*/, this.add((0, plugin_page_view_tracking_browser_1.pageViewTrackingPlugin)((0,
|
|
124
|
+
return [4 /*yield*/, this.add((0, plugin_page_view_tracking_browser_1.pageViewTrackingPlugin)((0, default_tracking_1.getPageViewTrackingConfig)(this.config))).promise];
|
|
124
125
|
case 17:
|
|
125
126
|
_d.sent();
|
|
126
127
|
_d.label = 18;
|
|
127
128
|
case 18:
|
|
128
|
-
if (!(0,
|
|
129
|
+
if (!(0, default_tracking_1.isElementInteractionsEnabled)(this.config.autocapture)) return [3 /*break*/, 20];
|
|
129
130
|
this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');
|
|
130
|
-
return [4 /*yield*/, this.add((0, plugin_autocapture_browser_1.autocapturePlugin)((0,
|
|
131
|
+
return [4 /*yield*/, this.add((0, plugin_autocapture_browser_1.autocapturePlugin)((0, default_tracking_1.getElementInteractionsConfig)(this.config))).promise];
|
|
131
132
|
case 19:
|
|
132
133
|
_d.sent();
|
|
133
134
|
_d.label = 20;
|
|
@@ -159,7 +160,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
159
160
|
this.config.loggerProvider.debug('function setUserId: ', userId);
|
|
160
161
|
if (userId !== this.config.userId || userId === undefined) {
|
|
161
162
|
this.config.userId = userId;
|
|
162
|
-
(0,
|
|
163
|
+
(0, analytics_core_1.setConnectorUserId)(userId, this.config.instanceName);
|
|
163
164
|
}
|
|
164
165
|
};
|
|
165
166
|
AmplitudeBrowser.prototype.getDeviceId = function () {
|
|
@@ -173,7 +174,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
173
174
|
}
|
|
174
175
|
this.config.loggerProvider.debug('function setDeviceId: ', deviceId);
|
|
175
176
|
this.config.deviceId = deviceId;
|
|
176
|
-
(0,
|
|
177
|
+
(0, analytics_core_1.setConnectorDeviceId)(deviceId, this.config.instanceName);
|
|
177
178
|
};
|
|
178
179
|
AmplitudeBrowser.prototype.reset = function () {
|
|
179
180
|
this.setDeviceId((0, analytics_core_1.UUID)());
|
|
@@ -201,7 +202,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
201
202
|
this.config.sessionId = sessionId;
|
|
202
203
|
this.config.lastEventTime = undefined;
|
|
203
204
|
this.config.pageCounter = 0;
|
|
204
|
-
if ((0,
|
|
205
|
+
if ((0, default_tracking_1.isSessionTrackingEnabled)(this.config.defaultTracking)) {
|
|
205
206
|
if (previousSessionId && lastEventTime) {
|
|
206
207
|
promises.push(this.track(constants_1.DEFAULT_SESSION_END_EVENT, undefined, {
|
|
207
208
|
device_id: this.previousSessionDeviceId,
|
|
@@ -217,7 +218,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
217
218
|
// 1. has new campaign (call setSessionId from init function)
|
|
218
219
|
// 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )
|
|
219
220
|
var isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);
|
|
220
|
-
if ((0,
|
|
221
|
+
if ((0, default_tracking_1.isSessionTrackingEnabled)(this.config.defaultTracking)) {
|
|
221
222
|
promises.push(this.track(constants_1.DEFAULT_SESSION_START_EVENT, undefined, {
|
|
222
223
|
event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,
|
|
223
224
|
session_id: this.config.sessionId,
|
|
@@ -291,7 +292,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
291
292
|
var currentTime, isEventInNewSession, shouldSetSessionIdOnNewCampaign;
|
|
292
293
|
return tslib_1.__generator(this, function (_a) {
|
|
293
294
|
currentTime = Date.now();
|
|
294
|
-
isEventInNewSession = (0,
|
|
295
|
+
isEventInNewSession = (0, analytics_core_1.isNewSession)(this.config.sessionTimeout, this.config.lastEventTime);
|
|
295
296
|
shouldSetSessionIdOnNewCampaign = this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();
|
|
296
297
|
if (event.event_type !== constants_1.DEFAULT_SESSION_START_EVENT &&
|
|
297
298
|
event.event_type !== constants_1.DEFAULT_SESSION_END_EVENT &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID } from '@amplitude/analytics-core';\nimport {\n getAnalyticsConnector,\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n IdentityEventSender,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n setConnectorDeviceId,\n setConnectorUserId,\n isNewSession,\n isPageViewTrackingEnabled,\n WebAttribution,\n getQueryParams,\n} from '@amplitude/analytics-client-common';\nimport {\n BrowserClient,\n BrowserConfig,\n BrowserOptions,\n Event,\n EventOptions,\n Identify as IIdentify,\n Revenue as IRevenue,\n TransportType,\n OfflineDisabled,\n Result,\n} from '@amplitude/analytics-types';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\nimport { createBrowserJoinedConfigGenerator } from './config/joined-config';\nimport { autocapturePlugin } from '@amplitude/plugin-autocapture-browser';\n\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n previousSessionDeviceId: string | undefined;\n previousSessionUserId: string | undefined;\n webAttribution: WebAttribution | undefined;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\n\n if (arguments.length > 2) {\n userId = userIdOrOptions as string | undefined;\n options = maybeOptions;\n } else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n } else {\n userId = userIdOrOptions?.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init({ ...options, userId, apiKey }));\n }\n protected async _init(options: BrowserOptions & { apiKey: string }) {\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n let browserOptions = await useBrowserConfig(options.apiKey, options, this);\n // Step 2: Create browser config\n if (options.fetchRemoteConfig) {\n const joinedConfigGenerator = await createBrowserJoinedConfigGenerator(browserOptions);\n browserOptions = await joinedConfigGenerator.generateJoinedConfig();\n }\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n // Add web attribution plugin\n if (isAttributionTrackingEnabled(this.config.defaultTracking)) {\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n await this.webAttribution.init();\n }\n\n // Step 3: Set session ID\n // Priority 1: `options.sessionId`\n // Priority 2: sessionId from url if it's Number\n // Priority 3: last known sessionId from user identity storage\n // Default: `Date.now()`\n // Session ID is handled differently than device ID and user ID due to session events\n const queryParams = getQueryParams();\n const querySessionId = Number.isNaN(Number(queryParams.ampSessionId))\n ? undefined\n : Number(queryParams.ampSessionId);\n this.setSessionId(options.sessionId ?? querySessionId ?? this.config.sessionId ?? Date.now());\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n if (this.config.offline !== OfflineDisabled) {\n await this.add(networkConnectivityCheckerPlugin()).promise;\n }\n await this.add(new Destination()).promise;\n await this.add(new Context()).promise;\n await this.add(new IdentityEventSender()).promise;\n\n // Notify if DET is enabled\n detNotify(this.config);\n\n if (isFileDownloadTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding file download tracking plugin');\n await this.add(fileDownloadTracking()).promise;\n }\n\n if (isFormInteractionTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding form interaction plugin');\n await this.add(formInteractionTracking()).promise;\n }\n\n // Add page view plugin\n if (isPageViewTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n }\n\n if (isElementInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');\n await this.add(autocapturePlugin(getElementInteractionsConfig(this.config))).promise;\n }\n\n this.initializing = false;\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.loggerProvider.debug('function setUserId: ', userId);\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n setConnectorUserId(userId, this.config.instanceName);\n }\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.loggerProvider.debug('function setDeviceId: ', deviceId);\n this.config.deviceId = deviceId;\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n const promises: Promise<Result>[] = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n\n this.config.loggerProvider.debug('function setSessionId: ', sessionId);\n\n const previousSessionId = this.getSessionId();\n const lastEventTime = this.config.lastEventTime;\n let lastEventId = this.config.lastEventId ?? -1;\n\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(\n this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise,\n );\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n const isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise,\n );\n }\n\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n }\n\n extendSession() {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n }\n\n setTransport(transport: TransportType) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n private trackCampaignEventIfNeeded(lastEventId?: number, promises?: Promise<Result>[]) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n\n const campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n } else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n }\n\n async process(event: Event) {\n const currentTime = Date.now();\n const isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n const shouldSetSessionIdOnNewCampaign =\n this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n\n if (\n event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())\n ) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n } else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n\n return super.process(event);\n }\n\n private logBrowserOptions(browserConfig: BrowserOptions & { apiKey: string }) {\n try {\n const browserConfigCopy = {\n ...browserConfig,\n apiKey: browserConfig.apiKey.substring(0, 10) + '********',\n };\n this.config.loggerProvider.debug('Initialized Amplitude with BrowserConfig:', JSON.stringify(browserConfigCopy));\n } catch (e) {\n /* istanbul ignore next */\n this.config.loggerProvider.error('Error logging browser config', e);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AmplitudeCore,\n Destination,\n Identify,\n returnWrapper,\n Revenue,\n UUID,\n getAnalyticsConnector,\n setConnectorDeviceId,\n setConnectorUserId,\n isNewSession,\n IdentityEventSender,\n getQueryParams,\n Event,\n EventOptions,\n IIdentify,\n IRevenue,\n TransportType,\n OfflineDisabled,\n Result,\n BrowserOptions,\n BrowserConfig,\n BrowserClient,\n} from '@amplitude/analytics-core';\nimport {\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n isPageViewTrackingEnabled,\n} from './default-tracking';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport } from './config';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from './constants';\nimport { detNotify } from './det-notification';\nimport { networkConnectivityCheckerPlugin } from './plugins/network-connectivity-checker';\nimport { createBrowserJoinedConfigGenerator } from './config/joined-config';\nimport { autocapturePlugin } from '@amplitude/plugin-autocapture-browser';\nimport { WebAttribution } from './attribution/web-attribution';\n\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n previousSessionDeviceId: string | undefined;\n previousSessionUserId: string | undefined;\n webAttribution: WebAttribution | undefined;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\n\n if (arguments.length > 2) {\n userId = userIdOrOptions as string | undefined;\n options = maybeOptions;\n } else {\n if (typeof userIdOrOptions === 'string') {\n userId = userIdOrOptions;\n options = undefined;\n } else {\n userId = userIdOrOptions?.userId;\n options = userIdOrOptions;\n }\n }\n return returnWrapper(this._init({ ...options, userId, apiKey }));\n }\n protected async _init(options: BrowserOptions & { apiKey: string }) {\n // Step 1: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n let browserOptions = await useBrowserConfig(options.apiKey, options, this);\n // Step 2: Create browser config\n if (options.fetchRemoteConfig) {\n const joinedConfigGenerator = await createBrowserJoinedConfigGenerator(browserOptions);\n browserOptions = await joinedConfigGenerator.generateJoinedConfig();\n }\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n // Add web attribution plugin\n if (isAttributionTrackingEnabled(this.config.defaultTracking)) {\n const attributionTrackingOptions = getAttributionTrackingConfig(this.config);\n this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);\n // Fetch the current campaign, check if need to track web attribution later\n await this.webAttribution.init();\n }\n\n // Step 3: Set session ID\n // Priority 1: `options.sessionId`\n // Priority 2: sessionId from url if it's Number\n // Priority 3: last known sessionId from user identity storage\n // Default: `Date.now()`\n // Session ID is handled differently than device ID and user ID due to session events\n const queryParams = getQueryParams();\n const querySessionId = Number.isNaN(Number(queryParams.ampSessionId))\n ? undefined\n : Number(queryParams.ampSessionId);\n this.setSessionId(options.sessionId ?? querySessionId ?? this.config.sessionId ?? Date.now());\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector(options.instanceName);\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n if (this.config.offline !== OfflineDisabled) {\n await this.add(networkConnectivityCheckerPlugin()).promise;\n }\n await this.add(new Destination()).promise;\n await this.add(new Context()).promise;\n await this.add(new IdentityEventSender()).promise;\n\n // Notify if DET is enabled\n detNotify(this.config);\n\n if (isFileDownloadTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding file download tracking plugin');\n await this.add(fileDownloadTracking()).promise;\n }\n\n if (isFormInteractionTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding form interaction plugin');\n await this.add(formInteractionTracking()).promise;\n }\n\n // Add page view plugin\n if (isPageViewTrackingEnabled(this.config.defaultTracking)) {\n this.config.loggerProvider.debug('Adding page view tracking plugin');\n await this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise;\n }\n\n if (isElementInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');\n await this.add(autocapturePlugin(getElementInteractionsConfig(this.config))).promise;\n }\n\n this.initializing = false;\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.loggerProvider.debug('function setUserId: ', userId);\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n setConnectorUserId(userId, this.config.instanceName);\n }\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.loggerProvider.debug('function setDeviceId: ', deviceId);\n this.config.deviceId = deviceId;\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n const promises: Promise<Result>[] = [];\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return returnWrapper(Promise.resolve());\n }\n // Prevents starting a new session with the same session ID\n if (sessionId === this.config.sessionId) {\n return returnWrapper(Promise.resolve());\n }\n\n this.config.loggerProvider.debug('function setSessionId: ', sessionId);\n\n const previousSessionId = this.getSessionId();\n const lastEventTime = this.config.lastEventTime;\n let lastEventId = this.config.lastEventId ?? -1;\n\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n this.config.pageCounter = 0;\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && lastEventTime) {\n promises.push(\n this.track(DEFAULT_SESSION_END_EVENT, undefined, {\n device_id: this.previousSessionDeviceId,\n event_id: ++lastEventId,\n session_id: previousSessionId,\n time: lastEventTime + 1,\n user_id: this.previousSessionUserId,\n }).promise,\n );\n }\n this.config.lastEventTime = this.config.sessionId;\n }\n\n // Fire web attribution event when enable webAttribution tracking\n // 1. has new campaign (call setSessionId from init function)\n // 2. or shouldTrackNewCampaign (call setSessionId from async process(event) when there has new campaign and resetSessionOnNewCampaign = true )\n const isCampaignEventTracked = this.trackCampaignEventIfNeeded(++lastEventId, promises);\n\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n promises.push(\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n event_id: isCampaignEventTracked ? ++lastEventId : lastEventId,\n session_id: this.config.sessionId,\n time: this.config.lastEventTime,\n }).promise,\n );\n }\n\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n return returnWrapper(Promise.all(promises));\n }\n\n extendSession() {\n if (!this.config) {\n this.q.push(this.extendSession.bind(this));\n return;\n }\n this.config.lastEventTime = Date.now();\n }\n\n setTransport(transport: TransportType) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n }\n\n identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\n }\n\n groupIdentify(groupType: string, groupName: string | string[], identify: IIdentify, eventOptions?: EventOptions) {\n if (isInstanceProxy(identify)) {\n const queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return super.groupIdentify(groupType, groupName, identify, eventOptions);\n }\n\n revenue(revenue: IRevenue, eventOptions?: EventOptions) {\n if (isInstanceProxy(revenue)) {\n const queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return super.revenue(revenue, eventOptions);\n }\n\n private trackCampaignEventIfNeeded(lastEventId?: number, promises?: Promise<Result>[]) {\n if (!this.webAttribution || !this.webAttribution.shouldTrackNewCampaign) {\n return false;\n }\n\n const campaignEvent = this.webAttribution.generateCampaignEvent(lastEventId);\n if (promises) {\n promises.push(this.track(campaignEvent).promise);\n } else {\n this.track(campaignEvent);\n }\n this.config.loggerProvider.log('Tracking attribution.');\n return true;\n }\n\n async process(event: Event) {\n const currentTime = Date.now();\n const isEventInNewSession = isNewSession(this.config.sessionTimeout, this.config.lastEventTime);\n const shouldSetSessionIdOnNewCampaign =\n this.webAttribution && this.webAttribution.shouldSetSessionIdOnNewCampaign();\n\n if (\n event.event_type !== DEFAULT_SESSION_START_EVENT &&\n event.event_type !== DEFAULT_SESSION_END_EVENT &&\n (!event.session_id || event.session_id === this.getSessionId())\n ) {\n if (isEventInNewSession || shouldSetSessionIdOnNewCampaign) {\n this.setSessionId(currentTime);\n if (shouldSetSessionIdOnNewCampaign) {\n this.config.loggerProvider.log('Created a new session for new campaign.');\n }\n } else if (!isEventInNewSession) {\n // Web attribution should be tracked during the middle of a session\n // if there has been a chance in the campaign information.\n this.trackCampaignEventIfNeeded();\n }\n }\n\n return super.process(event);\n }\n\n private logBrowserOptions(browserConfig: BrowserOptions & { apiKey: string }) {\n try {\n const browserConfigCopy = {\n ...browserConfig,\n apiKey: browserConfig.apiKey.substring(0, 10) + '********',\n };\n this.config.loggerProvider.debug('Initialized Amplitude with BrowserConfig:', JSON.stringify(browserConfigCopy));\n } catch (e) {\n /* istanbul ignore next */\n this.config.loggerProvider.error('Error logging browser config', e);\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import { BrowserConfig as IBrowserConfig, BrowserRemoteConfig } from '@amplitude/analytics-types';
|
|
2
1
|
import { RemoteConfigFetch } from '@amplitude/analytics-remote-config';
|
|
2
|
+
import { BrowserConfig as IBrowserConfig, AutocaptureOptions } from '@amplitude/analytics-core';
|
|
3
|
+
export type BrowserRemoteConfig = {
|
|
4
|
+
browserSDK: {
|
|
5
|
+
autocapture?: AutocaptureOptions | boolean;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
3
8
|
export declare class BrowserJoinedConfigGenerator {
|
|
4
9
|
config: IBrowserConfig;
|
|
5
10
|
remoteConfigFetch: RemoteConfigFetch<BrowserRemoteConfig> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joined-config.d.ts","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"joined-config.d.ts","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAChG,OAAO,EAAmB,aAAa,IAAI,cAAc,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEjH,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE;QACV,WAAW,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC;KAC5C,CAAC;CACH,CAAC;AAEF,qBAAa,4BAA4B;IAGvC,MAAM,EAAE,cAAc,CAAC;IACvB,iBAAiB,EAAE,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;gBAE1D,WAAW,EAAE,cAAc;IAQjC,UAAU;IAOV,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC;CAgEtD;AAED,eAAO,MAAM,kCAAkC,gBAAuB,cAAc,0CAInF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createBrowserJoinedConfigGenerator = exports.BrowserJoinedConfigGenerator = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
@@ -28,22 +28,22 @@ var BrowserJoinedConfigGenerator = /** @class */ (function () {
|
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
30
|
BrowserJoinedConfigGenerator.prototype.generateJoinedConfig = function () {
|
|
31
|
-
var _a, _b, _c;
|
|
32
|
-
var _d;
|
|
33
31
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
34
|
-
var remoteConfig,
|
|
32
|
+
var remoteConfig, _a, e_1;
|
|
33
|
+
var _b, _c, _d;
|
|
34
|
+
var _e;
|
|
35
35
|
return tslib_1.__generator(this, function (_f) {
|
|
36
36
|
switch (_f.label) {
|
|
37
37
|
case 0:
|
|
38
38
|
_f.trys.push([0, 3, , 4]);
|
|
39
|
-
|
|
40
|
-
if (!
|
|
39
|
+
_a = this.remoteConfigFetch;
|
|
40
|
+
if (!_a) return [3 /*break*/, 2];
|
|
41
41
|
return [4 /*yield*/, this.remoteConfigFetch.getRemoteConfig('analyticsSDK', 'browserSDK', this.config.sessionId)];
|
|
42
42
|
case 1:
|
|
43
|
-
|
|
43
|
+
_a = (_f.sent());
|
|
44
44
|
_f.label = 2;
|
|
45
45
|
case 2:
|
|
46
|
-
remoteConfig =
|
|
46
|
+
remoteConfig = _a;
|
|
47
47
|
this.config.loggerProvider.debug('Remote configuration:', JSON.stringify(remoteConfig, null, 2));
|
|
48
48
|
// merge remoteConfig.autocapture and this.config.autocapture
|
|
49
49
|
// if a field is in remoteConfig.autocapture, use that value
|
|
@@ -67,11 +67,11 @@ var BrowserJoinedConfigGenerator = /** @class */ (function () {
|
|
|
67
67
|
this.config.defaultTracking = this.config.autocapture;
|
|
68
68
|
}
|
|
69
69
|
this.config.loggerProvider.debug('Joined configuration: ', JSON.stringify(this.config, null, 2));
|
|
70
|
-
(
|
|
71
|
-
if ((
|
|
70
|
+
(_b = (_e = this.config).requestMetadata) !== null && _b !== void 0 ? _b : (_e.requestMetadata = new analytics_core_1.RequestMetadata());
|
|
71
|
+
if ((_c = this.remoteConfigFetch) === null || _c === void 0 ? void 0 : _c.metrics.fetchTimeAPISuccess) {
|
|
72
72
|
this.config.requestMetadata.recordHistogram('remote_config_fetch_time_API_success', this.remoteConfigFetch.metrics.fetchTimeAPISuccess);
|
|
73
73
|
}
|
|
74
|
-
if ((
|
|
74
|
+
if ((_d = this.remoteConfigFetch) === null || _d === void 0 ? void 0 : _d.metrics.fetchTimeAPIFail) {
|
|
75
75
|
this.config.requestMetadata.recordHistogram('remote_config_fetch_time_API_fail', this.remoteConfigFetch.metrics.fetchTimeAPIFail);
|
|
76
76
|
}
|
|
77
77
|
return [3 /*break*/, 4];
|
|
@@ -87,7 +87,7 @@ var BrowserJoinedConfigGenerator = /** @class */ (function () {
|
|
|
87
87
|
return BrowserJoinedConfigGenerator;
|
|
88
88
|
}());
|
|
89
89
|
exports.BrowserJoinedConfigGenerator = BrowserJoinedConfigGenerator;
|
|
90
|
-
var createBrowserJoinedConfigGenerator = function (localConfig) { return tslib_1.__awaiter(
|
|
90
|
+
var createBrowserJoinedConfigGenerator = function (localConfig) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
91
91
|
var joinedConfigGenerator;
|
|
92
92
|
return tslib_1.__generator(this, function (_a) {
|
|
93
93
|
switch (_a.label) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joined-config.js","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"joined-config.js","sourceRoot":"","sources":["../../../src/config/joined-config.ts"],"names":[],"mappings":"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","sourcesContent":["import { createRemoteConfigFetch, RemoteConfigFetch } from '@amplitude/analytics-remote-config';\nimport { RequestMetadata, BrowserConfig as IBrowserConfig, AutocaptureOptions } from '@amplitude/analytics-core';\n\nexport type BrowserRemoteConfig = {\n browserSDK: {\n autocapture?: AutocaptureOptions | boolean;\n };\n};\n\nexport class BrowserJoinedConfigGenerator {\n // Local config before generateJoinedConfig is called\n // Joined config after generateJoinedConfig is called\n config: IBrowserConfig;\n remoteConfigFetch: RemoteConfigFetch<BrowserRemoteConfig> | undefined;\n\n constructor(localConfig: IBrowserConfig) {\n this.config = localConfig;\n this.config.loggerProvider.debug(\n 'Local configuration before merging with remote config',\n JSON.stringify(this.config, null, 2),\n );\n }\n\n async initialize() {\n this.remoteConfigFetch = await createRemoteConfigFetch<BrowserRemoteConfig>({\n localConfig: this.config,\n configKeys: ['analyticsSDK'],\n });\n }\n\n async generateJoinedConfig(): Promise<IBrowserConfig> {\n try {\n const remoteConfig =\n this.remoteConfigFetch &&\n (await this.remoteConfigFetch.getRemoteConfig('analyticsSDK', 'browserSDK', this.config.sessionId));\n this.config.loggerProvider.debug('Remote configuration:', JSON.stringify(remoteConfig, null, 2));\n\n // merge remoteConfig.autocapture and this.config.autocapture\n // if a field is in remoteConfig.autocapture, use that value\n // if a field is not in remoteConfig.autocapture, use the value from this.config.autocapture\n if (remoteConfig && 'autocapture' in remoteConfig) {\n if (typeof remoteConfig.autocapture === 'boolean') {\n this.config.autocapture = remoteConfig.autocapture;\n }\n\n if (typeof remoteConfig.autocapture === 'object') {\n if (this.config.autocapture === undefined) {\n this.config.autocapture = remoteConfig.autocapture;\n }\n\n if (typeof this.config.autocapture === 'boolean') {\n this.config.autocapture = {\n attribution: this.config.autocapture,\n fileDownloads: this.config.autocapture,\n formInteractions: this.config.autocapture,\n pageViews: this.config.autocapture,\n sessions: this.config.autocapture,\n elementInteractions: this.config.autocapture,\n ...remoteConfig.autocapture,\n };\n }\n\n if (typeof this.config.autocapture === 'object') {\n this.config.autocapture = {\n ...this.config.autocapture,\n ...remoteConfig.autocapture,\n };\n }\n }\n\n // Override default tracking options if autocapture is updated by remote config\n this.config.defaultTracking = this.config.autocapture;\n }\n\n this.config.loggerProvider.debug('Joined configuration: ', JSON.stringify(this.config, null, 2));\n this.config.requestMetadata ??= new RequestMetadata();\n if (this.remoteConfigFetch?.metrics.fetchTimeAPISuccess) {\n this.config.requestMetadata.recordHistogram(\n 'remote_config_fetch_time_API_success',\n this.remoteConfigFetch.metrics.fetchTimeAPISuccess,\n );\n }\n if (this.remoteConfigFetch?.metrics.fetchTimeAPIFail) {\n this.config.requestMetadata.recordHistogram(\n 'remote_config_fetch_time_API_fail',\n this.remoteConfigFetch.metrics.fetchTimeAPIFail,\n );\n }\n } catch (e) {\n this.config.loggerProvider.error('Failed to fetch remote configuration because of error: ', e);\n }\n\n return this.config;\n }\n}\n\nexport const createBrowserJoinedConfigGenerator = async (localConfig: IBrowserConfig) => {\n const joinedConfigGenerator = new BrowserJoinedConfigGenerator(localConfig);\n await joinedConfigGenerator.initialize();\n return joinedConfigGenerator;\n};\n"]}
|
package/lib/cjs/config.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Config, MemoryStorage } from '@amplitude/analytics-core';
|
|
3
|
-
import { CookieStorage, FetchTransport } from '@amplitude/analytics-client-common';
|
|
1
|
+
import { Config, ILogger, LogLevel, Event, Storage, IngestionMetadata, ServerZoneType, OfflineDisabled, Plan, IdentityStorageType, TransportType, MemoryStorage, CookieStorage, FetchTransport, UserSession, BrowserOptions, BrowserConfig as IBrowserConfig, DefaultTrackingOptions, TrackingOptions, AutocaptureOptions, CookieOptions } from '@amplitude/analytics-core';
|
|
4
2
|
import { LocalStorage } from './storage/local-storage';
|
|
5
3
|
import { SessionStorage } from './storage/session-storage';
|
|
6
4
|
import { XHRTransport } from './transports/xhr';
|
|
7
5
|
import { SendBeaconTransport } from './transports/send-beacon';
|
|
8
|
-
import { CookieOptions } from '@amplitude/analytics-types/lib/esm/config/browser';
|
|
9
6
|
import { AmplitudeBrowser } from './browser-client';
|
|
10
7
|
export declare class BrowserConfig extends Config implements IBrowserConfig {
|
|
11
8
|
apiKey: string;
|
|
12
9
|
appVersion?: string | undefined;
|
|
13
10
|
cookieOptions: CookieOptions;
|
|
14
|
-
defaultTracking?: boolean | DefaultTrackingOptions | undefined;
|
|
15
|
-
autocapture?: boolean | AutocaptureOptions | undefined;
|
|
11
|
+
defaultTracking?: (boolean | DefaultTrackingOptions) | undefined;
|
|
12
|
+
autocapture?: (boolean | AutocaptureOptions) | undefined;
|
|
16
13
|
flushIntervalMillis: number;
|
|
17
14
|
flushMaxRetries: number;
|
|
18
15
|
flushQueueSize: number;
|
|
@@ -42,7 +39,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
|
|
|
42
39
|
protected _userId?: string;
|
|
43
40
|
protected _pageCounter?: number;
|
|
44
41
|
protected _debugLogsEnabled?: boolean;
|
|
45
|
-
constructor(apiKey: string, appVersion?: string | undefined, cookieStorage?: Storage<UserSession>, cookieOptions?: CookieOptions, defaultTracking?: boolean | DefaultTrackingOptions | undefined, autocapture?: boolean | AutocaptureOptions | undefined, deviceId?: string, flushIntervalMillis?: number, flushMaxRetries?: number, flushQueueSize?: number, identityStorage?: IdentityStorageType, ingestionMetadata?: IngestionMetadata | undefined, instanceName?: string | undefined, lastEventId?: number, lastEventTime?: number, loggerProvider?: ILogger, logLevel?: LogLevel, minIdLength?: number | undefined, offline?: boolean | typeof OfflineDisabled, optOut?: boolean, partnerId?: string | undefined, plan?: Plan | undefined, serverUrl?: string, serverZone?: ServerZoneType, sessionId?: number, sessionTimeout?: number, storageProvider?: Storage<Event[]>, trackingOptions?: Required<TrackingOptions>, transport?: 'fetch' | 'xhr' | 'beacon', useBatch?: boolean, fetchRemoteConfig?: boolean, userId?: string, pageCounter?: number, debugLogsEnabled?: boolean);
|
|
42
|
+
constructor(apiKey: string, appVersion?: string | undefined, cookieStorage?: Storage<UserSession>, cookieOptions?: CookieOptions, defaultTracking?: (boolean | DefaultTrackingOptions) | undefined, autocapture?: (boolean | AutocaptureOptions) | undefined, deviceId?: string, flushIntervalMillis?: number, flushMaxRetries?: number, flushQueueSize?: number, identityStorage?: IdentityStorageType, ingestionMetadata?: IngestionMetadata | undefined, instanceName?: string | undefined, lastEventId?: number, lastEventTime?: number, loggerProvider?: ILogger, logLevel?: LogLevel, minIdLength?: number | undefined, offline?: boolean | typeof OfflineDisabled, optOut?: boolean, partnerId?: string | undefined, plan?: Plan | undefined, serverUrl?: string, serverZone?: ServerZoneType, sessionId?: number, sessionTimeout?: number, storageProvider?: Storage<Event[]>, trackingOptions?: Required<TrackingOptions>, transport?: 'fetch' | 'xhr' | 'beacon', useBatch?: boolean, fetchRemoteConfig?: boolean, userId?: string, pageCounter?: number, debugLogsEnabled?: boolean);
|
|
46
43
|
get cookieStorage(): Storage<UserSession>;
|
|
47
44
|
set cookieStorage(cookieStorage: Storage<UserSession>);
|
|
48
45
|
get deviceId(): string | undefined;
|
package/lib/cjs/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/config.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTopLevelDomain = exports.createTransport = exports.createCookieStorage = exports.useBrowserConfig = exports.BrowserConfig = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var analytics_types_1 = require("@amplitude/analytics-types");
|
|
6
5
|
var analytics_core_1 = require("@amplitude/analytics-core");
|
|
7
|
-
var analytics_client_common_1 = require("@amplitude/analytics-client-common");
|
|
8
6
|
var local_storage_1 = require("./storage/local-storage");
|
|
9
7
|
var session_storage_1 = require("./storage/session-storage");
|
|
10
8
|
var xhr_1 = require("./transports/xhr");
|
|
@@ -28,7 +26,7 @@ var BrowserConfig = /** @class */ (function (_super) {
|
|
|
28
26
|
if (flushQueueSize === void 0) { flushQueueSize = 30; }
|
|
29
27
|
if (identityStorage === void 0) { identityStorage = constants_1.DEFAULT_IDENTITY_STORAGE; }
|
|
30
28
|
if (loggerProvider === void 0) { loggerProvider = new analytics_core_1.Logger(); }
|
|
31
|
-
if (logLevel === void 0) { logLevel =
|
|
29
|
+
if (logLevel === void 0) { logLevel = analytics_core_1.LogLevel.Warn; }
|
|
32
30
|
if (offline === void 0) { offline = false; }
|
|
33
31
|
if (optOut === void 0) { optOut = false; }
|
|
34
32
|
if (serverUrl === void 0) { serverUrl = ''; }
|
|
@@ -79,7 +77,7 @@ var BrowserConfig = /** @class */ (function (_super) {
|
|
|
79
77
|
_this.pageCounter = pageCounter;
|
|
80
78
|
_this.userId = userId;
|
|
81
79
|
_this.debugLogsEnabled = debugLogsEnabled;
|
|
82
|
-
_this.loggerProvider.enable(debugLogsEnabled ?
|
|
80
|
+
_this.loggerProvider.enable(debugLogsEnabled ? analytics_core_1.LogLevel.Debug : _this.logLevel);
|
|
83
81
|
return _this;
|
|
84
82
|
}
|
|
85
83
|
Object.defineProperty(BrowserConfig.prototype, "cookieStorage", {
|
|
@@ -207,17 +205,21 @@ var BrowserConfig = /** @class */ (function (_super) {
|
|
|
207
205
|
pageCounter: this._pageCounter,
|
|
208
206
|
debugLogsEnabled: this._debugLogsEnabled,
|
|
209
207
|
};
|
|
210
|
-
void this.cookieStorage.set((0,
|
|
208
|
+
void this.cookieStorage.set((0, analytics_core_1.getCookieName)(this.apiKey), cache);
|
|
211
209
|
};
|
|
212
210
|
return BrowserConfig;
|
|
213
211
|
}(analytics_core_1.Config));
|
|
214
212
|
exports.BrowserConfig = BrowserConfig;
|
|
215
|
-
var useBrowserConfig = function (
|
|
216
|
-
|
|
217
|
-
|
|
213
|
+
var useBrowserConfig = function (apiKey_1) {
|
|
214
|
+
var args_1 = [];
|
|
215
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
216
|
+
args_1[_i - 1] = arguments[_i];
|
|
217
|
+
}
|
|
218
|
+
return tslib_1.__awaiter(void 0, tslib_1.__spreadArray([apiKey_1], tslib_1.__read(args_1), false), void 0, function (apiKey, options, amplitudeInstance) {
|
|
218
219
|
var identityStorage, cookieOptions, _a, _b, cookieStorage, legacyCookies, previousCookies, queryParams, deviceId, lastEventId, lastEventTime, optOut, sessionId, userId, trackingOptions, pageCounter, debugLogsEnabled, browserConfig;
|
|
219
220
|
var _c;
|
|
220
221
|
var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
222
|
+
if (options === void 0) { options = {}; }
|
|
221
223
|
return tslib_1.__generator(this, function (_3) {
|
|
222
224
|
switch (_3.label) {
|
|
223
225
|
case 0:
|
|
@@ -243,10 +245,10 @@ var useBrowserConfig = function (apiKey, options, amplitudeInstance) {
|
|
|
243
245
|
return [4 /*yield*/, (0, cookie_migration_1.parseLegacyCookies)(apiKey, cookieStorage, (_g = (_f = options.cookieOptions) === null || _f === void 0 ? void 0 : _f.upgrade) !== null && _g !== void 0 ? _g : true)];
|
|
244
246
|
case 6:
|
|
245
247
|
legacyCookies = _3.sent();
|
|
246
|
-
return [4 /*yield*/, cookieStorage.get((0,
|
|
248
|
+
return [4 /*yield*/, cookieStorage.get((0, analytics_core_1.getCookieName)(apiKey))];
|
|
247
249
|
case 7:
|
|
248
250
|
previousCookies = _3.sent();
|
|
249
|
-
queryParams = (0,
|
|
251
|
+
queryParams = (0, analytics_core_1.getQueryParams)();
|
|
250
252
|
deviceId = (_m = (_l = (_k = (_j = (_h = options.deviceId) !== null && _h !== void 0 ? _h : queryParams.ampDeviceId) !== null && _j !== void 0 ? _j : queryParams.deviceId) !== null && _k !== void 0 ? _k : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _l !== void 0 ? _l : legacyCookies.deviceId) !== null && _m !== void 0 ? _m : (0, analytics_core_1.UUID)();
|
|
251
253
|
lastEventId = (_o = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventId) !== null && _o !== void 0 ? _o : legacyCookies.lastEventId;
|
|
252
254
|
lastEventTime = (_p = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventTime) !== null && _p !== void 0 ? _p : legacyCookies.lastEventTime;
|
|
@@ -291,7 +293,7 @@ var createCookieStorage = function (identityStorage, cookieOptions) {
|
|
|
291
293
|
return new analytics_core_1.MemoryStorage();
|
|
292
294
|
case 'cookie':
|
|
293
295
|
default:
|
|
294
|
-
return new
|
|
296
|
+
return new analytics_core_1.CookieStorage(tslib_1.__assign(tslib_1.__assign({}, cookieOptions), { expirationDays: cookieOptions.expiration }));
|
|
295
297
|
}
|
|
296
298
|
};
|
|
297
299
|
exports.createCookieStorage = createCookieStorage;
|
|
@@ -302,14 +304,14 @@ var createTransport = function (transport) {
|
|
|
302
304
|
if (transport === 'beacon') {
|
|
303
305
|
return new send_beacon_1.SendBeaconTransport();
|
|
304
306
|
}
|
|
305
|
-
return new
|
|
307
|
+
return new analytics_core_1.FetchTransport();
|
|
306
308
|
};
|
|
307
309
|
exports.createTransport = createTransport;
|
|
308
|
-
var getTopLevelDomain = function (url) { return tslib_1.__awaiter(
|
|
310
|
+
var getTopLevelDomain = function (url) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
309
311
|
var host, parts, levels, storageKey, i, i, domain, options, storage, value;
|
|
310
312
|
return tslib_1.__generator(this, function (_a) {
|
|
311
313
|
switch (_a.label) {
|
|
312
|
-
case 0: return [4 /*yield*/, new
|
|
314
|
+
case 0: return [4 /*yield*/, new analytics_core_1.CookieStorage().isEnabled()];
|
|
313
315
|
case 1:
|
|
314
316
|
if (!(_a.sent()) ||
|
|
315
317
|
(!url && (typeof location === 'undefined' || !location.hostname))) {
|
|
@@ -328,7 +330,7 @@ var getTopLevelDomain = function (url) { return tslib_1.__awaiter(_this, void 0,
|
|
|
328
330
|
if (!(i < levels.length)) return [3 /*break*/, 7];
|
|
329
331
|
domain = levels[i];
|
|
330
332
|
options = { domain: '.' + domain };
|
|
331
|
-
storage = new
|
|
333
|
+
storage = new analytics_core_1.CookieStorage(options);
|
|
332
334
|
return [4 /*yield*/, storage.set(storageKey, 1)];
|
|
333
335
|
case 3:
|
|
334
336
|
_a.sent();
|