@explorins/pers-shared 2.1.188 → 2.1.190
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/cjs/shared-lib/types/booking.type.d.ts +2 -1
- package/dist/cjs/shared-lib/types/booking.type.d.ts.map +1 -1
- package/dist/cjs/shared-lib/types/booking.type.js +9 -2
- package/dist/cjs/shared-lib/types/booking.type.js.map +1 -1
- package/dist/esm/shared-lib/types/booking.type.d.ts +2 -1
- package/dist/esm/shared-lib/types/booking.type.d.ts.map +1 -1
- package/dist/esm/shared-lib/types/booking.type.js +9 -2
- package/dist/esm/shared-lib/types/booking.type.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,7 +36,7 @@ export declare function isBookingStatusValid(status: BookingStatus, requirement:
|
|
|
36
36
|
*
|
|
37
37
|
* Logic:
|
|
38
38
|
* - 'past': Check-out date is before today (booking ended yesterday or earlier)
|
|
39
|
-
* - 'active': Check-in date is today or earlier, AND check-out
|
|
39
|
+
* - 'active': Check-in date is today or earlier, AND check-out is today or later (guest is staying)
|
|
40
40
|
* - 'future': Check-in date is after today (upcoming booking)
|
|
41
41
|
*
|
|
42
42
|
* Note: Checkout day itself counts as 'active' since guest is there until end of day.
|
|
@@ -45,6 +45,7 @@ export declare function isBookingStatusValid(status: BookingStatus, requirement:
|
|
|
45
45
|
* @param checkOutDate - Booking end date
|
|
46
46
|
* @param referenceDate - Date to compare against (defaults to current date)
|
|
47
47
|
* @returns Computed booking status
|
|
48
|
+
* @throws Error if checkOutDate is not after checkInDate
|
|
48
49
|
*
|
|
49
50
|
* @example
|
|
50
51
|
* // Today is June 5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,cAAc,wEAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAeT;AAED
|
|
1
|
+
{"version":3,"file":"booking.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,cAAc,wEAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAeT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,IAAI,GAAG,MAAM,EAC1B,YAAY,EAAE,IAAI,GAAG,MAAM,EAC3B,aAAa,GAAE,IAAiB,GAC/B,aAAa,CAyBf"}
|
|
@@ -47,7 +47,7 @@ function isBookingStatusValid(status, requirement) {
|
|
|
47
47
|
*
|
|
48
48
|
* Logic:
|
|
49
49
|
* - 'past': Check-out date is before today (booking ended yesterday or earlier)
|
|
50
|
-
* - 'active': Check-in date is today or earlier, AND check-out
|
|
50
|
+
* - 'active': Check-in date is today or earlier, AND check-out is today or later (guest is staying)
|
|
51
51
|
* - 'future': Check-in date is after today (upcoming booking)
|
|
52
52
|
*
|
|
53
53
|
* Note: Checkout day itself counts as 'active' since guest is there until end of day.
|
|
@@ -56,6 +56,7 @@ function isBookingStatusValid(status, requirement) {
|
|
|
56
56
|
* @param checkOutDate - Booking end date
|
|
57
57
|
* @param referenceDate - Date to compare against (defaults to current date)
|
|
58
58
|
* @returns Computed booking status
|
|
59
|
+
* @throws Error if checkOutDate is not after checkInDate
|
|
59
60
|
*
|
|
60
61
|
* @example
|
|
61
62
|
* // Today is June 5
|
|
@@ -72,11 +73,17 @@ function computeBookingStatus(checkInDate, checkOutDate, referenceDate = new Dat
|
|
|
72
73
|
now.setHours(0, 0, 0, 0);
|
|
73
74
|
checkIn.setHours(0, 0, 0, 0);
|
|
74
75
|
checkOut.setHours(0, 0, 0, 0);
|
|
76
|
+
// Defensive validation: checkOut must be after checkIn
|
|
77
|
+
// This catches invalid data from frontend or data integrity issues
|
|
78
|
+
if (checkOut <= checkIn) {
|
|
79
|
+
throw new Error(`Invalid booking dates: checkOut (${checkOut.toISOString()}) must be after checkIn (${checkIn.toISOString()})`);
|
|
80
|
+
}
|
|
75
81
|
// Checkout day itself counts as still active (guest there until end of day)
|
|
76
82
|
if (checkOut < now) {
|
|
77
83
|
return 'past';
|
|
78
84
|
}
|
|
79
|
-
else if (checkIn <= now
|
|
85
|
+
else if (checkIn <= now) {
|
|
86
|
+
// Note: checkOut >= now is implicit here (already ruled out checkOut < now above)
|
|
80
87
|
return 'active';
|
|
81
88
|
}
|
|
82
89
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":";;;AAgDA,oDAkBC;
|
|
1
|
+
{"version":3,"file":"booking.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":";;;AAgDA,oDAkBC;AAyBD,oDA6BC;AAxGD;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,UAAU,EAAM,qDAAqD;IACrE,SAAS,EAAO,iDAAiD;IACjE,OAAO,EAAS,gDAAgD;IAChE,YAAY,EAAI,8CAA8C;IAC9D,aAAa,EAAG,sDAAsD;CAC9D,CAAC;AAUX;;;;;;;;;;;GAWG;AACH,SAAgB,oBAAoB,CAClC,MAAqB,EACrB,WAAmC;IAEnC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,MAAM;YACT,OAAO,MAAM,KAAK,MAAM,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC;QACpD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,oBAAoB,CAClC,WAA0B,EAC1B,YAA2B,EAC3B,gBAAsB,IAAI,IAAI,EAAE;IAEhC,iDAAiD;IACjD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAExC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,uDAAuD;IACvD,mEAAmE;IACnE,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,WAAW,EAAE,4BAA4B,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClI,CAAC;IAED,4EAA4E;IAC5E,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QAC1B,kFAAkF;QAClF,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -36,7 +36,7 @@ export declare function isBookingStatusValid(status: BookingStatus, requirement:
|
|
|
36
36
|
*
|
|
37
37
|
* Logic:
|
|
38
38
|
* - 'past': Check-out date is before today (booking ended yesterday or earlier)
|
|
39
|
-
* - 'active': Check-in date is today or earlier, AND check-out
|
|
39
|
+
* - 'active': Check-in date is today or earlier, AND check-out is today or later (guest is staying)
|
|
40
40
|
* - 'future': Check-in date is after today (upcoming booking)
|
|
41
41
|
*
|
|
42
42
|
* Note: Checkout day itself counts as 'active' since guest is there until end of day.
|
|
@@ -45,6 +45,7 @@ export declare function isBookingStatusValid(status: BookingStatus, requirement:
|
|
|
45
45
|
* @param checkOutDate - Booking end date
|
|
46
46
|
* @param referenceDate - Date to compare against (defaults to current date)
|
|
47
47
|
* @returns Computed booking status
|
|
48
|
+
* @throws Error if checkOutDate is not after checkInDate
|
|
48
49
|
*
|
|
49
50
|
* @example
|
|
50
51
|
* // Today is June 5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,cAAc,wEAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAeT;AAED
|
|
1
|
+
{"version":3,"file":"booking.type.d.ts","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,eAAe,GACf,KAAK,CAAC;AAEV;;;GAGG;AACH,eAAO,MAAM,cAAc,wEAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAeT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,IAAI,GAAG,MAAM,EAC1B,YAAY,EAAE,IAAI,GAAG,MAAM,EAC3B,aAAa,GAAE,IAAiB,GAC/B,aAAa,CAyBf"}
|
|
@@ -42,7 +42,7 @@ export function isBookingStatusValid(status, requirement) {
|
|
|
42
42
|
*
|
|
43
43
|
* Logic:
|
|
44
44
|
* - 'past': Check-out date is before today (booking ended yesterday or earlier)
|
|
45
|
-
* - 'active': Check-in date is today or earlier, AND check-out
|
|
45
|
+
* - 'active': Check-in date is today or earlier, AND check-out is today or later (guest is staying)
|
|
46
46
|
* - 'future': Check-in date is after today (upcoming booking)
|
|
47
47
|
*
|
|
48
48
|
* Note: Checkout day itself counts as 'active' since guest is there until end of day.
|
|
@@ -51,6 +51,7 @@ export function isBookingStatusValid(status, requirement) {
|
|
|
51
51
|
* @param checkOutDate - Booking end date
|
|
52
52
|
* @param referenceDate - Date to compare against (defaults to current date)
|
|
53
53
|
* @returns Computed booking status
|
|
54
|
+
* @throws Error if checkOutDate is not after checkInDate
|
|
54
55
|
*
|
|
55
56
|
* @example
|
|
56
57
|
* // Today is June 5
|
|
@@ -67,11 +68,17 @@ export function computeBookingStatus(checkInDate, checkOutDate, referenceDate =
|
|
|
67
68
|
now.setHours(0, 0, 0, 0);
|
|
68
69
|
checkIn.setHours(0, 0, 0, 0);
|
|
69
70
|
checkOut.setHours(0, 0, 0, 0);
|
|
71
|
+
// Defensive validation: checkOut must be after checkIn
|
|
72
|
+
// This catches invalid data from frontend or data integrity issues
|
|
73
|
+
if (checkOut <= checkIn) {
|
|
74
|
+
throw new Error(`Invalid booking dates: checkOut (${checkOut.toISOString()}) must be after checkIn (${checkIn.toISOString()})`);
|
|
75
|
+
}
|
|
70
76
|
// Checkout day itself counts as still active (guest there until end of day)
|
|
71
77
|
if (checkOut < now) {
|
|
72
78
|
return 'past';
|
|
73
79
|
}
|
|
74
|
-
else if (checkIn <= now
|
|
80
|
+
else if (checkIn <= now) {
|
|
81
|
+
// Note: checkOut >= now is implicit here (already ruled out checkOut < now above)
|
|
75
82
|
return 'active';
|
|
76
83
|
}
|
|
77
84
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAM,qDAAqD;IACrE,SAAS,EAAO,iDAAiD;IACjE,OAAO,EAAS,gDAAgD;IAChE,YAAY,EAAI,8CAA8C;IAC9D,aAAa,EAAG,sDAAsD;CAC9D,CAAC;AAUX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,WAAmC;IAEnC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,MAAM;YACT,OAAO,MAAM,KAAK,MAAM,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC;QACpD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"booking.type.js","sourceRoot":"","sources":["../../../../src/shared-lib/types/booking.type.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAM,qDAAqD;IACrE,SAAS,EAAO,iDAAiD;IACjE,OAAO,EAAS,gDAAgD;IAChE,YAAY,EAAI,8CAA8C;IAC9D,aAAa,EAAG,sDAAsD;CAC9D,CAAC;AAUX;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAqB,EACrB,WAAmC;IAEnC,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,MAAM,KAAK,QAAQ,CAAC;QAC7B,KAAK,MAAM;YACT,OAAO,MAAM,KAAK,MAAM,CAAC;QAC3B,KAAK,eAAe;YAClB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,CAAC;QACpD,KAAK,KAAK;YACR,OAAO,IAAI,CAAC;QACd;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAA0B,EAC1B,YAA2B,EAC3B,gBAAsB,IAAI,IAAI,EAAE;IAEhC,iDAAiD;IACjD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAExC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9B,uDAAuD;IACvD,mEAAmE;IACnE,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,WAAW,EAAE,4BAA4B,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClI,CAAC;IAED,4EAA4E;IAC5E,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QAC1B,kFAAkF;QAClF,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED