@amplitude/analytics-browser 2.35.4 → 2.36.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/attribution/helpers.d.ts +5 -1
- package/lib/cjs/attribution/helpers.d.ts.map +1 -1
- package/lib/cjs/attribution/helpers.js +199 -2
- package/lib/cjs/attribution/helpers.js.map +1 -1
- package/lib/cjs/attribution/web-attribution.d.ts +1 -0
- package/lib/cjs/attribution/web-attribution.d.ts.map +1 -1
- package/lib/cjs/attribution/web-attribution.js +3 -2
- package/lib/cjs/attribution/web-attribution.js.map +1 -1
- package/lib/cjs/browser-client-factory.d.ts.map +1 -1
- package/lib/cjs/browser-client-factory.js +1 -0
- package/lib/cjs/browser-client-factory.js.map +1 -1
- package/lib/cjs/browser-client.d.ts +7 -0
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +15 -0
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +9 -5
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +53 -47
- 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/index.js +2 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/transports/fetch.d.ts +7 -0
- package/lib/cjs/transports/fetch.d.ts.map +1 -0
- package/lib/cjs/transports/fetch.js +74 -0
- package/lib/cjs/transports/fetch.js.map +1 -0
- package/lib/cjs/transports/send-beacon.d.ts +6 -1
- package/lib/cjs/transports/send-beacon.d.ts.map +1 -1
- package/lib/cjs/transports/send-beacon.js +9 -3
- package/lib/cjs/transports/send-beacon.js.map +1 -1
- package/lib/cjs/transports/xhr.d.ts +1 -1
- package/lib/cjs/transports/xhr.d.ts.map +1 -1
- package/lib/cjs/transports/xhr.js +51 -16
- package/lib/cjs/transports/xhr.js.map +1 -1
- package/lib/cjs/types.d.ts +1 -1
- package/lib/cjs/types.d.ts.map +1 -1
- package/lib/cjs/types.js +2 -1
- package/lib/cjs/types.js.map +1 -1
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/attribution/helpers.d.ts +5 -1
- package/lib/esm/attribution/helpers.d.ts.map +1 -1
- package/lib/esm/attribution/helpers.js +197 -2
- package/lib/esm/attribution/helpers.js.map +1 -1
- package/lib/esm/attribution/web-attribution.d.ts +1 -0
- package/lib/esm/attribution/web-attribution.d.ts.map +1 -1
- package/lib/esm/attribution/web-attribution.js +3 -2
- package/lib/esm/attribution/web-attribution.js.map +1 -1
- package/lib/esm/browser-client-factory.d.ts.map +1 -1
- package/lib/esm/browser-client-factory.js +1 -0
- package/lib/esm/browser-client-factory.js.map +1 -1
- package/lib/esm/browser-client.d.ts +7 -0
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +15 -0
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +9 -5
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +53 -47
- 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/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/transports/fetch.d.ts +7 -0
- package/lib/esm/transports/fetch.d.ts.map +1 -0
- package/lib/esm/transports/fetch.js +71 -0
- package/lib/esm/transports/fetch.js.map +1 -0
- package/lib/esm/transports/send-beacon.d.ts +6 -1
- package/lib/esm/transports/send-beacon.d.ts.map +1 -1
- package/lib/esm/transports/send-beacon.js +9 -3
- package/lib/esm/transports/send-beacon.js.map +1 -1
- package/lib/esm/transports/xhr.d.ts +1 -1
- package/lib/esm/transports/xhr.d.ts.map +1 -1
- package/lib/esm/transports/xhr.js +52 -17
- package/lib/esm/transports/xhr.js.map +1 -1
- package/lib/esm/types.d.ts +1 -1
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/types.js.map +1 -1
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-bookmarklet-snippet-min.js +1 -1
- package/lib/scripts/amplitude-bookmarklet.html +1 -1
- package/lib/scripts/amplitude-gtm-min.js +1 -1
- package/lib/scripts/amplitude-gtm-min.js.gz +0 -0
- package/lib/scripts/amplitude-gtm-min.js.map +1 -1
- package/lib/scripts/amplitude-gtm-snippet-min.js +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.js.map +1 -1
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/lib/scripts/attribution/helpers.d.ts +5 -1
- package/lib/scripts/attribution/helpers.d.ts.map +1 -1
- package/lib/scripts/attribution/web-attribution.d.ts +1 -0
- package/lib/scripts/attribution/web-attribution.d.ts.map +1 -1
- package/lib/scripts/browser-client-factory.d.ts.map +1 -1
- package/lib/scripts/browser-client.d.ts +7 -0
- package/lib/scripts/browser-client.d.ts.map +1 -1
- package/lib/scripts/config.d.ts +9 -5
- 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/transports/fetch.d.ts +7 -0
- package/lib/scripts/transports/fetch.d.ts.map +1 -0
- package/lib/scripts/transports/send-beacon.d.ts +6 -1
- package/lib/scripts/transports/send-beacon.d.ts.map +1 -1
- package/lib/scripts/transports/xhr.d.ts +1 -1
- package/lib/scripts/transports/xhr.d.ts.map +1 -1
- package/lib/scripts/types.d.ts +1 -1
- package/lib/scripts/types.d.ts.map +1 -1
- package/lib/scripts/version.d.ts +1 -1
- package/package.json +7 -7
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __assign, __read, __rest } from "tslib";
|
|
2
|
-
import { createIdentifyEvent, Identify, BASE_CAMPAIGN } from '@amplitude/analytics-core';
|
|
2
|
+
import { createIdentifyEvent, Identify, BASE_CAMPAIGN, getGlobalScope, } from '@amplitude/analytics-core';
|
|
3
|
+
import { EXCLUDE_INTERNAL_REFERRERS_CONDITIONS } from '../types';
|
|
3
4
|
var domainWithoutSubdomain = function (domain) {
|
|
4
5
|
var parts = domain.split('.');
|
|
5
6
|
if (parts.length <= 2) {
|
|
@@ -11,10 +12,30 @@ var domainWithoutSubdomain = function (domain) {
|
|
|
11
12
|
var isDirectTraffic = function (current) {
|
|
12
13
|
return Object.values(current).every(function (value) { return !value; });
|
|
13
14
|
};
|
|
14
|
-
|
|
15
|
+
var isEmptyCampaign = function (campaign) {
|
|
16
|
+
var campaignWithoutReferrer = __assign(__assign({}, campaign), { referring_domain: undefined, referrer: undefined });
|
|
17
|
+
return Object.values(campaignWithoutReferrer).every(function (value) { return !value; });
|
|
18
|
+
};
|
|
19
|
+
export var isNewCampaign = function (current, previous, options, logger, isNewSession, topLevelDomain) {
|
|
15
20
|
if (isNewSession === void 0) { isNewSession = true; }
|
|
16
21
|
var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = __rest(current, ["referrer", "referring_domain"]);
|
|
17
22
|
var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = __rest(_a, ["referrer", "referring_domain"]);
|
|
23
|
+
var excludeInternalReferrers = options.excludeInternalReferrers;
|
|
24
|
+
if (excludeInternalReferrers) {
|
|
25
|
+
var condition = getExcludeInternalReferrersCondition(excludeInternalReferrers, logger);
|
|
26
|
+
if (!(condition instanceof TypeError) &&
|
|
27
|
+
current.referring_domain &&
|
|
28
|
+
isInternalReferrer(current.referring_domain, topLevelDomain)) {
|
|
29
|
+
if (condition === 'always') {
|
|
30
|
+
debugLogInternalReferrerExclude(condition, current.referring_domain, logger);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
else if (condition === 'ifEmptyCampaign' && isEmptyCampaign(current)) {
|
|
34
|
+
debugLogInternalReferrerExclude(condition, current.referring_domain, logger);
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
18
39
|
if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {
|
|
19
40
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
20
41
|
logger.debug("This is not a new campaign because ".concat(current.referring_domain, " is in the exclude referrer list."));
|
|
@@ -43,6 +64,13 @@ export var isExcludedReferrer = function (excludeReferrers, referringDomain) {
|
|
|
43
64
|
return value instanceof RegExp ? value.test(referringDomain) : value === referringDomain;
|
|
44
65
|
});
|
|
45
66
|
};
|
|
67
|
+
export var isSubdomainOf = function (subDomain, domain) {
|
|
68
|
+
var cookieDomainWithLeadingDot = domain.startsWith('.') ? domain : ".".concat(domain);
|
|
69
|
+
var subDomainWithLeadingDot = subDomain.startsWith('.') ? subDomain : ".".concat(subDomain);
|
|
70
|
+
if (subDomainWithLeadingDot.endsWith(cookieDomainWithLeadingDot))
|
|
71
|
+
return true;
|
|
72
|
+
return false;
|
|
73
|
+
};
|
|
46
74
|
export var createCampaignEvent = function (campaign, options) {
|
|
47
75
|
var campaignParameters = __assign(__assign({}, BASE_CAMPAIGN), campaign);
|
|
48
76
|
var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {
|
|
@@ -66,4 +94,171 @@ export var getDefaultExcludedReferrers = function (cookieDomain) {
|
|
|
66
94
|
}
|
|
67
95
|
return [];
|
|
68
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* Parses the excludeInternalReferrers configuration to determine the condition on which to
|
|
99
|
+
* exclude internal referrers for campaign attribution.
|
|
100
|
+
*
|
|
101
|
+
* If the config is invalid type, log and return a TypeError.
|
|
102
|
+
*
|
|
103
|
+
* (this does explicit type checking so don't have to rely on TS compiler to catch invalid types)
|
|
104
|
+
*
|
|
105
|
+
* @param excludeInternalReferrers - attribution.excludeInternalReferrers configuration
|
|
106
|
+
* @param logger - logger instance to log error when TypeError
|
|
107
|
+
* @returns The condition if the config is valid, TypeError if the config is invalid.
|
|
108
|
+
*/
|
|
109
|
+
var getExcludeInternalReferrersCondition = function (excludeInternalReferrers, logger) {
|
|
110
|
+
if (excludeInternalReferrers === true) {
|
|
111
|
+
return EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;
|
|
112
|
+
}
|
|
113
|
+
if (typeof excludeInternalReferrers === 'object') {
|
|
114
|
+
var condition = excludeInternalReferrers.condition;
|
|
115
|
+
if (typeof condition === 'string' && Object.keys(EXCLUDE_INTERNAL_REFERRERS_CONDITIONS).includes(condition)) {
|
|
116
|
+
return condition;
|
|
117
|
+
}
|
|
118
|
+
else if (typeof condition === 'undefined') {
|
|
119
|
+
return EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
var errorMessage = "Invalid configuration provided for attribution.excludeInternalReferrers: ".concat(JSON.stringify(excludeInternalReferrers));
|
|
123
|
+
logger.error(errorMessage);
|
|
124
|
+
return new TypeError(errorMessage);
|
|
125
|
+
};
|
|
126
|
+
// helper function to log debug message when internal referrer is excluded
|
|
127
|
+
// (added this to prevent code duplication and improve readability)
|
|
128
|
+
function debugLogInternalReferrerExclude(condition, referringDomain, logger) {
|
|
129
|
+
var baseMessage = "This is not a new campaign because referring_domain=".concat(referringDomain, " is on the same domain as the current page and it is configured to exclude internal referrers");
|
|
130
|
+
if (condition === 'always') {
|
|
131
|
+
logger.debug(baseMessage);
|
|
132
|
+
}
|
|
133
|
+
else if (condition === 'ifEmptyCampaign') {
|
|
134
|
+
logger.debug("".concat(baseMessage, " with empty campaign parameters"));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// list of domains that are known ccTLDs or domains that are commonly subtenanted
|
|
138
|
+
var KNOWN_2LDS = [
|
|
139
|
+
'ac.in',
|
|
140
|
+
'ac.jp',
|
|
141
|
+
'ac.th',
|
|
142
|
+
'ac.uk',
|
|
143
|
+
'ac.za',
|
|
144
|
+
'appspot.com',
|
|
145
|
+
'asn.au',
|
|
146
|
+
'azurewebsites.net',
|
|
147
|
+
'cloudfront.net',
|
|
148
|
+
'co.ca',
|
|
149
|
+
'co.in',
|
|
150
|
+
'co.jp',
|
|
151
|
+
'co.kr',
|
|
152
|
+
'co.nz',
|
|
153
|
+
'co.th',
|
|
154
|
+
'co.uk',
|
|
155
|
+
'co.za',
|
|
156
|
+
'com.ar',
|
|
157
|
+
'com.au',
|
|
158
|
+
'com.br',
|
|
159
|
+
'com.cn',
|
|
160
|
+
'com.hk',
|
|
161
|
+
'com.in',
|
|
162
|
+
'com.jp',
|
|
163
|
+
'com.kr',
|
|
164
|
+
'com.mx',
|
|
165
|
+
'com.pl',
|
|
166
|
+
'com.sg',
|
|
167
|
+
'com.tr',
|
|
168
|
+
'com.tw',
|
|
169
|
+
'ed.jp',
|
|
170
|
+
'edu.au',
|
|
171
|
+
'edu.hk',
|
|
172
|
+
'edu.sg',
|
|
173
|
+
'edu.th',
|
|
174
|
+
'edu.tr',
|
|
175
|
+
'edu.tw',
|
|
176
|
+
'firebaseapp.com',
|
|
177
|
+
'gc.ca',
|
|
178
|
+
'geek.nz',
|
|
179
|
+
'github.io',
|
|
180
|
+
'gitlab.io',
|
|
181
|
+
'go.kr',
|
|
182
|
+
'go.th',
|
|
183
|
+
'gob.ar',
|
|
184
|
+
'gov.au',
|
|
185
|
+
'gov.hk',
|
|
186
|
+
'gov.in',
|
|
187
|
+
'gov.pl',
|
|
188
|
+
'gov.sg',
|
|
189
|
+
'gov.tr',
|
|
190
|
+
'gov.uk',
|
|
191
|
+
'gov.za',
|
|
192
|
+
'govt.nz',
|
|
193
|
+
'gr.jp',
|
|
194
|
+
'herokuapp.com',
|
|
195
|
+
'id.au',
|
|
196
|
+
'idv.hk',
|
|
197
|
+
'iwi.nz',
|
|
198
|
+
'lg.jp',
|
|
199
|
+
'ltd.uk',
|
|
200
|
+
'maori.nz',
|
|
201
|
+
'me.uk',
|
|
202
|
+
'mil.kr',
|
|
203
|
+
'ne.jp',
|
|
204
|
+
'ne.kr',
|
|
205
|
+
'net.au',
|
|
206
|
+
'net.br',
|
|
207
|
+
'net.cn',
|
|
208
|
+
'net.hk',
|
|
209
|
+
'net.in',
|
|
210
|
+
'net.nz',
|
|
211
|
+
'net.pl',
|
|
212
|
+
'net.sg',
|
|
213
|
+
'net.tr',
|
|
214
|
+
'net.tw',
|
|
215
|
+
'net.za',
|
|
216
|
+
'or.jp',
|
|
217
|
+
'or.kr',
|
|
218
|
+
'or.th',
|
|
219
|
+
'org.ar',
|
|
220
|
+
'org.au',
|
|
221
|
+
'org.br',
|
|
222
|
+
'org.cn',
|
|
223
|
+
'org.hk',
|
|
224
|
+
'org.in',
|
|
225
|
+
'org.nz',
|
|
226
|
+
'org.pl',
|
|
227
|
+
'org.sg',
|
|
228
|
+
'org.tw',
|
|
229
|
+
'org.uk',
|
|
230
|
+
'org.za',
|
|
231
|
+
'pe.kr',
|
|
232
|
+
'plc.uk',
|
|
233
|
+
're.kr',
|
|
234
|
+
'res.in',
|
|
235
|
+
'sch.uk',
|
|
236
|
+
];
|
|
237
|
+
export var getDomain = function (hostnameParam) {
|
|
238
|
+
var _a, _b;
|
|
239
|
+
/* istanbul ignore next */
|
|
240
|
+
var hostname = hostnameParam || ((_b = (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.hostname);
|
|
241
|
+
if (!hostname) {
|
|
242
|
+
return '';
|
|
243
|
+
}
|
|
244
|
+
var parts = hostname.split('.');
|
|
245
|
+
var tld = parts[parts.length - 1];
|
|
246
|
+
var name = parts[parts.length - 2];
|
|
247
|
+
if (KNOWN_2LDS.find(function (tld) { return hostname.endsWith(".".concat(tld)); })) {
|
|
248
|
+
tld = parts[parts.length - 2] + '.' + parts[parts.length - 1];
|
|
249
|
+
name = parts[parts.length - 3];
|
|
250
|
+
}
|
|
251
|
+
if (!name)
|
|
252
|
+
return tld;
|
|
253
|
+
return "".concat(name, ".").concat(tld);
|
|
254
|
+
};
|
|
255
|
+
var isInternalReferrer = function (referringDomain, topLevelDomain) {
|
|
256
|
+
var globalScope = getGlobalScope();
|
|
257
|
+
/* istanbul ignore if */
|
|
258
|
+
if (!globalScope)
|
|
259
|
+
return false;
|
|
260
|
+
// if referring domain is subdomain of config.cookieDomain, return true
|
|
261
|
+
var internalDomain = (topLevelDomain || '').trim() || getDomain(globalScope.location.hostname);
|
|
262
|
+
return isSubdomainOf(referringDomain, internalDomain);
|
|
263
|
+
};
|
|
69
264
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { createIdentifyEvent, Identify, ILogger, Campaign, BASE_CAMPAIGN } from '@amplitude/analytics-core';\n\nexport interface Options {\n excludeReferrers?: (string | RegExp)[];\n initialEmptyValue?: string;\n resetSessionOnNewCampaign?: boolean;\n optOut?: boolean;\n}\n\nconst domainWithoutSubdomain = (domain: string) => {\n const parts = domain.split('.');\n\n if (parts.length <= 2) {\n return domain;\n }\n\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nconst isDirectTraffic = (current: Campaign) => {\n return Object.values(current).every((value) => !value);\n};\n\nexport const isNewCampaign = (\n current: Campaign,\n previous: Campaign | undefined,\n options: Options,\n logger: ILogger,\n isNewSession = true,\n) => {\n const { referrer, referring_domain, ...currentCampaign } = current;\n const { referrer: _previous_referrer, referring_domain: prevReferringDomain, ...previousCampaign } = previous || {};\n\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n logger.debug(`This is not a new campaign because ${current.referring_domain} is in the exclude referrer list.`);\n return false;\n }\n\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n logger.debug('This is not a new campaign because this is a direct traffic in the same session.');\n return false;\n }\n\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n const hasNewDomain =\n domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n\n const result = !previous || hasNewCampaign || hasNewDomain;\n\n if (!result) {\n logger.debug(\"This is not a new campaign because it's the same as the previous one.\");\n } else {\n logger.debug(`This is a new campaign. An $identify event will be sent.`);\n }\n\n return result;\n};\n\nexport const isExcludedReferrer = (excludeReferrers: (string | RegExp)[] = [], referringDomain = '') => {\n return excludeReferrers.some((value) =>\n value instanceof RegExp ? value.test(referringDomain) : value === referringDomain,\n );\n};\n\nexport const createCampaignEvent = (campaign: Campaign, options: Options) => {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value ?? options.initialEmptyValue ?? 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n return createIdentifyEvent(identifyEvent);\n};\n\nexport const getDefaultExcludedReferrers = (cookieDomain: string | undefined) => {\n let domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(`${domain.replace('.', '\\\\.')}$`)];\n }\n return [];\n};\n"]}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createIdentifyEvent,\n Identify,\n ILogger,\n Campaign,\n BASE_CAMPAIGN,\n getGlobalScope,\n} from '@amplitude/analytics-core';\n\nimport { ExcludeInternalReferrersOptions, EXCLUDE_INTERNAL_REFERRERS_CONDITIONS } from '../types';\n\nexport interface Options {\n excludeReferrers?: (string | RegExp)[];\n excludeInternalReferrers?: true | false | ExcludeInternalReferrersOptions;\n initialEmptyValue?: string;\n resetSessionOnNewCampaign?: boolean;\n optOut?: boolean;\n}\n\nconst domainWithoutSubdomain = (domain: string) => {\n const parts = domain.split('.');\n\n if (parts.length <= 2) {\n return domain;\n }\n\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\n\n//Direct traffic mean no external referral, no UTMs, no click-ids, and no other customer identified marketing campaign url params.\nconst isDirectTraffic = (current: Campaign) => {\n return Object.values(current).every((value) => !value);\n};\n\nconst isEmptyCampaign = (campaign: Campaign) => {\n const campaignWithoutReferrer = { ...campaign, referring_domain: undefined, referrer: undefined };\n return Object.values(campaignWithoutReferrer).every((value) => !value);\n};\n\nexport const isNewCampaign = (\n current: Campaign,\n previous: Campaign | undefined,\n options: Options,\n logger: ILogger,\n isNewSession = true,\n topLevelDomain?: string,\n) => {\n const { referrer, referring_domain, ...currentCampaign } = current;\n const { referrer: _previous_referrer, referring_domain: prevReferringDomain, ...previousCampaign } = previous || {};\n\n const { excludeInternalReferrers } = options;\n\n if (excludeInternalReferrers) {\n const condition = getExcludeInternalReferrersCondition(excludeInternalReferrers, logger);\n if (\n !(condition instanceof TypeError) &&\n current.referring_domain &&\n isInternalReferrer(current.referring_domain, topLevelDomain)\n ) {\n if (condition === 'always') {\n debugLogInternalReferrerExclude(condition, current.referring_domain, logger);\n return false;\n } else if (condition === 'ifEmptyCampaign' && isEmptyCampaign(current)) {\n debugLogInternalReferrerExclude(condition, current.referring_domain, logger);\n return false;\n }\n }\n }\n\n if (isExcludedReferrer(options.excludeReferrers, current.referring_domain)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n logger.debug(`This is not a new campaign because ${current.referring_domain} is in the exclude referrer list.`);\n return false;\n }\n\n //In the same session, direct traffic should not override or unset any persisting query params\n if (!isNewSession && isDirectTraffic(current) && previous) {\n logger.debug('This is not a new campaign because this is a direct traffic in the same session.');\n return false;\n }\n\n const hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n const hasNewDomain =\n domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n\n const result = !previous || hasNewCampaign || hasNewDomain;\n\n if (!result) {\n logger.debug(\"This is not a new campaign because it's the same as the previous one.\");\n } else {\n logger.debug(`This is a new campaign. An $identify event will be sent.`);\n }\n\n return result;\n};\n\nexport const isExcludedReferrer = (excludeReferrers: (string | RegExp)[] = [], referringDomain = '') => {\n return excludeReferrers.some((value) =>\n value instanceof RegExp ? value.test(referringDomain) : value === referringDomain,\n );\n};\n\nexport const isSubdomainOf = (subDomain: string, domain: string) => {\n const cookieDomainWithLeadingDot = domain.startsWith('.') ? domain : `.${domain}`;\n const subDomainWithLeadingDot = subDomain.startsWith('.') ? subDomain : `.${subDomain}`;\n if (subDomainWithLeadingDot.endsWith(cookieDomainWithLeadingDot)) return true;\n return false;\n};\n\nexport const createCampaignEvent = (campaign: Campaign, options: Options) => {\n const campaignParameters: Campaign = {\n // This object definition allows undefined keys to be iterated on\n // in .reduce() to build indentify object\n ...BASE_CAMPAIGN,\n ...campaign,\n };\n const identifyEvent = Object.entries(campaignParameters).reduce((identify, [key, value]) => {\n identify.setOnce(`initial_${key}`, value ?? options.initialEmptyValue ?? 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n\n return createIdentifyEvent(identifyEvent);\n};\n\nexport const getDefaultExcludedReferrers = (cookieDomain: string | undefined) => {\n let domain = cookieDomain;\n if (domain) {\n if (domain.startsWith('.')) {\n domain = domain.substring(1);\n }\n return [new RegExp(`${domain.replace('.', '\\\\.')}$`)];\n }\n return [];\n};\n\n/**\n * Parses the excludeInternalReferrers configuration to determine the condition on which to\n * exclude internal referrers for campaign attribution.\n *\n * If the config is invalid type, log and return a TypeError.\n *\n * (this does explicit type checking so don't have to rely on TS compiler to catch invalid types)\n *\n * @param excludeInternalReferrers - attribution.excludeInternalReferrers configuration\n * @param logger - logger instance to log error when TypeError\n * @returns The condition if the config is valid, TypeError if the config is invalid.\n */\nconst getExcludeInternalReferrersCondition = (\n excludeInternalReferrers: ExcludeInternalReferrersOptions | boolean,\n logger: ILogger,\n): ExcludeInternalReferrersOptions['condition'] | TypeError => {\n if (excludeInternalReferrers === true) {\n return EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;\n }\n if (typeof excludeInternalReferrers === 'object') {\n const { condition } = excludeInternalReferrers;\n if (typeof condition === 'string' && Object.keys(EXCLUDE_INTERNAL_REFERRERS_CONDITIONS).includes(condition)) {\n return condition;\n } else if (typeof condition === 'undefined') {\n return EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;\n }\n }\n const errorMessage = `Invalid configuration provided for attribution.excludeInternalReferrers: ${JSON.stringify(\n excludeInternalReferrers,\n )}`;\n logger.error(errorMessage);\n return new TypeError(errorMessage);\n};\n\n// helper function to log debug message when internal referrer is excluded\n// (added this to prevent code duplication and improve readability)\nfunction debugLogInternalReferrerExclude(\n condition: ExcludeInternalReferrersOptions['condition'],\n referringDomain: string,\n logger: ILogger,\n) {\n const baseMessage = `This is not a new campaign because referring_domain=${referringDomain} is on the same domain as the current page and it is configured to exclude internal referrers`;\n if (condition === 'always') {\n logger.debug(baseMessage);\n } else if (condition === 'ifEmptyCampaign') {\n logger.debug(`${baseMessage} with empty campaign parameters`);\n }\n}\n\n// list of domains that are known ccTLDs or domains that are commonly subtenanted\nconst KNOWN_2LDS = [\n 'ac.in',\n 'ac.jp',\n 'ac.th',\n 'ac.uk',\n 'ac.za',\n 'appspot.com',\n 'asn.au',\n 'azurewebsites.net',\n 'cloudfront.net',\n 'co.ca',\n 'co.in',\n 'co.jp',\n 'co.kr',\n 'co.nz',\n 'co.th',\n 'co.uk',\n 'co.za',\n 'com.ar',\n 'com.au',\n 'com.br',\n 'com.cn',\n 'com.hk',\n 'com.in',\n 'com.jp',\n 'com.kr',\n 'com.mx',\n 'com.pl',\n 'com.sg',\n 'com.tr',\n 'com.tw',\n 'ed.jp',\n 'edu.au',\n 'edu.hk',\n 'edu.sg',\n 'edu.th',\n 'edu.tr',\n 'edu.tw',\n 'firebaseapp.com',\n 'gc.ca',\n 'geek.nz',\n 'github.io',\n 'gitlab.io',\n 'go.kr',\n 'go.th',\n 'gob.ar',\n 'gov.au',\n 'gov.hk',\n 'gov.in',\n 'gov.pl',\n 'gov.sg',\n 'gov.tr',\n 'gov.uk',\n 'gov.za',\n 'govt.nz',\n 'gr.jp',\n 'herokuapp.com',\n 'id.au',\n 'idv.hk',\n 'iwi.nz',\n 'lg.jp',\n 'ltd.uk',\n 'maori.nz',\n 'me.uk',\n 'mil.kr',\n 'ne.jp',\n 'ne.kr',\n 'net.au',\n 'net.br',\n 'net.cn',\n 'net.hk',\n 'net.in',\n 'net.nz',\n 'net.pl',\n 'net.sg',\n 'net.tr',\n 'net.tw',\n 'net.za',\n 'or.jp',\n 'or.kr',\n 'or.th',\n 'org.ar',\n 'org.au',\n 'org.br',\n 'org.cn',\n 'org.hk',\n 'org.in',\n 'org.nz',\n 'org.pl',\n 'org.sg',\n 'org.tw',\n 'org.uk',\n 'org.za',\n 'pe.kr',\n 'plc.uk',\n 're.kr',\n 'res.in',\n 'sch.uk',\n];\n\nexport const getDomain = (hostnameParam?: string) => {\n /* istanbul ignore next */\n const hostname = hostnameParam || getGlobalScope()?.location?.hostname;\n if (!hostname) {\n return '';\n }\n const parts = hostname.split('.');\n let tld = parts[parts.length - 1];\n let name = parts[parts.length - 2];\n if (KNOWN_2LDS.find((tld) => hostname.endsWith(`.${tld}`))) {\n tld = parts[parts.length - 2] + '.' + parts[parts.length - 1];\n name = parts[parts.length - 3];\n }\n\n if (!name) return tld;\n\n return `${name}.${tld}`;\n};\n\nconst isInternalReferrer = (referringDomain: string, topLevelDomain?: string) => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope) return false;\n // if referring domain is subdomain of config.cookieDomain, return true\n const internalDomain = (topLevelDomain || '').trim() || getDomain(globalScope.location.hostname);\n return isSubdomainOf(referringDomain, internalDomain);\n};\n"]}
|
|
@@ -11,6 +11,7 @@ export declare class WebAttribution {
|
|
|
11
11
|
sessionTimeout: number;
|
|
12
12
|
lastEventTime?: number;
|
|
13
13
|
logger: ILogger;
|
|
14
|
+
topLevelDomain?: string;
|
|
14
15
|
constructor(options: Options, config: BrowserConfig);
|
|
15
16
|
init(): Promise<void>;
|
|
16
17
|
fetchCampaign(): Promise<[Campaign, Campaign | undefined]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-attribution.d.ts","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,OAAO,EACP,OAAO,EAGP,QAAQ,EAGT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAmE,MAAM,WAAW,CAAC;AAErG,qBAAa,cAAc;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,eAAe,EAAE,QAAQ,CAAC;IAC1B,sBAAsB,UAAS;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"web-attribution.d.ts","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,OAAO,EACP,OAAO,EAGP,QAAQ,EAGT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,OAAO,EAAmE,MAAM,WAAW,CAAC;AAErG,qBAAa,cAAc;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,QAAQ,CAAC;IAC5B,eAAe,EAAE,QAAQ,CAAC;IAC1B,sBAAsB,UAAS;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;gBACZ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa;IAmB7C,IAAI;IAwBJ,aAAa;IAQnB;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM;IAUvC,+BAA+B;CAGhC"}
|
|
@@ -5,7 +5,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
5
5
|
function WebAttribution(options, config) {
|
|
6
6
|
var _a;
|
|
7
7
|
this.shouldTrackNewCampaign = false;
|
|
8
|
-
this.options = __assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: getDefaultExcludedReferrers((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain), optOut: config.optOut }, options);
|
|
8
|
+
this.options = __assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: getDefaultExcludedReferrers(((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) || config.topLevelDomain), optOut: config.optOut }, options);
|
|
9
9
|
this.storage = config.cookieStorage;
|
|
10
10
|
this.storageKey = getStorageKey(config.apiKey, 'MKTG');
|
|
11
11
|
this.webExpStorageKey = getStorageKey(config.apiKey, 'MKTG_ORIGINAL');
|
|
@@ -13,6 +13,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
13
13
|
this.sessionTimeout = config.sessionTimeout;
|
|
14
14
|
this.lastEventTime = config.lastEventTime;
|
|
15
15
|
this.logger = config.loggerProvider;
|
|
16
|
+
this.topLevelDomain = config.topLevelDomain;
|
|
16
17
|
config.loggerProvider.log('Installing web attribution tracking.');
|
|
17
18
|
}
|
|
18
19
|
WebAttribution.prototype.init = function () {
|
|
@@ -30,7 +31,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
30
31
|
case 1:
|
|
31
32
|
_a = __read.apply(void 0, [_b.sent(), 2]), this.currentCampaign = _a[0], this.previousCampaign = _a[1];
|
|
32
33
|
isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);
|
|
33
|
-
if (!isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) return [3 /*break*/, 3];
|
|
34
|
+
if (!isNewCampaign(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession, this.topLevelDomain)) return [3 /*break*/, 3];
|
|
34
35
|
this.shouldTrackNewCampaign = true;
|
|
35
36
|
return [4 /*yield*/, this.storage.set(this.storageKey, this.currentCampaign)];
|
|
36
37
|
case 2:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":";AAAA,OAAO,EAIL,aAAa,EACb,YAAY,EAEZ,aAAa,EACb,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAW,2BAA2B,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAErG;IAYE,wBAAY,OAAgB,EAAE,MAAqB;;QALnD,2BAAsB,GAAG,KAAK,CAAC;QAM7B,IAAI,CAAC,OAAO,cACV,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EAAE,KAAK,EAChC,gBAAgB,EAAE,2BAA2B,CAAC,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BrowserConfig,\n ILogger,\n Storage,\n getStorageKey,\n isNewSession,\n Campaign,\n BASE_CAMPAIGN,\n CampaignParser,\n} from '@amplitude/analytics-core';\nimport { Options, getDefaultExcludedReferrers, createCampaignEvent, isNewCampaign } from './helpers';\n\nexport class WebAttribution {\n options: Options;\n storage: Storage<Campaign>;\n storageKey: string;\n webExpStorageKey: string;\n previousCampaign?: Campaign;\n currentCampaign: Campaign;\n shouldTrackNewCampaign = false;\n sessionTimeout: number;\n lastEventTime?: number;\n logger: ILogger;\n topLevelDomain?: string;\n constructor(options: Options, config: BrowserConfig) {\n this.options = {\n initialEmptyValue: 'EMPTY',\n resetSessionOnNewCampaign: false,\n excludeReferrers: getDefaultExcludedReferrers(config.cookieOptions?.domain || config.topLevelDomain),\n optOut: config.optOut,\n ...options,\n };\n this.storage = config.cookieStorage as unknown as Storage<Campaign>;\n this.storageKey = getStorageKey(config.apiKey, 'MKTG');\n this.webExpStorageKey = getStorageKey(config.apiKey, 'MKTG_ORIGINAL');\n this.currentCampaign = BASE_CAMPAIGN;\n this.sessionTimeout = config.sessionTimeout;\n this.lastEventTime = config.lastEventTime;\n this.logger = config.loggerProvider;\n this.topLevelDomain = config.topLevelDomain;\n config.loggerProvider.log('Installing web attribution tracking.');\n }\n\n async init() {\n // skip attribution if optOut is true\n if (this.options.optOut) {\n return;\n }\n\n [this.currentCampaign, this.previousCampaign] = await this.fetchCampaign();\n const isEventInNewSession = !this.lastEventTime ? true : isNewSession(this.sessionTimeout, this.lastEventTime);\n\n if (\n isNewCampaign(\n this.currentCampaign,\n this.previousCampaign,\n this.options,\n this.logger,\n isEventInNewSession,\n this.topLevelDomain,\n )\n ) {\n this.shouldTrackNewCampaign = true;\n await this.storage.set(this.storageKey, this.currentCampaign);\n }\n }\n\n async fetchCampaign() {\n const originalCampaign = await this.storage.get(this.webExpStorageKey);\n if (originalCampaign) {\n await this.storage.remove(this.webExpStorageKey);\n }\n return await Promise.all([originalCampaign || new CampaignParser().parse(), this.storage.get(this.storageKey)]);\n }\n\n /**\n * This can be called when enable web attribution and either\n * 1. set a new session\n * 2. has new campaign and enable resetSessionOnNewCampaign\n */\n generateCampaignEvent(event_id?: number) {\n // Mark this campaign has been tracked\n this.shouldTrackNewCampaign = false;\n const campaignEvent = createCampaignEvent(this.currentCampaign, this.options);\n if (event_id) {\n campaignEvent.event_id = event_id;\n }\n return campaignEvent;\n }\n\n shouldSetSessionIdOnNewCampaign() {\n return this.shouldTrackNewCampaign && !!this.options.resetSessionOnNewCampaign;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG7G,eAAO,MAAM,cAAc,QAAO,
|
|
1
|
+
{"version":3,"file":"browser-client-factory.d.ts","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqD,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG7G,eAAO,MAAM,cAAc,QAAO,aA0JjC,CAAC;;AAEF,wBAAgC"}
|
|
@@ -27,6 +27,7 @@ export var createInstance = function () {
|
|
|
27
27
|
setIdentity: debugWrapper(client.setIdentity.bind(client), 'setIdentity', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId', 'config.deviceId'])),
|
|
28
28
|
getOptOut: debugWrapper(client.getOptOut.bind(client), 'getOptOut', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
29
29
|
_setDiagnosticsSampleRate: debugWrapper(client._setDiagnosticsSampleRate.bind(client), '_setDiagnosticsSampleRate', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
30
|
+
_enableRequestBodyCompressionExperimental: debugWrapper(client._enableRequestBodyCompressionExperimental.bind(client), '_enableRequestBodyCompressionExperimental', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
33
|
export default createInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAiB,MAAM,2BAA2B,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,CAAC,IAAM,cAAc,GAAG;IAC5B,IAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,YAAY,CAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,MAAM,EACN,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,GAAG,EAAE,YAAY,CACf,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EACvB,KAAK,EACL,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAC/D;QACD,MAAM,EAAE,YAAY,CAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,QAAQ,EACR,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAC/D;QACD,KAAK,EAAE,YAAY,CACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EACzB,OAAO,EACP,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,QAAQ,EAAE,YAAY,CACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,UAAU,EACV,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,QAAQ,EAAE,YAAY,CACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,UAAU,EACV,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,aAAa,EAAE,YAAY,CACzB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EACjC,eAAe,EACf,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,QAAQ,EAAE,YAAY,CACpB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAC5B,UAAU,EACV,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,OAAO,EAAE,YAAY,CACnB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAC3B,SAAS,EACT,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,KAAK,EAAE,YAAY,CACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EACzB,OAAO,EACP,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,CACpE;QACD,SAAS,EAAE,YAAY,CACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,WAAW,EACX,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CACrD;QACD,SAAS,EAAE,YAAY,CACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,WAAW,EACX,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CACrD;QACD,WAAW,EAAE,YAAY,CACvB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,aAAa,EACb,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CACvD;QACD,WAAW,EAAE,YAAY,CACvB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,aAAa,EACb,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CACvD;QACD,KAAK,EAAE,YAAY,CACjB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EACzB,OAAO,EACP,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CACxE;QACD,YAAY,EAAE,YAAY,CACxB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,cAAc,EACd,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,YAAY,EAAE,YAAY,CACxB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,cAAc,EACd,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,aAAa,EAAE,YAAY,CACzB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EACjC,eAAe,EACf,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,SAAS,EAAE,YAAY,CACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,WAAW,EACX,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,YAAY,EAAE,YAAY,CACxB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,cAAc,EACd,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,WAAW,EAAE,YAAY,CACvB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,aAAa,EACb,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,WAAW,EAAE,YAAY,CACvB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAC/B,aAAa,EACb,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CACxE;QACD,SAAS,EAAE,YAAY,CACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7B,WAAW,EACX,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;QACD,yBAAyB,EAAE,YAAY,CACrC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7C,2BAA2B,EAC3B,kBAAkB,CAAC,MAAM,CAAC,EAC1B,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CACpC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,EAAE,CAAC","sourcesContent":["import { debugWrapper, getClientLogConfig, getClientStates, BrowserClient } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n getIdentity: debugWrapper(\n client.getIdentity.bind(client),\n 'getIdentity',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setIdentity: debugWrapper(\n client.setIdentity.bind(client),\n 'setIdentity',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getOptOut: debugWrapper(\n client.getOptOut.bind(client),\n 'getOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n _setDiagnosticsSampleRate: debugWrapper(\n client._setDiagnosticsSampleRate.bind(client),\n '_setDiagnosticsSampleRate',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"]}
|
|
1
|
+
{"version":3,"file":"browser-client-factory.js","sourceRoot":"","sources":["../../src/browser-client-factory.ts"],"names":[],"mappings":"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","sourcesContent":["import { debugWrapper, getClientLogConfig, getClientStates, BrowserClient } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\n\nexport const createInstance = (): BrowserClient => {\n const client = new AmplitudeBrowser();\n return {\n init: debugWrapper(\n client.init.bind(client),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n client.add.bind(client),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n client.remove.bind(client),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n client.track.bind(client),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n client.logEvent.bind(client),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n client.identify.bind(client),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n client.groupIdentify.bind(client),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n client.setGroup.bind(client),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n client.revenue.bind(client),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n client.flush.bind(client),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n extendSession: debugWrapper(\n client.extendSession.bind(client),\n 'extendSession',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setTransport: debugWrapper(\n client.setTransport.bind(client),\n 'setTransport',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n getIdentity: debugWrapper(\n client.getIdentity.bind(client),\n 'getIdentity',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setIdentity: debugWrapper(\n client.setIdentity.bind(client),\n 'setIdentity',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getOptOut: debugWrapper(\n client.getOptOut.bind(client),\n 'getOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n _setDiagnosticsSampleRate: debugWrapper(\n client._setDiagnosticsSampleRate.bind(client),\n '_setDiagnosticsSampleRate',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n _enableRequestBodyCompressionExperimental: debugWrapper(\n client._enableRequestBodyCompressionExperimental.bind(client),\n '_enableRequestBodyCompressionExperimental',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"]}
|
|
@@ -10,6 +10,7 @@ export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserCl
|
|
|
10
10
|
previousSessionUserId: string | undefined;
|
|
11
11
|
webAttribution: WebAttribution | undefined;
|
|
12
12
|
_diagnosticsSampleRate: number;
|
|
13
|
+
_enableRequestBodyCompressionExperimentalValue: boolean;
|
|
13
14
|
init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
|
|
14
15
|
protected _init(options: BrowserOptions & {
|
|
15
16
|
apiKey: string;
|
|
@@ -47,5 +48,11 @@ export declare class AmplitudeBrowser extends AmplitudeCore implements BrowserCl
|
|
|
47
48
|
* @param sampleRate - The sample rate to set
|
|
48
49
|
*/
|
|
49
50
|
_setDiagnosticsSampleRate(sampleRate: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* @experimental
|
|
53
|
+
* WARNING: This method is for internal testing only and is not part of the public API.
|
|
54
|
+
* It may be changed or removed at any time without notice.
|
|
55
|
+
*/
|
|
56
|
+
_enableRequestBodyCompressionExperimental(enabled: boolean): void;
|
|
50
57
|
}
|
|
51
58
|
//# sourceMappingURL=browser-client.d.ts.map
|
|
@@ -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,sBAAsB,EAEtB,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EASlB,MAAM,2BAA2B,CAAC;AA+BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO/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;IAI3C,sBAAsB,SAAK;
|
|
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,sBAAsB,EAEtB,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,iBAAiB,EASlB,MAAM,2BAA2B,CAAC;AA+BnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAO/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;IAI3C,sBAAsB,SAAK;IAI3B,8CAA8C,UAAS;IAEvD,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;IA6QlE,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,KAAK;IAML,WAAW;;;;;;;IAQX,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,iBAAiB,CAAC;IA6BhD,SAAS,IAAI,OAAO,GAAG,SAAS;IAIhC,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS;IA8E1C,aAAa;IAQb,YAAY,CAAC,SAAS,EAAE,sBAAsB;IAQ9C,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;IA0B1B,OAAO,CAAC,iBAAiB;IAgBzB;;;;;;;OAOG;IACH,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAWnD;;;;OAIG;IACH,yCAAyC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;CAOlE"}
|
|
@@ -30,6 +30,9 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
30
30
|
// Backdoor to set diagnostics sample rate
|
|
31
31
|
// by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()
|
|
32
32
|
_this._diagnosticsSampleRate = 0;
|
|
33
|
+
// Backdoor to test request body compression
|
|
34
|
+
// by calling amplitude._enableRequestBodyCompressionExperimental(true); before amplitude.init()
|
|
35
|
+
_this._enableRequestBodyCompressionExperimentalValue = false;
|
|
33
36
|
return _this;
|
|
34
37
|
}
|
|
35
38
|
AmplitudeBrowser.prototype.init = function (apiKey, userIdOrOptions, maybeOptions) {
|
|
@@ -579,6 +582,18 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
579
582
|
return;
|
|
580
583
|
}
|
|
581
584
|
};
|
|
585
|
+
/**
|
|
586
|
+
* @experimental
|
|
587
|
+
* WARNING: This method is for internal testing only and is not part of the public API.
|
|
588
|
+
* It may be changed or removed at any time without notice.
|
|
589
|
+
*/
|
|
590
|
+
AmplitudeBrowser.prototype._enableRequestBodyCompressionExperimental = function (enabled) {
|
|
591
|
+
// Set request body compression experimental config before initializing the config
|
|
592
|
+
if (!this.config) {
|
|
593
|
+
this._enableRequestBodyCompressionExperimentalValue = enabled;
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
596
|
+
};
|
|
582
597
|
return AmplitudeBrowser;
|
|
583
598
|
}(AmplitudeCore));
|
|
584
599
|
export { AmplitudeBrowser };
|