fleek-track-analytics 1.17.46 → 1.17.48

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.
Files changed (31) hide show
  1. package/EXPO_RN_TESTING_GUIDE.md +283 -0
  2. package/README.md +69 -0
  3. package/lib/react-native/analytics-tool/react-native-rudderstack.d.ts +12 -0
  4. package/lib/react-native/analytics-tool/react-native-rudderstack.js +66 -0
  5. package/lib/react-native/analytics-tool/react-native-rudderstack.js.map +1 -0
  6. package/lib/react-native/analytics-tool/rudderstack-default-config.d.ts +4 -0
  7. package/lib/react-native/analytics-tool/rudderstack-default-config.js +8 -0
  8. package/lib/react-native/analytics-tool/rudderstack-default-config.js.map +1 -0
  9. package/lib/react-native/analytics-tool/rudderstack-event-routing.d.ts +6 -0
  10. package/lib/react-native/analytics-tool/rudderstack-event-routing.js +17 -0
  11. package/lib/react-native/analytics-tool/rudderstack-event-routing.js.map +1 -0
  12. package/lib/react-native/track-analytics/track-analytics.d.ts +2 -0
  13. package/lib/react-native/track-analytics/track-analytics.js +152 -32
  14. package/lib/react-native/track-analytics/track-analytics.js.map +1 -1
  15. package/lib/track-analytics-types.d.ts +5 -0
  16. package/lib/web/analytics-tool/rudderstack-default-config.d.ts +4 -0
  17. package/lib/web/analytics-tool/rudderstack-default-config.js +8 -0
  18. package/lib/web/analytics-tool/rudderstack-default-config.js.map +1 -0
  19. package/lib/web/analytics-tool/rudderstack-event-routing.d.ts +5 -0
  20. package/lib/web/analytics-tool/rudderstack-event-routing.js +16 -0
  21. package/lib/web/analytics-tool/rudderstack-event-routing.js.map +1 -0
  22. package/lib/web/analytics-tool/web-rudderstack.d.ts +17 -0
  23. package/lib/web/analytics-tool/web-rudderstack.js +76 -0
  24. package/lib/web/analytics-tool/web-rudderstack.js.map +1 -0
  25. package/lib/web/track-analytics/track-analytics.d.ts +2 -0
  26. package/lib/web/track-analytics/track-analytics.js +139 -38
  27. package/lib/web/track-analytics/track-analytics.js.map +1 -1
  28. package/package.json +3 -1
  29. package/spec-files/rudderstack-migration/HLD_LLD.md +353 -0
  30. package/spec-files/rudderstack-migration/RUDDERSTACK_SELF_HOSTED_PARAMETERS.md +283 -0
  31. package/spec-files/rudderstack-migration/SEGMENT_VS_RUDDERSTACK_SDK_COMPARISON.md +140 -0
