@amplitude/analytics-react-native 0.3.3 → 0.4.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 (119) hide show
  1. package/lib/commonjs/config.js +10 -18
  2. package/lib/commonjs/config.js.map +1 -1
  3. package/lib/commonjs/cookie-migration/index.js +3 -5
  4. package/lib/commonjs/cookie-migration/index.js.map +1 -1
  5. package/lib/commonjs/plugins/context.js +8 -2
  6. package/lib/commonjs/plugins/context.js.map +1 -1
  7. package/lib/commonjs/react-native-client.js +7 -11
  8. package/lib/commonjs/react-native-client.js.map +1 -1
  9. package/lib/commonjs/version.js +1 -1
  10. package/lib/commonjs/version.js.map +1 -1
  11. package/lib/module/config.js +1 -5
  12. package/lib/module/config.js.map +1 -1
  13. package/lib/module/cookie-migration/index.js +1 -2
  14. package/lib/module/cookie-migration/index.js.map +1 -1
  15. package/lib/module/plugins/context.js +7 -1
  16. package/lib/module/plugins/context.js.map +1 -1
  17. package/lib/module/react-native-client.js +1 -3
  18. package/lib/module/react-native-client.js.map +1 -1
  19. package/lib/module/version.js +1 -1
  20. package/lib/module/version.js.map +1 -1
  21. package/lib/typescript/config.d.ts +1 -2
  22. package/lib/typescript/config.d.ts.map +1 -1
  23. package/lib/typescript/cookie-migration/index.d.ts.map +1 -1
  24. package/lib/typescript/index.d.ts +1 -1
  25. package/lib/typescript/index.d.ts.map +1 -1
  26. package/lib/typescript/plugins/context.d.ts.map +1 -1
  27. package/lib/typescript/react-native-client.d.ts +3 -3
  28. package/lib/typescript/react-native-client.d.ts.map +1 -1
  29. package/lib/typescript/version.d.ts +1 -1
  30. package/package.json +5 -4
  31. package/src/config.ts +7 -5
  32. package/src/cookie-migration/index.ts +1 -2
  33. package/src/plugins/context.ts +7 -1
  34. package/src/react-native-client.ts +4 -7
  35. package/src/version.ts +1 -1
  36. package/lib/commonjs/attribution/campaign-parser.js +0 -74
  37. package/lib/commonjs/attribution/campaign-parser.js.map +0 -1
  38. package/lib/commonjs/attribution/campaign-tracker.js +0 -133
  39. package/lib/commonjs/attribution/campaign-tracker.js.map +0 -1
  40. package/lib/commonjs/attribution/constants.js +0 -47
  41. package/lib/commonjs/attribution/constants.js.map +0 -1
  42. package/lib/commonjs/plugins/identity.js +0 -40
  43. package/lib/commonjs/plugins/identity.js.map +0 -1
  44. package/lib/commonjs/session-manager.js +0 -114
  45. package/lib/commonjs/session-manager.js.map +0 -1
  46. package/lib/commonjs/storage/cookie.js +0 -124
  47. package/lib/commonjs/storage/cookie.js.map +0 -1
  48. package/lib/commonjs/storage/utm-cookie.js +0 -42
  49. package/lib/commonjs/storage/utm-cookie.js.map +0 -1
  50. package/lib/commonjs/transports/fetch.js +0 -34
  51. package/lib/commonjs/transports/fetch.js.map +0 -1
  52. package/lib/commonjs/utils/analytics-connector.js +0 -15
  53. package/lib/commonjs/utils/analytics-connector.js.map +0 -1
  54. package/lib/commonjs/utils/cookie-name.js +0 -23
  55. package/lib/commonjs/utils/cookie-name.js.map +0 -1
  56. package/lib/commonjs/utils/language.js +0 -18
  57. package/lib/commonjs/utils/language.js.map +0 -1
  58. package/lib/commonjs/utils/query-params.js +0 -43
  59. package/lib/commonjs/utils/query-params.js.map +0 -1
  60. package/lib/module/attribution/campaign-parser.js +0 -62
  61. package/lib/module/attribution/campaign-parser.js.map +0 -1
  62. package/lib/module/attribution/campaign-tracker.js +0 -120
  63. package/lib/module/attribution/campaign-tracker.js.map +0 -1
  64. package/lib/module/attribution/constants.js +0 -26
  65. package/lib/module/attribution/constants.js.map +0 -1
  66. package/lib/module/plugins/identity.js +0 -29
  67. package/lib/module/plugins/identity.js.map +0 -1
  68. package/lib/module/session-manager.js +0 -104
  69. package/lib/module/session-manager.js.map +0 -1
  70. package/lib/module/storage/cookie.js +0 -114
  71. package/lib/module/storage/cookie.js.map +0 -1
  72. package/lib/module/storage/utm-cookie.js +0 -32
  73. package/lib/module/storage/utm-cookie.js.map +0 -1
  74. package/lib/module/transports/fetch.js +0 -24
  75. package/lib/module/transports/fetch.js.map +0 -1
  76. package/lib/module/utils/analytics-connector.js +0 -5
  77. package/lib/module/utils/analytics-connector.js.map +0 -1
  78. package/lib/module/utils/cookie-name.js +0 -10
  79. package/lib/module/utils/cookie-name.js.map +0 -1
  80. package/lib/module/utils/language.js +0 -9
  81. package/lib/module/utils/language.js.map +0 -1
  82. package/lib/module/utils/query-params.js +0 -31
  83. package/lib/module/utils/query-params.js.map +0 -1
  84. package/lib/typescript/attribution/campaign-parser.d.ts +0 -10
  85. package/lib/typescript/attribution/campaign-parser.d.ts.map +0 -1
  86. package/lib/typescript/attribution/campaign-tracker.d.ts +0 -74
  87. package/lib/typescript/attribution/campaign-tracker.d.ts.map +0 -1
  88. package/lib/typescript/attribution/constants.d.ts +0 -17
  89. package/lib/typescript/attribution/constants.d.ts.map +0 -1
  90. package/lib/typescript/plugins/identity.d.ts +0 -9
  91. package/lib/typescript/plugins/identity.d.ts.map +0 -1
  92. package/lib/typescript/session-manager.d.ts +0 -28
  93. package/lib/typescript/session-manager.d.ts.map +0 -1
  94. package/lib/typescript/storage/cookie.d.ts +0 -12
  95. package/lib/typescript/storage/cookie.d.ts.map +0 -1
  96. package/lib/typescript/storage/utm-cookie.d.ts +0 -6
  97. package/lib/typescript/storage/utm-cookie.d.ts.map +0 -1
  98. package/lib/typescript/transports/fetch.d.ts +0 -6
  99. package/lib/typescript/transports/fetch.d.ts.map +0 -1
  100. package/lib/typescript/utils/analytics-connector.d.ts +0 -3
  101. package/lib/typescript/utils/analytics-connector.d.ts.map +0 -1
  102. package/lib/typescript/utils/cookie-name.d.ts +0 -3
  103. package/lib/typescript/utils/cookie-name.d.ts.map +0 -1
  104. package/lib/typescript/utils/language.d.ts +0 -2
  105. package/lib/typescript/utils/language.d.ts.map +0 -1
  106. package/lib/typescript/utils/query-params.d.ts +0 -3
  107. package/lib/typescript/utils/query-params.d.ts.map +0 -1
  108. package/src/attribution/campaign-parser.ts +0 -78
  109. package/src/attribution/campaign-tracker.ts +0 -112
  110. package/src/attribution/constants.ts +0 -32
  111. package/src/plugins/identity.ts +0 -21
  112. package/src/session-manager.ts +0 -81
  113. package/src/storage/cookie.ts +0 -97
  114. package/src/storage/utm-cookie.ts +0 -27
  115. package/src/transports/fetch.ts +0 -23
  116. package/src/utils/analytics-connector.ts +0 -5
  117. package/src/utils/cookie-name.ts +0 -9
  118. package/src/utils/language.ts +0 -7
  119. package/src/utils/query-params.ts +0 -26
