fleek-track-analytics 1.17.36 → 1.17.40
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/README.md +0 -69
- package/lib/node/analytics-tool/node-rudderstack.d.ts +10 -0
- package/lib/node/analytics-tool/node-rudderstack.js +76 -0
- package/lib/node/analytics-tool/node-rudderstack.js.map +1 -0
- package/lib/node/analytics-tool/rudderstack-default-config.js.map +1 -0
- package/lib/node/analytics-tool/rudderstack-event-routing.js +18 -0
- package/lib/node/analytics-tool/rudderstack-event-routing.js.map +1 -0
- package/lib/node/track-analytics/track-analytics-types.d.ts +1 -0
- package/lib/node/track-analytics/track-analytics.d.ts +2 -0
- package/lib/node/track-analytics/track-analytics.js +102 -11
- package/lib/node/track-analytics/track-analytics.js.map +1 -1
- package/lib/react-native/track-analytics/track-analytics.d.ts +0 -2
- package/lib/react-native/track-analytics/track-analytics.js +32 -152
- package/lib/react-native/track-analytics/track-analytics.js.map +1 -1
- package/lib/track-analytics-types.d.ts +0 -5
- package/lib/web/track-analytics/track-analytics.d.ts +0 -2
- package/lib/web/track-analytics/track-analytics.js +38 -139
- package/lib/web/track-analytics/track-analytics.js.map +1 -1
- package/package.json +3 -3
- package/EXPO_RN_TESTING_GUIDE.md +0 -283
- package/lib/react-native/analytics-tool/react-native-rudderstack.d.ts +0 -12
- package/lib/react-native/analytics-tool/react-native-rudderstack.js +0 -87
- package/lib/react-native/analytics-tool/react-native-rudderstack.js.map +0 -1
- package/lib/react-native/analytics-tool/rudderstack-default-config.js +0 -8
- package/lib/react-native/analytics-tool/rudderstack-default-config.js.map +0 -1
- package/lib/react-native/analytics-tool/rudderstack-event-routing.d.ts +0 -6
- package/lib/react-native/analytics-tool/rudderstack-event-routing.js +0 -17
- package/lib/react-native/analytics-tool/rudderstack-event-routing.js.map +0 -1
- package/lib/web/analytics-tool/rudderstack-default-config.d.ts +0 -4
- package/lib/web/analytics-tool/rudderstack-default-config.js.map +0 -1
- package/lib/web/analytics-tool/rudderstack-event-routing.js +0 -16
- package/lib/web/analytics-tool/rudderstack-event-routing.js.map +0 -1
- package/lib/web/analytics-tool/web-rudderstack.d.ts +0 -17
- package/lib/web/analytics-tool/web-rudderstack.js +0 -76
- package/lib/web/analytics-tool/web-rudderstack.js.map +0 -1
- package/spec-files/rudderstack-migration/HLD_LLD.md +0 -353
- package/spec-files/rudderstack-migration/RUDDERSTACK_SELF_HOSTED_PARAMETERS.md +0 -283
- package/spec-files/rudderstack-migration/SEGMENT_VS_RUDDERSTACK_SDK_COMPARISON.md +0 -140
- /package/lib/{react-native → node}/analytics-tool/rudderstack-default-config.d.ts +0 -0
- /package/lib/{web → node}/analytics-tool/rudderstack-default-config.js +0 -0
- /package/lib/{web → node}/analytics-tool/rudderstack-event-routing.d.ts +0 -0
package/README.md
CHANGED
|
@@ -76,75 +76,6 @@ 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`
|
|
148
79
|
|
|
149
80
|
4. Use the intialised instance in your app to send events by using the Event Names
|
|
150
81
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { tNodeToolWraperFunction } from './analytics-tool-types';
|
|
2
|
+
import { INodeAnalyticsWrapper } from '../track-analytics/track-analytics-types';
|
|
3
|
+
interface IRudderstackNodeWrapperParams {
|
|
4
|
+
writeKey: string;
|
|
5
|
+
dataPlaneUrl: string;
|
|
6
|
+
app: Parameters<tNodeToolWraperFunction>[1];
|
|
7
|
+
debug?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const nodeRudderstack: ({ writeKey, dataPlaneUrl, app, debug }: IRudderstackNodeWrapperParams) => INodeAnalyticsWrapper;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,76 @@
|
|
|
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.nodeRudderstack = void 0;
|
|
7
|
+
const rudder_sdk_node_1 = __importDefault(require("@rudderstack/rudder-sdk-node"));
|
|
8
|
+
const package_json_1 = require("../../../package.json");
|
|
9
|
+
const nodeRudderstack = ({ writeKey, dataPlaneUrl, app, debug }) => {
|
|
10
|
+
const normalizedDataPlaneUrl = (dataPlaneUrl === null || dataPlaneUrl === void 0 ? void 0 : dataPlaneUrl.endsWith('/')) ? dataPlaneUrl.slice(0, -1) : dataPlaneUrl || '';
|
|
11
|
+
const client = new rudder_sdk_node_1.default(writeKey, {
|
|
12
|
+
dataPlaneUrl: normalizedDataPlaneUrl,
|
|
13
|
+
flushAt: 20,
|
|
14
|
+
flushInterval: 10000,
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
track: ((params, callback) => {
|
|
18
|
+
const { eventName, eventParams, anonymousId, userId } = params;
|
|
19
|
+
if (debug) {
|
|
20
|
+
console.log('RUDDERSTACK TRACK EVENT', eventName, eventParams);
|
|
21
|
+
}
|
|
22
|
+
const trackParams = {
|
|
23
|
+
event: eventName,
|
|
24
|
+
properties: Object.assign(Object.assign({}, eventParams), { anlaytics_lib_version: package_json_1.version, fleek_platform: app, time_stamp: Date.now() }),
|
|
25
|
+
};
|
|
26
|
+
if (userId) {
|
|
27
|
+
trackParams.userId = userId;
|
|
28
|
+
}
|
|
29
|
+
else if (anonymousId) {
|
|
30
|
+
trackParams.anonymousId = anonymousId;
|
|
31
|
+
}
|
|
32
|
+
client.track(trackParams, callback || (() => { }));
|
|
33
|
+
}),
|
|
34
|
+
page: ((params) => {
|
|
35
|
+
if (debug) {
|
|
36
|
+
console.log('RUDDERSTACK PAGE EVENT', params);
|
|
37
|
+
}
|
|
38
|
+
const { anonymousId, userId, properties } = params;
|
|
39
|
+
const pageProperties = (properties || {});
|
|
40
|
+
const name = pageProperties.name || 'page';
|
|
41
|
+
const category = pageProperties.category || undefined;
|
|
42
|
+
const pageParams = {
|
|
43
|
+
name,
|
|
44
|
+
properties: Object.assign(Object.assign({}, pageProperties), { fleek_platform: app }),
|
|
45
|
+
};
|
|
46
|
+
if (userId)
|
|
47
|
+
pageParams.userId = userId;
|
|
48
|
+
if (anonymousId)
|
|
49
|
+
pageParams.anonymousId = anonymousId;
|
|
50
|
+
if (category)
|
|
51
|
+
pageParams.category = category;
|
|
52
|
+
client.page(pageParams, () => { });
|
|
53
|
+
}),
|
|
54
|
+
identify: ((params) => {
|
|
55
|
+
if (debug) {
|
|
56
|
+
console.log('RUDDERSTACK IDENTIFY EVENT', params);
|
|
57
|
+
}
|
|
58
|
+
const { userId, anonymousId, traits } = params;
|
|
59
|
+
const traitsObj = (traits || {});
|
|
60
|
+
const identifyParams = {
|
|
61
|
+
traits: traitsObj,
|
|
62
|
+
};
|
|
63
|
+
if (userId) {
|
|
64
|
+
identifyParams.userId = userId;
|
|
65
|
+
}
|
|
66
|
+
else if (anonymousId) {
|
|
67
|
+
identifyParams.anonymousId = anonymousId;
|
|
68
|
+
}
|
|
69
|
+
client.identify(identifyParams, () => { });
|
|
70
|
+
}),
|
|
71
|
+
type: 'NODE_RUDDERSTACK',
|
|
72
|
+
analytics_source_type: 'NODE_RUDDERSTACK',
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
exports.nodeRudderstack = nodeRudderstack;
|
|
76
|
+
//# sourceMappingURL=node-rudderstack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-rudderstack.js","sourceRoot":"","sources":["../../../src/node/analytics-tool/node-rudderstack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rudderstack-default-config.js","sourceRoot":"","sources":["../../../src/node/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,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rudderstackEventRouting = void 0;
|
|
4
|
+
exports.rudderstackEventRouting = {
|
|
5
|
+
sendToRudderstack: [
|
|
6
|
+
'collection_viewed',
|
|
7
|
+
'collection_plp_viewed',
|
|
8
|
+
'vendor_plp_viewed',
|
|
9
|
+
'Search Used',
|
|
10
|
+
'Message sent in chat',
|
|
11
|
+
'Send Message',
|
|
12
|
+
'New Order Tracking Update',
|
|
13
|
+
'vendor_list_experiment',
|
|
14
|
+
'Order Placed FOR VENDOR',
|
|
15
|
+
'Order Placed FOR CUSTOMER',
|
|
16
|
+
],
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=rudderstack-event-routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rudderstack-event-routing.js","sourceRoot":"","sources":["../../../src/node/analytics-tool/rudderstack-event-routing.ts"],"names":[],"mappings":";;;AAUa,QAAA,uBAAuB,GAA6B;IAC/D,iBAAiB,EAAE;QACjB,mBAAmB;QACnB,uBAAuB;QACvB,mBAAmB;QACnB,aAAa;QACb,sBAAsB;QACtB,cAAc;QACd,2BAA2B;QAC3B,wBAAwB;QACxB,yBAAyB;QACzB,2BAA2B;KAC5B;CACF,CAAC"}
|
|
@@ -3,9 +3,11 @@ import { tNodeIdentify, tNodePage, tNodeTrack } from './track-analytics-types';
|
|
|
3
3
|
declare class TrackAnalytics {
|
|
4
4
|
private initParams;
|
|
5
5
|
private analyticsWrapper;
|
|
6
|
+
private rudderstackWrapper;
|
|
6
7
|
constructor(params: IAnalyticsInit);
|
|
7
8
|
initAnalytics: () => Promise<void>;
|
|
8
9
|
private checkInitDone;
|
|
10
|
+
private shouldSendToRudderstack;
|
|
9
11
|
track: tNodeTrack;
|
|
10
12
|
identify: tNodeIdentify;
|
|
11
13
|
page: tNodePage;
|
|
@@ -3,11 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TrackAnalytics = void 0;
|
|
4
4
|
const constants_1 = require("../../constants");
|
|
5
5
|
const node_segment_1 = require("../analytics-tool/node-segment");
|
|
6
|
+
const node_rudderstack_1 = require("../analytics-tool/node-rudderstack");
|
|
7
|
+
const rudderstack_event_routing_1 = require("../analytics-tool/rudderstack-event-routing");
|
|
8
|
+
const rudderstack_default_config_1 = require("../analytics-tool/rudderstack-default-config");
|
|
6
9
|
const dev_logger_1 = require("../utils/dev-logger");
|
|
7
10
|
class TrackAnalytics {
|
|
8
11
|
constructor(params) {
|
|
9
12
|
this.analyticsWrapper = null;
|
|
13
|
+
this.rudderstackWrapper = null;
|
|
10
14
|
this.initAnalytics = async () => {
|
|
15
|
+
var _a;
|
|
11
16
|
try {
|
|
12
17
|
if (this.initParams.devMode && !this.initParams.debug) {
|
|
13
18
|
this.analyticsWrapper = dev_logger_1.devModeLogger;
|
|
@@ -17,31 +22,96 @@ class TrackAnalytics {
|
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
catch (e) {
|
|
20
|
-
this.initParams.errorHandler(e);
|
|
25
|
+
this.initParams.errorHandler(new Error(`Segment initialization failed: ${e instanceof Error ? e.message : String(e)}. Continuing with RudderStack if enabled.`));
|
|
26
|
+
this.analyticsWrapper = null;
|
|
27
|
+
}
|
|
28
|
+
if ((_a = this.initParams.rudderstack) === null || _a === void 0 ? void 0 : _a.enabled) {
|
|
29
|
+
try {
|
|
30
|
+
const writeKey = this.initParams.rudderstack.writeKey || rudderstack_default_config_1.RUDDERSTACK_DEFAULT_CONFIG.writeKey;
|
|
31
|
+
const dataPlaneUrl = this.initParams.rudderstack.dataPlaneUrl || rudderstack_default_config_1.RUDDERSTACK_DEFAULT_CONFIG.dataPlaneUrl;
|
|
32
|
+
this.rudderstackWrapper = (0, node_rudderstack_1.nodeRudderstack)({
|
|
33
|
+
writeKey,
|
|
34
|
+
dataPlaneUrl,
|
|
35
|
+
app: this.initParams.App,
|
|
36
|
+
debug: this.initParams.debug,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
this.initParams.errorHandler(new Error(`RudderStack initialization failed: ${error instanceof Error ? error.message : String(error)}. Continuing with Segment if available.`));
|
|
41
|
+
this.rudderstackWrapper = null;
|
|
42
|
+
}
|
|
21
43
|
}
|
|
22
44
|
};
|
|
23
45
|
this.track = (...args) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
46
|
+
if (!this.checkInitDone()) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const [params, callback] = args;
|
|
50
|
+
const { eventName } = params;
|
|
51
|
+
if (this.analyticsWrapper) {
|
|
52
|
+
try {
|
|
53
|
+
this.analyticsWrapper.track(params, callback || (() => { }));
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
this.initParams.errorHandler(new Error(`Segment track failed for event ${eventName}: ${error instanceof Error ? error.message : String(error)}`));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (this.rudderstackWrapper && this.shouldSendToRudderstack(eventName)) {
|
|
60
|
+
try {
|
|
61
|
+
this.rudderstackWrapper.track(params, callback || (() => { }));
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
this.initParams.errorHandler(new Error(`RudderStack track failed for event ${eventName}: ${error instanceof Error ? error.message : String(error)}`));
|
|
65
|
+
}
|
|
27
66
|
}
|
|
28
67
|
};
|
|
29
68
|
this.identify = (...args) => {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
69
|
+
if (!this.checkInitDone()) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const [params] = args;
|
|
73
|
+
if (this.analyticsWrapper) {
|
|
74
|
+
try {
|
|
75
|
+
this.analyticsWrapper.identify(params);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.initParams.errorHandler(new Error(`Segment identify failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (this.rudderstackWrapper && this.shouldSendToRudderstack('identify')) {
|
|
82
|
+
try {
|
|
83
|
+
this.rudderstackWrapper.identify(params);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.initParams.errorHandler(new Error(`RudderStack identify failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
87
|
+
}
|
|
33
88
|
}
|
|
34
89
|
};
|
|
35
90
|
this.page = (params) => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
91
|
+
if (!this.checkInitDone()) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (this.analyticsWrapper) {
|
|
95
|
+
try {
|
|
96
|
+
this.analyticsWrapper.page(params);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
this.initParams.errorHandler(new Error(`Segment page failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (this.rudderstackWrapper && this.shouldSendToRudderstack('page')) {
|
|
103
|
+
try {
|
|
104
|
+
this.rudderstackWrapper.page(params);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.initParams.errorHandler(new Error(`RudderStack page failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
108
|
+
}
|
|
39
109
|
}
|
|
40
110
|
};
|
|
41
111
|
this.initParams = params;
|
|
42
112
|
}
|
|
43
113
|
checkInitDone() {
|
|
44
|
-
if (this.analyticsWrapper) {
|
|
114
|
+
if (this.analyticsWrapper || this.rudderstackWrapper) {
|
|
45
115
|
return true;
|
|
46
116
|
}
|
|
47
117
|
else {
|
|
@@ -49,6 +119,27 @@ class TrackAnalytics {
|
|
|
49
119
|
return false;
|
|
50
120
|
}
|
|
51
121
|
}
|
|
122
|
+
shouldSendToRudderstack(eventName) {
|
|
123
|
+
const config = rudderstack_event_routing_1.rudderstackEventRouting;
|
|
124
|
+
if (!config) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
if (config.sendToRudderstack && config.sendToRudderstack.includes(eventName)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
if (config.eventPatterns && config.eventPatterns.length > 0) {
|
|
131
|
+
return config.eventPatterns.some((pattern) => {
|
|
132
|
+
try {
|
|
133
|
+
return new RegExp(pattern).test(eventName);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.initParams.errorHandler(new Error(`Invalid regex pattern in RudderStack event routing: ${pattern}. Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
52
143
|
}
|
|
53
144
|
exports.TrackAnalytics = TrackAnalytics;
|
|
54
145
|
//# sourceMappingURL=track-analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track-analytics.js","sourceRoot":"","sources":["../../../src/node/track-analytics/track-analytics.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,iEAA6D;AAC7D,oDAAoD;AAGpD,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"track-analytics.js","sourceRoot":"","sources":["../../../src/node/track-analytics/track-analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import { InternetStats } from '../utils/DImentsionManager/dimension-manager';
|
|
|
5
5
|
declare class TrackAnalytics {
|
|
6
6
|
private initParams;
|
|
7
7
|
private analyticsWrapper;
|
|
8
|
-
private rudderstackWrapper;
|
|
9
8
|
private dimensionsManager;
|
|
10
9
|
reactNativeSegmentClient?: SegmentClient;
|
|
11
10
|
private firebaseAnalytics;
|
|
@@ -15,7 +14,6 @@ declare class TrackAnalytics {
|
|
|
15
14
|
initDimensions: (url?: string) => void;
|
|
16
15
|
initFirebaseInstanceId: (id: string) => void;
|
|
17
16
|
private checkInitDone;
|
|
18
|
-
private shouldSendToRudderstack;
|
|
19
17
|
private enrichEvent;
|
|
20
18
|
track: tRNTrack;
|
|
21
19
|
identify: tRNIdentify;
|
|
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TrackAnalytics = void 0;
|
|
4
4
|
const constants_1 = require("../../constants");
|
|
5
5
|
const react_native_segment_1 = require("../analytics-tool/react-native-segment");
|
|
6
|
-
const react_native_rudderstack_1 = require("../analytics-tool/react-native-rudderstack");
|
|
7
|
-
const rudderstack_event_routing_1 = require("../analytics-tool/rudderstack-event-routing");
|
|
8
|
-
const rudderstack_default_config_1 = require("../analytics-tool/rudderstack-default-config");
|
|
9
6
|
const dimension_manager_1 = require("../utils/DImentsionManager/dimension-manager");
|
|
10
7
|
const react_native_firebase_1 = require("../analytics-tool/react-native-firebase");
|
|
11
8
|
const firebase_events_config_1 = require("../analytics-tool/firebase-events-config");
|
|
@@ -13,60 +10,26 @@ const index_1 = require("../index");
|
|
|
13
10
|
class TrackAnalytics {
|
|
14
11
|
constructor(params) {
|
|
15
12
|
this.analyticsWrapper = null;
|
|
16
|
-
this.rudderstackWrapper = null;
|
|
17
13
|
this.firebaseAnalytics = null;
|
|
18
14
|
this.traceManager = null;
|
|
19
15
|
this.initAnalytics = async () => {
|
|
20
|
-
var _a
|
|
16
|
+
var _a;
|
|
21
17
|
try {
|
|
22
18
|
this.dimensionsManager.init();
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
this.initParams.errorHandler(new Error(`Dimension manager init failed: ${error instanceof Error ? error.message : String(error)}. Continuing with SDK initialization.`));
|
|
26
|
-
}
|
|
27
|
-
try {
|
|
28
19
|
this.firebaseAnalytics = (0, react_native_firebase_1.reactNativeFirebase)();
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
this.initParams.errorHandler(new Error(`Firebase analytics init failed: ${error instanceof Error ? error.message : String(error)}. Continuing with other SDKs.`));
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
20
|
this.analyticsWrapper = (0, react_native_segment_1.reactNativeSegment)({
|
|
35
21
|
segmentKey: this.initParams.segmentKey,
|
|
36
22
|
app: this.initParams.App,
|
|
37
23
|
dimensionsManager: this.dimensionsManager,
|
|
38
24
|
});
|
|
39
25
|
this.reactNativeSegmentClient = this.analyticsWrapper.segmentClient;
|
|
40
|
-
|
|
41
|
-
catch (error) {
|
|
42
|
-
this.initParams.errorHandler(new Error(`Segment initialization failed: ${error instanceof Error ? error.message : String(error)}. Continuing with RudderStack if enabled.`));
|
|
43
|
-
this.analyticsWrapper = null;
|
|
44
|
-
}
|
|
45
|
-
if ((_a = this.initParams.rudderstack) === null || _a === void 0 ? void 0 : _a.enabled) {
|
|
46
|
-
try {
|
|
47
|
-
const writeKey = this.initParams.rudderstack.writeKey || rudderstack_default_config_1.RUDDERSTACK_DEFAULT_CONFIG.writeKey;
|
|
48
|
-
const dataPlaneUrl = this.initParams.rudderstack.dataPlaneUrl || rudderstack_default_config_1.RUDDERSTACK_DEFAULT_CONFIG.dataPlaneUrl;
|
|
49
|
-
this.rudderstackWrapper = await (0, react_native_rudderstack_1.reactNativeRudderstack)({
|
|
50
|
-
writeKey,
|
|
51
|
-
dataPlaneUrl,
|
|
52
|
-
app: this.initParams.App,
|
|
53
|
-
debug: this.initParams.debug,
|
|
54
|
-
dimensionsManager: this.dimensionsManager,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
this.initParams.errorHandler(new Error(`RudderStack initialization failed: ${error instanceof Error ? error.message : String(error)}. Continuing with Segment if available.`));
|
|
59
|
-
this.rudderstackWrapper = null;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if ((_b = this.initParams.traceManager) === null || _b === void 0 ? void 0 : _b.enabled) {
|
|
63
|
-
try {
|
|
26
|
+
if ((_a = this.initParams.traceManager) === null || _a === void 0 ? void 0 : _a.enabled) {
|
|
64
27
|
this.traceManager = (0, index_1.createReactNativeTraceManager)(this.initParams.traceManager);
|
|
65
28
|
await this.traceManager.initialize();
|
|
66
29
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
this.initParams.errorHandler(new Error(`AnalyticsWrapper initAnalytics: ${error instanceof Error ? error.message : String(error)}`));
|
|
70
33
|
}
|
|
71
34
|
};
|
|
72
35
|
this.initDimensions = (url) => {
|
|
@@ -76,99 +39,40 @@ class TrackAnalytics {
|
|
|
76
39
|
this.dimensionsManager.processFirebaseInstanceId(id);
|
|
77
40
|
};
|
|
78
41
|
this.track = async (...args) => {
|
|
79
|
-
var _a;
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const enrichedEvent = this.enrichEvent(eventName, properties);
|
|
94
|
-
if (this.analyticsWrapper) {
|
|
95
|
-
try {
|
|
96
|
-
await this.analyticsWrapper.track(eventName, enrichedEvent);
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
this.initParams.errorHandler(new Error(`Segment track failed for event ${eventName}: ${error instanceof Error ? error.message : String(error)}`));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (this.rudderstackWrapper && this.shouldSendToRudderstack(eventName)) {
|
|
103
|
-
try {
|
|
104
|
-
await this.rudderstackWrapper.track(eventName, enrichedEvent);
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
this.initParams.errorHandler(new Error(`RudderStack track failed for event ${eventName}: ${error instanceof Error ? error.message : String(error)}`));
|
|
108
|
-
}
|
|
42
|
+
var _a, _b;
|
|
43
|
+
if (this.checkInitDone()) {
|
|
44
|
+
const [eventName, properties] = args;
|
|
45
|
+
const eventNameKey = eventName;
|
|
46
|
+
if (firebase_events_config_1.FIREBASE_EVENTS[eventNameKey]) {
|
|
47
|
+
try {
|
|
48
|
+
(_a = this.firebaseAnalytics) === null || _a === void 0 ? void 0 : _a.track(eventNameKey, properties);
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
this.initParams.errorHandler(new Error(`AnalyticsWrapper track Firebase: ${error instanceof Error ? error.message : String(error)}`));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const enrichedEvent = this.enrichEvent(eventName, properties);
|
|
55
|
+
return await ((_b = this.analyticsWrapper) === null || _b === void 0 ? void 0 : _b.track(eventName, enrichedEvent));
|
|
109
56
|
}
|
|
110
57
|
};
|
|
111
58
|
this.identify = async (id, traits) => {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
if (this.analyticsWrapper) {
|
|
116
|
-
try {
|
|
117
|
-
await this.analyticsWrapper.identify(id, traits);
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
this.initParams.errorHandler(new Error(`Segment identify failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
if (this.rudderstackWrapper && this.shouldSendToRudderstack('identify')) {
|
|
124
|
-
try {
|
|
125
|
-
await this.rudderstackWrapper.identify(id, traits);
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
this.initParams.errorHandler(new Error(`RudderStack identify failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
129
|
-
}
|
|
59
|
+
var _a;
|
|
60
|
+
if (this.checkInitDone()) {
|
|
61
|
+
return await ((_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.identify(id, traits));
|
|
130
62
|
}
|
|
131
63
|
};
|
|
132
|
-
this.screen = async (
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const enrichedParams = this.enrichEvent('screen', screenParams);
|
|
138
|
-
const screenName = enrichedParams.name || name || 'screen';
|
|
139
|
-
const screenProperties = Object.assign({}, enrichedParams);
|
|
140
|
-
delete screenProperties.name;
|
|
141
|
-
if (this.analyticsWrapper) {
|
|
142
|
-
try {
|
|
143
|
-
await this.analyticsWrapper.screen(screenName, screenProperties);
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
this.initParams.errorHandler(new Error(`Segment screen failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
if (this.rudderstackWrapper && this.shouldSendToRudderstack('screen')) {
|
|
150
|
-
try {
|
|
151
|
-
await this.rudderstackWrapper.screen(screenName, screenProperties);
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
this.initParams.errorHandler(new Error(`RudderStack screen failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
155
|
-
}
|
|
64
|
+
this.screen = async (params) => {
|
|
65
|
+
var _a;
|
|
66
|
+
if (this.checkInitDone()) {
|
|
67
|
+
const enrichedParams = this.enrichEvent('screen', params);
|
|
68
|
+
return await ((_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.screen(enrichedParams));
|
|
156
69
|
}
|
|
157
70
|
};
|
|
158
71
|
this.getAnalyticsIdentifier = () => {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
catch (error) {
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
if (this.rudderstackWrapper) {
|
|
167
|
-
try {
|
|
168
|
-
return this.rudderstackWrapper.getUserId();
|
|
169
|
-
}
|
|
170
|
-
catch (error) {
|
|
171
|
-
}
|
|
72
|
+
var _a;
|
|
73
|
+
if (this.checkInitDone()) {
|
|
74
|
+
const userId = (_a = this.analyticsWrapper) === null || _a === void 0 ? void 0 : _a.getUserId();
|
|
75
|
+
return userId;
|
|
172
76
|
}
|
|
173
77
|
return undefined;
|
|
174
78
|
};
|
|
@@ -215,7 +119,7 @@ class TrackAnalytics {
|
|
|
215
119
|
this.dimensionsManager = new dimension_manager_1.DimentionsManger();
|
|
216
120
|
}
|
|
217
121
|
checkInitDone() {
|
|
218
|
-
if (this.analyticsWrapper
|
|
122
|
+
if (this.analyticsWrapper) {
|
|
219
123
|
return true;
|
|
220
124
|
}
|
|
221
125
|
else {
|
|
@@ -223,30 +127,6 @@ class TrackAnalytics {
|
|
|
223
127
|
return false;
|
|
224
128
|
}
|
|
225
129
|
}
|
|
226
|
-
shouldSendToRudderstack(eventName) {
|
|
227
|
-
const config = rudderstack_event_routing_1.rudderstackEventRouting;
|
|
228
|
-
if (config.enableAllEvents) {
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
|
-
if (!config) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
if (config.sendToRudderstack && config.sendToRudderstack.includes(eventName)) {
|
|
235
|
-
return true;
|
|
236
|
-
}
|
|
237
|
-
if (config.eventPatterns && config.eventPatterns.length > 0) {
|
|
238
|
-
return config.eventPatterns.some((pattern) => {
|
|
239
|
-
try {
|
|
240
|
-
return new RegExp(pattern).test(eventName);
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
this.initParams.errorHandler(new Error(`Invalid regex pattern in RudderStack event routing: ${pattern}. Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
130
|
enrichEvent(eventName, eventParams = {}) {
|
|
251
131
|
if (!this.traceManager) {
|
|
252
132
|
return Object.assign({ event: eventName }, eventParams);
|