@amplitude/analytics-react-native 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/lib/commonjs/config.js +1 -1
  2. package/lib/commonjs/config.js.map +1 -1
  3. package/lib/commonjs/plugins/context.js +0 -3
  4. package/lib/commonjs/plugins/context.js.map +1 -1
  5. package/lib/commonjs/react-native-client.js +10 -0
  6. package/lib/commonjs/react-native-client.js.map +1 -1
  7. package/lib/commonjs/version.js +1 -1
  8. package/lib/commonjs/version.js.map +1 -1
  9. package/lib/module/config.js +1 -1
  10. package/lib/module/config.js.map +1 -1
  11. package/lib/module/plugins/context.js +0 -3
  12. package/lib/module/plugins/context.js.map +1 -1
  13. package/lib/module/react-native-client.js +10 -0
  14. package/lib/module/react-native-client.js.map +1 -1
  15. package/lib/module/version.js +1 -1
  16. package/lib/module/version.js.map +1 -1
  17. package/lib/typescript/{src/config.d.ts → config.d.ts} +0 -0
  18. package/lib/typescript/config.d.ts.map +1 -0
  19. package/lib/typescript/{src/cookie-migration → cookie-migration}/index.d.ts +0 -0
  20. package/lib/typescript/cookie-migration/index.d.ts.map +1 -0
  21. package/lib/typescript/{src/index.d.ts → index.d.ts} +0 -0
  22. package/lib/typescript/index.d.ts.map +1 -0
  23. package/lib/typescript/{src/plugins → plugins}/context.d.ts +0 -1
  24. package/lib/typescript/plugins/context.d.ts.map +1 -0
  25. package/lib/typescript/{src/react-native-client.d.ts → react-native-client.d.ts} +0 -0
  26. package/lib/typescript/react-native-client.d.ts.map +1 -0
  27. package/lib/typescript/{src/storage → storage}/local-storage.d.ts +0 -0
  28. package/lib/typescript/storage/local-storage.d.ts.map +1 -0
  29. package/lib/typescript/{src/utils → utils}/platform.d.ts +0 -0
  30. package/lib/typescript/utils/platform.d.ts.map +1 -0
  31. package/lib/typescript/version.d.ts +2 -0
  32. package/lib/typescript/version.d.ts.map +1 -0
  33. package/package.json +5 -5
  34. package/src/config.ts +1 -1
  35. package/src/plugins/context.ts +0 -2
  36. package/src/react-native-client.ts +6 -0
  37. package/src/version.ts +1 -1
  38. package/lib/typescript/__mocks__/@react-native-async-storage/async-storage.d.ts +0 -3
  39. package/lib/typescript/__mocks__/@react-native-async-storage/async-storage.d.ts.map +0 -1
  40. package/lib/typescript/src/config.d.ts.map +0 -1
  41. package/lib/typescript/src/cookie-migration/index.d.ts.map +0 -1
  42. package/lib/typescript/src/index.d.ts.map +0 -1
  43. package/lib/typescript/src/plugins/context.d.ts.map +0 -1
  44. package/lib/typescript/src/react-native-client.d.ts.map +0 -1
  45. package/lib/typescript/src/storage/local-storage.d.ts.map +0 -1
  46. package/lib/typescript/src/utils/platform.d.ts.map +0 -1
  47. package/lib/typescript/src/version.d.ts +0 -2
  48. package/lib/typescript/src/version.d.ts.map +0 -1
@@ -34,7 +34,7 @@ const getDefaultConfig = () => {
34
34
  disableCookies: false,
35
35
  domain: '',
36
36
  sessionManager: new _analyticsClientCommon.SessionManager(cookieStorage, ''),
37
- sessionTimeout: 30 * 60 * 1000,
37
+ sessionTimeout: 5 * 60 * 1000,
38
38
  storageProvider: new _analyticsCore.MemoryStorage(),
39
39
  trackingOptions,
40
40
  transportProvider: new _analyticsClientCommon.FetchTransport(),
@@ -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","trackingSessionEvents","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 trackingSessionEvents: false,\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n trackingSessionEvents: boolean;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","transportProvider","FetchTransport","trackingSessionEvents","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: 5 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n trackingSessionEvents: false,\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n trackingSessionEvents: boolean;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":"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"}
@@ -35,8 +35,6 @@ class Context {
35
35
 
36
36
  _defineProperty(this, "config", void 0);
37
37
 
38
- _defineProperty(this, "eventId", 0);
39
-
40
38
  _defineProperty(this, "uaResult", void 0);
41
39
 
42
40
  _defineProperty(this, "nativeModule", _reactNative.NativeModules.AmplitudeReactNative);
@@ -117,7 +115,6 @@ class Context {
117
115
  }
118
116
  }),
119
117
  ...context,
120
- event_id: this.eventId++,
121
118
  library: this.library
122
119
  };
123
120
  return event;
