@amplitude/analytics-react-native 0.2.4 → 0.3.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 +12 -16
- package/lib/commonjs/config.js.map +1 -1
- package/lib/commonjs/index.js +45 -106
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/react-native-client.js +40 -228
- package/lib/commonjs/react-native-client.js.map +1 -1
- package/lib/commonjs/utils/query-params.js +18 -6
- package/lib/commonjs/utils/query-params.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/config.js +12 -16
- package/lib/module/config.js.map +1 -1
- package/lib/module/index.js +23 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/react-native-client.js +34 -210
- package/lib/module/react-native-client.js.map +1 -1
- package/lib/module/utils/query-params.js +14 -4
- package/lib/module/utils/query-params.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/config.d.ts +4 -34
- package/lib/typescript/config.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/react-native-client.d.ts +4 -190
- package/lib/typescript/react-native-client.d.ts.map +1 -1
- package/lib/typescript/utils/query-params.d.ts +1 -0
- package/lib/typescript/utils/query-params.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +4 -4
- package/src/config.ts +14 -18
- package/src/index.ts +5 -2
- package/src/react-native-client.ts +35 -208
- package/src/utils/query-params.ts +13 -5
- package/src/version.ts +1 -1
package/lib/commonjs/config.js
CHANGED
|
@@ -23,6 +23,17 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
23
23
|
|
|
24
24
|
const getDefaultConfig = () => {
|
|
25
25
|
const cookieStorage = new _analyticsCore.MemoryStorage();
|
|
26
|
+
const trackingOptions = {
|
|
27
|
+
adid: true,
|
|
28
|
+
carrier: true,
|
|
29
|
+
deviceManufacturer: true,
|
|
30
|
+
deviceModel: true,
|
|
31
|
+
ipAddress: true,
|
|
32
|
+
language: true,
|
|
33
|
+
osName: true,
|
|
34
|
+
osVersion: true,
|
|
35
|
+
platform: true
|
|
36
|
+
};
|
|
26
37
|
return {
|
|
27
38
|
cookieExpiration: 365,
|
|
28
39
|
cookieSameSite: 'Lax',
|
|
@@ -33,22 +44,7 @@ const getDefaultConfig = () => {
|
|
|
33
44
|
sessionManager: new _sessionManager.SessionManager(cookieStorage, ''),
|
|
34
45
|
sessionTimeout: 30 * 60 * 1000,
|
|
35
46
|
storageProvider: new _analyticsCore.MemoryStorage(),
|
|
36
|
-
trackingOptions
|
|
37
|
-
city: true,
|
|
38
|
-
country: true,
|
|
39
|
-
carrier: true,
|
|
40
|
-
deviceManufacturer: true,
|
|
41
|
-
deviceModel: true,
|
|
42
|
-
dma: true,
|
|
43
|
-
ipAddress: true,
|
|
44
|
-
language: true,
|
|
45
|
-
osName: true,
|
|
46
|
-
osVersion: true,
|
|
47
|
-
platform: true,
|
|
48
|
-
region: true,
|
|
49
|
-
versionName: true,
|
|
50
|
-
adid: true
|
|
51
|
-
},
|
|
47
|
+
trackingOptions,
|
|
52
48
|
transportProvider: new _fetch.FetchTransport()
|
|
53
49
|
};
|
|
54
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getDefaultConfig","cookieStorage","MemoryStorage","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","trackingOptions","city","country","carrier","deviceManufacturer","deviceModel","dma","ipAddress","language","osName","osVersion","platform","region","versionName","adid","transportProvider","FetchTransport","ReactNativeConfig","Config","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","getCookieName","cookies","get","queryParams","getQueryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","CookieStorage","expirationDays","sameSite","secure","LocalStorage","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","UUID","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n TrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions: {\n city: true,\n country: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n dma: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n region: true,\n versionName: true,\n adid: true,\n },\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: TrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getDefaultConfig","cookieStorage","MemoryStorage","trackingOptions","adid","carrier","deviceManufacturer","deviceModel","ipAddress","language","osName","osVersion","platform","cookieExpiration","cookieSameSite","cookieSecure","disableCookies","domain","sessionManager","SessionManager","sessionTimeout","storageProvider","transportProvider","FetchTransport","ReactNativeConfig","Config","constructor","apiKey","userId","options","defaultConfig","flushIntervalMillis","flushMaxRetries","flushQueueSize","appVersion","deviceId","lastEventTime","optOut","Boolean","partnerId","sessionId","getDeviceId","setDeviceId","getUserId","setUserId","getSessionId","setSessionId","getOptOut","setOptOut","getLastEventTime","setLastEventTime","useReactNativeConfig","getTopLevelDomain","createCookieStorage","cookieName","getCookieName","cookies","get","queryParams","getQueryParams","load","createDeviceId","createEventsStorage","overrides","baseConfig","isEnabled","createFlexibleStorage","storage","CookieStorage","expirationDays","sameSite","secure","LocalStorage","hasStorageProviderProperty","Object","prototype","hasOwnProperty","call","undefined","idFromCookies","idFromOptions","idFromQueryParams","UUID","url","location","host","hostname","parts","split","levels","storageKey","i","length","push","slice","join","set","value","remove"],"sources":["config.ts"],"sourcesContent":["import {\n Event,\n ReactNativeOptions,\n ReactNativeConfig as IReactNativeConfig,\n Storage,\n ReactNativeTrackingOptions,\n UserSession,\n SessionManager as ISessionManager,\n} from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\n\nimport { CookieStorage } from './storage/cookie';\nimport { FetchTransport } from './transports/fetch';\nimport { LocalStorage } from './storage/local-storage';\nimport { getCookieName } from './utils/cookie-name';\nimport { getQueryParams } from './utils/query-params';\nimport { SessionManager } from './session-manager';\n\nexport const getDefaultConfig = () => {\n const cookieStorage = new MemoryStorage<UserSession>();\n const trackingOptions: Required<ReactNativeTrackingOptions> = {\n adid: true,\n carrier: true,\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true,\n };\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage,\n disableCookies: false,\n domain: '',\n sessionManager: new SessionManager(cookieStorage, ''),\n sessionTimeout: 30 * 60 * 1000,\n storageProvider: new MemoryStorage<Event[]>(),\n trackingOptions,\n transportProvider: new FetchTransport(),\n };\n};\n\nexport class ReactNativeConfig extends Config implements IReactNativeConfig {\n appVersion?: string;\n cookieExpiration: number;\n cookieSameSite: string;\n cookieSecure: boolean;\n cookieStorage: Storage<UserSession>;\n disableCookies: boolean;\n domain: string;\n partnerId?: string;\n sessionTimeout: number;\n trackingOptions: ReactNativeTrackingOptions;\n sessionManager: ISessionManager;\n\n constructor(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n const defaultConfig = getDefaultConfig();\n super({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n ...options,\n apiKey,\n storageProvider: options?.storageProvider ?? defaultConfig.storageProvider,\n transportProvider: options?.transportProvider ?? defaultConfig.transportProvider,\n });\n this.cookieStorage = options?.cookieStorage ?? defaultConfig.cookieStorage;\n this.sessionManager = options?.sessionManager ?? defaultConfig.sessionManager;\n this.sessionTimeout = options?.sessionTimeout ?? defaultConfig.sessionTimeout;\n\n this.appVersion = options?.appVersion;\n this.cookieExpiration = options?.cookieExpiration ?? defaultConfig.cookieExpiration;\n this.cookieSameSite = options?.cookieSameSite ?? defaultConfig.cookieSameSite;\n this.cookieSecure = options?.cookieSecure ?? defaultConfig.cookieSecure;\n this.deviceId = options?.deviceId;\n this.disableCookies = options?.disableCookies ?? defaultConfig.disableCookies;\n this.domain = options?.domain ?? defaultConfig.domain;\n this.lastEventTime = this.lastEventTime ?? options?.lastEventTime;\n this.optOut = Boolean(options?.optOut);\n this.partnerId = options?.partnerId;\n this.sessionId = options?.sessionId;\n this.trackingOptions = options?.trackingOptions ?? defaultConfig.trackingOptions;\n this.userId = userId;\n }\n\n get deviceId() {\n return this.sessionManager.getDeviceId();\n }\n\n set deviceId(deviceId: string | undefined) {\n this.sessionManager.setDeviceId(deviceId);\n }\n\n get userId() {\n return this.sessionManager.getUserId();\n }\n\n set userId(userId: string | undefined) {\n this.sessionManager.setUserId(userId);\n }\n\n get sessionId() {\n return this.sessionManager.getSessionId();\n }\n\n set sessionId(sessionId: number | undefined) {\n this.sessionManager.setSessionId(sessionId);\n }\n\n get optOut() {\n return this.sessionManager.getOptOut();\n }\n\n set optOut(optOut: boolean) {\n this.sessionManager?.setOptOut(Boolean(optOut));\n }\n\n get lastEventTime() {\n return this.sessionManager.getLastEventTime();\n }\n\n set lastEventTime(lastEventTime: number | undefined) {\n this.sessionManager.setLastEventTime(lastEventTime);\n }\n}\n\nexport const useReactNativeConfig = async (\n apiKey: string,\n userId?: string,\n options?: ReactNativeOptions,\n): Promise<IReactNativeConfig> => {\n const defaultConfig = getDefaultConfig();\n const domain = options?.domain ?? (await getTopLevelDomain());\n const cookieStorage = await createCookieStorage({ ...options, domain });\n const cookieName = getCookieName(apiKey);\n const cookies = await cookieStorage.get(cookieName);\n const queryParams = getQueryParams();\n const sessionManager = await new SessionManager(cookieStorage, apiKey).load();\n\n return new ReactNativeConfig(apiKey, userId ?? cookies?.userId, {\n ...options,\n cookieStorage,\n sessionManager,\n deviceId: createDeviceId(cookies?.deviceId, options?.deviceId, queryParams.deviceId),\n domain,\n optOut: options?.optOut ?? Boolean(cookies?.optOut),\n sessionId: (await cookieStorage.get(cookieName))?.sessionId ?? options?.sessionId,\n storageProvider: await createEventsStorage(options),\n trackingOptions: { ...defaultConfig.trackingOptions, ...options?.trackingOptions },\n transportProvider: options?.transportProvider ?? new FetchTransport(),\n });\n};\n\nexport const createCookieStorage = async (\n overrides?: ReactNativeOptions,\n baseConfig = getDefaultConfig(),\n): Promise<Storage<UserSession>> => {\n const options = { ...baseConfig, ...overrides };\n const cookieStorage = overrides?.cookieStorage;\n if (!cookieStorage || !(await cookieStorage.isEnabled())) {\n return createFlexibleStorage<UserSession>(options);\n }\n return cookieStorage;\n};\n\nexport const createFlexibleStorage = async <T>(options: ReactNativeOptions): Promise<Storage<T>> => {\n let storage: Storage<T> = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure,\n });\n if (options.disableCookies || !(await storage.isEnabled())) {\n storage = new LocalStorage();\n if (!(await storage.isEnabled())) {\n storage = new MemoryStorage();\n }\n }\n return storage;\n};\n\nexport const createEventsStorage = async (overrides?: ReactNativeOptions): Promise<Storage<Event[]> | undefined> => {\n const hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n // If storageProperty is explicitly undefined like `{ storageProperty: undefined }`\n // then storageProvider is undefined\n // If storageProvider is implicitly undefined like `{ }`\n // then storageProvider is LocalStorage\n // Otherwise storageProvider is overriden\n if (!hasStorageProviderProperty || overrides.storageProvider) {\n for (const storage of [overrides?.storageProvider, new LocalStorage<Event[]>()]) {\n if (storage && (await storage.isEnabled())) {\n return storage;\n }\n }\n }\n return undefined;\n};\n\nexport const createDeviceId = (idFromCookies?: string, idFromOptions?: string, idFromQueryParams?: string) => {\n return idFromOptions || idFromQueryParams || idFromCookies || UUID();\n};\n\nexport const getTopLevelDomain = async (url?: string) => {\n if (!(await new CookieStorage<string>().isEnabled()) || (!url && typeof location === 'undefined')) {\n return '';\n }\n\n const host = url ?? location.hostname;\n const parts = host.split('.');\n const levels = [];\n const storageKey = 'AMP_TLDTEST';\n\n for (let i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n for (let i = 0; i < levels.length; i++) {\n const domain = levels[i];\n const options = { domain: '.' + domain };\n const storage = new CookieStorage<number>(options);\n await storage.set(storageKey, 1);\n const value = await storage.get(storageKey);\n if (value) {\n await storage.remove(storageKey);\n return '.' + domain;\n }\n }\n\n return '';\n};\n"],"mappings":"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"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -15,117 +15,16 @@ Object.defineProperty(exports, "Revenue", {
|
|
|
15
15
|
return _analyticsCore.Revenue;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
exports.Types = void 0;
|
|
19
|
-
Object.defineProperty(exports, "
|
|
18
|
+
exports.add = exports.Types = void 0;
|
|
19
|
+
Object.defineProperty(exports, "createInstance", {
|
|
20
20
|
enumerable: true,
|
|
21
21
|
get: function () {
|
|
22
|
-
return _reactNativeClient.
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
Object.defineProperty(exports, "flush", {
|
|
26
|
-
enumerable: true,
|
|
27
|
-
get: function () {
|
|
28
|
-
return _reactNativeClient.flush;
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(exports, "getDeviceId", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
get: function () {
|
|
34
|
-
return _reactNativeClient.getDeviceId;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
Object.defineProperty(exports, "getSessionId", {
|
|
38
|
-
enumerable: true,
|
|
39
|
-
get: function () {
|
|
40
|
-
return _reactNativeClient.getSessionId;
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
Object.defineProperty(exports, "getUserId", {
|
|
44
|
-
enumerable: true,
|
|
45
|
-
get: function () {
|
|
46
|
-
return _reactNativeClient.getUserId;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
Object.defineProperty(exports, "groupIdentify", {
|
|
50
|
-
enumerable: true,
|
|
51
|
-
get: function () {
|
|
52
|
-
return _reactNativeClient.groupIdentify;
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
Object.defineProperty(exports, "identify", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
get: function () {
|
|
58
|
-
return _reactNativeClient.identify;
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
Object.defineProperty(exports, "init", {
|
|
62
|
-
enumerable: true,
|
|
63
|
-
get: function () {
|
|
64
|
-
return _reactNativeClient.init;
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
Object.defineProperty(exports, "logEvent", {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
get: function () {
|
|
70
|
-
return _reactNativeClient.logEvent;
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
Object.defineProperty(exports, "remove", {
|
|
74
|
-
enumerable: true,
|
|
75
|
-
get: function () {
|
|
76
|
-
return _reactNativeClient.remove;
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
Object.defineProperty(exports, "reset", {
|
|
80
|
-
enumerable: true,
|
|
81
|
-
get: function () {
|
|
82
|
-
return _reactNativeClient.reset;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
Object.defineProperty(exports, "revenue", {
|
|
86
|
-
enumerable: true,
|
|
87
|
-
get: function () {
|
|
88
|
-
return _reactNativeClient.revenue;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
Object.defineProperty(exports, "setDeviceId", {
|
|
92
|
-
enumerable: true,
|
|
93
|
-
get: function () {
|
|
94
|
-
return _reactNativeClient.setDeviceId;
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
Object.defineProperty(exports, "setGroup", {
|
|
98
|
-
enumerable: true,
|
|
99
|
-
get: function () {
|
|
100
|
-
return _reactNativeClient.setGroup;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
Object.defineProperty(exports, "setOptOut", {
|
|
104
|
-
enumerable: true,
|
|
105
|
-
get: function () {
|
|
106
|
-
return _reactNativeClient.setOptOut;
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
Object.defineProperty(exports, "setSessionId", {
|
|
110
|
-
enumerable: true,
|
|
111
|
-
get: function () {
|
|
112
|
-
return _reactNativeClient.setSessionId;
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
Object.defineProperty(exports, "setUserId", {
|
|
116
|
-
enumerable: true,
|
|
117
|
-
get: function () {
|
|
118
|
-
return _reactNativeClient.setUserId;
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
Object.defineProperty(exports, "track", {
|
|
122
|
-
enumerable: true,
|
|
123
|
-
get: function () {
|
|
124
|
-
return _reactNativeClient.track;
|
|
22
|
+
return _reactNativeClient.createInstance;
|
|
125
23
|
}
|
|
126
24
|
});
|
|
25
|
+
exports.track = exports.setUserId = exports.setSessionId = exports.setOptOut = exports.setGroup = exports.setDeviceId = exports.revenue = exports.reset = exports.remove = exports.logEvent = exports.init = exports.identify = exports.groupIdentify = exports.getUserId = exports.getSessionId = exports.getDeviceId = exports.flush = void 0;
|
|
127
26
|
|
|
128
|
-
var _reactNativeClient = require("./react-native-client");
|
|
27
|
+
var _reactNativeClient = _interopRequireWildcard(require("./react-native-client"));
|
|
129
28
|
|
|
130
29
|
var _analyticsCore = require("@amplitude/analytics-core");
|
|
131
30
|
|
|
@@ -136,4 +35,44 @@ exports.Types = Types;
|
|
|
136
35
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
137
36
|
|
|
138
37
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
38
|
+
|
|
39
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
|
40
|
+
const {
|
|
41
|
+
add,
|
|
42
|
+
flush,
|
|
43
|
+
getDeviceId,
|
|
44
|
+
getSessionId,
|
|
45
|
+
getUserId,
|
|
46
|
+
groupIdentify,
|
|
47
|
+
identify,
|
|
48
|
+
init,
|
|
49
|
+
logEvent,
|
|
50
|
+
remove,
|
|
51
|
+
reset,
|
|
52
|
+
revenue,
|
|
53
|
+
setDeviceId,
|
|
54
|
+
setGroup,
|
|
55
|
+
setOptOut,
|
|
56
|
+
setSessionId,
|
|
57
|
+
setUserId,
|
|
58
|
+
track
|
|
59
|
+
} = _reactNativeClient.default;
|
|
60
|
+
exports.track = track;
|
|
61
|
+
exports.setUserId = setUserId;
|
|
62
|
+
exports.setSessionId = setSessionId;
|
|
63
|
+
exports.setOptOut = setOptOut;
|
|
64
|
+
exports.setGroup = setGroup;
|
|
65
|
+
exports.setDeviceId = setDeviceId;
|
|
66
|
+
exports.revenue = revenue;
|
|
67
|
+
exports.reset = reset;
|
|
68
|
+
exports.remove = remove;
|
|
69
|
+
exports.logEvent = logEvent;
|
|
70
|
+
exports.init = init;
|
|
71
|
+
exports.identify = identify;
|
|
72
|
+
exports.groupIdentify = groupIdentify;
|
|
73
|
+
exports.getUserId = getUserId;
|
|
74
|
+
exports.getSessionId = getSessionId;
|
|
75
|
+
exports.getDeviceId = getDeviceId;
|
|
76
|
+
exports.flush = flush;
|
|
77
|
+
exports.add = add;
|
|
139
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":["add","flush","getDeviceId","getSessionId","getUserId","groupIdentify","identify","init","logEvent","remove","reset","revenue","setDeviceId","setGroup","setOptOut","setSessionId","setUserId","track","client"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './react-native-client';\nexport { createInstance } from './react-native-client';\nexport const {\n add,\n flush,\n getDeviceId,\n getSessionId,\n getUserId,\n groupIdentify,\n identify,\n init,\n logEvent,\n remove,\n reset,\n revenue,\n setDeviceId,\n setGroup,\n setOptOut,\n setSessionId,\n setUserId,\n track,\n} = client;\nexport { Revenue, Identify } from '@amplitude/analytics-core';\n// Hack - react-native apps have trouble with:\n// export * as Types from '@amplitude/analytics-types\nimport * as Types from '@amplitude/analytics-types';\nexport { Types };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAsBA;;AAGA;;;;;;;;AA1BA;AAGO,MAAM;EACXA,GADW;EAEXC,KAFW;EAGXC,WAHW;EAIXC,YAJW;EAKXC,SALW;EAMXC,aANW;EAOXC,QAPW;EAQXC,IARW;EASXC,QATW;EAUXC,MAVW;EAWXC,KAXW;EAYXC,OAZW;EAaXC,WAbW;EAcXC,QAdW;EAeXC,SAfW;EAgBXC,YAhBW;EAiBXC,SAjBW;EAkBXC;AAlBW,IAmBTC,0BAnBG"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.default = exports.createInstance = exports.AmplitudeReactNative = void 0;
|
|
7
7
|
|
|
8
8
|
var _analyticsCore = require("@amplitude/analytics-core");
|
|
9
9
|
|
|
@@ -25,7 +25,13 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
|
|
|
25
25
|
async init(apiKey, userId, options) {
|
|
26
26
|
var _oldCookies$deviceId, _oldCookies$sessionId, _options$optOut;
|
|
27
27
|
|
|
28
|
-
// Step
|
|
28
|
+
// Step 0: Block concurrent initialization
|
|
29
|
+
if (this.initializing) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
this.initializing = true; // Step 1: Read cookies stored by old SDK
|
|
34
|
+
|
|
29
35
|
const oldCookies = await (0, _cookieMigration.parseOldCookies)(apiKey, options); // Step 2: Create react native config
|
|
30
36
|
|
|
31
37
|
const reactNativeOptions = await (0, _config.useReactNativeConfig)(apiKey, userId || oldCookies.userId, { ...options,
|
|
@@ -61,7 +67,8 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
|
|
|
61
67
|
|
|
62
68
|
await this.add(new _context.Context());
|
|
63
69
|
await this.add(new _identity.IdentityEventSender());
|
|
64
|
-
await this.add(new _analyticsCore.Destination());
|
|
70
|
+
await this.add(new _analyticsCore.Destination());
|
|
71
|
+
this.initializing = false; // Step 5: Set timeline ready for processing events
|
|
65
72
|
// Send existing events, which might be collected by track before init
|
|
66
73
|
|
|
67
74
|
this.timeline.isReady = true;
|
|
@@ -151,229 +158,34 @@ class AmplitudeReactNative extends _analyticsCore.AmplitudeCore {
|
|
|
151
158
|
}
|
|
152
159
|
|
|
153
160
|
exports.AmplitudeReactNative = AmplitudeReactNative;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
exports.add = add;
|
|
185
|
-
const remove = (0, _analyticsCore.returnWrapper)(client.remove.bind(client));
|
|
186
|
-
/**
|
|
187
|
-
* Tracks user-defined event, with specified type, optional event properties and optional overwrites.
|
|
188
|
-
*
|
|
189
|
-
* ```typescript
|
|
190
|
-
* // event tracking with event type only
|
|
191
|
-
* track('Page Load');
|
|
192
|
-
*
|
|
193
|
-
* // event tracking with event type and additional event properties
|
|
194
|
-
* track('Page Load', { loadTime: 1000 });
|
|
195
|
-
*
|
|
196
|
-
* // event tracking with event type, additional event properties, and overwritten event options
|
|
197
|
-
* track('Page Load', { loadTime: 1000 }, { sessionId: -1 });
|
|
198
|
-
*
|
|
199
|
-
* // alternatively, this tracking method is awaitable
|
|
200
|
-
* const result = await track('Page Load').promise;
|
|
201
|
-
* console.log(result.event); // {...}
|
|
202
|
-
* console.log(result.code); // 200
|
|
203
|
-
* console.log(result.message); // "Event tracked successfully"
|
|
204
|
-
* ```
|
|
205
|
-
*/
|
|
206
|
-
|
|
207
|
-
exports.remove = remove;
|
|
208
|
-
const track = (0, _analyticsCore.returnWrapper)(client.track.bind(client));
|
|
209
|
-
/**
|
|
210
|
-
* Alias for track()
|
|
211
|
-
*/
|
|
212
|
-
|
|
213
|
-
exports.track = track;
|
|
214
|
-
const logEvent = (0, _analyticsCore.returnWrapper)(client.logEvent.bind(client));
|
|
215
|
-
/**
|
|
216
|
-
* Sends an identify event containing user property operations
|
|
217
|
-
*
|
|
218
|
-
* ```typescript
|
|
219
|
-
* const id = new Identify();
|
|
220
|
-
* id.set('colors', ['rose', 'gold']);
|
|
221
|
-
* identify(id);
|
|
222
|
-
*
|
|
223
|
-
* // alternatively, this tracking method is awaitable
|
|
224
|
-
* const result = await identify(id).promise;
|
|
225
|
-
* console.log(result.event); // {...}
|
|
226
|
-
* console.log(result.code); // 200
|
|
227
|
-
* console.log(result.message); // "Event tracked successfully"
|
|
228
|
-
* ```
|
|
229
|
-
*/
|
|
230
|
-
|
|
231
|
-
exports.logEvent = logEvent;
|
|
232
|
-
const identify = (0, _analyticsCore.returnWrapper)(client.identify.bind(client));
|
|
233
|
-
/**
|
|
234
|
-
* Sends a group identify event containing group property operations.
|
|
235
|
-
*
|
|
236
|
-
* ```typescript
|
|
237
|
-
* const id = new Identify();
|
|
238
|
-
* id.set('skills', ['js', 'ts']);
|
|
239
|
-
* const groupType = 'org';
|
|
240
|
-
* const groupName = 'engineering';
|
|
241
|
-
* groupIdentify(groupType, groupName, id);
|
|
242
|
-
*
|
|
243
|
-
* // alternatively, this tracking method is awaitable
|
|
244
|
-
* const result = await groupIdentify(groupType, groupName, id).promise;
|
|
245
|
-
* console.log(result.event); // {...}
|
|
246
|
-
* console.log(result.code); // 200
|
|
247
|
-
* console.log(result.message); // "Event tracked successfully"
|
|
248
|
-
* ```
|
|
249
|
-
*/
|
|
250
|
-
|
|
251
|
-
exports.identify = identify;
|
|
252
|
-
const groupIdentify = (0, _analyticsCore.returnWrapper)(client.groupIdentify.bind(client));
|
|
253
|
-
exports.groupIdentify = groupIdentify;
|
|
254
|
-
const setGroup = (0, _analyticsCore.returnWrapper)(client.setGroup.bind(client));
|
|
255
|
-
/**
|
|
256
|
-
* Sends a revenue event containing revenue property operations.
|
|
257
|
-
*
|
|
258
|
-
* ```typescript
|
|
259
|
-
* const rev = new Revenue();
|
|
260
|
-
* rev.setRevenue(100);
|
|
261
|
-
* revenue(rev);
|
|
262
|
-
*
|
|
263
|
-
* // alternatively, this tracking method is awaitable
|
|
264
|
-
* const result = await revenue(rev).promise;
|
|
265
|
-
* console.log(result.event); // {...}
|
|
266
|
-
* console.log(result.code); // 200
|
|
267
|
-
* console.log(result.message); // "Event tracked successfully"
|
|
268
|
-
* ```
|
|
269
|
-
*/
|
|
270
|
-
|
|
271
|
-
exports.setGroup = setGroup;
|
|
272
|
-
const revenue = (0, _analyticsCore.returnWrapper)(client.revenue.bind(client));
|
|
273
|
-
/**
|
|
274
|
-
* Returns current user ID.
|
|
275
|
-
*
|
|
276
|
-
* ```typescript
|
|
277
|
-
* const userId = getUserId();
|
|
278
|
-
* ```
|
|
279
|
-
*/
|
|
280
|
-
|
|
281
|
-
exports.revenue = revenue;
|
|
282
|
-
const getUserId = client.getUserId.bind(client);
|
|
283
|
-
/**
|
|
284
|
-
* Sets a new user ID.
|
|
285
|
-
*
|
|
286
|
-
* ```typescript
|
|
287
|
-
* setUserId('userId');
|
|
288
|
-
* ```
|
|
289
|
-
*/
|
|
290
|
-
|
|
291
|
-
exports.getUserId = getUserId;
|
|
292
|
-
const setUserId = client.setUserId.bind(client);
|
|
293
|
-
/**
|
|
294
|
-
* Returns current device ID.
|
|
295
|
-
*
|
|
296
|
-
* ```typescript
|
|
297
|
-
* const deviceId = getDeviceId();
|
|
298
|
-
* ```
|
|
299
|
-
*/
|
|
300
|
-
|
|
301
|
-
exports.setUserId = setUserId;
|
|
302
|
-
const getDeviceId = client.getDeviceId.bind(client);
|
|
303
|
-
/**
|
|
304
|
-
* Sets a new device ID.
|
|
305
|
-
* When setting a custom device ID, make sure the value is sufficiently unique.
|
|
306
|
-
* A uuid is recommended.
|
|
307
|
-
*
|
|
308
|
-
* ```typescript
|
|
309
|
-
* setDeviceId('deviceId');
|
|
310
|
-
* ```
|
|
311
|
-
*/
|
|
312
|
-
|
|
313
|
-
exports.getDeviceId = getDeviceId;
|
|
314
|
-
const setDeviceId = client.setDeviceId.bind(client);
|
|
315
|
-
/**
|
|
316
|
-
* reset is a shortcut to anonymize users after they log out, by:
|
|
317
|
-
* - setting userId to `undefined`
|
|
318
|
-
* - regenerating a new random deviceId
|
|
319
|
-
*
|
|
320
|
-
* With an `undefined` userId and a completely new deviceId, the current user would appear as a brand new user in dashboard.
|
|
321
|
-
*
|
|
322
|
-
* ```typescript
|
|
323
|
-
* reset();
|
|
324
|
-
* ```
|
|
325
|
-
*/
|
|
326
|
-
|
|
327
|
-
exports.setDeviceId = setDeviceId;
|
|
328
|
-
const reset = client.reset.bind(client);
|
|
329
|
-
/**
|
|
330
|
-
* Returns current session ID.
|
|
331
|
-
*
|
|
332
|
-
* ```typescript
|
|
333
|
-
* const sessionId = getSessionId();
|
|
334
|
-
* ```
|
|
335
|
-
*/
|
|
336
|
-
|
|
337
|
-
exports.reset = reset;
|
|
338
|
-
const getSessionId = client.getSessionId.bind(client);
|
|
339
|
-
/**
|
|
340
|
-
* Sets a new session ID.
|
|
341
|
-
* When settign a custom session ID, make sure the value is in milliseconds since epoch (Unix Timestamp).
|
|
342
|
-
*
|
|
343
|
-
* ```typescript
|
|
344
|
-
* setSessionId(Date.now());
|
|
345
|
-
* ```
|
|
346
|
-
*/
|
|
347
|
-
|
|
348
|
-
exports.getSessionId = getSessionId;
|
|
349
|
-
const setSessionId = client.setSessionId.bind(client);
|
|
350
|
-
/**
|
|
351
|
-
* Sets a new optOut config value. This toggles event tracking on/off.
|
|
352
|
-
*
|
|
353
|
-
*```typescript
|
|
354
|
-
* // Stops tracking
|
|
355
|
-
* setOptOut(true);
|
|
356
|
-
*
|
|
357
|
-
* // Starts/resumes tracking
|
|
358
|
-
* setOptOut(false);
|
|
359
|
-
* ```
|
|
360
|
-
*/
|
|
361
|
-
|
|
362
|
-
exports.setSessionId = setSessionId;
|
|
363
|
-
const setOptOut = client.setOptOut.bind(client);
|
|
364
|
-
/**
|
|
365
|
-
* Flush and send all the events which haven't been sent.
|
|
366
|
-
*
|
|
367
|
-
*```typescript
|
|
368
|
-
* // Send all the unsent events
|
|
369
|
-
* flush();
|
|
370
|
-
*
|
|
371
|
-
* // alternatively, this tracking method is awaitable
|
|
372
|
-
* await flush().promise;
|
|
373
|
-
* ```
|
|
374
|
-
*/
|
|
375
|
-
|
|
376
|
-
exports.setOptOut = setOptOut;
|
|
377
|
-
const flush = (0, _analyticsCore.returnWrapper)(client.flush.bind(client));
|
|
378
|
-
exports.flush = flush;
|
|
161
|
+
|
|
162
|
+
const createInstance = () => {
|
|
163
|
+
const client = new AmplitudeReactNative();
|
|
164
|
+
return {
|
|
165
|
+
init: (0, _analyticsCore.returnWrapper)(client.init.bind(client)),
|
|
166
|
+
add: (0, _analyticsCore.returnWrapper)(client.add.bind(client)),
|
|
167
|
+
remove: (0, _analyticsCore.returnWrapper)(client.remove.bind(client)),
|
|
168
|
+
track: (0, _analyticsCore.returnWrapper)(client.track.bind(client)),
|
|
169
|
+
logEvent: (0, _analyticsCore.returnWrapper)(client.logEvent.bind(client)),
|
|
170
|
+
identify: (0, _analyticsCore.returnWrapper)(client.identify.bind(client)),
|
|
171
|
+
groupIdentify: (0, _analyticsCore.returnWrapper)(client.groupIdentify.bind(client)),
|
|
172
|
+
setGroup: (0, _analyticsCore.returnWrapper)(client.setGroup.bind(client)),
|
|
173
|
+
revenue: (0, _analyticsCore.returnWrapper)(client.revenue.bind(client)),
|
|
174
|
+
flush: (0, _analyticsCore.returnWrapper)(client.flush.bind(client)),
|
|
175
|
+
getUserId: client.getUserId.bind(client),
|
|
176
|
+
setUserId: client.setUserId.bind(client),
|
|
177
|
+
getDeviceId: client.getDeviceId.bind(client),
|
|
178
|
+
setDeviceId: client.setDeviceId.bind(client),
|
|
179
|
+
reset: client.reset.bind(client),
|
|
180
|
+
getSessionId: client.getSessionId.bind(client),
|
|
181
|
+
setSessionId: client.setSessionId.bind(client),
|
|
182
|
+
setOptOut: client.setOptOut.bind(client)
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
exports.createInstance = createInstance;
|
|
187
|
+
|
|
188
|
+
var _default = createInstance();
|
|
189
|
+
|
|
190
|
+
exports.default = _default;
|
|
379
191
|
//# sourceMappingURL=react-native-client.js.map
|