@@ -7,18 +7,10 @@ exports.useReactNativeConfig = exports.getTopLevelDomain = exports.getDefaultCon
7
7
 
8
8
  var _analyticsCore = require("@amplitude/analytics-core");
9
9
 
10
- var _cookie = require("./storage/cookie");
11
-
12
- var _fetch = require("./transports/fetch");
10
+ var _analyticsClientCommon = require("@amplitude/analytics-client-common");
13
11
 
14
12
  var _localStorage = require("./storage/local-storage");
15
13
 
16
- var _cookieName = require("./utils/cookie-name");
17
-
18
- var _queryParams = require("./utils/query-params");
19
-
20
- var _sessionManager = require("./session-manager");
21
-
22
14
  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; }
23
15
 
24
16
  const getDefaultConfig = () => {
@@ -41,11 +33,11 @@ const getDefaultConfig = () => {
41
33
  cookieStorage,
42
34
  disableCookies: false,
43
35
  domain: '',
44
- sessionManager: new _sessionManager.SessionManager(cookieStorage, ''),
36
+ sessionManager: new _analyticsClientCommon.SessionManager(cookieStorage, ''),
45
37
  sessionTimeout: 30 * 60 * 1000,
46
38
  storageProvider: new _analyticsCore.MemoryStorage(),
47
39
  trackingOptions,
48
- transportProvider: new _fetch.FetchTransport()
40
+ transportProvider: new _analyticsClientCommon.FetchTransport()
49
41
  };
50
42
  };
