@amplitude/analytics-browser 1.8.0 → 1.9.0-beta.1
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/lib/cjs/browser-client-factory.js +10 -10
- package/lib/cjs/browser-client-factory.js.map +1 -1
- package/lib/cjs/browser-client.d.ts +11 -7
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +88 -44
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +4 -4
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +37 -29
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/constants.d.ts +7 -0
- package/lib/cjs/constants.d.ts.map +1 -0
- package/lib/cjs/constants.js +9 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +32 -25
- package/lib/cjs/cookie-migration/index.js.map +1 -1
- package/lib/cjs/plugins/context.d.ts +0 -1
- package/lib/cjs/plugins/context.d.ts.map +1 -1
- package/lib/cjs/plugins/context.js +0 -14
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/file-download-tracking.js +3 -3
- package/lib/cjs/plugins/file-download-tracking.js.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/cjs/plugins/form-interaction-tracking.js +5 -6
- package/lib/cjs/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/cjs/plugins/session-handler.d.ts +3 -0
- package/lib/cjs/plugins/session-handler.d.ts.map +1 -0
- package/lib/cjs/plugins/session-handler.js +54 -0
- package/lib/cjs/plugins/session-handler.js.map +1 -0
- package/lib/cjs/version.d.ts +1 -1
- package/lib/cjs/version.d.ts.map +1 -1
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/version.js.map +1 -1
- package/lib/esm/browser-client-factory.js +11 -11
- package/lib/esm/browser-client-factory.js.map +1 -1
- package/lib/esm/browser-client.d.ts +11 -7
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +91 -47
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +4 -4
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +36 -27
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/constants.d.ts +7 -0
- package/lib/esm/constants.d.ts.map +1 -0
- package/lib/esm/constants.js +7 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +35 -28
- package/lib/esm/cookie-migration/index.js.map +1 -1
- package/lib/esm/plugins/context.d.ts +0 -1
- package/lib/esm/plugins/context.d.ts.map +1 -1
- package/lib/esm/plugins/context.js +0 -14
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/file-download-tracking.js +3 -3
- package/lib/esm/plugins/file-download-tracking.js.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/esm/plugins/form-interaction-tracking.js +5 -6
- package/lib/esm/plugins/form-interaction-tracking.js.map +1 -1
- package/lib/esm/plugins/session-handler.d.ts +3 -0
- package/lib/esm/plugins/session-handler.d.ts.map +1 -0
- package/lib/esm/plugins/session-handler.js +50 -0
- package/lib/esm/plugins/session-handler.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.d.ts.map +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/esm/version.js.map +1 -1
- package/lib/scripts/amplitude-min.js +1 -1
- package/lib/scripts/amplitude-min.js.gz +0 -0
- package/lib/scripts/amplitude-min.umd.js +1 -1
- package/lib/scripts/amplitude-min.umd.js.gz +0 -0
- package/lib/scripts/browser-client.d.ts +11 -7
- package/lib/scripts/browser-client.d.ts.map +1 -1
- package/lib/scripts/config.d.ts +4 -4
- package/lib/scripts/config.d.ts.map +1 -1
- package/lib/scripts/constants.d.ts +7 -0
- package/lib/scripts/constants.d.ts.map +1 -0
- package/lib/scripts/cookie-migration/index.d.ts.map +1 -1
- package/lib/scripts/plugins/context.d.ts +0 -1
- package/lib/scripts/plugins/context.d.ts.map +1 -1
- package/lib/scripts/plugins/file-download-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/form-interaction-tracking.d.ts.map +1 -1
- package/lib/scripts/plugins/session-handler.d.ts +3 -0
- package/lib/scripts/plugins/session-handler.d.ts.map +1 -0
- package/lib/scripts/version.d.ts +1 -1
- package/lib/scripts/version.d.ts.map +1 -1
- package/package.json +7 -5
|
@@ -1,42 +1,49 @@
|
|
|
1
|
-
import { __awaiter, __generator, __read } from "tslib";
|
|
2
|
-
import { getOldCookieName
|
|
3
|
-
import { getDefaultConfig } from '../config';
|
|
4
|
-
import { LocalStorage } from '../storage/local-storage';
|
|
1
|
+
import { __assign, __awaiter, __generator, __read } from "tslib";
|
|
2
|
+
import { getOldCookieName } from '@amplitude/analytics-client-common';
|
|
3
|
+
import { createCookieStorage, getDefaultConfig, getTopLevelDomain } from '../config';
|
|
5
4
|
export var parseOldCookies = function (apiKey, options) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6
|
-
var storage, oldCookieName, cookies,
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
var storage, _a, _b, _c, _d, oldCookieName, cookies, _e, deviceId, userId, optOut, sessionId, lastEventTime;
|
|
6
|
+
var _f;
|
|
7
|
+
var _g, _h;
|
|
8
|
+
return __generator(this, function (_j) {
|
|
9
|
+
switch (_j.label) {
|
|
10
10
|
case 0:
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
_a = createCookieStorage;
|
|
12
|
+
_b = [__assign({}, options)];
|
|
13
|
+
_f = {};
|
|
14
|
+
if (!(options === null || options === void 0 ? void 0 : options.disableCookies)) return [3 /*break*/, 1];
|
|
15
|
+
_c = '';
|
|
16
|
+
return [3 /*break*/, 5];
|
|
13
17
|
case 1:
|
|
14
|
-
if (!(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
case
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
if (!((_g = options === null || options === void 0 ? void 0 : options.domain) !== null && _g !== void 0)) return [3 /*break*/, 2];
|
|
19
|
+
_d = _g;
|
|
20
|
+
return [3 /*break*/, 4];
|
|
21
|
+
case 2: return [4 /*yield*/, getTopLevelDomain()];
|
|
22
|
+
case 3:
|
|
23
|
+
_d = (_j.sent());
|
|
24
|
+
_j.label = 4;
|
|
25
|
+
case 4:
|
|
26
|
+
_c = _d;
|
|
27
|
+
_j.label = 5;
|
|
28
|
+
case 5: return [4 /*yield*/, _a.apply(void 0, [__assign.apply(void 0, _b.concat([(_f.domain = _c, _f)]))])];
|
|
29
|
+
case 6:
|
|
30
|
+
storage = _j.sent();
|
|
24
31
|
oldCookieName = getOldCookieName(apiKey);
|
|
25
32
|
return [4 /*yield*/, storage.getRaw(oldCookieName)];
|
|
26
|
-
case
|
|
27
|
-
cookies =
|
|
33
|
+
case 7:
|
|
34
|
+
cookies = _j.sent();
|
|
28
35
|
if (!cookies) {
|
|
29
36
|
return [2 /*return*/, {
|
|
30
37
|
optOut: false,
|
|
31
38
|
}];
|
|
32
39
|
}
|
|
33
|
-
if (!((
|
|
40
|
+
if (!((_h = options === null || options === void 0 ? void 0 : options.cookieUpgrade) !== null && _h !== void 0 ? _h : getDefaultConfig().cookieUpgrade)) return [3 /*break*/, 9];
|
|
34
41
|
return [4 /*yield*/, storage.remove(oldCookieName)];
|
|
35
|
-
case
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
case
|
|
39
|
-
|
|
42
|
+
case 8:
|
|
43
|
+
_j.sent();
|
|
44
|
+
_j.label = 9;
|
|
45
|
+
case 9:
|
|
46
|
+
_e = __read(cookies.split('.'), 5), deviceId = _e[0], userId = _e[1], optOut = _e[2], sessionId = _e[3], lastEventTime = _e[4];
|
|
40
47
|
return [2 /*return*/, {
|
|
41
48
|
deviceId: deviceId,
|
|
42
49
|
userId: decode(userId),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAErF,MAAM,CAAC,IAAM,eAAe,GAAG,UAAO,MAAc,EAAE,OAAwB;;;;;;;gBACtD,KAAA,mBAAmB,CAAA;mCACpC,OAAO;;sBACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;gBAAG,KAAA,EAAE,CAAA;;;4BAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;;;oBAAK,qBAAM,iBAAiB,EAAE,EAAA;;gBAA1B,KAAA,CAAC,SAAyB,CAAC,CAAA;;;gBAA9C,QAA8C;;oBAFvE,qBAAM,qDAEpB,SAAM,eACN,EAAA;;gBAHI,OAAO,GAAG,SAGd;gBACI,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC/B,qBAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAA;;gBAA7C,OAAO,GAAG,SAAmC;gBAEnD,IAAI,CAAC,OAAO,EAAE;oBACZ,sBAAO;4BACL,MAAM,EAAE,KAAK;yBACd,EAAC;iBACH;qBAEG,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,mCAAI,gBAAgB,EAAE,CAAC,aAAa,CAAA,EAA1D,wBAA0D;gBAC5D,qBAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAA;;gBAAnC,SAAmC,CAAC;;;gBAEhC,KAAA,OAAuD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,EAAxE,QAAQ,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,SAAS,QAAA,EAAE,aAAa,QAAA,CAAuB;gBAChF,sBAAO;wBACL,QAAQ,UAAA;wBACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;wBACtB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;wBAC/B,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC;wBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;qBACxB,EAAC;;;KACH,CAAC;AAEF,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,GAAW;IACnC,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,MAAM,GAAG,UAAC,KAAc;IACnC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,IAAI;QACF,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAChD;IAAC,WAAM;QACN,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["import { BrowserOptions, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName } from '@amplitude/analytics-client-common';\nimport { createCookieStorage, getDefaultConfig, getTopLevelDomain } from '../config';\n\nexport const parseOldCookies = async (apiKey: string, options?: BrowserOptions): Promise<UserSession> => {\n const storage = await createCookieStorage<string>({\n ...options,\n domain: options?.disableCookies ? '' : options?.domain ?? (await getTopLevelDomain()),\n });\n const oldCookieName = getOldCookieName(apiKey);\n const cookies = await storage.getRaw(oldCookieName);\n\n if (!cookies) {\n return {\n optOut: false,\n };\n }\n\n if (options?.cookieUpgrade ?? getDefaultConfig().cookieUpgrade) {\n await storage.remove(oldCookieName);\n }\n const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split('.');\n return {\n deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut),\n };\n};\n\nexport const parseTime = (num: string) => {\n const integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\n\nexport const decode = (value?: string): string | undefined => {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n } catch {\n return undefined;\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAO/C,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAAa;IACjB,IAAI,oBAA8B;IAKlC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,SAAK;IACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,OAAO,SAA6B;;IAWpC,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAM1C,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAO/C,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAAa;IACjB,IAAI,oBAA8B;IAKlC,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,SAAK;IACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,OAAO,SAA6B;;IAWpC,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;IAM1C,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CAmC9C"}
|
|
@@ -27,15 +27,6 @@ var Context = /** @class */ (function () {
|
|
|
27
27
|
return __awaiter(this, void 0, void 0, function () {
|
|
28
28
|
var time, osName, osVersion, deviceModel, deviceVendor, event;
|
|
29
29
|
return __generator(this, function (_a) {
|
|
30
|
-
/**
|
|
31
|
-
* Manages user session triggered by new events
|
|
32
|
-
*/
|
|
33
|
-
if (!this.isSessionValid()) {
|
|
34
|
-
// Creates new session
|
|
35
|
-
this.config.sessionId = Date.now();
|
|
36
|
-
} // else use previously creates session
|
|
37
|
-
// Updates last event time to extend time-based session
|
|
38
|
-
this.config.lastEventTime = Date.now();
|
|
39
30
|
time = new Date().getTime();
|
|
40
31
|
osName = this.uaResult.browser.name;
|
|
41
32
|
osVersion = this.uaResult.browser.version;
|
|
@@ -51,11 +42,6 @@ var Context = /** @class */ (function () {
|
|
|
51
42
|
});
|
|
52
43
|
});
|
|
53
44
|
};
|
|
54
|
-
Context.prototype.isSessionValid = function () {
|
|
55
|
-
var lastEventTime = this.config.lastEventTime || Date.now();
|
|
56
|
-
var timeSinceLastEvent = Date.now() - lastEventTime;
|
|
57
|
-
return timeSinceLastEvent < this.config.sessionTimeout;
|
|
58
|
-
};
|
|
59
45
|
return Context;
|
|
60
46
|
}());
|
|
61
47
|
export { Context };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsC,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,IAAM,gBAAgB,GAAG,KAAK,CAAC;AAC/B,IAAM,UAAU,GAAG,SAAS,CAAC;AAC7B;IAYE;QAXA,SAAI,GAAG,SAAS,CAAC;QACjB,SAAI,GAAG,UAAU,CAAC,MAAe,CAAC;QAMlC,YAAO,GAAG,CAAC,CAAC;QAEZ,YAAO,GAAG,uBAAgB,OAAO,CAAE,CAAC;QAGlC,IAAI,KAAyB,CAAC;QAC9B,0BAA0B;QAC1B,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;YACpC,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;SAC7B;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;IAClD,CAAC;IAED,uBAAK,GAAL,UAAM,MAAqB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEK,yBAAO,GAAb,UAAc,OAAc;;;;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"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","sourcesContent":["import { BeforePlugin, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: BrowserConfig;\n eventId = 0;\n uaResult: UAParser.IResult;\n library = `amplitude-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: BrowserConfig): Promise<undefined> {\n this.config = config;\n\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n const time = new Date().getTime();\n const osName = this.uaResult.browser.name;\n const osVersion = this.uaResult.browser.version;\n const deviceModel = this.uaResult.device.model || this.uaResult.os.name;\n const deviceVendor = this.uaResult.device.vendor;\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: this.config.appVersion }),\n ...(this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: getLanguage() }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return event;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"file-download-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIhG,eAAO,MAAM,oBAAoB,QAAO,gBAuEvC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
2
|
import { PluginType } from '@amplitude/analytics-types';
|
|
3
|
-
|
|
3
|
+
import { DEFAULT_FILE_DOWNLOAD_EVENT } from '../constants';
|
|
4
4
|
export var fileDownloadTracking = function () {
|
|
5
|
-
var name = '
|
|
5
|
+
var name = '@amplitude/plugin-file-download-tracking-browser';
|
|
6
6
|
var type = PluginType.ENRICHMENT;
|
|
7
7
|
var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {
|
|
8
8
|
var addFileDownloadListener, ext, links, observer;
|
|
@@ -21,7 +21,7 @@ export var fileDownloadTracking = function () {
|
|
|
21
21
|
if (fileExtension_1) {
|
|
22
22
|
a.addEventListener('click', function () {
|
|
23
23
|
if (fileExtension_1) {
|
|
24
|
-
amplitude.track(
|
|
24
|
+
amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, {
|
|
25
25
|
file_extension: fileExtension_1,
|
|
26
26
|
file_name: url_1.pathname,
|
|
27
27
|
link_id: a.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-download-tracking.js","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiB,UAAU,EAA2B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"file-download-tracking.js","sourceRoot":"","sources":["../../../src/plugins/file-download-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiB,UAAU,EAA2B,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAG3D,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAClC,IAAM,IAAI,GAAG,kDAAkD,CAAC;IAChE,IAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;IACnC,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAyB;;;YACnE,wBAAwB;YACxB,IAAI,CAAC,SAAS,EAAE;gBACd,qEAAqE;gBACrE,MAAM,CAAC,cAAc,CAAC,IAAI,CACxB,wHAAwH,CACzH,CAAC;gBACF,sBAAO;aACR;YAEK,uBAAuB,GAAG,UAAC,CAAoB;gBACnD,IAAI;oBACF,IAAM,KAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAG,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAM,eAAa,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,CAAC,CAAC;oBAElC,IAAI,eAAa,EAAE;wBACjB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE;4BAC1B,IAAI,eAAa,EAAE;gCACjB,SAAS,CAAC,KAAK,CAAC,2BAA2B,EAAE;oCAC3C,cAAc,EAAE,eAAa;oCAC7B,SAAS,EAAE,KAAG,CAAC,QAAQ;oCACvB,OAAO,EAAE,CAAC,CAAC,EAAE;oCACb,SAAS,EAAE,CAAC,CAAC,IAAI;oCACjB,QAAQ,EAAE,CAAC,CAAC,IAAI;iCACjB,CAAC,CAAC;6BACJ;wBACH,CAAC,CAAC,CAAC;qBACJ;iBACF;gBAAC,WAAM;oBACN,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;iBACxG;YACH,CAAC,CAAC;YAEI,GAAG,GACP,+GAA+G,CAAC;YAG5G,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAEvC,wDAAwD;YACxD,0BAA0B;YAC1B,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;gBACrC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAC,SAAS;oBAC9C,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ;wBACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI;4BAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;gCACzB,uBAAuB,CAAC,IAAyB,CAAC,CAAC;6BACpD;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;;;SACF,CAAC;IACF,IAAM,OAAO,GAAG,UAAO,KAAY;QAAK,sBAAA,KAAK,EAAA;aAAA,CAAC;IAE9C,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,OAAO,SAAA;KACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { BrowserClient, PluginType, Event, EnrichmentPlugin } from '@amplitude/analytics-types';\nimport { DEFAULT_FILE_DOWNLOAD_EVENT } from '../constants';\nimport { BrowserConfig } from '../config';\n\nexport const fileDownloadTracking = (): EnrichmentPlugin => {\n const name = '@amplitude/plugin-file-download-tracking-browser';\n const type = PluginType.ENRICHMENT;\n const setup = async (config: BrowserConfig, amplitude?: BrowserClient) => {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.',\n );\n return;\n }\n\n const addFileDownloadListener = (a: HTMLAnchorElement) => {\n try {\n const url = new URL(a.href);\n const result = ext.exec(url.href);\n const fileExtension = result?.[1];\n\n if (fileExtension) {\n a.addEventListener('click', () => {\n if (fileExtension) {\n amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, {\n file_extension: fileExtension,\n file_name: url.pathname,\n link_id: a.id,\n link_text: a.text,\n link_url: a.href,\n });\n }\n });\n }\n } catch {\n config.loggerProvider.error(`Something went wrong. File download events are not tracked for a#{a.id}`);\n }\n };\n\n const ext =\n /\\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$/;\n\n // Adds listener to existing anchor tags\n const links = Array.from(document.getElementsByTagName('a'));\n links.forEach(addFileDownloadListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'A') {\n addFileDownloadListener(node as HTMLAnchorElement);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n };\n const execute = async (event: Event) => event;\n\n return {\n name,\n type,\n setup,\n execute,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-interaction-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"form-interaction-tracking.d.ts","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIhG,eAAO,MAAM,uBAAuB,QAAO,gBAgF1C,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
2
|
import { PluginType } from '@amplitude/analytics-types';
|
|
3
|
-
|
|
4
|
-
var FORM_SUBMIT_EVENT = 'form_submit';
|
|
3
|
+
import { DEFAULT_FORM_START_EVENT, DEFAULT_FORM_SUBMIT_EVENT } from '../constants';
|
|
5
4
|
export var formInteractionTracking = function () {
|
|
6
|
-
var name = '
|
|
5
|
+
var name = '@amplitude/plugin-form-interaction-tracking-browser';
|
|
7
6
|
var type = PluginType.ENRICHMENT;
|
|
8
7
|
var setup = function (config, amplitude) { return __awaiter(void 0, void 0, void 0, function () {
|
|
9
8
|
var addFormInteractionListener, forms, observer;
|
|
@@ -18,7 +17,7 @@ export var formInteractionTracking = function () {
|
|
|
18
17
|
var hasFormChanged = false;
|
|
19
18
|
form.addEventListener('change', function () {
|
|
20
19
|
if (!hasFormChanged) {
|
|
21
|
-
amplitude.track(
|
|
20
|
+
amplitude.track(DEFAULT_FORM_START_EVENT, {
|
|
22
21
|
form_id: form.id,
|
|
23
22
|
form_name: form.name,
|
|
24
23
|
form_destination: form.action,
|
|
@@ -28,13 +27,13 @@ export var formInteractionTracking = function () {
|
|
|
28
27
|
}, {});
|
|
29
28
|
form.addEventListener('submit', function () {
|
|
30
29
|
if (!hasFormChanged) {
|
|
31
|
-
amplitude.track(
|
|
30
|
+
amplitude.track(DEFAULT_FORM_START_EVENT, {
|
|
32
31
|
form_id: form.id,
|
|
33
32
|
form_name: form.name,
|
|
34
33
|
form_destination: form.action,
|
|
35
34
|
});
|
|
36
35
|
}
|
|
37
|
-
amplitude.track(
|
|
36
|
+
amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, {
|
|
38
37
|
form_id: form.id,
|
|
39
38
|
form_name: form.name,
|
|
40
39
|
form_destination: form.action,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-interaction-tracking.js","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiB,UAAU,EAA2B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"form-interaction-tracking.js","sourceRoot":"","sources":["../../../src/plugins/form-interaction-tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAiB,UAAU,EAA2B,MAAM,4BAA4B,CAAC;AAChG,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGnF,MAAM,CAAC,IAAM,uBAAuB,GAAG;IACrC,IAAM,IAAI,GAAG,qDAAqD,CAAC;IACnE,IAAM,IAAI,GAAG,UAAU,CAAC,UAAU,CAAC;IACnC,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,SAAyB;;;YACnE,wBAAwB;YACxB,IAAI,CAAC,SAAS,EAAE;gBACd,qEAAqE;gBACrE,MAAM,CAAC,cAAc,CAAC,IAAI,CACxB,8HAA8H,CAC/H,CAAC;gBACF,sBAAO;aACR;YAEK,0BAA0B,GAAG,UAAC,IAAqB;gBACvD,IAAI,cAAc,GAAG,KAAK,CAAC;gBAE3B,IAAI,CAAC,gBAAgB,CACnB,QAAQ,EACR;oBACE,IAAI,CAAC,cAAc,EAAE;wBACnB,SAAS,CAAC,KAAK,CAAC,wBAAwB,EAAE;4BACxC,OAAO,EAAE,IAAI,CAAC,EAAE;4BAChB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,gBAAgB,EAAE,IAAI,CAAC,MAAM;yBAC9B,CAAC,CAAC;qBACJ;oBACD,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC,EACD,EAAE,CACH,CAAC;gBAEF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBAC9B,IAAI,CAAC,cAAc,EAAE;wBACnB,SAAS,CAAC,KAAK,CAAC,wBAAwB,EAAE;4BACxC,OAAO,EAAE,IAAI,CAAC,EAAE;4BAChB,SAAS,EAAE,IAAI,CAAC,IAAI;4BACpB,gBAAgB,EAAE,IAAI,CAAC,MAAM;yBAC9B,CAAC,CAAC;qBACJ;oBAED,SAAS,CAAC,KAAK,CAAC,yBAAyB,EAAE;wBACzC,OAAO,EAAE,IAAI,CAAC,EAAE;wBAChB,SAAS,EAAE,IAAI,CAAC,IAAI;wBACpB,gBAAgB,EAAE,IAAI,CAAC,MAAM;qBAC9B,CAAC,CAAC;oBACH,cAAc,GAAG,KAAK,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YAGI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;YAE1C,wDAAwD;YACxD,0BAA0B;YAC1B,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;gBACrC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,UAAC,SAAS;oBAC9C,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ;wBACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI;4BAC/B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;gCAC5B,0BAA0B,CAAC,IAAuB,CAAC,CAAC;6BACrD;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC9B,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;aACJ;;;SACF,CAAC;IACF,IAAM,OAAO,GAAG,UAAO,KAAY;QAAK,sBAAA,KAAK,EAAA;aAAA,CAAC;IAE9C,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,OAAO,SAAA;KACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { BrowserClient, PluginType, Event, EnrichmentPlugin } from '@amplitude/analytics-types';\nimport { DEFAULT_FORM_START_EVENT, DEFAULT_FORM_SUBMIT_EVENT } from '../constants';\nimport { BrowserConfig } from '../config';\n\nexport const formInteractionTracking = (): EnrichmentPlugin => {\n const name = '@amplitude/plugin-form-interaction-tracking-browser';\n const type = PluginType.ENRICHMENT;\n const setup = async (config: BrowserConfig, amplitude?: BrowserClient) => {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn(\n 'Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.',\n );\n return;\n }\n\n const addFormInteractionListener = (form: HTMLFormElement) => {\n let hasFormChanged = false;\n\n form.addEventListener(\n 'change',\n () => {\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n form_id: form.id,\n form_name: form.name,\n form_destination: form.action,\n });\n }\n hasFormChanged = true;\n },\n {},\n );\n\n form.addEventListener('submit', () => {\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, {\n form_id: form.id,\n form_name: form.name,\n form_destination: form.action,\n });\n }\n\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, {\n form_id: form.id,\n form_name: form.name,\n form_destination: form.action,\n });\n hasFormChanged = false;\n });\n };\n\n // Adds listener to existing anchor tags\n const forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n mutation.addedNodes.forEach((node) => {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node as HTMLFormElement);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n });\n }\n };\n const execute = async (event: Event) => event;\n\n return {\n name,\n type,\n setup,\n execute,\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-handler.d.ts","sourceRoot":"","sources":["../../../src/plugins/session-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAmD,MAAM,4BAA4B,CAAC;AAG3G,eAAO,MAAM,oBAAoB,QAAO,YAiDvC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { PluginType } from '@amplitude/analytics-types';
|
|
3
|
+
import { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from '../constants';
|
|
4
|
+
export var sessionHandlerPlugin = function () {
|
|
5
|
+
// browserConfig is defined in setup() which will always be called first
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
var browserConfig;
|
|
9
|
+
// amplitude is defined in setup() which will always be called first
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
var amplitude;
|
|
13
|
+
var name = '@amplitude/plugin-session-handler';
|
|
14
|
+
var type = PluginType.BEFORE;
|
|
15
|
+
var setup = function (config, client) { return __awaiter(void 0, void 0, void 0, function () {
|
|
16
|
+
return __generator(this, function (_a) {
|
|
17
|
+
browserConfig = config;
|
|
18
|
+
amplitude = client;
|
|
19
|
+
return [2 /*return*/];
|
|
20
|
+
});
|
|
21
|
+
}); };
|
|
22
|
+
var execute = function (event) { return __awaiter(void 0, void 0, void 0, function () {
|
|
23
|
+
var now, lastEventTime, timeSinceLastEvent;
|
|
24
|
+
return __generator(this, function (_a) {
|
|
25
|
+
now = Date.now();
|
|
26
|
+
if (event.event_type === DEFAULT_SESSION_START_EVENT || event.event_type === DEFAULT_SESSION_END_EVENT) {
|
|
27
|
+
browserConfig.lastEventTime = now;
|
|
28
|
+
return [2 /*return*/, event];
|
|
29
|
+
}
|
|
30
|
+
lastEventTime = browserConfig.lastEventTime || now;
|
|
31
|
+
timeSinceLastEvent = now - lastEventTime;
|
|
32
|
+
if (timeSinceLastEvent > browserConfig.sessionTimeout) {
|
|
33
|
+
// assigns new session
|
|
34
|
+
amplitude.setSessionId(now);
|
|
35
|
+
event.session_id = amplitude.getSessionId();
|
|
36
|
+
event.time = now;
|
|
37
|
+
} // else use existing session
|
|
38
|
+
// updates last event time to extend time-based session
|
|
39
|
+
browserConfig.lastEventTime = now;
|
|
40
|
+
return [2 /*return*/, event];
|
|
41
|
+
});
|
|
42
|
+
}); };
|
|
43
|
+
return {
|
|
44
|
+
name: name,
|
|
45
|
+
type: type,
|
|
46
|
+
setup: setup,
|
|
47
|
+
execute: execute,
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=session-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-handler.js","sourceRoot":"","sources":["../../../src/plugins/session-handler.ts"],"names":[],"mappings":";AAAA,OAAO,EAAqD,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC3G,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAEtF,MAAM,CAAC,IAAM,oBAAoB,GAAG;IAClC,wEAAwE;IACxE,6DAA6D;IAC7D,aAAa;IACb,IAAI,aAA4B,CAAC;IACjC,oEAAoE;IACpE,6DAA6D;IAC7D,aAAa;IACb,IAAI,SAAwB,CAAC;IAE7B,IAAM,IAAI,GAAG,mCAAmC,CAAC;IAEjD,IAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;IAE/B,IAAM,KAAK,GAAG,UAAO,MAAqB,EAAE,MAAqB;;YAC/D,aAAa,GAAG,MAAM,CAAC;YACvB,SAAS,GAAG,MAAM,CAAC;;;SACpB,CAAC;IAEF,IAAM,OAAO,GAAG,UAAO,KAAY;;;YAC3B,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvB,IAAI,KAAK,CAAC,UAAU,KAAK,2BAA2B,IAAI,KAAK,CAAC,UAAU,KAAK,yBAAyB,EAAE;gBACtG,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;gBAClC,sBAAO,KAAK,EAAC;aACd;YAEK,aAAa,GAAG,aAAa,CAAC,aAAa,IAAI,GAAG,CAAC;YACnD,kBAAkB,GAAG,GAAG,GAAG,aAAa,CAAC;YAE/C,IAAI,kBAAkB,GAAG,aAAa,CAAC,cAAc,EAAE;gBACrD,sBAAsB;gBACtB,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC5B,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC5C,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;aAClB,CAAC,4BAA4B;YAE9B,uDAAuD;YACvD,aAAa,CAAC,aAAa,GAAG,GAAG,CAAC;YAElC,sBAAO,KAAK,EAAC;;SACd,CAAC;IAEF,OAAO;QACL,IAAI,MAAA;QACJ,IAAI,MAAA;QACJ,KAAK,OAAA;QACL,OAAO,SAAA;KACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { BeforePlugin, BrowserClient, BrowserConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from '../constants';\n\nexport const sessionHandlerPlugin = (): BeforePlugin => {\n // browserConfig is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n let browserConfig: BrowserConfig;\n // amplitude is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n let amplitude: BrowserClient;\n\n const name = '@amplitude/plugin-session-handler';\n\n const type = PluginType.BEFORE;\n\n const setup = async (config: BrowserConfig, client: BrowserClient) => {\n browserConfig = config;\n amplitude = client;\n };\n\n const execute = async (event: Event) => {\n const now = Date.now();\n\n if (event.event_type === DEFAULT_SESSION_START_EVENT || event.event_type === DEFAULT_SESSION_END_EVENT) {\n browserConfig.lastEventTime = now;\n return event;\n }\n\n const lastEventTime = browserConfig.lastEventTime || now;\n const timeSinceLastEvent = now - lastEventTime;\n\n if (timeSinceLastEvent > browserConfig.sessionTimeout) {\n // assigns new session\n amplitude.setSessionId(now);\n event.session_id = amplitude.getSessionId();\n event.time = now;\n } // else use existing session\n\n // updates last event time to extend time-based session\n browserConfig.lastEventTime = now;\n\n return event;\n };\n\n return {\n name,\n type,\n setup,\n execute,\n };\n};\n"]}
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "1.
|
|
1
|
+
export declare const VERSION = "1.9.0-beta.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/lib/esm/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,iBAAiB,CAAC"}
|
package/lib/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export var VERSION = '1.
|
|
1
|
+
export var VERSION = '1.9.0-beta.1';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/lib/esm/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,cAAc,CAAC","sourcesContent":["export const VERSION = '1.9.0-beta.1';\n"]}
|