@amplitude/analytics-react-native 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/config.js +6 -2
- package/lib/commonjs/config.js.map +1 -1
- package/lib/commonjs/plugins/context.js +0 -17
- package/lib/commonjs/plugins/context.js.map +1 -1
- package/lib/commonjs/react-native-client.js +132 -19
- package/lib/commonjs/react-native-client.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/config.js +6 -2
- package/lib/module/config.js.map +1 -1
- package/lib/module/plugins/context.js +0 -17
- package/lib/module/plugins/context.js.map +1 -1
- package/lib/module/react-native-client.js +128 -19
- package/lib/module/react-native-client.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/__mocks__/@react-native-async-storage/async-storage.d.ts +3 -0
- package/lib/typescript/__mocks__/@react-native-async-storage/async-storage.d.ts.map +1 -0
- package/lib/typescript/{config.d.ts → src/config.d.ts} +3 -0
- package/lib/typescript/src/config.d.ts.map +1 -0
- package/lib/typescript/{cookie-migration → src/cookie-migration}/index.d.ts +0 -0
- package/lib/typescript/src/cookie-migration/index.d.ts.map +1 -0
- package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/{plugins → src/plugins}/context.d.ts +0 -1
- package/lib/typescript/src/plugins/context.d.ts.map +1 -0
- package/lib/typescript/{react-native-client.d.ts → src/react-native-client.d.ts} +13 -2
- package/lib/typescript/src/react-native-client.d.ts.map +1 -0
- package/lib/typescript/{storage → src/storage}/local-storage.d.ts +0 -0
- package/lib/typescript/src/storage/local-storage.d.ts.map +1 -0
- package/lib/typescript/{utils → src/utils}/platform.d.ts +0 -0
- package/lib/typescript/src/utils/platform.d.ts.map +1 -0
- package/lib/typescript/src/version.d.ts +2 -0
- package/lib/typescript/src/version.d.ts.map +1 -0
- package/package.json +5 -5
- package/src/config.ts +3 -0
- package/src/plugins/context.ts +0 -15
- package/src/react-native-client.ts +113 -17
- package/src/version.ts +1 -1
- package/lib/typescript/config.d.ts.map +0 -1
- package/lib/typescript/cookie-migration/index.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/plugins/context.d.ts.map +0 -1
- package/lib/typescript/react-native-client.d.ts.map +0 -1
- package/lib/typescript/storage/local-storage.d.ts.map +0 -1
- package/lib/typescript/utils/platform.d.ts.map +0 -1
- package/lib/typescript/version.d.ts +0 -2
- package/lib/typescript/version.d.ts.map +0 -1
package/lib/module/config.js.map
CHANGED
|
@@ -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","ReactNativeConfig","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","cookies","get","queryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","expirationDays","sameSite","secure","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n ReactNativeTrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport {\n CookieStorage,\n getCookieName,\n getQueryParams,\n SessionManager,\n FetchTransport,\n} from '@amplitude/analytics-client-common';\n\nimport { LocalStorage } from './storage/local-storage';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n const trackingOptions: Required<ReactNativeTrackingOptions> = {\n adid: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n };\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":"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"}
|
|
1
|
+
{"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":"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"}
|
|
@@ -45,17 +45,6 @@ export class Context {
|
|
|
45
45
|
async execute(context) {
|
|
46
46
|
var _this$nativeModule;
|
|
47
47
|
|
|
48
|
-
/**
|
|
49
|
-
* Manages user session triggered by new events
|
|
50
|
-
*/
|
|
51
|
-
if (!this.isSessionValid()) {
|
|
52
|
-
// Creates new session
|
|
53
|
-
this.config.sessionId = Date.now();
|
|
54
|
-
} // else use previously creates session
|
|
55
|
-
// Updates last event time to extend time-based session
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.config.lastEventTime = Date.now();
|
|
59
48
|
const time = new Date().getTime();
|
|
60
49
|
const nativeContext = await ((_this$nativeModule = this.nativeModule) === null || _this$nativeModule === void 0 ? void 0 : _this$nativeModule.getApplicationContext());
|
|
61
50
|
const appVersion = (nativeContext === null || nativeContext === void 0 ? void 0 : nativeContext.version) || this.config.appVersion;
|
|
@@ -118,11 +107,5 @@ export class Context {
|
|
|
118
107
|
return event;
|
|
119
108
|
}
|
|
120
109
|
|
|
121
|
-
isSessionValid() {
|
|
122
|
-
const lastEventTime = this.config.lastEventTime || Date.now();
|
|
123
|
-
const timeSinceLastEvent = Date.now() - lastEventTime;
|
|
124
|
-
return timeSinceLastEvent < this.config.sessionTimeout;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
110
|
}
|
|
128
111
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PluginType","UAParser","UUID","getLanguage","VERSION","NativeModules","BROWSER_PLATFORM","IP_ADDRESS","Context","constructor","BEFORE","AmplitudeReactNative","agent","navigator","userAgent","uaResult","getResult","setup","config","Promise","resolve","undefined","execute","context","
|
|
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,12 +1,34 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { AppState } from 'react-native';
|
|
1
4
|
import { AmplitudeCore, Destination, UUID, returnWrapper, debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';
|
|
2
5
|
import { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';
|
|
3
6
|
import { Context } from './plugins/context';
|
|
4
7
|
import { useReactNativeConfig, createFlexibleStorage } from './config';
|
|
5
8
|
import { parseOldCookies } from './cookie-migration';
|
|
6
9
|
import { isNative } from './utils/platform';
|
|
10
|
+
const START_SESSION_EVENT = 'session_start';
|
|
11
|
+
const END_SESSION_EVENT = 'session_end';
|
|
7
12
|
export class AmplitudeReactNative extends AmplitudeCore {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
|
|
16
|
+
_defineProperty(this, "appState", 'background');
|
|
17
|
+
|
|
18
|
+
_defineProperty(this, "explicitSessionId", void 0);
|
|
19
|
+
|
|
20
|
+
_defineProperty(this, "handleAppStateChange", nextAppState => {
|
|
21
|
+
const currentAppState = this.appState;
|
|
22
|
+
this.appState = nextAppState;
|
|
23
|
+
|
|
24
|
+
if (currentAppState !== nextAppState && nextAppState === 'active') {
|
|
25
|
+
this.startNewSessionIfNeeded();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
8
30
|
async init() {
|
|
9
|
-
var _oldCookies$deviceId,
|
|
31
|
+
var _oldCookies$deviceId, _options$optOut;
|
|
10
32
|
|
|
11
33
|
let apiKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
12
34
|
let userId = arguments.length > 1 ? arguments[1] : undefined;
|
|
@@ -17,31 +39,21 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
17
39
|
return;
|
|
18
40
|
}
|
|
19
41
|
|
|
20
|
-
this.initializing = true;
|
|
42
|
+
this.initializing = true;
|
|
43
|
+
this.explicitSessionId = options === null || options === void 0 ? void 0 : options.sessionId; // Step 1: Read cookies stored by old SDK
|
|
21
44
|
|
|
22
45
|
const oldCookies = await parseOldCookies(apiKey, options); // Step 2: Create react native config
|
|
23
46
|
|
|
24
47
|
const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, { ...options,
|
|
25
48
|
deviceId: (_oldCookies$deviceId = oldCookies.deviceId) !== null && _oldCookies$deviceId !== void 0 ? _oldCookies$deviceId : options === null || options === void 0 ? void 0 : options.deviceId,
|
|
26
|
-
sessionId:
|
|
49
|
+
sessionId: oldCookies.sessionId,
|
|
27
50
|
optOut: (_options$optOut = options === null || options === void 0 ? void 0 : options.optOut) !== null && _options$optOut !== void 0 ? _options$optOut : oldCookies.optOut,
|
|
28
51
|
lastEventTime: oldCookies.lastEventTime
|
|
29
52
|
});
|
|
30
|
-
await super._init(reactNativeOptions); //
|
|
31
|
-
|
|
32
|
-
let isNewSession = !this.config.lastEventTime;
|
|
33
|
-
|
|
34
|
-
if (!this.config.sessionId || this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout) {
|
|
35
|
-
// Either
|
|
36
|
-
// 1) No previous session; or
|
|
37
|
-
// 2) Previous session expired
|
|
38
|
-
this.setSessionId(Date.now());
|
|
39
|
-
isNewSession = true;
|
|
40
|
-
} // Set up the analytics connector to integrate with the experiment SDK.
|
|
53
|
+
await super._init(reactNativeOptions); // Set up the analytics connector to integrate with the experiment SDK.
|
|
41
54
|
// Send events from the experiment SDK and forward identifies to the
|
|
42
55
|
// identity store.
|
|
43
56
|
|
|
44
|
-
|
|
45
57
|
const connector = getAnalyticsConnector();
|
|
46
58
|
connector.eventBridge.setEventReceiver(event => {
|
|
47
59
|
void this.track(event.eventType, event.eventProperties);
|
|
@@ -49,19 +61,27 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
49
61
|
connector.identityStore.setIdentity({
|
|
50
62
|
userId: this.config.userId,
|
|
51
63
|
deviceId: this.config.deviceId
|
|
52
|
-
}); // Step
|
|
64
|
+
}); // Step 3: Install plugins
|
|
53
65
|
// Do not track any events before this
|
|
54
66
|
|
|
55
67
|
await this.add(new Context());
|
|
56
68
|
await this.add(new IdentityEventSender());
|
|
57
|
-
await this.add(new Destination());
|
|
69
|
+
await this.add(new Destination()); // Step 4: Manage session
|
|
70
|
+
|
|
71
|
+
this.appState = AppState.currentState;
|
|
72
|
+
const isNewSession = this.startNewSessionIfNeeded();
|
|
73
|
+
AppState.addEventListener('change', this.handleAppStateChange);
|
|
58
74
|
this.initializing = false; // Step 5: Track attributions
|
|
59
75
|
|
|
60
|
-
await this.runAttributionStrategy(options === null || options === void 0 ? void 0 : options.attribution, isNewSession); // Step 6: Run queued
|
|
76
|
+
await this.runAttributionStrategy(options === null || options === void 0 ? void 0 : options.attribution, isNewSession); // Step 6: Run queued functions
|
|
61
77
|
|
|
62
78
|
await this.runQueuedFunctions('dispatchQ');
|
|
63
79
|
}
|
|
64
80
|
|
|
81
|
+
shutdown() {
|
|
82
|
+
AppState.removeEventListener('change', this.handleAppStateChange);
|
|
83
|
+
}
|
|
84
|
+
|
|
65
85
|
async runAttributionStrategy(attributionConfig) {
|
|
66
86
|
let isNewSession = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
67
87
|
|
|
@@ -70,7 +90,7 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
70
90
|
}
|
|
71
91
|
|
|
72
92
|
const track = this.track.bind(this);
|
|
73
|
-
const onNewCampaign = this.setSessionId.bind(this,
|
|
93
|
+
const onNewCampaign = this.setSessionId.bind(this, this.currentTimeMillis());
|
|
74
94
|
const storage = await createFlexibleStorage(this.config);
|
|
75
95
|
const campaignTracker = new CampaignTracker(this.config.apiKey, { ...attributionConfig,
|
|
76
96
|
storage,
|
|
@@ -145,7 +165,96 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
145
165
|
return;
|
|
146
166
|
}
|
|
147
167
|
|
|
168
|
+
this.explicitSessionId = sessionId;
|
|
169
|
+
void this.setSessionIdInternal(sessionId, this.currentTimeMillis());
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
setSessionIdInternal(sessionId, eventTime) {
|
|
173
|
+
const previousSessionId = this.config.sessionId;
|
|
174
|
+
|
|
175
|
+
if (previousSessionId === sessionId) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
148
179
|
this.config.sessionId = sessionId;
|
|
180
|
+
|
|
181
|
+
if (this.config.trackingSessionEvents) {
|
|
182
|
+
if (previousSessionId !== undefined) {
|
|
183
|
+
const sessionEndEvent = {
|
|
184
|
+
event_type: END_SESSION_EVENT,
|
|
185
|
+
time: this.config.lastEventTime !== undefined ? this.config.lastEventTime + 1 : sessionId,
|
|
186
|
+
// increment lastEventTime to sort events properly in UI - session_end should be the last event in a session
|
|
187
|
+
session_id: previousSessionId
|
|
188
|
+
};
|
|
189
|
+
void this.track(sessionEndEvent);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const sessionStartEvent = {
|
|
193
|
+
event_type: START_SESSION_EVENT,
|
|
194
|
+
time: eventTime,
|
|
195
|
+
session_id: sessionId
|
|
196
|
+
};
|
|
197
|
+
void this.track(sessionStartEvent);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
this.config.lastEventTime = eventTime;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
async process(event) {
|
|
204
|
+
if (!this.config.optOut) {
|
|
205
|
+
var _event$time;
|
|
206
|
+
|
|
207
|
+
const eventTime = (_event$time = event.time) !== null && _event$time !== void 0 ? _event$time : this.currentTimeMillis();
|
|
208
|
+
|
|
209
|
+
if (event.time === undefined) {
|
|
210
|
+
event = { ...event,
|
|
211
|
+
time: eventTime
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (event.event_type != START_SESSION_EVENT && event.event_type != END_SESSION_EVENT) {
|
|
216
|
+
if (this.appState !== 'active') {
|
|
217
|
+
this.startNewSessionIfNeeded(eventTime);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
this.config.lastEventTime = eventTime;
|
|
222
|
+
|
|
223
|
+
if (event.session_id == undefined) {
|
|
224
|
+
event.session_id = this.getSessionId();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return super.process(event);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
currentTimeMillis() {
|
|
232
|
+
return Date.now();
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
startNewSessionIfNeeded(eventTime) {
|
|
236
|
+
var _eventTime, _this$explicitSession;
|
|
237
|
+
|
|
238
|
+
eventTime = (_eventTime = eventTime) !== null && _eventTime !== void 0 ? _eventTime : this.currentTimeMillis();
|
|
239
|
+
const sessionId = (_this$explicitSession = this.explicitSessionId) !== null && _this$explicitSession !== void 0 ? _this$explicitSession : eventTime;
|
|
240
|
+
|
|
241
|
+
if (this.inSession() && (this.explicitSessionId === this.config.sessionId || this.explicitSessionId === undefined && this.isWithinMinTimeBetweenSessions(sessionId))) {
|
|
242
|
+
this.config.lastEventTime = eventTime;
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
this.setSessionIdInternal(sessionId, eventTime);
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
isWithinMinTimeBetweenSessions(eventTime) {
|
|
251
|
+
var _this$config$lastEven;
|
|
252
|
+
|
|
253
|
+
return eventTime - ((_this$config$lastEven = this.config.lastEventTime) !== null && _this$config$lastEven !== void 0 ? _this$config$lastEven : 0) < this.config.sessionTimeout;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
inSession() {
|
|
257
|
+
return this.config.sessionId != undefined;
|
|
149
258
|
}
|
|
150
259
|
|
|
151
260
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AmplitudeCore","Destination","UUID","returnWrapper","debugWrapper","getClientLogConfig","getClientStates","CampaignTracker","IdentityEventSender","getAnalyticsConnector","Context","useReactNativeConfig","createFlexibleStorage","parseOldCookies","isNative","AmplitudeReactNative","init","apiKey","userId","options","initializing","oldCookies","reactNativeOptions","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","runAttributionStrategy","attribution","runQueuedFunctions","attributionConfig","bind","onNewCampaign","storage","campaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","getSessionId","createInstance","client","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import {\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} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey = '', userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n\n // Step 6: Run queued dispatch functions\n await this.runQueuedFunctions('dispatchQ');\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n 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 this.config.sessionId = sessionId;\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","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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"}
|
package/lib/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.
|
|
1
|
+
export const VERSION = '0.6.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.
|
|
1
|
+
{"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.6.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -13,6 +13,7 @@ export declare const getDefaultConfig: () => {
|
|
|
13
13
|
storageProvider: MemoryStorage<Event[]>;
|
|
14
14
|
trackingOptions: Required<ReactNativeTrackingOptions>;
|
|
15
15
|
transportProvider: FetchTransport;
|
|
16
|
+
trackingSessionEvents: boolean;
|
|
16
17
|
};
|
|
17
18
|
export declare class ReactNativeConfig extends Config implements IReactNativeConfig {
|
|
18
19
|
appVersion?: string;
|
|
@@ -26,6 +27,7 @@ export declare class ReactNativeConfig extends Config implements IReactNativeCon
|
|
|
26
27
|
sessionTimeout: number;
|
|
27
28
|
trackingOptions: ReactNativeTrackingOptions;
|
|
28
29
|
sessionManager: ISessionManager;
|
|
30
|
+
trackingSessionEvents: boolean;
|
|
29
31
|
constructor(apiKey: string, userId?: string, options?: ReactNativeOptions);
|
|
30
32
|
get deviceId(): string | undefined;
|
|
31
33
|
set deviceId(deviceId: string | undefined);
|
|
@@ -51,6 +53,7 @@ export declare const createCookieStorage: (overrides?: ReactNativeOptions | unde
|
|
|
51
53
|
storageProvider: MemoryStorage<Event[]>;
|
|
52
54
|
trackingOptions: Required<ReactNativeTrackingOptions>;
|
|
53
55
|
transportProvider: FetchTransport;
|
|
56
|
+
trackingSessionEvents: boolean;
|
|
54
57
|
}) => Promise<Storage<UserSession>>;
|
|
55
58
|
export declare const createFlexibleStorage: <T>(options: ReactNativeOptions) => Promise<Storage<T>>;
|
|
56
59
|
export declare const createEventsStorage: (overrides?: ReactNativeOptions | undefined) => Promise<Storage<Event[]> | undefined>;
|
|
@@ -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"}
|
|
File without changes
|
|
@@ -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"}
|
|
@@ -26,7 +26,6 @@ export declare class Context implements BeforePlugin {
|
|
|
26
26
|
constructor();
|
|
27
27
|
setup(config: ReactNativeConfig): Promise<undefined>;
|
|
28
28
|
execute(context: Event): Promise<Event>;
|
|
29
|
-
isSessionValid(): boolean;
|
|
30
29
|
}
|
|
31
30
|
export {};
|
|
32
31
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -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,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,16 +1,27 @@
|
|
|
1
|
+
import { AppStateStatus } from 'react-native';
|
|
1
2
|
import { AmplitudeCore } from '@amplitude/analytics-core';
|
|
2
|
-
import { ReactNativeConfig, ReactNativeOptions, AttributionOptions, ReactNativeClient, Identify as IIdentify, EventOptions } from '@amplitude/analytics-types';
|
|
3
|
+
import { ReactNativeConfig, ReactNativeOptions, AttributionOptions, ReactNativeClient, Identify as IIdentify, EventOptions, Event, Result } from '@amplitude/analytics-types';
|
|
3
4
|
export declare class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
|
|
5
|
+
appState: AppStateStatus;
|
|
6
|
+
explicitSessionId: number | undefined;
|
|
4
7
|
init(apiKey?: string, userId?: string, options?: ReactNativeOptions): Promise<void>;
|
|
8
|
+
shutdown(): void;
|
|
5
9
|
runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession?: boolean): Promise<void>;
|
|
6
10
|
getUserId(): string | undefined;
|
|
7
11
|
setUserId(userId: string | undefined): void;
|
|
8
12
|
getDeviceId(): string | undefined;
|
|
9
13
|
setDeviceId(deviceId: string): void;
|
|
10
|
-
identify(identify: IIdentify, eventOptions?: EventOptions): Promise<
|
|
14
|
+
identify(identify: IIdentify, eventOptions?: EventOptions): Promise<Result>;
|
|
11
15
|
reset(): void;
|
|
12
16
|
getSessionId(): number | undefined;
|
|
13
17
|
setSessionId(sessionId: number): void;
|
|
18
|
+
private setSessionIdInternal;
|
|
19
|
+
process(event: Event): Promise<Result>;
|
|
20
|
+
currentTimeMillis(): number;
|
|
21
|
+
private startNewSessionIfNeeded;
|
|
22
|
+
private isWithinMinTimeBetweenSessions;
|
|
23
|
+
private inSession;
|
|
24
|
+
private readonly handleAppStateChange;
|
|
14
25
|
}
|
|
15
26
|
export declare const createInstance: () => ReactNativeClient;
|
|
16
27
|
declare const _default: ReactNativeClient;
|
|
@@ -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;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"}
|
|
File without changes
|
|
@@ -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"}
|
|
File without changes
|
|
@@ -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 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
|