@amplitude/analytics-react-native 0.7.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 (48) hide show
  1. package/lib/commonjs/config.js +38 -85
  2. package/lib/commonjs/config.js.map +1 -1
  3. package/lib/commonjs/cookie-migration/index.js +0 -16
  4. package/lib/commonjs/cookie-migration/index.js.map +1 -1
  5. package/lib/commonjs/index.js +1 -7
  6. package/lib/commonjs/index.js.map +1 -1
  7. package/lib/commonjs/plugins/context.js +4 -24
  8. package/lib/commonjs/plugins/context.js.map +1 -1
  9. package/lib/commonjs/react-native-client.js +49 -99
  10. package/lib/commonjs/react-native-client.js.map +1 -1
  11. package/lib/commonjs/storage/local-storage.js +8 -20
  12. package/lib/commonjs/storage/local-storage.js.map +1 -1
  13. package/lib/commonjs/typings/browser-snippet.d.js.map +1 -1
  14. package/lib/commonjs/typings/ua-parser.d.js.map +1 -1
  15. package/lib/commonjs/utils/platform.js +0 -5
  16. package/lib/commonjs/utils/platform.js.map +1 -1
  17. package/lib/commonjs/version.js +1 -1
  18. package/lib/commonjs/version.js.map +1 -1
  19. package/lib/module/config.js +38 -66
  20. package/lib/module/config.js.map +1 -1
  21. package/lib/module/cookie-migration/index.js +0 -8
  22. package/lib/module/cookie-migration/index.js.map +1 -1
  23. package/lib/module/index.js +2 -2
  24. package/lib/module/index.js.map +1 -1
  25. package/lib/module/plugins/context.js +4 -14
  26. package/lib/module/plugins/context.js.map +1 -1
  27. package/lib/module/react-native-client.js +49 -83
  28. package/lib/module/react-native-client.js.map +1 -1
  29. package/lib/module/storage/local-storage.js +8 -15
  30. package/lib/module/storage/local-storage.js.map +1 -1
  31. package/lib/module/typings/browser-snippet.d.js.map +1 -1
  32. package/lib/module/typings/ua-parser.d.js.map +1 -1
  33. package/lib/module/utils/platform.js.map +1 -1
  34. package/lib/module/version.js +1 -1
  35. package/lib/module/version.js.map +1 -1
  36. package/lib/typescript/config.d.ts +5 -5
  37. package/lib/typescript/config.d.ts.map +1 -1
  38. package/lib/typescript/cookie-migration/index.d.ts +2 -2
  39. package/lib/typescript/cookie-migration/index.d.ts.map +1 -1
  40. package/lib/typescript/plugins/context.d.ts +1 -1
  41. package/lib/typescript/plugins/context.d.ts.map +1 -1
  42. package/lib/typescript/react-native-client.d.ts +1 -0
  43. package/lib/typescript/react-native-client.d.ts.map +1 -1
  44. package/lib/typescript/version.d.ts +1 -1
  45. package/package.json +11 -11
  46. package/src/config.ts +14 -2
  47. package/src/react-native-client.ts +13 -3
  48. package/src/version.ts +1 -1
@@ -1,5 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';
4
5
  import { CookieStorage, getCookieName, getQueryParams, SessionManager, FetchTransport } from '@amplitude/analytics-client-common';
5
6
  import { LocalStorage } from './storage/local-storage';
@@ -33,8 +34,6 @@ export const getDefaultConfig = () => {
33
34
  };
