@amplitude/analytics-browser 0.5.1 → 0.7.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/campaign-parser.d.ts +10 -0
- package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-parser.js +83 -0
- package/lib/cjs/attribution/campaign-parser.js.map +1 -0
- package/lib/cjs/attribution/campaign-tracker.d.ts +72 -0
- package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/cjs/attribution/campaign-tracker.js +113 -0
- package/lib/cjs/attribution/campaign-tracker.js.map +1 -0
- package/lib/cjs/{constants.d.ts → attribution/constants.d.ts} +4 -0
- package/lib/cjs/attribution/constants.d.ts.map +1 -0
- package/lib/cjs/attribution/constants.js +28 -0
- package/lib/cjs/attribution/constants.js.map +1 -0
- package/lib/cjs/browser-client.d.ts +16 -4
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +62 -34
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +19 -20
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +204 -91
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts +1 -1
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
- package/lib/cjs/cookie-migration/index.js +43 -28
- package/lib/cjs/cookie-migration/index.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 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/plugins/context.d.ts +1 -0
- package/lib/cjs/plugins/context.d.ts.map +1 -1
- package/lib/cjs/plugins/context.js +25 -12
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/session-manager.d.ts +27 -5
- package/lib/cjs/session-manager.d.ts.map +1 -1
- package/lib/cjs/session-manager.js +81 -33
- package/lib/cjs/session-manager.js.map +1 -1
- package/lib/cjs/storage/cookie.d.ts +6 -6
- package/lib/cjs/storage/cookie.d.ts.map +1 -1
- package/lib/cjs/storage/cookie.js +116 -67
- package/lib/cjs/storage/cookie.js.map +1 -1
- package/lib/cjs/storage/local-storage.d.ts +6 -6
- package/lib/cjs/storage/local-storage.d.ts.map +1 -1
- package/lib/cjs/storage/local-storage.js +95 -50
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/utm-cookie.d.ts +2 -2
- package/lib/cjs/storage/utm-cookie.d.ts.map +1 -1
- package/lib/cjs/storage/utm-cookie.js +32 -18
- package/lib/cjs/storage/utm-cookie.js.map +1 -1
- package/lib/cjs/utils/cookie-name.d.ts +3 -0
- package/lib/cjs/utils/cookie-name.d.ts.map +1 -0
- package/lib/cjs/utils/cookie-name.js +14 -0
- package/lib/cjs/utils/cookie-name.js.map +1 -0
- 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/campaign-parser.d.ts +10 -0
- package/lib/esm/attribution/campaign-parser.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-parser.js +81 -0
- package/lib/esm/attribution/campaign-parser.js.map +1 -0
- package/lib/esm/attribution/campaign-tracker.d.ts +72 -0
- package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -0
- package/lib/esm/attribution/campaign-tracker.js +111 -0
- package/lib/esm/attribution/campaign-tracker.js.map +1 -0
- package/lib/esm/{constants.d.ts → attribution/constants.d.ts} +4 -0
- package/lib/esm/attribution/constants.d.ts.map +1 -0
- package/lib/esm/{constants.js → attribution/constants.js} +13 -0
- package/lib/esm/attribution/constants.js.map +1 -0
- package/lib/esm/browser-client.d.ts +16 -4
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +63 -35
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +19 -20
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +202 -90
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts +1 -1
- package/lib/esm/cookie-migration/index.d.ts.map +1 -1
- package/lib/esm/cookie-migration/index.js +43 -29
- package/lib/esm/cookie-migration/index.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/plugins/context.d.ts +1 -0
- package/lib/esm/plugins/context.d.ts.map +1 -1
- package/lib/esm/plugins/context.js +26 -13
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/session-manager.d.ts +27 -5
- package/lib/esm/session-manager.d.ts.map +1 -1
- package/lib/esm/session-manager.js +80 -28
- package/lib/esm/session-manager.js.map +1 -1
- package/lib/esm/storage/cookie.d.ts +6 -6
- package/lib/esm/storage/cookie.d.ts.map +1 -1
- package/lib/esm/storage/cookie.js +117 -68
- package/lib/esm/storage/cookie.js.map +1 -1
- package/lib/esm/storage/local-storage.d.ts +6 -6
- package/lib/esm/storage/local-storage.d.ts.map +1 -1
- package/lib/esm/storage/local-storage.js +95 -50
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/utm-cookie.d.ts +2 -2
- package/lib/esm/storage/utm-cookie.d.ts.map +1 -1
- package/lib/esm/storage/utm-cookie.js +33 -19
- package/lib/esm/storage/utm-cookie.js.map +1 -1
- package/lib/esm/utils/cookie-name.d.ts +3 -0
- package/lib/esm/utils/cookie-name.d.ts.map +1 -0
- package/lib/esm/utils/cookie-name.js +10 -0
- package/lib/esm/utils/cookie-name.js.map +1 -0
- 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-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/amplitude-snippet-instructions.html +1 -1
- package/lib/scripts/amplitude-snippet-min.js +1 -1
- package/package.json +4 -4
- package/lib/cjs/attribution.d.ts +0 -11
- package/lib/cjs/attribution.d.ts.map +0 -1
- package/lib/cjs/attribution.js +0 -64
- package/lib/cjs/attribution.js.map +0 -1
- package/lib/cjs/constants.d.ts.map +0 -1
- package/lib/cjs/constants.js +0 -15
- package/lib/cjs/constants.js.map +0 -1
- package/lib/esm/attribution.d.ts +0 -11
- package/lib/esm/attribution.d.ts.map +0 -1
- package/lib/esm/attribution.js +0 -57
- package/lib/esm/attribution.js.map +0 -1
- package/lib/esm/constants.d.ts.map +0 -1
- package/lib/esm/constants.js.map +0 -1
|
@@ -1,36 +1,51 @@
|
|
|
1
|
+
var _this = this;
|
|
1
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
exports.decode = exports.parseTime = exports.parseOldCookies = void 0;
|
|
3
4
|
var tslib_1 = require("tslib");
|
|
4
|
-
var
|
|
5
|
+
var cookie_name_1 = require("../utils/cookie-name");
|
|
5
6
|
var local_storage_1 = require("../storage/local-storage");
|
|
6
7
|
var cookie_1 = require("../storage/cookie");
|
|
7
|
-
var parseOldCookies = function (apiKey, options) {
|
|
8
|
-
var storage
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
8
|
+
var parseOldCookies = function (apiKey, options) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
9
|
+
var storage, oldCookieName, cookies, _a, deviceId, userId, optOut, sessionId, lastEventTime;
|
|
10
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
|
11
|
+
switch (_b.label) {
|
|
12
|
+
case 0:
|
|
13
|
+
storage = new cookie_1.CookieStorage();
|
|
14
|
+
return [4 /*yield*/, storage.isEnabled()];
|
|
15
|
+
case 1:
|
|
16
|
+
if (!(_b.sent()) || (options === null || options === void 0 ? void 0 : options.disableCookies)) {
|
|
17
|
+
storage = new local_storage_1.LocalStorage();
|
|
18
|
+
}
|
|
19
|
+
return [4 /*yield*/, storage.isEnabled()];
|
|
20
|
+
case 2:
|
|
21
|
+
if (!(_b.sent())) {
|
|
22
|
+
return [2 /*return*/, {
|
|
23
|
+
optOut: false,
|
|
24
|
+
}];
|
|
25
|
+
}
|
|
26
|
+
oldCookieName = (0, cookie_name_1.getOldCookieName)(apiKey);
|
|
27
|
+
return [4 /*yield*/, storage.getRaw(oldCookieName)];
|
|
28
|
+
case 3:
|
|
29
|
+
cookies = _b.sent();
|
|
30
|
+
if (!cookies) {
|
|
31
|
+
return [2 /*return*/, {
|
|
32
|
+
optOut: false,
|
|
33
|
+
}];
|
|
34
|
+
}
|
|
35
|
+
return [4 /*yield*/, storage.remove(oldCookieName)];
|
|
36
|
+
case 4:
|
|
37
|
+
_b.sent();
|
|
38
|
+
_a = (0, tslib_1.__read)(cookies.split('.'), 5), deviceId = _a[0], userId = _a[1], optOut = _a[2], sessionId = _a[3], lastEventTime = _a[4];
|
|
39
|
+
return [2 /*return*/, {
|
|
40
|
+
deviceId: deviceId,
|
|
41
|
+
userId: (0, exports.decode)(userId),
|
|
42
|
+
sessionId: (0, exports.parseTime)(sessionId),
|
|
43
|
+
lastEventTime: (0, exports.parseTime)(lastEventTime),
|
|
44
|
+
optOut: Boolean(optOut),
|
|
45
|
+
}];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}); };
|
|
34
49
|
exports.parseOldCookies = parseOldCookies;
|
|
35
50
|
var parseTime = function (num) {
|
|
36
51
|
var integer = parseInt(num, 32);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,iBAsDA;;;;AArDA,oDAAwD;AACxD,0DAAwD;AACxD,4CAAkD;AAE3C,IAAM,eAAe,GAAG,UAAO,MAAc,EAAE,OAAwB;;;;;gBACxE,OAAO,GAAoB,IAAI,sBAAa,EAAU,CAAC;gBACrD,qBAAM,OAAO,CAAC,SAAS,EAAE,EAAA;;gBAA/B,IAAI,CAAC,CAAC,SAAyB,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAA,EAAE;oBAC3D,OAAO,GAAG,IAAI,4BAAY,EAAU,CAAC;iBACtC;gBACK,qBAAM,OAAO,CAAC,SAAS,EAAE,EAAA;;gBAA/B,IAAI,CAAC,CAAC,SAAyB,CAAC,EAAE;oBAChC,sBAAO;4BACL,MAAM,EAAE,KAAK;yBACd,EAAC;iBACH;gBAEK,aAAa,GAAG,IAAA,8BAAgB,EAAC,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;gBAED,qBAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAA;;gBAAnC,SAAmC,CAAC;gBAC9B,KAAA,oBAAuD,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,IAAA,cAAM,EAAC,MAAM,CAAC;wBACtB,SAAS,EAAE,IAAA,iBAAS,EAAC,SAAS,CAAC;wBAC/B,aAAa,EAAE,IAAA,iBAAS,EAAC,aAAa,CAAC;wBACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;qBACxB,EAAC;;;KACH,CAAC;AA7BW,QAAA,eAAe,mBA6B1B;AAEK,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;AANW,QAAA,SAAS,aAMpB;AAEK,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;AATW,QAAA,MAAM,UASjB","sourcesContent":["import { BrowserOptions, Storage, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName } from '../utils/cookie-name';\nimport { LocalStorage } from '../storage/local-storage';\nimport { CookieStorage } from '../storage/cookie';\n\nexport const parseOldCookies = async (apiKey: string, options?: BrowserOptions): Promise<UserSession> => {\n let storage: Storage<string> = new CookieStorage<string>();\n if (!(await storage.isEnabled()) || options?.disableCookies) {\n storage = new LocalStorage<string>();\n }\n if (!(await storage.isEnabled())) {\n return {\n optOut: false,\n };\n }\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 await storage.remove(oldCookieName);\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"]}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { add, getDeviceId, getSessionId, getUserId, groupIdentify, identify, init, logEvent, remove, revenue, setDeviceId, setGroup, setOptOut, setSessionId, setTransport, setUserId, track, } from './browser-client';
|
|
1
|
+
export { add, flush, getDeviceId, getSessionId, getUserId, groupIdentify, identify, init, logEvent, remove, revenue, setDeviceId, setGroup, setOptOut, setSessionId, setTransport, setUserId, track, } from './browser-client';
|
|
2
2
|
export { runQueuedFunctions } from './utils/snippet-helper';
|
|
3
3
|
export { Revenue, Identify } from '@amplitude/analytics-core';
|
|
4
4
|
export * as Types from '@amplitude/analytics-types';
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.Types = exports.Identify = exports.Revenue = exports.runQueuedFunctions = exports.track = exports.setUserId = exports.setTransport = exports.setSessionId = exports.setOptOut = exports.setGroup = exports.setDeviceId = exports.revenue = exports.remove = exports.logEvent = exports.init = exports.identify = exports.groupIdentify = exports.getUserId = exports.getSessionId = exports.getDeviceId = exports.add = void 0;
|
|
2
|
+
exports.Types = exports.Identify = exports.Revenue = exports.runQueuedFunctions = exports.track = exports.setUserId = exports.setTransport = exports.setSessionId = exports.setOptOut = exports.setGroup = exports.setDeviceId = exports.revenue = exports.remove = exports.logEvent = exports.init = exports.identify = exports.groupIdentify = exports.getUserId = exports.getSessionId = exports.getDeviceId = exports.flush = exports.add = void 0;
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
var browser_client_1 = require("./browser-client");
|
|
5
5
|
Object.defineProperty(exports, "add", { enumerable: true, get: function () { return browser_client_1.add; } });
|
|
6
|
+
Object.defineProperty(exports, "flush", { enumerable: true, get: function () { return browser_client_1.flush; } });
|
|
6
7
|
Object.defineProperty(exports, "getDeviceId", { enumerable: true, get: function () { return browser_client_1.getDeviceId; } });
|
|
7
8
|
Object.defineProperty(exports, "getSessionId", { enumerable: true, get: function () { return browser_client_1.getSessionId; } });
|
|
8
9
|
Object.defineProperty(exports, "getUserId", { enumerable: true, get: function () { return browser_client_1.getUserId; } });
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAmB0B;AAlBxB,qGAAA,GAAG,OAAA;AACH,uGAAA,KAAK,OAAA;AACL,6GAAA,WAAW,OAAA;AACX,8GAAA,YAAY,OAAA;AACZ,2GAAA,SAAS,OAAA;AACT,+GAAA,aAAa,OAAA;AACb,0GAAA,QAAQ,OAAA;AACR,sGAAA,IAAI,OAAA;AACJ,0GAAA,QAAQ,OAAA;AACR,wGAAA,MAAM,OAAA;AACN,yGAAA,OAAO,OAAA;AACP,6GAAA,WAAW,OAAA;AACX,0GAAA,QAAQ,OAAA;AACR,2GAAA,SAAS,OAAA;AACT,8GAAA,YAAY,OAAA;AACZ,8GAAA,YAAY,OAAA;AACZ,2GAAA,SAAS,OAAA;AACT,uGAAA,KAAK,OAAA;AAEP,yDAA4D;AAAnD,oHAAA,kBAAkB,OAAA;AAC3B,4DAA8D;AAArD,yGAAA,OAAO,OAAA;AAAE,0GAAA,QAAQ,OAAA;AAC1B,iFAAoD","sourcesContent":["export {\n add,\n flush,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setTransport,\n setUserId,\n track,\n} from './browser-client';\nexport { runQueuedFunctions } from './utils/snippet-helper';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\nexport * as Types from '@amplitude/analytics-types';\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;
|
|
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;AAQ/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;IAuC7C,cAAc;CAKf"}
|
|
@@ -6,7 +6,6 @@ var ua_parser_js_1 = (0, tslib_1.__importDefault)(require("@amplitude/ua-parser-
|
|
|
6
6
|
var analytics_core_1 = require("@amplitude/analytics-core");
|
|
7
7
|
var language_1 = require("../utils/language");
|
|
8
8
|
var version_1 = require("../version");
|
|
9
|
-
var session_manager_1 = require("../session-manager");
|
|
10
9
|
var BROWSER_PLATFORM = 'Web';
|
|
11
10
|
var IP_ADDRESS = '$remote';
|
|
12
11
|
var Context = /** @class */ (function () {
|
|
@@ -27,19 +26,33 @@ var Context = /** @class */ (function () {
|
|
|
27
26
|
return Promise.resolve(undefined);
|
|
28
27
|
};
|
|
29
28
|
Context.prototype.execute = function (context) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
30
|
+
var time, osName, osVersion, deviceModel, deviceVendor, event;
|
|
31
|
+
return (0, tslib_1.__generator)(this, function (_a) {
|
|
32
|
+
/**
|
|
33
|
+
* Manages user session triggered by new events
|
|
34
|
+
*/
|
|
35
|
+
if (!this.isSessionValid()) {
|
|
36
|
+
// Creates new session
|
|
37
|
+
this.config.sessionId = Date.now();
|
|
38
|
+
} // else use previously creates session
|
|
39
|
+
// Updates last event time to extend time-based session
|
|
40
|
+
this.config.lastEventTime = Date.now();
|
|
41
|
+
time = new Date().getTime();
|
|
42
|
+
osName = this.uaResult.browser.name;
|
|
43
|
+
osVersion = this.uaResult.browser.version;
|
|
44
|
+
deviceModel = this.uaResult.device.model || this.uaResult.os.name;
|
|
45
|
+
deviceVendor = this.uaResult.device.vendor;
|
|
46
|
+
event = (0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)((0, tslib_1.__assign)({ user_id: this.config.userId, device_id: this.config.deviceId, session_id: this.config.sessionId, time: time }, (this.config.appVersion && { app_version: this.config.appVersion })), (this.config.trackingOptions.platform && { platform: BROWSER_PLATFORM })), (this.config.trackingOptions.osName && { os_name: osName })), (this.config.trackingOptions.osVersion && { os_version: osVersion })), (this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor })), (this.config.trackingOptions.deviceModel && { device_model: deviceModel })), (this.config.trackingOptions.language && { language: (0, language_1.getLanguage)() })), (this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS })), { insert_id: (0, analytics_core_1.UUID)(), partner_id: this.config.partnerId, plan: this.config.plan }), context), { event_id: this.eventId++, library: this.library });
|
|
47
|
+
return [2 /*return*/, event];
|
|
48
|
+
});
|
|
41
49
|
});
|
|
42
50
|
};
|
|
51
|
+
Context.prototype.isSessionValid = function () {
|
|
52
|
+
var lastEventTime = this.config.lastEventTime || Date.now();
|
|
53
|
+
var timeSinceLastEvent = Date.now() - lastEventTime;
|
|
54
|
+
return timeSinceLastEvent < this.config.sessionTimeout;
|
|
55
|
+
};
|
|
43
56
|
return Context;
|
|
44
57
|
}());
|
|
45
58
|
exports.Context = Context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":";;;AAAA,8DAA4F;AAC5F,sFAA+C;AAC/C,4DAAiD;AACjD,8CAAgD;AAChD,sCAAqC;
|
|
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 '../utils/language';\nimport { VERSION } from '../version';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\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 /**\n * Manages user session triggered by new events\n */\n if (!this.isSessionValid()) {\n // Creates new session\n this.config.sessionId = Date.now();\n } // else use previously creates session\n // Updates last event time to extend time-based session\n this.config.lastEventTime = Date.now();\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 ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return event;\n }\n\n isSessionValid() {\n const lastEventTime = this.config.lastEventTime || Date.now();\n const timeSinceLastEvent = Date.now() - lastEventTime;\n return timeSinceLastEvent < this.config.sessionTimeout;\n }\n}\n"]}
|
|
@@ -1,6 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';
|
|
2
|
+
export declare class SessionManager implements ISessionManager {
|
|
3
|
+
private storage;
|
|
4
|
+
storageKey: string;
|
|
5
|
+
cache: UserSession;
|
|
6
|
+
isSessionCacheValid: boolean;
|
|
7
|
+
constructor(storage: Storage<UserSession>, apiKey: string);
|
|
8
|
+
/**
|
|
9
|
+
* load() must be called immediately after instantation
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* await new SessionManager(...).load();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
load(): Promise<this>;
|
|
16
|
+
setSession(session: Partial<UserSession>): void;
|
|
17
|
+
getSessionId(): number | undefined;
|
|
18
|
+
setSessionId(sessionId: number): void;
|
|
19
|
+
getDeviceId(): string | undefined;
|
|
20
|
+
setDeviceId(deviceId: string): void;
|
|
21
|
+
getUserId(): string | undefined;
|
|
22
|
+
setUserId(userId: string): void;
|
|
23
|
+
getLastEventTime(): number | undefined;
|
|
24
|
+
setLastEventTime(lastEventTime: number): void;
|
|
25
|
+
getOptOut(): boolean;
|
|
26
|
+
setOptOut(optOut: boolean): void;
|
|
27
|
+
}
|
|
6
28
|
//# sourceMappingURL=session-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGrG,qBAAa,cAAe,YAAW,eAAe;IAKxC,OAAO,CAAC,OAAO;IAJ3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,mBAAmB,UAAQ;gBAEP,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM;IAKjE;;;;;;OAMG;IACG,IAAI;IAOV,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAKxC,YAAY;IAWZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAM9B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIjC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,gBAAgB;IAIhB,gBAAgB,CAAC,aAAa,EAAE,MAAM;IAItC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;CAGjC"}
|
|
@@ -1,36 +1,84 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
lastEventTime: lastEventTime !== null && lastEventTime !== void 0 ? lastEventTime : (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime,
|
|
12
|
-
optOut: Boolean(config.optOut),
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
exports.updateCookies = updateCookies;
|
|
16
|
-
var checkSessionExpiry = function (config) {
|
|
17
|
-
var _a;
|
|
18
|
-
var cookieName = (0, exports.getCookieName)(config.apiKey);
|
|
19
|
-
var lastEventTime = (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime;
|
|
20
|
-
var now = Date.now();
|
|
21
|
-
if (lastEventTime && now - lastEventTime >= config.sessionTimeout) {
|
|
22
|
-
config.sessionId = now;
|
|
23
|
-
(0, exports.updateCookies)(config);
|
|
2
|
+
exports.SessionManager = void 0;
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var cookie_name_1 = require("./utils/cookie-name");
|
|
5
|
+
var SessionManager = /** @class */ (function () {
|
|
6
|
+
function SessionManager(storage, apiKey) {
|
|
7
|
+
this.storage = storage;
|
|
8
|
+
this.isSessionCacheValid = true;
|
|
9
|
+
this.storageKey = (0, cookie_name_1.getCookieName)(apiKey);
|
|
10
|
+
this.cache = { optOut: false };
|
|
24
11
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
/**
|
|
13
|
+
* load() must be called immediately after instantation
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* await new SessionManager(...).load();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
SessionManager.prototype.load = function () {
|
|
20
|
+
var _a;
|
|
21
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
22
|
+
var _b;
|
|
23
|
+
return (0, tslib_1.__generator)(this, function (_c) {
|
|
24
|
+
switch (_c.label) {
|
|
25
|
+
case 0:
|
|
26
|
+
_b = this;
|
|
27
|
+
return [4 /*yield*/, this.storage.get(this.storageKey)];
|
|
28
|
+
case 1:
|
|
29
|
+
_b.cache = (_a = (_c.sent())) !== null && _a !== void 0 ? _a : {
|
|
30
|
+
optOut: false,
|
|
31
|
+
};
|
|
32
|
+
return [2 /*return*/, this];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
SessionManager.prototype.setSession = function (session) {
|
|
38
|
+
this.cache = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this.cache), session);
|
|
39
|
+
void this.storage.set(this.storageKey, this.cache);
|
|
40
|
+
};
|
|
41
|
+
SessionManager.prototype.getSessionId = function () {
|
|
42
|
+
var _this = this;
|
|
43
|
+
this.isSessionCacheValid = true;
|
|
44
|
+
void this.storage.get(this.storageKey).then(function (userSession) {
|
|
45
|
+
// Checks if session id has been set since the last get
|
|
46
|
+
if (_this.isSessionCacheValid) {
|
|
47
|
+
_this.cache.sessionId = userSession === null || userSession === void 0 ? void 0 : userSession.sessionId;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
return this.cache.sessionId;
|
|
51
|
+
};
|
|
52
|
+
SessionManager.prototype.setSessionId = function (sessionId) {
|
|
53
|
+
// Flags session id has been set
|
|
54
|
+
this.isSessionCacheValid = false;
|
|
55
|
+
this.setSession({ sessionId: sessionId });
|
|
56
|
+
};
|
|
57
|
+
SessionManager.prototype.getDeviceId = function () {
|
|
58
|
+
return this.cache.deviceId;
|
|
59
|
+
};
|
|
60
|
+
SessionManager.prototype.setDeviceId = function (deviceId) {
|
|
61
|
+
this.setSession({ deviceId: deviceId });
|
|
62
|
+
};
|
|
63
|
+
SessionManager.prototype.getUserId = function () {
|
|
64
|
+
return this.cache.userId;
|
|
65
|
+
};
|
|
66
|
+
SessionManager.prototype.setUserId = function (userId) {
|
|
67
|
+
this.setSession({ userId: userId });
|
|
68
|
+
};
|
|
69
|
+
SessionManager.prototype.getLastEventTime = function () {
|
|
70
|
+
return this.cache.lastEventTime;
|
|
71
|
+
};
|
|
72
|
+
SessionManager.prototype.setLastEventTime = function (lastEventTime) {
|
|
73
|
+
this.setSession({ lastEventTime: lastEventTime });
|
|
74
|
+
};
|
|
75
|
+
SessionManager.prototype.getOptOut = function () {
|
|
76
|
+
return this.cache.optOut;
|
|
77
|
+
};
|
|
78
|
+
SessionManager.prototype.setOptOut = function (optOut) {
|
|
79
|
+
this.setSession({ optOut: optOut });
|
|
80
|
+
};
|
|
81
|
+
return SessionManager;
|
|
82
|
+
}());
|
|
83
|
+
exports.SessionManager = SessionManager;
|
|
36
84
|
//# sourceMappingURL=session-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":";;;AACA,mDAAqE;AAErE;IAKE,wBAAoB,OAA6B,EAAE,MAAc;QAA7C,YAAO,GAAP,OAAO,CAAsB;QAFjD,wBAAmB,GAAG,IAAI,CAAC;QAGzB,IAAI,CAAC,UAAU,GAAG,IAAA,2BAAa,EAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACG,6BAAI,GAAV;;;;;;;wBACE,KAAA,IAAI,CAAA;wBAAU,qBAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAArD,GAAK,KAAK,GAAG,MAAA,CAAC,SAAuC,CAAC,mCAAI;4BACxD,MAAM,EAAE,KAAK;yBACd,CAAC;wBACF,sBAAO,IAAI,EAAC;;;;KACb;IAED,mCAAU,GAAV,UAAW,OAA6B;QACtC,IAAI,CAAC,KAAK,mDAAQ,IAAI,CAAC,KAAK,GAAK,OAAO,CAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,qCAAY,GAAZ;QAAA,iBASC;QARC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,WAAW;YACtD,uDAAuD;YACvD,IAAI,KAAI,CAAC,mBAAmB,EAAE;gBAC5B,KAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,qCAAY,GAAZ,UAAa,SAAiB;QAC5B,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,oCAAW,GAAX;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,oCAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,yCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IAClC,CAAC;IAED,yCAAgB,GAAhB,UAAiB,aAAqB;QACpC,IAAI,CAAC,UAAU,CAAC,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,kCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,kCAAS,GAAT,UAAU,MAAe;QACvB,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;IAC9B,CAAC;IACH,qBAAC;AAAD,CAAC,AA7ED,IA6EC;AA7EY,wCAAc","sourcesContent":["import { UserSession, Storage, SessionManager as ISessionManager } from '@amplitude/analytics-types';\nimport { getCookieName as getStorageKey } from './utils/cookie-name';\n\nexport class SessionManager implements ISessionManager {\n storageKey: string;\n cache: UserSession;\n isSessionCacheValid = true;\n\n constructor(private storage: Storage<UserSession>, apiKey: string) {\n this.storageKey = getStorageKey(apiKey);\n this.cache = { optOut: false };\n }\n\n /**\n * load() must be called immediately after instantation\n *\n * ```ts\n * await new SessionManager(...).load();\n * ```\n */\n async load() {\n this.cache = (await this.storage.get(this.storageKey)) ?? {\n optOut: false,\n };\n return this;\n }\n\n setSession(session: Partial<UserSession>) {\n this.cache = { ...this.cache, ...session };\n void this.storage.set(this.storageKey, this.cache);\n }\n\n getSessionId() {\n this.isSessionCacheValid = true;\n void this.storage.get(this.storageKey).then((userSession) => {\n // Checks if session id has been set since the last get\n if (this.isSessionCacheValid) {\n this.cache.sessionId = userSession?.sessionId;\n }\n });\n return this.cache.sessionId;\n }\n\n setSessionId(sessionId: number) {\n // Flags session id has been set\n this.isSessionCacheValid = false;\n this.setSession({ sessionId });\n }\n\n getDeviceId(): string | undefined {\n return this.cache.deviceId;\n }\n\n setDeviceId(deviceId: string): void {\n this.setSession({ deviceId });\n }\n\n getUserId(): string | undefined {\n return this.cache.userId;\n }\n\n setUserId(userId: string): void {\n this.setSession({ userId });\n }\n\n getLastEventTime() {\n return this.cache.lastEventTime;\n }\n\n setLastEventTime(lastEventTime: number) {\n this.setSession({ lastEventTime });\n }\n\n getOptOut(): boolean {\n return this.cache.optOut;\n }\n\n setOptOut(optOut: boolean): void {\n this.setSession({ optOut });\n }\n}\n"]}
|
|
@@ -2,11 +2,11 @@ import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';
|
|
|
2
2
|
export declare class CookieStorage<T> implements Storage<T> {
|
|
3
3
|
options: CookieStorageOptions;
|
|
4
4
|
constructor(options?: CookieStorageOptions);
|
|
5
|
-
isEnabled(): boolean
|
|
6
|
-
get(key: string): T | undefined
|
|
7
|
-
getRaw(key: string): string | undefined
|
|
8
|
-
set(key: string, value: T | null): void
|
|
9
|
-
remove(key: string): void
|
|
10
|
-
reset(): void
|
|
5
|
+
isEnabled(): Promise<boolean>;
|
|
6
|
+
get(key: string): Promise<T | undefined>;
|
|
7
|
+
getRaw(key: string): Promise<string | undefined>;
|
|
8
|
+
set(key: string, value: T | null): Promise<void>;
|
|
9
|
+
remove(key: string): Promise<void>;
|
|
10
|
+
reset(): Promise<void>;
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;gBAElB,OAAO,CAAC,EAAE,oBAAoB;IAIpC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAShD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BhD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|