@@ -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","time","Date","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","sessionId","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"],"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 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"],"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","time","Date","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","sessionId","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","library"],"sources":["context.ts"],"sourcesContent":["import { BeforePlugin, ReactNativeConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nimport { NativeModules } from 'react-native';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\ntype NativeContext = {\n version: string;\n platform: string;\n language: string;\n osName: string;\n osVersion: string;\n deviceBrand: string;\n deviceManufacturer: string;\n deviceModel: string;\n carrier: string;\n adid: string;\n};\n\nexport interface AmplitudeReactNative {\n getApplicationContext(): Promise<NativeContext>;\n}\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: ReactNativeConfig;\n uaResult: UAParser.IResult;\n nativeModule: AmplitudeReactNative | undefined = NativeModules.AmplitudeReactNative as\n | AmplitudeReactNative\n | undefined;\n library = `amplitude-react-native-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: ReactNativeConfig): Promise<undefined> {\n this.config = config;\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n const time = new Date().getTime();\n const nativeContext = await this.nativeModule?.getApplicationContext();\n const appVersion = nativeContext?.version || this.config.appVersion;\n const platform = nativeContext?.platform || BROWSER_PLATFORM;\n const osName = nativeContext?.osName || this.uaResult.browser.name;\n const osVersion = nativeContext?.osVersion || this.uaResult.browser.version;\n const deviceVendor = nativeContext?.deviceManufacturer || this.uaResult.device.vendor;\n const deviceModel = nativeContext?.deviceModel || this.uaResult.device.model || this.uaResult.os.name;\n const language = nativeContext?.language || getLanguage();\n const carrier = nativeContext?.carrier;\n const adid = nativeContext?.adid;\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: appVersion }),\n ...(this.config.trackingOptions.platform && { platform: platform }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: language }),\n ...(this.config.trackingOptions.carrier && { carrier: carrier }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n ...(this.config.trackingOptions.adid && { adid: adid }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n library: this.library,\n };\n return event;\n }\n}\n"],"mappings":"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"}
@@ -240,6 +240,16 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
240
240
  if (event.session_id == undefined) {
241
241
  event.session_id = this.getSessionId();
242
242
  }
243
+
244
+ if (event.event_id === undefined) {
245
+ var _this$config$sessionM;
246
+
247
+ const eventId = ((_this$config$sessionM = this.config.sessionManager.getLastEventId()) !== null && _this$config$sessionM !== void 0 ? _this$config$sessionM : -1) + 1;
248
+ event = { ...event,
249
+ event_id: eventId
250
+ };
251
+ this.config.sessionManager.setLastEventId(eventId);
252
+ }
243
253
  }
244
254
 
245
255
  return super.process(event);
@@ -1 +1 @@
1
- {"version":3,"names":["START_SESSION_EVENT","END_SESSION_EVENT","AmplitudeReactNative","AmplitudeCore","nextAppState","currentAppState","appState","startNewSessionIfNeeded","init","apiKey","userId","options","initializing","explicitSessionId","sessionId","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","optOut","lastEventTime","_init","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","config","add","Context","IdentityEventSender","Destination","AppState","currentState","isNewSession","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","shutdown","removeEventListener","attributionConfig","isNative","bind","onNewCampaign","setSessionId","currentTimeMillis","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","UUID","getSessionId","setSessionIdInternal","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","Date","now","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","createInstance","client","debugWrapper","returnWrapper","getClientLogConfig","getClientStates","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AppState, AppStateStatus } from 'react-native';\nimport {\n AmplitudeCore,\n Destination,\n UUID,\n returnWrapper,\n debugWrapper,\n getClientLogConfig,\n getClientStates,\n} 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 Identify as IIdentify,\n EventOptions,\n Event,\n Result,\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\nconst START_SESSION_EVENT = 'session_start';\nconst END_SESSION_EVENT = 'session_end';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n appState: AppStateStatus = 'background';\n explicitSessionId: number | undefined;\n\n async init(apiKey = '', userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n this.explicitSessionId = options?.sessionId;\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,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\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 3: 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 // Step 4: Manage session\n this.appState = AppState.currentState;\n const isNewSession = this.startNewSessionIfNeeded();\n AppState.addEventListener('change', this.handleAppStateChange);\n\n this.initializing = false;\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n\n // Step 6: Run queued functions\n await this.runQueuedFunctions('dispatchQ');\n }\n\n shutdown() {\n AppState.removeEventListener('change', this.handleAppStateChange);\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, this.currentTimeMillis());\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 identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\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\n this.explicitSessionId = sessionId;\n void this.setSessionIdInternal(sessionId, this.currentTimeMillis());\n }\n\n private setSessionIdInternal(sessionId: number, eventTime: number) {\n const previousSessionId = this.config.sessionId;\n if (previousSessionId === sessionId) {\n return;\n }\n\n this.config.sessionId = sessionId;\n\n if (this.config.trackingSessionEvents) {\n if (previousSessionId !== undefined) {\n const sessionEndEvent: Event = {\n event_type: END_SESSION_EVENT,\n time: this.config.lastEventTime !== undefined ? this.config.lastEventTime + 1 : sessionId, // increment lastEventTime to sort events properly in UI - session_end should be the last event in a session\n session_id: previousSessionId,\n };\n void this.track(sessionEndEvent);\n }\n\n const sessionStartEvent: Event = {\n event_type: START_SESSION_EVENT,\n time: eventTime,\n session_id: sessionId,\n };\n void this.track(sessionStartEvent);\n }\n\n this.config.lastEventTime = eventTime;\n }\n\n async process(event: Event): Promise<Result> {\n if (!this.config.optOut) {\n const eventTime = event.time ?? this.currentTimeMillis();\n if (event.time === undefined) {\n event = { ...event, time: eventTime };\n }\n\n if (event.event_type != START_SESSION_EVENT && event.event_type != END_SESSION_EVENT) {\n if (this.appState !== 'active') {\n this.startNewSessionIfNeeded(eventTime);\n }\n }\n this.config.lastEventTime = eventTime;\n\n if (event.session_id == undefined) {\n event.session_id = this.getSessionId();\n }\n }\n\n return super.process(event);\n }\n\n currentTimeMillis() {\n return Date.now();\n }\n\n private startNewSessionIfNeeded(eventTime?: number): boolean {\n eventTime = eventTime ?? this.currentTimeMillis();\n const sessionId = this.explicitSessionId ?? eventTime;\n\n if (\n this.inSession() &&\n (this.explicitSessionId === this.config.sessionId ||\n (this.explicitSessionId === undefined && this.isWithinMinTimeBetweenSessions(sessionId)))\n ) {\n this.config.lastEventTime = eventTime;\n return false;\n }\n\n this.setSessionIdInternal(sessionId, eventTime);\n return true;\n }\n\n private isWithinMinTimeBetweenSessions(eventTime: number) {\n return eventTime - (this.config.lastEventTime ?? 0) < this.config.sessionTimeout;\n }\n\n private inSession() {\n return this.config.sessionId != undefined;\n }\n\n private readonly handleAppStateChange = (nextAppState: AppStateStatus) => {\n const currentAppState = this.appState;\n this.appState = nextAppState;\n if (currentAppState !== nextAppState && nextAppState === 'active') {\n this.startNewSessionIfNeeded();\n }\n };\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: debugWrapper(\n returnWrapper(client.init.bind(client)),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n returnWrapper(client.add.bind(client)),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n returnWrapper(client.remove.bind(client)),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n returnWrapper(client.track.bind(client)),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n returnWrapper(client.logEvent.bind(client)),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n returnWrapper(client.identify.bind(client)),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n returnWrapper(client.groupIdentify.bind(client)),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n returnWrapper(client.setGroup.bind(client)),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n returnWrapper(client.revenue.bind(client)),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n returnWrapper(client.flush.bind(client)),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"],"mappings":";;;;;;;AAAA;;AACA;;AASA;;AAYA;;AACA;;AACA;;AACA;;;;AAEA,MAAMA,mBAAmB,GAAG,eAA5B;AACA,MAAMC,iBAAiB,GAAG,aAA1B;;AAEO,MAAMC,oBAAN,SAAmCC,4BAAnC,CAAoE;EAAA;IAAA;;IAAA,kCAC9C,YAD8C;;IAAA;;IAAA,8CAgOhCC,YAAD,IAAkC;MACxE,MAAMC,eAAe,GAAG,KAAKC,QAA7B;MACA,KAAKA,QAAL,GAAgBF,YAAhB;;MACA,IAAIC,eAAe,KAAKD,YAApB,IAAoCA,YAAY,KAAK,QAAzD,EAAmE;QACjE,KAAKG,uBAAL;MACD;IACF,CAtOwE;EAAA;;EAI/D,MAAJC,IAAI,GAA6D;IAAA;;IAAA,IAA5DC,MAA4D,uEAAnD,EAAmD;IAAA,IAA/CC,MAA+C;IAAA,IAA9BC,OAA8B;;IACrE;IACA,IAAI,KAAKC,YAAT,EAAuB;MACrB;IACD;;IACD,KAAKA,YAAL,GAAoB,IAApB;IACA,KAAKC,iBAAL,GAAyBF,OAAzB,aAAyBA,OAAzB,uBAAyBA,OAAO,CAAEG,SAAlC,CANqE,CAQrE;;IACA,MAAMC,UAAU,GAAG,MAAM,IAAAC,gCAAA,EAAgBP,MAAhB,EAAwBE,OAAxB,CAAzB,CATqE,CAWrE;;IACA,MAAMM,kBAAkB,GAAG,MAAM,IAAAC,4BAAA,EAAqBT,MAArB,EAA6BC,MAAM,IAAIK,UAAU,CAACL,MAAlD,EAA0D,EACzF,GAAGC,OADsF;MAEzFQ,QAAQ,0BAAEJ,UAAU,CAACI,QAAb,uEAAyBR,OAAzB,aAAyBA,OAAzB,uBAAyBA,OAAO,CAAEQ,QAF+C;MAGzFL,SAAS,EAAEC,UAAU,CAACD,SAHmE;MAIzFM,MAAM,qBAAET,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAES,MAAX,6DAAqBL,UAAU,CAACK,MAJmD;MAKzFC,aAAa,EAAEN,UAAU,CAACM;IAL+D,CAA1D,CAAjC;IAOA,MAAM,MAAMC,KAAN,CAAYL,kBAAZ,CAAN,CAnBqE,CAqBrE;IACA;IACA;;IACA,MAAMM,SAAS,GAAG,IAAAC,4CAAA,GAAlB;IACAD,SAAS,CAACE,WAAV,CAAsBC,gBAAtB,CAAwCC,KAAD,IAAW;MAChD,KAAK,KAAKC,KAAL,CAAWD,KAAK,CAACE,SAAjB,EAA4BF,KAAK,CAACG,eAAlC,CAAL;IACD,CAFD;IAGAP,SAAS,CAACQ,aAAV,CAAwBC,WAAxB,CAAoC;MAClCtB,MAAM,EAAE,KAAKuB,MAAL,CAAYvB,MADc;MAElCS,QAAQ,EAAE,KAAKc,MAAL,CAAYd;IAFY,CAApC,EA5BqE,CAiCrE;IACA;;IACA,MAAM,KAAKe,GAAL,CAAS,IAAIC,gBAAJ,EAAT,CAAN;IACA,MAAM,KAAKD,GAAL,CAAS,IAAIE,0CAAJ,EAAT,CAAN;IACA,MAAM,KAAKF,GAAL,CAAS,IAAIG,0BAAJ,EAAT,CAAN,CArCqE,CAuCrE;;IACA,KAAK/B,QAAL,GAAgBgC,qBAAA,CAASC,YAAzB;IACA,MAAMC,YAAY,GAAG,KAAKjC,uBAAL,EAArB;;IACA+B,qBAAA,CAASG,gBAAT,CAA0B,QAA1B,EAAoC,KAAKC,oBAAzC;;IAEA,KAAK9B,YAAL,GAAoB,KAApB,CA5CqE,CA8CrE;;IACA,MAAM,KAAK+B,sBAAL,CAA4BhC,OAA5B,aAA4BA,OAA5B,uBAA4BA,OAAO,CAAEiC,WAArC,EAAkDJ,YAAlD,CAAN,CA/CqE,CAiDrE;;IACA,MAAM,KAAKK,kBAAL,CAAwB,WAAxB,CAAN;EACD;;EAEDC,QAAQ,GAAG;IACTR,qBAAA,CAASS,mBAAT,CAA6B,QAA7B,EAAuC,KAAKL,oBAA5C;EACD;;EAE2B,MAAtBC,sBAAsB,CAACK,iBAAD,EAA+D;IAAA,IAAtBR,YAAsB,uEAAP,KAAO;;IACzF,IAAI,IAAAS,kBAAA,GAAJ,EAAgB;MACd;IACD;;IACD,MAAMrB,KAAK,GAAG,KAAKA,KAAL,CAAWsB,IAAX,CAAgB,IAAhB,CAAd;IACA,MAAMC,aAAa,GAAG,KAAKC,YAAL,CAAkBF,IAAlB,CAAuB,IAAvB,EAA6B,KAAKG,iBAAL,EAA7B,CAAtB;IAEA,MAAMC,OAAO,GAAG,MAAM,IAAAC,6BAAA,EAAgC,KAAKtB,MAArC,CAAtB;IACA,MAAMuB,eAAe,GAAG,IAAIC,sCAAJ,CAAoB,KAAKxB,MAAL,CAAYxB,MAAhC,EAAwC,EAC9D,GAAGuC,iBAD2D;MAE9DM,OAF8D;MAG9D1B,KAH8D;MAI9DuB;IAJ8D,CAAxC,CAAxB;IAOA,MAAMK,eAAe,CAACE,IAAhB,CAAqBlB,YAArB,CAAN;EACD;;EAEDmB,SAAS,GAAG;IAAA;;IACV,uBAAO,KAAK1B,MAAZ,iDAAO,aAAavB,MAApB;EACD;;EAEDkD,SAAS,CAAClD,MAAD,EAA6B;IACpC,IAAI,CAAC,KAAKuB,MAAV,EAAkB;MAChB,KAAK4B,CAAL,CAAOC,IAAP,CAAY,KAAKF,SAAL,CAAeV,IAAf,CAAoB,IAApB,EAA0BxC,MAA1B,CAAZ;MACA;IACD;;IACD,KAAKuB,MAAL,CAAYvB,MAAZ,GAAqBA,MAArB;IACA,IAAAc,4CAAA,IACGO,aADH,CACiBgC,YADjB,GAEE;IACA;IAHF,CAIGH,SAJH,CAIalD,MAJb,EAKGsD,MALH;EAMD;;EAEDC,WAAW,GAAG;IAAA;;IACZ,wBAAO,KAAKhC,MAAZ,kDAAO,cAAad,QAApB;EACD;;EAED+C,WAAW,CAAC/C,QAAD,EAAmB;IAC5B,IAAI,CAAC,KAAKc,MAAV,EAAkB;MAChB,KAAK4B,CAAL,CAAOC,IAAP,CAAY,KAAKI,WAAL,CAAiBhB,IAAjB,CAAsB,IAAtB,EAA4B/B,QAA5B,CAAZ;MACA;IACD;;IACD,KAAKc,MAAL,CAAYd,QAAZ,GAAuBA,QAAvB;IACA,IAAAK,4CAAA,IACGO,aADH,CACiBgC,YADjB,GAEE;IACA;IAHF,CAIGG,WAJH,CAIe/C,QAJf,EAKG6C,MALH;EAMD;;EAEDG,QAAQ,CAACA,QAAD,EAAsBC,YAAtB,EAAmD;IACzD,IAAIA,YAAJ,aAAIA,YAAJ,eAAIA,YAAY,CAAEC,OAAlB,EAA2B;MACzB,KAAKT,SAAL,CAAeQ,YAAY,CAACC,OAA5B;IACD;;IACD,IAAID,YAAJ,aAAIA,YAAJ,eAAIA,YAAY,CAAEE,SAAlB,EAA6B;MAC3B,KAAKJ,WAAL,CAAiBE,YAAY,CAACE,SAA9B;IACD;;IACD,OAAO,MAAMH,QAAN,CAAeA,QAAf,EAAyBC,YAAzB,CAAP;EACD;;EAEDG,KAAK,GAAG;IACN,KAAKX,SAAL,CAAeY,SAAf;IACA,KAAKN,WAAL,CAAiB,IAAAO,mBAAA,GAAjB;EACD;;EAEDC,YAAY,GAAG;IAAA;;IACb,wBAAO,KAAKzC,MAAZ,kDAAO,cAAanB,SAApB;EACD;;EAEDsC,YAAY,CAACtC,SAAD,EAAoB;IAC9B,IAAI,CAAC,KAAKmB,MAAV,EAAkB;MAChB,KAAK4B,CAAL,CAAOC,IAAP,CAAY,KAAKV,YAAL,CAAkBF,IAAlB,CAAuB,IAAvB,EAA6BpC,SAA7B,CAAZ;MACA;IACD;;IAED,KAAKD,iBAAL,GAAyBC,SAAzB;IACA,KAAK,KAAK6D,oBAAL,CAA0B7D,SAA1B,EAAqC,KAAKuC,iBAAL,EAArC,CAAL;EACD;;EAEOsB,oBAAoB,CAAC7D,SAAD,EAAoB8D,SAApB,EAAuC;IACjE,MAAMC,iBAAiB,GAAG,KAAK5C,MAAL,CAAYnB,SAAtC;;IACA,IAAI+D,iBAAiB,KAAK/D,SAA1B,EAAqC;MACnC;IACD;;IAED,KAAKmB,MAAL,CAAYnB,SAAZ,GAAwBA,SAAxB;;IAEA,IAAI,KAAKmB,MAAL,CAAY6C,qBAAhB,EAAuC;MACrC,IAAID,iBAAiB,KAAKL,SAA1B,EAAqC;QACnC,MAAMO,eAAsB,GAAG;UAC7BC,UAAU,EAAE/E,iBADiB;UAE7BgF,IAAI,EAAE,KAAKhD,MAAL,CAAYZ,aAAZ,KAA8BmD,SAA9B,GAA0C,KAAKvC,MAAL,CAAYZ,aAAZ,GAA4B,CAAtE,GAA0EP,SAFnD;UAE8D;UAC3FoE,UAAU,EAAEL;QAHiB,CAA/B;QAKA,KAAK,KAAKjD,KAAL,CAAWmD,eAAX,CAAL;MACD;;MAED,MAAMI,iBAAwB,GAAG;QAC/BH,UAAU,EAAEhF,mBADmB;QAE/BiF,IAAI,EAAEL,SAFyB;QAG/BM,UAAU,EAAEpE;MAHmB,CAAjC;MAKA,KAAK,KAAKc,KAAL,CAAWuD,iBAAX,CAAL;IACD;;IAED,KAAKlD,MAAL,CAAYZ,aAAZ,GAA4BuD,SAA5B;EACD;;EAEY,MAAPQ,OAAO,CAACzD,KAAD,EAAgC;IAC3C,IAAI,CAAC,KAAKM,MAAL,CAAYb,MAAjB,EAAyB;MAAA;;MACvB,MAAMwD,SAAS,kBAAGjD,KAAK,CAACsD,IAAT,qDAAiB,KAAK5B,iBAAL,EAAhC;;MACA,IAAI1B,KAAK,CAACsD,IAAN,KAAeT,SAAnB,EAA8B;QAC5B7C,KAAK,GAAG,EAAE,GAAGA,KAAL;UAAYsD,IAAI,EAAEL;QAAlB,CAAR;MACD;;MAED,IAAIjD,KAAK,CAACqD,UAAN,IAAoBhF,mBAApB,IAA2C2B,KAAK,CAACqD,UAAN,IAAoB/E,iBAAnE,EAAsF;QACpF,IAAI,KAAKK,QAAL,KAAkB,QAAtB,EAAgC;UAC9B,KAAKC,uBAAL,CAA6BqE,SAA7B;QACD;MACF;;MACD,KAAK3C,MAAL,CAAYZ,aAAZ,GAA4BuD,SAA5B;;MAEA,IAAIjD,KAAK,CAACuD,UAAN,IAAoBV,SAAxB,EAAmC;QACjC7C,KAAK,CAACuD,UAAN,GAAmB,KAAKR,YAAL,EAAnB;MACD;IACF;;IAED,OAAO,MAAMU,OAAN,CAAczD,KAAd,CAAP;EACD;;EAED0B,iBAAiB,GAAG;IAClB,OAAOgC,IAAI,CAACC,GAAL,EAAP;EACD;;EAEO/E,uBAAuB,CAACqE,SAAD,EAA8B;IAAA;;IAC3DA,SAAS,iBAAGA,SAAH,mDAAgB,KAAKvB,iBAAL,EAAzB;IACA,MAAMvC,SAAS,4BAAG,KAAKD,iBAAR,yEAA6B+D,SAA5C;;IAEA,IACE,KAAKW,SAAL,OACC,KAAK1E,iBAAL,KAA2B,KAAKoB,MAAL,CAAYnB,SAAvC,IACE,KAAKD,iBAAL,KAA2B2D,SAA3B,IAAwC,KAAKgB,8BAAL,CAAoC1E,SAApC,CAF3C,CADF,EAIE;MACA,KAAKmB,MAAL,CAAYZ,aAAZ,GAA4BuD,SAA5B;MACA,OAAO,KAAP;IACD;;IAED,KAAKD,oBAAL,CAA0B7D,SAA1B,EAAqC8D,SAArC;IACA,OAAO,IAAP;EACD;;EAEOY,8BAA8B,CAACZ,SAAD,EAAoB;IAAA;;IACxD,OAAOA,SAAS,6BAAI,KAAK3C,MAAL,CAAYZ,aAAhB,yEAAiC,CAAjC,CAAT,GAA+C,KAAKY,MAAL,CAAYwD,cAAlE;EACD;;EAEOF,SAAS,GAAG;IAClB,OAAO,KAAKtD,MAAL,CAAYnB,SAAZ,IAAyB0D,SAAhC;EACD;;AA9NwE;;;;AAyOpE,MAAMkB,cAAc,GAAG,MAAyB;EACrD,MAAMC,MAAM,GAAG,IAAIzF,oBAAJ,EAAf;EACA,OAAO;IACLM,IAAI,EAAE,IAAAoF,2BAAA,EACJ,IAAAC,4BAAA,EAAcF,MAAM,CAACnF,IAAP,CAAY0C,IAAZ,CAAiByC,MAAjB,CAAd,CADI,EAEJ,MAFI,EAGJ,IAAAG,iCAAA,EAAmBH,MAAnB,CAHI,EAIJ,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,CAAxB,CAJI,CADD;IAOLzD,GAAG,EAAE,IAAA0D,2BAAA,EACH,IAAAC,4BAAA,EAAcF,MAAM,CAACzD,GAAP,CAAWgB,IAAX,CAAgByC,MAAhB,CAAd,CADG,EAEH,KAFG,EAGH,IAAAG,iCAAA,EAAmBH,MAAnB,CAHG,EAIH,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,kBAAlB,CAAxB,CAJG,CAPA;IAaLK,MAAM,EAAE,IAAAJ,2BAAA,EACN,IAAAC,4BAAA,EAAcF,MAAM,CAACK,MAAP,CAAc9C,IAAd,CAAmByC,MAAnB,CAAd,CADM,EAEN,QAFM,EAGN,IAAAG,iCAAA,EAAmBH,MAAnB,CAHM,EAIN,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,kBAAlB,CAAxB,CAJM,CAbH;IAmBL/D,KAAK,EAAE,IAAAgE,2BAAA,EACL,IAAAC,4BAAA,EAAcF,MAAM,CAAC/D,KAAP,CAAasB,IAAb,CAAkByC,MAAlB,CAAd,CADK,EAEL,OAFK,EAGL,IAAAG,iCAAA,EAAmBH,MAAnB,CAHK,EAIL,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJK,CAnBF;IAyBLM,QAAQ,EAAE,IAAAL,2BAAA,EACR,IAAAC,4BAAA,EAAcF,MAAM,CAACM,QAAP,CAAgB/C,IAAhB,CAAqByC,MAArB,CAAd,CADQ,EAER,UAFQ,EAGR,IAAAG,iCAAA,EAAmBH,MAAnB,CAHQ,EAIR,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJQ,CAzBL;IA+BLxB,QAAQ,EAAE,IAAAyB,2BAAA,EACR,IAAAC,4BAAA,EAAcF,MAAM,CAACxB,QAAP,CAAgBjB,IAAhB,CAAqByC,MAArB,CAAd,CADQ,EAER,UAFQ,EAGR,IAAAG,iCAAA,EAAmBH,MAAnB,CAHQ,EAIR,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJQ,CA/BL;IAqCLO,aAAa,EAAE,IAAAN,2BAAA,EACb,IAAAC,4BAAA,EAAcF,MAAM,CAACO,aAAP,CAAqBhD,IAArB,CAA0ByC,MAA1B,CAAd,CADa,EAEb,eAFa,EAGb,IAAAG,iCAAA,EAAmBH,MAAnB,CAHa,EAIb,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJa,CArCV;IA2CLQ,QAAQ,EAAE,IAAAP,2BAAA,EACR,IAAAC,4BAAA,EAAcF,MAAM,CAACQ,QAAP,CAAgBjD,IAAhB,CAAqByC,MAArB,CAAd,CADQ,EAER,UAFQ,EAGR,IAAAG,iCAAA,EAAmBH,MAAnB,CAHQ,EAIR,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJQ,CA3CL;IAiDLS,OAAO,EAAE,IAAAR,2BAAA,EACP,IAAAC,4BAAA,EAAcF,MAAM,CAACS,OAAP,CAAelD,IAAf,CAAoByC,MAApB,CAAd,CADO,EAEP,SAFO,EAGP,IAAAG,iCAAA,EAAmBH,MAAnB,CAHO,EAIP,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJO,CAjDJ;IAuDLU,KAAK,EAAE,IAAAT,2BAAA,EACL,IAAAC,4BAAA,EAAcF,MAAM,CAACU,KAAP,CAAanD,IAAb,CAAkByC,MAAlB,CAAd,CADK,EAEL,OAFK,EAGL,IAAAG,iCAAA,EAAmBH,MAAnB,CAHK,EAIL,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,eAAD,EAAkB,uBAAlB,CAAxB,CAJK,CAvDF;IA6DLhC,SAAS,EAAE,IAAAiC,2BAAA,EACTD,MAAM,CAAChC,SAAP,CAAiBT,IAAjB,CAAsByC,MAAtB,CADS,EAET,WAFS,EAGT,IAAAG,iCAAA,EAAmBH,MAAnB,CAHS,EAIT,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,EAAW,eAAX,CAAxB,CAJS,CA7DN;IAmEL/B,SAAS,EAAE,IAAAgC,2BAAA,EACTD,MAAM,CAAC/B,SAAP,CAAiBV,IAAjB,CAAsByC,MAAtB,CADS,EAET,WAFS,EAGT,IAAAG,iCAAA,EAAmBH,MAAnB,CAHS,EAIT,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,EAAW,eAAX,CAAxB,CAJS,CAnEN;IAyEL1B,WAAW,EAAE,IAAA2B,2BAAA,EACXD,MAAM,CAAC1B,WAAP,CAAmBf,IAAnB,CAAwByC,MAAxB,CADW,EAEX,aAFW,EAGX,IAAAG,iCAAA,EAAmBH,MAAnB,CAHW,EAIX,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,EAAW,iBAAX,CAAxB,CAJW,CAzER;IA+ELzB,WAAW,EAAE,IAAA0B,2BAAA,EACXD,MAAM,CAACzB,WAAP,CAAmBhB,IAAnB,CAAwByC,MAAxB,CADW,EAEX,aAFW,EAGX,IAAAG,iCAAA,EAAmBH,MAAnB,CAHW,EAIX,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,EAAW,iBAAX,CAAxB,CAJW,CA/ER;IAqFLpB,KAAK,EAAE,IAAAqB,2BAAA,EACLD,MAAM,CAACpB,KAAP,CAAarB,IAAb,CAAkByC,MAAlB,CADK,EAEL,OAFK,EAGL,IAAAG,iCAAA,EAAmBH,MAAnB,CAHK,EAIL,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,EAAW,eAAX,EAA4B,iBAA5B,CAAxB,CAJK,CArFF;IA2FLjB,YAAY,EAAE,IAAAkB,2BAAA,EACZD,MAAM,CAACjB,YAAP,CAAoBxB,IAApB,CAAyByC,MAAzB,CADY,EAEZ,cAFY,EAGZ,IAAAG,iCAAA,EAAmBH,MAAnB,CAHY,EAIZ,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,CAAxB,CAJY,CA3FT;IAiGLvC,YAAY,EAAE,IAAAwC,2BAAA,EACZD,MAAM,CAACvC,YAAP,CAAoBF,IAApB,CAAyByC,MAAzB,CADY,EAEZ,cAFY,EAGZ,IAAAG,iCAAA,EAAmBH,MAAnB,CAHY,EAIZ,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,CAAxB,CAJY,CAjGT;IAuGLW,SAAS,EAAE,IAAAV,2BAAA,EACTD,MAAM,CAACW,SAAP,CAAiBpD,IAAjB,CAAsByC,MAAtB,CADS,EAET,WAFS,EAGT,IAAAG,iCAAA,EAAmBH,MAAnB,CAHS,EAIT,IAAAI,8BAAA,EAAgBJ,MAAhB,EAAwB,CAAC,QAAD,CAAxB,CAJS;EAvGN,CAAP;AA8GD,CAhHM;;;;eAkHQD,cAAc,E"}
1
+ {"version":3,"names":["START_SESSION_EVENT","END_SESSION_EVENT","AmplitudeReactNative","AmplitudeCore","nextAppState","currentAppState","appState","startNewSessionIfNeeded","init","apiKey","userId","options","initializing","explicitSessionId","sessionId","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","optOut","lastEventTime","_init","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","config","add","Context","IdentityEventSender","Destination","AppState","currentState","isNewSession","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","shutdown","removeEventListener","attributionConfig","isNative","bind","onNewCampaign","setSessionId","currentTimeMillis","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","UUID","getSessionId","setSessionIdInternal","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","event_id","eventId","sessionManager","getLastEventId","setLastEventId","Date","now","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","createInstance","client","debugWrapper","returnWrapper","getClientLogConfig","getClientStates","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AppState, AppStateStatus } from 'react-native';\nimport {\n AmplitudeCore,\n Destination,\n UUID,\n returnWrapper,\n debugWrapper,\n getClientLogConfig,\n getClientStates,\n} 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 Identify as IIdentify,\n EventOptions,\n Event,\n Result,\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\nconst START_SESSION_EVENT = 'session_start';\nconst END_SESSION_EVENT = 'session_end';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n appState: AppStateStatus = 'background';\n explicitSessionId: number | undefined;\n\n async init(apiKey = '', userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n this.explicitSessionId = options?.sessionId;\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,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\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 3: 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 // Step 4: Manage session\n this.appState = AppState.currentState;\n const isNewSession = this.startNewSessionIfNeeded();\n AppState.addEventListener('change', this.handleAppStateChange);\n\n this.initializing = false;\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n\n // Step 6: Run queued functions\n await this.runQueuedFunctions('dispatchQ');\n }\n\n shutdown() {\n AppState.removeEventListener('change', this.handleAppStateChange);\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, this.currentTimeMillis());\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 identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\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\n this.explicitSessionId = sessionId;\n void this.setSessionIdInternal(sessionId, this.currentTimeMillis());\n }\n\n private setSessionIdInternal(sessionId: number, eventTime: number) {\n const previousSessionId = this.config.sessionId;\n if (previousSessionId === sessionId) {\n return;\n }\n\n this.config.sessionId = sessionId;\n\n if (this.config.trackingSessionEvents) {\n if (previousSessionId !== undefined) {\n const sessionEndEvent: Event = {\n event_type: END_SESSION_EVENT,\n time: this.config.lastEventTime !== undefined ? this.config.lastEventTime + 1 : sessionId, // increment lastEventTime to sort events properly in UI - session_end should be the last event in a session\n session_id: previousSessionId,\n };\n void this.track(sessionEndEvent);\n }\n\n const sessionStartEvent: Event = {\n event_type: START_SESSION_EVENT,\n time: eventTime,\n session_id: sessionId,\n };\n void this.track(sessionStartEvent);\n }\n\n this.config.lastEventTime = eventTime;\n }\n\n async process(event: Event): Promise<Result> {\n if (!this.config.optOut) {\n const eventTime = event.time ?? this.currentTimeMillis();\n if (event.time === undefined) {\n event = { ...event, time: eventTime };\n }\n\n if (event.event_type != START_SESSION_EVENT && event.event_type != END_SESSION_EVENT) {\n if (this.appState !== 'active') {\n this.startNewSessionIfNeeded(eventTime);\n }\n }\n this.config.lastEventTime = eventTime;\n\n if (event.session_id == undefined) {\n event.session_id = this.getSessionId();\n }\n\n if (event.event_id === undefined) {\n const eventId = (this.config.sessionManager.getLastEventId() ?? -1) + 1;\n event = { ...event, event_id: eventId };\n this.config.sessionManager.setLastEventId(eventId);\n }\n }\n\n return super.process(event);\n }\n\n currentTimeMillis() {\n return Date.now();\n }\n\n private startNewSessionIfNeeded(eventTime?: number): boolean {\n eventTime = eventTime ?? this.currentTimeMillis();\n const sessionId = this.explicitSessionId ?? eventTime;\n\n if (\n this.inSession() &&\n (this.explicitSessionId === this.config.sessionId ||\n (this.explicitSessionId === undefined && this.isWithinMinTimeBetweenSessions(sessionId)))\n ) {\n this.config.lastEventTime = eventTime;\n return false;\n }\n\n this.setSessionIdInternal(sessionId, eventTime);\n return true;\n }\n\n private isWithinMinTimeBetweenSessions(eventTime: number) {\n return eventTime - (this.config.lastEventTime ?? 0) < this.config.sessionTimeout;\n }\n\n private inSession() {\n return this.config.sessionId != undefined;\n }\n\n private readonly handleAppStateChange = (nextAppState: AppStateStatus) => {\n const currentAppState = this.appState;\n this.appState = nextAppState;\n if (currentAppState !== nextAppState && nextAppState === 'active') {\n this.startNewSessionIfNeeded();\n }\n };\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: debugWrapper(\n returnWrapper(client.init.bind(client)),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n returnWrapper(client.add.bind(client)),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n returnWrapper(client.remove.bind(client)),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n returnWrapper(client.track.bind(client)),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n returnWrapper(client.logEvent.bind(client)),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n returnWrapper(client.identify.bind(client)),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n returnWrapper(client.groupIdentify.bind(client)),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n returnWrapper(client.setGroup.bind(client)),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n returnWrapper(client.revenue.bind(client)),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n returnWrapper(client.flush.bind(client)),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\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.6.0';
7
+ const VERSION = '0.7.0';
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.6.0';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.7.0';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
@@ -24,7 +24,7 @@ export const getDefaultConfig = () => {
24
24
  disableCookies: false,
25
25
  domain: '',
26
26
  sessionManager: new SessionManager(cookieStorage, ''),
27
- sessionTimeout: 30 * 60 * 1000,
27
+ sessionTimeout: 5 * 60 * 1000,
28
28
  storageProvider: new MemoryStorage(),
29
29
  trackingOptions,
30
30
  transportProvider: new FetchTransport(),
@@ -1 +1 @@
1
- {"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","getCookieName","getQueryParams","SessionManager","FetchTransport","LocalStorage","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","sessionTimeout","storageProvider","transportProvider","trackingSessionEvents","ReactNativeConfig","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","cookies","get","queryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n ReactNativeTrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport {\n CookieStorage,\n getCookieName,\n getQueryParams,\n SessionManager,\n FetchTransport,\n} from '@amplitude/analytics-client-common';\n\nimport { LocalStorage } from './storage/local-storage';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n const trackingOptions: Required<ReactNativeTrackingOptions> = {\n adid: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n };\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n trackingSessionEvents: false,\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n trackingSessionEvents: boolean;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":";;AASA,SAASA,MAAT,EAAiBC,aAAjB,EAAgCC,IAAhC,QAA4C,2BAA5C;AACA,SACEC,aADF,EAEEC,aAFF,EAGEC,cAHF,EAIEC,cAJF,EAKEC,cALF,QAMO,oCANP;AAQA,SAASC,YAAT,QAA6B,yBAA7B;AAEA,OAAO,MAAMC,gBAAgB,GAAG,MAAM;EACpC,MAAMC,aAAa,GAAG,IAAIT,aAAJ,EAAtB;EACA,MAAMU,eAAqD,GAAG;IAC5DC,IAAI,EAAE,IADsD;IAE5DC,OAAO,EAAE,IAFmD;IAG5DC,kBAAkB,EAAE,IAHwC;IAI5DC,WAAW,EAAE,IAJ+C;IAK5DC,SAAS,EAAE,IALiD;IAM5DC,QAAQ,EAAE,IANkD;IAO5DC,MAAM,EAAE,IAPoD;IAQ5DC,SAAS,EAAE,IARiD;IAS5DC,QAAQ,EAAE;EATkD,CAA9D;EAWA,OAAO;IACLC,gBAAgB,EAAE,GADb;IAELC,cAAc,EAAE,KAFX;IAGLC,YAAY,EAAE,KAHT;IAILb,aAJK;IAKLc,cAAc,EAAE,KALX;IAMLC,MAAM,EAAE,EANH;IAOLC,cAAc,EAAE,IAAIpB,cAAJ,CAAmBI,aAAnB,EAAkC,EAAlC,CAPX;IAQLiB,cAAc,EAAE,KAAK,EAAL,GAAU,IARrB;IASLC,eAAe,EAAE,IAAI3B,aAAJ,EATZ;IAULU,eAVK;IAWLkB,iBAAiB,EAAE,IAAItB,cAAJ,EAXd;IAYLuB,qBAAqB,EAAE;EAZlB,CAAP;AAcD,CA3BM;AA6BP,OAAO,MAAMC,iBAAN,SAAgC/B,MAAhC,CAAqE;EAc1EgC,WAAW,CAACC,MAAD,EAAiBC,MAAjB,EAAkCC,OAAlC,EAAgE;IAAA;;IACzE,MAAMC,aAAa,GAAG3B,gBAAgB,EAAtC;IACA,MAAM;MACJ4B,mBAAmB,EAAE,IADjB;MAEJC,eAAe,EAAE,CAFb;MAGJC,cAAc,EAAE,EAHZ;MAIJ,GAAGJ,OAJC;MAKJF,MALI;MAMJL,eAAe,2BAAEO,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEP,eAAX,yEAA8BQ,aAAa,CAACR,eANvD;MAOJC,iBAAiB,2BAAEM,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEN,iBAAX,yEAAgCO,aAAa,CAACP;IAP3D,CAAN;;IAFyE;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAWzE,KAAKnB,aAAL,4BAAqByB,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEzB,aAA9B,yEAA+C0B,aAAa,CAAC1B,aAA7D;IACA,KAAKgB,cAAL,4BAAsBS,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAET,cAA/B,yEAAiDU,aAAa,CAACV,cAA/D;IACA,KAAKC,cAAL,4BAAsBQ,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAER,cAA/B,yEAAiDS,aAAa,CAACT,cAA/D;IAEA,KAAKa,UAAL,GAAkBL,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEK,UAA3B;IACA,KAAKnB,gBAAL,4BAAwBc,OAAxB,aAAwBA,OAAxB,uBAAwBA,OAAO,CAAEd,gBAAjC,yEAAqDe,aAAa,CAACf,gBAAnE;IACA,KAAKC,cAAL,4BAAsBa,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAEb,cAA/B,yEAAiDc,aAAa,CAACd,cAA/D;IACA,KAAKC,YAAL,4BAAoBY,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEZ,YAA7B,yEAA6Ca,aAAa,CAACb,YAA3D;IACA,KAAKkB,QAAL,GAAgBN,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEM,QAAzB;IACA,KAAKjB,cAAL,4BAAsBW,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAEX,cAA/B,yEAAiDY,aAAa,CAACZ,cAA/D;IACA,KAAKC,MAAL,sBAAcU,OAAd,aAAcA,OAAd,uBAAcA,OAAO,CAAEV,MAAvB,6DAAiCW,aAAa,CAACX,MAA/C;IACA,KAAKiB,aAAL,0BAAqB,KAAKA,aAA1B,qEAA2CP,OAA3C,aAA2CA,OAA3C,uBAA2CA,OAAO,CAAEO,aAApD;IACA,KAAKC,MAAL,GAAcC,OAAO,CAACT,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEQ,MAAV,CAArB;IACA,KAAKE,SAAL,GAAiBV,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEU,SAA1B;IACA,KAAKC,SAAL,GAAiBX,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEW,SAA1B;IACA,KAAKnC,eAAL,4BAAuBwB,OAAvB,aAAuBA,OAAvB,uBAAuBA,OAAO,CAAExB,eAAhC,yEAAmDyB,aAAa,CAACzB,eAAjE;IACA,KAAKuB,MAAL,GAAcA,MAAd;IACA,KAAKJ,qBAAL,4BAA6BK,OAA7B,aAA6BA,OAA7B,uBAA6BA,OAAO,CAAEL,qBAAtC,yEAA+DM,aAAa,CAACN,qBAA7E;EACD;;EAEW,IAARW,QAAQ,GAAG;IACb,OAAO,KAAKf,cAAL,CAAoBqB,WAApB,EAAP;EACD;;EAEW,IAARN,QAAQ,CAACA,QAAD,EAA+B;IACzC,KAAKf,cAAL,CAAoBsB,WAApB,CAAgCP,QAAhC;EACD;;EAES,IAANP,MAAM,GAAG;IACX,OAAO,KAAKR,cAAL,CAAoBuB,SAApB,EAAP;EACD;;EAES,IAANf,MAAM,CAACA,MAAD,EAA6B;IACrC,KAAKR,cAAL,CAAoBwB,SAApB,CAA8BhB,MAA9B;EACD;;EAEY,IAATY,SAAS,GAAG;IACd,OAAO,KAAKpB,cAAL,CAAoByB,YAApB,EAAP;EACD;;EAEY,IAATL,SAAS,CAACA,SAAD,EAAgC;IAC3C,KAAKpB,cAAL,CAAoB0B,YAApB,CAAiCN,SAAjC;EACD;;EAES,IAANH,MAAM,GAAG;IACX,OAAO,KAAKjB,cAAL,CAAoB2B,SAApB,EAAP;EACD;;EAES,IAANV,MAAM,CAACA,MAAD,EAAkB;IAAA;;IAC1B,6BAAKjB,cAAL,8EAAqB4B,SAArB,CAA+BV,OAAO,CAACD,MAAD,CAAtC;EACD;;EAEgB,IAAbD,aAAa,GAAG;IAClB,OAAO,KAAKhB,cAAL,CAAoB6B,gBAApB,EAAP;EACD;;EAEgB,IAAbb,aAAa,CAACA,aAAD,EAAoC;IACnD,KAAKhB,cAAL,CAAoB8B,gBAApB,CAAqCd,aAArC;EACD;;AAnFyE;AAsF5E,OAAO,MAAMe,oBAAoB,GAAG,OAClCxB,MADkC,EAElCC,MAFkC,EAGlCC,OAHkC,KAIF;EAAA;;EAChC,MAAMC,aAAa,GAAG3B,gBAAgB,EAAtC;EACA,MAAMgB,MAAM,uBAAGU,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEV,MAAZ,+DAAuB,MAAMiC,iBAAiB,EAA1D;EACA,MAAMhD,aAAa,GAAG,MAAMiD,mBAAmB,CAAC,EAAE,GAAGxB,OAAL;IAAcV;EAAd,CAAD,CAA/C;EACA,MAAMmC,UAAU,GAAGxD,aAAa,CAAC6B,MAAD,CAAhC;EACA,MAAM4B,OAAO,GAAG,MAAMnD,aAAa,CAACoD,GAAd,CAAkBF,UAAlB,CAAtB;EACA,MAAMG,WAAW,GAAG1D,cAAc,EAAlC;EACA,MAAMqB,cAAc,GAAG,MAAM,IAAIpB,cAAJ,CAAmBI,aAAnB,EAAkCuB,MAAlC,EAA0C+B,IAA1C,EAA7B;EAEA,OAAO,IAAIjC,iBAAJ,CAAsBE,MAAtB,EAA8BC,MAA9B,aAA8BA,MAA9B,cAA8BA,MAA9B,GAAwC2B,OAAxC,aAAwCA,OAAxC,uBAAwCA,OAAO,CAAE3B,MAAjD,EAAyD,EAC9D,GAAGC,OAD2D;IAE9DzB,aAF8D;IAG9DgB,cAH8D;IAI9De,QAAQ,EAAEwB,cAAc,CAACJ,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEpB,QAAV,EAAoBN,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEM,QAA7B,EAAuCsB,WAAW,CAACtB,QAAnD,CAJsC;IAK9DhB,MAL8D;IAM9DkB,MAAM,qBAAER,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEQ,MAAX,6DAAqBC,OAAO,CAACiB,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAElB,MAAV,CAN4B;IAO9DG,SAAS,qDAAG,MAAMpC,aAAa,CAACoD,GAAd,CAAkBF,UAAlB,CAAT,2DAAE,uBAAuCd,SAAzC,yEAAsDX,OAAtD,aAAsDA,OAAtD,uBAAsDA,OAAO,CAAEW,SAPV;IAQ9DlB,eAAe,EAAE,MAAMsC,mBAAmB,CAAC/B,OAAD,CARoB;IAS9DxB,eAAe,EAAE,EAAE,GAAGyB,aAAa,CAACzB,eAAnB;MAAoC,IAAGwB,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAExB,eAAZ;IAApC,CAT6C;IAU9DkB,iBAAiB,4BAAEM,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEN,iBAAX,2EAAgC,IAAItB,cAAJ;EAVa,CAAzD,CAAP;AAYD,CAzBM;AA2BP,OAAO,MAAMoD,mBAAmB,GAAG,gBACjCQ,SADiC,EAGC;EAAA,IADlCC,UACkC,uEADrB3D,gBAAgB,EACK;EAClC,MAAM0B,OAAO,GAAG,EAAE,GAAGiC,UAAL;IAAiB,GAAGD;EAApB,CAAhB;EACA,MAAMzD,aAAa,GAAGyD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEzD,aAAjC;;EACA,IAAI,CAACA,aAAD,IAAkB,EAAE,MAAMA,aAAa,CAAC2D,SAAd,EAAR,CAAtB,EAA0D;IACxD,OAAOC,qBAAqB,CAAcnC,OAAd,CAA5B;EACD;;EACD,OAAOzB,aAAP;AACD,CAVM;AAYP,OAAO,MAAM4D,qBAAqB,GAAG,MAAUnC,OAAV,IAA+D;EAClG,IAAIoC,OAAmB,GAAG,IAAIpE,aAAJ,CAAkB;IAC1CsB,MAAM,EAAEU,OAAO,CAACV,MAD0B;IAE1C+C,cAAc,EAAErC,OAAO,CAACd,gBAFkB;IAG1CoD,QAAQ,EAAEtC,OAAO,CAACb,cAHwB;IAI1CoD,MAAM,EAAEvC,OAAO,CAACZ;EAJ0B,CAAlB,CAA1B;;EAMA,IAAIY,OAAO,CAACX,cAAR,IAA0B,EAAE,MAAM+C,OAAO,CAACF,SAAR,EAAR,CAA9B,EAA4D;IAC1DE,OAAO,GAAG,IAAI/D,YAAJ,EAAV;;IACA,IAAI,EAAE,MAAM+D,OAAO,CAACF,SAAR,EAAR,CAAJ,EAAkC;MAChCE,OAAO,GAAG,IAAItE,aAAJ,EAAV;IACD;EACF;;EACD,OAAOsE,OAAP;AACD,CAdM;AAgBP,OAAO,MAAML,mBAAmB,GAAG,MAAOC,SAAP,IAAiF;EAClH,MAAMQ,0BAA0B,GAAGR,SAAS,IAAIS,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCZ,SAArC,EAAgD,iBAAhD,CAAhD,CADkH,CAElH;EACA;EACA;EACA;EACA;;EACA,IAAI,CAACQ,0BAAD,IAA+BR,SAAS,CAACvC,eAA7C,EAA8D;IAC5D,KAAK,MAAM2C,OAAX,IAAsB,CAACJ,SAAD,aAACA,SAAD,uBAACA,SAAS,CAAEvC,eAAZ,EAA6B,IAAIpB,YAAJ,EAA7B,CAAtB,EAAiF;MAC/E,IAAI+D,OAAO,KAAK,MAAMA,OAAO,CAACF,SAAR,EAAX,CAAX,EAA4C;QAC1C,OAAOE,OAAP;MACD;IACF;EACF;;EACD,OAAOS,SAAP;AACD,CAfM;AAiBP,OAAO,MAAMf,cAAc,GAAG,CAACgB,aAAD,EAAyBC,aAAzB,EAAiDC,iBAAjD,KAAgF;EAC5G,OAAOD,aAAa,IAAIC,iBAAjB,IAAsCF,aAAtC,IAAuD/E,IAAI,EAAlE;AACD,CAFM;AAIP,OAAO,MAAMwD,iBAAiB,GAAG,MAAO0B,GAAP,IAAwB;EACvD,IAAI,EAAE,MAAM,IAAIjF,aAAJ,GAA4BkE,SAA5B,EAAR,KAAqD,CAACe,GAAD,IAAQ,OAAOC,QAAP,KAAoB,WAArF,EAAmG;IACjG,OAAO,EAAP;EACD;;EAED,MAAMC,IAAI,GAAGF,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUC,QAAQ,CAACE,QAA7B;EACA,MAAMC,KAAK,GAAGF,IAAI,CAACG,KAAL,CAAW,GAAX,CAAd;EACA,MAAMC,MAAM,GAAG,EAAf;EACA,MAAMC,UAAU,GAAG,aAAnB;;EAEA,KAAK,IAAIC,CAAC,GAAGJ,KAAK,CAACK,MAAN,GAAe,CAA5B,EAA+BD,CAAC,IAAI,CAApC,EAAuC,EAAEA,CAAzC,EAA4C;IAC1CF,MAAM,CAACI,IAAP,CAAYN,KAAK,CAACO,KAAN,CAAYH,CAAZ,EAAeI,IAAf,CAAoB,GAApB,CAAZ;EACD;;EACD,KAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAAM,CAACG,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;IACtC,MAAMnE,MAAM,GAAGiE,MAAM,CAACE,CAAD,CAArB;IACA,MAAMzD,OAAO,GAAG;MAAEV,MAAM,EAAE,MAAMA;IAAhB,CAAhB;IACA,MAAM8C,OAAO,GAAG,IAAIpE,aAAJ,CAA0BgC,OAA1B,CAAhB;IACA,MAAMoC,OAAO,CAAC0B,GAAR,CAAYN,UAAZ,EAAwB,CAAxB,CAAN;IACA,MAAMO,KAAK,GAAG,MAAM3B,OAAO,CAACT,GAAR,CAAY6B,UAAZ,CAApB;;IACA,IAAIO,KAAJ,EAAW;MACT,MAAM3B,OAAO,CAAC4B,MAAR,CAAeR,UAAf,CAAN;MACA,OAAO,MAAMlE,MAAb;IACD;EACF;;EAED,OAAO,EAAP;AACD,CA1BM"}
1
+ {"version":3,"names":["Config","MemoryStorage","UUID","CookieStorage","getCookieName","getQueryParams","SessionManager","FetchTransport","LocalStorage","getDefaultConfig","cookieStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","sessionTimeout","storageProvider","transportProvider","trackingSessionEvents","ReactNativeConfig","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","cookies","get","queryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n ReactNativeTrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport {\n CookieStorage,\n getCookieName,\n getQueryParams,\n SessionManager,\n FetchTransport,\n} from '@amplitude/analytics-client-common';\n\nimport { LocalStorage } from './storage/local-storage';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n const trackingOptions: Required<ReactNativeTrackingOptions> = {\n adid: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n };\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 5 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n trackingSessionEvents: false,\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n trackingSessionEvents: boolean;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n this.trackingSessionEvents = options?.trackingSessionEvents ?? defaultConfig.trackingSessionEvents;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":";;AASA,SAASA,MAAT,EAAiBC,aAAjB,EAAgCC,IAAhC,QAA4C,2BAA5C;AACA,SACEC,aADF,EAEEC,aAFF,EAGEC,cAHF,EAIEC,cAJF,EAKEC,cALF,QAMO,oCANP;AAQA,SAASC,YAAT,QAA6B,yBAA7B;AAEA,OAAO,MAAMC,gBAAgB,GAAG,MAAM;EACpC,MAAMC,aAAa,GAAG,IAAIT,aAAJ,EAAtB;EACA,MAAMU,eAAqD,GAAG;IAC5DC,IAAI,EAAE,IADsD;IAE5DC,OAAO,EAAE,IAFmD;IAG5DC,kBAAkB,EAAE,IAHwC;IAI5DC,WAAW,EAAE,IAJ+C;IAK5DC,SAAS,EAAE,IALiD;IAM5DC,QAAQ,EAAE,IANkD;IAO5DC,MAAM,EAAE,IAPoD;IAQ5DC,SAAS,EAAE,IARiD;IAS5DC,QAAQ,EAAE;EATkD,CAA9D;EAWA,OAAO;IACLC,gBAAgB,EAAE,GADb;IAELC,cAAc,EAAE,KAFX;IAGLC,YAAY,EAAE,KAHT;IAILb,aAJK;IAKLc,cAAc,EAAE,KALX;IAMLC,MAAM,EAAE,EANH;IAOLC,cAAc,EAAE,IAAIpB,cAAJ,CAAmBI,aAAnB,EAAkC,EAAlC,CAPX;IAQLiB,cAAc,EAAE,IAAI,EAAJ,GAAS,IARpB;IASLC,eAAe,EAAE,IAAI3B,aAAJ,EATZ;IAULU,eAVK;IAWLkB,iBAAiB,EAAE,IAAItB,cAAJ,EAXd;IAYLuB,qBAAqB,EAAE;EAZlB,CAAP;AAcD,CA3BM;AA6BP,OAAO,MAAMC,iBAAN,SAAgC/B,MAAhC,CAAqE;EAc1EgC,WAAW,CAACC,MAAD,EAAiBC,MAAjB,EAAkCC,OAAlC,EAAgE;IAAA;;IACzE,MAAMC,aAAa,GAAG3B,gBAAgB,EAAtC;IACA,MAAM;MACJ4B,mBAAmB,EAAE,IADjB;MAEJC,eAAe,EAAE,CAFb;MAGJC,cAAc,EAAE,EAHZ;MAIJ,GAAGJ,OAJC;MAKJF,MALI;MAMJL,eAAe,2BAAEO,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEP,eAAX,yEAA8BQ,aAAa,CAACR,eANvD;MAOJC,iBAAiB,2BAAEM,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEN,iBAAX,yEAAgCO,aAAa,CAACP;IAP3D,CAAN;;IAFyE;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAWzE,KAAKnB,aAAL,4BAAqByB,OAArB,aAAqBA,OAArB,uBAAqBA,OAAO,CAAEzB,aAA9B,yEAA+C0B,aAAa,CAAC1B,aAA7D;IACA,KAAKgB,cAAL,4BAAsBS,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAET,cAA/B,yEAAiDU,aAAa,CAACV,cAA/D;IACA,KAAKC,cAAL,4BAAsBQ,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAER,cAA/B,yEAAiDS,aAAa,CAACT,cAA/D;IAEA,KAAKa,UAAL,GAAkBL,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEK,UAA3B;IACA,KAAKnB,gBAAL,4BAAwBc,OAAxB,aAAwBA,OAAxB,uBAAwBA,OAAO,CAAEd,gBAAjC,yEAAqDe,aAAa,CAACf,gBAAnE;IACA,KAAKC,cAAL,4BAAsBa,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAEb,cAA/B,yEAAiDc,aAAa,CAACd,cAA/D;IACA,KAAKC,YAAL,4BAAoBY,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEZ,YAA7B,yEAA6Ca,aAAa,CAACb,YAA3D;IACA,KAAKkB,QAAL,GAAgBN,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEM,QAAzB;IACA,KAAKjB,cAAL,4BAAsBW,OAAtB,aAAsBA,OAAtB,uBAAsBA,OAAO,CAAEX,cAA/B,yEAAiDY,aAAa,CAACZ,cAA/D;IACA,KAAKC,MAAL,sBAAcU,OAAd,aAAcA,OAAd,uBAAcA,OAAO,CAAEV,MAAvB,6DAAiCW,aAAa,CAACX,MAA/C;IACA,KAAKiB,aAAL,0BAAqB,KAAKA,aAA1B,qEAA2CP,OAA3C,aAA2CA,OAA3C,uBAA2CA,OAAO,CAAEO,aAApD;IACA,KAAKC,MAAL,GAAcC,OAAO,CAACT,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEQ,MAAV,CAArB;IACA,KAAKE,SAAL,GAAiBV,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEU,SAA1B;IACA,KAAKC,SAAL,GAAiBX,OAAjB,aAAiBA,OAAjB,uBAAiBA,OAAO,CAAEW,SAA1B;IACA,KAAKnC,eAAL,4BAAuBwB,OAAvB,aAAuBA,OAAvB,uBAAuBA,OAAO,CAAExB,eAAhC,yEAAmDyB,aAAa,CAACzB,eAAjE;IACA,KAAKuB,MAAL,GAAcA,MAAd;IACA,KAAKJ,qBAAL,4BAA6BK,OAA7B,aAA6BA,OAA7B,uBAA6BA,OAAO,CAAEL,qBAAtC,yEAA+DM,aAAa,CAACN,qBAA7E;EACD;;EAEW,IAARW,QAAQ,GAAG;IACb,OAAO,KAAKf,cAAL,CAAoBqB,WAApB,EAAP;EACD;;EAEW,IAARN,QAAQ,CAACA,QAAD,EAA+B;IACzC,KAAKf,cAAL,CAAoBsB,WAApB,CAAgCP,QAAhC;EACD;;EAES,IAANP,MAAM,GAAG;IACX,OAAO,KAAKR,cAAL,CAAoBuB,SAApB,EAAP;EACD;;EAES,IAANf,MAAM,CAACA,MAAD,EAA6B;IACrC,KAAKR,cAAL,CAAoBwB,SAApB,CAA8BhB,MAA9B;EACD;;EAEY,IAATY,SAAS,GAAG;IACd,OAAO,KAAKpB,cAAL,CAAoByB,YAApB,EAAP;EACD;;EAEY,IAATL,SAAS,CAACA,SAAD,EAAgC;IAC3C,KAAKpB,cAAL,CAAoB0B,YAApB,CAAiCN,SAAjC;EACD;;EAES,IAANH,MAAM,GAAG;IACX,OAAO,KAAKjB,cAAL,CAAoB2B,SAApB,EAAP;EACD;;EAES,IAANV,MAAM,CAACA,MAAD,EAAkB;IAAA;;IAC1B,6BAAKjB,cAAL,8EAAqB4B,SAArB,CAA+BV,OAAO,CAACD,MAAD,CAAtC;EACD;;EAEgB,IAAbD,aAAa,GAAG;IAClB,OAAO,KAAKhB,cAAL,CAAoB6B,gBAApB,EAAP;EACD;;EAEgB,IAAbb,aAAa,CAACA,aAAD,EAAoC;IACnD,KAAKhB,cAAL,CAAoB8B,gBAApB,CAAqCd,aAArC;EACD;;AAnFyE;AAsF5E,OAAO,MAAMe,oBAAoB,GAAG,OAClCxB,MADkC,EAElCC,MAFkC,EAGlCC,OAHkC,KAIF;EAAA;;EAChC,MAAMC,aAAa,GAAG3B,gBAAgB,EAAtC;EACA,MAAMgB,MAAM,uBAAGU,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEV,MAAZ,+DAAuB,MAAMiC,iBAAiB,EAA1D;EACA,MAAMhD,aAAa,GAAG,MAAMiD,mBAAmB,CAAC,EAAE,GAAGxB,OAAL;IAAcV;EAAd,CAAD,CAA/C;EACA,MAAMmC,UAAU,GAAGxD,aAAa,CAAC6B,MAAD,CAAhC;EACA,MAAM4B,OAAO,GAAG,MAAMnD,aAAa,CAACoD,GAAd,CAAkBF,UAAlB,CAAtB;EACA,MAAMG,WAAW,GAAG1D,cAAc,EAAlC;EACA,MAAMqB,cAAc,GAAG,MAAM,IAAIpB,cAAJ,CAAmBI,aAAnB,EAAkCuB,MAAlC,EAA0C+B,IAA1C,EAA7B;EAEA,OAAO,IAAIjC,iBAAJ,CAAsBE,MAAtB,EAA8BC,MAA9B,aAA8BA,MAA9B,cAA8BA,MAA9B,GAAwC2B,OAAxC,aAAwCA,OAAxC,uBAAwCA,OAAO,CAAE3B,MAAjD,EAAyD,EAC9D,GAAGC,OAD2D;IAE9DzB,aAF8D;IAG9DgB,cAH8D;IAI9De,QAAQ,EAAEwB,cAAc,CAACJ,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEpB,QAAV,EAAoBN,OAApB,aAAoBA,OAApB,uBAAoBA,OAAO,CAAEM,QAA7B,EAAuCsB,WAAW,CAACtB,QAAnD,CAJsC;IAK9DhB,MAL8D;IAM9DkB,MAAM,qBAAER,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEQ,MAAX,6DAAqBC,OAAO,CAACiB,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAElB,MAAV,CAN4B;IAO9DG,SAAS,qDAAG,MAAMpC,aAAa,CAACoD,GAAd,CAAkBF,UAAlB,CAAT,2DAAE,uBAAuCd,SAAzC,yEAAsDX,OAAtD,aAAsDA,OAAtD,uBAAsDA,OAAO,CAAEW,SAPV;IAQ9DlB,eAAe,EAAE,MAAMsC,mBAAmB,CAAC/B,OAAD,CARoB;IAS9DxB,eAAe,EAAE,EAAE,GAAGyB,aAAa,CAACzB,eAAnB;MAAoC,IAAGwB,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAExB,eAAZ;IAApC,CAT6C;IAU9DkB,iBAAiB,4BAAEM,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEN,iBAAX,2EAAgC,IAAItB,cAAJ;EAVa,CAAzD,CAAP;AAYD,CAzBM;AA2BP,OAAO,MAAMoD,mBAAmB,GAAG,gBACjCQ,SADiC,EAGC;EAAA,IADlCC,UACkC,uEADrB3D,gBAAgB,EACK;EAClC,MAAM0B,OAAO,GAAG,EAAE,GAAGiC,UAAL;IAAiB,GAAGD;EAApB,CAAhB;EACA,MAAMzD,aAAa,GAAGyD,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEzD,aAAjC;;EACA,IAAI,CAACA,aAAD,IAAkB,EAAE,MAAMA,aAAa,CAAC2D,SAAd,EAAR,CAAtB,EAA0D;IACxD,OAAOC,qBAAqB,CAAcnC,OAAd,CAA5B;EACD;;EACD,OAAOzB,aAAP;AACD,CAVM;AAYP,OAAO,MAAM4D,qBAAqB,GAAG,MAAUnC,OAAV,IAA+D;EAClG,IAAIoC,OAAmB,GAAG,IAAIpE,aAAJ,CAAkB;IAC1CsB,MAAM,EAAEU,OAAO,CAACV,MAD0B;IAE1C+C,cAAc,EAAErC,OAAO,CAACd,gBAFkB;IAG1CoD,QAAQ,EAAEtC,OAAO,CAACb,cAHwB;IAI1CoD,MAAM,EAAEvC,OAAO,CAACZ;EAJ0B,CAAlB,CAA1B;;EAMA,IAAIY,OAAO,CAACX,cAAR,IAA0B,EAAE,MAAM+C,OAAO,CAACF,SAAR,EAAR,CAA9B,EAA4D;IAC1DE,OAAO,GAAG,IAAI/D,YAAJ,EAAV;;IACA,IAAI,EAAE,MAAM+D,OAAO,CAACF,SAAR,EAAR,CAAJ,EAAkC;MAChCE,OAAO,GAAG,IAAItE,aAAJ,EAAV;IACD;EACF;;EACD,OAAOsE,OAAP;AACD,CAdM;AAgBP,OAAO,MAAML,mBAAmB,GAAG,MAAOC,SAAP,IAAiF;EAClH,MAAMQ,0BAA0B,GAAGR,SAAS,IAAIS,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCZ,SAArC,EAAgD,iBAAhD,CAAhD,CADkH,CAElH;EACA;EACA;EACA;EACA;;EACA,IAAI,CAACQ,0BAAD,IAA+BR,SAAS,CAACvC,eAA7C,EAA8D;IAC5D,KAAK,MAAM2C,OAAX,IAAsB,CAACJ,SAAD,aAACA,SAAD,uBAACA,SAAS,CAAEvC,eAAZ,EAA6B,IAAIpB,YAAJ,EAA7B,CAAtB,EAAiF;MAC/E,IAAI+D,OAAO,KAAK,MAAMA,OAAO,CAACF,SAAR,EAAX,CAAX,EAA4C;QAC1C,OAAOE,OAAP;MACD;IACF;EACF;;EACD,OAAOS,SAAP;AACD,CAfM;AAiBP,OAAO,MAAMf,cAAc,GAAG,CAACgB,aAAD,EAAyBC,aAAzB,EAAiDC,iBAAjD,KAAgF;EAC5G,OAAOD,aAAa,IAAIC,iBAAjB,IAAsCF,aAAtC,IAAuD/E,IAAI,EAAlE;AACD,CAFM;AAIP,OAAO,MAAMwD,iBAAiB,GAAG,MAAO0B,GAAP,IAAwB;EACvD,IAAI,EAAE,MAAM,IAAIjF,aAAJ,GAA4BkE,SAA5B,EAAR,KAAqD,CAACe,GAAD,IAAQ,OAAOC,QAAP,KAAoB,WAArF,EAAmG;IACjG,OAAO,EAAP;EACD;;EAED,MAAMC,IAAI,GAAGF,GAAH,aAAGA,GAAH,cAAGA,GAAH,GAAUC,QAAQ,CAACE,QAA7B;EACA,MAAMC,KAAK,GAAGF,IAAI,CAACG,KAAL,CAAW,GAAX,CAAd;EACA,MAAMC,MAAM,GAAG,EAAf;EACA,MAAMC,UAAU,GAAG,aAAnB;;EAEA,KAAK,IAAIC,CAAC,GAAGJ,KAAK,CAACK,MAAN,GAAe,CAA5B,EAA+BD,CAAC,IAAI,CAApC,EAAuC,EAAEA,CAAzC,EAA4C;IAC1CF,MAAM,CAACI,IAAP,CAAYN,KAAK,CAACO,KAAN,CAAYH,CAAZ,EAAeI,IAAf,CAAoB,GAApB,CAAZ;EACD;;EACD,KAAK,IAAIJ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,MAAM,CAACG,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;IACtC,MAAMnE,MAAM,GAAGiE,MAAM,CAACE,CAAD,CAArB;IACA,MAAMzD,OAAO,GAAG;MAAEV,MAAM,EAAE,MAAMA;IAAhB,CAAhB;IACA,MAAM8C,OAAO,GAAG,IAAIpE,aAAJ,CAA0BgC,OAA1B,CAAhB;IACA,MAAMoC,OAAO,CAAC0B,GAAR,CAAYN,UAAZ,EAAwB,CAAxB,CAAN;IACA,MAAMO,KAAK,GAAG,MAAM3B,OAAO,CAACT,GAAR,CAAY6B,UAAZ,CAApB;;IACA,IAAIO,KAAJ,EAAW;MACT,MAAM3B,OAAO,CAAC4B,MAAR,CAAeR,UAAf,CAAN;MACA,OAAO,MAAMlE,MAAb;IACD;EACF;;EAED,OAAO,EAAP;AACD,CA1BM"}
@@ -19,8 +19,6 @@ export class Context {
19
19
 
20
20
  _defineProperty(this, "config", void 0);
21
21
 
22
- _defineProperty(this, "eventId", 0);
23
-
24
22
  _defineProperty(this, "uaResult", void 0);
25
23
 
26
24
  _defineProperty(this, "nativeModule", NativeModules.AmplitudeReactNative);
@@ -101,7 +99,6 @@ export class Context {
101
99
  }
102
100
  }),
103
101
  ...context,
104
- event_id: this.eventId++,
105
102
  library: this.library
106
103
  };
107
104
  return event;
@@ -1 +1 @@
1
- {"version":3,"names":["PluginType","UAParser","UUID","getLanguage","VERSION","NativeModules","BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","BEFORE","AmplitudeReactNative","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","undefined","execute","context","time","Date","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion","event_id","eventId","library"],"sources":["context.ts"],"sourcesContent":["import { BeforePlugin, ReactNativeConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nimport { NativeModules } from 'react-native';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\ntype NativeContext = {\n version: string;\n platform: string;\n language: string;\n osName: string;\n osVersion: string;\n deviceBrand: string;\n deviceManufacturer: string;\n deviceModel: string;\n carrier: string;\n adid: string;\n};\n\nexport interface AmplitudeReactNative {\n getApplicationContext(): Promise<NativeContext>;\n}\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: ReactNativeConfig;\n 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 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"],"mappings":"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"}
1
+ {"version":3,"names":["PluginType","UAParser","UUID","getLanguage","VERSION","NativeModules","BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","BEFORE","AmplitudeReactNative","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","undefined","execute","context","time","Date","getTime","nativeContext","nativeModule","getApplicationContext","appVersion","version","platform","osName","browser","name","osVersion","deviceVendor","deviceManufacturer","device","vendor","deviceModel","model","os","language","carrier","adid","event","user_id","userId","device_id","deviceId","session_id","sessionId","app_version","trackingOptions","os_name","os_version","device_manufacturer","device_model","ipAddress","ip","insert_id","partner_id","partnerId","plan","ingestionMetadata","ingestion_metadata","source_name","sourceName","source_version","sourceVersion","library"],"sources":["context.ts"],"sourcesContent":["import { BeforePlugin, ReactNativeConfig, Event, PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nimport { NativeModules } from 'react-native';\n\nconst BROWSER_PLATFORM = 'Web';\nconst IP_ADDRESS = '$remote';\n\ntype NativeContext = {\n version: string;\n platform: string;\n language: string;\n osName: string;\n osVersion: string;\n deviceBrand: string;\n deviceManufacturer: string;\n deviceModel: string;\n carrier: string;\n adid: string;\n};\n\nexport interface AmplitudeReactNative {\n getApplicationContext(): Promise<NativeContext>;\n}\n\nexport class Context implements BeforePlugin {\n name = 'context';\n type = PluginType.BEFORE as const;\n\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: ReactNativeConfig;\n uaResult: UAParser.IResult;\n nativeModule: AmplitudeReactNative | undefined = NativeModules.AmplitudeReactNative as\n | AmplitudeReactNative\n | undefined;\n library = `amplitude-react-native-ts/${VERSION}`;\n\n constructor() {\n let agent: string | undefined;\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n agent = navigator.userAgent;\n }\n this.uaResult = new UAParser(agent).getResult();\n }\n\n setup(config: ReactNativeConfig): Promise<undefined> {\n this.config = config;\n return Promise.resolve(undefined);\n }\n\n async execute(context: Event): Promise<Event> {\n const time = new Date().getTime();\n const nativeContext = await this.nativeModule?.getApplicationContext();\n const appVersion = nativeContext?.version || this.config.appVersion;\n const platform = nativeContext?.platform || BROWSER_PLATFORM;\n const osName = nativeContext?.osName || this.uaResult.browser.name;\n const osVersion = nativeContext?.osVersion || this.uaResult.browser.version;\n const deviceVendor = nativeContext?.deviceManufacturer || this.uaResult.device.vendor;\n const deviceModel = nativeContext?.deviceModel || this.uaResult.device.model || this.uaResult.os.name;\n const language = nativeContext?.language || getLanguage();\n const carrier = nativeContext?.carrier;\n const adid = nativeContext?.adid;\n\n const event: Event = {\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time,\n ...(this.config.appVersion && { app_version: appVersion }),\n ...(this.config.trackingOptions.platform && { platform: platform }),\n ...(this.config.trackingOptions.osName && { os_name: osName }),\n ...(this.config.trackingOptions.osVersion && { os_version: osVersion }),\n ...(this.config.trackingOptions.deviceManufacturer && { device_manufacturer: deviceVendor }),\n ...(this.config.trackingOptions.deviceModel && { device_model: deviceModel }),\n ...(this.config.trackingOptions.language && { language: language }),\n ...(this.config.trackingOptions.carrier && { carrier: carrier }),\n ...(this.config.trackingOptions.ipAddress && { ip: IP_ADDRESS }),\n ...(this.config.trackingOptions.adid && { adid: adid }),\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan,\n ...(this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion,\n },\n }),\n ...context,\n library: this.library,\n };\n return event;\n }\n}\n"],"mappings":"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"}
@@ -223,6 +223,16 @@ export class AmplitudeReactNative extends AmplitudeCore {
223
223
  if (event.session_id == undefined) {
224
224
  event.session_id = this.getSessionId();
225
225
  }
226
+
227
+ if (event.event_id === undefined) {
228
+ var _this$config$sessionM;
229
+
230
+ const eventId = ((_this$config$sessionM = this.config.sessionManager.getLastEventId()) !== null && _this$config$sessionM !== void 0 ? _this$config$sessionM : -1) + 1;
231
+ event = { ...event,
232
+ event_id: eventId
233
+ };
234
+ this.config.sessionManager.setLastEventId(eventId);
235
+ }
226
236
  }
227
237
 
228
238
  return super.process(event);
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","AmplitudeCore","Destination","UUID","returnWrapper","debugWrapper","getClientLogConfig","getClientStates","CampaignTracker","IdentityEventSender","getAnalyticsConnector","Context","useReactNativeConfig","createFlexibleStorage","parseOldCookies","isNative","START_SESSION_EVENT","END_SESSION_EVENT","AmplitudeReactNative","nextAppState","currentAppState","appState","startNewSessionIfNeeded","init","apiKey","userId","options","initializing","explicitSessionId","sessionId","oldCookies","reactNativeOptions","deviceId","optOut","lastEventTime","_init","connector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","config","add","currentState","isNewSession","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","shutdown","removeEventListener","attributionConfig","bind","onNewCampaign","setSessionId","currentTimeMillis","storage","campaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","getSessionId","setSessionIdInternal","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","Date","now","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","createInstance","client","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AppState, AppStateStatus } from 'react-native';\nimport {\n AmplitudeCore,\n Destination,\n UUID,\n returnWrapper,\n debugWrapper,\n getClientLogConfig,\n getClientStates,\n} 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 Identify as IIdentify,\n EventOptions,\n Event,\n Result,\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\nconst START_SESSION_EVENT = 'session_start';\nconst END_SESSION_EVENT = 'session_end';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n appState: AppStateStatus = 'background';\n explicitSessionId: number | undefined;\n\n async init(apiKey = '', userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n this.explicitSessionId = options?.sessionId;\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,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\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 3: 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 // Step 4: Manage session\n this.appState = AppState.currentState;\n const isNewSession = this.startNewSessionIfNeeded();\n AppState.addEventListener('change', this.handleAppStateChange);\n\n this.initializing = false;\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n\n // Step 6: Run queued functions\n await this.runQueuedFunctions('dispatchQ');\n }\n\n shutdown() {\n AppState.removeEventListener('change', this.handleAppStateChange);\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, this.currentTimeMillis());\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 identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\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\n this.explicitSessionId = sessionId;\n void this.setSessionIdInternal(sessionId, this.currentTimeMillis());\n }\n\n private setSessionIdInternal(sessionId: number, eventTime: number) {\n const previousSessionId = this.config.sessionId;\n if (previousSessionId === sessionId) {\n return;\n }\n\n this.config.sessionId = sessionId;\n\n if (this.config.trackingSessionEvents) {\n if (previousSessionId !== undefined) {\n const sessionEndEvent: Event = {\n event_type: END_SESSION_EVENT,\n time: this.config.lastEventTime !== undefined ? this.config.lastEventTime + 1 : sessionId, // increment lastEventTime to sort events properly in UI - session_end should be the last event in a session\n session_id: previousSessionId,\n };\n void this.track(sessionEndEvent);\n }\n\n const sessionStartEvent: Event = {\n event_type: START_SESSION_EVENT,\n time: eventTime,\n session_id: sessionId,\n };\n void this.track(sessionStartEvent);\n }\n\n this.config.lastEventTime = eventTime;\n }\n\n async process(event: Event): Promise<Result> {\n if (!this.config.optOut) {\n const eventTime = event.time ?? this.currentTimeMillis();\n if (event.time === undefined) {\n event = { ...event, time: eventTime };\n }\n\n if (event.event_type != START_SESSION_EVENT && event.event_type != END_SESSION_EVENT) {\n if (this.appState !== 'active') {\n this.startNewSessionIfNeeded(eventTime);\n }\n }\n this.config.lastEventTime = eventTime;\n\n if (event.session_id == undefined) {\n event.session_id = this.getSessionId();\n }\n }\n\n return super.process(event);\n }\n\n currentTimeMillis() {\n return Date.now();\n }\n\n private startNewSessionIfNeeded(eventTime?: number): boolean {\n eventTime = eventTime ?? this.currentTimeMillis();\n const sessionId = this.explicitSessionId ?? eventTime;\n\n if (\n this.inSession() &&\n (this.explicitSessionId === this.config.sessionId ||\n (this.explicitSessionId === undefined && this.isWithinMinTimeBetweenSessions(sessionId)))\n ) {\n this.config.lastEventTime = eventTime;\n return false;\n }\n\n this.setSessionIdInternal(sessionId, eventTime);\n return true;\n }\n\n private isWithinMinTimeBetweenSessions(eventTime: number) {\n return eventTime - (this.config.lastEventTime ?? 0) < this.config.sessionTimeout;\n }\n\n private inSession() {\n return this.config.sessionId != undefined;\n }\n\n private readonly handleAppStateChange = (nextAppState: AppStateStatus) => {\n const currentAppState = this.appState;\n this.appState = nextAppState;\n if (currentAppState !== nextAppState && nextAppState === 'active') {\n this.startNewSessionIfNeeded();\n }\n };\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: debugWrapper(\n returnWrapper(client.init.bind(client)),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n returnWrapper(client.add.bind(client)),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n returnWrapper(client.remove.bind(client)),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n returnWrapper(client.track.bind(client)),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n returnWrapper(client.logEvent.bind(client)),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n returnWrapper(client.identify.bind(client)),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n returnWrapper(client.groupIdentify.bind(client)),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n returnWrapper(client.setGroup.bind(client)),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n returnWrapper(client.revenue.bind(client)),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n returnWrapper(client.flush.bind(client)),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
1
+ {"version":3,"names":["AppState","AmplitudeCore","Destination","UUID","returnWrapper","debugWrapper","getClientLogConfig","getClientStates","CampaignTracker","IdentityEventSender","getAnalyticsConnector","Context","useReactNativeConfig","createFlexibleStorage","parseOldCookies","isNative","START_SESSION_EVENT","END_SESSION_EVENT","AmplitudeReactNative","nextAppState","currentAppState","appState","startNewSessionIfNeeded","init","apiKey","userId","options","initializing","explicitSessionId","sessionId","oldCookies","reactNativeOptions","deviceId","optOut","lastEventTime","_init","connector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","config","add","currentState","isNewSession","addEventListener","handleAppStateChange","runAttributionStrategy","attribution","runQueuedFunctions","shutdown","removeEventListener","attributionConfig","bind","onNewCampaign","setSessionId","currentTimeMillis","storage","campaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","getSessionId","setSessionIdInternal","eventTime","previousSessionId","trackingSessionEvents","sessionEndEvent","event_type","time","session_id","sessionStartEvent","process","event_id","eventId","sessionManager","getLastEventId","setLastEventId","Date","now","inSession","isWithinMinTimeBetweenSessions","sessionTimeout","createInstance","client","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AppState, AppStateStatus } from 'react-native';\nimport {\n AmplitudeCore,\n Destination,\n UUID,\n returnWrapper,\n debugWrapper,\n getClientLogConfig,\n getClientStates,\n} 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 Identify as IIdentify,\n EventOptions,\n Event,\n Result,\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\nconst START_SESSION_EVENT = 'session_start';\nconst END_SESSION_EVENT = 'session_end';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n appState: AppStateStatus = 'background';\n explicitSessionId: number | undefined;\n\n async init(apiKey = '', userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n this.explicitSessionId = options?.sessionId;\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,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\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 3: 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 // Step 4: Manage session\n this.appState = AppState.currentState;\n const isNewSession = this.startNewSessionIfNeeded();\n AppState.addEventListener('change', this.handleAppStateChange);\n\n this.initializing = false;\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n\n // Step 6: Run queued functions\n await this.runQueuedFunctions('dispatchQ');\n }\n\n shutdown() {\n AppState.removeEventListener('change', this.handleAppStateChange);\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, this.currentTimeMillis());\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 identify(identify: IIdentify, eventOptions?: EventOptions) {\n if (eventOptions?.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions?.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return super.identify(identify, eventOptions);\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\n this.explicitSessionId = sessionId;\n void this.setSessionIdInternal(sessionId, this.currentTimeMillis());\n }\n\n private setSessionIdInternal(sessionId: number, eventTime: number) {\n const previousSessionId = this.config.sessionId;\n if (previousSessionId === sessionId) {\n return;\n }\n\n this.config.sessionId = sessionId;\n\n if (this.config.trackingSessionEvents) {\n if (previousSessionId !== undefined) {\n const sessionEndEvent: Event = {\n event_type: END_SESSION_EVENT,\n time: this.config.lastEventTime !== undefined ? this.config.lastEventTime + 1 : sessionId, // increment lastEventTime to sort events properly in UI - session_end should be the last event in a session\n session_id: previousSessionId,\n };\n void this.track(sessionEndEvent);\n }\n\n const sessionStartEvent: Event = {\n event_type: START_SESSION_EVENT,\n time: eventTime,\n session_id: sessionId,\n };\n void this.track(sessionStartEvent);\n }\n\n this.config.lastEventTime = eventTime;\n }\n\n async process(event: Event): Promise<Result> {\n if (!this.config.optOut) {\n const eventTime = event.time ?? this.currentTimeMillis();\n if (event.time === undefined) {\n event = { ...event, time: eventTime };\n }\n\n if (event.event_type != START_SESSION_EVENT && event.event_type != END_SESSION_EVENT) {\n if (this.appState !== 'active') {\n this.startNewSessionIfNeeded(eventTime);\n }\n }\n this.config.lastEventTime = eventTime;\n\n if (event.session_id == undefined) {\n event.session_id = this.getSessionId();\n }\n\n if (event.event_id === undefined) {\n const eventId = (this.config.sessionManager.getLastEventId() ?? -1) + 1;\n event = { ...event, event_id: eventId };\n this.config.sessionManager.setLastEventId(eventId);\n }\n }\n\n return super.process(event);\n }\n\n currentTimeMillis() {\n return Date.now();\n }\n\n private startNewSessionIfNeeded(eventTime?: number): boolean {\n eventTime = eventTime ?? this.currentTimeMillis();\n const sessionId = this.explicitSessionId ?? eventTime;\n\n if (\n this.inSession() &&\n (this.explicitSessionId === this.config.sessionId ||\n (this.explicitSessionId === undefined && this.isWithinMinTimeBetweenSessions(sessionId)))\n ) {\n this.config.lastEventTime = eventTime;\n return false;\n }\n\n this.setSessionIdInternal(sessionId, eventTime);\n return true;\n }\n\n private isWithinMinTimeBetweenSessions(eventTime: number) {\n return eventTime - (this.config.lastEventTime ?? 0) < this.config.sessionTimeout;\n }\n\n private inSession() {\n return this.config.sessionId != undefined;\n }\n\n private readonly handleAppStateChange = (nextAppState: AppStateStatus) => {\n const currentAppState = this.appState;\n this.appState = nextAppState;\n if (currentAppState !== nextAppState && nextAppState === 'active') {\n this.startNewSessionIfNeeded();\n }\n };\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: debugWrapper(\n returnWrapper(client.init.bind(client)),\n 'init',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n add: debugWrapper(\n returnWrapper(client.add.bind(client)),\n 'add',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n remove: debugWrapper(\n returnWrapper(client.remove.bind(client)),\n 'remove',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.plugins']),\n ),\n track: debugWrapper(\n returnWrapper(client.track.bind(client)),\n 'track',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n logEvent: debugWrapper(\n returnWrapper(client.logEvent.bind(client)),\n 'logEvent',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n identify: debugWrapper(\n returnWrapper(client.identify.bind(client)),\n 'identify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n groupIdentify: debugWrapper(\n returnWrapper(client.groupIdentify.bind(client)),\n 'groupIdentify',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n setGroup: debugWrapper(\n returnWrapper(client.setGroup.bind(client)),\n 'setGroup',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n revenue: debugWrapper(\n returnWrapper(client.revenue.bind(client)),\n 'revenue',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n flush: debugWrapper(\n returnWrapper(client.flush.bind(client)),\n 'flush',\n getClientLogConfig(client),\n getClientStates(client, ['config.apiKey', 'timeline.queue.length']),\n ),\n getUserId: debugWrapper(\n client.getUserId.bind(client),\n 'getUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n setUserId: debugWrapper(\n client.setUserId.bind(client),\n 'setUserId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId']),\n ),\n getDeviceId: debugWrapper(\n client.getDeviceId.bind(client),\n 'getDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n setDeviceId: debugWrapper(\n client.setDeviceId.bind(client),\n 'setDeviceId',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.deviceId']),\n ),\n reset: debugWrapper(\n client.reset.bind(client),\n 'reset',\n getClientLogConfig(client),\n getClientStates(client, ['config', 'config.userId', 'config.deviceId']),\n ),\n getSessionId: debugWrapper(\n client.getSessionId.bind(client),\n 'getSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setSessionId: debugWrapper(\n client.setSessionId.bind(client),\n 'setSessionId',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n setOptOut: debugWrapper(\n client.setOptOut.bind(client),\n 'setOptOut',\n getClientLogConfig(client),\n getClientStates(client, ['config']),\n ),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.6.0';
1
+ export const VERSION = '0.7.0';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.6.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.7.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,iBAAiB,IAAI,kBAAkB,EACvC,OAAO,EACP,0BAA0B,EAC1B,WAAW,EACX,cAAc,IAAI,eAAe,EAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAQ,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAIL,cAAc,EACd,cAAc,EACf,MAAM,oCAAoC,CAAC;AAI5C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CA2B5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAO,YAAW,kBAAkB;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,cAAc,EAAE,eAAe,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IA+BzE,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAEpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAE1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAEzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAElD;CACF;AAED,eAAO,MAAM,oBAAoB,WACvB,MAAM,4EAGb,QAAQ,kBAAkB,CAqB5B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;MAG7B,QAAQ,QAAQ,WAAW,CAAC,CAO9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAsB,kBAAkB,wBAczE,CAAC;AAEF,eAAO,MAAM,mBAAmB,kDAA2C,QAAQ,QAAQ,KAAK,EAAE,CAAC,GAAG,SAAS,CAe9G,CAAC;AAEF,eAAO,MAAM,cAAc,4HAE1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CA0B7B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIlF,eAAO,MAAM,eAAe,WAAkB,MAAM,2CAA6B,QAAQ,WAAW,CA6BnG,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,kCAAqB,MAAM,GAAG,SAShD,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,yDACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,qKACb,QAAQ,oHACR,IAAI,gIACJ,QAAQ,mLACR,MAAM,uDACN,KAAK,cACL,OAAO,kHACP,WAAW,8BACX,QAAQ,2IACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,KAAK,iLACG,CAAC;AACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -19,7 +19,6 @@ export declare class Context implements BeforePlugin {
19
19
  name: string;
20
20
  type: PluginType.BEFORE;
21
21
  config: ReactNativeConfig;
22
- eventId: number;
23
22
  uaResult: UAParser.IResult;
24
23
  nativeModule: AmplitudeReactNative | undefined;
25
24
  library: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAS/C,aAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACjD;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAAa;IACjB,IAAI,oBAA8B;IAKlC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAEhC;IACd,OAAO,SAA0C;;IAWjD,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAK9C,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA0C9C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,IAAI,SAAS,EACrB,YAAY,EACZ,KAAK,EACL,MAAM,EACP,MAAM,4BAA4B,CAAC;AASpC,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACxE,QAAQ,EAAE,cAAc,CAAgB;IACxC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,IAAI,CAAC,MAAM,SAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAqDrE,QAAQ;IAIF,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,YAAY,UAAQ;IAkBzF,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAUzD,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAU9B,OAAO,CAAC,oBAAoB;IA6BtB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B5C,iBAAiB;IAIjB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAMnC;CACH;AAED,eAAO,MAAM,cAAc,QAAO,iBAgHjC,CAAC;;AAEF,wBAAgC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/local-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC1C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../src/utils/platform.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.7.0";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/analytics-react-native",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Official React Native SDK",
5
5
  "keywords": [
6
6
  "analytics",
@@ -57,9 +57,9 @@
57
57
  "url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
58
58
  },
59
59
  "dependencies": {
60
- "@amplitude/analytics-client-common": "^0.4.1",
61
- "@amplitude/analytics-core": "^0.10.1",
62
- "@amplitude/analytics-types": "^0.13.0",
60
+ "@amplitude/analytics-client-common": "^0.5.0",
61
+ "@amplitude/analytics-core": "^0.11.0",
62
+ "@amplitude/analytics-types": "^0.14.0",
63
63
  "@amplitude/ua-parser-js": "^0.7.31",
64
64
  "@react-native-async-storage/async-storage": "^1.17.7",
65
65
  "tslib": "^2.3.1"
@@ -89,5 +89,5 @@
89
89
  ]
90
90
  ]
91
91
  },
92
- "gitHead": "c67ec6c06b029eaeaa01ffbe14852334bee9370c"
92
+ "gitHead": "e4e95ad7ee239eaa9712eec347ad0ebe43bf2993"
93
93
  }
package/src/config.ts CHANGED
@@ -39,7 +39,7 @@ export const getDefaultConfig = () => {
39
39
  disableCookies: false,
40
40
  domain: '',
41
41
  sessionManager: new SessionManager(cookieStorage, ''),
42
- sessionTimeout: 30 * 60 * 1000,
42
+ sessionTimeout: 5 * 60 * 1000,
43
43
  storageProvider: new MemoryStorage<Event[]>(),
44
44
  trackingOptions,
45
45
  transportProvider: new FetchTransport(),
@@ -33,7 +33,6 @@ export class Context implements BeforePlugin {
33
33
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
34
34
  // @ts-ignore
35
35
  config: ReactNativeConfig;
36
- eventId = 0;
37
36
  uaResult: UAParser.IResult;
38
37
  nativeModule: AmplitudeReactNative | undefined = NativeModules.AmplitudeReactNative as
39
38
  | AmplitudeReactNative
@@ -92,7 +91,6 @@ export class Context implements BeforePlugin {
92
91
  },
93
92
  }),
94
93
  ...context,
95
- event_id: this.eventId++,
96
94
  library: this.library,
97
95
  };
98
96
  return event;
@@ -218,6 +218,12 @@ export class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
218
218
  if (event.session_id == undefined) {
219
219
  event.session_id = this.getSessionId();
220
220
  }
221
+
222
+ if (event.event_id === undefined) {
223
+ const eventId = (this.config.sessionManager.getLastEventId() ?? -1) + 1;
224
+ event = { ...event, event_id: eventId };
225
+ this.config.sessionManager.setLastEventId(eventId);
226
+ }
221
227
  }
222
228
 
223
229
  return super.process(event);
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.6.0';
1
+ export const VERSION = '0.7.0';
@@ -1,3 +0,0 @@
1
- import AsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock';
2
- export default AsyncStorage;
3
- //# sourceMappingURL=async-storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"async-storage.d.ts","sourceRoot":"","sources":["../../../../__mocks__/@react-native-async-storage/async-storage.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mEAAmE,CAAC;AAC7F,eAAe,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,kBAAkB,EAClB,iBAAiB,IAAI,kBAAkB,EACvC,OAAO,EACP,0BAA0B,EAC1B,WAAW,EACX,cAAc,IAAI,eAAe,EAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAQ,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAIL,cAAc,EACd,cAAc,EACf,MAAM,oCAAoC,CAAC;AAI5C,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CA2B5B,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,MAAO,YAAW,kBAAkB;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,cAAc,EAAE,eAAe,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IA+BzE,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAExC;IAED,IAAI,MAAM,IAIS,MAAM,GAAG,SAAS,CAFpC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAEpC;IAED,IAAI,SAAS,IAIY,MAAM,GAAG,SAAS,CAF1C;IAED,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAE1C;IAED,IAAI,MAAM,IAIS,OAAO,CAFzB;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAEzB;IAED,IAAI,aAAa,IAIgB,MAAM,GAAG,SAAS,CAFlD;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAElD;CACF;AAED,eAAO,MAAM,oBAAoB,WACvB,MAAM,4EAGb,QAAQ,kBAAkB,CAqB5B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;MAG7B,QAAQ,QAAQ,WAAW,CAAC,CAO9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAsB,kBAAkB,wBAczE,CAAC;AAEF,eAAO,MAAM,mBAAmB,kDAA2C,QAAQ,QAAQ,KAAK,EAAE,CAAC,GAAG,SAAS,CAe9G,CAAC;AAEF,eAAO,MAAM,cAAc,4HAE1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CA0B7B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cookie-migration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAW,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAIlF,eAAO,MAAM,eAAe,WAAkB,MAAM,2CAA6B,QAAQ,WAAW,CA6BnG,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,uBAMpC,CAAC;AAEF,eAAO,MAAM,MAAM,kCAAqB,MAAM,GAAG,SAShD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,yDACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,qKACb,QAAQ,oHACR,IAAI,gIACJ,QAAQ,mLACR,MAAM,uDACN,KAAK,cACL,OAAO,kHACP,WAAW,8BACX,QAAQ,2IACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,KAAK,iLACG,CAAC;AACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/plugins/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAS/C,aAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;CACjD;AAED,qBAAa,OAAQ,YAAW,YAAY;IAC1C,IAAI,SAAa;IACjB,IAAI,oBAA8B;IAKlC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,SAAK;IACZ,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC;IAC3B,YAAY,EAAE,oBAAoB,GAAG,SAAS,CAEhC;IACd,OAAO,SAA0C;;IAWjD,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IAK9C,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;CA2C9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EACL,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,IAAI,SAAS,EACrB,YAAY,EACZ,KAAK,EACL,MAAM,EACP,MAAM,4BAA4B,CAAC;AASpC,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACxE,QAAQ,EAAE,cAAc,CAAgB;IACxC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,IAAI,CAAC,MAAM,SAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAqDrE,QAAQ;IAIF,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,YAAY,UAAQ;IAkBzF,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,YAAY;IAUzD,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;IAU9B,OAAO,CAAC,oBAAoB;IA6BtB,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB5C,iBAAiB;IAIjB,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,8BAA8B;IAItC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAMnC;CACH;AAED,eAAO,MAAM,cAAc,QAAO,iBAgHjC,CAAC;;AAEF,wBAAgC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../../src/storage/local-storage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGrD,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IAC1C,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAcxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/utils/platform.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const VERSION = "0.6.0";
2
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}