34
35
  export class ReactNativeConfig extends Config {
35
36
  constructor(apiKey, userId, options) {
36
- var _options$storageProvi, _options$transportPro, _options$cookieStorag, _options$sessionManag, _options$sessionTimeo, _options$cookieExpira, _options$cookieSameSi, _options$cookieSecure, _options$disableCooki, _options$domain, _this$lastEventTime, _options$trackingOpti, _options$trackingSess;
37
-
38
37
  const defaultConfig = getDefaultConfig();
39
38
  super({
40
39
  flushIntervalMillis: 1000,
@@ -42,133 +41,115 @@ export class ReactNativeConfig extends Config {
42
41
  flushQueueSize: 30,
43
42
  ...options,
44
43
  apiKey,
45
- storageProvider: (_options$storageProvi = options === null || options === void 0 ? void 0 : options.storageProvider) !== null && _options$storageProvi !== void 0 ? _options$storageProvi : defaultConfig.storageProvider,
46
- transportProvider: (_options$transportPro = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro !== void 0 ? _options$transportPro : defaultConfig.transportProvider
44
+ storageProvider: (options === null || options === void 0 ? void 0 : options.storageProvider) ?? defaultConfig.storageProvider,
45
+ transportProvider: (options === null || options === void 0 ? void 0 : options.transportProvider) ?? defaultConfig.transportProvider
47
46
  });
48
-
49
47
  _defineProperty(this, "appVersion", void 0);
50
-
51
48
  _defineProperty(this, "cookieExpiration", void 0);
52
-
53
49
  _defineProperty(this, "cookieSameSite", void 0);
54
-
55
50
  _defineProperty(this, "cookieSecure", void 0);
56
-
57
51
  _defineProperty(this, "cookieStorage", void 0);
58
-
59
52
  _defineProperty(this, "disableCookies", void 0);
60
-
61
53
  _defineProperty(this, "domain", void 0);
62
-
63
54
  _defineProperty(this, "partnerId", void 0);
64
-
65
55
  _defineProperty(this, "sessionTimeout", void 0);
66
-
67
56
  _defineProperty(this, "trackingOptions", void 0);
68
-
69
57
  _defineProperty(this, "sessionManager", void 0);
70
-
71
58
  _defineProperty(this, "trackingSessionEvents", void 0);
72
-
73
- this.cookieStorage = (_options$cookieStorag = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _options$cookieStorag !== void 0 ? _options$cookieStorag : defaultConfig.cookieStorage;
74
- this.sessionManager = (_options$sessionManag = options === null || options === void 0 ? void 0 : options.sessionManager) !== null && _options$sessionManag !== void 0 ? _options$sessionManag : defaultConfig.sessionManager;
75
- this.sessionTimeout = (_options$sessionTimeo = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _options$sessionTimeo !== void 0 ? _options$sessionTimeo : defaultConfig.sessionTimeout;
59
+ this.cookieStorage = (options === null || options === void 0 ? void 0 : options.cookieStorage) ?? defaultConfig.cookieStorage;
60
+ this.sessionManager = (options === null || options === void 0 ? void 0 : options.sessionManager) ?? defaultConfig.sessionManager;
61
+ this.sessionTimeout = (options === null || options === void 0 ? void 0 : options.sessionTimeout) ?? defaultConfig.sessionTimeout;
76
62
  this.appVersion = options === null || options === void 0 ? void 0 : options.appVersion;
77
- this.cookieExpiration = (_options$cookieExpira = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _options$cookieExpira !== void 0 ? _options$cookieExpira : defaultConfig.cookieExpiration;
78
- this.cookieSameSite = (_options$cookieSameSi = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _options$cookieSameSi !== void 0 ? _options$cookieSameSi : defaultConfig.cookieSameSite;
79
- this.cookieSecure = (_options$cookieSecure = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _options$cookieSecure !== void 0 ? _options$cookieSecure : defaultConfig.cookieSecure;
63
+ this.cookieExpiration = (options === null || options === void 0 ? void 0 : options.cookieExpiration) ?? defaultConfig.cookieExpiration;
64
+ this.cookieSameSite = (options === null || options === void 0 ? void 0 : options.cookieSameSite) ?? defaultConfig.cookieSameSite;
65
+ this.cookieSecure = (options === null || options === void 0 ? void 0 : options.cookieSecure) ?? defaultConfig.cookieSecure;
80
66
  this.deviceId = options === null || options === void 0 ? void 0 : options.deviceId;
81
- this.disableCookies = (_options$disableCooki = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _options$disableCooki !== void 0 ? _options$disableCooki : defaultConfig.disableCookies;
82
- this.domain = (_options$domain = options === null || options === void 0 ? void 0 : options.domain) !== null && _options$domain !== void 0 ? _options$domain : defaultConfig.domain;
83
- this.lastEventTime = (_this$lastEventTime = this.lastEventTime) !== null && _this$lastEventTime !== void 0 ? _this$lastEventTime : options === null || options === void 0 ? void 0 : options.lastEventTime;
67
+ this.disableCookies = (options === null || options === void 0 ? void 0 : options.disableCookies) ?? defaultConfig.disableCookies;
68
+ this.domain = (options === null || options === void 0 ? void 0 : options.domain) ?? defaultConfig.domain;
69
+ this.lastEventTime = this.lastEventTime ?? (options === null || options === void 0 ? void 0 : options.lastEventTime);
84
70
  this.optOut = Boolean(options === null || options === void 0 ? void 0 : options.optOut);
85
71
  this.partnerId = options === null || options === void 0 ? void 0 : options.partnerId;
86
72
  this.sessionId = options === null || options === void 0 ? void 0 : options.sessionId;
87
- this.trackingOptions = (_options$trackingOpti = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _options$trackingOpti !== void 0 ? _options$trackingOpti : defaultConfig.trackingOptions;
73
+ this.trackingOptions = (options === null || options === void 0 ? void 0 : options.trackingOptions) ?? defaultConfig.trackingOptions;
88
74
  this.userId = userId;
89
- this.trackingSessionEvents = (_options$trackingSess = options === null || options === void 0 ? void 0 : options.trackingSessionEvents) !== null && _options$trackingSess !== void 0 ? _options$trackingSess : defaultConfig.trackingSessionEvents;
75
+ this.trackingSessionEvents = (options === null || options === void 0 ? void 0 : options.trackingSessionEvents) ?? defaultConfig.trackingSessionEvents;
90
76
  }
91
-
92
77
  get deviceId() {
93
78
  return this.sessionManager.getDeviceId();
94
79
  }
95
-
96
80
  set deviceId(deviceId) {
97
81
  this.sessionManager.setDeviceId(deviceId);
98
82
  }
99
-
100
83
  get userId() {
101
84
  return this.sessionManager.getUserId();
102
85
  }
103
-
104
86
  set userId(userId) {
105
87
  this.sessionManager.setUserId(userId);
106
88
  }
107
-
108
89
  get sessionId() {
109
90
  return this.sessionManager.getSessionId();
110
91
  }
111
-
112
92
  set sessionId(sessionId) {
93
+ var _this$loggerProvider;
94
+ (_this$loggerProvider = this.loggerProvider) === null || _this$loggerProvider === void 0 ? void 0 : _this$loggerProvider.log(`Set sessionId to ${sessionId ?? 'undefined'}`);
113
95
  this.sessionManager.setSessionId(sessionId);
114
96
  }
115
-
116
97
  get optOut() {
117
98
  return this.sessionManager.getOptOut();
118
99
  }
119
-
120
100
  set optOut(optOut) {
121
101
  var _this$sessionManager;
122
-
123
102
  (_this$sessionManager = this.sessionManager) === null || _this$sessionManager === void 0 ? void 0 : _this$sessionManager.setOptOut(Boolean(optOut));
124
103
  }
125
-
126
104
  get lastEventTime() {
127
105
  return this.sessionManager.getLastEventTime();
128
106
  }
129
-
130
107
  set lastEventTime(lastEventTime) {
131
108
  this.sessionManager.setLastEventTime(lastEventTime);
132
109
  }
133
-
134
110
  }
135
111
  export const useReactNativeConfig = async (apiKey, userId, options) => {
136
- var _options$domain2, _options$optOut, _await$cookieStorage$, _await$cookieStorage$2, _options$transportPro2;
137
-
112
+ var _await$cookieStorage$, _config$loggerProvide;
138
113
  const defaultConfig = getDefaultConfig();
139
- const domain = (_options$domain2 = options === null || options === void 0 ? void 0 : options.domain) !== null && _options$domain2 !== void 0 ? _options$domain2 : await getTopLevelDomain();
140
- const cookieStorage = await createCookieStorage({ ...options,
114
+ const domain = (options === null || options === void 0 ? void 0 : options.domain) ?? (await getTopLevelDomain());
115
+ const cookieStorage = await createCookieStorage({
116
+ ...options,
141
117
  domain
142
118
  });
143
119
  const cookieName = getCookieName(apiKey);
144
120
  const cookies = await cookieStorage.get(cookieName);
145
121
  const queryParams = getQueryParams();
146
122
  const sessionManager = await new SessionManager(cookieStorage, apiKey).load();
147
- return new ReactNativeConfig(apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, { ...options,
123
+ const restoredSessionId = (_await$cookieStorage$ = await cookieStorage.get(cookieName)) === null || _await$cookieStorage$ === void 0 ? void 0 : _await$cookieStorage$.sessionId;
124
+ const optionsSessionId = options === null || options === void 0 ? void 0 : options.sessionId;
125
+ const config = new ReactNativeConfig(apiKey, userId ?? (cookies === null || cookies === void 0 ? void 0 : cookies.userId), {
126
+ ...options,
148
127
  cookieStorage,
149
128
  sessionManager,
150
129
  deviceId: createDeviceId(cookies === null || cookies === void 0 ? void 0 : cookies.deviceId, options === null || options === void 0 ? void 0 : options.deviceId, queryParams.deviceId),
151
130
  domain,
152
- optOut: (_options$optOut = options === null || options === void 0 ? void 0 : options.optOut) !== null && _options$optOut !== void 0 ? _options$optOut : Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut),
153
- sessionId: (_await$cookieStorage$ = (_await$cookieStorage$2 = await cookieStorage.get(cookieName)) === null || _await$cookieStorage$2 === void 0 ? void 0 : _await$cookieStorage$2.sessionId) !== null && _await$cookieStorage$ !== void 0 ? _await$cookieStorage$ : options === null || options === void 0 ? void 0 : options.sessionId,
131
+ optOut: (options === null || options === void 0 ? void 0 : options.optOut) ?? Boolean(cookies === null || cookies === void 0 ? void 0 : cookies.optOut),
132
+ sessionId: restoredSessionId ?? optionsSessionId,
154
133
  storageProvider: await createEventsStorage(options),
155
- trackingOptions: { ...defaultConfig.trackingOptions,
134
+ trackingOptions: {
135
+ ...defaultConfig.trackingOptions,
156
136
  ...(options === null || options === void 0 ? void 0 : options.trackingOptions)
157
137
  },
158
- transportProvider: (_options$transportPro2 = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro2 !== void 0 ? _options$transportPro2 : new FetchTransport()
138
+ transportProvider: (options === null || options === void 0 ? void 0 : options.transportProvider) ?? new FetchTransport()
159
139
  });
140
+ (_config$loggerProvide = config.loggerProvider) === null || _config$loggerProvide === void 0 ? void 0 : _config$loggerProvide.log(`Init: storage=${cookieStorage.constructor.name} restoredSessionId = ${restoredSessionId ?? 'undefined'}, optionsSessionId = ${optionsSessionId ?? 'undefined'}`);
141
+ return config;
160
142
  };
161
143
  export const createCookieStorage = async function (overrides) {
162
144
  let baseConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultConfig();
163
- const options = { ...baseConfig,
145
+ const options = {
146
+ ...baseConfig,
164
147
  ...overrides
165
148
  };
166
149
  const cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;
167
-
168
150
  if (!cookieStorage || !(await cookieStorage.isEnabled())) {
169
151
  return createFlexibleStorage(options);
170
152
  }
171
-
172
153
  return cookieStorage;
173
154
  };
174
155
  export const createFlexibleStorage = async options => {
@@ -178,24 +159,21 @@ export const createFlexibleStorage = async options => {
178
159
  sameSite: options.cookieSameSite,
179
160
  secure: options.cookieSecure
180
161
  });
181
-
182
162
  if (options.disableCookies || !(await storage.isEnabled())) {
183
163
  storage = new LocalStorage();
184
-
185
164
  if (!(await storage.isEnabled())) {
186
165
  storage = new MemoryStorage();
187
166
  }
188
167
  }
189
-
190
168
  return storage;
191
169
  };
192
170
  export const createEventsStorage = async overrides => {
193
- const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider'); // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`
171
+ const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');
172
+ // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`
194
173
  // then storageProvider is undefined
195
174
  // If storageProvider is implicitly undefined like `{ }`
196
175
  // then storageProvider is LocalStorage
197
176
  // Otherwise storageProvider is overriden
198
-
199
177
  if (!hasStorageProviderProperty || overrides.storageProvider) {
200
178
  for (const storage of [overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider, new LocalStorage()]) {
201
179
  if (storage && (await storage.isEnabled())) {
@@ -203,7 +181,6 @@ export const createEventsStorage = async overrides => {
203
181
  }
204
182
  }
205
183
  }
206
-
207
184
  return undefined;
208
185
  };
209
186
  export const createDeviceId = (idFromCookies, idFromOptions, idFromQueryParams) => {
@@ -213,16 +190,13 @@ export const getTopLevelDomain = async url => {
213
190
  if (!(await new CookieStorage().isEnabled()) || !url && typeof location === 'undefined') {
214
191
  return '';
215
192
  }
216
-
217
- const host = url !== null && url !== void 0 ? url : location.hostname;
193
+ const host = url ?? location.hostname;
218
194
  const parts = host.split('.');
219
195
  const levels = [];
220
196
  const storageKey = 'AMP_TLDTEST';
221
-
222
197
  for (let i = parts.length - 2; i >= 0; --i) {
223
198
  levels.push(parts.slice(i).join('.'));
224
199
  }
225
-
226
200
  for (let i = 0; i < levels.length; i++) {
227
201
  const domain = levels[i];
228
202
  const options = {
@@ -231,13 +205,11 @@ export const getTopLevelDomain = async url => {
231
205
  const storage = new CookieStorage(options);
232
206
  await storage.set(storageKey, 1);
233
207
  const value = await storage.get(storageKey);
234
-
235
208
  if (value) {
236
209
  await storage.remove(storageKey);
237
210
  return '.' + domain;
238
211
  }
239
212
  }
240
-
241
213
  return '';
242
214
  };
243
215
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","getCookieName","getQueryParams","SessionManager","FetchTransport","LocalStorage","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","sessionTimeout","storageProvider","transportProvider","trackingSessionEvents","ReactNativeConfig","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","cookies","get","queryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n ReactNativeTrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport {\n CookieStorage,\n getCookieName,\n getQueryParams,\n SessionManager,\n FetchTransport,\n} from '@amplitude/analytics-client-common';\n\nimport { LocalStorage } from './storage/local-storage';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n const trackingOptions: Required<ReactNativeTrackingOptions> = {\n adid: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n };\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: 5 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n trackingSessionEvents: false,\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\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: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n trackingSessionEvents: boolean;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\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 this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;\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 useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\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 ReactNativeConfig(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 ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\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: ReactNativeOptions): 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?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\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"],"mappings":"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"}
1
+ {"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","getCookieName","getQueryParams","SessionManager","FetchTransport","LocalStorage","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","sessionTimeout","storageProvider","transportProvider","trackingSessionEvents","ReactNativeConfig","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","loggerProvider","log","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","cookies","get","queryParams","load","restoredSessionId","optionsSessionId","config","createDeviceId","createEventsStorage","name","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sourceRoot":"../../src","sources":["config.ts"],"mappings":"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"}
@@ -2,26 +2,21 @@ import { getOldCookieName, CookieStorage } from '@amplitude/analytics-client-com
2
2
  import { LocalStorage } from '../storage/local-storage';
3
3
  export const parseOldCookies = async (apiKey, options) => {
4
4
  let storage = new CookieStorage();
5
-
6
5
  if (!(await storage.isEnabled()) || options !== null && options !== void 0 && options.disableCookies) {
7
6
  storage = new LocalStorage();
8
7
  }
9
-
10
8
  if (!(await storage.isEnabled())) {
11
9
  return {
12
10
  optOut: false
13
11
  };
14
12
  }
15
-
16
13
  const oldCookieName = getOldCookieName(apiKey);
17
14
  const cookies = await storage.getRaw(oldCookieName);
18
-
19
15
  if (!cookies) {
20
16
  return {
21
17
  optOut: false
22
18
  };
23
19
  }
24
-
25
20
  await storage.remove(oldCookieName);
26
21
  const [deviceId, userId, optOut, sessionId, lastEventTime] = cookies.split('.');
27
22
  return {
@@ -34,18 +29,15 @@ export const parseOldCookies = async (apiKey, options) => {
34
29
  };
35
30
  export const parseTime = num => {
36
31
  const integer = parseInt(num, 32);
37
-
38
32
  if (isNaN(integer)) {
39
33
  return undefined;
40
34
  }
41
-
42
35
  return integer;
43
36
  };
44
37
  export const decode = value => {
45
38
  if (!atob || !escape || !value) {
46
39
  return undefined;
47
40
  }
48
-
49
41
  try {
50
42
  return decodeURIComponent(escape(atob(value)));
51
43
  } catch {
@@ -1 +1 @@
1
- {"version":3,"names":["getOldCookieName","CookieStorage","LocalStorage","parseOldCookies","apiKey","options","storage","isEnabled","disableCookies","optOut","oldCookieName","cookies","getRaw","remove","deviceId","userId","sessionId","lastEventTime","split","decode","parseTime","Boolean","num","integer","parseInt","isNaN","undefined","value","atob","escape","decodeURIComponent"],"sources":["index.ts"],"sourcesContent":["import { BrowserOptions, Storage, UserSession } from '@amplitude/analytics-types';\nimport { getOldCookieName, CookieStorage } from '@amplitude/analytics-client-common';\nimport { LocalStorage } from '../storage/local-storage';\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"],"mappings":"AACA,SAASA,gBAAT,EAA2BC,aAA3B,QAAgD,oCAAhD;AACA,SAASC,YAAT,QAA6B,0BAA7B;AAEA,OAAO,MAAMC,eAAe,GAAG,OAAOC,MAAP,EAAuBC,OAAvB,KAA0E;EACvG,IAAIC,OAAwB,GAAG,IAAIL,aAAJ,EAA/B;;EACA,IAAI,EAAE,MAAMK,OAAO,CAACC,SAAR,EAAR,KAAgCF,OAAhC,aAAgCA,OAAhC,eAAgCA,OAAO,CAAEG,cAA7C,EAA6D;IAC3DF,OAAO,GAAG,IAAIJ,YAAJ,EAAV;EACD;;EACD,IAAI,EAAE,MAAMI,OAAO,CAACC,SAAR,EAAR,CAAJ,EAAkC;IAChC,OAAO;MACLE,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAMC,aAAa,GAAGV,gBAAgB,CAACI,MAAD,CAAtC;EACA,MAAMO,OAAO,GAAG,MAAML,OAAO,CAACM,MAAR,CAAeF,aAAf,CAAtB;;EAEA,IAAI,CAACC,OAAL,EAAc;IACZ,OAAO;MACLF,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAMH,OAAO,CAACO,MAAR,CAAeH,aAAf,CAAN;EACA,MAAM,CAACI,QAAD,EAAWC,MAAX,EAAmBN,MAAnB,EAA2BO,SAA3B,EAAsCC,aAAtC,IAAuDN,OAAO,CAACO,KAAR,CAAc,GAAd,CAA7D;EACA,OAAO;IACLJ,QADK;IAELC,MAAM,EAAEI,MAAM,CAACJ,MAAD,CAFT;IAGLC,SAAS,EAAEI,SAAS,CAACJ,SAAD,CAHf;IAILC,aAAa,EAAEG,SAAS,CAACH,aAAD,CAJnB;IAKLR,MAAM,EAAEY,OAAO,CAACZ,MAAD;EALV,CAAP;AAOD,CA7BM;AA+BP,OAAO,MAAMW,SAAS,GAAIE,GAAD,IAAiB;EACxC,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAD,EAAM,EAAN,CAAxB;;EACA,IAAIG,KAAK,CAACF,OAAD,CAAT,EAAoB;IAClB,OAAOG,SAAP;EACD;;EACD,OAAOH,OAAP;AACD,CANM;AAQP,OAAO,MAAMJ,MAAM,GAAIQ,KAAD,IAAwC;EAC5D,IAAI,CAACC,IAAD,IAAS,CAACC,MAAV,IAAoB,CAACF,KAAzB,EAAgC;IAC9B,OAAOD,SAAP;EACD;;EACD,IAAI;IACF,OAAOI,kBAAkB,CAACD,MAAM,CAACD,IAAI,CAACD,KAAD,CAAL,CAAP,CAAzB;EACD,CAFD,CAEE,MAAM;IACN,OAAOD,SAAP;EACD;AACF,CATM"}
1
+ {"version":3,"names":["getOldCookieName","CookieStorage","LocalStorage","parseOldCookies","apiKey","options","storage","isEnabled","disableCookies","optOut","oldCookieName","cookies","getRaw","remove","deviceId","userId","sessionId","lastEventTime","split","decode","parseTime","Boolean","num","integer","parseInt","isNaN","undefined","value","atob","escape","decodeURIComponent"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AACA,SAASA,gBAAgB,EAAEC,aAAa,QAAQ,oCAAoC;AACpF,SAASC,YAAY,QAAQ,0BAA0B;AAEvD,OAAO,MAAMC,eAAe,GAAG,OAAOC,MAAc,EAAEC,OAAwB,KAA2B;EACvG,IAAIC,OAAwB,GAAG,IAAIL,aAAa,EAAU;EAC1D,IAAI,EAAE,MAAMK,OAAO,CAACC,SAAS,EAAE,CAAC,IAAIF,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEG,cAAc,EAAE;IAC3DF,OAAO,GAAG,IAAIJ,YAAY,EAAU;EACtC;EACA,IAAI,EAAE,MAAMI,OAAO,CAACC,SAAS,EAAE,CAAC,EAAE;IAChC,OAAO;MACLE,MAAM,EAAE;IACV,CAAC;EACH;EAEA,MAAMC,aAAa,GAAGV,gBAAgB,CAACI,MAAM,CAAC;EAC9C,MAAMO,OAAO,GAAG,MAAML,OAAO,CAACM,MAAM,CAACF,aAAa,CAAC;EAEnD,IAAI,CAACC,OAAO,EAAE;IACZ,OAAO;MACLF,MAAM,EAAE;IACV,CAAC;EACH;EAEA,MAAMH,OAAO,CAACO,MAAM,CAACH,aAAa,CAAC;EACnC,MAAM,CAACI,QAAQ,EAAEC,MAAM,EAAEN,MAAM,EAAEO,SAAS,EAAEC,aAAa,CAAC,GAAGN,OAAO,CAACO,KAAK,CAAC,GAAG,CAAC;EAC/E,OAAO;IACLJ,QAAQ;IACRC,MAAM,EAAEI,MAAM,CAACJ,MAAM,CAAC;IACtBC,SAAS,EAAEI,SAAS,CAACJ,SAAS,CAAC;IAC/BC,aAAa,EAAEG,SAAS,CAACH,aAAa,CAAC;IACvCR,MAAM,EAAEY,OAAO,CAACZ,MAAM;EACxB,CAAC;AACH,CAAC;AAED,OAAO,MAAMW,SAAS,GAAIE,GAAW,IAAK;EACxC,MAAMC,OAAO,GAAGC,QAAQ,CAACF,GAAG,EAAE,EAAE,CAAC;EACjC,IAAIG,KAAK,CAACF,OAAO,CAAC,EAAE;IAClB,OAAOG,SAAS;EAClB;EACA,OAAOH,OAAO;AAChB,CAAC;AAED,OAAO,MAAMJ,MAAM,GAAIQ,KAAc,IAAyB;EAC5D,IAAI,CAACC,IAAI,IAAI,CAACC,MAAM,IAAI,CAACF,KAAK,EAAE;IAC9B,OAAOD,SAAS;EAClB;EACA,IAAI;IACF,OAAOI,kBAAkB,CAACD,MAAM,CAACD,IAAI,CAACD,KAAK,CAAC,CAAC,CAAC;EAChD,CAAC,CAAC,MAAM;IACN,OAAOD,SAAS;EAClB;AACF,CAAC"}
@@ -21,9 +21,9 @@ export const {
21
21
  setUserId,
22
22
  track
23
23
  } = client;
24
- export { Revenue, Identify } from '@amplitude/analytics-core'; // Hack - react-native apps have trouble with:
24
+ export { Revenue, Identify } from '@amplitude/analytics-core';
25
+ // Hack - react-native apps have trouble with:
25
26
  // export * as Types from '@amplitude/analytics-types
26
-
27
27
  import * as Types from '@amplitude/analytics-types';
28
28
  export { Types };
29
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["client","createInstance","add","flush","getDeviceId","getSessionId","getUserId","groupIdentify","identify","init","logEvent","remove","reset","revenue","setDeviceId","setGroup","setOptOut","setSessionId","setUserId","track","Revenue","Identify","Types"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './react-native-client';\nexport { createInstance } from './react-native-client';\nexport const {\n add,\n flush,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n reset,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setUserId,\n track,\n} = client;\nexport { Revenue, Identify } from '@amplitude/analytics-core';\n// Hack - react-native apps have trouble with:\n// export * as Types from '@amplitude/analytics-types\nimport * as Types from '@amplitude/analytics-types';\nexport { Types };\n"],"mappings":"AAAA;AACA,OAAOA,MAAP,MAAmB,uBAAnB;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,OAAO,MAAM;EACXC,GADW;EAEXC,KAFW;EAGXC,WAHW;EAIXC,YAJW;EAKXC,SALW;EAMXC,aANW;EAOXC,QAPW;EAQXC,IARW;EASXC,QATW;EAUXC,MAVW;EAWXC,KAXW;EAYXC,OAZW;EAaXC,WAbW;EAcXC,QAdW;EAeXC,SAfW;EAgBXC,YAhBW;EAiBXC,SAjBW;EAkBXC;AAlBW,IAmBTnB,MAnBG;AAoBP,SAASoB,OAAT,EAAkBC,QAAlB,QAAkC,2BAAlC,C,CACA;AACA;;AACA,OAAO,KAAKC,KAAZ,MAAuB,4BAAvB;AACA,SAASA,KAAT"}
1
+ {"version":3,"names":["client","createInstance","add","flush","getDeviceId","getSessionId","getUserId","groupIdentify","identify","init","logEvent","remove","reset","revenue","setDeviceId","setGroup","setOptOut","setSessionId","setUserId","track","Revenue","Identify","Types"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA,OAAOA,MAAM,MAAM,uBAAuB;AAC1C,SAASC,cAAc,QAAQ,uBAAuB;AACtD,OAAO,MAAM;EACXC,GAAG;EACHC,KAAK;EACLC,WAAW;EACXC,YAAY;EACZC,SAAS;EACTC,aAAa;EACbC,QAAQ;EACRC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,SAAS;EACTC;AACF,CAAC,GAAGnB,MAAM;AACV,SAASoB,OAAO,EAAEC,QAAQ,QAAQ,2BAA2B;AAC7D;AACA;AACA,OAAO,KAAKC,KAAK,MAAM,4BAA4B;AACnD,SAASA,KAAK"}
@@ -1,5 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import { PluginType } from '@amplitude/analytics-types';
4
5
  import UAParser from '@amplitude/ua-parser-js';
5
6
  import { UUID } from '@amplitude/analytics-core';
@@ -12,37 +13,27 @@ export class Context {
12
13
  // this.config is defined in setup() which will always be called first
13
14
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
14
15
  // @ts-ignore
16
+
15
17
  constructor() {
16
18
  _defineProperty(this, "name", 'context');
17
-
18
19
  _defineProperty(this, "type", PluginType.BEFORE);
19
-
20
20
  _defineProperty(this, "config", void 0);
21
-
22
21
  _defineProperty(this, "uaResult", void 0);
23
-
24
22
  _defineProperty(this, "nativeModule", NativeModules.AmplitudeReactNative);
25
-
26
23
  _defineProperty(this, "library", `amplitude-react-native-ts/${VERSION}`);
27
-
28
24
  let agent;
29
25
  /* istanbul ignore else */
30
-
31
26
  if (typeof navigator !== 'undefined') {
32
27
  agent = navigator.userAgent;
33
28
  }
34
-
35
29
  this.uaResult = new UAParser(agent).getResult();
36
30
  }
37
-
38
31
  setup(config) {
39
32
  this.config = config;
40
33
  return Promise.resolve(undefined);
41
34
  }
42
-
43
35
  async execute(context) {
44
36
  var _this$nativeModule;
45
-
46
37
  const time = new Date().getTime();
47
38
  const nativeContext = await ((_this$nativeModule = this.nativeModule) === null || _this$nativeModule === void 0 ? void 0 : _this$nativeModule.getApplicationContext());
48
39
  const appVersion = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.version) || this.config.appVersion;
@@ -103,6 +94,5 @@ export class Context {
103
94
  };
104
95
  return event;
105
96
  }
106
-
107
97
  }
108
98
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PluginType","UAParser","UUID","getLanguage","VERSION","NativeModules","BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","BEFORE","AmplitudeReactNative","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","undefined","execute","context","time","Date","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion","library"],"sources":["context.ts"],"sourcesContent":["import { BeforePlugin, ReactNativeConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nimport { NativeModules } from 'react-native';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\ntype NativeContext = {\n version: string;\n platform: string;\n language: string;\n osName: string;\n osVersion: string;\n deviceBrand: string;\n deviceManufacturer: string;\n deviceModel: string;\n carrier: string;\n adid: string;\n};\n\nexport interface AmplitudeReactNative {\n getApplicationContext(): Promise<NativeContext>;\n}\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: ReactNativeConfig;\n uaResult: UAParser.IResult;\n nativeModule: AmplitudeReactNative | undefined = NativeModules.AmplitudeReactNative as\n | AmplitudeReactNative\n | undefined;\n library = `amplitude-react-native-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: ReactNativeConfig): Promise<undefined> {\n this.config = config;\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n const time = new Date().getTime();\n const nativeContext = await this.nativeModule?.getApplicationContext();\n const appVersion = nativeContext?.version || this.config.appVersion;\n const platform = nativeContext?.platform || BROWSER_PLATFORM;\n const osName = nativeContext?.osName || this.uaResult.browser.name;\n const osVersion = nativeContext?.osVersion || this.uaResult.browser.version;\n const deviceVendor = nativeContext?.deviceManufacturer || this.uaResult.device.vendor;\n const deviceModel = nativeContext?.deviceModel || this.uaResult.device.model || this.uaResult.os.name;\n const language = nativeContext?.language || getLanguage();\n const carrier = nativeContext?.carrier;\n const adid = nativeContext?.adid;\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: appVersion }),\n ...(this.config.trackingOptions.platform && { platform: 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: language }),\n ...(this.config.trackingOptions.carrier && { carrier: carrier }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n ...(this.config.trackingOptions.adid && { adid: adid }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n library: this.library,\n };\n return event;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["PluginType","UAParser","UUID","getLanguage","VERSION","NativeModules","BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","BEFORE","AmplitudeReactNative","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","undefined","execute","context","time","Date","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion","library"],"sourceRoot":"../../src","sources":["context.ts"],"mappings":"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"}