@amplitude/analytics-browser 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/attribution/campaign-parser.d.ts +2 -2
  3. package/lib/cjs/attribution/campaign-parser.d.ts.map +1 -1
  4. package/lib/cjs/attribution/campaign-parser.js +42 -15
  5. package/lib/cjs/attribution/campaign-parser.js.map +1 -1
  6. package/lib/cjs/attribution/campaign-tracker.d.ts +2 -2
  7. package/lib/cjs/attribution/campaign-tracker.d.ts.map +1 -1
  8. package/lib/cjs/attribution/campaign-tracker.js +29 -7
  9. package/lib/cjs/attribution/campaign-tracker.js.map +1 -1
  10. package/lib/cjs/browser-client.d.ts +21 -9
  11. package/lib/cjs/browser-client.d.ts.map +1 -1
  12. package/lib/cjs/browser-client.js +27 -10
  13. package/lib/cjs/browser-client.js.map +1 -1
  14. package/lib/cjs/config.d.ts +8 -4
  15. package/lib/cjs/config.d.ts.map +1 -1
  16. package/lib/cjs/config.js +198 -79
  17. package/lib/cjs/config.js.map +1 -1
  18. package/lib/cjs/cookie-migration/index.d.ts +1 -1
  19. package/lib/cjs/cookie-migration/index.d.ts.map +1 -1
  20. package/lib/cjs/cookie-migration/index.js +42 -27
  21. package/lib/cjs/cookie-migration/index.js.map +1 -1
  22. package/lib/cjs/index.d.ts +1 -1
  23. package/lib/cjs/index.d.ts.map +1 -1
  24. package/lib/cjs/index.js +2 -1
  25. package/lib/cjs/index.js.map +1 -1
  26. package/lib/cjs/plugins/context.d.ts.map +1 -1
  27. package/lib/cjs/plugins/context.js +21 -16
  28. package/lib/cjs/plugins/context.js.map +1 -1
  29. package/lib/cjs/session-manager.d.ts +11 -3
  30. package/lib/cjs/session-manager.d.ts.map +1 -1
  31. package/lib/cjs/session-manager.js +41 -11
  32. package/lib/cjs/session-manager.js.map +1 -1
  33. package/lib/cjs/storage/cookie.d.ts +6 -6
  34. package/lib/cjs/storage/cookie.d.ts.map +1 -1
  35. package/lib/cjs/storage/cookie.js +122 -67
  36. package/lib/cjs/storage/cookie.js.map +1 -1
  37. package/lib/cjs/storage/local-storage.d.ts +6 -6
  38. package/lib/cjs/storage/local-storage.d.ts.map +1 -1
  39. package/lib/cjs/storage/local-storage.js +95 -50
  40. package/lib/cjs/storage/local-storage.js.map +1 -1
  41. package/lib/cjs/storage/utm-cookie.d.ts +2 -2
  42. package/lib/cjs/storage/utm-cookie.d.ts.map +1 -1
  43. package/lib/cjs/storage/utm-cookie.js +32 -18
  44. package/lib/cjs/storage/utm-cookie.js.map +1 -1
  45. package/lib/cjs/utils/snippet-helper.js.map +1 -1
  46. package/lib/cjs/version.d.ts +1 -1
  47. package/lib/cjs/version.js +1 -1
  48. package/lib/cjs/version.js.map +1 -1
  49. package/lib/esm/attribution/campaign-parser.d.ts +2 -2
  50. package/lib/esm/attribution/campaign-parser.d.ts.map +1 -1
  51. package/lib/esm/attribution/campaign-parser.js +43 -16
  52. package/lib/esm/attribution/campaign-parser.js.map +1 -1
  53. package/lib/esm/attribution/campaign-tracker.d.ts +2 -2
  54. package/lib/esm/attribution/campaign-tracker.d.ts.map +1 -1
  55. package/lib/esm/attribution/campaign-tracker.js +29 -7
  56. package/lib/esm/attribution/campaign-tracker.js.map +1 -1
  57. package/lib/esm/browser-client.d.ts +21 -9
  58. package/lib/esm/browser-client.d.ts.map +1 -1
  59. package/lib/esm/browser-client.js +26 -9
  60. package/lib/esm/browser-client.js.map +1 -1
  61. package/lib/esm/config.d.ts +8 -4
  62. package/lib/esm/config.d.ts.map +1 -1
  63. package/lib/esm/config.js +196 -79
  64. package/lib/esm/config.js.map +1 -1
  65. package/lib/esm/cookie-migration/index.d.ts +1 -1
  66. package/lib/esm/cookie-migration/index.d.ts.map +1 -1
  67. package/lib/esm/cookie-migration/index.js +42 -28
  68. package/lib/esm/cookie-migration/index.js.map +1 -1
  69. package/lib/esm/index.d.ts +1 -1
  70. package/lib/esm/index.d.ts.map +1 -1
  71. package/lib/esm/index.js +1 -1
  72. package/lib/esm/index.js.map +1 -1
  73. package/lib/esm/plugins/context.d.ts.map +1 -1
  74. package/lib/esm/plugins/context.js +22 -17
  75. package/lib/esm/plugins/context.js.map +1 -1
  76. package/lib/esm/session-manager.d.ts +11 -3
  77. package/lib/esm/session-manager.d.ts.map +1 -1
  78. package/lib/esm/session-manager.js +42 -12
  79. package/lib/esm/session-manager.js.map +1 -1
  80. package/lib/esm/storage/cookie.d.ts +6 -6
  81. package/lib/esm/storage/cookie.d.ts.map +1 -1
  82. package/lib/esm/storage/cookie.js +123 -68
  83. package/lib/esm/storage/cookie.js.map +1 -1
  84. package/lib/esm/storage/local-storage.d.ts +6 -6
  85. package/lib/esm/storage/local-storage.d.ts.map +1 -1
  86. package/lib/esm/storage/local-storage.js +95 -50
  87. package/lib/esm/storage/local-storage.js.map +1 -1
  88. package/lib/esm/storage/utm-cookie.d.ts +2 -2
  89. package/lib/esm/storage/utm-cookie.d.ts.map +1 -1
  90. package/lib/esm/storage/utm-cookie.js +33 -19
  91. package/lib/esm/storage/utm-cookie.js.map +1 -1
  92. package/lib/esm/utils/snippet-helper.js.map +1 -1
  93. package/lib/esm/version.d.ts +1 -1
  94. package/lib/esm/version.js +1 -1
  95. package/lib/esm/version.js.map +1 -1
  96. package/lib/scripts/amplitude-min.js +1 -1
  97. package/lib/scripts/amplitude-min.js.gz +0 -0
  98. package/lib/scripts/amplitude-min.umd.js +1 -1
  99. package/lib/scripts/amplitude-min.umd.js.gz +0 -0
  100. package/lib/scripts/amplitude-snippet-instructions.html +1 -1
  101. package/lib/scripts/amplitude-snippet-min.js +1 -1
  102. package/package.json +4 -4
