@amplitude/analytics-browser 2.30.2-zen-observable-migration.1 → 2.31.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/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +75 -48
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +1 -1
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +1 -1
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.d.ts.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 +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +75 -48
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +1 -1
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +1 -1
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.d.ts.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/browser-client.d.ts.map +1 -1
- package/lib/scripts/config.d.ts +1 -1
- package/lib/scripts/config.d.ts.map +1 -1
- package/lib/scripts/index.d.ts +1 -1
- package/lib/scripts/index.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 +8 -8
package/lib/cjs/version.js
CHANGED
package/lib/cjs/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const VERSION = '2.31.0';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EAEb,eAAe,EAMhB,MAAM,2BAA2B,CAAC;AA+BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa,EAAE,eAAe;IAG3F,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAInD,sBAAsB,SAAK;IAE3B,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAiB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAYb,KAAK,EACL,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EAEb,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EAEb,eAAe,EAMhB,MAAM,2BAA2B,CAAC;AA+BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,aAAc,YAAW,aAAa,EAAE,eAAe;IAG3F,MAAM,EAAE,aAAa,CAAC;IACtB,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,SAAS,CAAC;IAInD,sBAAsB,SAAK;IAE3B,IAAI,CAAC,MAAM,SAAK,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,YAAY,CAAC,EAAE,cAAc;cAiB1E,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAsNlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,KAAK;IAML,WAAW;;;;;;;IAQX,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IA6D9B,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,aAAa;IAQrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAezD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAS/G,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY;IAStD,OAAO,CAAC,0BAA0B;IAe5B,OAAO,CAAC,KAAK,EAAE,KAAK;IA+B1B,OAAO,CAAC,iBAAiB;IAazB;;;;;;;OAOG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAUpD"}
|
|
@@ -67,7 +67,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
67
67
|
return [4 /*yield*/, useBrowserConfig(options.apiKey, options, this)];
|
|
68
68
|
case 1:
|
|
69
69
|
browserOptions = _f.sent();
|
|
70
|
-
if (!((_a = browserOptions.remoteConfig) === null || _a === void 0 ? void 0 : _a.fetchRemoteConfig)) return [3 /*break*/,
|
|
70
|
+
if (!((_a = browserOptions.remoteConfig) === null || _a === void 0 ? void 0 : _a.fetchRemoteConfig)) return [3 /*break*/, 4];
|
|
71
71
|
remoteConfigClient = new RemoteConfigClient(browserOptions.apiKey, browserOptions.loggerProvider, browserOptions.serverZone,
|
|
72
72
|
/* istanbul ignore next */ (_b = browserOptions.remoteConfig) === null || _b === void 0 ? void 0 : _b.serverUrl);
|
|
73
73
|
// Wait for initial remote config before proceeding.
|
|
@@ -92,29 +92,55 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
92
92
|
// Wait for initial remote config before proceeding.
|
|
93
93
|
// Delivery mode is all, meaning it calls the callback with whoever (cache or remote) returns first.
|
|
94
94
|
_f.sent();
|
|
95
|
-
|
|
95
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
96
|
+
// Disable coverage for this line because remote config client will always be defined in this case.
|
|
97
|
+
// istanbul ignore next
|
|
98
|
+
remoteConfigClient === null || remoteConfigClient === void 0 ? void 0 : remoteConfigClient.subscribe('configs.diagnostics.browserSDK', 'all', function (remoteConfig, source, lastFetch) {
|
|
99
|
+
browserOptions.loggerProvider.debug('Diagnostics remote configuration received:', JSON.stringify({
|
|
100
|
+
remoteConfig: remoteConfig,
|
|
101
|
+
source: source,
|
|
102
|
+
lastFetch: lastFetch,
|
|
103
|
+
}, null, 2));
|
|
104
|
+
if (remoteConfig) {
|
|
105
|
+
// Validate and set sampleRate (must be a valid number)
|
|
106
|
+
var sampleRate = remoteConfig.sampleRate;
|
|
107
|
+
if (typeof sampleRate === 'number' && !isNaN(sampleRate)) {
|
|
108
|
+
browserOptions.diagnosticsSampleRate = sampleRate;
|
|
109
|
+
}
|
|
110
|
+
// Validate and set enabled (must be a boolean)
|
|
111
|
+
var enabled = remoteConfig.enabled;
|
|
112
|
+
if (typeof enabled === 'boolean') {
|
|
113
|
+
browserOptions.enableDiagnostics = enabled;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
resolve();
|
|
117
|
+
});
|
|
118
|
+
})];
|
|
96
119
|
case 3:
|
|
120
|
+
_f.sent();
|
|
121
|
+
_f.label = 4;
|
|
122
|
+
case 4:
|
|
97
123
|
diagnosticsClient = new DiagnosticsClient(browserOptions.apiKey, browserOptions.loggerProvider, browserOptions.serverZone, {
|
|
98
124
|
enabled: browserOptions.enableDiagnostics,
|
|
99
|
-
sampleRate: browserOptions.diagnosticsSampleRate
|
|
125
|
+
sampleRate: browserOptions.diagnosticsSampleRate,
|
|
100
126
|
});
|
|
101
127
|
diagnosticsClient.setTag('library', "".concat(LIBPREFIX, "/").concat(VERSION));
|
|
102
128
|
return [4 /*yield*/, _super.prototype._init.call(this, browserOptions)];
|
|
103
|
-
case
|
|
129
|
+
case 5:
|
|
104
130
|
_f.sent();
|
|
105
131
|
this.logBrowserOptions(browserOptions);
|
|
106
132
|
this.config.diagnosticsClient = diagnosticsClient;
|
|
107
133
|
this.config.remoteConfigClient = remoteConfigClient;
|
|
108
|
-
if (!isAttributionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/,
|
|
134
|
+
if (!isAttributionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 7];
|
|
109
135
|
attributionTrackingOptions = getAttributionTrackingConfig(this.config);
|
|
110
136
|
this.webAttribution = new WebAttribution(attributionTrackingOptions, this.config);
|
|
111
137
|
// Fetch the current campaign, check if need to track web attribution later
|
|
112
138
|
return [4 /*yield*/, this.webAttribution.init()];
|
|
113
|
-
case
|
|
139
|
+
case 6:
|
|
114
140
|
// Fetch the current campaign, check if need to track web attribution later
|
|
115
141
|
_f.sent();
|
|
116
|
-
_f.label =
|
|
117
|
-
case
|
|
142
|
+
_f.label = 7;
|
|
143
|
+
case 7:
|
|
118
144
|
queryParams = getQueryParams();
|
|
119
145
|
ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;
|
|
120
146
|
isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;
|
|
@@ -131,82 +157,82 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
131
157
|
userId: this.config.userId,
|
|
132
158
|
deviceId: this.config.deviceId,
|
|
133
159
|
});
|
|
134
|
-
if (!(this.config.offline !== OfflineDisabled)) return [3 /*break*/,
|
|
160
|
+
if (!(this.config.offline !== OfflineDisabled)) return [3 /*break*/, 9];
|
|
135
161
|
return [4 /*yield*/, this.add(networkConnectivityCheckerPlugin()).promise];
|
|
136
|
-
case
|
|
162
|
+
case 8:
|
|
137
163
|
_f.sent();
|
|
138
|
-
_f.label =
|
|
139
|
-
case
|
|
140
|
-
case
|
|
164
|
+
_f.label = 9;
|
|
165
|
+
case 9: return [4 /*yield*/, this.add(new Destination({ diagnosticsClient: diagnosticsClient })).promise];
|
|
166
|
+
case 10:
|
|
141
167
|
_f.sent();
|
|
142
168
|
return [4 /*yield*/, this.add(new Context()).promise];
|
|
143
|
-
case
|
|
169
|
+
case 11:
|
|
144
170
|
_f.sent();
|
|
145
171
|
return [4 /*yield*/, this.add(new IdentityEventSender()).promise];
|
|
146
|
-
case
|
|
172
|
+
case 12:
|
|
147
173
|
_f.sent();
|
|
148
174
|
// Notify if DET is enabled
|
|
149
175
|
detNotify(this.config);
|
|
150
|
-
if (!isFileDownloadTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/,
|
|
176
|
+
if (!isFileDownloadTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 14];
|
|
151
177
|
this.config.loggerProvider.debug('Adding file download tracking plugin');
|
|
152
178
|
return [4 /*yield*/, this.add(fileDownloadTracking()).promise];
|
|
153
|
-
case 12:
|
|
154
|
-
_f.sent();
|
|
155
|
-
_f.label = 13;
|
|
156
179
|
case 13:
|
|
157
|
-
|
|
180
|
+
_f.sent();
|
|
181
|
+
_f.label = 14;
|
|
182
|
+
case 14:
|
|
183
|
+
if (!isFormInteractionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 16];
|
|
158
184
|
this.config.loggerProvider.debug('Adding form interaction plugin');
|
|
159
185
|
return [4 /*yield*/, this.add(formInteractionTracking()).promise];
|
|
160
|
-
case 14:
|
|
161
|
-
_f.sent();
|
|
162
|
-
_f.label = 15;
|
|
163
186
|
case 15:
|
|
164
|
-
|
|
187
|
+
_f.sent();
|
|
188
|
+
_f.label = 16;
|
|
189
|
+
case 16:
|
|
190
|
+
if (!isPageViewTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 18];
|
|
165
191
|
this.config.loggerProvider.debug('Adding page view tracking plugin');
|
|
166
192
|
return [4 /*yield*/, this.add(pageViewTrackingPlugin(getPageViewTrackingConfig(this.config))).promise];
|
|
167
|
-
case 16:
|
|
168
|
-
_f.sent();
|
|
169
|
-
_f.label = 17;
|
|
170
193
|
case 17:
|
|
171
|
-
|
|
194
|
+
_f.sent();
|
|
195
|
+
_f.label = 18;
|
|
196
|
+
case 18:
|
|
197
|
+
if (!isElementInteractionsEnabled(this.config.autocapture)) return [3 /*break*/, 20];
|
|
172
198
|
this.config.loggerProvider.debug('Adding user interactions plugin (autocapture plugin)');
|
|
173
199
|
return [4 /*yield*/, this.add(autocapturePlugin(getElementInteractionsConfig(this.config), { diagnosticsClient: diagnosticsClient })).promise];
|
|
174
|
-
case 18:
|
|
175
|
-
_f.sent();
|
|
176
|
-
_f.label = 19;
|
|
177
200
|
case 19:
|
|
178
|
-
|
|
201
|
+
_f.sent();
|
|
202
|
+
_f.label = 20;
|
|
203
|
+
case 20:
|
|
204
|
+
if (!isFrustrationInteractionsEnabled(this.config.autocapture)) return [3 /*break*/, 22];
|
|
179
205
|
this.config.loggerProvider.debug('Adding frustration interactions plugin');
|
|
180
206
|
return [4 /*yield*/, this.add(frustrationPlugin(getFrustrationInteractionsConfig(this.config))).promise];
|
|
181
|
-
case 20:
|
|
182
|
-
_f.sent();
|
|
183
|
-
_f.label = 21;
|
|
184
207
|
case 21:
|
|
185
|
-
|
|
208
|
+
_f.sent();
|
|
209
|
+
_f.label = 22;
|
|
210
|
+
case 22:
|
|
211
|
+
if (!isNetworkTrackingEnabled(this.config.autocapture)) return [3 /*break*/, 24];
|
|
186
212
|
this.config.loggerProvider.debug('Adding network tracking plugin');
|
|
187
213
|
return [4 /*yield*/, this.add(networkCapturePlugin(getNetworkTrackingConfig(this.config))).promise];
|
|
188
|
-
case 22:
|
|
189
|
-
_f.sent();
|
|
190
|
-
_f.label = 23;
|
|
191
214
|
case 23:
|
|
192
|
-
|
|
215
|
+
_f.sent();
|
|
216
|
+
_f.label = 24;
|
|
217
|
+
case 24:
|
|
218
|
+
if (!isWebVitalsEnabled(this.config.autocapture)) return [3 /*break*/, 26];
|
|
193
219
|
this.config.loggerProvider.debug('Adding web vitals plugin');
|
|
194
220
|
return [4 /*yield*/, this.add(webVitalsPlugin()).promise];
|
|
195
|
-
case 24:
|
|
196
|
-
_f.sent();
|
|
197
|
-
_f.label = 25;
|
|
198
221
|
case 25:
|
|
199
|
-
|
|
222
|
+
_f.sent();
|
|
223
|
+
_f.label = 26;
|
|
224
|
+
case 26:
|
|
225
|
+
if (!isPageUrlEnrichmentEnabled(this.config.autocapture)) return [3 /*break*/, 28];
|
|
200
226
|
this.config.loggerProvider.debug('Adding referrer page url plugin');
|
|
201
227
|
return [4 /*yield*/, this.add(pageUrlEnrichmentPlugin()).promise];
|
|
202
|
-
case 26:
|
|
203
|
-
_f.sent();
|
|
204
|
-
_f.label = 27;
|
|
205
228
|
case 27:
|
|
229
|
+
_f.sent();
|
|
230
|
+
_f.label = 28;
|
|
231
|
+
case 28:
|
|
206
232
|
this.initializing = false;
|
|
207
233
|
// Step 6: Run queued dispatch functions
|
|
208
234
|
return [4 /*yield*/, this.runQueuedFunctions('dispatchQ')];
|
|
209
|
-
case
|
|
235
|
+
case 29:
|
|
210
236
|
// Step 6: Run queued dispatch functions
|
|
211
237
|
_f.sent();
|
|
212
238
|
// Step 7: Add the event receiver after running remaining queued functions.
|
|
@@ -257,6 +283,7 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
257
283
|
AmplitudeBrowser.prototype.reset = function () {
|
|
258
284
|
this.setDeviceId(UUID());
|
|
259
285
|
this.setUserId(undefined);
|
|
286
|
+
this.timeline.onReset();
|
|
260
287
|
};
|
|
261
288
|
AmplitudeBrowser.prototype.getIdentity = function () {
|
|
262
289
|
var _a, _b;
|
|
@@ -1 +1 @@
|
|
|
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 SpecialEventType,\n AnalyticsClient,\n IRemoteConfigClient,\n RemoteConfigClient,\n RemoteConfig,\n Source,\n DiagnosticsClient,\n} from '@amplitude/analytics-core';\nimport {\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n getNetworkTrackingConfig,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n isPageViewTrackingEnabled,\n isNetworkTrackingEnabled,\n isWebVitalsEnabled,\n isFrustrationInteractionsEnabled,\n getFrustrationInteractionsConfig,\n isPageUrlEnrichmentEnabled,\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 { updateBrowserConfigWithRemoteConfig } from './config/joined-config';\nimport { autocapturePlugin, frustrationPlugin } from '@amplitude/plugin-autocapture-browser';\nimport { plugin as networkCapturePlugin } from '@amplitude/plugin-network-capture-browser';\nimport { webVitalsPlugin } from '@amplitude/plugin-web-vitals-browser';\nimport { WebAttribution } from './attribution/web-attribution';\nimport { LIBPREFIX } from './lib-prefix';\nimport { VERSION } from './version';\nimport { pageUrlEnrichmentPlugin } from '@amplitude/plugin-page-url-enrichment-browser';\n\n/**\n * Exported for `@amplitude/unified` or integration with blade plugins.\n * If you only use `@amplitude/analytics-browser`, use `amplitude.init()` or `amplitude.createInstance()` instead.\n */\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient, AnalyticsClient {\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 userProperties: { [key: string]: any } | undefined;\n\n // Backdoor to set diagnostics sample rate\n // by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()\n _diagnosticsSampleRate = 0;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\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 // Step 2: Create browser config\n // Get default browser config based on browser options\n const browserOptions = await useBrowserConfig(options.apiKey, options, this);\n\n let remoteConfigClient: IRemoteConfigClient | undefined;\n // Create remote config client and subscribe to analytics configs\n if (browserOptions.remoteConfig?.fetchRemoteConfig) {\n remoteConfigClient = new RemoteConfigClient(\n browserOptions.apiKey,\n browserOptions.loggerProvider,\n browserOptions.serverZone,\n /* istanbul ignore next */ browserOptions.remoteConfig?.serverUrl, // Disable coverage for this line as remoteConfig will always be set by BrowserConfig constructor\n );\n\n // Wait for initial remote config before proceeding.\n // Delivery mode is all, meaning it calls the callback with whoever (cache or remote) returns first.\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.analyticsSDK.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n browserOptions.loggerProvider.debug(\n 'Remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n updateBrowserConfigWithRemoteConfig(remoteConfig, browserOptions);\n }\n // Resolve the promise on first callback (initial config)\n resolve();\n },\n );\n });\n }\n\n // Initialize diagnostics client and set library tag\n const diagnosticsClient = new DiagnosticsClient(\n browserOptions.apiKey,\n browserOptions.loggerProvider,\n browserOptions.serverZone,\n {\n enabled: browserOptions.enableDiagnostics,\n sampleRate: browserOptions.diagnosticsSampleRate || this._diagnosticsSampleRate,\n },\n );\n diagnosticsClient.setTag('library', `${LIBPREFIX}/${VERSION}`);\n\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n this.config.diagnosticsClient = diagnosticsClient;\n this.config.remoteConfigClient = remoteConfigClient;\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 and ampTimestamp is valid\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\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // if an identify object is provided, call it on init\n if (this.config.identify) {\n this.identify(this.config.identify);\n }\n\n // check if we need to set the sessionId\n const querySessionId =\n isWithinTimeLimit && !Number.isNaN(Number(queryParams.ampSessionId))\n ? Number(queryParams.ampSessionId)\n : undefined;\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({ diagnosticsClient })).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), { diagnosticsClient })).promise;\n }\n\n if (isFrustrationInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding frustration interactions plugin');\n await this.add(frustrationPlugin(getFrustrationInteractionsConfig(this.config))).promise;\n }\n\n if (isNetworkTrackingEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding network tracking plugin');\n await this.add(networkCapturePlugin(getNetworkTrackingConfig(this.config))).promise;\n }\n\n if (isWebVitalsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding web vitals plugin');\n await this.add(webVitalsPlugin()).promise;\n }\n\n if (isPageUrlEnrichmentEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding referrer page url plugin');\n await this.add(pageUrlEnrichmentPlugin()).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 const { time, ...cleanEventProperties } = event.eventProperties || {};\n const eventOptions = typeof time === 'number' ? { time } : undefined;\n void this.track(event.eventType, cleanEventProperties, eventOptions);\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ 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 if (deviceId !== this.config.deviceId) {\n this.config.deviceId = deviceId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ deviceId: deviceId });\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n }\n\n getIdentity() {\n return {\n deviceId: this.config?.deviceId,\n userId: this.config?.userId,\n userProperties: this.userProperties,\n };\n }\n\n getOptOut(): boolean | undefined {\n return this.config?.optOut;\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 if (previousSessionId !== sessionId) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onSessionIdChanged(sessionId);\n }\n\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 // Set user properties\n if (event.event_type === SpecialEventType.IDENTIFY && event.user_properties) {\n this.userProperties = this.getOperationAppliedUserProperties(event.user_properties);\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 /**\n * @experimental\n * WARNING: This method is for internal testing only and is not part of the public API.\n * It may be changed or removed at any time without notice.\n *\n * Sets the diagnostics sample rate before amplitude.init()\n * @param sampleRate - The sample rate to set\n */\n _setDiagnosticsSampleRate(sampleRate: number): void {\n if (sampleRate > 1 || sampleRate < 0) {\n return;\n }\n // Set diagnostics sample rate before initializing the config\n if (!this.config) {\n this._diagnosticsSampleRate = sampleRate;\n return;\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 SpecialEventType,\n AnalyticsClient,\n IRemoteConfigClient,\n RemoteConfigClient,\n RemoteConfig,\n Source,\n DiagnosticsClient,\n} from '@amplitude/analytics-core';\nimport {\n getAttributionTrackingConfig,\n getPageViewTrackingConfig,\n getElementInteractionsConfig,\n getNetworkTrackingConfig,\n isAttributionTrackingEnabled,\n isSessionTrackingEnabled,\n isFileDownloadTrackingEnabled,\n isFormInteractionTrackingEnabled,\n isElementInteractionsEnabled,\n isPageViewTrackingEnabled,\n isNetworkTrackingEnabled,\n isWebVitalsEnabled,\n isFrustrationInteractionsEnabled,\n getFrustrationInteractionsConfig,\n isPageUrlEnrichmentEnabled,\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 { updateBrowserConfigWithRemoteConfig } from './config/joined-config';\nimport { autocapturePlugin, frustrationPlugin } from '@amplitude/plugin-autocapture-browser';\nimport { plugin as networkCapturePlugin } from '@amplitude/plugin-network-capture-browser';\nimport { webVitalsPlugin } from '@amplitude/plugin-web-vitals-browser';\nimport { WebAttribution } from './attribution/web-attribution';\nimport { LIBPREFIX } from './lib-prefix';\nimport { VERSION } from './version';\nimport { pageUrlEnrichmentPlugin } from '@amplitude/plugin-page-url-enrichment-browser';\n\n/**\n * Exported for `@amplitude/unified` or integration with blade plugins.\n * If you only use `@amplitude/analytics-browser`, use `amplitude.init()` or `amplitude.createInstance()` instead.\n */\nexport class AmplitudeBrowser extends AmplitudeCore implements BrowserClient, AnalyticsClient {\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 userProperties: { [key: string]: any } | undefined;\n\n // Backdoor to set diagnostics sample rate\n // by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()\n _diagnosticsSampleRate = 0;\n\n init(apiKey = '', userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions) {\n let userId: string | undefined;\n let options: BrowserOptions | undefined;\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 // Step 2: Create browser config\n // Get default browser config based on browser options\n const browserOptions = await useBrowserConfig(options.apiKey, options, this);\n\n let remoteConfigClient: IRemoteConfigClient | undefined;\n // Create remote config client and subscribe to analytics configs\n if (browserOptions.remoteConfig?.fetchRemoteConfig) {\n remoteConfigClient = new RemoteConfigClient(\n browserOptions.apiKey,\n browserOptions.loggerProvider,\n browserOptions.serverZone,\n /* istanbul ignore next */ browserOptions.remoteConfig?.serverUrl, // Disable coverage for this line as remoteConfig will always be set by BrowserConfig constructor\n );\n\n // Wait for initial remote config before proceeding.\n // Delivery mode is all, meaning it calls the callback with whoever (cache or remote) returns first.\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.analyticsSDK.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n browserOptions.loggerProvider.debug(\n 'Remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n updateBrowserConfigWithRemoteConfig(remoteConfig, browserOptions);\n }\n // Resolve the promise on first callback (initial config)\n resolve();\n },\n );\n });\n\n await new Promise<void>((resolve) => {\n // Disable coverage for this line because remote config client will always be defined in this case.\n // istanbul ignore next\n remoteConfigClient?.subscribe(\n 'configs.diagnostics.browserSDK',\n 'all',\n (remoteConfig: RemoteConfig | null, source: Source, lastFetch: Date) => {\n browserOptions.loggerProvider.debug(\n 'Diagnostics remote configuration received:',\n JSON.stringify(\n {\n remoteConfig,\n source,\n lastFetch,\n },\n null,\n 2,\n ),\n );\n if (remoteConfig) {\n // Validate and set sampleRate (must be a valid number)\n const sampleRate = remoteConfig.sampleRate as number;\n if (typeof sampleRate === 'number' && !isNaN(sampleRate)) {\n browserOptions.diagnosticsSampleRate = sampleRate;\n }\n\n // Validate and set enabled (must be a boolean)\n const enabled = remoteConfig.enabled as boolean;\n if (typeof enabled === 'boolean') {\n browserOptions.enableDiagnostics = enabled;\n }\n }\n resolve();\n },\n );\n });\n }\n\n // Initialize diagnostics client and set library tag\n const diagnosticsClient = new DiagnosticsClient(\n browserOptions.apiKey,\n browserOptions.loggerProvider,\n browserOptions.serverZone,\n {\n enabled: browserOptions.enableDiagnostics,\n sampleRate: browserOptions.diagnosticsSampleRate,\n },\n );\n diagnosticsClient.setTag('library', `${LIBPREFIX}/${VERSION}`);\n\n await super._init(browserOptions);\n this.logBrowserOptions(browserOptions);\n\n this.config.diagnosticsClient = diagnosticsClient;\n this.config.remoteConfigClient = remoteConfigClient;\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 and ampTimestamp is valid\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\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // if an identify object is provided, call it on init\n if (this.config.identify) {\n this.identify(this.config.identify);\n }\n\n // check if we need to set the sessionId\n const querySessionId =\n isWithinTimeLimit && !Number.isNaN(Number(queryParams.ampSessionId))\n ? Number(queryParams.ampSessionId)\n : undefined;\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({ diagnosticsClient })).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), { diagnosticsClient })).promise;\n }\n\n if (isFrustrationInteractionsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding frustration interactions plugin');\n await this.add(frustrationPlugin(getFrustrationInteractionsConfig(this.config))).promise;\n }\n\n if (isNetworkTrackingEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding network tracking plugin');\n await this.add(networkCapturePlugin(getNetworkTrackingConfig(this.config))).promise;\n }\n\n if (isWebVitalsEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding web vitals plugin');\n await this.add(webVitalsPlugin()).promise;\n }\n\n if (isPageUrlEnrichmentEnabled(this.config.autocapture)) {\n this.config.loggerProvider.debug('Adding referrer page url plugin');\n await this.add(pageUrlEnrichmentPlugin()).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 const { time, ...cleanEventProperties } = event.eventProperties || {};\n const eventOptions = typeof time === 'number' ? { time } : undefined;\n void this.track(event.eventType, cleanEventProperties, eventOptions);\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ 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 if (deviceId !== this.config.deviceId) {\n this.config.deviceId = deviceId;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onIdentityChanged({ deviceId: deviceId });\n setConnectorDeviceId(deviceId, this.config.instanceName);\n }\n }\n\n reset() {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n this.timeline.onReset();\n }\n\n getIdentity() {\n return {\n deviceId: this.config?.deviceId,\n userId: this.config?.userId,\n userProperties: this.userProperties,\n };\n }\n\n getOptOut(): boolean | undefined {\n return this.config?.optOut;\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 if (previousSessionId !== sessionId) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this.timeline.onSessionIdChanged(sessionId);\n }\n\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 // Set user properties\n if (event.event_type === SpecialEventType.IDENTIFY && event.user_properties) {\n this.userProperties = this.getOperationAppliedUserProperties(event.user_properties);\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 /**\n * @experimental\n * WARNING: This method is for internal testing only and is not part of the public API.\n * It may be changed or removed at any time without notice.\n *\n * Sets the diagnostics sample rate before amplitude.init()\n * @param sampleRate - The sample rate to set\n */\n _setDiagnosticsSampleRate(sampleRate: number): void {\n if (sampleRate > 1 || sampleRate < 0) {\n return;\n }\n // Set diagnostics sample rate before initializing the config\n if (!this.config) {\n this._diagnosticsSampleRate = sampleRate;\n return;\n }\n }\n}\n"]}
|
package/lib/esm/config.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export declare class BrowserConfig extends Config implements IBrowserConfig {
|
|
|
36
36
|
diagnosticsSampleRate: number;
|
|
37
37
|
diagnosticsClient?: IDiagnosticsClient | undefined;
|
|
38
38
|
remoteConfig?: RemoteConfigOptions | undefined;
|
|
39
|
-
readonly version = "2.
|
|
39
|
+
readonly version = "2.31.0";
|
|
40
40
|
protected _cookieStorage: Storage<UserSession>;
|
|
41
41
|
protected _deviceId?: string;
|
|
42
42
|
protected _lastEventId?: number;
|
package/lib/esm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EAEN,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,aAAa,EACb,aAAa,EAEb,aAAa,EAEb,cAAc,EAEd,WAAW,EACX,cAAc,EACd,aAAa,IAAI,cAAc,EAC/B,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAIpD,qBAAa,aAAc,SAAQ,MAAO,YAAW,cAAc;IAYxD,MAAM,EAAE,MAAM;IACd,UAAU,CAAC;IAEX,aAAa,EAAE,aAAa;IAO5B,eAAe,CAAC;IAChB,WAAW,CAAC;IAEZ,mBAAmB,EAAE,MAAM;IAC3B,eAAe,EAAE,MAAM;IACvB,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,mBAAmB;IACpC,iBAAiB,CAAC;IAClB,YAAY,CAAC;IAGb,cAAc,EAAE,OAAO;IACvB,QAAQ,EAAE,QAAQ;IAClB,WAAW,CAAC;IACZ,OAAO,EAAE,OAAO,GAAG,OAAO,eAAe;IAEzC,SAAS,CAAC;IACV,IAAI,CAAC;IACL,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,cAAc;IAE1B,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC;IAK1C,SAAS,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ;IACrC,QAAQ,EAAE,OAAO;IACjB,iBAAiB,EAAE,OAAO;IAI1B,sBAAsB,CAAC;IACvB,QAAQ,CAAC;IACT,iBAAiB,EAAE,OAAO;IAC1B,qBAAqB,EAAE,MAAM;IAC7B,iBAAiB,CAAC;IAClB,YAAY,CAAC;IA5DtB,SAAgB,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/config.js
CHANGED
|
@@ -289,7 +289,7 @@ export var useBrowserConfig = function (apiKey, options, amplitudeInstance) {
|
|
|
289
289
|
if (options.autocapture !== undefined) {
|
|
290
290
|
options.defaultTracking = options.autocapture;
|
|
291
291
|
}
|
|
292
|
-
browserConfig = new BrowserConfig(apiKey, options.appVersion, cookieStorage, cookieOptions, options.defaultTracking, options.autocapture, deviceId, options.flushIntervalMillis, options.flushMaxRetries, options.flushQueueSize, identityStorage, options.ingestionMetadata, options.instanceName, lastEventId, lastEventTime, options.loggerProvider, options.logLevel, options.minIdLength, options.offline, optOut, options.partnerId, options.plan, options.serverUrl, options.serverZone, sessionId, options.sessionTimeout, options.storageProvider, trackingOptions, options.transport, options.useBatch, options.fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, options.networkTrackingOptions, options.identify, options.enableDiagnostics,
|
|
292
|
+
browserConfig = new BrowserConfig(apiKey, options.appVersion, cookieStorage, cookieOptions, options.defaultTracking, options.autocapture, deviceId, options.flushIntervalMillis, options.flushMaxRetries, options.flushQueueSize, identityStorage, options.ingestionMetadata, options.instanceName, lastEventId, lastEventTime, options.loggerProvider, options.logLevel, options.minIdLength, options.offline, optOut, options.partnerId, options.plan, options.serverUrl, options.serverZone, sessionId, options.sessionTimeout, options.storageProvider, trackingOptions, options.transport, options.useBatch, options.fetchRemoteConfig, userId, pageCounter, debugLogsEnabled, options.networkTrackingOptions, options.identify, options.enableDiagnostics, amplitudeInstance._diagnosticsSampleRate, // Use _diagnosticsSampleRate set via _setDiagnosticsSampleRate() or defaults to 0
|
|
293
293
|
undefined, // diagnosticsClient - set after config creation
|
|
294
294
|
options.remoteConfig);
|
|
295
295
|
return [4 /*yield*/, browserConfig.storageProvider.isEnabled()];
|
package/lib/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n Logger,\n ILogger,\n LogLevel,\n Event,\n Storage,\n IngestionMetadata,\n ServerZoneType,\n OfflineDisabled,\n Plan,\n IdentityStorageType,\n TransportType,\n MemoryStorage,\n UUID,\n CookieStorage,\n getCookieName,\n FetchTransport,\n getQueryParams,\n UserSession,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n DefaultTrackingOptions,\n TrackingOptions,\n AutocaptureOptions,\n CookieOptions,\n RemoteConfigOptions,\n NetworkTrackingOptions,\n IIdentify,\n IDiagnosticsClient,\n} from '@amplitude/analytics-core';\n\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\nimport { AmplitudeBrowser } from './browser-client';\nimport { VERSION } from './version';\n\n// Exported for testing purposes only. Do not expose to public interface.\nexport class BrowserConfig extends Config implements IBrowserConfig {\n public readonly version = VERSION;\n protected _cookieStorage: Storage<UserSession>;\n protected _deviceId?: string;\n protected _lastEventId?: number;\n protected _lastEventTime?: number;\n protected _optOut = false;\n protected _sessionId?: number;\n protected _userId?: string;\n protected _pageCounter?: number;\n protected _debugLogsEnabled?: boolean;\n constructor(\n public apiKey: string,\n public appVersion?: string,\n cookieStorage: Storage<UserSession> = new MemoryStorage(),\n public cookieOptions: CookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n },\n public defaultTracking?: boolean | DefaultTrackingOptions,\n public autocapture?: boolean | AutocaptureOptions,\n deviceId?: string,\n public flushIntervalMillis: number = 1000,\n public flushMaxRetries: number = 5,\n public flushQueueSize: number = 30,\n public identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n public ingestionMetadata?: IngestionMetadata,\n public instanceName?: string,\n lastEventId?: number,\n lastEventTime?: number,\n public loggerProvider: ILogger = new Logger(),\n public logLevel: LogLevel = LogLevel.Warn,\n public minIdLength?: number,\n public offline: boolean | typeof OfflineDisabled = false,\n optOut = false,\n public partnerId?: string,\n public plan?: Plan,\n public serverUrl: string = '',\n public serverZone: ServerZoneType = DEFAULT_SERVER_ZONE,\n sessionId?: number,\n public sessionTimeout: number = 30 * 60 * 1000,\n public storageProvider: Storage<Event[]> = new LocalStorage({ loggerProvider }),\n public trackingOptions: Required<TrackingOptions> = {\n ipAddress: true,\n language: true,\n platform: true,\n },\n public transport: 'fetch' | 'xhr' | 'beacon' = 'fetch',\n public useBatch: boolean = false,\n public fetchRemoteConfig: boolean = true,\n userId?: string,\n pageCounter?: number,\n debugLogsEnabled?: boolean,\n public networkTrackingOptions?: NetworkTrackingOptions,\n public identify?: IIdentify,\n public enableDiagnostics: boolean = true,\n public diagnosticsSampleRate: number = 0,\n public diagnosticsClient?: IDiagnosticsClient,\n public remoteConfig?: RemoteConfigOptions,\n ) {\n super({ apiKey, storageProvider, transportProvider: createTransport(transport) });\n this._cookieStorage = cookieStorage;\n this.deviceId = deviceId;\n this.lastEventId = lastEventId;\n this.lastEventTime = lastEventTime;\n this.optOut = optOut;\n this.sessionId = sessionId;\n this.pageCounter = pageCounter;\n this.userId = userId;\n this.debugLogsEnabled = debugLogsEnabled;\n this.loggerProvider.enable(debugLogsEnabled ? LogLevel.Debug : this.logLevel);\n this.networkTrackingOptions = networkTrackingOptions;\n this.identify = identify;\n this.enableDiagnostics = enableDiagnostics;\n this.diagnosticsSampleRate = diagnosticsSampleRate;\n this.diagnosticsClient = diagnosticsClient;\n\n // Backward compatibility for fetchRemoteConfig\n if (fetchRemoteConfig) {\n if (!this.remoteConfig) {\n this.remoteConfig = {\n fetchRemoteConfig: fetchRemoteConfig,\n };\n }\n if (!this.remoteConfig.fetchRemoteConfig) {\n this.remoteConfig.fetchRemoteConfig = fetchRemoteConfig;\n }\n }\n }\n\n get cookieStorage() {\n return this._cookieStorage;\n }\n\n set cookieStorage(cookieStorage: Storage<UserSession>) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n }\n\n get deviceId() {\n return this._deviceId;\n }\n\n set deviceId(deviceId: string | undefined) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n }\n\n get userId() {\n return this._userId;\n }\n\n set userId(userId: string | undefined) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n }\n\n get sessionId() {\n return this._sessionId;\n }\n\n set sessionId(sessionId: number | undefined) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n this.updateStorage();\n }\n }\n\n get optOut() {\n return this._optOut;\n }\n\n set optOut(optOut: boolean) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n }\n\n get lastEventTime() {\n return this._lastEventTime;\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n }\n\n get lastEventId() {\n return this._lastEventId;\n }\n\n set lastEventId(lastEventId: number | undefined) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n }\n\n get pageCounter() {\n return this._pageCounter;\n }\n\n set pageCounter(pageCounter: number | undefined) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n }\n\n set debugLogsEnabled(debugLogsEnabled: boolean | undefined) {\n if (this._debugLogsEnabled !== debugLogsEnabled) {\n this._debugLogsEnabled = debugLogsEnabled;\n this.updateStorage();\n }\n }\n\n private updateStorage() {\n const cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n debugLogsEnabled: this._debugLogsEnabled,\n };\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n }\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n options: BrowserOptions = {},\n amplitudeInstance: AmplitudeBrowser,\n): Promise<IBrowserConfig> => {\n // Step 1: Create identity storage instance\n const identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n const cookieOptions = {\n domain:\n identityStorage !== DEFAULT_IDENTITY_STORAGE ? '' : options.cookieOptions?.domain ?? (await getTopLevelDomain()),\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n ...options.cookieOptions,\n };\n const cookieStorage = createCookieStorage<UserSession>(options.identityStorage, cookieOptions);\n\n // Step 1: Parse cookies using identity storage instance\n const legacyCookies = await parseLegacyCookies(apiKey, cookieStorage, options.cookieOptions?.upgrade ?? true);\n const previousCookies = await cookieStorage.get(getCookieName(apiKey));\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // Step 3: Reconcile user identity\n const deviceId =\n options.deviceId ??\n (isWithinTimeLimit ? queryParams.ampDeviceId ?? queryParams.deviceId : undefined) ??\n previousCookies?.deviceId ??\n legacyCookies.deviceId ??\n UUID();\n const lastEventId = previousCookies?.lastEventId ?? legacyCookies.lastEventId;\n const lastEventTime = previousCookies?.lastEventTime ?? legacyCookies.lastEventTime;\n const optOut = options.optOut ?? previousCookies?.optOut ?? legacyCookies.optOut;\n const sessionId = previousCookies?.sessionId ?? legacyCookies.sessionId;\n const userId = options.userId ?? previousCookies?.userId ?? legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = previousCookies?.deviceId ?? legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = previousCookies?.userId ?? legacyCookies.userId;\n\n const trackingOptions = {\n ipAddress: options.trackingOptions?.ipAddress ?? true,\n language: options.trackingOptions?.language ?? true,\n platform: options.trackingOptions?.platform ?? true,\n };\n const pageCounter = previousCookies?.pageCounter;\n const debugLogsEnabled = previousCookies?.debugLogsEnabled;\n\n // Override default tracking options if autocapture is set\n if (options.autocapture !== undefined) {\n options.defaultTracking = options.autocapture;\n }\n\n const browserConfig = new BrowserConfig(\n apiKey,\n options.appVersion,\n cookieStorage,\n cookieOptions,\n options.defaultTracking,\n options.autocapture,\n deviceId,\n options.flushIntervalMillis,\n options.flushMaxRetries,\n options.flushQueueSize,\n identityStorage,\n options.ingestionMetadata,\n options.instanceName,\n lastEventId,\n lastEventTime,\n options.loggerProvider,\n options.logLevel,\n options.minIdLength,\n options.offline,\n optOut,\n options.partnerId,\n options.plan,\n options.serverUrl,\n options.serverZone,\n sessionId,\n options.sessionTimeout,\n options.storageProvider,\n trackingOptions,\n options.transport,\n options.useBatch,\n options.fetchRemoteConfig,\n userId,\n pageCounter,\n debugLogsEnabled,\n options.networkTrackingOptions,\n options.identify,\n options.enableDiagnostics,\n undefined, // diagnosticsSampleRate - set in _setDiagnosticsSampleRate or defaults to 0\n undefined, // diagnosticsClient - set after config creation\n options.remoteConfig,\n );\n\n if (!(await browserConfig.storageProvider.isEnabled())) {\n browserConfig.loggerProvider.warn(\n `Storage provider ${browserConfig.storageProvider.constructor.name} is not enabled. Falling back to MemoryStorage.`,\n );\n browserConfig.storageProvider = new MemoryStorage();\n }\n\n return browserConfig;\n};\n\nexport const createCookieStorage = <T>(\n identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n cookieOptions: CookieOptions = {},\n) => {\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage<T>();\n case 'sessionStorage':\n return new SessionStorage<T>();\n case 'none':\n return new MemoryStorage<T>();\n case 'cookie':\n default:\n return new CookieStorage<T>({\n ...cookieOptions,\n expirationDays: cookieOptions.expiration,\n });\n }\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === 'xhr') {\n return new XHRTransport();\n }\n if (transport === 'beacon') {\n return new SendBeaconTransport();\n }\n return new FetchTransport();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (\n !(await new CookieStorage<number>().isEnabled()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))\n ) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,EACN,MAAM,EAEN,QAAQ,EASR,aAAa,EACb,IAAI,EACJ,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,GAYf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,yEAAyE;AACzE;IAAmC,iCAAM;IAWvC,uBACS,MAAc,EACd,UAAmB,EAC1B,aAAyD,EAClD,aAMN,EACM,eAAkD,EAClD,WAA0C,EACjD,QAAiB,EACV,mBAAkC,EAClC,eAA2B,EAC3B,cAA2B,EAC3B,eAA+D,EAC/D,iBAAqC,EACrC,YAAqB,EAC5B,WAAoB,EACpB,aAAsB,EACf,cAAsC,EACtC,QAAkC,EAClC,WAAoB,EACpB,OAAiD,EACxD,MAAc,EACP,SAAkB,EAClB,IAAW,EACX,SAAsB,EACtB,UAAgD,EACvD,SAAkB,EACX,cAAuC,EACvC,eAAwE,EACxE,eAIN,EACM,SAA+C,EAC/C,QAAyB,EACzB,iBAAiC,EACxC,MAAe,EACf,WAAoB,EACpB,gBAA0B,EACnB,sBAA+C,EAC/C,QAAoB,EACpB,iBAAiC,EACjC,qBAAiC,EACjC,iBAAsC,EACtC,YAAkC;QA/CzC,8BAAA,EAAA,oBAA0C,aAAa,EAAE;QAClD,8BAAA,EAAA;YACL,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,KAAc;YACxB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;SACd;QAIM,oCAAA,EAAA,0BAAkC;QAClC,gCAAA,EAAA,mBAA2B;QAC3B,+BAAA,EAAA,mBAA2B;QAC3B,gCAAA,EAAA,0CAA+D;QAK/D,+BAAA,EAAA,qBAA8B,MAAM,EAAE;QACtC,yBAAA,EAAA,WAAqB,QAAQ,CAAC,IAAI;QAElC,wBAAA,EAAA,eAAiD;QACxD,uBAAA,EAAA,cAAc;QAGP,0BAAA,EAAA,cAAsB;QACtB,2BAAA,EAAA,gCAAgD;QAEhD,+BAAA,EAAA,iBAAyB,EAAE,GAAG,EAAE,GAAG,IAAI;QACvC,gCAAA,EAAA,sBAAwC,YAAY,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC;QACxE,gCAAA,EAAA;YACL,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf;QACM,0BAAA,EAAA,mBAA+C;QAC/C,yBAAA,EAAA,gBAAyB;QACzB,kCAAA,EAAA,wBAAiC;QAMjC,kCAAA,EAAA,wBAAiC;QACjC,sCAAA,EAAA,yBAAiC;QAhD1C,YAoDE,kBAAM,EAAE,MAAM,QAAA,EAAE,eAAe,iBAAA,EAAE,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,SA4BlF;QA/EQ,YAAM,GAAN,MAAM,CAAQ;QACd,gBAAU,GAAV,UAAU,CAAS;QAEnB,mBAAa,GAAb,aAAa,CAMnB;QACM,qBAAe,GAAf,eAAe,CAAmC;QAClD,iBAAW,GAAX,WAAW,CAA+B;QAE1C,yBAAmB,GAAnB,mBAAmB,CAAe;QAClC,qBAAe,GAAf,eAAe,CAAY;QAC3B,oBAAc,GAAd,cAAc,CAAa;QAC3B,qBAAe,GAAf,eAAe,CAAgD;QAC/D,uBAAiB,GAAjB,iBAAiB,CAAoB;QACrC,kBAAY,GAAZ,YAAY,CAAS;QAGrB,oBAAc,GAAd,cAAc,CAAwB;QACtC,cAAQ,GAAR,QAAQ,CAA0B;QAClC,iBAAW,GAAX,WAAW,CAAS;QACpB,aAAO,GAAP,OAAO,CAA0C;QAEjD,eAAS,GAAT,SAAS,CAAS;QAClB,UAAI,GAAJ,IAAI,CAAO;QACX,eAAS,GAAT,SAAS,CAAa;QACtB,gBAAU,GAAV,UAAU,CAAsC;QAEhD,oBAAc,GAAd,cAAc,CAAyB;QACvC,qBAAe,GAAf,eAAe,CAAyD;QACxE,qBAAe,GAAf,eAAe,CAIrB;QACM,eAAS,GAAT,SAAS,CAAsC;QAC/C,cAAQ,GAAR,QAAQ,CAAiB;QACzB,uBAAiB,GAAjB,iBAAiB,CAAgB;QAIjC,4BAAsB,GAAtB,sBAAsB,CAAyB;QAC/C,cAAQ,GAAR,QAAQ,CAAY;QACpB,uBAAiB,GAAjB,iBAAiB,CAAgB;QACjC,2BAAqB,GAArB,qBAAqB,CAAY;QACjC,uBAAiB,GAAjB,iBAAiB,CAAqB;QACtC,kBAAY,GAAZ,YAAY,CAAsB;QA5D3B,aAAO,GAAG,OAAO,CAAC;QAKxB,aAAO,GAAG,KAAK,CAAC;QA0DxB,KAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,KAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,KAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,KAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,KAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,KAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAE3C,+CAA+C;QAC/C,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,KAAI,CAAC,YAAY,EAAE;gBACtB,KAAI,CAAC,YAAY,GAAG;oBAClB,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC;aACH;YACD,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBACxC,KAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;aACzD;SACF;;IACH,CAAC;IAED,sBAAI,wCAAa;aAAjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;aAED,UAAkB,aAAmC;YACnD,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,EAAE;gBACzC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,mCAAQ;aAAZ;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;aAED,UAAa,QAA4B;YACvC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;gBAC/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,iCAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;aAED,UAAW,MAA0B;YACnC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,oCAAS;aAAb;YACE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;aAED,UAAc,SAA6B;YACzC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,iCAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;aAED,UAAW,MAAe;YACxB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,wCAAa;aAAjB;YACE,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;aAED,UAAkB,aAAiC;YACjD,IAAI,IAAI,CAAC,cAAc,KAAK,aAAa,EAAE;gBACzC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,sCAAW;aAAf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aAED,UAAgB,WAA+B;YAC7C,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;gBACrC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,sCAAW;aAAf;YACE,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;aAED,UAAgB,WAA+B;YAC7C,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,EAAE;gBACrC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;gBAChC,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAPA;IASD,sBAAI,2CAAgB;aAApB,UAAqB,gBAAqC;YACxD,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,EAAE;gBAC/C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;gBAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC;;;OAAA;IAEO,qCAAa,GAArB;QACE,IAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,gBAAgB,EAAE,IAAI,CAAC,iBAAiB;SACzC,CAAC;QACF,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IACH,oBAAC;AAAD,CAAC,AAzMD,CAAmC,MAAM,GAyMxC;;AAED,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAC9B,MAAc,EACd,OAA4B,EAC5B,iBAAmC;IADnC,wBAAA,EAAA,YAA4B;;;;;;;;oBAItB,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC;;yBAGxE,CAAA,eAAe,KAAK,wBAAwB,CAAA,EAA5C,wBAA4C;oBAAG,KAAA,EAAE,CAAA;;;gCAAG,MAAA,OAAO,CAAC,aAAa,0CAAE,MAAM;;;wBAAK,qBAAM,iBAAiB,EAAE,EAAA;;oBAA1B,KAAA,CAAC,SAAyB,CAAC,CAAA;;;oBAA5D,QAA4D;;;oBAF9G,aAAa,4BACjB,SAAM,OAEN,aAAU,GAAE,GAAG,EACf,WAAQ,GAAE,KAAc,EACxB,SAAM,GAAE,KAAK,EACb,UAAO,GAAE,IAAI,OACV,OAAO,CAAC,aAAa,EACzB;oBACK,aAAa,GAAG,mBAAmB,CAAc,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;oBAGzE,qBAAM,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAA,MAAA,OAAO,CAAC,aAAa,0CAAE,OAAO,mCAAI,IAAI,CAAC,EAAA;;oBAAvG,aAAa,GAAG,SAAuF;oBACrF,qBAAM,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAA;;oBAAhE,eAAe,GAAG,SAA8C;oBAChE,WAAW,GAAG,cAAc,EAAE,CAAC;oBAG/B,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACvF,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;oBAGpE,QAAQ,GACZ,MAAA,MAAA,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAChB,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAA,WAAW,CAAC,WAAW,mCAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,mCACjF,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCACzB,aAAa,CAAC,QAAQ,mCACtB,IAAI,EAAE,CAAC;oBACH,WAAW,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,mCAAI,aAAa,CAAC,WAAW,CAAC;oBACxE,aAAa,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,aAAa,mCAAI,aAAa,CAAC,aAAa,CAAC;oBAC9E,MAAM,GAAG,MAAA,MAAA,OAAO,CAAC,MAAM,mCAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,aAAa,CAAC,MAAM,CAAC;oBAC3E,SAAS,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,mCAAI,aAAa,CAAC,SAAS,CAAC;oBAClE,MAAM,GAAG,MAAA,MAAA,OAAO,CAAC,MAAM,mCAAI,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,aAAa,CAAC,MAAM,CAAC;oBACjF,iBAAiB,CAAC,uBAAuB,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,mCAAI,aAAa,CAAC,QAAQ,CAAC;oBAChG,iBAAiB,CAAC,qBAAqB,GAAG,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,mCAAI,aAAa,CAAC,MAAM,CAAC;oBAEpF,eAAe,GAAG;wBACtB,SAAS,EAAE,MAAA,MAAA,OAAO,CAAC,eAAe,0CAAE,SAAS,mCAAI,IAAI;wBACrD,QAAQ,EAAE,MAAA,MAAA,OAAO,CAAC,eAAe,0CAAE,QAAQ,mCAAI,IAAI;wBACnD,QAAQ,EAAE,MAAA,MAAA,OAAO,CAAC,eAAe,0CAAE,QAAQ,mCAAI,IAAI;qBACpD,CAAC;oBACI,WAAW,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,WAAW,CAAC;oBAC3C,gBAAgB,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,gBAAgB,CAAC;oBAE3D,0DAA0D;oBAC1D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;wBACrC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;qBAC/C;oBAEK,aAAa,GAAG,IAAI,aAAa,CACrC,MAAM,EACN,OAAO,CAAC,UAAU,EAClB,aAAa,EACb,aAAa,EACb,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,WAAW,EACnB,QAAQ,EACR,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,cAAc,EACtB,eAAe,EACf,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,YAAY,EACpB,WAAW,EACX,aAAa,EACb,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,OAAO,EACf,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,EAClB,SAAS,EACT,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,eAAe,EACvB,eAAe,EACf,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,iBAAiB,EACzB,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,OAAO,CAAC,sBAAsB,EAC9B,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,iBAAiB,EACzB,iBAAiB,CAAC,sBAAsB,EAAE,kFAAkF;oBAC5H,SAAS,EAAE,gDAAgD;oBAC3D,OAAO,CAAC,YAAY,CACrB,CAAC;oBAEI,qBAAM,aAAa,CAAC,eAAe,CAAC,SAAS,EAAE,EAAA;;oBAArD,IAAI,CAAC,CAAC,SAA+C,CAAC,EAAE;wBACtD,aAAa,CAAC,cAAc,CAAC,IAAI,CAC/B,2BAAoB,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,oDAAiD,CACpH,CAAC;wBACF,aAAa,CAAC,eAAe,GAAG,IAAI,aAAa,EAAE,CAAC;qBACrD;oBAED,sBAAO,aAAa,EAAC;;;;CACtB,CAAC;AAEF,MAAM,CAAC,IAAM,mBAAmB,GAAG,UACjC,eAA+D,EAC/D,aAAiC;IADjC,gCAAA,EAAA,0CAA+D;IAC/D,8BAAA,EAAA,kBAAiC;IAEjC,QAAQ,eAAe,EAAE;QACvB,KAAK,cAAc;YACjB,OAAO,IAAI,YAAY,EAAK,CAAC;QAC/B,KAAK,gBAAgB;YACnB,OAAO,IAAI,cAAc,EAAK,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,IAAI,aAAa,EAAK,CAAC;QAChC,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,IAAI,aAAa,uBACnB,aAAa,KAChB,cAAc,EAAE,aAAa,CAAC,UAAU,IACxC,CAAC;KACN;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,SAAyB;IACvD,IAAI,SAAS,KAAK,KAAK,EAAE;QACvB,OAAO,IAAI,YAAY,EAAE,CAAC;KAC3B;IACD,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,OAAO,IAAI,mBAAmB,EAAE,CAAC;KAClC;IACD,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAO,GAAY;;;;oBAE9C,qBAAM,IAAI,aAAa,EAAU,CAAC,SAAS,EAAE,EAAA;;gBADjD,IACE,CAAC,CAAC,SAA6C,CAAC;oBAChD,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACjE;oBACA,sBAAO,EAAE,EAAC;iBACX;gBAEK,IAAI,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,QAAQ,CAAC,QAAQ,CAAC;gBAChC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,MAAM,GAAG,EAAE,CAAC;gBACZ,UAAU,GAAG,aAAa,CAAC;gBAEjC,KAAS,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;oBAC1C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACvC;gBACQ,CAAC,GAAG,CAAC;;;qBAAE,CAAA,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;gBACzB,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnB,OAAO,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;gBACnC,OAAO,GAAG,IAAI,aAAa,CAAS,OAAO,CAAC,CAAC;gBACnD,qBAAM,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAA;;gBAAhC,SAAgC,CAAC;gBACnB,qBAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAA;;gBAArC,KAAK,GAAG,SAA6B;qBACvC,KAAK,EAAL,wBAAK;gBACP,qBAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAA;;gBAAhC,SAAgC,CAAC;gBACjC,sBAAO,GAAG,GAAG,MAAM,EAAC;;gBARW,CAAC,EAAE,CAAA;;oBAYtC,sBAAO,EAAE,EAAC;;;KACX,CAAC","sourcesContent":["import {\n Config,\n Logger,\n ILogger,\n LogLevel,\n Event,\n Storage,\n IngestionMetadata,\n ServerZoneType,\n OfflineDisabled,\n Plan,\n IdentityStorageType,\n TransportType,\n MemoryStorage,\n UUID,\n CookieStorage,\n getCookieName,\n FetchTransport,\n getQueryParams,\n UserSession,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n DefaultTrackingOptions,\n TrackingOptions,\n AutocaptureOptions,\n CookieOptions,\n RemoteConfigOptions,\n NetworkTrackingOptions,\n IIdentify,\n IDiagnosticsClient,\n} from '@amplitude/analytics-core';\n\nimport { LocalStorage } from './storage/local-storage';\nimport { SessionStorage } from './storage/session-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { DEFAULT_IDENTITY_STORAGE, DEFAULT_SERVER_ZONE } from './constants';\nimport { AmplitudeBrowser } from './browser-client';\nimport { VERSION } from './version';\n\n// Exported for testing purposes only. Do not expose to public interface.\nexport class BrowserConfig extends Config implements IBrowserConfig {\n public readonly version = VERSION;\n protected _cookieStorage: Storage<UserSession>;\n protected _deviceId?: string;\n protected _lastEventId?: number;\n protected _lastEventTime?: number;\n protected _optOut = false;\n protected _sessionId?: number;\n protected _userId?: string;\n protected _pageCounter?: number;\n protected _debugLogsEnabled?: boolean;\n constructor(\n public apiKey: string,\n public appVersion?: string,\n cookieStorage: Storage<UserSession> = new MemoryStorage(),\n public cookieOptions: CookieOptions = {\n domain: '',\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n },\n public defaultTracking?: boolean | DefaultTrackingOptions,\n public autocapture?: boolean | AutocaptureOptions,\n deviceId?: string,\n public flushIntervalMillis: number = 1000,\n public flushMaxRetries: number = 5,\n public flushQueueSize: number = 30,\n public identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n public ingestionMetadata?: IngestionMetadata,\n public instanceName?: string,\n lastEventId?: number,\n lastEventTime?: number,\n public loggerProvider: ILogger = new Logger(),\n public logLevel: LogLevel = LogLevel.Warn,\n public minIdLength?: number,\n public offline: boolean | typeof OfflineDisabled = false,\n optOut = false,\n public partnerId?: string,\n public plan?: Plan,\n public serverUrl: string = '',\n public serverZone: ServerZoneType = DEFAULT_SERVER_ZONE,\n sessionId?: number,\n public sessionTimeout: number = 30 * 60 * 1000,\n public storageProvider: Storage<Event[]> = new LocalStorage({ loggerProvider }),\n public trackingOptions: Required<TrackingOptions> = {\n ipAddress: true,\n language: true,\n platform: true,\n },\n public transport: 'fetch' | 'xhr' | 'beacon' = 'fetch',\n public useBatch: boolean = false,\n public fetchRemoteConfig: boolean = true,\n userId?: string,\n pageCounter?: number,\n debugLogsEnabled?: boolean,\n public networkTrackingOptions?: NetworkTrackingOptions,\n public identify?: IIdentify,\n public enableDiagnostics: boolean = true,\n public diagnosticsSampleRate: number = 0,\n public diagnosticsClient?: IDiagnosticsClient,\n public remoteConfig?: RemoteConfigOptions,\n ) {\n super({ apiKey, storageProvider, transportProvider: createTransport(transport) });\n this._cookieStorage = cookieStorage;\n this.deviceId = deviceId;\n this.lastEventId = lastEventId;\n this.lastEventTime = lastEventTime;\n this.optOut = optOut;\n this.sessionId = sessionId;\n this.pageCounter = pageCounter;\n this.userId = userId;\n this.debugLogsEnabled = debugLogsEnabled;\n this.loggerProvider.enable(debugLogsEnabled ? LogLevel.Debug : this.logLevel);\n this.networkTrackingOptions = networkTrackingOptions;\n this.identify = identify;\n this.enableDiagnostics = enableDiagnostics;\n this.diagnosticsSampleRate = diagnosticsSampleRate;\n this.diagnosticsClient = diagnosticsClient;\n\n // Backward compatibility for fetchRemoteConfig\n if (fetchRemoteConfig) {\n if (!this.remoteConfig) {\n this.remoteConfig = {\n fetchRemoteConfig: fetchRemoteConfig,\n };\n }\n if (!this.remoteConfig.fetchRemoteConfig) {\n this.remoteConfig.fetchRemoteConfig = fetchRemoteConfig;\n }\n }\n }\n\n get cookieStorage() {\n return this._cookieStorage;\n }\n\n set cookieStorage(cookieStorage: Storage<UserSession>) {\n if (this._cookieStorage !== cookieStorage) {\n this._cookieStorage = cookieStorage;\n this.updateStorage();\n }\n }\n\n get deviceId() {\n return this._deviceId;\n }\n\n set deviceId(deviceId: string | undefined) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n }\n\n get userId() {\n return this._userId;\n }\n\n set userId(userId: string | undefined) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n }\n\n get sessionId() {\n return this._sessionId;\n }\n\n set sessionId(sessionId: number | undefined) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n this.updateStorage();\n }\n }\n\n get optOut() {\n return this._optOut;\n }\n\n set optOut(optOut: boolean) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n }\n\n get lastEventTime() {\n return this._lastEventTime;\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n }\n\n get lastEventId() {\n return this._lastEventId;\n }\n\n set lastEventId(lastEventId: number | undefined) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n }\n\n get pageCounter() {\n return this._pageCounter;\n }\n\n set pageCounter(pageCounter: number | undefined) {\n if (this._pageCounter !== pageCounter) {\n this._pageCounter = pageCounter;\n this.updateStorage();\n }\n }\n\n set debugLogsEnabled(debugLogsEnabled: boolean | undefined) {\n if (this._debugLogsEnabled !== debugLogsEnabled) {\n this._debugLogsEnabled = debugLogsEnabled;\n this.updateStorage();\n }\n }\n\n private updateStorage() {\n const cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId,\n pageCounter: this._pageCounter,\n debugLogsEnabled: this._debugLogsEnabled,\n };\n void this.cookieStorage.set(getCookieName(this.apiKey), cache);\n }\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n options: BrowserOptions = {},\n amplitudeInstance: AmplitudeBrowser,\n): Promise<IBrowserConfig> => {\n // Step 1: Create identity storage instance\n const identityStorage = options.identityStorage || DEFAULT_IDENTITY_STORAGE;\n const cookieOptions = {\n domain:\n identityStorage !== DEFAULT_IDENTITY_STORAGE ? '' : options.cookieOptions?.domain ?? (await getTopLevelDomain()),\n expiration: 365,\n sameSite: 'Lax' as const,\n secure: false,\n upgrade: true,\n ...options.cookieOptions,\n };\n const cookieStorage = createCookieStorage<UserSession>(options.identityStorage, cookieOptions);\n\n // Step 1: Parse cookies using identity storage instance\n const legacyCookies = await parseLegacyCookies(apiKey, cookieStorage, options.cookieOptions?.upgrade ?? true);\n const previousCookies = await cookieStorage.get(getCookieName(apiKey));\n const queryParams = getQueryParams();\n\n // Check if ampTimestamp is present and valid\n const ampTimestamp = queryParams.ampTimestamp ? Number(queryParams.ampTimestamp) : undefined;\n const isWithinTimeLimit = ampTimestamp ? Date.now() < ampTimestamp : true;\n\n // Step 3: Reconcile user identity\n const deviceId =\n options.deviceId ??\n (isWithinTimeLimit ? queryParams.ampDeviceId ?? queryParams.deviceId : undefined) ??\n previousCookies?.deviceId ??\n legacyCookies.deviceId ??\n UUID();\n const lastEventId = previousCookies?.lastEventId ?? legacyCookies.lastEventId;\n const lastEventTime = previousCookies?.lastEventTime ?? legacyCookies.lastEventTime;\n const optOut = options.optOut ?? previousCookies?.optOut ?? legacyCookies.optOut;\n const sessionId = previousCookies?.sessionId ?? legacyCookies.sessionId;\n const userId = options.userId ?? previousCookies?.userId ?? legacyCookies.userId;\n amplitudeInstance.previousSessionDeviceId = previousCookies?.deviceId ?? legacyCookies.deviceId;\n amplitudeInstance.previousSessionUserId = previousCookies?.userId ?? legacyCookies.userId;\n\n const trackingOptions = {\n ipAddress: options.trackingOptions?.ipAddress ?? true,\n language: options.trackingOptions?.language ?? true,\n platform: options.trackingOptions?.platform ?? true,\n };\n const pageCounter = previousCookies?.pageCounter;\n const debugLogsEnabled = previousCookies?.debugLogsEnabled;\n\n // Override default tracking options if autocapture is set\n if (options.autocapture !== undefined) {\n options.defaultTracking = options.autocapture;\n }\n\n const browserConfig = new BrowserConfig(\n apiKey,\n options.appVersion,\n cookieStorage,\n cookieOptions,\n options.defaultTracking,\n options.autocapture,\n deviceId,\n options.flushIntervalMillis,\n options.flushMaxRetries,\n options.flushQueueSize,\n identityStorage,\n options.ingestionMetadata,\n options.instanceName,\n lastEventId,\n lastEventTime,\n options.loggerProvider,\n options.logLevel,\n options.minIdLength,\n options.offline,\n optOut,\n options.partnerId,\n options.plan,\n options.serverUrl,\n options.serverZone,\n sessionId,\n options.sessionTimeout,\n options.storageProvider,\n trackingOptions,\n options.transport,\n options.useBatch,\n options.fetchRemoteConfig,\n userId,\n pageCounter,\n debugLogsEnabled,\n options.networkTrackingOptions,\n options.identify,\n options.enableDiagnostics,\n amplitudeInstance._diagnosticsSampleRate, // Use _diagnosticsSampleRate set via _setDiagnosticsSampleRate() or defaults to 0\n undefined, // diagnosticsClient - set after config creation\n options.remoteConfig,\n );\n\n if (!(await browserConfig.storageProvider.isEnabled())) {\n browserConfig.loggerProvider.warn(\n `Storage provider ${browserConfig.storageProvider.constructor.name} is not enabled. Falling back to MemoryStorage.`,\n );\n browserConfig.storageProvider = new MemoryStorage();\n }\n\n return browserConfig;\n};\n\nexport const createCookieStorage = <T>(\n identityStorage: IdentityStorageType = DEFAULT_IDENTITY_STORAGE,\n cookieOptions: CookieOptions = {},\n) => {\n switch (identityStorage) {\n case 'localStorage':\n return new LocalStorage<T>();\n case 'sessionStorage':\n return new SessionStorage<T>();\n case 'none':\n return new MemoryStorage<T>();\n case 'cookie':\n default:\n return new CookieStorage<T>({\n ...cookieOptions,\n expirationDays: cookieOptions.expiration,\n });\n }\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === 'xhr') {\n return new XHRTransport();\n }\n if (transport === 'beacon') {\n return new SendBeaconTransport();\n }\n return new FetchTransport();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (\n !(await new CookieStorage<number>().isEnabled()) ||\n (!url && (typeof location === 'undefined' || !location.hostname))\n ) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"]}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { createInstance } from './browser-client-factory';
|
|
|
2
2
|
export declare const add: (plugin: import("@amplitude/analytics-core").Plugin<import("@amplitude/analytics-core").BrowserClient, import("@amplitude/analytics-core").BrowserConfig>) => import("@amplitude/analytics-core").AmplitudeReturn<void>, extendSession: () => void, flush: () => import("@amplitude/analytics-core").AmplitudeReturn<void>, getDeviceId: () => string | undefined, getIdentity: () => import("@amplitude/analytics-core").AnalyticsIdentity, getOptOut: () => boolean | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: import("@amplitude/analytics-core").IIdentify, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, identify: (identify: import("@amplitude/analytics-core").IIdentify, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, init: {
|
|
3
3
|
(apiKey: string, options?: import("@amplitude/analytics-core").BrowserOptions | undefined): import("@amplitude/analytics-core").AmplitudeReturn<void>;
|
|
4
4
|
(apiKey: string, userId?: string | undefined, options?: import("@amplitude/analytics-core").BrowserOptions | undefined): import("@amplitude/analytics-core").AmplitudeReturn<void>;
|
|
5
|
-
}, logEvent: (eventInput: string | import("@amplitude/analytics-core").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, remove: (pluginName: string) => import("@amplitude/analytics-core").AmplitudeReturn<void>, reset: () => void, revenue: (revenue: import("@amplitude/analytics-core").IRevenue, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setTransport: (transport: import("@amplitude/analytics-core").TransportType) => void, setUserId: (userId: string | undefined) => void, track: (eventInput: string | import("@amplitude/analytics-core").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, _setDiagnosticsSampleRate: (
|
|
5
|
+
}, logEvent: (eventInput: string | import("@amplitude/analytics-core").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, remove: (pluginName: string) => import("@amplitude/analytics-core").AmplitudeReturn<void>, reset: () => void, revenue: (revenue: import("@amplitude/analytics-core").IRevenue, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setTransport: (transport: import("@amplitude/analytics-core").TransportType) => void, setUserId: (userId: string | undefined) => void, track: (eventInput: string | import("@amplitude/analytics-core").BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: import("@amplitude/analytics-core").EventOptions | undefined) => import("@amplitude/analytics-core").AmplitudeReturn<import("@amplitude/analytics-core").Result>, _setDiagnosticsSampleRate: (sampleRate: number) => void;
|
|
6
6
|
export { AmplitudeBrowser } from './browser-client';
|
|
7
7
|
export { runQueuedFunctions } from './utils/snippet-helper';
|
|
8
8
|
export { Revenue, Identify } from '@amplitude/analytics-core';
|
package/lib/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,eAAO,MACL,GAAG,2NACH,aAAa,cACb,KAAK,mEACL,WAAW,4BACX,WAAW,+DACX,SAAS,6BACT,YAAY,4BACZ,SAAS,4BACT,aAAa,8RACb,QAAQ,6OACR,IAAI;;;GACJ,QAAQ,2SACR,MAAM,qFACN,KAAK,cACL,OAAO,2OACP,WAAW,8BACX,QAAQ,qOACR,SAAS,6BACT,YAAY,+BACZ,YAAY,0EACZ,SAAS,wCACT,KAAK,2SACL,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,eAAO,MACL,GAAG,2NACH,aAAa,cACb,KAAK,mEACL,WAAW,4BACX,WAAW,+DACX,SAAS,6BACT,YAAY,4BACZ,SAAS,4BACT,aAAa,8RACb,QAAQ,6OACR,IAAI;;;GACJ,QAAQ,2SACR,MAAM,qFACN,KAAK,cACL,OAAO,2OACP,WAAW,8BACX,QAAQ,qOACR,SAAS,6BACT,YAAY,+BACZ,YAAY,0EACZ,SAAS,wCACT,KAAK,2SACL,yBAAyB,8BACjB,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "2.
|
|
1
|
+
export declare const VERSION = "2.31.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/esm/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
|
package/lib/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var VERSION = '2.
|
|
1
|
+
export var VERSION = '2.31.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|