diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index 595ffa351..b0d4e9570 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -288,11 +288,8 @@ type SegmentAmplitudeIntegration = { export type SegmentAdjustSettings = { appToken: string; setEnvironmentProduction?: boolean; - setEventBufferingEnabled?: boolean; trackAttributionData?: boolean; - setDelay?: boolean; customEvents?: { [key: string]: string }; - delayTime?: number; }; export type SegmentBrazeSettings = { diff --git a/packages/plugins/plugin-adjust/package.json b/packages/plugins/plugin-adjust/package.json index 5fe54f372..9037c1a28 100644 --- a/packages/plugins/plugin-adjust/package.json +++ b/packages/plugins/plugin-adjust/package.json @@ -1,6 +1,6 @@ { "name": "@segment/analytics-react-native-plugin-adjust", - "version": "0.7.0", + "version": "0.8.0", "description": "The hassle-free way to add Segment analytics to your React-Native app.", "main": "lib/commonjs/index", "scripts": { @@ -45,14 +45,14 @@ "homepage": "https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-adjust#readme", "peerDependencies": { "@segment/analytics-react-native": "^2.18.0", - "react-native-adjust": "^4.33.0" + "react-native-adjust": "^5.1.0" }, "devDependencies": { "@segment/analytics-react-native": "^2.18.0", "@segment/analytics-rn-shared": "workspace:^", "@segment/sovran-react-native": "^1.1.0", "jest": "^29.7.0", - "react-native-adjust": "^4.33.0", + "react-native-adjust": "^5.1.0", "react-native-builder-bob": "^0.23.1", "rimraf": "^5.0.5", "typescript": "^5.2.2" diff --git a/packages/plugins/plugin-adjust/src/AdjustPlugin.tsx b/packages/plugins/plugin-adjust/src/AdjustPlugin.tsx index 1be92bdbf..10fb6b99d 100644 --- a/packages/plugins/plugin-adjust/src/AdjustPlugin.tsx +++ b/packages/plugins/plugin-adjust/src/AdjustPlugin.tsx @@ -38,7 +38,7 @@ export class AdjustPlugin extends DestinationPlugin { const adjustConfig = new AdjustConfig(this.settings.appToken, environment); if (this.hasRegisteredCallback === false) { - adjustConfig.setAttributionCallbackListener((attribution) => { + adjustConfig.setAttributionCallback((attribution) => { const trackPayload = { provider: 'Adjust', trackerToken: attribution.trackerToken, @@ -55,21 +55,25 @@ export class AdjustPlugin extends DestinationPlugin { }); this.hasRegisteredCallback = true; } + //Removed from react-native-adjust v5 (https://dev.adjust.com/en/sdk/migration/react-native/v4-to-v5) + //TO DO : Remove commented lines in next release + // const bufferingEnabled = this.settings.setEventBufferingEnabled; + // if (bufferingEnabled === true) { + // adjustConfig.setEventBufferingEnabled(bufferingEnabled); + // } - const bufferingEnabled = this.settings.setEventBufferingEnabled; - if (bufferingEnabled === true) { - adjustConfig.setEventBufferingEnabled(bufferingEnabled); - } - - const useDelay = this.settings.setDelay; - if (useDelay === true) { - const delayTime = this.settings.delayTime; - if (delayTime !== null && delayTime !== undefined) { - adjustConfig.setDelayStart(delayTime); - } - } + // const useDelay = this.settings.setDelay; + // if (useDelay === true) { + // const delayTime = this.settings.delayTime; + // if (delayTime !== null && delayTime !== undefined) { + // adjustConfig.setDelayStart(delayTime); + // } + // } - Adjust.create(adjustConfig); + //create has been replaced with initSDK in v5 + //TO DO : Remove commented lines in next release + //Adjust.create(adjustConfig); + Adjust.initSdk(adjustConfig); } identify(event: IdentifyEventType) { identify(event); @@ -77,6 +81,7 @@ export class AdjustPlugin extends DestinationPlugin { } track(event: TrackEventType) { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion track(event, this.settings!); return event; } diff --git a/packages/plugins/plugin-adjust/src/methods/__mocks__/react-native-adjust.ts b/packages/plugins/plugin-adjust/src/methods/__mocks__/react-native-adjust.ts index 66bdc1c27..806651ad4 100644 --- a/packages/plugins/plugin-adjust/src/methods/__mocks__/react-native-adjust.ts +++ b/packages/plugins/plugin-adjust/src/methods/__mocks__/react-native-adjust.ts @@ -1,10 +1,10 @@ -export const resetSessionPartnerParameters = jest.fn(); -export const addSessionPartnerParameter = jest.fn(); +export const removeGlobalPartnerParameters = jest.fn(); +export const addGlobalPartnerParameter = jest.fn(); export const trackEvent = jest.fn(); export const Adjust = { - resetSessionPartnerParameters, - addSessionPartnerParameter, + removeGlobalPartnerParameters, + addGlobalPartnerParameter, trackEvent, }; diff --git a/packages/plugins/plugin-adjust/src/methods/__tests__/identify.test.ts b/packages/plugins/plugin-adjust/src/methods/__tests__/identify.test.ts index 1df73ba87..985e2a2bd 100644 --- a/packages/plugins/plugin-adjust/src/methods/__tests__/identify.test.ts +++ b/packages/plugins/plugin-adjust/src/methods/__tests__/identify.test.ts @@ -1,6 +1,6 @@ import identify from '../identify'; import type { IdentifyEventType } from '@segment/analytics-react-native'; -import { addSessionPartnerParameter } from '../__mocks__/react-native-adjust'; +import { addGlobalPartnerParameter } from '../__mocks__/react-native-adjust'; describe('#identify', () => { beforeEach(() => { @@ -15,7 +15,7 @@ describe('#identify', () => { identify(payload as IdentifyEventType); - expect(addSessionPartnerParameter).toHaveBeenCalledWith('user_id', 'user'); + expect(addGlobalPartnerParameter).toHaveBeenCalledWith('user_id', 'user'); }); it('sets the anonymous_id', () => { @@ -26,7 +26,7 @@ describe('#identify', () => { identify(payload as IdentifyEventType); - expect(addSessionPartnerParameter).toHaveBeenCalledWith( + expect(addGlobalPartnerParameter).toHaveBeenCalledWith( 'anonymous_id', 'anon' ); diff --git a/packages/plugins/plugin-adjust/src/methods/__tests__/reset.test.ts b/packages/plugins/plugin-adjust/src/methods/__tests__/reset.test.ts index ba2f78bb5..c0903ecb4 100644 --- a/packages/plugins/plugin-adjust/src/methods/__tests__/reset.test.ts +++ b/packages/plugins/plugin-adjust/src/methods/__tests__/reset.test.ts @@ -1,5 +1,5 @@ import reset from '../reset'; -import { resetSessionPartnerParameters } from '../__mocks__/react-native-adjust'; +import { removeGlobalPartnerParameters } from '../__mocks__/react-native-adjust'; describe('#reset', () => { beforeEach(() => { @@ -9,7 +9,7 @@ describe('#reset', () => { it('calls resetSessionPartnerParameters', () => { reset(); - expect(resetSessionPartnerParameters).toHaveBeenCalledTimes(1); - expect(resetSessionPartnerParameters).toHaveBeenCalledWith(); + expect(removeGlobalPartnerParameters).toHaveBeenCalledTimes(1); + expect(removeGlobalPartnerParameters).toHaveBeenCalledWith(); }); }); diff --git a/packages/plugins/plugin-adjust/src/methods/__tests__/track.test.ts b/packages/plugins/plugin-adjust/src/methods/__tests__/track.test.ts index 1ba1db6c1..b13236778 100644 --- a/packages/plugins/plugin-adjust/src/methods/__tests__/track.test.ts +++ b/packages/plugins/plugin-adjust/src/methods/__tests__/track.test.ts @@ -28,7 +28,7 @@ describe('#track', () => { track(event as TrackEventType, settings); - expect(Adjust.addSessionPartnerParameter).toHaveBeenCalledWith( + expect(Adjust.addGlobalPartnerParameter).toHaveBeenCalledWith( 'anonymous_id', 'anon' ); @@ -54,7 +54,7 @@ describe('#track', () => { track(event as TrackEventType, settings); - expect(Adjust.addSessionPartnerParameter).toHaveBeenCalledWith( + expect(Adjust.addGlobalPartnerParameter).toHaveBeenCalledWith( 'anonymous_id', 'anon' ); @@ -85,7 +85,7 @@ describe('#track', () => { track(event as TrackEventType, settings); - expect(Adjust.addSessionPartnerParameter).toHaveBeenCalledWith( + expect(Adjust.addGlobalPartnerParameter).toHaveBeenCalledWith( 'anonymous_id', 'anon' ); @@ -114,7 +114,7 @@ describe('#track', () => { track(event as TrackEventType, settings); - expect(Adjust.addSessionPartnerParameter).toHaveBeenCalledWith( + expect(Adjust.addGlobalPartnerParameter).toHaveBeenCalledWith( 'anonymous_id', 'anon' ); diff --git a/packages/plugins/plugin-adjust/src/methods/identify.ts b/packages/plugins/plugin-adjust/src/methods/identify.ts index c75c549ae..3afc41a30 100644 --- a/packages/plugins/plugin-adjust/src/methods/identify.ts +++ b/packages/plugins/plugin-adjust/src/methods/identify.ts @@ -4,11 +4,11 @@ import type { IdentifyEventType } from '@segment/analytics-react-native'; export default (event: IdentifyEventType) => { const userId = event.userId; if (userId !== undefined && userId !== null && userId.length > 0) { - Adjust.addSessionPartnerParameter('user_id', userId); + Adjust.addGlobalPartnerParameter('user_id', userId); } const anonId = event.anonymousId; if (anonId !== undefined && anonId !== null && anonId.length > 0) { - Adjust.addSessionPartnerParameter('anonymous_id', anonId); + Adjust.addGlobalPartnerParameter('anonymous_id', anonId); } }; diff --git a/packages/plugins/plugin-adjust/src/methods/reset.ts b/packages/plugins/plugin-adjust/src/methods/reset.ts index 2cc671382..2c078dd13 100644 --- a/packages/plugins/plugin-adjust/src/methods/reset.ts +++ b/packages/plugins/plugin-adjust/src/methods/reset.ts @@ -1,5 +1,9 @@ import { Adjust } from 'react-native-adjust'; export default () => { - Adjust.resetSessionPartnerParameters(); + //resetSessionPartnerParameters is replaced with removeGlobalPartnerParameters in v5 + //TO DO : Remove commented lines in next release + // Adjust.resetSessionPartnerParameters(); + Adjust.removeGlobalPartnerParameters(); + }; diff --git a/packages/plugins/plugin-adjust/src/methods/track.ts b/packages/plugins/plugin-adjust/src/methods/track.ts index cc1674846..b428a3686 100644 --- a/packages/plugins/plugin-adjust/src/methods/track.ts +++ b/packages/plugins/plugin-adjust/src/methods/track.ts @@ -8,7 +8,10 @@ import { extract, mappedCustomEventToken } from '../util'; export default (event: TrackEventType, settings: SegmentAdjustSettings) => { const anonId = event.anonymousId; if (anonId !== undefined && anonId !== null && anonId.length > 0) { - Adjust.addSessionPartnerParameter('anonymous_id', anonId); + //addSessionPartnerParameter has been replaced with addGlobalPartnerParameter in v5 + //TO DO : Remove commented lines in next release + //Adjust.addSessionPartnerParameter('anonymous_id', anonId); + Adjust.addGlobalPartnerParameter('anonymous_id', anonId); } const token = mappedCustomEventToken(event.event, settings); diff --git a/yarn.lock b/yarn.lock index f33add660..bb659eef4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3350,13 +3350,13 @@ __metadata: "@segment/analytics-rn-shared": "workspace:^" "@segment/sovran-react-native": "npm:^1.1.0" jest: "npm:^29.7.0" - react-native-adjust: "npm:^4.33.0" + react-native-adjust: "npm:^5.1.0" react-native-builder-bob: "npm:^0.23.1" rimraf: "npm:^5.0.5" typescript: "npm:^5.2.2" peerDependencies: "@segment/analytics-react-native": ^2.18.0 - react-native-adjust: ^4.33.0 + react-native-adjust: ^5.1.0 languageName: unknown linkType: soft @@ -13096,10 +13096,10 @@ __metadata: languageName: node linkType: hard -"react-native-adjust@npm:^4.33.0": - version: 4.37.1 - resolution: "react-native-adjust@npm:4.37.1" - checksum: 10c0/463ddb7284bebe7a88d969e0a2dc4a84e039216f016d764ad916078b0fac060ba4cf275ac84d7e32c0b020632c2d9755791603118ee9cee84cba8336e94ca18b +"react-native-adjust@npm:^5.1.0": + version: 5.1.0 + resolution: "react-native-adjust@npm:5.1.0" + checksum: 10c0/0b1d322a7ea0268f6343a29636b9081a2ac8fbede72c74be439bfe1d12362f833305b4136b6de1d596a1f0649332daeec6f8ea61d9b9d7118dabc99e1e5693be languageName: node linkType: hard