package/lib/cjs/config.js CHANGED
@@ -1,5 +1,6 @@
1
+ var _this = this;
1
2
  Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.createTransport = exports.createDeviceId = exports.createEventsStorage = exports.createFlexibleStorage = exports.createCookieStorage = exports.useBrowserConfig = exports.BrowserConfig = exports.getDefaultConfig = void 0;
3
+ exports.getTopLevelDomain = exports.createTransport = exports.createDeviceId = exports.createEventsStorage = exports.createFlexibleStorage = exports.createCookieStorage = exports.useBrowserConfig = exports.BrowserConfig = exports.getDefaultConfig = void 0;
3
4
  var tslib_1 = require("tslib");
4
5
  var analytics_types_1 = require("@amplitude/analytics-types");
5
6
  var analytics_core_1 = require("@amplitude/analytics-core");
@@ -11,58 +12,59 @@ var query_params_1 = require("./utils/query-params");
11
12
  var xhr_1 = require("./transports/xhr");
12
13
  var send_beacon_1 = require("./transports/send-beacon");
13
14
  var session_manager_1 = require("./session-manager");
14
- var getDefaultConfig = function () { return ({
15
- cookieExpiration: 365,
16
- cookieSameSite: 'Lax',
17
- cookieSecure: false,
18
- cookieStorage: new analytics_core_1.MemoryStorage(),
19
- disableCookies: false,
20
- domain: '',
21
- sessionTimeout: 30 * 60 * 1000,
22
- storageProvider: new analytics_core_1.MemoryStorage(),
23
- trackingOptions: {
24
- city: true,
25
- country: true,
26
- carrier: true,
27
- deviceManufacturer: true,
28
- deviceModel: true,
29
- dma: true,
30
- ipAddress: true,
31
- language: true,
32
- osName: true,
33
- osVersion: true,
34
- platform: true,
35
- region: true,
36
- versionName: true,
37
- },
38
- transportProvider: new fetch_1.FetchTransport(),
39
- }); };
15
+ var getDefaultConfig = function () {
16
+ var cookieStorage = new analytics_core_1.MemoryStorage();
17
+ return {
18
+ cookieExpiration: 365,
19
+ cookieSameSite: 'Lax',
20
+ cookieSecure: false,
21
+ cookieStorage: cookieStorage,
22
+ disableCookies: false,
23
+ domain: '',
24
+ sessionManager: new session_manager_1.SessionManager(cookieStorage, ''),
25
+ sessionTimeout: 30 * 60 * 1000,
26
+ storageProvider: new analytics_core_1.MemoryStorage(),
27
+ trackingOptions: {
28
+ city: true,
29
+ country: true,
30
+ carrier: true,
31
+ deviceManufacturer: true,
32
+ deviceModel: true,
33
+ dma: true,
34
+ ipAddress: true,
35
+ language: true,
36
+ osName: true,
37
+ osVersion: true,
38
+ platform: true,
39
+ region: true,
40
+ versionName: true,
41
+ },
42
+ transportProvider: new fetch_1.FetchTransport(),
43
+ };
44
+ };
40
45
  exports.getDefaultConfig = getDefaultConfig;
