@amplitude/analytics-browser 0.2.4 → 0.4.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/LICENSE +21 -0
- package/README.md +8 -22
- package/lib/cjs/attribution.d.ts +1 -1
- package/lib/cjs/attribution.d.ts.map +1 -1
- package/lib/cjs/attribution.js +5 -17
- package/lib/cjs/attribution.js.map +1 -1
- package/lib/cjs/browser-client.d.ts +96 -81
- package/lib/cjs/browser-client.d.ts.map +1 -1
- package/lib/cjs/browser-client.js +194 -196
- package/lib/cjs/browser-client.js.map +1 -1
- package/lib/cjs/config.d.ts +11 -7
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +33 -34
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/cookie-migration/index.d.ts +5 -0
- package/lib/cjs/cookie-migration/index.d.ts.map +1 -0
- package/lib/cjs/cookie-migration/index.js +55 -0
- package/lib/cjs/cookie-migration/index.js.map +1 -0
- package/lib/cjs/plugins/context.js +1 -1
- package/lib/cjs/plugins/context.js.map +1 -1
- package/lib/cjs/session-manager.d.ts +3 -3
- package/lib/cjs/session-manager.d.ts.map +1 -1
- package/lib/cjs/session-manager.js +10 -16
- package/lib/cjs/session-manager.js.map +1 -1
- package/lib/cjs/storage/cookie.d.ts +2 -2
- package/lib/cjs/storage/cookie.d.ts.map +1 -1
- package/lib/cjs/storage/cookie.js +16 -11
- package/lib/cjs/storage/cookie.js.map +1 -1
- package/lib/cjs/storage/local-storage.d.ts +1 -0
- package/lib/cjs/storage/local-storage.d.ts.map +1 -1
- package/lib/cjs/storage/local-storage.js +4 -1
- package/lib/cjs/storage/local-storage.js.map +1 -1
- package/lib/cjs/storage/memory.d.ts +1 -0
- package/lib/cjs/storage/memory.d.ts.map +1 -1
- package/lib/cjs/storage/memory.js +4 -0
- package/lib/cjs/storage/memory.js.map +1 -1
- package/lib/cjs/storage/utm-cookie.js +1 -1
- package/lib/cjs/storage/utm-cookie.js.map +1 -1
- package/lib/cjs/transports/fetch.d.ts.map +1 -1
- package/lib/cjs/transports/fetch.js +0 -2
- package/lib/cjs/transports/fetch.js.map +1 -1
- package/lib/cjs/utils/snippet-helper.d.ts +1 -0
- package/lib/cjs/utils/snippet-helper.d.ts.map +1 -1
- package/lib/cjs/utils/snippet-helper.js +1 -0
- package/lib/cjs/utils/snippet-helper.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.d.ts +1 -1
- package/lib/esm/attribution.d.ts.map +1 -1
- package/lib/esm/attribution.js +4 -16
- package/lib/esm/attribution.js.map +1 -1
- package/lib/esm/browser-client.d.ts +96 -81
- package/lib/esm/browser-client.d.ts.map +1 -1
- package/lib/esm/browser-client.js +197 -182
- package/lib/esm/browser-client.js.map +1 -1
- package/lib/esm/config.d.ts +11 -7
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +28 -29
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/cookie-migration/index.d.ts +5 -0
- package/lib/esm/cookie-migration/index.d.ts.map +1 -0
- package/lib/esm/cookie-migration/index.js +50 -0
- package/lib/esm/cookie-migration/index.js.map +1 -0
- package/lib/esm/plugins/context.js +2 -2
- package/lib/esm/plugins/context.js.map +1 -1
- package/lib/esm/session-manager.d.ts +3 -3
- package/lib/esm/session-manager.d.ts.map +1 -1
- package/lib/esm/session-manager.js +8 -14
- package/lib/esm/session-manager.js.map +1 -1
- package/lib/esm/storage/cookie.d.ts +2 -2
- package/lib/esm/storage/cookie.d.ts.map +1 -1
- package/lib/esm/storage/cookie.js +16 -11
- package/lib/esm/storage/cookie.js.map +1 -1
- package/lib/esm/storage/local-storage.d.ts +1 -0
- package/lib/esm/storage/local-storage.d.ts.map +1 -1
- package/lib/esm/storage/local-storage.js +4 -1
- package/lib/esm/storage/local-storage.js.map +1 -1
- package/lib/esm/storage/memory.d.ts +1 -0
- package/lib/esm/storage/memory.d.ts.map +1 -1
- package/lib/esm/storage/memory.js +4 -0
- package/lib/esm/storage/memory.js.map +1 -1
- package/lib/esm/storage/utm-cookie.js +1 -1
- package/lib/esm/storage/utm-cookie.js.map +1 -1
- package/lib/esm/transports/fetch.d.ts.map +1 -1
- package/lib/esm/transports/fetch.js +0 -2
- package/lib/esm/transports/fetch.js.map +1 -1
- package/lib/esm/utils/snippet-helper.d.ts +1 -0
- package/lib/esm/utils/snippet-helper.d.ts.map +1 -1
- package/lib/esm/utils/snippet-helper.js +1 -0
- package/lib/esm/utils/snippet-helper.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-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 +5 -0
- package/lib/scripts/amplitude-snippet-min.js +1 -0
- package/package.json +13 -9
package/lib/esm/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __assign, __extends } from "tslib";
|
|
2
2
|
import { TransportType, } from '@amplitude/analytics-types';
|
|
3
|
-
import { Config
|
|
3
|
+
import { Config } from '@amplitude/analytics-core';
|
|
4
4
|
import { CookieStorage } from './storage/cookie';
|
|
5
5
|
import { FetchTransport } from './transports/fetch';
|
|
6
6
|
import { LocalStorage } from './storage/local-storage';
|
|
@@ -10,10 +10,11 @@ import { getQueryParams } from './utils/query-params';
|
|
|
10
10
|
import { UUID } from './utils/uuid';
|
|
11
11
|
import { XHRTransport } from './transports/xhr';
|
|
12
12
|
import { SendBeaconTransport } from './transports/send-beacon';
|
|
13
|
-
export var
|
|
13
|
+
export var getDefaultConfig = function () { return ({
|
|
14
14
|
cookieExpiration: 365,
|
|
15
15
|
cookieSameSite: 'Lax',
|
|
16
16
|
cookieSecure: false,
|
|
17
|
+
cookieStorage: new MemoryStorage(),
|
|
17
18
|
disableCookies: false,
|
|
18
19
|
domain: '',
|
|
19
20
|
includeGclid: true,
|
|
@@ -21,6 +22,7 @@ export var defaultConfig = {
|
|
|
21
22
|
includeReferrer: true,
|
|
22
23
|
includeUtm: true,
|
|
23
24
|
sessionTimeout: 30 * 60 * 1000,
|
|
25
|
+
storageProvider: new MemoryStorage(),
|
|
24
26
|
trackingOptions: {
|
|
25
27
|
city: true,
|
|
26
28
|
country: true,
|
|
@@ -37,43 +39,43 @@ export var defaultConfig = {
|
|
|
37
39
|
versionName: true,
|
|
38
40
|
},
|
|
39
41
|
transportProvider: new FetchTransport(),
|
|
40
|
-
};
|
|
42
|
+
}); };
|
|
41
43
|
var BrowserConfig = /** @class */ (function (_super) {
|
|
42
44
|
__extends(BrowserConfig, _super);
|
|
43
45
|
function BrowserConfig(apiKey, userId, options) {
|
|
44
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
46
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
45
47
|
var _this = this;
|
|
46
|
-
var
|
|
47
|
-
|
|
48
|
-
var transportProvider = (_a = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _a !== void 0 ? _a : createTransport(options === null || options === void 0 ? void 0 : options.transport);
|
|
49
|
-
var sessionTimeout = (_b = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _b !== void 0 ? _b : defaultConfig.sessionTimeout;
|
|
50
|
-
var trackingOptions = __assign(__assign({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions);
|
|
51
|
-
var cookieName = getCookieName(apiKey);
|
|
52
|
-
var cookies = cookieStorage.get(cookieName);
|
|
53
|
-
var queryParams = getQueryParams();
|
|
54
|
-
_this = _super.call(this, __assign(__assign({}, options), { apiKey: apiKey, storageProvider: storageProvider, transportProvider: transportProvider, userId: userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, deviceId: createDeviceId(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId), sessionId: createSessionId(cookies === null || cookies === void 0 ? void 0 : cookies.sessionId, options === null || options === void 0 ? void 0 : options.sessionId, cookies === null || cookies === void 0 ? void 0 : cookies.lastEventTime, sessionTimeout), optOut: Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut) })) || this;
|
|
48
|
+
var defaultConfig = getDefaultConfig();
|
|
49
|
+
_this = _super.call(this, __assign(__assign({}, options), { apiKey: apiKey, userId: userId, optOut: Boolean(options === null || options === void 0 ? void 0 : options.optOut), storageProvider: (_a = options === null || options === void 0 ? void 0 : options.storageProvider) !== null && _a !== void 0 ? _a : defaultConfig.storageProvider, transportProvider: (_b = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _b !== void 0 ? _b : defaultConfig.transportProvider })) || this;
|
|
55
50
|
_this.cookieExpiration = (_c = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _c !== void 0 ? _c : defaultConfig.cookieExpiration;
|
|
56
51
|
_this.cookieSameSite = (_d = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _d !== void 0 ? _d : defaultConfig.cookieSameSite;
|
|
57
52
|
_this.cookieSecure = (_e = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _e !== void 0 ? _e : defaultConfig.cookieSecure;
|
|
58
|
-
_this.cookieStorage = cookieStorage;
|
|
59
|
-
_this.disableCookies = (
|
|
60
|
-
_this.domain = (
|
|
61
|
-
_this.includeGclid = (
|
|
62
|
-
_this.includeFbclid = (
|
|
63
|
-
_this.includeReferrer = (
|
|
64
|
-
_this.includeUtm = (
|
|
65
|
-
_this.sessionTimeout = sessionTimeout;
|
|
66
|
-
_this.trackingOptions = trackingOptions;
|
|
53
|
+
_this.cookieStorage = (_f = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _f !== void 0 ? _f : defaultConfig.cookieStorage;
|
|
54
|
+
_this.disableCookies = (_g = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _g !== void 0 ? _g : defaultConfig.disableCookies;
|
|
55
|
+
_this.domain = (_h = options === null || options === void 0 ? void 0 : options.domain) !== null && _h !== void 0 ? _h : defaultConfig.domain;
|
|
56
|
+
_this.includeGclid = (_j = options === null || options === void 0 ? void 0 : options.includeGclid) !== null && _j !== void 0 ? _j : defaultConfig.includeGclid;
|
|
57
|
+
_this.includeFbclid = (_k = options === null || options === void 0 ? void 0 : options.includeFbclid) !== null && _k !== void 0 ? _k : defaultConfig.includeFbclid;
|
|
58
|
+
_this.includeReferrer = (_l = options === null || options === void 0 ? void 0 : options.includeReferrer) !== null && _l !== void 0 ? _l : defaultConfig.includeReferrer;
|
|
59
|
+
_this.includeUtm = (_m = options === null || options === void 0 ? void 0 : options.includeUtm) !== null && _m !== void 0 ? _m : defaultConfig.includeUtm;
|
|
60
|
+
_this.sessionTimeout = (_o = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _o !== void 0 ? _o : defaultConfig.sessionTimeout;
|
|
61
|
+
_this.trackingOptions = (_p = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _p !== void 0 ? _p : defaultConfig.trackingOptions;
|
|
67
62
|
return _this;
|
|
68
63
|
}
|
|
69
64
|
return BrowserConfig;
|
|
70
65
|
}(Config));
|
|
71
66
|
export { BrowserConfig };
|
|
72
|
-
export var
|
|
73
|
-
|
|
67
|
+
export var useBrowserConfig = function (apiKey, userId, options) {
|
|
68
|
+
var _a, _b, _c;
|
|
69
|
+
var defaultConfig = getDefaultConfig();
|
|
70
|
+
var cookieStorage = createCookieStorage(options);
|
|
71
|
+
var cookieName = getCookieName(apiKey);
|
|
72
|
+
var cookies = cookieStorage.get(cookieName);
|
|
73
|
+
var queryParams = getQueryParams();
|
|
74
|
+
var sessionTimeout = (_a = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _a !== void 0 ? _a : defaultConfig.sessionTimeout;
|
|
75
|
+
return new BrowserConfig(apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, __assign(__assign({}, options), { cookieStorage: cookieStorage, sessionTimeout: sessionTimeout, deviceId: createDeviceId(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId), optOut: (_b = options === null || options === void 0 ? void 0 : options.optOut) !== null && _b !== void 0 ? _b : Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut), sessionId: createSessionId(cookies === null || cookies === void 0 ? void 0 : cookies.sessionId, options === null || options === void 0 ? void 0 : options.sessionId, cookies === null || cookies === void 0 ? void 0 : cookies.lastEventTime, sessionTimeout), storageProvider: createEventsStorage(options), trackingOptions: __assign(__assign({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions), transportProvider: (_c = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _c !== void 0 ? _c : createTransport(options === null || options === void 0 ? void 0 : options.transport) }));
|
|
74
76
|
};
|
|
75
77
|
export var createCookieStorage = function (overrides, baseConfig) {
|
|
76
|
-
if (baseConfig === void 0) { baseConfig =
|
|
78
|
+
if (baseConfig === void 0) { baseConfig = getDefaultConfig(); }
|
|
77
79
|
var options = __assign(__assign({}, baseConfig), overrides);
|
|
78
80
|
var cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
|
|
79
81
|
if (!cookieStorage || !cookieStorage.isEnabled()) {
|
|
@@ -121,9 +123,6 @@ export var createTransport = function (transport) {
|
|
|
121
123
|
if (transport === TransportType.SendBeacon) {
|
|
122
124
|
return new SendBeaconTransport();
|
|
123
125
|
}
|
|
124
|
-
return
|
|
125
|
-
};
|
|
126
|
-
export var getConfig = function () {
|
|
127
|
-
return _getConfig();
|
|
126
|
+
return getDefaultConfig().transportProvider;
|
|
128
127
|
};
|
|
129
128
|
//# sourceMappingURL=config.js.map
|
package/lib/esm/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n} from '@amplitude/analytics-types';\nimport { Config, getConfig as _getConfig } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { MemoryStorage } from './storage/memory';\nimport { getCookieName } from './session-manager';\nimport { getQueryParams } from './utils/query-params';\nimport { UUID } from './utils/uuid';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\n\nexport const defaultConfig = {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n disableCookies: false,\n domain: '',\n includeGclid: true,\n includeFbclid: true,\n includeReferrer: true,\n includeUtm: true,\n sessionTimeout: 30 * 60 * 1000,\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n },\n transportProvider: new FetchTransport(),\n};\n\nexport class BrowserConfig extends Config implements IBrowserConfig {\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n includeUtm: boolean;\n includeReferrer: boolean;\n includeGclid: boolean;\n includeFbclid: boolean;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const cookieStorage = createCookieStorage(options);\n const storageProvider = createEventsStorage(options);\n const transportProvider = options?.transportProvider ?? createTransport(options?.transport);\n const sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n const trackingOptions = { ...defaultConfig.trackingOptions, ...options?.trackingOptions };\n const cookieName = getCookieName(apiKey);\n const cookies = cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n\n super({\n ...options,\n apiKey,\n storageProvider,\n transportProvider,\n userId: userId ?? cookies?.userId,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n sessionId: createSessionId(cookies?.sessionId, options?.sessionId, cookies?.lastEventTime, sessionTimeout),\n optOut: Boolean(cookies?.optOut),\n });\n\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.cookieStorage = cookieStorage;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.includeGclid = options?.includeGclid ?? defaultConfig.includeGclid;\n this.includeFbclid = options?.includeFbclid ?? defaultConfig.includeFbclid;\n this.includeReferrer = options?.includeReferrer ?? defaultConfig.includeReferrer;\n this.includeUtm = options?.includeUtm ?? defaultConfig.includeUtm;\n this.sessionTimeout = sessionTimeout;\n this.trackingOptions = trackingOptions;\n }\n}\n\nexport const createConfig = (apiKey: string, userId?: string, overrides?: BrowserOptions): IBrowserConfig => {\n return new BrowserConfig(apiKey, userId, overrides);\n};\n\nexport const createCookieStorage = (overrides?: BrowserOptions, baseConfig = defaultConfig) => {\n const options = { ...baseConfig, ...overrides };\n let cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !cookieStorage.isEnabled()) {\n cookieStorage = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !cookieStorage.isEnabled()) {\n cookieStorage = new LocalStorage();\n if (!cookieStorage.isEnabled()) {\n cookieStorage = new MemoryStorage();\n }\n }\n }\n return cookieStorage;\n};\n\nexport const createEventsStorage = (overrides?: BrowserOptions) => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !eventsStorage.isEnabled()) {\n eventsStorage = new LocalStorage();\n if (!eventsStorage.isEnabled()) {\n eventsStorage = new MemoryStorage();\n }\n }\n return eventsStorage;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const createSessionId = (idFromCookies = 0, idFromOptions = 0, lastEventTime = 0, sessionTimeout: number) => {\n if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {\n return idFromCookies;\n }\n return idFromOptions ? idFromOptions : Date.now();\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return defaultConfig.transportProvider;\n};\n\nexport const getConfig = () => {\n return _getConfig() as BrowserConfig;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Event,\n BrowserOptions,\n BrowserConfig as IBrowserConfig,\n Storage,\n TrackingOptions,\n TransportType,\n UserSession,\n} from '@amplitude/analytics-types';\nimport { Config } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { MemoryStorage } from './storage/memory';\nimport { getCookieName } from './session-manager';\nimport { getQueryParams } from './utils/query-params';\nimport { UUID } from './utils/uuid';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\n\nexport const getDefaultConfig = () => ({\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage: new MemoryStorage<UserSession>(),\n disableCookies: false,\n domain: '',\n includeGclid: true,\n includeFbclid: true,\n includeReferrer: true,\n includeUtm: true,\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n },\n transportProvider: new FetchTransport(),\n});\n\nexport class BrowserConfig extends Config implements IBrowserConfig {\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n includeGclid: boolean;\n includeFbclid: boolean;\n includeReferrer: boolean;\n includeUtm: boolean;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n userId,\n optOut: Boolean(options?.optOut),\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.includeGclid = options?.includeGclid ?? defaultConfig.includeGclid;\n this.includeFbclid = options?.includeFbclid ?? defaultConfig.includeFbclid;\n this.includeReferrer = options?.includeReferrer ?? defaultConfig.includeReferrer;\n this.includeUtm = options?.includeUtm ?? defaultConfig.includeUtm;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n }\n}\n\nexport const useBrowserConfig = (apiKey: string, userId?: string, options?: BrowserOptions): IBrowserConfig => {\n const defaultConfig = getDefaultConfig();\n const cookieStorage = createCookieStorage(options);\n const cookieName = getCookieName(apiKey);\n const cookies = cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n return new BrowserConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionTimeout,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: createSessionId(cookies?.sessionId, options?.sessionId, cookies?.lastEventTime, sessionTimeout),\n storageProvider: createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? createTransport(options?.transport),\n });\n};\n\nexport const createCookieStorage = (overrides?: BrowserOptions, baseConfig = getDefaultConfig()) => {\n const options = { ...baseConfig, ...overrides };\n let cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !cookieStorage.isEnabled()) {\n cookieStorage = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !cookieStorage.isEnabled()) {\n cookieStorage = new LocalStorage();\n if (!cookieStorage.isEnabled()) {\n cookieStorage = new MemoryStorage();\n }\n }\n }\n return cookieStorage;\n};\n\nexport const createEventsStorage = (overrides?: BrowserOptions) => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !eventsStorage.isEnabled()) {\n eventsStorage = new LocalStorage();\n if (!eventsStorage.isEnabled()) {\n eventsStorage = new MemoryStorage();\n }\n }\n return eventsStorage;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const createSessionId = (idFromCookies = 0, idFromOptions = 0, lastEventTime = 0, sessionTimeout: number) => {\n if (idFromCookies && Date.now() - lastEventTime < sessionTimeout) {\n return idFromCookies;\n }\n return idFromOptions ? idFromOptions : Date.now();\n};\n\nexport const createTransport = (transport?: TransportType) => {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return getDefaultConfig().transportProvider;\n};\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BrowserOptions, UserSession } from '@amplitude/analytics-types';
|
|
2
|
+
export declare const parseOldCookies: (apiKey: string, options?: BrowserOptions | undefined) => UserSession;
|
|
3
|
+
export declare const parseTime: (num: string) => number | undefined;
|
|
4
|
+
export declare const decode: (value?: string | undefined) => string | undefined;
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAKlF,eAAO,MAAM,eAAe,WAAY,MAAM,2CAA6B,WA6B1E,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,kCAAqB,MAAM,GAAG,SAShD,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { __read } from "tslib";
|
|
2
|
+
import { getOldCookieName } from '../session-manager';
|
|
3
|
+
import { LocalStorage } from '../storage/local-storage';
|
|
4
|
+
import { CookieStorage } from '../storage/cookie';
|
|
5
|
+
export var parseOldCookies = function (apiKey, options) {
|
|
6
|
+
var storage = new CookieStorage();
|
|
7
|
+
if (!storage.isEnabled() || (options === null || options === void 0 ? void 0 : options.disableCookies)) {
|
|
8
|
+
storage = new LocalStorage();
|
|
9
|
+
}
|
|
10
|
+
if (!storage.isEnabled()) {
|
|
11
|
+
return {
|
|
12
|
+
optOut: false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
var oldCookieName = getOldCookieName(apiKey);
|
|
16
|
+
var cookies = storage.getRaw(oldCookieName);
|
|
17
|
+
if (!cookies) {
|
|
18
|
+
return {
|
|
19
|
+
optOut: false,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
storage.remove(oldCookieName);
|
|
23
|
+
var _a = __read(cookies.split('.'), 5), deviceId = _a[0], userId = _a[1], optOut = _a[2], sessionId = _a[3], lastEventTime = _a[4];
|
|
24
|
+
return {
|
|
25
|
+
deviceId: deviceId,
|
|
26
|
+
userId: decode(userId),
|
|
27
|
+
sessionId: parseTime(sessionId),
|
|
28
|
+
lastEventTime: parseTime(lastEventTime),
|
|
29
|
+
optOut: Boolean(optOut),
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export var parseTime = function (num) {
|
|
33
|
+
var integer = parseInt(num, 32);
|
|
34
|
+
if (isNaN(integer)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return integer;
|
|
38
|
+
};
|
|
39
|
+
export var decode = function (value) {
|
|
40
|
+
if (!atob || !escape || !value) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
return decodeURIComponent(escape(atob(value)));
|
|
45
|
+
}
|
|
46
|
+
catch (_a) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,CAAC,IAAM,eAAe,GAAG,UAAC,MAAc,EAAE,OAAwB;IACtE,IAAI,OAAO,GAAoB,IAAI,aAAa,EAAU,CAAC;IAC3D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAA,EAAE;QACnD,OAAO,GAAG,IAAI,YAAY,EAAU,CAAC;KACtC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;QACxB,OAAO;YACL,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IAED,IAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;YACL,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IAED,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACxB,IAAA,KAAA,OAAuD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,EAAxE,QAAQ,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,SAAS,QAAA,EAAE,aAAa,QAAsB,CAAC;IAChF,OAAO;QACL,QAAQ,UAAA;QACR,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;QAC/B,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;KACxB,CAAC;AACJ,CAAC,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, Storage, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName } from '../session-manager';\nimport { LocalStorage } from '../storage/local-storage';\nimport { CookieStorage } from '../storage/cookie';\n\nexport const parseOldCookies = (apiKey: string, options?: BrowserOptions): UserSession => {\n let storage: Storage<string> = new CookieStorage<string>();\n if (!storage.isEnabled() || options?.disableCookies) {\n storage = new LocalStorage<string>();\n }\n if (!storage.isEnabled()) {\n return {\n optOut: false,\n };\n }\n\n const oldCookieName = getOldCookieName(apiKey);\n const cookies = storage.getRaw(oldCookieName);\n\n if (!cookies) {\n return {\n optOut: false,\n };\n }\n\n 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"]}
|
|
@@ -4,7 +4,7 @@ import UAParser from '@amplitude/ua-parser-js';
|
|
|
4
4
|
import { UUID } from '../utils/uuid';
|
|
5
5
|
import { getLanguage } from '../utils/language';
|
|
6
6
|
import { VERSION } from '../version';
|
|
7
|
-
import { checkSessionExpiry,
|
|
7
|
+
import { checkSessionExpiry, updateCookies } from '../session-manager';
|
|
8
8
|
var BROWSER_PLATFORM = 'Web';
|
|
9
9
|
var IP_ADDRESS = '$remote';
|
|
10
10
|
var Context = /** @class */ (function () {
|
|
@@ -33,7 +33,7 @@ var Context = /** @class */ (function () {
|
|
|
33
33
|
var deviceModel = _this.uaResult.device.model || _this.uaResult.os.name;
|
|
34
34
|
var deviceVendor = _this.uaResult.device.vendor;
|
|
35
35
|
checkSessionExpiry(_this.config);
|
|
36
|
-
|
|
36
|
+
updateCookies(_this.config, time);
|
|
37
37
|
var contextEvent = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__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: getLanguage() })), (_this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS })), { insert_id: UUID(), partner_id: _this.config.partnerId }), context), { event_id: _this.eventId++, library: _this.library });
|
|
38
38
|
return resolve(contextEvent);
|
|
39
39
|
});
|
|
@@ -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,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,
|
|
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 '../utils/uuid';\nimport { getLanguage } from '../utils/language';\nimport { VERSION } from '../version';\nimport { checkSessionExpiry, updateCookies } from '../session-manager';\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 return Promise.resolve(undefined);\n }\n\n execute(context: Event): Promise<Event> {\n return new Promise((resolve) => {\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 checkSessionExpiry(this.config);\n updateCookies(this.config, time);\n const contextEvent: 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 ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return resolve(contextEvent);\n });\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BrowserConfig } from '@amplitude/analytics-types';
|
|
2
|
-
export declare const updateCookies: (config: BrowserConfig) => void;
|
|
3
|
-
export declare const updateLastEventTime: (config: BrowserConfig, lastEventTime: number) => void;
|
|
2
|
+
export declare const updateCookies: (config: BrowserConfig, lastEventTime?: number | undefined) => void;
|
|
4
3
|
export declare const checkSessionExpiry: (config: BrowserConfig) => void;
|
|
5
|
-
export declare const getCookieName: (apiKey: string) => string;
|
|
4
|
+
export declare const getCookieName: (apiKey: string, limit?: number) => string;
|
|
5
|
+
export declare const getOldCookieName: (apiKey: string) => string;
|
|
6
6
|
//# 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,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,eAAO,MAAM,aAAa,WAAY,aAAa,
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,eAAO,MAAM,aAAa,WAAY,aAAa,6CASlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,WAAY,aAAa,SAQvD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,MAAM,2BAE3C,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,WAE9C,CAAC"}
|
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';
|
|
2
|
-
export var updateCookies = function (config) {
|
|
2
|
+
export var updateCookies = function (config, lastEventTime) {
|
|
3
3
|
var _a;
|
|
4
4
|
var cookieName = getCookieName(config.apiKey);
|
|
5
5
|
config.cookieStorage.set(cookieName, {
|
|
6
6
|
userId: config.userId,
|
|
7
7
|
deviceId: config.deviceId,
|
|
8
8
|
sessionId: config.sessionId,
|
|
9
|
-
lastEventTime: (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime,
|
|
10
|
-
optOut: Boolean(config.optOut),
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
export var updateLastEventTime = function (config, lastEventTime) {
|
|
14
|
-
var cookieName = getCookieName(config.apiKey);
|
|
15
|
-
config.cookieStorage.set(cookieName, {
|
|
16
|
-
userId: config.userId,
|
|
17
|
-
deviceId: config.deviceId,
|
|
18
|
-
sessionId: config.sessionId,
|
|
19
|
-
lastEventTime: lastEventTime,
|
|
9
|
+
lastEventTime: lastEventTime !== null && lastEventTime !== void 0 ? lastEventTime : (_a = config.cookieStorage.get(cookieName)) === null || _a === void 0 ? void 0 : _a.lastEventTime,
|
|
20
10
|
optOut: Boolean(config.optOut),
|
|
21
11
|
});
|
|
22
12
|
};
|
|
@@ -30,7 +20,11 @@ export var checkSessionExpiry = function (config) {
|
|
|
30
20
|
updateCookies(config);
|
|
31
21
|
}
|
|
32
22
|
};
|
|
33
|
-
export var getCookieName = function (apiKey) {
|
|
34
|
-
|
|
23
|
+
export var getCookieName = function (apiKey, limit) {
|
|
24
|
+
if (limit === void 0) { limit = 10; }
|
|
25
|
+
return "".concat(AMPLITUDE_PREFIX, "_").concat(apiKey.substring(0, limit));
|
|
26
|
+
};
|
|
27
|
+
export var getOldCookieName = function (apiKey) {
|
|
28
|
+
return "".concat(AMPLITUDE_PREFIX.toLowerCase(), "_").concat(apiKey.substring(0, 6));
|
|
35
29
|
};
|
|
36
30
|
//# sourceMappingURL=session-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAqB;;
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAqB,EAAE,aAAsB;;IACzE,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,MAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,aAAa;QACnF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAAC,MAAqB;;IACtD,IAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,IAAM,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,0CAAE,aAAa,CAAC;IAC1E,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,aAAa,IAAI,GAAG,GAAG,aAAa,IAAI,MAAM,CAAC,cAAc,EAAE;QACjE,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QACvB,aAAa,CAAC,MAAM,CAAC,CAAC;KACvB;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,MAAc,EAAE,KAAU;IAAV,sBAAA,EAAA,UAAU;IACtD,OAAO,UAAG,gBAAgB,cAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAE,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,MAAc;IAC7C,OAAO,UAAG,gBAAgB,CAAC,WAAW,EAAE,cAAI,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC;AACvE,CAAC,CAAC","sourcesContent":["import { BrowserConfig } from '@amplitude/analytics-types';\nimport { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\n\nexport const updateCookies = (config: BrowserConfig, lastEventTime?: number) => {\n const cookieName = getCookieName(config.apiKey);\n config.cookieStorage.set(cookieName, {\n userId: config.userId,\n deviceId: config.deviceId,\n sessionId: config.sessionId,\n lastEventTime: lastEventTime ?? config.cookieStorage.get(cookieName)?.lastEventTime,\n optOut: Boolean(config.optOut),\n });\n};\n\nexport const checkSessionExpiry = (config: BrowserConfig) => {\n const cookieName = getCookieName(config.apiKey);\n const lastEventTime = config.cookieStorage.get(cookieName)?.lastEventTime;\n const now = Date.now();\n if (lastEventTime && now - lastEventTime >= config.sessionTimeout) {\n config.sessionId = now;\n updateCookies(config);\n }\n};\n\nexport const getCookieName = (apiKey: string, limit = 10) => {\n return `${AMPLITUDE_PREFIX}_${apiKey.substring(0, limit)}`;\n};\n\nexport const getOldCookieName = (apiKey: string) => {\n return `${AMPLITUDE_PREFIX.toLowerCase()}_${apiKey.substring(0, 6)}`;\n};\n"]}
|
|
@@ -4,8 +4,8 @@ export declare class CookieStorage<T> implements Storage<T> {
|
|
|
4
4
|
constructor(options?: CookieStorageOptions);
|
|
5
5
|
isEnabled(): boolean;
|
|
6
6
|
get(key: string): T | undefined;
|
|
7
|
-
|
|
8
|
-
set(key: string, value: T | null
|
|
7
|
+
getRaw(key: string): string | undefined;
|
|
8
|
+
set(key: string, value: T | null): void;
|
|
9
9
|
remove(key: string): void;
|
|
10
10
|
reset(): void;
|
|
11
11
|
}
|
|
@@ -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;IAI1C,SAAS;IAqBT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;
|
|
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;IAI1C,SAAS;IAqBT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IASvC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IA8BhC,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
|
|
@@ -25,17 +25,20 @@ var CookieStorage = /** @class */ (function () {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
CookieStorage.prototype.get = function (key) {
|
|
28
|
+
var value = this.getRaw(key);
|
|
29
|
+
if (!value) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
28
32
|
try {
|
|
29
|
-
var value = this.findByKey(key);
|
|
30
33
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
31
|
-
return
|
|
34
|
+
return JSON.parse(value);
|
|
32
35
|
}
|
|
33
36
|
catch (_a) {
|
|
34
37
|
/* istanbul ignore next */
|
|
35
38
|
return undefined;
|
|
36
39
|
}
|
|
37
40
|
};
|
|
38
|
-
CookieStorage.prototype.
|
|
41
|
+
CookieStorage.prototype.getRaw = function (key) {
|
|
39
42
|
var cookie = window.document.cookie.split('; ');
|
|
40
43
|
var match = cookie.find(function (c) { return c.indexOf(key + '=') === 0; });
|
|
41
44
|
if (!match) {
|
|
@@ -43,9 +46,11 @@ var CookieStorage = /** @class */ (function () {
|
|
|
43
46
|
}
|
|
44
47
|
return match.substring(key.length + 1);
|
|
45
48
|
};
|
|
46
|
-
CookieStorage.prototype.set = function (key, value
|
|
49
|
+
CookieStorage.prototype.set = function (key, value) {
|
|
50
|
+
var _a;
|
|
47
51
|
try {
|
|
48
|
-
var
|
|
52
|
+
var expirationDays = (_a = this.options.expirationDays) !== null && _a !== void 0 ? _a : 0;
|
|
53
|
+
var expires = value !== null ? expirationDays : -1;
|
|
49
54
|
var expireDate = undefined;
|
|
50
55
|
if (expires) {
|
|
51
56
|
var date = new Date();
|
|
@@ -57,18 +62,18 @@ var CookieStorage = /** @class */ (function () {
|
|
|
57
62
|
str += "; expires=".concat(expireDate.toUTCString());
|
|
58
63
|
}
|
|
59
64
|
str += '; path=/';
|
|
60
|
-
if (options
|
|
61
|
-
str += "; domain=".concat(options.domain);
|
|
65
|
+
if (this.options.domain) {
|
|
66
|
+
str += "; domain=".concat(this.options.domain);
|
|
62
67
|
}
|
|
63
|
-
if (options
|
|
68
|
+
if (this.options.secure) {
|
|
64
69
|
str += '; Secure';
|
|
65
70
|
}
|
|
66
|
-
if (options
|
|
67
|
-
str += "; SameSite=".concat(options.sameSite);
|
|
71
|
+
if (this.options.sameSite) {
|
|
72
|
+
str += "; SameSite=".concat(this.options.sameSite);
|
|
68
73
|
}
|
|
69
74
|
window.document.cookie = str;
|
|
70
75
|
}
|
|
71
|
-
catch (
|
|
76
|
+
catch (_b) {
|
|
72
77
|
//
|
|
73
78
|
}
|
|
74
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":";AAEA;IAGE,uBAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,gBAAQ,OAAO,CAAE,CAAC;IAChC,CAAC;IAED,iCAAS,GAAT;QACE,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAM,YAAY,GAAG,IAAI,aAAa,EAAU,CAAC;QACjD,IAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI;YACF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,KAAK,CAAC;SACd;gBAAS;YACR,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW;QACb,
|
|
1
|
+
{"version":3,"file":"cookie.js","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"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","sourcesContent":["import { Storage, CookieStorageOptions } from '@amplitude/analytics-types';\n\nexport class CookieStorage<T> implements Storage<T> {\n options: CookieStorageOptions;\n\n constructor(options?: CookieStorageOptions) {\n this.options = { ...options };\n }\n\n isEnabled() {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new CookieStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n const value = this.getRaw(key);\n if (!value) {\n return undefined;\n }\n try {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n getRaw(key: string): string | undefined {\n const cookie = window.document.cookie.split('; ');\n const match = cookie.find((c) => c.indexOf(key + '=') === 0);\n if (!match) {\n return undefined;\n }\n return match.substring(key.length + 1);\n }\n\n set(key: string, value: T | null) {\n try {\n const expirationDays = this.options.expirationDays ?? 0;\n const expires = value !== null ? expirationDays : -1;\n let expireDate: Date | undefined = undefined;\n if (expires) {\n const date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n let str = `${key}=${JSON.stringify(value)}`;\n if (expireDate) {\n str += `; expires=${expireDate.toUTCString()}`;\n }\n str += '; path=/';\n if (this.options.domain) {\n str += `; domain=${this.options.domain}`;\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += `; SameSite=${this.options.sameSite}`;\n }\n window.document.cookie = str;\n } catch {\n //\n }\n }\n\n remove(key: string) {\n this.set(key, null);\n }\n\n reset() {\n return;\n }\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { Storage } from '@amplitude/analytics-types';
|
|
|
2
2
|
export declare class LocalStorage<T> implements Storage<T> {
|
|
3
3
|
isEnabled(): boolean;
|
|
4
4
|
get(key: string): T | undefined;
|
|
5
|
+
getRaw(key: string): string | undefined;
|
|
5
6
|
set(key: string, value: T): void;
|
|
6
7
|
remove(key: string): void;
|
|
7
8
|
reset(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAChD,SAAS,IAAI,OAAO;IAqBpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAQlB,KAAK;CAON"}
|
|
1
|
+
{"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAChD,SAAS,IAAI,OAAO;IAqBpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAc/B,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAQzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAQlB,KAAK;CAON"}
|
|
@@ -24,7 +24,7 @@ var LocalStorage = /** @class */ (function () {
|
|
|
24
24
|
};
|
|
25
25
|
LocalStorage.prototype.get = function (key) {
|
|
26
26
|
try {
|
|
27
|
-
var value =
|
|
27
|
+
var value = this.getRaw(key);
|
|
28
28
|
if (!value) {
|
|
29
29
|
return undefined;
|
|
30
30
|
}
|
|
@@ -36,6 +36,9 @@ var LocalStorage = /** @class */ (function () {
|
|
|
36
36
|
return undefined;
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
|
+
LocalStorage.prototype.getRaw = function (key) {
|
|
40
|
+
return window.localStorage.getItem(key) || undefined;
|
|
41
|
+
};
|
|
39
42
|
LocalStorage.prototype.set = function (key, value) {
|
|
40
43
|
try {
|
|
41
44
|
window.localStorage.setItem(key, JSON.stringify(value));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAEA;IAAA;
|
|
1
|
+
{"version":3,"file":"local-storage.js","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AAEA;IAAA;IA+DA,CAAC;IA9DC,gCAAS,GAAT;QACE,wBAAwB;QACxB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO,KAAK,CAAC;SACd;QAED,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAM,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;QAChD,IAAM,OAAO,GAAG,UAAU,CAAC;QAC3B,IAAI;YACF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,IAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,KAAK,KAAK,MAAM,CAAC;SACzB;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,KAAK,CAAC;SACd;gBAAS;YACR,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YACD,+DAA+D;YAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAAC,WAAM;YACN,0BAA0B;YAC1B,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,6BAAM,GAAN,UAAO,GAAW;QAChB,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IACvD,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW,EAAE,KAAQ;QACvB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SACzD;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,6BAAM,GAAN,UAAO,GAAW;QAChB,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACrC;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IAED,4BAAK,GAAL;QACE,IAAI;YACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC7B;QAAC,WAAM;YACN,EAAE;SACH;IACH,CAAC;IACH,mBAAC;AAAD,CAAC,AA/DD,IA+DC","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class LocalStorage<T> implements Storage<T> {\n isEnabled(): boolean {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n return false;\n }\n\n const random = String(Date.now());\n const testStrorage = new LocalStorage<string>();\n const testKey = 'AMP_TEST';\n try {\n testStrorage.set(testKey, random);\n const value = testStrorage.get(testKey);\n return value === random;\n } catch {\n /* istanbul ignore next */\n return false;\n } finally {\n testStrorage.remove(testKey);\n }\n }\n\n get(key: string): T | undefined {\n try {\n const value = this.getRaw(key);\n if (!value) {\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return JSON.parse(value);\n } catch {\n /* istanbul ignore next */\n return undefined;\n }\n }\n\n getRaw(key: string) {\n return window.localStorage.getItem(key) || undefined;\n }\n\n set(key: string, value: T) {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n //\n }\n }\n\n remove(key: string) {\n try {\n window.localStorage.removeItem(key);\n } catch {\n //\n }\n }\n\n reset() {\n try {\n window.localStorage.clear();\n } catch {\n //\n }\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ export declare class MemoryStorage<T> implements Storage<T> {
|
|
|
3
3
|
memoryStorage: Map<string, T>;
|
|
4
4
|
isEnabled(): boolean;
|
|
5
5
|
get(key: string): T | undefined;
|
|
6
|
+
getRaw(key: string): string | undefined;
|
|
6
7
|
set(key: string, value: T): void;
|
|
7
8
|
remove(key: string): void;
|
|
8
9
|
reset(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IAE1C,SAAS,IAAI,OAAO;IAIpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAa;IAE1C,SAAS,IAAI,OAAO;IAIpB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/B,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,KAAK;CAGN"}
|
|
@@ -8,6 +8,10 @@ var MemoryStorage = /** @class */ (function () {
|
|
|
8
8
|
MemoryStorage.prototype.get = function (key) {
|
|
9
9
|
return this.memoryStorage.get(key);
|
|
10
10
|
};
|
|
11
|
+
MemoryStorage.prototype.getRaw = function (key) {
|
|
12
|
+
var value = this.get(key);
|
|
13
|
+
return value ? JSON.stringify(value) : undefined;
|
|
14
|
+
};
|
|
11
15
|
MemoryStorage.prototype.set = function (key, value) {
|
|
12
16
|
this.memoryStorage.set(key, value);
|
|
13
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAEA;IAAA;QACE,kBAAa,GAAmB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/storage/memory.ts"],"names":[],"mappings":"AAEA;IAAA;QACE,kBAAa,GAAmB,IAAI,GAAG,EAAE,CAAC;IA0B5C,CAAC;IAxBC,iCAAS,GAAT;QACE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,8BAAM,GAAN,UAAO,GAAW;QAChB,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAED,2BAAG,GAAH,UAAI,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,8BAAM,GAAN,UAAO,GAAW;QAChB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,6BAAK,GAAL;QACE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IACH,oBAAC;AAAD,CAAC,AA3BD,IA2BC","sourcesContent":["import { Storage } from '@amplitude/analytics-types';\n\nexport class MemoryStorage<T> implements Storage<T> {\n memoryStorage: Map<string, T> = new Map();\n\n isEnabled(): boolean {\n return true;\n }\n\n get(key: string): T | undefined {\n return this.memoryStorage.get(key);\n }\n\n getRaw(key: string) {\n const value = this.get(key);\n return value ? JSON.stringify(value) : undefined;\n }\n\n set(key: string, value: T) {\n this.memoryStorage.set(key, value);\n }\n\n remove(key: string) {\n this.memoryStorage.delete(key);\n }\n\n reset() {\n this.memoryStorage.clear();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utm-cookie.js","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;IAA+B,6BAAiD;IAAhF;;IAwBA,CAAC;IAvBC,uBAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"utm-cookie.js","sourceRoot":"","sources":["../../../src/storage/utm-cookie.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;IAA+B,6BAAiD;IAAhF;;IAwBA,CAAC;IAvBC,uBAAG,GAAH,UAAI,GAAW;QACb,IAAI;YACF,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YACD,IAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC,MAAM,CAAqC,UAAC,GAAG,EAAE,IAAI;gBAC5D,IAAA,KAAA,OAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,IAAA,EAArC,GAAG,QAAA,EAAE,UAAU,EAAV,KAAK,mBAAG,EAAE,KAAsB,CAAC;gBAC7C,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,GAAG,CAAC;iBACZ;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;SACR;QAAC,WAAM;YACN,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,uBAAG,GAAH;QACE,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,gBAAC;AAAD,CAAC,AAxBD,CAA+B,aAAa,GAwB3C","sourcesContent":["import { CookieStorage } from './cookie';\n\nexport class UTMCookie extends CookieStorage<Record<string, string | undefined>> {\n get(key: string) {\n try {\n const value = this.getRaw(key);\n if (!value) {\n return undefined;\n }\n const entries = value.split('.').splice(-1)[0].split('|');\n return entries.reduce<Record<string, string | undefined>>((acc, curr) => {\n const [key, value = ''] = curr.split('=', 2);\n if (!value) {\n return acc;\n }\n acc[key] = decodeURIComponent(value);\n return acc;\n }, {});\n } catch {\n return undefined;\n }\n }\n\n set() {\n return undefined;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE1E,qBAAa,cAAe,YAAW,SAAS;IACxC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/transports/fetch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE1E,qBAAa,cAAe,YAAW,SAAS;IACxC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAkB1E"}
|
|
@@ -24,12 +24,10 @@ var FetchTransport = /** @class */ (function () {
|
|
|
24
24
|
return [4 /*yield*/, fetch(serverUrl, options)];
|
|
25
25
|
case 1:
|
|
26
26
|
response = _a.sent();
|
|
27
|
-
if (!response.ok) return [3 /*break*/, 3];
|
|
28
27
|
return [4 /*yield*/, response.json()];
|
|
29
28
|
case 2:
|
|
30
29
|
responsePayload = _a.sent();
|
|
31
30
|
return [2 /*return*/, buildResponse(responsePayload)];
|
|
32
|
-
case 3: throw new Error('Server did not return a response');
|
|
33
31
|
}
|
|
34
32
|
});
|
|
35
33
|
});
|