51
43
 
@@ -160,10 +152,10 @@ const useReactNativeConfig = async (apiKey, userId, options) => {
160
152
  const cookieStorage = await createCookieStorage({ ...options,
161
153
  domain
162
154
  });
163
- const cookieName = (0, _cookieName.getCookieName)(apiKey);
155
+ const cookieName = (0, _analyticsClientCommon.getCookieName)(apiKey);
164
156
  const cookies = await cookieStorage.get(cookieName);
165
- const queryParams = (0, _queryParams.getQueryParams)();
166
- const sessionManager = await new _sessionManager.SessionManager(cookieStorage, apiKey).load();
157
+ const queryParams = (0, _analyticsClientCommon.getQueryParams)();
158
+ const sessionManager = await new _analyticsClientCommon.SessionManager(cookieStorage, apiKey).load();
167
159
  return new ReactNativeConfig(apiKey, userId !== null && userId !== void 0 ? userId : cookies === null || cookies === void 0 ? void 0 : cookies.userId, { ...options,
168
160
  cookieStorage,
169
161
  sessionManager,
@@ -175,7 +167,7 @@ const useReactNativeConfig = async (apiKey, userId, options) => {
175
167
  trackingOptions: { ...defaultConfig.trackingOptions,
176
168
  ...(options === null || options === void 0 ? void 0 : options.trackingOptions)
177
169
  },
178
- transportProvider: (_options$transportPro2 = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro2 !== void 0 ? _options$transportPro2 : new _fetch.FetchTransport()
170
+ transportProvider: (_options$transportPro2 = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _options$transportPro2 !== void 0 ? _options$transportPro2 : new _analyticsClientCommon.FetchTransport()
179
171
  });
180
172
  };
181
173
 
@@ -198,7 +190,7 @@ const createCookieStorage = async function (overrides) {
198
190
  exports.createCookieStorage = createCookieStorage;
199
191
 
200
192
  const createFlexibleStorage = async options => {
201
- let storage = new _cookie.CookieStorage({
193
+ let storage = new _analyticsClientCommon.CookieStorage({
202
194
  domain: options.domain,
203
195
  expirationDays: options.cookieExpiration,
204
196
  sameSite: options.cookieSameSite,
@@ -245,7 +237,7 @@ const createDeviceId = (idFromCookies, idFromOptions, idFromQueryParams) => {
245
237
  exports.createDeviceId = createDeviceId;
246
238
 
247
239
  const getTopLevelDomain = async url => {
248
- if (!(await new _cookie.CookieStorage().isEnabled()) || !url && typeof location === 'undefined') {
240
+ if (!(await new _analyticsClientCommon.CookieStorage().isEnabled()) || !url && typeof location === 'undefined') {
249
241
  return '';
250
242
  }
251
243
 
@@ -263,7 +255,7 @@ const getTopLevelDomain = async url => {
263
255
  const options = {
264
256
  domain: '.' + domain
265
257
  };
266
- const storage = new _cookie.CookieStorage(options);
258
+ const storage = new _analyticsClientCommon.CookieStorage(options);
267
259
  await storage.set(storageKey, 1);
268
260
  const value = await storage.get(storageKey);
269
261
 
@@ -1 +1 @@
1
- {"version":3,"names":["getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","transportProvider","FetchTransport","ReactNativeConfig","Config","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","getCookieName","cookies","get","queryParams","getQueryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","CookieStorage","expirationDays","sameSite","secure","LocalStorage","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","UUID","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';\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 { SessionManager } from './session-manager';\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: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\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\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 }\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":["getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","transportProvider","FetchTransport","ReactNativeConfig","Config","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","getCookieName","cookies","get","queryParams","getQueryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","CookieStorage","expirationDays","sameSite","secure","LocalStorage","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","UUID","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: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\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\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 }\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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"}
@@ -5,14 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.parseTime = exports.parseOldCookies = exports.decode = void 0;
7
7
 
8
- var _cookieName = require("../utils/cookie-name");
8
+ var _analyticsClientCommon = require("@amplitude/analytics-client-common");
9
9
 
10
10
  var _localStorage = require("../storage/local-storage");
11
11
 
12
- var _cookie = require("../storage/cookie");
13
-
14
12
  const parseOldCookies = async (apiKey, options) => {
15
- let storage = new _cookie.CookieStorage();
13
+ let storage = new _analyticsClientCommon.CookieStorage();
16
14
 
17
15
  if (!(await storage.isEnabled()) || options !== null && options !== void 0 && options.disableCookies) {
18
16
  storage = new _localStorage.LocalStorage();
@@ -24,7 +22,7 @@ const parseOldCookies = async (apiKey, options) => {
24
22
  };
25
23
  }
26
24
 
27
- const oldCookieName = (0, _cookieName.getOldCookieName)(apiKey);
25
+ const oldCookieName = (0, _analyticsClientCommon.getOldCookieName)(apiKey);
28
26
  const cookies = await storage.getRaw(oldCookieName);
29
27
 
30
28
  if (!cookies) {
@@ -1 +1 @@
1
- {"version":3,"names":["parseOldCookies","apiKey","options","storage","CookieStorage","isEnabled","disableCookies","LocalStorage","optOut","oldCookieName","getOldCookieName","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 } 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"],"mappings":";;;;;;;AACA;;AACA;;AACA;;AAEO,MAAMA,eAAe,GAAG,OAAOC,MAAP,EAAuBC,OAAvB,KAA0E;EACvG,IAAIC,OAAwB,GAAG,IAAIC,qBAAJ,EAA/B;;EACA,IAAI,EAAE,MAAMD,OAAO,CAACE,SAAR,EAAR,KAAgCH,OAAhC,aAAgCA,OAAhC,eAAgCA,OAAO,CAAEI,cAA7C,EAA6D;IAC3DH,OAAO,GAAG,IAAII,0BAAJ,EAAV;EACD;;EACD,IAAI,EAAE,MAAMJ,OAAO,CAACE,SAAR,EAAR,CAAJ,EAAkC;IAChC,OAAO;MACLG,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAMC,aAAa,GAAG,IAAAC,4BAAA,EAAiBT,MAAjB,CAAtB;EACA,MAAMU,OAAO,GAAG,MAAMR,OAAO,CAACS,MAAR,CAAeH,aAAf,CAAtB;;EAEA,IAAI,CAACE,OAAL,EAAc;IACZ,OAAO;MACLH,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAML,OAAO,CAACU,MAAR,CAAeJ,aAAf,CAAN;EACA,MAAM,CAACK,QAAD,EAAWC,MAAX,EAAmBP,MAAnB,EAA2BQ,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;IAKLT,MAAM,EAAEa,OAAO,CAACb,MAAD;EALV,CAAP;AAOD,CA7BM;;;;AA+BA,MAAMY,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;;;;AAQA,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":["parseOldCookies","apiKey","options","storage","CookieStorage","isEnabled","disableCookies","LocalStorage","optOut","oldCookieName","getOldCookieName","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;;AACA;;AAEO,MAAMA,eAAe,GAAG,OAAOC,MAAP,EAAuBC,OAAvB,KAA0E;EACvG,IAAIC,OAAwB,GAAG,IAAIC,oCAAJ,EAA/B;;EACA,IAAI,EAAE,MAAMD,OAAO,CAACE,SAAR,EAAR,KAAgCH,OAAhC,aAAgCA,OAAhC,eAAgCA,OAAO,CAAEI,cAA7C,EAA6D;IAC3DH,OAAO,GAAG,IAAII,0BAAJ,EAAV;EACD;;EACD,IAAI,EAAE,MAAMJ,OAAO,CAACE,SAAR,EAAR,CAAJ,EAAkC;IAChC,OAAO;MACLG,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAMC,aAAa,GAAG,IAAAC,uCAAA,EAAiBT,MAAjB,CAAtB;EACA,MAAMU,OAAO,GAAG,MAAMR,OAAO,CAACS,MAAR,CAAeH,aAAf,CAAtB;;EAEA,IAAI,CAACE,OAAL,EAAc;IACZ,OAAO;MACLH,MAAM,EAAE;IADH,CAAP;EAGD;;EAED,MAAML,OAAO,CAACU,MAAR,CAAeJ,aAAf,CAAN;EACA,MAAM,CAACK,QAAD,EAAWC,MAAX,EAAmBP,MAAnB,EAA2BQ,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;IAKLT,MAAM,EAAEa,OAAO,CAACb,MAAD;EALV,CAAP;AAOD,CA7BM;;;;AA+BA,MAAMY,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;;;;AAQA,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"}
@@ -11,7 +11,7 @@ var _uaParserJs = _interopRequireDefault(require("@amplitude/ua-parser-js"));
11
11
 
12
12
  var _analyticsCore = require("@amplitude/analytics-core");
13
13
 
14
- var _language = require("../utils/language");
14
+ var _analyticsClientCommon = require("@amplitude/analytics-client-common");
15
15
 
16
16
  var _version = require("../version");
17
17
 
@@ -80,7 +80,7 @@ class Context {
80
80
  const osVersion = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.osVersion) || this.uaResult.browser.version;
81
81
  const deviceVendor = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.deviceManufacturer) || this.uaResult.device.vendor;
82
82
  const deviceModel = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.deviceModel) || this.uaResult.device.model || this.uaResult.os.name;
83
- const language = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.language) || (0, _language.getLanguage)();
83
+ const language = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.language) || (0, _analyticsClientCommon.getLanguage)();
84
84
  const carrier = nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.carrier;
85
85
  const adid = nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.adid;
86
86
  const event = {
@@ -121,6 +121,12 @@ class Context {
121
121
  insert_id: (0, _analyticsCore.UUID)(),
122
122
  partner_id: this.config.partnerId,
123
123
  plan: this.config.plan,
124
+ ...(this.config.ingestionMetadata && {
125
+ ingestion_metadata: {
126
+ source_name: this.config.ingestionMetadata.sourceName,
127
+ source_version: this.config.ingestionMetadata.sourceVersion
128
+ }
129
+ }),
124
130
  ...context,
125
131
  event_id: this.eventId++,
126
132
  library: this.library
@@ -1 +1 @@
1
- {"version":3,"names":["BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","PluginType","BEFORE","NativeModules","AmplitudeReactNative","VERSION","agent","navigator","userAgent","uaResult","UAParser","getResult","setup","config","Promise","resolve","undefined","execute","context","isSessionValid","sessionId","Date","now","lastEventTime","time","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","getLanguage","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","UUID","partner_id","partnerId","plan","event_id","eventId","library","timeSinceLastEvent","sessionTimeout"],"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 '../utils/language';\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 eventId = 0;\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 /**\n * Manages user session triggered by new events\n */\n if (!this.isSessionValid()) {\n // Creates new session\n this.config.sessionId = Date.now();\n } // else use previously creates session\n // Updates last event time to extend time-based session\n this.config.lastEventTime = Date.now();\n const time = new Date().getTime();\n const 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 ...context,\n event_id: this.eventId++,\n library: this.library,\n };\n return event;\n }\n\n isSessionValid() {\n const lastEventTime = this.config.lastEventTime || Date.now();\n const timeSinceLastEvent = Date.now() - lastEventTime;\n return timeSinceLastEvent < this.config.sessionTimeout;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","PluginType","BEFORE","NativeModules","AmplitudeReactNative","VERSION","agent","navigator","userAgent","uaResult","UAParser","getResult","setup","config","Promise","resolve","undefined","execute","context","isSessionValid","sessionId","Date","now","lastEventTime","time","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","getLanguage","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","UUID","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion","event_id","eventId","library","timeSinceLastEvent","sessionTimeout"],"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 eventId = 0;\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 /**\n * Manages user session triggered by new events\n */\n if (!this.isSessionValid()) {\n // Creates new session\n this.config.sessionId = Date.now();\n } // else use previously creates session\n // Updates last event time to extend time-based session\n this.config.lastEventTime = Date.now();\n const time = new Date().getTime();\n const 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 event_id: this.eventId++,\n library: this.library,\n };\n return event;\n }\n\n isSessionValid() {\n const lastEventTime = this.config.lastEventTime || Date.now();\n const timeSinceLastEvent = Date.now() - lastEventTime;\n return timeSinceLastEvent < this.config.sessionTimeout;\n }\n}\n"],"mappings":"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"}
@@ -7,20 +7,16 @@ exports.default = exports.createInstance = exports.AmplitudeReactNative = void 0
7
7
 
8
8
  var _analyticsCore = require("@amplitude/analytics-core");
9
9
 
10
+ var _analyticsClientCommon = require("@amplitude/analytics-client-common");
11
+
10
12
  var _context = require("./plugins/context");
11
13
 
12
14
  var _config = require("./config");
13
15
 
14
16
  var _cookieMigration = require("./cookie-migration");
15
17
 
16
- var _campaignTracker = require("./attribution/campaign-tracker");
17
-
18
18
  var _platform = require("./utils/platform");
19
19
 
20
- var _identity = require("./plugins/identity");
21
-
22
- var _analyticsConnector = require("./utils/analytics-connector");
23
-
24
20
  class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
25
21
  async init(apiKey, userId, options) {
26
22
  var _oldCookies$deviceId, _oldCookies$sessionId, _options$optOut;
@@ -55,7 +51,7 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
55
51
  // identity store.
56
52
 
57
53
 
58
- const connector = (0, _analyticsConnector.getAnalyticsConnector)();
54
+ const connector = (0, _analyticsClientCommon.getAnalyticsConnector)();
59
55
  connector.eventBridge.setEventReceiver(event => {
60
56
  void this.track(event.eventType, event.eventProperties);
61
57
  });
@@ -66,7 +62,7 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
66
62
  // Do not track any events before this
67
63
 
68
64
  await this.add(new _context.Context());
69
- await this.add(new _identity.IdentityEventSender());
65
+ await this.add(new _analyticsClientCommon.IdentityEventSender());
70
66
  await this.add(new _analyticsCore.Destination());
71
67
  this.initializing = false; // Step 5: Set timeline ready for processing events
72
68
  // Send existing events, which might be collected by track before init
@@ -91,7 +87,7 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
91
87
  const track = this.track.bind(this);
92
88
  const onNewCampaign = this.setSessionId.bind(this, Date.now());
93
89
  const storage = await (0, _config.createFlexibleStorage)(this.config);
94
- const campaignTracker = new _campaignTracker.CampaignTracker(this.config.apiKey, { ...attributionConfig,
90
+ const campaignTracker = new _analyticsClientCommon.CampaignTracker(this.config.apiKey, { ...attributionConfig,
95
91
  storage,
96
92
  track,
97
93
  onNewCampaign
@@ -112,7 +108,7 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
112
108
  }
113
109
 
114
110
  this.config.userId = userId;
115
- (0, _analyticsConnector.getAnalyticsConnector)().identityStore.editIdentity() // eslint-disable-next-line @typescript-eslint/ban-ts-comment
111
+ (0, _analyticsClientCommon.getAnalyticsConnector)().identityStore.editIdentity() // eslint-disable-next-line @typescript-eslint/ban-ts-comment
116
112
  // @ts-ignore
117
113
  .setUserId(userId).commit();
118
114
  }
@@ -130,7 +126,7 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
130
126
  }
131
127
 
132
128
  this.config.deviceId = deviceId;
133
- (0, _analyticsConnector.getAnalyticsConnector)().identityStore.editIdentity() // eslint-disable-next-line @typescript-eslint/ban-ts-comment
129
+ (0, _analyticsClientCommon.getAnalyticsConnector)().identityStore.editIdentity() // eslint-disable-next-line @typescript-eslint/ban-ts-comment
134
130
  // @ts-ignore
135
131
  .setDeviceId(deviceId).commit();
136
132
  }
@@ -1 +1 @@
1
- {"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","UUID","getSessionId","createInstance","client","returnWrapper","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AdditionalReactNativeOptions,\n AttributionReactNativeOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { CampaignTracker } from './attribution/campaign-tracker';\nimport { isNative } from './utils/platform';\nimport { IdentityEventSender } from './plugins/identity';\nimport { getAnalyticsConnector } from './utils/analytics-connector';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions & AdditionalReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionReactNativeOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
1
+ {"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","UUID","getSessionId","createInstance","client","returnWrapper","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AttributionOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
- const VERSION = '0.3.3';
7
+ const VERSION = '0.4.1';
8
8
  exports.VERSION = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.3.3';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.4.1';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
@@ -1,12 +1,8 @@
1
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
2
 
3
3
  import { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';
4
- import { CookieStorage } from './storage/cookie';
5
- import { FetchTransport } from './transports/fetch';
4
+ import { CookieStorage, getCookieName, getQueryParams, SessionManager, FetchTransport } from '@amplitude/analytics-client-common';
6
5
  import { LocalStorage } from './storage/local-storage';
7
- import { getCookieName } from './utils/cookie-name';
8
- import { getQueryParams } from './utils/query-params';
9
- import { SessionManager } from './session-manager';
10
6
  export const getDefaultConfig = () => {
11
7
  const cookieStorage = new MemoryStorage();
12
8
  const trackingOptions = {
@@ -1 +1 @@
1
- {"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","FetchTransport","LocalStorage","getCookieName","getQueryParams","SessionManager","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","sessionTimeout","storageProvider","transportProvider","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';\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 { SessionManager } from './session-manager';\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: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\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\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 }\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","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: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\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\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 }\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,6 +1,5 @@
1
- import { getOldCookieName } from '../utils/cookie-name';
1
+ import { getOldCookieName, CookieStorage } from '@amplitude/analytics-client-common';
2
2
  import { LocalStorage } from '../storage/local-storage';
3
- import { CookieStorage } from '../storage/cookie';
4
3
  export const parseOldCookies = async (apiKey, options) => {
5
4
  let storage = new CookieStorage();
6
5
 
@@ -1 +1 @@
1
- {"version":3,"names":["getOldCookieName","LocalStorage","CookieStorage","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 } 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"],"mappings":"AACA,SAASA,gBAAT,QAAiC,sBAAjC;AACA,SAASC,YAAT,QAA6B,0BAA7B;AACA,SAASC,aAAT,QAA8B,mBAA9B;AAEA,OAAO,MAAMC,eAAe,GAAG,OAAOC,MAAP,EAAuBC,OAAvB,KAA0E;EACvG,IAAIC,OAAwB,GAAG,IAAIJ,aAAJ,EAA/B;;EACA,IAAI,EAAE,MAAMI,OAAO,CAACC,SAAR,EAAR,KAAgCF,OAAhC,aAAgCA,OAAhC,eAAgCA,OAAO,CAAEG,cAA7C,EAA6D;IAC3DF,OAAO,GAAG,IAAIL,YAAJ,EAAV;EACD;;EACD,IAAI,EAAE,MAAMK,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"],"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"}
@@ -3,7 +3,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
3
3
  import { PluginType } from '@amplitude/analytics-types';
4
4
  import UAParser from '@amplitude/ua-parser-js';
5
5
  import { UUID } from '@amplitude/analytics-core';
6
- import { getLanguage } from '../utils/language';
6
+ import { getLanguage } from '@amplitude/analytics-client-common';
7
7
  import { VERSION } from '../version';
8
8
  import { NativeModules } from 'react-native';
9
9
  const BROWSER_PLATFORM = 'Web';
@@ -105,6 +105,12 @@ export class Context {
105
105
  insert_id: UUID(),
106
106
  partner_id: this.config.partnerId,
107
107
  plan: this.config.plan,
108
+ ...(this.config.ingestionMetadata && {
109
+ ingestion_metadata: {
110
+ source_name: this.config.ingestionMetadata.sourceName,
111
+ source_version: this.config.ingestionMetadata.sourceVersion
112
+ }
113
+ }),
108
114
  ...context,
109
115
  event_id: this.eventId++,
110
116
  library: this.library