41
46
  var BrowserConfig = /** @class */ (function (_super) {
42
47
  (0, tslib_1.__extends)(BrowserConfig, _super);
43
48
  function BrowserConfig(apiKey, userId, options) {
44
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
49
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
45
50
  var _this = this;
46
51
  var defaultConfig = (0, exports.getDefaultConfig)();
47
52
  _this = _super.call(this, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { apiKey: apiKey, 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;
48
53
  _this.cookieStorage = (_c = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _c !== void 0 ? _c : defaultConfig.cookieStorage;
49
- _this.sessionTimeout = (_d = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _d !== void 0 ? _d : defaultConfig.sessionTimeout;
50
- _this.sessionManager = new session_manager_1.SessionManager(_this.cookieStorage, {
51
- apiKey: apiKey,
52
- sessionTimeout: _this.sessionTimeout,
53
- });
54
+ _this.sessionManager = (_d = options === null || options === void 0 ? void 0 : options.sessionManager) !== null && _d !== void 0 ? _d : defaultConfig.sessionManager;
55
+ _this.sessionTimeout = (_e = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _e !== void 0 ? _e : defaultConfig.sessionTimeout;
54
56
  _this.appVersion = options === null || options === void 0 ? void 0 : options.appVersion;
55
- _this.cookieExpiration = (_e = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _e !== void 0 ? _e : defaultConfig.cookieExpiration;
56
- _this.cookieSameSite = (_f = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _f !== void 0 ? _f : defaultConfig.cookieSameSite;
57
- _this.cookieSecure = (_g = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _g !== void 0 ? _g : defaultConfig.cookieSecure;
57
+ _this.cookieExpiration = (_f = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _f !== void 0 ? _f : defaultConfig.cookieExpiration;
58
+ _this.cookieSameSite = (_g = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _g !== void 0 ? _g : defaultConfig.cookieSameSite;
59
+ _this.cookieSecure = (_h = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _h !== void 0 ? _h : defaultConfig.cookieSecure;
58
60
  _this.deviceId = options === null || options === void 0 ? void 0 : options.deviceId;
59
- _this.disableCookies = (_h = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _h !== void 0 ? _h : defaultConfig.disableCookies;
60
- _this.domain = (_j = options === null || options === void 0 ? void 0 : options.domain) !== null && _j !== void 0 ? _j : defaultConfig.domain;
61
- _this.lastEventTime = (_k = _this.lastEventTime) !== null && _k !== void 0 ? _k : options === null || options === void 0 ? void 0 : options.lastEventTime;
61
+ _this.disableCookies = (_j = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _j !== void 0 ? _j : defaultConfig.disableCookies;
62
+ _this.domain = (_k = options === null || options === void 0 ? void 0 : options.domain) !== null && _k !== void 0 ? _k : defaultConfig.domain;
63
+ _this.lastEventTime = (_l = _this.lastEventTime) !== null && _l !== void 0 ? _l : options === null || options === void 0 ? void 0 : options.lastEventTime;
62
64
  _this.optOut = Boolean(options === null || options === void 0 ? void 0 : options.optOut);
63
65
  _this.partnerId = options === null || options === void 0 ? void 0 : options.partnerId;
64
66
  _this.sessionId = options === null || options === void 0 ? void 0 : options.sessionId;
65
- _this.trackingOptions = (_l = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _l !== void 0 ? _l : defaultConfig.trackingOptions;
67
+ _this.trackingOptions = (_m = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _m !== void 0 ? _m : defaultConfig.trackingOptions;
66
68
  _this.userId = userId;
67
69
  return _this;
68
70
  }
@@ -120,53 +122,128 @@ var BrowserConfig = /** @class */ (function (_super) {
120
122
  return BrowserConfig;
121
123
  }(analytics_core_1.Config));
122
124
  exports.BrowserConfig = BrowserConfig;
123
- var useBrowserConfig = function (apiKey, userId, options) {
124
- var _a, _b, _c, _d, _e;
125
- var defaultConfig = (0, exports.getDefaultConfig)();
126
- var cookieStorage = (0, exports.createCookieStorage)(options);
127
- var cookieName = (0, cookie_name_1.getCookieName)(apiKey);
128
- var cookies = cookieStorage.get(cookieName);
129
- var queryParams = (0, query_params_1.getQueryParams)();
130
- var sessionTimeout = (_a = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _a !== void 0 ? _a : defaultConfig.sessionTimeout;
131
- return new BrowserConfig(apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { cookieStorage: cookieStorage, sessionTimeout: sessionTimeout, deviceId: (0, exports.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: (_d = (_c = cookieStorage.get(cookieName)) === null || _c === void 0 ? void 0 : _c.sessionId) !== null && _d !== void 0 ? _d : options === null || options === void 0 ? void 0 : options.sessionId, storageProvider: (0, exports.createEventsStorage)(options), trackingOptions: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions), transportProvider: (_e = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _e !== void 0 ? _e : (0, exports.createTransport)(options === null || options === void 0 ? void 0 : options.transport) }));
132
- };
125
+ var useBrowserConfig = function (apiKey, userId, options) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
126
+ var defaultConfig, domain, _a, cookieStorage, cookieName, cookies, queryParams, sessionManager, _b, _c, _d;
127
+ var _e;
128
+ var _f, _g, _h, _j, _k;
129
+ return (0, tslib_1.__generator)(this, function (_l) {
130
+ switch (_l.label) {
131
+ case 0:
132
+ defaultConfig = (0, exports.getDefaultConfig)();
133
+ if (!((_f = options === null || options === void 0 ? void 0 : options.domain) !== null && _f !== void 0)) return [3 /*break*/, 1];
134
+ _a = _f;
135
+ return [3 /*break*/, 3];
136
+ case 1: return [4 /*yield*/, (0, exports.getTopLevelDomain)()];
137
+ case 2:
138
+ _a = (_l.sent());
139
+ _l.label = 3;
140
+ case 3:
141
+ domain = _a;
142
+ return [4 /*yield*/, (0, exports.createCookieStorage)((0, tslib_1.__assign)((0, tslib_1.__assign)({}, options), { domain: domain }))];
143
+ case 4:
144
+ cookieStorage = _l.sent();
145
+ cookieName = (0, cookie_name_1.getCookieName)(apiKey);
146
+ return [4 /*yield*/, cookieStorage.get(cookieName)];
147
+ case 5:
148
+ cookies = _l.sent();
149
+ queryParams = (0, query_params_1.getQueryParams)();
150
+ return [4 /*yield*/, new session_manager_1.SessionManager(cookieStorage, apiKey).load()];
151
+ case 6:
152
+ sessionManager = _l.sent();
153
+ _b = BrowserConfig.bind;
154
+ _c = [void 0, apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId];
155
+ _d = [(0, tslib_1.__assign)({}, options)];
156
+ _e = { cookieStorage: cookieStorage, sessionManager: sessionManager, deviceId: (0, exports.createDeviceId)(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId), domain: domain, optOut: (_g = options === null || options === void 0 ? void 0 : options.optOut) !== null && _g !== void 0 ? _g : Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut) };
157
+ return [4 /*yield*/, cookieStorage.get(cookieName)];
158
+ case 7:
159
+ _e.sessionId = (_j = (_h = (_l.sent())) === null || _h === void 0 ? void 0 : _h.sessionId) !== null && _j !== void 0 ? _j : options === null || options === void 0 ? void 0 : options.sessionId;
160
+ return [4 /*yield*/, (0, exports.createEventsStorage)(options)];
161
+ case 8: return [2 /*return*/, new (_b.apply(BrowserConfig, _c.concat([tslib_1.__assign.apply(void 0, _d.concat([(_e.storageProvider = _l.sent(), _e.trackingOptions = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions), _e.transportProvider = (_k = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _k !== void 0 ? _k : (0, exports.createTransport)(options === null || options === void 0 ? void 0 : options.transport), _e)]))])))()];
162
+ }
163
+ });
164
+ }); };
133
165
  exports.useBrowserConfig = useBrowserConfig;
134
166
  var createCookieStorage = function (overrides, baseConfig) {
135
167
  if (baseConfig === void 0) { baseConfig = (0, exports.getDefaultConfig)(); }
136
- var options = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, baseConfig), overrides);
137
- var cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
138
- if (!cookieStorage || !cookieStorage.isEnabled()) {
139
- return (0, exports.createFlexibleStorage)(options);
140
- }
141
- return cookieStorage;
168
+ return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
169
+ var options, cookieStorage, _a;
170
+ return (0, tslib_1.__generator)(this, function (_b) {
171
+ switch (_b.label) {
172
+ case 0:
173
+ options = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, baseConfig), overrides);
174
+ cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
175
+ _a = !cookieStorage;
176
+ if (_a) return [3 /*break*/, 2];
177
+ return [4 /*yield*/, cookieStorage.isEnabled()];
178
+ case 1:
179
+ _a = !(_b.sent());
180
+ _b.label = 2;
181
+ case 2:
182
+ if (_a) {
183
+ return [2 /*return*/, (0, exports.createFlexibleStorage)(options)];
184
+ }
185
+ return [2 /*return*/, cookieStorage];
186
+ }
187
+ });
188
+ });
142
189
  };
143
190
  exports.createCookieStorage = createCookieStorage;
144
- var createFlexibleStorage = function (options) {
145
- var storage = new cookie_1.CookieStorage({
146
- domain: options.domain,
147
- expirationDays: options.cookieExpiration,
148
- sameSite: options.cookieSameSite,
149
- secure: options.cookieSecure,
150
- });
151
- if (options.disableCookies || !storage.isEnabled()) {
152
- storage = new local_storage_1.LocalStorage();
153
- if (!storage.isEnabled()) {
154
- storage = new analytics_core_1.MemoryStorage();
191
+ var createFlexibleStorage = function (options) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
192
+ var storage, _a;
193
+ return (0, tslib_1.__generator)(this, function (_b) {
194
+ switch (_b.label) {
195
+ case 0:
196
+ storage = new cookie_1.CookieStorage({
197
+ domain: options.domain,
198
+ expirationDays: options.cookieExpiration,
199
+ sameSite: options.cookieSameSite,
200
+ secure: options.cookieSecure,
201
+ });
202
+ _a = options.disableCookies;
203
+ if (_a) return [3 /*break*/, 2];
204
+ return [4 /*yield*/, storage.isEnabled()];
205
+ case 1:
206
+ _a = !(_b.sent());
207
+ _b.label = 2;
208
+ case 2:
209
+ if (!_a) return [3 /*break*/, 4];
210
+ storage = new local_storage_1.LocalStorage();
211
+ return [4 /*yield*/, storage.isEnabled()];
212
+ case 3:
213
+ if (!(_b.sent())) {
214
+ storage = new analytics_core_1.MemoryStorage();
215
+ }
216
+ _b.label = 4;
217
+ case 4: return [2 /*return*/, storage];
155
218
  }
156
- }
157
- return storage;
158
- };
219
+ });
220
+ }); };
159
221
  exports.createFlexibleStorage = createFlexibleStorage;
160
- var createEventsStorage = function (overrides) {
161
- var eventsStorage = overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider;
162
- if (!eventsStorage || !eventsStorage.isEnabled()) {
163
- eventsStorage = new local_storage_1.LocalStorage();
164
- if (!eventsStorage.isEnabled()) {
165
- eventsStorage = new analytics_core_1.MemoryStorage();
222
+ var createEventsStorage = function (overrides) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
223
+ var eventsStorage, _a;
224
+ return (0, tslib_1.__generator)(this, function (_b) {
225
+ switch (_b.label) {
226
+ case 0:
227
+ eventsStorage = overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider;
228
+ _a = !eventsStorage;
229
+ if (_a) return [3 /*break*/, 2];
230
+ return [4 /*yield*/, eventsStorage.isEnabled()];
231
+ case 1:
232
+ _a = !(_b.sent());
233
+ _b.label = 2;
234
+ case 2:
235
+ if (!_a) return [3 /*break*/, 4];
236
+ eventsStorage = new local_storage_1.LocalStorage();
237
+ return [4 /*yield*/, eventsStorage.isEnabled()];
238
+ case 3:
239
+ if (!(_b.sent())) {
240
+ eventsStorage = new analytics_core_1.MemoryStorage();
241
+ }
242
+ _b.label = 4;
243
+ case 4: return [2 /*return*/, eventsStorage];
166
244
  }
167
- }
168
- return eventsStorage;
169
- };
245
+ });
246
+ }); };
170
247
  exports.createEventsStorage = createEventsStorage;
171
248
  var createDeviceId = function (idFromCookies, idFromOptions, idFromQueryParams) {
172
249
  return idFromOptions || idFromQueryParams || idFromCookies || (0, analytics_core_1.UUID)();
@@ -182,4 +259,46 @@ var createTransport = function (transport) {
182
259
  return (0, exports.getDefaultConfig)().transportProvider;
183
260
  };
184
261
  exports.createTransport = createTransport;
262
+ var getTopLevelDomain = function (url) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
263
+ var host, parts, levels, storageKey, i, i, domain, options, storage, value;
264
+ return (0, tslib_1.__generator)(this, function (_a) {
265
+ switch (_a.label) {
266
+ case 0: return [4 /*yield*/, new cookie_1.CookieStorage().isEnabled()];
267
+ case 1:
268
+ if (!(_a.sent()) || (!url && typeof location === 'undefined')) {
269
+ return [2 /*return*/, ''];
270
+ }
271
+ host = url !== null && url !== void 0 ? url : location.hostname;
272
+ parts = host.split('.');
273
+ levels = [];
274
+ storageKey = 'AMP_TLDTEST';
275
+ for (i = parts.length - 2; i >= 0; --i) {
276
+ levels.push(parts.slice(i).join('.'));
277
+ }
278
+ i = 0;
279
+ _a.label = 2;
280
+ case 2:
281
+ if (!(i < levels.length)) return [3 /*break*/, 7];
282
+ domain = levels[i];
283
+ options = { domain: '.' + domain };
284
+ storage = new cookie_1.CookieStorage(options);
285
+ return [4 /*yield*/, storage.set(storageKey, 1)];
286
+ case 3:
287
+ _a.sent();
288
+ return [4 /*yield*/, storage.get(storageKey)];
289
+ case 4:
290
+ value = _a.sent();
291
+ if (!value) return [3 /*break*/, 6];
292
+ return [4 /*yield*/, storage.remove(storageKey)];
293
+ case 5:
294
+ _a.sent();
295
+ return [2 /*return*/, '.' + domain];
296
+ case 6:
297
+ i++;
298
+ return [3 /*break*/, 2];
299
+ case 7: return [2 /*return*/, ''];
300
+ }
301
+ });
302
+ }); };
303
+ exports.getTopLevelDomain = getTopLevelDomain;
185
304
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
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 SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => ({\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage: new MemoryStorage<UserSession>(),\n disableCookies: false,\n domain: '',\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 appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n this.sessionManager = new SessionManager(this.cookieStorage, {\n apiKey,\n sessionTimeout: this.sessionTimeout,\n });\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\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: cookieStorage.get(cookieName)?.sessionId ?? options?.sessionId,\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 const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !cookieStorage.isEnabled()) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = <T>(options: BrowserOptions): Storage<T> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !storage.isEnabled()) {\n storage = new LocalStorage();\n if (!storage.isEnabled()) {\n storage = new MemoryStorage();\n }\n }\n return storage;\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 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"]}
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 SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\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};\n\nexport class BrowserConfig extends Config implements IBrowserConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: TrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: BrowserOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useBrowserConfig = async (\n apiKey: string,\n userId?: string,\n options?: BrowserOptions,\n): Promise<IBrowserConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new BrowserConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? createTransport(options?.transport),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: BrowserOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: BrowserOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: BrowserOptions): Promise<Storage<Event[]>> => {\n let eventsStorage = overrides?.storageProvider;\n if (!eventsStorage || !(await eventsStorage.isEnabled())) {\n eventsStorage = new LocalStorage();\n if (!(await 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 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\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { BrowserOptions, UserSession } from '@amplitude/analytics-types';
2
- export declare const parseOldCookies: (apiKey: string, options?: BrowserOptions | undefined) => UserSession;
2
+ export declare const parseOldCookies: (apiKey: string, options?: BrowserOptions | undefined) => Promise<UserSession>;
3
3
  export declare const parseTime: (num: string) => number | undefined;
4
4
  export declare const decode: (value?: string | undefined) => string | undefined;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,WAAkB,MAAM,2CAA6B,QAAQ,WAAW,CA6BnG,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,kCAAqB,MAAM,GAAG,SAShD,CAAC"}
@@ -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
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 = new cookie_1.CookieStorage();
9
- if (!storage.isEnabled() || (options === null || options === void 0 ? void 0 : options.disableCookies)) {
10
- storage = new local_storage_1.LocalStorage();
11
- }
12
- if (!storage.isEnabled()) {
13
- return {
14
- optOut: false,
15
- };
16
- }
17
- var oldCookieName = (0, cookie_name_1.getOldCookieName)(apiKey);
18
- var cookies = storage.getRaw(oldCookieName);
19
- if (!cookies) {
20
- return {
21
- optOut: false,
22
- };
23
- }
24
- storage.remove(oldCookieName);
25
- var _a = (0, tslib_1.__read)(cookies.split('.'), 5), deviceId = _a[0], userId = _a[1], optOut = _a[2], sessionId = _a[3], lastEventTime = _a[4];
26
- return {
27
- deviceId: deviceId,
28
- userId: (0, exports.decode)(userId),
29
- sessionId: (0, exports.parseTime)(sessionId),
30
- lastEventTime: (0, exports.parseTime)(lastEventTime),
31
- optOut: Boolean(optOut),
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":";;;AACA,oDAAwD;AACxD,0DAAwD;AACxD,4CAAkD;AAE3C,IAAM,eAAe,GAAG,UAAC,MAAc,EAAE,OAAwB;IACtE,IAAI,OAAO,GAAoB,IAAI,sBAAa,EAAU,CAAC;IAC3D,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,CAAA,EAAE;QACnD,OAAO,GAAG,IAAI,4BAAY,EAAU,CAAC;KACtC;IACD,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE;QACxB,OAAO;YACL,MAAM,EAAE,KAAK;SACd,CAAC;KACH;IAED,IAAM,aAAa,GAAG,IAAA,8BAAgB,EAAC,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,oBAAuD,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,IAAA,cAAM,EAAC,MAAM,CAAC;QACtB,SAAS,EAAE,IAAA,iBAAS,EAAC,SAAS,CAAC;QAC/B,aAAa,EAAE,IAAA,iBAAS,EAAC,aAAa,CAAC;QACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;KACxB,CAAC;AACJ,CAAC,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 = (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"]}
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"]}
@@ -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';
@@ -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; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAkB0B;AAjBxB,qGAAA,GAAG,OAAA;AACH,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 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
+ {"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;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;IAMhD,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAuCvC,cAAc;CAKf"}
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"}
@@ -26,22 +26,27 @@ var Context = /** @class */ (function () {
26
26
  return Promise.resolve(undefined);
27
27
  };
28
28
  Context.prototype.execute = function (context) {
29
- /**
30
- * Manages user session triggered by new events
31
- */
32
- if (!this.isSessionValid()) {
33
- // Creates new session
34
- this.config.sessionId = Date.now();
35
- } // else use previously creates session
36
- // Updates last event time to extend time-based session
37
- this.config.lastEventTime = Date.now();
38
- var time = new Date().getTime();
39
- var osName = this.uaResult.browser.name;
40
- var osVersion = this.uaResult.browser.version;
41
- var deviceModel = this.uaResult.device.model || this.uaResult.os.name;
42
- var deviceVendor = this.uaResult.device.vendor;
43
- var 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 });
44
- return Promise.resolve(event);
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
+ });
49
+ });
45
50
  };
46
51
  Context.prototype.isSessionValid = function () {
47
52
  var lastEventTime = this.config.lastEventTime || Date.now();