@reservamos/browser-analytics 1.0.13 → 1.0.21
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 +15 -1
- package/dist/browser-analytics.esm.js +515 -508
- 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 +3 -3
- package/src/index.ts +4 -0
- package/src/recommendations/deleteFrequentPassenger/deleteFrequentPassenger.ts +33 -0
- package/src/recommendations/deleteFrequentPassenger/deleteFrequentPassengerSchema.ts +16 -0
- package/src/recommendations/deleteFrequentPassenger/index.ts +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reservamos/browser-analytics",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.21",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/reservamos/reservamos-browser-analytics.git"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"typings": "./dist/reservamos-browser-analytics.d.ts",
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@fingerprintjs/fingerprintjs-pro-spa": "^1.3.
|
|
64
|
+
"@fingerprintjs/fingerprintjs-pro-spa": "^1.3.3",
|
|
65
65
|
"mixpanel-browser": "^2.55.1",
|
|
66
66
|
"zod": "^3.23.8"
|
|
67
67
|
},
|
|
@@ -88,6 +88,6 @@
|
|
|
88
88
|
"upgradeps": "^2.0.6",
|
|
89
89
|
"vite": "^5.0.12",
|
|
90
90
|
"vitest": "^1.2.1",
|
|
91
|
-
"@reservamos/js-api-client": "6.0.
|
|
91
|
+
"@reservamos/js-api-client": "6.0.1"
|
|
92
92
|
}
|
|
93
93
|
}
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type { ViewResultsProps } from '@/events/viewResults';
|
|
|
12
12
|
import type { CreateAnonymousProfileProps } from '@/profiles/createAnonymousProfile';
|
|
13
13
|
import type { CreateFrequentPassengersSchemaProps } from '@/recommendations/createFrequentPassengers';
|
|
14
14
|
import type { CreateRecommendedSeatsSchemaProps } from '@/recommendations/createRecommendedSeats';
|
|
15
|
+
import type { DeleteFrequentPassengerProps } from '@/recommendations/deleteFrequentPassenger';
|
|
15
16
|
import type { GetRecommendedSeatsSchemaProps } from '@/recommendations/getRecommendedSeats';
|
|
16
17
|
import type { GetRecommendedTripsProps } from '@/recommendations/getRecommendedTrips';
|
|
17
18
|
import type { EventData, EventMetadata } from '@/types/eventData';
|
|
@@ -31,6 +32,7 @@ import init, { isTrackerReady } from '@/init';
|
|
|
31
32
|
import createAnonymousProfile from '@/profiles/createAnonymousProfile';
|
|
32
33
|
import createFrequentPassengers from '@/recommendations/createFrequentPassengers';
|
|
33
34
|
import createRecommendedSeats from '@/recommendations/createRecommendedSeats';
|
|
35
|
+
import deleteFrequentPassenger from '@/recommendations/deleteFrequentPassenger';
|
|
34
36
|
import getFrequentPassengers from '@/recommendations/getFrequentPassengers';
|
|
35
37
|
import getRecommendedPlaces from '@/recommendations/getRecommendedPlaces';
|
|
36
38
|
import getRecommendedSeats from '@/recommendations/getRecommendedSeats';
|
|
@@ -56,6 +58,7 @@ const analytics = {
|
|
|
56
58
|
getRecommendedTrips,
|
|
57
59
|
createFrequentPassengers,
|
|
58
60
|
getFrequentPassengers,
|
|
61
|
+
deleteFrequentPassenger,
|
|
59
62
|
},
|
|
60
63
|
track: {
|
|
61
64
|
search: trackSearch,
|
|
@@ -91,6 +94,7 @@ export type {
|
|
|
91
94
|
CreateRecommendedSeatsSchemaProps,
|
|
92
95
|
GetRecommendedTripsProps,
|
|
93
96
|
CreateFrequentPassengersSchemaProps,
|
|
97
|
+
DeleteFrequentPassengerProps,
|
|
94
98
|
};
|
|
95
99
|
|
|
96
100
|
export default analytics;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import coreApi, { NoContentResponse } from '@reservamos/js-api-client/core';
|
|
2
|
+
import mixpanelService from '@/services/mixpanel';
|
|
3
|
+
import validatorService from '@/services/validator';
|
|
4
|
+
import DeleteFrequentPassengerSchema, {
|
|
5
|
+
DeleteFrequentPassengerProps,
|
|
6
|
+
} from './deleteFrequentPassengerSchema';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves frequent passengers data using the Mixpanel distinct ID.
|
|
10
|
+
* @async
|
|
11
|
+
* @returns {Promise<FrequentPassengersResponse>} A promise that resolves to the frequent passengers data
|
|
12
|
+
* @throws {Error} if distinct id is not found, props are invalid or if the backend request fails
|
|
13
|
+
* @throws {Error} When the API request fails
|
|
14
|
+
*/
|
|
15
|
+
async function deleteFrequentPassengers(
|
|
16
|
+
payload: DeleteFrequentPassengerProps,
|
|
17
|
+
): Promise<NoContentResponse> {
|
|
18
|
+
try {
|
|
19
|
+
validatorService.validateProps(payload, DeleteFrequentPassengerSchema);
|
|
20
|
+
const distinctId = mixpanelService.getMixpanelDistinctId();
|
|
21
|
+
if (!distinctId) {
|
|
22
|
+
throw new Error('No distinct ID found');
|
|
23
|
+
}
|
|
24
|
+
return await coreApi.recommendations.deleteFrequentPassenger(
|
|
25
|
+
distinctId,
|
|
26
|
+
payload.passengerId,
|
|
27
|
+
);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
throw new Error(error instanceof Error ? error.message : String(error));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default deleteFrequentPassengers;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
const DeleteFrequentPassengerSchema = z
|
|
4
|
+
.object({
|
|
5
|
+
passengerId: z.string(),
|
|
6
|
+
})
|
|
7
|
+
.refine((data) => data.passengerId, {
|
|
8
|
+
message: "A 'passengerId' must be provided",
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
type DeleteFrequentPassengerProps = z.infer<
|
|
12
|
+
typeof DeleteFrequentPassengerSchema
|
|
13
|
+
>;
|
|
14
|
+
|
|
15
|
+
export type { DeleteFrequentPassengerProps };
|
|
16
|
+
export default DeleteFrequentPassengerSchema;
|