@reservamos/browser-analytics 1.0.7 → 1.0.10-alpha.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.
- package/dist/browser-analytics.cjs +3 -3
- package/dist/browser-analytics.cjs.map +1 -1
- package/dist/browser-analytics.d.ts +137 -6
- package/dist/browser-analytics.esm.js +871 -2850
- package/dist/browser-analytics.esm.js.map +1 -1
- package/dist/browser-analytics.iife.js +3 -3
- package/dist/browser-analytics.iife.js.map +1 -1
- package/package.json +2 -2
- package/src/events/customEvent/trackCustomEvent.ts +1 -1
- package/src/events/identify/identify.ts +14 -14
- package/src/index.ts +17 -2
- package/src/init.ts +4 -22
- package/src/profiles/createAnonymousProfile/createAnonymousProfile.ts +10 -33
- package/src/recommendations/createRecommendedSeats/createRecommendedSeats.ts +40 -0
- package/src/recommendations/createRecommendedSeats/createRecommendedSeatsSchema.ts +25 -0
- package/src/recommendations/createRecommendedSeats/index.ts +5 -0
- package/src/recommendations/getRecommendedPlaces/getRecommendedPlaces.ts +63 -0
- package/src/recommendations/getRecommendedPlaces/index.ts +3 -0
- package/src/recommendations/getRecommendedSeats/getRecommendedSeats.ts +37 -0
- package/src/recommendations/getRecommendedSeats/getRecommendedSeatsSchema.ts +24 -0
- package/src/recommendations/getRecommendedSeats/index.ts +5 -0
- package/src/recommendations/getRecommendedTrips/getRecommendedTrips.ts +36 -0
- package/src/recommendations/getRecommendedTrips/getRecommendedTripsSchema.ts +10 -0
- package/src/recommendations/getRecommendedTrips/index.ts +5 -0
- package/src/services/config.ts +33 -10
- package/src/services/mixpanel.ts +2 -2
- package/src/track.ts +16 -31
- package/src/js-api-client.d.ts +0 -15
package/src/track.ts
CHANGED
|
@@ -64,51 +64,36 @@ function flattenEventData(data: object): EventData {
|
|
|
64
64
|
}, {} as EventData);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
type EventTrackedFrom = 'Mixpanel Ready' | 'Mixpanel Ready Listener';
|
|
68
|
-
|
|
69
|
-
function trackEventTracked(eventName: string, from: EventTrackedFrom) {
|
|
70
|
-
mixpanelService.track('Event Tracked', {
|
|
71
|
-
'Event Name': eventName,
|
|
72
|
-
'From': from,
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
|
|
76
67
|
/**
|
|
77
68
|
* Send an error event to Mixpanel when an event fails to track.
|
|
78
69
|
* The event contains the event name, error message, and validation errors.
|
|
79
70
|
*/
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
export function trackEventError(
|
|
72
|
+
eventName: string,
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
|
+
error: any,
|
|
75
|
+
payload: object,
|
|
76
|
+
): void {
|
|
77
|
+
tryTrackEvent(async () => {
|
|
78
|
+
try {
|
|
84
79
|
mixpanelService.track('Track Event Error', {
|
|
85
80
|
'Failed Event Name': eventName,
|
|
86
81
|
'Error Message': error?.message ?? 'Failed to track event',
|
|
87
82
|
'Validation Errors': error?.errors || [],
|
|
83
|
+
'Event Payload': payload,
|
|
88
84
|
});
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
85
|
+
} catch (trackingError) {
|
|
86
|
+
console.error('Failed to track error event:', trackingError);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
93
89
|
}
|
|
94
90
|
|
|
95
|
-
export async function tryTrackEvent(
|
|
96
|
-
eventName: string,
|
|
97
|
-
trackEventCallback: () => Promise<void>,
|
|
98
|
-
) {
|
|
91
|
+
export async function tryTrackEvent(trackEventCallback: () => Promise<void>) {
|
|
99
92
|
if (mixpanelService.isReady()) {
|
|
100
93
|
await trackEventCallback();
|
|
101
|
-
trackEventTracked(eventName, 'Mixpanel Ready');
|
|
102
94
|
} else {
|
|
103
95
|
window.addEventListener('Tracker Ready', async () => {
|
|
104
|
-
|
|
105
|
-
await trackEventCallback();
|
|
106
|
-
trackEventTracked(eventName, 'Mixpanel Ready Listener');
|
|
107
|
-
} catch (error) {
|
|
108
|
-
// Errors inside a listener cannot be handled from outside the listener.
|
|
109
|
-
// So we need to track the error here.
|
|
110
|
-
trackEventError(eventName, error);
|
|
111
|
-
}
|
|
96
|
+
await trackEventCallback();
|
|
112
97
|
});
|
|
113
98
|
}
|
|
114
99
|
}
|
|
@@ -158,7 +143,7 @@ export async function trackEvent(
|
|
|
158
143
|
mixpanelService.track(eventName, properties);
|
|
159
144
|
} catch (error) {
|
|
160
145
|
console.error(`Error tracking event '${eventName}':`, error);
|
|
161
|
-
trackEventError(eventName, error);
|
|
146
|
+
trackEventError(eventName, error, eventProperties);
|
|
162
147
|
}
|
|
163
148
|
}
|
|
164
149
|
|
package/src/js-api-client.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
declare module '@reservamos/js-api-client' {
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3
|
-
export const core: any; // Replace 'any' with a more specific type if possible
|
|
4
|
-
|
|
5
|
-
interface ConfigOptions {
|
|
6
|
-
coreUrl: string;
|
|
7
|
-
coreVersion?: string;
|
|
8
|
-
withCredentials?: boolean;
|
|
9
|
-
headers?: {
|
|
10
|
-
Origin?: string;
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export function setConfig(options: ConfigOptions): void;
|
|
15
|
-
}
|