@revolugo/common 6.15.5-alpha.0 → 6.15.5-rc.0
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/package.json +3 -3
- package/src/icons/index.ts +0 -2
- package/src/types/elements/elements-events.ts +7 -5
- package/src/types/elements/hotel-offer-request.ts +15 -14
- package/src/types/http-exception/base.exception.ts +1 -1
- package/src/utils/index.ts +0 -3
- package/src/utils/generate-dummy-hotel-images.ts +0 -15
- package/src/utils/generate-random-nearby-geolocation.ts +0 -31
- package/src/utils/get-night-count.ts +0 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@revolugo/common",
|
|
3
|
-
"version": "6.15.5-
|
|
3
|
+
"version": "6.15.5-rc.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Revolugo common",
|
|
6
6
|
"author": "Revolugo",
|
|
@@ -32,9 +32,9 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"change-case": "5.4.4",
|
|
34
34
|
"dayjs": "1.11.19",
|
|
35
|
-
"ky": "1.14.
|
|
35
|
+
"ky": "1.14.1",
|
|
36
36
|
"slugify": "1.6.6",
|
|
37
|
-
"type-fest": "5.3.
|
|
37
|
+
"type-fest": "5.3.0",
|
|
38
38
|
"uuid": "13.0.0",
|
|
39
39
|
"zod": "3.25.76"
|
|
40
40
|
},
|
package/src/icons/index.ts
CHANGED
|
@@ -110,7 +110,6 @@ export const ICONS_NAME = Object.freeze({
|
|
|
110
110
|
lockKeyOpen: 'ph:lock-key-open',
|
|
111
111
|
lockOpen: 'ph:lock-open',
|
|
112
112
|
magnifyingGlass: 'ph:magnifying-glass',
|
|
113
|
-
magnifyingGlassList: 'ph:list-magnifying-glass',
|
|
114
113
|
mapPin: 'ph:map-pin',
|
|
115
114
|
mapPinArea: 'ph:map-pin-area',
|
|
116
115
|
mapPinSimpleArea: 'ph:map-pin-simple-area',
|
|
@@ -138,7 +137,6 @@ export const ICONS_NAME = Object.freeze({
|
|
|
138
137
|
policeCar: 'ph:police-car',
|
|
139
138
|
praying: 'ph:hands-praying',
|
|
140
139
|
questionMark: 'ph:question-mark',
|
|
141
|
-
receiptFail: 'ph:receipt-x',
|
|
142
140
|
refresh: 'ph:arrows-counter-clockwise',
|
|
143
141
|
running: 'ph:person-simple-run',
|
|
144
142
|
scissors: 'ph:scissors',
|
|
@@ -34,6 +34,7 @@ export enum ElementsEvent {
|
|
|
34
34
|
HotelOffersMarkerClick = 'hotel-offers:marker:click',
|
|
35
35
|
HotelOffersPollingStarted = 'hotel-offers:polling:started',
|
|
36
36
|
HotelOffersRetrieved = 'hotel-offers:retrieved',
|
|
37
|
+
HotelOffersViewShowMap = 'hotel-offers-view:show-map',
|
|
37
38
|
HotelRetrieved = 'hotel:retrieved',
|
|
38
39
|
HotelRoomOfferRequestCreated = 'hotel-room-offer-request:created',
|
|
39
40
|
HotelRoomOfferRequestRetrieved = 'hotel-room-offer-request:retrieved',
|
|
@@ -56,17 +57,18 @@ export interface ElementsEventCallbacks {
|
|
|
56
57
|
[ElementsEvent.BookingPolicyCreated]: BookingPolicies
|
|
57
58
|
[ElementsEvent.CancellationPoliciesUpdated]: CancellationPolicy[]
|
|
58
59
|
[ElementsEvent.CurrencyUpdated]: CurrencyType
|
|
59
|
-
[ElementsEvent.HotelOfferItemMouseleave]:
|
|
60
|
-
[ElementsEvent.HotelOfferItemMouseover]:
|
|
61
|
-
[ElementsEvent.HotelOfferItemVisible]:
|
|
60
|
+
[ElementsEvent.HotelOfferItemMouseleave]: [HotelOffer, number]
|
|
61
|
+
[ElementsEvent.HotelOfferItemMouseover]: [HotelOffer, number]
|
|
62
|
+
[ElementsEvent.HotelOfferItemVisible]: [HotelOffer, number]
|
|
62
63
|
[ElementsEvent.HotelOfferRequestCreated]: HotelOfferRequestResponse
|
|
63
64
|
[ElementsEvent.HotelOfferRequestRetrieved]: HotelOfferRequestResponse
|
|
64
65
|
[ElementsEvent.HotelOffersFiltersUpdated]: Partial<HotelOffersFilters>
|
|
65
|
-
[ElementsEvent.HotelOffersItemClick]:
|
|
66
|
-
[ElementsEvent.HotelOffersMarkerClick]: HotelOffer
|
|
66
|
+
[ElementsEvent.HotelOffersItemClick]: [HotelOffer, number]
|
|
67
|
+
[ElementsEvent.HotelOffersMarkerClick]: HotelOffer
|
|
67
68
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
69
|
[ElementsEvent.HotelOffersPollingStarted]: any
|
|
69
70
|
[ElementsEvent.HotelOffersRetrieved]: HotelOffer[]
|
|
71
|
+
[ElementsEvent.HotelOffersViewShowMap]: boolean
|
|
70
72
|
[ElementsEvent.HotelRetrieved]: Hotel
|
|
71
73
|
[ElementsEvent.HotelRoomOfferRequestCreated]: HotelRoomOfferRequestResponse
|
|
72
74
|
[ElementsEvent.HotelRoomOfferRequestRetrieved]: HotelRoomOfferRequestResponse
|
|
@@ -40,14 +40,14 @@ export interface HotelOfferRequest {
|
|
|
40
40
|
* <b style="color: red;"> when no address parameter passed.</b>
|
|
41
41
|
* @type {number}
|
|
42
42
|
*/
|
|
43
|
-
latitude
|
|
43
|
+
latitude?: number | null
|
|
44
44
|
/**
|
|
45
45
|
* Search location longitude.
|
|
46
46
|
*
|
|
47
47
|
* <b style="color: red;"> when no address parameter passed.</b>
|
|
48
48
|
* @type {number}
|
|
49
49
|
*/
|
|
50
|
-
longitude
|
|
50
|
+
longitude?: number | null
|
|
51
51
|
/**
|
|
52
52
|
* The total number of rooms requested for the stay. Results may display offers matching a different room count than the requested one, however those results will always provide enough occupancy for the total guest count needed.
|
|
53
53
|
*
|
|
@@ -156,15 +156,16 @@ export interface HotelOfferRequestResponse {
|
|
|
156
156
|
id: string
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
-
export
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
159
|
+
export type HotelOfferRequestCreate = Pick<
|
|
160
|
+
HotelOfferRequest,
|
|
161
|
+
| 'address'
|
|
162
|
+
| 'adultCount'
|
|
163
|
+
| 'checkInDate'
|
|
164
|
+
| 'checkOutDate'
|
|
165
|
+
| 'children'
|
|
166
|
+
| 'eventMetadata'
|
|
167
|
+
| 'latitude'
|
|
168
|
+
| 'longitude'
|
|
169
|
+
| 'roomCount'
|
|
170
|
+
| 'sourceMarket'
|
|
171
|
+
>
|
package/src/utils/index.ts
CHANGED
|
@@ -15,12 +15,9 @@ export * from './debounce.ts'
|
|
|
15
15
|
export * from './defaults-deep.ts'
|
|
16
16
|
export * from './delay.ts'
|
|
17
17
|
export * from './find-unique-keys.ts'
|
|
18
|
-
export * from './generate-dummy-hotel-images.ts'
|
|
19
18
|
export * from './generate-numbers-from-str.ts'
|
|
20
19
|
export * from './generate-pseudo-random-string.ts'
|
|
21
|
-
export * from './generate-random-nearby-geolocation.ts'
|
|
22
20
|
export * from './get-guest-count.ts'
|
|
23
|
-
export * from './get-night-count.ts'
|
|
24
21
|
export * from './get-random-element-from-array.ts'
|
|
25
22
|
export * from './get-random-hex-color.ts'
|
|
26
23
|
export * from './get-random-int.ts'
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { getRandomHexColor } from './get-random-hex-color.ts'
|
|
2
|
-
import { getRandomInt } from './get-random-int.ts'
|
|
3
|
-
|
|
4
|
-
import type { HotelImage, HotelOffer } from '../types/index.ts'
|
|
5
|
-
|
|
6
|
-
export function generateDummyHotelImages(): HotelImage {
|
|
7
|
-
return {
|
|
8
|
-
isHeroImage: false,
|
|
9
|
-
l: `https://dummyimage.com/${getRandomInt(300, 900)}x${getRandomInt(300, 900)}/${getRandomHexColor()}/${getRandomHexColor()}`,
|
|
10
|
-
m: `https://dummyimage.com/${getRandomInt(300, 900)}x${getRandomInt(300, 900)}/${getRandomHexColor()}/${getRandomHexColor()}`,
|
|
11
|
-
s: `https://dummyimage.com/${getRandomInt(300, 900)}x${getRandomInt(300, 900)}/${getRandomHexColor()}/${getRandomHexColor()}`,
|
|
12
|
-
xl: `https://dummyimage.com/${getRandomInt(300, 900)}x${getRandomInt(300, 900)}/${getRandomHexColor()}/${getRandomHexColor()}`,
|
|
13
|
-
xs: `https://dummyimage.com/${getRandomInt(300, 900)}x${getRandomInt(300, 900)}/${getRandomHexColor()}/${getRandomHexColor()}`,
|
|
14
|
-
}
|
|
15
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { GeoCoordinates } from '../types/geo-coordinates.ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Generate random coordinates near a given latitude and longitude.
|
|
5
|
-
*
|
|
6
|
-
* @param lat - Base latitude
|
|
7
|
-
* @param lon - Base longitude
|
|
8
|
-
* @param radiusInMeters - Max distance from base point, in meters
|
|
9
|
-
* @returns { lat: number, lon: number }
|
|
10
|
-
*/
|
|
11
|
-
export function generateRandomNearbyGeolocation(
|
|
12
|
-
{ latitude: lat, longitude: lon }: GeoCoordinates,
|
|
13
|
-
radiusInMeters: number,
|
|
14
|
-
): GeoCoordinates {
|
|
15
|
-
// Convert radius from meters to degrees
|
|
16
|
-
const radiusInDegrees = radiusInMeters / 111_320
|
|
17
|
-
|
|
18
|
-
// Random distance and angle
|
|
19
|
-
const u = Math.random()
|
|
20
|
-
const v = Math.random()
|
|
21
|
-
const w = radiusInDegrees * Math.sqrt(u)
|
|
22
|
-
const t = 2 * Math.PI * v
|
|
23
|
-
|
|
24
|
-
const deltaLat = w * Math.cos(t)
|
|
25
|
-
const deltaLon = (w * Math.sin(t)) / Math.cos((lat * Math.PI) / 180)
|
|
26
|
-
|
|
27
|
-
const newLat = lat + deltaLat
|
|
28
|
-
const newLon = lon + deltaLon
|
|
29
|
-
|
|
30
|
-
return { latitude: newLat, longitude: newLon }
|
|
31
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { dayjs } from './dayjs.ts'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Get the number of nights between two dates.
|
|
5
|
-
* @param startDate - The start date
|
|
6
|
-
* @param endDate - The end date
|
|
7
|
-
* @returns The number of nights
|
|
8
|
-
*/
|
|
9
|
-
export function getNightCount(startDate: string, endDate: string): number {
|
|
10
|
-
return dayjs(endDate).diff(dayjs(startDate), 'day')
|
|
11
|
-
}
|