@@ -0,0 +1,283 @@
1
+ # React Native RudderStack Integration - Expo Testing Guide
2
+
3
+ ## Prerequisites
4
+
5
+ 1. **Update the library**: First, ensure you have the latest version of `fleek-track-analytics` with RudderStack support
6
+ 2. **Expo Managed Workflow**: Since `@rudderstack/rudder-sdk-react-native` requires native dependencies, you'll need a **Custom Dev Client** (not Expo Go)
7
+
8
+ ## Step 1: Install/Update Dependencies
9
+
10
+ ### Option A: Using Published Package (Recommended for Testing)
11
+
12
+ ```bash
13
+ # Update to the latest version
14
+ yarn add fleek-track-analytics@latest
15
+ # or
16
+ npm install fleek-track-analytics@latest
17
+ ```
18
+
19
+ ### Option B: Using Local Package (For Development)
20
+
21
+ ```bash
22
+ # In your app directory, link to local package
23
+ yarn add file:../path/to/fleek-track-analytics
24
+ # or use npm link
25
+ ```
26
+
27
+ ## Step 2: Install Native Dependencies
28
+
29
+ The RudderStack React Native SDK requires native code. In Expo managed workflow:
30
+
31
+ ```bash
32
+ # Install the RudderStack SDK (should be included in fleek-track-analytics, but verify)
33
+ npx expo install @rudderstack/rudder-sdk-react-native
34
+
35
+ # Install peer dependencies if needed
36
+ npx expo install @react-native-async-storage/async-storage
37
+ ```
38
+
39
+ ## Step 3: Create/Update Custom Dev Client
40
+
41
+ Since Expo Go doesn't support custom native modules, you need a custom dev client:
42
+
43
+ ```bash
44
+ # Create a custom dev client build
45
+ npx expo prebuild
46
+
47
+ # Or if using EAS Build
48
+ eas build --profile development --platform ios
49
+ eas build --profile development --platform android
50
+ ```
51
+
52
+ **Note**: You cannot test this in Expo Go. You must use a custom dev client.
53
+
54
+ ## Step 4: Update Your Analytics Initialization
55
+
56
+ Update your `TrackAnalytics` initialization to include RudderStack configuration:
57
+
58
+ ```typescript
59
+ // analytics.ts or similar file
60
+ import { TrackAnalytics } from 'fleek-track-analytics/lib/react-native';
61
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
62
+
63
+ const analyticsException = (e: unknown) => {
64
+ if (__DEV__) {
65
+ console.error('[Analytics Error]', JSON.stringify(e));
66
+ } else {
67
+ // Log to production error reporting (e.g., Sentry)
68
+ // Sentry.captureException(e);
69
+ }
70
+ };
71
+
72
+ const analyticsWrapper = new TrackAnalytics({
73
+ platform: 'REACT_NATIVE',
74
+ App: 'CONSUMER_APP', // or 'VENDOR_APP' based on your app
75
+ segment: true, // Keep Segment enabled for dual-send
76
+ segmentKey: process.env.EXPO_PUBLIC_SEGMENT_KEY || '',
77
+ devMode: __DEV__,
78
+ debug: __DEV__, // Enable debug logging
79
+ errorHandler: analyticsException,
80
+
81
+ // Add RudderStack configuration
82
+ rudderstack: {
83
+ enabled: true, // Enable RudderStack
84
+ // Optional: If not provided, uses default values from library
85
+ // writeKey: process.env.EXPO_PUBLIC_RUDDERSTACK_WRITE_KEY || '',
86
+ // dataPlaneUrl: process.env.EXPO_PUBLIC_RUDDERSTACK_DATA_PLANE_URL || '',
87
+ },
88
+ });
89
+
90
+ // Initialize analytics
91
+ await analyticsWrapper.initAnalytics();
92
+
93
+ export { analyticsWrapper };
94
+ ```
95
+
96
+ ## Step 5: Wrap Your App with AnalyticsProvider (Segment)
97
+
98
+ If you're using Segment's `AnalyticsProvider`, continue using it:
99
+
100
+ ```typescript
101
+ // App.tsx or _layout.tsx
102
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
103
+ import { analyticsWrapper } from './analytics';
104
+
105
+ export default function App() {
106
+ return (
107
+ <AnalyticsProvider client={analyticsWrapper.reactNativeSegmentClient}>
108
+ {/* Your app components */}
109
+ </AnalyticsProvider>
110
+ );
111
+ }
112
+ ```
113
+
114
+ **Note**: RudderStack doesn't require a Provider (it uses a singleton pattern), so only Segment needs the Provider.
115
+
116
+ ## Step 6: Test Event Tracking
117
+
118
+ Test that events are being sent to both Segment and RudderStack:
119
+
120
+ ```typescript
121
+ import { analyticsWrapper } from './analytics';
122
+
123
+ // Test identify
124
+ await analyticsWrapper.identify('test-user-123', {
125
+ email: 'test@example.com',
126
+ name: 'Test User',
127
+ });
128
+
129
+ // Test track event
130
+ await analyticsWrapper.track('test_event', {
131
+ property1: 'value1',
132
+ property2: 'value2',
133
+ });
134
+
135
+ // Test screen
136
+ await analyticsWrapper.screen('TestScreen', {
137
+ screen_name: 'TestScreen',
138
+ category: 'testing',
139
+ });
140
+ ```
141
+
142
+ ## Step 7: Verify Events in RudderStack
143
+
144
+ 1. **Check RudderStack Dashboard**:
145
+
146
+ - Go to your RudderStack control plane
147
+ - Navigate to Live Events or Debugger
148
+ - Verify events are being received
149
+
150
+ 2. **Check Event Routing**:
151
+ - Only events in `rudderstack-event-routing.ts` should be sent to RudderStack
152
+ - Currently configured events: `identify`, `screen`, `product_detail_page_viewed`, `homescreen`, `homescreen_viewed`, `product_tile_clicked`, `session_started`, `collection_viewed`
153
+
154
+ ## Step 8: Debugging
155
+
156
+ ### Enable Debug Logging
157
+
158
+ ```typescript
159
+ const analyticsWrapper = new TrackAnalytics({
160
+ // ... other config
161
+ debug: true, // Enable debug mode
162
+ });
163
+ ```
164
+
165
+ ### Check Initialization Status
166
+
167
+ ```typescript
168
+ // After initAnalytics()
169
+ console.log('Segment Client:', analyticsWrapper.reactNativeSegmentClient);
170
+ // RudderStack is a singleton, so no client to expose
171
+ ```
172
+
173
+ ### Verify Dual-Send
174
+
175
+ - Check Segment dashboard - all events should appear
176
+ - Check RudderStack dashboard - only routed events should appear
177
+ - Both should work independently (failures in one don't affect the other)
178
+
179
+ ## Important Notes
180
+
181
+ ### OTA Updates vs Full Release
182
+
183
+ - **Initial Integration**: Requires **full app store release** (native dependencies)
184
+ - **After Initial Release**: Event routing config changes can be deployed via OTA (JavaScript only)
185
+
186
+ ### Default Configuration
187
+
188
+ - If `writeKey` and `dataPlaneUrl` are not provided, the library uses defaults:
189
+ - `dataPlaneUrl`: `https://rudderstack.joinfleek.com`
190
+ - `writeKey`: `37NdqKQQY295HrNiIdLWniUMmKU` (from your config)
191
+
192
+ ### Event Routing
193
+
194
+ - Event routing is controlled **internally** by the library
195
+ - To modify which events go to RudderStack, edit:
196
+ - `src/react-native/analytics-tool/rudderstack-event-routing.ts` in the library
197
+ - Then rebuild and republish the library
198
+
199
+ ### Mutual Exclusivity
200
+
201
+ - Segment and RudderStack initialize independently
202
+ - If Segment fails, RudderStack continues (and vice versa)
203
+ - Events are sent to both SDKs when routing config allows
204
+
205
+ ## Troubleshooting
206
+
207
+ ### Build Errors
208
+
209
+ ```bash
210
+ # If you get native module errors, try:
211
+ npx expo prebuild --clean
212
+ cd ios && pod install && cd ..
213
+ cd android && ./gradlew clean && cd ..
214
+ ```
215
+
216
+ ### Events Not Appearing in RudderStack
217
+
218
+ 1. Check that `rudderstack.enabled: true` in initialization
219
+ 2. Verify the event name is in `rudderstack-event-routing.ts`
220
+ 3. Check RudderStack dashboard for any errors
221
+ 4. Enable debug mode to see console logs
222
+
223
+ ### TypeScript Errors
224
+
225
+ ```bash
226
+ # Clear TypeScript cache
227
+ rm -rf node_modules/.cache
228
+ # Reinstall
229
+ yarn install
230
+ ```
231
+
232
+ ## Next Steps
233
+
234
+ 1. **Test in Development**: Use custom dev client to test locally
235
+ 2. **Verify Events**: Check both Segment and RudderStack dashboards
236
+ 3. **Gradual Rollout**: Start with limited events (PoC), then expand
237
+ 4. **Production Release**: Once validated, release to app stores
238
+
239
+ ## Example Complete Setup
240
+
241
+ ```typescript
242
+ // analytics.ts
243
+ import { TrackAnalytics } from 'fleek-track-analytics/lib/react-native';
244
+
245
+ const analyticsWrapper = new TrackAnalytics({
246
+ platform: 'REACT_NATIVE',
247
+ App: 'CONSUMER_APP',
248
+ segment: true,
249
+ segmentKey: process.env.EXPO_PUBLIC_SEGMENT_KEY || '',
250
+ devMode: __DEV__,
251
+ debug: __DEV__,
252
+ errorHandler: (e) => {
253
+ if (__DEV__) {
254
+ console.error('[Analytics]', e);
255
+ }
256
+ },
257
+ rudderstack: {
258
+ enabled: true,
259
+ // Uses defaults if not specified
260
+ },
261
+ });
262
+
263
+ // Initialize
264
+ analyticsWrapper.initAnalytics().catch((error) => {
265
+ console.error('Failed to initialize analytics:', error);
266
+ });
267
+
268
+ export { analyticsWrapper };
269
+ ```
270
+
271
+ ```typescript
272
+ // App.tsx
273
+ import { AnalyticsProvider } from 'fleek-track-analytics/lib/segment-exports';
274
+ import { analyticsWrapper } from './analytics';
275
+
276
+ export default function App() {
277
+ return (
278
+ <AnalyticsProvider client={analyticsWrapper.reactNativeSegmentClient}>
279
+ <YourApp />
280
+ </AnalyticsProvider>
281
+ );
282
+ }
283
+ ```
package/README.md CHANGED
@@ -76,6 +76,75 @@ Parameter description for TrackAnalytics class constructor
76
76
  | devMode | boolean | if enabled, only log the event do not trigger network calls |
77
77
  | debug | boolean | if enabled, triggers network calls for events when devMode is true. |
78
78
  | errorHandler | function | an error handler to manage any errors thrown while initialising and sending events |
79
+ | rudderstack | object (optional) | RudderStack configuration for self-hosted migration (see RudderStack Setup below) |
80
+
81
+ ## RudderStack Setup (Self-Hosted Migration)
82
+
83
+ This library supports dual-sending events to both Segment and RudderStack for gradual migration. RudderStack integration is currently available for **Web platform only** (PoC phase).
84
+
85
+ ### Configuration
86
+
87
+ To enable RudderStack, add the `rudderstack` configuration to your `TrackAnalytics` initialization:
88
+
89
+ ```ts
90
+ const analyticsWrapper = new TrackAnalytics({
91
+ platform: 'WEB',
92
+ App: 'CONSUMER_WEB',
93
+ segment: true,
94
+ segmentKey: process.env.SEGMENT_KEY || '',
95
+ rudderstack: {
96
+ enabled: true,
97
+ writeKey: process.env.RUDDERSTACK_WRITE_KEY || '',
98
+ dataPlaneUrl: process.env.RUDDERSTACK_DATA_PLANE_URL || '', // e.g., 'https://dataplane.yourdomain.com'
99
+ },
100
+ errorHandler: analyticsException,
101
+ });
102
+ ```
103
+
104
+ ### Event Routing
105
+
106
+ Event routing to RudderStack is controlled by an **internal library configuration** file (`src/web/analytics-tool/rudderstack-event-routing.ts`). This allows you to selectively send specific events to RudderStack during the PoC phase without requiring application changes.
107
+
108
+ **Important**:
109
+ - All events are **always sent to Segment** (unchanged behavior)
110
+ - Events are **conditionally sent to RudderStack** based on the internal routing configuration
111
+ - RudderStack failures do not affect Segment sending
112
+
113
+ ### How It Works
114
+
115
+ 1. **Dual-Send Architecture**: Events are sent to both Segment and RudderStack (when configured)
116
+ 2. **Internal Routing Config**: Modify `src/web/analytics-tool/rudderstack-event-routing.ts` in this repository to control which events are sent to RudderStack
117
+ 3. **Fail-Safe**: If RudderStack initialization or sending fails, the library continues with Segment only
118
+
119
+ ### Event Routing Configuration
120
+
121
+ To control which events are sent to RudderStack, modify the `rudderstackEventRouting` object in `src/web/analytics-tool/rudderstack-event-routing.ts`:
122
+
123
+ ```ts
124
+ export const rudderstackEventRouting: IRudderstackEventRouting = {
125
+ // Option 1: List specific event names
126
+ sendToRudderstack: [
127
+ 'event_name_1',
128
+ 'event_name_2',
129
+ ],
130
+
131
+ // Option 2: Use regex patterns
132
+ eventPatterns: ['^test_', '^poc_'], // Matches events starting with 'test_' or 'poc_'
133
+ };
134
+ ```
135
+
136
+ ### Requirements
137
+
138
+ - **Data Plane URL**: Your self-hosted RudderStack data plane endpoint
139
+ - **Write Key**: Source write key from RudderStack control plane
140
+ - **Self-Hosted Setup**: See `spec-files/rudderstack-migration/RUDDERSTACK_SELF_HOSTED_PARAMETERS.md` for detailed setup instructions
141
+
142
+ ### Documentation
143
+
144
+ For more details on the migration, see:
145
+ - SDK Comparison: `spec-files/rudderstack-migration/SEGMENT_VS_RUDDERSTACK_SDK_COMPARISON.md`
146
+ - Self-Hosted Parameters: `spec-files/rudderstack-migration/RUDDERSTACK_SELF_HOSTED_PARAMETERS.md`
147
+ - Architecture (HLD/LLD): `spec-files/rudderstack-migration/HLD_LLD.md`
79
148
 
80
149
  4. Use the intialised instance in your app to send events by using the Event Names
81
150
 
@@ -0,0 +1,12 @@
1
+ import { IRNAnalyticsWrapper } from '../track-analytics/track-analytics-types';
2
+ import { tAPP } from '../../track-analytics-types';
3
+ import { DimentionsManger } from '../utils/DImentsionManager/dimension-manager';
4
+ interface IRudderstackRNWrapperParams {
5
+ writeKey: string;
6
+ dataPlaneUrl: string;
7
+ app: tAPP;
8
+ debug?: boolean;
9
+ dimensionsManager: DimentionsManger;
10
+ }
11
+ export declare const reactNativeRudderstack: ({ writeKey, dataPlaneUrl, app, dimensionsManager, }: IRudderstackRNWrapperParams) => Promise<IRNAnalyticsWrapper>;
12
+ export {};
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.reactNativeRudderstack = void 0;
7
+ const rudder_sdk_react_native_1 = __importDefault(require("@rudderstack/rudder-sdk-react-native"));
8
+ const package_json_1 = require("../../../package.json");
9
+ let isInitialized = false;
10
+ let currentWriteKey = null;
11
+ let currentDataPlaneUrl = null;
12
+ const reactNativeRudderstack = async ({ writeKey, dataPlaneUrl, app, dimensionsManager, }) => {
13
+ const normalizedDataPlaneUrl = dataPlaneUrl.endsWith('/') ? dataPlaneUrl.slice(0, -1) : dataPlaneUrl;
14
+ if (!isInitialized || currentWriteKey !== writeKey || currentDataPlaneUrl !== normalizedDataPlaneUrl) {
15
+ await rudder_sdk_react_native_1.default.setup(writeKey, {
16
+ dataPlaneUrl: normalizedDataPlaneUrl,
17
+ trackAppLifecycleEvents: true,
18
+ recordScreenViews: false,
19
+ flushQueueSize: 5,
20
+ sleepTimeOut: 10,
21
+ });
22
+ await rudder_sdk_react_native_1.default.optOut(false);
23
+ isInitialized = true;
24
+ currentWriteKey = writeKey;
25
+ currentDataPlaneUrl = normalizedDataPlaneUrl;
26
+ }
27
+ const trackWrapper = async (eventName, eventParams) => {
28
+ const data = eventParams;
29
+ const eventData = Object.assign(Object.assign({}, data), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now(), ads_params: dimensionsManager.adsDimensionValues, url_params: dimensionsManager.urlDimensionValues, internetStats: dimensionsManager.internetDimensions });
30
+ console.log('RUDDERSTACK CHECK: [TRACK] eventName:', eventName, 'eventData:', JSON.stringify(eventData));
31
+ await rudder_sdk_react_native_1.default.track(eventName, eventData);
32
+ await rudder_sdk_react_native_1.default.flush();
33
+ return Promise.resolve();
34
+ };
35
+ const screenWrapper = async (name, options) => {
36
+ const screenData = Object.assign(Object.assign({}, (options || {})), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now(), ads_params: dimensionsManager.adsDimensionValues, url_params: dimensionsManager.urlDimensionValues, internetStats: dimensionsManager.internetDimensions });
37
+ console.log('RUDDERSTACK CHECK: [SCREEN] name:', name, 'screenData:', JSON.stringify(screenData));
38
+ await rudder_sdk_react_native_1.default.screen(name, screenData);
39
+ await rudder_sdk_react_native_1.default.flush();
40
+ return Promise.resolve();
41
+ };
42
+ const identifyWrapper = async (id, traits) => {
43
+ const traitsObj = traits || {};
44
+ const options = {};
45
+ console.log('RUDDERSTACK CHECK: [IDENTIFY] id:', id, 'traits:', JSON.stringify(traits));
46
+ if (id) {
47
+ await rudder_sdk_react_native_1.default.identify(id, traitsObj, options);
48
+ }
49
+ else {
50
+ await rudder_sdk_react_native_1.default.identify(traitsObj, options);
51
+ }
52
+ await rudder_sdk_react_native_1.default.flush();
53
+ };
54
+ const getUserId = () => {
55
+ return '';
56
+ };
57
+ return {
58
+ track: trackWrapper,
59
+ screen: screenWrapper,
60
+ identify: identifyWrapper,
61
+ type: 'RN_RUDDERSTACK',
62
+ getUserId,
63
+ };
64
+ };
65
+ exports.reactNativeRudderstack = reactNativeRudderstack;
66
+ //# sourceMappingURL=react-native-rudderstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-native-rudderstack.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/react-native-rudderstack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const RUDDERSTACK_DEFAULT_CONFIG: {
2
+ dataPlaneUrl: string;
3
+ writeKey: string;
4
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RUDDERSTACK_DEFAULT_CONFIG = void 0;
4
+ exports.RUDDERSTACK_DEFAULT_CONFIG = {
5
+ dataPlaneUrl: 'https://rudderstack.joinfleek.com',
6
+ writeKey: '37NdqKQQY295HrNiIdLWniUMmKU',
7
+ };
8
+ //# sourceMappingURL=rudderstack-default-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rudderstack-default-config.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/rudderstack-default-config.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG;IACxC,YAAY,EAAE,mCAAmC;IACjD,QAAQ,EAAE,6BAA6B;CACxC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface IRudderstackEventRouting {
2
+ sendToRudderstack?: string[];
3
+ eventPatterns?: string[];
4
+ enableAllEvents?: boolean;
5
+ }
6
+ export declare const rudderstackEventRouting: IRudderstackEventRouting;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rudderstackEventRouting = void 0;
4
+ exports.rudderstackEventRouting = {
5
+ sendToRudderstack: [
6
+ 'identify',
7
+ 'screen',
8
+ 'product_detail_page_viewed',
9
+ 'homescreen',
10
+ 'homescreen_viewed',
11
+ 'product_tile_clicked',
12
+ 'session_started',
13
+ 'collection_viewed',
14
+ ],
15
+ enableAllEvents: true,
16
+ };
17
+ //# sourceMappingURL=rudderstack-event-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rudderstack-event-routing.js","sourceRoot":"","sources":["../../../src/react-native/analytics-tool/rudderstack-event-routing.ts"],"names":[],"mappings":";;;AAWa,QAAA,uBAAuB,GAA6B;IAC/D,iBAAiB,EAAE;QACjB,UAAU;QACV,QAAQ;QACR,4BAA4B;QAC5B,YAAY;QACZ,mBAAmB;QACnB,sBAAsB;QACtB,iBAAiB;QACjB,mBAAmB;KACpB;IACD,eAAe,EAAE,IAAI;CACtB,CAAC"}
@@ -5,6 +5,7 @@ import { InternetStats } from '../utils/DImentsionManager/dimension-manager';
5
5
  declare class TrackAnalytics {
6
6
  private initParams;
7
7
  private analyticsWrapper;
8
+ private rudderstackWrapper;
8
9
  private dimensionsManager;
9
10
  reactNativeSegmentClient?: SegmentClient;
10
11
  private firebaseAnalytics;
@@ -14,6 +15,7 @@ declare class TrackAnalytics {
14
15
  initDimensions: (url?: string) => void;
15
16
  initFirebaseInstanceId: (id: string) => void;
16
17
  private checkInitDone;
18
+ private shouldSendToRudderstack;
17
19
  private enrichEvent;
18
20
  track: tRNTrack;
19
21
  identify: tRNIdentify;