@amplitude/analytics-react-native 0.4.11 → 0.5.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/react-native-client.js +18 -18
- 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/react-native-client.js +19 -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/react-native-client.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/react-native-client.ts +117 -19
- package/src/version.ts +1 -1
|
@@ -168,24 +168,24 @@ exports.AmplitudeReactNative = AmplitudeReactNative;
|
|
|
168
168
|
const createInstance = () => {
|
|
169
169
|
const client = new AmplitudeReactNative();
|
|
170
170
|
return {
|
|
171
|
-
init: (0, _analyticsCore.returnWrapper)(client.init.bind(client)),
|
|
172
|
-
add: (0, _analyticsCore.returnWrapper)(client.add.bind(client)),
|
|
173
|
-
remove: (0, _analyticsCore.returnWrapper)(client.remove.bind(client)),
|
|
174
|
-
track: (0, _analyticsCore.returnWrapper)(client.track.bind(client)),
|
|
175
|
-
logEvent: (0, _analyticsCore.returnWrapper)(client.logEvent.bind(client)),
|
|
176
|
-
identify: (0, _analyticsCore.returnWrapper)(client.identify.bind(client)),
|
|
177
|
-
groupIdentify: (0, _analyticsCore.returnWrapper)(client.groupIdentify.bind(client)),
|
|
178
|
-
setGroup: (0, _analyticsCore.returnWrapper)(client.setGroup.bind(client)),
|
|
179
|
-
revenue: (0, _analyticsCore.returnWrapper)(client.revenue.bind(client)),
|
|
180
|
-
flush: (0, _analyticsCore.returnWrapper)(client.flush.bind(client)),
|
|
181
|
-
getUserId: client.getUserId.bind(client),
|
|
182
|
-
setUserId: client.setUserId.bind(client),
|
|
183
|
-
getDeviceId: client.getDeviceId.bind(client),
|
|
184
|
-
setDeviceId: client.setDeviceId.bind(client),
|
|
185
|
-
reset: client.reset.bind(client),
|
|
186
|
-
getSessionId: client.getSessionId.bind(client),
|
|
187
|
-
setSessionId: client.setSessionId.bind(client),
|
|
188
|
-
setOptOut: client.setOptOut.bind(client)
|
|
171
|
+
init: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.init.bind(client)), 'init', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config'])),
|
|
172
|
+
add: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.add.bind(client)), 'add', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.plugins'])),
|
|
173
|
+
remove: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.remove.bind(client)), 'remove', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.plugins'])),
|
|
174
|
+
track: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.track.bind(client)), 'track', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
175
|
+
logEvent: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.logEvent.bind(client)), 'logEvent', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
176
|
+
identify: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.identify.bind(client)), 'identify', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
177
|
+
groupIdentify: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.groupIdentify.bind(client)), 'groupIdentify', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
178
|
+
setGroup: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.setGroup.bind(client)), 'setGroup', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
179
|
+
revenue: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.revenue.bind(client)), 'revenue', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
180
|
+
flush: (0, _analyticsCore.debugWrapper)((0, _analyticsCore.returnWrapper)(client.flush.bind(client)), 'flush', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
181
|
+
getUserId: (0, _analyticsCore.debugWrapper)(client.getUserId.bind(client), 'getUserId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config', 'config.userId'])),
|
|
182
|
+
setUserId: (0, _analyticsCore.debugWrapper)(client.setUserId.bind(client), 'setUserId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config', 'config.userId'])),
|
|
183
|
+
getDeviceId: (0, _analyticsCore.debugWrapper)(client.getDeviceId.bind(client), 'getDeviceId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config', 'config.deviceId'])),
|
|
184
|
+
setDeviceId: (0, _analyticsCore.debugWrapper)(client.setDeviceId.bind(client), 'setDeviceId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config', 'config.deviceId'])),
|
|
185
|
+
reset: (0, _analyticsCore.debugWrapper)(client.reset.bind(client), 'reset', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config', 'config.userId', 'config.deviceId'])),
|
|
186
|
+
getSessionId: (0, _analyticsCore.debugWrapper)(client.getSessionId.bind(client), 'getSessionId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config'])),
|
|
187
|
+
setSessionId: (0, _analyticsCore.debugWrapper)(client.setSessionId.bind(client), 'setSessionId', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config'])),
|
|
188
|
+
setOptOut: (0, _analyticsCore.debugWrapper)(client.setOptOut.bind(client), 'setOptOut', (0, _analyticsCore.getClientLogConfig)(client), (0, _analyticsCore.getClientStates)(client, ['config']))
|
|
189
189
|
};
|
|
190
190
|
};
|
|
191
191
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","runAttributionStrategy","attribution","runQueuedFunctions","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","UUID","getSessionId","createInstance","client","returnWrapper","remove","logEvent","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AttributionOptions,\n ReactNativeClient,\n 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: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","runAttributionStrategy","attribution","runQueuedFunctions","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","identify","eventOptions","user_id","device_id","reset","undefined","UUID","getSessionId","createInstance","client","debugWrapper","returnWrapper","getClientLogConfig","getClientStates","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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"}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -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.5.0';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';
|
|
1
|
+
import { AmplitudeCore, Destination, UUID, returnWrapper, debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';
|
|
2
2
|
import { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';
|
|
3
3
|
import { Context } from './plugins/context';
|
|
4
4
|
import { useReactNativeConfig, createFlexibleStorage } from './config';
|
|
@@ -152,24 +152,24 @@ export class AmplitudeReactNative extends AmplitudeCore {
|
|
|
152
152
|
export const createInstance = () => {
|
|
153
153
|
const client = new AmplitudeReactNative();
|
|
154
154
|
return {
|
|
155
|
-
init: returnWrapper(client.init.bind(client)),
|
|
156
|
-
add: returnWrapper(client.add.bind(client)),
|
|
157
|
-
remove: returnWrapper(client.remove.bind(client)),
|
|
158
|
-
track: returnWrapper(client.track.bind(client)),
|
|
159
|
-
logEvent: returnWrapper(client.logEvent.bind(client)),
|
|
160
|
-
identify: returnWrapper(client.identify.bind(client)),
|
|
161
|
-
groupIdentify: returnWrapper(client.groupIdentify.bind(client)),
|
|
162
|
-
setGroup: returnWrapper(client.setGroup.bind(client)),
|
|
163
|
-
revenue: returnWrapper(client.revenue.bind(client)),
|
|
164
|
-
flush: returnWrapper(client.flush.bind(client)),
|
|
165
|
-
getUserId: client.getUserId.bind(client),
|
|
166
|
-
setUserId: client.setUserId.bind(client),
|
|
167
|
-
getDeviceId: client.getDeviceId.bind(client),
|
|
168
|
-
setDeviceId: client.setDeviceId.bind(client),
|
|
169
|
-
reset: client.reset.bind(client),
|
|
170
|
-
getSessionId: client.getSessionId.bind(client),
|
|
171
|
-
setSessionId: client.setSessionId.bind(client),
|
|
172
|
-
setOptOut: client.setOptOut.bind(client)
|
|
155
|
+
init: debugWrapper(returnWrapper(client.init.bind(client)), 'init', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
156
|
+
add: debugWrapper(returnWrapper(client.add.bind(client)), 'add', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),
|
|
157
|
+
remove: debugWrapper(returnWrapper(client.remove.bind(client)), 'remove', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),
|
|
158
|
+
track: debugWrapper(returnWrapper(client.track.bind(client)), 'track', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
159
|
+
logEvent: debugWrapper(returnWrapper(client.logEvent.bind(client)), 'logEvent', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
160
|
+
identify: debugWrapper(returnWrapper(client.identify.bind(client)), 'identify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
161
|
+
groupIdentify: debugWrapper(returnWrapper(client.groupIdentify.bind(client)), 'groupIdentify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
162
|
+
setGroup: debugWrapper(returnWrapper(client.setGroup.bind(client)), 'setGroup', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
163
|
+
revenue: debugWrapper(returnWrapper(client.revenue.bind(client)), 'revenue', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
164
|
+
flush: debugWrapper(returnWrapper(client.flush.bind(client)), 'flush', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),
|
|
165
|
+
getUserId: debugWrapper(client.getUserId.bind(client), 'getUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),
|
|
166
|
+
setUserId: debugWrapper(client.setUserId.bind(client), 'setUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),
|
|
167
|
+
getDeviceId: debugWrapper(client.getDeviceId.bind(client), 'getDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),
|
|
168
|
+
setDeviceId: debugWrapper(client.setDeviceId.bind(client), 'setDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),
|
|
169
|
+
reset: debugWrapper(client.reset.bind(client), 'reset', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId', 'config.deviceId'])),
|
|
170
|
+
getSessionId: debugWrapper(client.getSessionId.bind(client), 'getSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
171
|
+
setSessionId: debugWrapper(client.setSessionId.bind(client), 'setSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),
|
|
172
|
+
setOptOut: debugWrapper(client.setOptOut.bind(client), 'setOptOut', getClientLogConfig(client), getClientStates(client, ['config']))
|
|
173
173
|
};
|
|
174
174
|
};
|
|
175
175
|
export default createInstance();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AmplitudeCore","Destination","UUID","returnWrapper","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 { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AttributionOptions,\n ReactNativeClient,\n 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: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["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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"}
|
package/lib/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.
|
|
1
|
+
export const VERSION = '0.5.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.5.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,IAAI,SAAS,EACrB,YAAY,EACb,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAClE,IAAI,CAAC,MAAM,SAAK,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IA4D/D,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;CAO/B;AAED,eAAO,MAAM,cAAc,QAAO,iBAgHjC,CAAC;;AAEF,wBAAgC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.
|
|
1
|
+
export declare const VERSION = "0.5.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amplitude/analytics-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Official React Native SDK",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"analytics",
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
"url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@amplitude/analytics-client-common": "^0.3.
|
|
61
|
-
"@amplitude/analytics-core": "^0.
|
|
62
|
-
"@amplitude/analytics-types": "^0.
|
|
60
|
+
"@amplitude/analytics-client-common": "^0.3.5",
|
|
61
|
+
"@amplitude/analytics-core": "^0.10.0",
|
|
62
|
+
"@amplitude/analytics-types": "^0.12.0",
|
|
63
63
|
"@amplitude/ua-parser-js": "^0.7.31",
|
|
64
64
|
"@react-native-async-storage/async-storage": "^1.17.7",
|
|
65
65
|
"tslib": "^2.3.1"
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
]
|
|
90
90
|
]
|
|
91
91
|
},
|
|
92
|
-
"gitHead": "
|
|
92
|
+
"gitHead": "f5f195e30233dbd1a4c60f55d04c7d36b888080e"
|
|
93
93
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
AmplitudeCore,
|
|
3
|
+
Destination,
|
|
4
|
+
UUID,
|
|
5
|
+
returnWrapper,
|
|
6
|
+
debugWrapper,
|
|
7
|
+
getClientLogConfig,
|
|
8
|
+
getClientStates,
|
|
9
|
+
} from '@amplitude/analytics-core';
|
|
2
10
|
import { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';
|
|
3
11
|
import {
|
|
4
12
|
ReactNativeConfig,
|
|
@@ -160,24 +168,114 @@ export class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
|
|
|
160
168
|
export const createInstance = (): ReactNativeClient => {
|
|
161
169
|
const client = new AmplitudeReactNative();
|
|
162
170
|
return {
|
|
163
|
-
init:
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
171
|
+
init: debugWrapper(
|
|
172
|
+
returnWrapper(client.init.bind(client)),
|
|
173
|
+
'init',
|
|
174
|
+
getClientLogConfig(client),
|
|
175
|
+
getClientStates(client, ['config']),
|
|
176
|
+
),
|
|
177
|
+
add: debugWrapper(
|
|
178
|
+
returnWrapper(client.add.bind(client)),
|
|
179
|
+
'add',
|
|
180
|
+
getClientLogConfig(client),
|
|
181
|
+
getClientStates(client, ['config.apiKey', 'timeline.plugins']),
|
|
182
|
+
),
|
|
183
|
+
remove: debugWrapper(
|
|
184
|
+
returnWrapper(client.remove.bind(client)),
|
|
185
|
+
'remove',
|
|
186
|
+
getClientLogConfig(client),
|
|
187
|
+
getClientStates(client, ['config.apiKey', 'timeline.plugins']),
|
|
188
|
+
),
|
|
189
|
+
track: debugWrapper(
|
|
190
|
+
returnWrapper(client.track.bind(client)),
|
|
191
|
+
'track',
|
|
192
|
+
getClientLogConfig(client),
|
|
193
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
194
|
+
),
|
|
195
|
+
logEvent: debugWrapper(
|
|
196
|
+
returnWrapper(client.logEvent.bind(client)),
|
|
197
|
+
'logEvent',
|
|
198
|
+
getClientLogConfig(client),
|
|
199
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
200
|
+
),
|
|
201
|
+
identify: debugWrapper(
|
|
202
|
+
returnWrapper(client.identify.bind(client)),
|
|
203
|
+
'identify',
|
|
204
|
+
getClientLogConfig(client),
|
|
205
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
206
|
+
),
|
|
207
|
+
groupIdentify: debugWrapper(
|
|
208
|
+
returnWrapper(client.groupIdentify.bind(client)),
|
|
209
|
+
'groupIdentify',
|
|
210
|
+
getClientLogConfig(client),
|
|
211
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
212
|
+
),
|
|
213
|
+
setGroup: debugWrapper(
|
|
214
|
+
returnWrapper(client.setGroup.bind(client)),
|
|
215
|
+
'setGroup',
|
|
216
|
+
getClientLogConfig(client),
|
|
217
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
218
|
+
),
|
|
219
|
+
revenue: debugWrapper(
|
|
220
|
+
returnWrapper(client.revenue.bind(client)),
|
|
221
|
+
'revenue',
|
|
222
|
+
getClientLogConfig(client),
|
|
223
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
224
|
+
),
|
|
225
|
+
flush: debugWrapper(
|
|
226
|
+
returnWrapper(client.flush.bind(client)),
|
|
227
|
+
'flush',
|
|
228
|
+
getClientLogConfig(client),
|
|
229
|
+
getClientStates(client, ['config.apiKey', 'timeline.queue.length']),
|
|
230
|
+
),
|
|
231
|
+
getUserId: debugWrapper(
|
|
232
|
+
client.getUserId.bind(client),
|
|
233
|
+
'getUserId',
|
|
234
|
+
getClientLogConfig(client),
|
|
235
|
+
getClientStates(client, ['config', 'config.userId']),
|
|
236
|
+
),
|
|
237
|
+
setUserId: debugWrapper(
|
|
238
|
+
client.setUserId.bind(client),
|
|
239
|
+
'setUserId',
|
|
240
|
+
getClientLogConfig(client),
|
|
241
|
+
getClientStates(client, ['config', 'config.userId']),
|
|
242
|
+
),
|
|
243
|
+
getDeviceId: debugWrapper(
|
|
244
|
+
client.getDeviceId.bind(client),
|
|
245
|
+
'getDeviceId',
|
|
246
|
+
getClientLogConfig(client),
|
|
247
|
+
getClientStates(client, ['config', 'config.deviceId']),
|
|
248
|
+
),
|
|
249
|
+
setDeviceId: debugWrapper(
|
|
250
|
+
client.setDeviceId.bind(client),
|
|
251
|
+
'setDeviceId',
|
|
252
|
+
getClientLogConfig(client),
|
|
253
|
+
getClientStates(client, ['config', 'config.deviceId']),
|
|
254
|
+
),
|
|
255
|
+
reset: debugWrapper(
|
|
256
|
+
client.reset.bind(client),
|
|
257
|
+
'reset',
|
|
258
|
+
getClientLogConfig(client),
|
|
259
|
+
getClientStates(client, ['config', 'config.userId', 'config.deviceId']),
|
|
260
|
+
),
|
|
261
|
+
getSessionId: debugWrapper(
|
|
262
|
+
client.getSessionId.bind(client),
|
|
263
|
+
'getSessionId',
|
|
264
|
+
getClientLogConfig(client),
|
|
265
|
+
getClientStates(client, ['config']),
|
|
266
|
+
),
|
|
267
|
+
setSessionId: debugWrapper(
|
|
268
|
+
client.setSessionId.bind(client),
|
|
269
|
+
'setSessionId',
|
|
270
|
+
getClientLogConfig(client),
|
|
271
|
+
getClientStates(client, ['config']),
|
|
272
|
+
),
|
|
273
|
+
setOptOut: debugWrapper(
|
|
274
|
+
client.setOptOut.bind(client),
|
|
275
|
+
'setOptOut',
|
|
276
|
+
getClientLogConfig(client),
|
|
277
|
+
getClientStates(client, ['config']),
|
|
278
|
+
),
|
|
181
279
|
};
|
|
182
280
|
};
|
|
183
281
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.
|
|
1
|
+
export const VERSION = '0.5.0';
|