@amplitude/analytics-react-native 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","UUID","getSessionId","createInstance","client","returnWrapper","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AdditionalReactNativeOptions,\n AttributionReactNativeOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions & AdditionalReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionReactNativeOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
1
+ {"version":3,"names":["AmplitudeReactNative","AmplitudeCore","init","apiKey","userId","options","initializing","oldCookies","parseOldCookies","reactNativeOptions","useReactNativeConfig","deviceId","sessionId","optOut","lastEventTime","_init","isNewSession","config","Date","now","sessionTimeout","setSessionId","connector","getAnalyticsConnector","eventBridge","setEventReceiver","event","track","eventType","eventProperties","identityStore","setIdentity","add","Context","IdentityEventSender","Destination","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","isNative","bind","onNewCampaign","storage","createFlexibleStorage","campaignTracker","CampaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","UUID","getSessionId","createInstance","client","returnWrapper","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AttributionOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
- const VERSION = '0.4.0';
7
+ const VERSION = '0.4.1';
8
8
  exports.VERSION = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.4.0';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.4.1';\n"],"mappings":";;;;;;AAAO,MAAMA,OAAO,GAAG,OAAhB"}
@@ -1 +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","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","bind","onNewCampaign","storage","campaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","getSessionId","createInstance","client","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AdditionalReactNativeOptions,\n AttributionReactNativeOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions & AdditionalReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionReactNativeOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
1
+ {"version":3,"names":["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","timeline","isReady","scheduleApply","runAttributionStrategy","attribution","attributionConfig","bind","onNewCampaign","storage","campaignTracker","send","getUserId","setUserId","q","push","editIdentity","commit","getDeviceId","setDeviceId","reset","undefined","getSessionId","createInstance","client","remove","logEvent","identify","groupIdentify","setGroup","revenue","flush","setOptOut"],"sources":["react-native-client.ts"],"sourcesContent":["import { AmplitudeCore, Destination, UUID, returnWrapper } from '@amplitude/analytics-core';\nimport { CampaignTracker, IdentityEventSender, getAnalyticsConnector } from '@amplitude/analytics-client-common';\nimport {\n ReactNativeConfig,\n Campaign,\n ReactNativeOptions,\n AttributionOptions,\n ReactNativeClient,\n} from '@amplitude/analytics-types';\nimport { Context } from './plugins/context';\nimport { useReactNativeConfig, createFlexibleStorage } from './config';\nimport { parseOldCookies } from './cookie-migration';\nimport { isNative } from './utils/platform';\n\nexport class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {\n async init(apiKey: string, userId?: string, options?: ReactNativeOptions) {\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return;\n }\n this.initializing = true;\n\n // Step 1: Read cookies stored by old SDK\n const oldCookies = await parseOldCookies(apiKey, options);\n\n // Step 2: Create react native config\n const reactNativeOptions = await useReactNativeConfig(apiKey, userId || oldCookies.userId, {\n ...options,\n deviceId: oldCookies.deviceId ?? options?.deviceId,\n sessionId: oldCookies.sessionId ?? options?.sessionId,\n optOut: options?.optOut ?? oldCookies.optOut,\n lastEventTime: oldCookies.lastEventTime,\n });\n await super._init(reactNativeOptions);\n\n // Step 3: Manage session\n let isNewSession = !this.config.lastEventTime;\n if (\n !this.config.sessionId ||\n (this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout)\n ) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n\n // Set up the analytics connector to integrate with the experiment SDK.\n // Send events from the experiment SDK and forward identifies to the\n // identity store.\n const connector = getAnalyticsConnector();\n connector.eventBridge.setEventReceiver((event) => {\n void this.track(event.eventType, event.eventProperties);\n });\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId,\n });\n\n // Step 4: Install plugins\n // Do not track any events before this\n await this.add(new Context());\n await this.add(new IdentityEventSender());\n await this.add(new Destination());\n\n this.initializing = false;\n\n // Step 5: Set timeline ready for processing events\n // Send existing events, which might be collected by track before init\n this.timeline.isReady = true;\n if (!this.config.optOut) {\n this.timeline.scheduleApply(0);\n }\n\n // Step 6: Track attributions\n await this.runAttributionStrategy(options?.attribution, isNewSession);\n }\n\n async runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession = false) {\n if (isNative()) {\n return;\n }\n const track = this.track.bind(this);\n const onNewCampaign = this.setSessionId.bind(this, Date.now());\n\n const storage = await createFlexibleStorage<Campaign>(this.config);\n const campaignTracker = new CampaignTracker(this.config.apiKey, {\n ...attributionConfig,\n storage,\n track,\n onNewCampaign,\n });\n\n await campaignTracker.send(isNewSession);\n }\n\n getUserId() {\n return this.config?.userId;\n }\n\n setUserId(userId: string | undefined) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n this.config.userId = userId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setUserId(userId)\n .commit();\n }\n\n getDeviceId() {\n return this.config?.deviceId;\n }\n\n setDeviceId(deviceId: string) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n getAnalyticsConnector()\n .identityStore.editIdentity()\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n .setDeviceId(deviceId)\n .commit();\n }\n\n reset() {\n this.setUserId(undefined);\n this.setDeviceId(UUID());\n }\n\n getSessionId() {\n return this.config?.sessionId;\n }\n\n setSessionId(sessionId: number) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n this.config.sessionId = sessionId;\n }\n}\n\nexport const createInstance = (): ReactNativeClient => {\n const client = new AmplitudeReactNative();\n return {\n init: returnWrapper(client.init.bind(client)),\n add: returnWrapper(client.add.bind(client)),\n remove: returnWrapper(client.remove.bind(client)),\n track: returnWrapper(client.track.bind(client)),\n logEvent: returnWrapper(client.logEvent.bind(client)),\n identify: returnWrapper(client.identify.bind(client)),\n groupIdentify: returnWrapper(client.groupIdentify.bind(client)),\n setGroup: returnWrapper(client.setGroup.bind(client)),\n revenue: returnWrapper(client.revenue.bind(client)),\n flush: returnWrapper(client.flush.bind(client)),\n getUserId: client.getUserId.bind(client),\n setUserId: client.setUserId.bind(client),\n getDeviceId: client.getDeviceId.bind(client),\n setDeviceId: client.setDeviceId.bind(client),\n reset: client.reset.bind(client),\n getSessionId: client.getSessionId.bind(client),\n setSessionId: client.setSessionId.bind(client),\n setOptOut: client.setOptOut.bind(client),\n };\n};\n\nexport default createInstance();\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.4.0';
1
+ export const VERSION = '0.4.1';
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.4.0';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
1
+ {"version":3,"names":["VERSION"],"sources":["version.ts"],"sourcesContent":["export const VERSION = '0.4.1';\n"],"mappings":"AAAA,OAAO,MAAMA,OAAO,GAAG,OAAhB"}
@@ -1,5 +1,5 @@
1
1
  export { createInstance } from './react-native-client';
2
- export declare const add: (plugin: Types.Plugin) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.Identify, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.Identify, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string | undefined, options?: (Types.ReactNativeOptions & Types.AdditionalReactNativeOptions) | undefined) => Types.AmplitudeReturn<void>, logEvent: (eventInput: string | Types.BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.Revenue, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string) => void, track: (eventInput: string | Types.BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>;
2
+ export declare const add: (plugin: Types.Plugin) => Types.AmplitudeReturn<void>, flush: () => Types.AmplitudeReturn<void>, getDeviceId: () => string | undefined, getSessionId: () => number | undefined, getUserId: () => string | undefined, groupIdentify: (groupType: string, groupName: string | string[], identify: Types.Identify, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, identify: (identify: Types.Identify, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, init: (apiKey: string, userId?: string | undefined, options?: Types.ReactNativeOptions | undefined) => Types.AmplitudeReturn<void>, logEvent: (eventInput: string | Types.BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, remove: (pluginName: string) => Types.AmplitudeReturn<void>, reset: () => void, revenue: (revenue: Types.Revenue, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, setDeviceId: (deviceId: string) => void, setGroup: (groupType: string, groupName: string | string[], eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>, setOptOut: (optOut: boolean) => void, setSessionId: (sessionId: number) => void, setUserId: (userId: string | undefined) => void, track: (eventInput: string | Types.BaseEvent, eventProperties?: Record<string, any> | undefined, eventOptions?: Types.EventOptions | undefined) => Types.AmplitudeReturn<Types.Result>;
3
3
  export { Revenue, Identify } from '@amplitude/analytics-core';
4
4
  import * as Types from '@amplitude/analytics-types';
5
5
  export { Types };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,yDACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,qKACb,QAAQ,oHACR,IAAI,uKACJ,QAAQ,mLACR,MAAM,uDACN,KAAK,cACL,OAAO,kHACP,WAAW,8BACX,QAAQ,2IACR,SAAS,6BACT,YAAY,+BACZ,SAAS,4BACT,KAAK,iLACG,CAAC;AACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,eAAO,MACL,GAAG,yDACH,KAAK,qCACL,WAAW,4BACX,YAAY,4BACZ,SAAS,4BACT,aAAa,qKACb,QAAQ,oHACR,IAAI,gIACJ,QAAQ,mLACR,MAAM,uDACN,KAAK,cACL,OAAO,kHACP,WAAW,8BACX,QAAQ,2IACR,SAAS,6BACT,YAAY,+BACZ,SAAS,wCACT,KAAK,iLACG,CAAC;AACX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { AmplitudeCore } from '@amplitude/analytics-core';
2
- import { ReactNativeConfig, ReactNativeOptions, AdditionalReactNativeOptions, AttributionReactNativeOptions, ReactNativeClient } from '@amplitude/analytics-types';
2
+ import { ReactNativeConfig, ReactNativeOptions, AttributionOptions, ReactNativeClient } from '@amplitude/analytics-types';
3
3
  export declare class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
4
- init(apiKey: string, userId?: string, options?: ReactNativeOptions & AdditionalReactNativeOptions): Promise<void>;
5
- runAttributionStrategy(attributionConfig?: AttributionReactNativeOptions, isNewSession?: boolean): Promise<void>;
4
+ init(apiKey: string, userId?: string, options?: ReactNativeOptions): Promise<void>;
5
+ runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession?: boolean): Promise<void>;
6
6
  getUserId(): string | undefined;
7
7
  setUserId(userId: string | undefined): void;
8
8
  getDeviceId(): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoC,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAClB,4BAA4B,EAC5B,6BAA6B,EAC7B,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAClE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,4BAA4B;IAgEjG,sBAAsB,CAAC,iBAAiB,CAAC,EAAE,6BAA6B,EAAE,YAAY,UAAQ;IAkBpG,SAAS;IAIT,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAcpC,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAc5B,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;CAO/B;AAED,eAAO,MAAM,cAAc,QAAO,iBAsBjC,CAAC;;AAEF,wBAAgC"}
1
+ {"version":3,"file":"react-native-client.d.ts","sourceRoot":"","sources":["../../src/react-native-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoC,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAMpC,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAClE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAgElE,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,KAAK;IAKL,YAAY;IAIZ,YAAY,CAAC,SAAS,EAAE,MAAM;CAO/B;AAED,eAAO,MAAM,cAAc,QAAO,iBAsBjC,CAAC;;AAEF,wBAAgC"}
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.4.0";
1
+ export declare const VERSION = "0.4.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/analytics-react-native",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Official React Native SDK",
5
5
  "keywords": [
6
6
  "analytics",
@@ -57,10 +57,10 @@
57
57
  "url": "https://github.com/amplitude/Amplitude-TypeScript/issues"
58
58
  },
59
59
  "dependencies": {
60
- "@amplitude/analytics-client-common": "^0.0.1",
60
+ "@amplitude/analytics-client-common": "^0.1.0",
61
61
  "@amplitude/analytics-connector": "1.4.5",
62
- "@amplitude/analytics-core": "^0.9.0",
63
- "@amplitude/analytics-types": "^0.9.0",
62
+ "@amplitude/analytics-core": "^0.9.1",
63
+ "@amplitude/analytics-types": "^0.10.0",
64
64
  "@amplitude/ua-parser-js": "^0.7.31",
65
65
  "@react-native-async-storage/async-storage": "^1.17.7",
66
66
  "tslib": "^2.3.1"
@@ -90,5 +90,5 @@
90
90
  ]
91
91
  ]
92
92
  },
93
- "gitHead": "b05595653967707fa6db014030f071ff5eca6e82"
93
+ "gitHead": "fff912bc630dc8cd98b5b2a89c2cf8611d557903"
94
94
  }
@@ -4,8 +4,7 @@ import {
4
4
  ReactNativeConfig,
5
5
  Campaign,
6
6
  ReactNativeOptions,
7
- AdditionalReactNativeOptions,
8
- AttributionReactNativeOptions,
7
+ AttributionOptions,
9
8
  ReactNativeClient,
10
9
  } from '@amplitude/analytics-types';
11
10
  import { Context } from './plugins/context';
@@ -14,7 +13,7 @@ import { parseOldCookies } from './cookie-migration';
14
13
  import { isNative } from './utils/platform';
15
14
 
16
15
  export class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
17
- async init(apiKey: string, userId?: string, options?: ReactNativeOptions & AdditionalReactNativeOptions) {
16
+ async init(apiKey: string, userId?: string, options?: ReactNativeOptions) {
18
17
  // Step 0: Block concurrent initialization
19
18
  if (this.initializing) {
20
19
  return;
@@ -78,7 +77,7 @@ export class AmplitudeReactNative extends AmplitudeCore<ReactNativeConfig> {
78
77
  await this.runAttributionStrategy(options?.attribution, isNewSession);
79
78
  }
80
79
 
81
- async runAttributionStrategy(attributionConfig?: AttributionReactNativeOptions, isNewSession = false) {
80
+ async runAttributionStrategy(attributionConfig?: AttributionOptions, isNewSession = false) {
82
81
  if (isNative()) {
83
82
  return;
84
83
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.4.0';
1
+ export const VERSION = '0.4.1';