@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
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ This SDK is also available through CDN. Copy the script loader below and paste b
|
|
|
53
53
|
<!-- README_SNIPPET_BLOCK -->
|
|
54
54
|
```html
|
|
55
55
|
<script type="text/javascript">
|
|
56
|
-
!function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<
|
|
56
|
+
!function(){"use strict";!function(e,t){var r=e.amplitude||{_q:[],_iq:{}};if(r.invoked)e.console&&console.error&&console.error("Amplitude snippet has been loaded.");else{var n=function(e,t){e.prototype[t]=function(){return this._q.push({name:t,args:Array.prototype.slice.call(arguments,0)}),this}},s=function(e,t,r){return function(n){e._q.push({name:t,args:Array.prototype.slice.call(r,0),resolve:n})}},o=function(e,t,r){e[t]=function(){if(r)return{promise:new Promise(s(e,t,Array.prototype.slice.call(arguments)))};!function(e,t,r){e._q.push({name:t,args:Array.prototype.slice.call(r,0)})}(e,t,Array.prototype.slice.call(arguments))}},i=function(e){for(var t=0;t<v.length;t++)o(e,v[t],!1);for(var r=0;r<y.length;r++)o(e,y[r],!0)};r.invoked=!0;var c=t.createElement("script");c.type="text/javascript",c.integrity="sha384-FzxS6gJj3sHKuLcwpH2m5kOl2VGf0oBGIjX7AfKN2hRKJrm6mKtTxmm7hMQILBeQ",c.crossOrigin="anonymous",c.async=!0,c.src="https://cdn.amplitude.com/libs/analytics-browser-2.36.0-min.js.gz",c.onload=function(){e.amplitude.runQueuedFunctions||console.log("[Amplitude] Error: could not load SDK")};var a=t.getElementsByTagName("script")[0];a.parentNode.insertBefore(c,a);for(var u=function(){return this._q=[],this},p=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove","getUserProperties"],l=0;l<p.length;l++)n(u,p[l]);r.Identify=u;for(var d=function(){return this._q=[],this},f=["getEventProperties","setProductId","setQuantity","setPrice","setRevenue","setRevenueType","setReceipt","setReceiptSig","setCurrency","setEventProperties"],m=0;m<f.length;m++)n(d,f[m]);r.Revenue=d;var v=["getDeviceId","setDeviceId","getSessionId","setSessionId","getUserId","setUserId","setOptOut","setTransport","reset","extendSession"],y=["init","add","remove","track","logEvent","identify","groupIdentify","setGroup","revenue","flush"];i(r),r.createInstance=function(e){return r._iq[e]={_q:[]},i(r._iq[e]),r._iq[e]},e.amplitude=r}}(window,document)}();
|
|
57
57
|
|
|
58
58
|
amplitude.init("<YOUR_API_KEY>");
|
|
59
59
|
</script>
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { ILogger, Campaign } from '@amplitude/analytics-core';
|
|
2
|
+
import { ExcludeInternalReferrersOptions } from '../types';
|
|
2
3
|
export interface Options {
|
|
3
4
|
excludeReferrers?: (string | RegExp)[];
|
|
5
|
+
excludeInternalReferrers?: true | false | ExcludeInternalReferrersOptions;
|
|
4
6
|
initialEmptyValue?: string;
|
|
5
7
|
resetSessionOnNewCampaign?: boolean;
|
|
6
8
|
optOut?: boolean;
|
|
7
9
|
}
|
|
8
|
-
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, logger: ILogger, isNewSession?: boolean) => boolean;
|
|
10
|
+
export declare const isNewCampaign: (current: Campaign, previous: Campaign | undefined, options: Options, logger: ILogger, isNewSession?: boolean, topLevelDomain?: string) => boolean;
|
|
9
11
|
export declare const isExcludedReferrer: (excludeReferrers?: (string | RegExp)[], referringDomain?: string) => boolean;
|
|
12
|
+
export declare const isSubdomainOf: (subDomain: string, domain: string) => boolean;
|
|
10
13
|
export declare const createCampaignEvent: (campaign: Campaign, options: Options) => import("@amplitude/analytics-core").IdentifyEvent;
|
|
11
14
|
export declare const getDefaultExcludedReferrers: (cookieDomain: string | undefined) => RegExp[];
|
|
15
|
+
export declare const getDomain: (hostnameParam?: string) => string;
|
|
12
16
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/attribution/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EACP,QAAQ,EAGT,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,+BAA+B,EAAyC,MAAM,UAAU,CAAC;AAElG,MAAM,WAAW,OAAO;IACtB,gBAAgB,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,wBAAwB,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,+BAA+B,CAAC;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsBD,eAAO,MAAM,aAAa,YACf,QAAQ,YACP,QAAQ,GAAG,SAAS,WACrB,OAAO,UACR,OAAO,2CAEE,MAAM,YAiDxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,sBAAsB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,sCAIvE,CAAC;AAEF,eAAO,MAAM,aAAa,cAAe,MAAM,UAAU,MAAM,YAK9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,aAAc,QAAQ,WAAW,OAAO,sDAgBvE,CAAC;AAEF,eAAO,MAAM,2BAA2B,iBAAkB,MAAM,GAAG,SAAS,aAS3E,CAAC;AAwJF,eAAO,MAAM,SAAS,mBAAoB,MAAM,WAiB/C,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultExcludedReferrers = exports.createCampaignEvent = exports.isExcludedReferrer = exports.isNewCampaign = void 0;
|
|
3
|
+
exports.getDomain = exports.getDefaultExcludedReferrers = exports.createCampaignEvent = exports.isSubdomainOf = exports.isExcludedReferrer = exports.isNewCampaign = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var analytics_core_1 = require("@amplitude/analytics-core");
|
|
6
|
+
var types_1 = require("../types");
|
|
6
7
|
var domainWithoutSubdomain = function (domain) {
|
|
7
8
|
var parts = domain.split('.');
|
|
8
9
|
if (parts.length <= 2) {
|
|
@@ -14,10 +15,30 @@ var domainWithoutSubdomain = function (domain) {
|
|
|
14
15
|
var isDirectTraffic = function (current) {
|
|
15
16
|
return Object.values(current).every(function (value) { return !value; });
|
|
16
17
|
};
|
|
17
|
-
var
|
|
18
|
+
var isEmptyCampaign = function (campaign) {
|
|
19
|
+
var campaignWithoutReferrer = tslib_1.__assign(tslib_1.__assign({}, campaign), { referring_domain: undefined, referrer: undefined });
|
|
20
|
+
return Object.values(campaignWithoutReferrer).every(function (value) { return !value; });
|
|
21
|
+
};
|
|
22
|
+
var isNewCampaign = function (current, previous, options, logger, isNewSession, topLevelDomain) {
|
|
18
23
|
if (isNewSession === void 0) { isNewSession = true; }
|
|
19
24
|
var referrer = current.referrer, referring_domain = current.referring_domain, currentCampaign = tslib_1.__rest(current, ["referrer", "referring_domain"]);
|
|
20
25
|
var _a = previous || {}, _previous_referrer = _a.referrer, prevReferringDomain = _a.referring_domain, previousCampaign = tslib_1.__rest(_a, ["referrer", "referring_domain"]);
|
|
26
|
+
var excludeInternalReferrers = options.excludeInternalReferrers;
|
|
27
|
+
if (excludeInternalReferrers) {
|
|
28
|
+
var condition = getExcludeInternalReferrersCondition(excludeInternalReferrers, logger);
|
|
29
|
+
if (!(condition instanceof TypeError) &&
|
|
30
|
+
current.referring_domain &&
|
|
31
|
+
isInternalReferrer(current.referring_domain, topLevelDomain)) {
|
|
32
|
+
if (condition === 'always') {
|
|
33
|
+
debugLogInternalReferrerExclude(condition, current.referring_domain, logger);
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
else if (condition === 'ifEmptyCampaign' && isEmptyCampaign(current)) {
|
|
37
|
+
debugLogInternalReferrerExclude(condition, current.referring_domain, logger);
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
21
42
|
if ((0, exports.isExcludedReferrer)(options.excludeReferrers, current.referring_domain)) {
|
|
22
43
|
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
23
44
|
logger.debug("This is not a new campaign because ".concat(current.referring_domain, " is in the exclude referrer list."));
|
|
@@ -48,6 +69,14 @@ var isExcludedReferrer = function (excludeReferrers, referringDomain) {
|
|
|
48
69
|
});
|
|
49
70
|
};
|
|
50
71
|
exports.isExcludedReferrer = isExcludedReferrer;
|
|
72
|
+
var isSubdomainOf = function (subDomain, domain) {
|
|
73
|
+
var cookieDomainWithLeadingDot = domain.startsWith('.') ? domain : ".".concat(domain);
|
|
74
|
+
var subDomainWithLeadingDot = subDomain.startsWith('.') ? subDomain : ".".concat(subDomain);
|
|
75
|
+
if (subDomainWithLeadingDot.endsWith(cookieDomainWithLeadingDot))
|
|
76
|
+
return true;
|
|
77
|
+
return false;
|
|
78
|
+
};
|
|
79
|
+
exports.isSubdomainOf = isSubdomainOf;
|
|
51
80
|
var createCampaignEvent = function (campaign, options) {
|
|
52
81
|
var campaignParameters = tslib_1.__assign(tslib_1.__assign({}, analytics_core_1.BASE_CAMPAIGN), campaign);
|
|
53
82
|
var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {
|
|
@@ -73,4 +102,172 @@ var getDefaultExcludedReferrers = function (cookieDomain) {
|
|
|
73
102
|
return [];
|
|
74
103
|
};
|
|
75
104
|
exports.getDefaultExcludedReferrers = getDefaultExcludedReferrers;
|
|
105
|
+
/**
|
|
106
|
+
* Parses the excludeInternalReferrers configuration to determine the condition on which to
|
|
107
|
+
* exclude internal referrers for campaign attribution.
|
|
108
|
+
*
|
|
109
|
+
* If the config is invalid type, log and return a TypeError.
|
|
110
|
+
*
|
|
111
|
+
* (this does explicit type checking so don't have to rely on TS compiler to catch invalid types)
|
|
112
|
+
*
|
|
113
|
+
* @param excludeInternalReferrers - attribution.excludeInternalReferrers configuration
|
|
114
|
+
* @param logger - logger instance to log error when TypeError
|
|
115
|
+
* @returns The condition if the config is valid, TypeError if the config is invalid.
|
|
116
|
+
*/
|
|
117
|
+
var getExcludeInternalReferrersCondition = function (excludeInternalReferrers, logger) {
|
|
118
|
+
if (excludeInternalReferrers === true) {
|
|
119
|
+
return types_1.EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;
|
|
120
|
+
}
|
|
121
|
+
if (typeof excludeInternalReferrers === 'object') {
|
|
122
|
+
var condition = excludeInternalReferrers.condition;
|
|
123
|
+
if (typeof condition === 'string' && Object.keys(types_1.EXCLUDE_INTERNAL_REFERRERS_CONDITIONS).includes(condition)) {
|
|
124
|
+
return condition;
|
|
125
|
+
}
|
|
126
|
+
else if (typeof condition === 'undefined') {
|
|
127
|
+
return types_1.EXCLUDE_INTERNAL_REFERRERS_CONDITIONS.always;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
var errorMessage = "Invalid configuration provided for attribution.excludeInternalReferrers: ".concat(JSON.stringify(excludeInternalReferrers));
|
|
131
|
+
logger.error(errorMessage);
|
|
132
|
+
return new TypeError(errorMessage);
|
|
133
|
+
};
|
|
134
|
+
// helper function to log debug message when internal referrer is excluded
|
|
135
|
+
// (added this to prevent code duplication and improve readability)
|
|
136
|
+
function debugLogInternalReferrerExclude(condition, referringDomain, logger) {
|
|
137
|
+
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");
|
|
138
|
+
if (condition === 'always') {
|
|
139
|
+
logger.debug(baseMessage);
|
|
140
|
+
}
|
|
141
|
+
else if (condition === 'ifEmptyCampaign') {
|
|
142
|
+
logger.debug("".concat(baseMessage, " with empty campaign parameters"));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// list of domains that are known ccTLDs or domains that are commonly subtenanted
|
|
146
|
+
var KNOWN_2LDS = [
|
|
147
|
+
'ac.in',
|
|
148
|
+
'ac.jp',
|
|
149
|
+
'ac.th',
|
|
150
|
+
'ac.uk',
|
|
151
|
+
'ac.za',
|
|
152
|
+
'appspot.com',
|
|
153
|
+
'asn.au',
|
|
154
|
+
'azurewebsites.net',
|
|
155
|
+
'cloudfront.net',
|
|
156
|
+
'co.ca',
|
|
157
|
+
'co.in',
|
|
158
|
+
'co.jp',
|
|
159
|
+
'co.kr',
|
|
160
|
+
'co.nz',
|
|
161
|
+
'co.th',
|
|
162
|
+
'co.uk',
|
|
163
|
+
'co.za',
|
|
164
|
+
'com.ar',
|
|
165
|
+
'com.au',
|
|
166
|
+
'com.br',
|
|
167
|
+
'com.cn',
|
|
168
|
+
'com.hk',
|
|
169
|
+
'com.in',
|
|
170
|
+
'com.jp',
|
|
171
|
+
'com.kr',
|
|
172
|
+
'com.mx',
|
|
173
|
+
'com.pl',
|
|
174
|
+
'com.sg',
|
|
175
|
+
'com.tr',
|
|
176
|
+
'com.tw',
|
|
177
|
+
'ed.jp',
|
|
178
|
+
'edu.au',
|
|
179
|
+
'edu.hk',
|
|
180
|
+
'edu.sg',
|
|
181
|
+
'edu.th',
|
|
182
|
+
'edu.tr',
|
|
183
|
+
'edu.tw',
|
|
184
|
+
'firebaseapp.com',
|
|
185
|
+
'gc.ca',
|
|
186
|
+
'geek.nz',
|
|
187
|
+
'github.io',
|
|
188
|
+
'gitlab.io',
|
|
189
|
+
'go.kr',
|
|
190
|
+
'go.th',
|
|
191
|
+
'gob.ar',
|
|
192
|
+
'gov.au',
|
|
193
|
+
'gov.hk',
|
|
194
|
+
'gov.in',
|
|
195
|
+
'gov.pl',
|
|
196
|
+
'gov.sg',
|
|
197
|
+
'gov.tr',
|
|
198
|
+
'gov.uk',
|
|
199
|
+
'gov.za',
|
|
200
|
+
'govt.nz',
|
|
201
|
+
'gr.jp',
|
|
202
|
+
'herokuapp.com',
|
|
203
|
+
'id.au',
|
|
204
|
+
'idv.hk',
|
|
205
|
+
'iwi.nz',
|
|
206
|
+
'lg.jp',
|
|
207
|
+
'ltd.uk',
|
|
208
|
+
'maori.nz',
|
|
209
|
+
'me.uk',
|
|
210
|
+
'mil.kr',
|
|
211
|
+
'ne.jp',
|
|
212
|
+
'ne.kr',
|
|
213
|
+
'net.au',
|
|
214
|
+
'net.br',
|
|
215
|
+
'net.cn',
|
|
216
|
+
'net.hk',
|
|
217
|
+
'net.in',
|
|
218
|
+
'net.nz',
|
|
219
|
+
'net.pl',
|
|
220
|
+
'net.sg',
|
|
221
|
+
'net.tr',
|
|
222
|
+
'net.tw',
|
|
223
|
+
'net.za',
|
|
224
|
+
'or.jp',
|
|
225
|
+
'or.kr',
|
|
226
|
+
'or.th',
|
|
227
|
+
'org.ar',
|
|
228
|
+
'org.au',
|
|
229
|
+
'org.br',
|
|
230
|
+
'org.cn',
|
|
231
|
+
'org.hk',
|
|
232
|
+
'org.in',
|
|
233
|
+
'org.nz',
|
|
234
|
+
'org.pl',
|
|
235
|
+
'org.sg',
|
|
236
|
+
'org.tw',
|
|
237
|
+
'org.uk',
|
|
238
|
+
'org.za',
|
|
239
|
+
'pe.kr',
|
|
240
|
+
'plc.uk',
|
|
241
|
+
're.kr',
|
|
242
|
+
'res.in',
|
|
243
|
+
'sch.uk',
|
|
244
|
+
];
|
|
245
|
+
var getDomain = function (hostnameParam) {
|
|
246
|
+
var _a, _b;
|
|
247
|
+
/* istanbul ignore next */
|
|
248
|
+
var hostname = hostnameParam || ((_b = (_a = (0, analytics_core_1.getGlobalScope)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.hostname);
|
|
249
|
+
if (!hostname) {
|
|
250
|
+
return '';
|
|
251
|
+
}
|
|
252
|
+
var parts = hostname.split('.');
|
|
253
|
+
var tld = parts[parts.length - 1];
|
|
254
|
+
var name = parts[parts.length - 2];
|
|
255
|
+
if (KNOWN_2LDS.find(function (tld) { return hostname.endsWith(".".concat(tld)); })) {
|
|
256
|
+
tld = parts[parts.length - 2] + '.' + parts[parts.length - 1];
|
|
257
|
+
name = parts[parts.length - 3];
|
|
258
|
+
}
|
|
259
|
+
if (!name)
|
|
260
|
+
return tld;
|
|
261
|
+
return "".concat(name, ".").concat(tld);
|
|
262
|
+
};
|
|
263
|
+
exports.getDomain = getDomain;
|
|
264
|
+
var isInternalReferrer = function (referringDomain, topLevelDomain) {
|
|
265
|
+
var globalScope = (0, analytics_core_1.getGlobalScope)();
|
|
266
|
+
/* istanbul ignore if */
|
|
267
|
+
if (!globalScope)
|
|
268
|
+
return false;
|
|
269
|
+
// if referring domain is subdomain of config.cookieDomain, return true
|
|
270
|
+
var internalDomain = (topLevelDomain || '').trim() || (0, exports.getDomain)(globalScope.location.hostname);
|
|
271
|
+
return (0, exports.isSubdomainOf)(referringDomain, internalDomain);
|
|
272
|
+
};
|
|
76
273
|
//# 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"}
|
|
@@ -8,7 +8,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
8
8
|
function WebAttribution(options, config) {
|
|
9
9
|
var _a;
|
|
10
10
|
this.shouldTrackNewCampaign = false;
|
|
11
|
-
this.options = tslib_1.__assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: (0, helpers_1.getDefaultExcludedReferrers)((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain), optOut: config.optOut }, options);
|
|
11
|
+
this.options = tslib_1.__assign({ initialEmptyValue: 'EMPTY', resetSessionOnNewCampaign: false, excludeReferrers: (0, helpers_1.getDefaultExcludedReferrers)(((_a = config.cookieOptions) === null || _a === void 0 ? void 0 : _a.domain) || config.topLevelDomain), optOut: config.optOut }, options);
|
|
12
12
|
this.storage = config.cookieStorage;
|
|
13
13
|
this.storageKey = (0, analytics_core_1.getStorageKey)(config.apiKey, 'MKTG');
|
|
14
14
|
this.webExpStorageKey = (0, analytics_core_1.getStorageKey)(config.apiKey, 'MKTG_ORIGINAL');
|
|
@@ -16,6 +16,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
16
16
|
this.sessionTimeout = config.sessionTimeout;
|
|
17
17
|
this.lastEventTime = config.lastEventTime;
|
|
18
18
|
this.logger = config.loggerProvider;
|
|
19
|
+
this.topLevelDomain = config.topLevelDomain;
|
|
19
20
|
config.loggerProvider.log('Installing web attribution tracking.');
|
|
20
21
|
}
|
|
21
22
|
WebAttribution.prototype.init = function () {
|
|
@@ -33,7 +34,7 @@ var WebAttribution = /** @class */ (function () {
|
|
|
33
34
|
case 1:
|
|
34
35
|
_a = tslib_1.__read.apply(void 0, [_b.sent(), 2]), this.currentCampaign = _a[0], this.previousCampaign = _a[1];
|
|
35
36
|
isEventInNewSession = !this.lastEventTime ? true : (0, analytics_core_1.isNewSession)(this.sessionTimeout, this.lastEventTime);
|
|
36
|
-
if (!(0, helpers_1.isNewCampaign)(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession)) return [3 /*break*/, 3];
|
|
37
|
+
if (!(0, helpers_1.isNewCampaign)(this.currentCampaign, this.previousCampaign, this.options, this.logger, isEventInNewSession, this.topLevelDomain)) return [3 /*break*/, 3];
|
|
37
38
|
this.shouldTrackNewCampaign = true;
|
|
38
39
|
return [4 /*yield*/, this.storage.set(this.storageKey, this.currentCampaign)];
|
|
39
40
|
case 2:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":";;;;AAAA,4DASmC;AACnC,qCAAqG;AAErG;IAYE,wBAAY,OAAgB,EAAE,MAAqB;;QALnD,2BAAsB,GAAG,KAAK,CAAC;QAM7B,IAAI,CAAC,OAAO,sBACV,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EAAE,KAAK,EAChC,gBAAgB,EAAE,IAAA,qCAA2B,EAAC,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"web-attribution.js","sourceRoot":"","sources":["../../../src/attribution/web-attribution.ts"],"names":[],"mappings":";;;;AAAA,4DASmC;AACnC,qCAAqG;AAErG;IAYE,wBAAY,OAAgB,EAAE,MAAqB;;QALnD,2BAAsB,GAAG,KAAK,CAAC;QAM7B,IAAI,CAAC,OAAO,sBACV,iBAAiB,EAAE,OAAO,EAC1B,yBAAyB,EAAE,KAAK,EAChC,gBAAgB,EAAE,IAAA,qCAA2B,EAAC,CAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,KAAI,MAAM,CAAC,cAAc,CAAC,EACpG,MAAM,EAAE,MAAM,CAAC,MAAM,IAClB,OAAO,CACX,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAA6C,CAAC;QACpE,IAAI,CAAC,UAAU,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,gBAAgB,GAAG,IAAA,8BAAa,EAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,GAAG,8BAAa,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpE,CAAC;IAEK,6BAAI,GAAV;;;;;;;wBACE,qCAAqC;wBACrC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;4BACvB,sBAAO;yBACR;wBAE+C,qBAAM,IAAI,CAAC,aAAa,EAAE,EAAA;;wBAA1E,KAAA,8BAAgD,SAA0B,KAAA,EAAzE,IAAI,CAAC,eAAe,QAAA,EAAE,IAAI,CAAC,gBAAgB,QAAA,CAA+B;wBACrE,mBAAmB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,6BAAY,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;6BAG7G,IAAA,uBAAa,EACX,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,mBAAmB,EACnB,IAAI,CAAC,cAAc,CACpB,EAPD,wBAOC;wBAED,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;wBACnC,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,EAAA;;wBAA7D,SAA6D,CAAC;;;;;;KAEjE;IAEK,sCAAa,GAAnB;;;;;4BAC2B,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAA;;wBAAhE,gBAAgB,GAAG,SAA6C;6BAClE,gBAAgB,EAAhB,wBAAgB;wBAClB,qBAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;;4BAE5C,qBAAM,OAAO,CAAC,GAAG,CAAC,CAAC,gBAAgB,IAAI,IAAI,+BAAc,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAA;4BAA/G,sBAAO,SAAwG,EAAC;;;;KACjH;IAED;;;;OAIG;IACH,8CAAqB,GAArB,UAAsB,QAAiB;QACrC,sCAAsC;QACtC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACpC,IAAM,aAAa,GAAG,IAAA,6BAAmB,EAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,QAAQ,EAAE;YACZ,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;SACnC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,wDAA+B,GAA/B;QACE,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC;IACjF,CAAC;IACH,qBAAC;AAAD,CAAC,AAjFD,IAiFC;AAjFY,wCAAc","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"}
|
|
@@ -30,6 +30,7 @@ var createInstance = function () {
|
|
|
30
30
|
setIdentity: (0, analytics_core_1.debugWrapper)(client.setIdentity.bind(client), 'setIdentity', (0, analytics_core_1.getClientLogConfig)(client), (0, analytics_core_1.getClientStates)(client, ['config', 'config.userId', 'config.deviceId'])),
|
|
31
31
|
getOptOut: (0, analytics_core_1.debugWrapper)(client.getOptOut.bind(client), 'getOptOut', (0, analytics_core_1.getClientLogConfig)(client), (0, analytics_core_1.getClientStates)(client, ['config'])),
|
|
32
32
|
_setDiagnosticsSampleRate: (0, analytics_core_1.debugWrapper)(client._setDiagnosticsSampleRate.bind(client), '_setDiagnosticsSampleRate', (0, analytics_core_1.getClientLogConfig)(client), (0, analytics_core_1.getClientStates)(client, ['config'])),
|
|
33
|
+
_enableRequestBodyCompressionExperimental: (0, analytics_core_1.debugWrapper)(client._enableRequestBodyCompressionExperimental.bind(client), '_enableRequestBodyCompressionExperimental', (0, analytics_core_1.getClientLogConfig)(client), (0, analytics_core_1.getClientStates)(client, ['config'])),
|
|
33
34
|
};
|
|
34
35
|
};
|
|
35
36
|
exports.createInstance = createInstance;
|
|
@@ -1 +1 @@
|
|
|
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 };\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"}
|
|
@@ -33,6 +33,9 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
33
33
|
// Backdoor to set diagnostics sample rate
|
|
34
34
|
// by calling amplitude._setDiagnosticsSampleRate(1); before amplitude.init()
|
|
35
35
|
_this._diagnosticsSampleRate = 0;
|
|
36
|
+
// Backdoor to test request body compression
|
|
37
|
+
// by calling amplitude._enableRequestBodyCompressionExperimental(true); before amplitude.init()
|
|
38
|
+
_this._enableRequestBodyCompressionExperimentalValue = false;
|
|
36
39
|
return _this;
|
|
37
40
|
}
|
|
38
41
|
AmplitudeBrowser.prototype.init = function (apiKey, userIdOrOptions, maybeOptions) {
|
|
@@ -582,6 +585,18 @@ var AmplitudeBrowser = /** @class */ (function (_super) {
|
|
|
582
585
|
return;
|
|
583
586
|
}
|
|
584
587
|
};
|
|
588
|
+
/**
|
|
589
|
+
* @experimental
|
|
590
|
+
* WARNING: This method is for internal testing only and is not part of the public API.
|
|
591
|
+
* It may be changed or removed at any time without notice.
|
|
592
|
+
*/
|
|
593
|
+
AmplitudeBrowser.prototype._enableRequestBodyCompressionExperimental = function (enabled) {
|
|
594
|
+
// Set request body compression experimental config before initializing the config
|
|
595
|
+
if (!this.config) {
|
|
596
|
+
this._enableRequestBodyCompressionExperimentalValue = enabled;
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
};
|
|
585
600
|
return AmplitudeBrowser;
|
|
586
601
|
}(analytics_core_1.AmplitudeCore));
|
|
587
602
|
exports.AmplitudeBrowser = AmplitudeBrowser;
|