@intelact/driveup 1.4.38 → 1.4.39
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/lib/agent/client.model.d.ts +1 -0
- package/lib/agent/client.model.js +1 -0
- package/lib/agent/client.model.js.map +1 -1
- package/lib/agent/code.model.d.ts +4 -0
- package/lib/agent/code.model.js +4 -0
- package/lib/agent/code.model.js.map +1 -1
- package/lib/agent/earning.type.d.ts +2 -0
- package/lib/alert/alert.model.d.ts +1 -0
- package/lib/alert/alert.model.js +1 -0
- package/lib/alert/alert.model.js.map +1 -1
- package/lib/bill/bill-item.model.d.ts +19 -0
- package/lib/bill/bill-item.model.js +19 -0
- package/lib/bill/bill-item.model.js.map +1 -1
- package/lib/bill/bill.model.d.ts +15 -0
- package/lib/bill/bill.model.js +15 -0
- package/lib/bill/bill.model.js.map +1 -1
- package/lib/bill/bill.status.js +3 -0
- package/lib/bill/bill.status.js.map +1 -1
- package/lib/calendar/appointment.d.ts +40 -0
- package/lib/calendar/appointment.js +40 -0
- package/lib/calendar/appointment.js.map +1 -1
- package/lib/calendar/date.d.ts +7 -0
- package/lib/calendar/date.js +7 -0
- package/lib/calendar/date.js.map +1 -1
- package/lib/calendar/holiday.d.ts +3 -0
- package/lib/calendar/holiday.js +3 -0
- package/lib/calendar/holiday.js.map +1 -1
- package/lib/calendar/token.d.ts +13 -0
- package/lib/common/app-info.d.ts +1 -0
- package/lib/common/app-info.js +1 -0
- package/lib/common/app-info.js.map +1 -1
- package/lib/common/identity.d.ts +20 -0
- package/lib/company/company-widget.model.d.ts +4 -0
- package/lib/company/company-widget.model.js +4 -0
- package/lib/company/company-widget.model.js.map +1 -1
- package/lib/company/company.model.d.ts +16 -0
- package/lib/company/company.model.js +16 -0
- package/lib/company/company.model.js.map +1 -1
- package/lib/course/appointment.model.d.ts +4 -0
- package/lib/course/appointment.model.js +4 -0
- package/lib/course/appointment.model.js.map +1 -1
- package/lib/course/course.model.d.ts +12 -0
- package/lib/course/course.model.js +12 -0
- package/lib/course/course.model.js.map +1 -1
- package/lib/course/definition.model.d.ts +1 -0
- package/lib/course/definition.model.js +1 -0
- package/lib/course/definition.model.js.map +1 -1
- package/lib/course/dto.d.ts +5 -0
- package/lib/course/dto.js +5 -0
- package/lib/course/dto.js.map +1 -1
- package/lib/course/part.model.d.ts +5 -0
- package/lib/course/part.model.js +5 -0
- package/lib/course/part.model.js.map +1 -1
- package/lib/device/device.agent.d.ts +39 -0
- package/lib/discount/discount.model.d.ts +3 -0
- package/lib/discount/discount.model.js +3 -0
- package/lib/discount/discount.model.js.map +1 -1
- package/lib/driving/category/category.model.d.ts +9 -0
- package/lib/driving/category/category.model.js +9 -0
- package/lib/driving/category/category.model.js.map +1 -1
- package/lib/driving/lesson/topic.dto.js +2 -1
- package/lib/driving/lesson/topic.dto.js.map +1 -1
- package/lib/expense/category.model.d.ts +1 -0
- package/lib/expense/category.model.js +1 -0
- package/lib/expense/category.model.js.map +1 -1
- package/lib/finance/finance.dto.d.ts +1 -0
- package/lib/finance/finance.dto.js +1 -0
- package/lib/finance/finance.dto.js.map +1 -1
- package/lib/finance/finance.model.d.ts +5 -0
- package/lib/finance/finance.model.js +5 -0
- package/lib/finance/finance.model.js.map +1 -1
- package/lib/finance/finance.type.d.ts +2 -0
- package/lib/free-benefit/free-benefit.model.d.ts +1 -0
- package/lib/free-benefit/free-benefit.model.js +1 -0
- package/lib/free-benefit/free-benefit.model.js.map +1 -1
- package/lib/geo/address.dto.d.ts +3 -0
- package/lib/geo/address.dto.js +3 -0
- package/lib/geo/address.dto.js.map +1 -1
- package/lib/geo/address.model.d.ts +1 -0
- package/lib/geo/address.model.js +1 -0
- package/lib/geo/address.model.js.map +1 -1
- package/lib/giftcode/giftcode-group.model.d.ts +1 -0
- package/lib/giftcode/giftcode-group.model.js +1 -0
- package/lib/giftcode/giftcode-group.model.js.map +1 -1
- package/lib/giftcode/giftcode.dto.d.ts +12 -0
- package/lib/giftcode/giftcode.dto.js +12 -0
- package/lib/giftcode/giftcode.dto.js.map +1 -1
- package/lib/giftcode/giftcode.model.d.ts +1 -0
- package/lib/giftcode/giftcode.model.js +1 -0
- package/lib/giftcode/giftcode.model.js.map +1 -1
- package/lib/handover/handover.model.d.ts +1 -0
- package/lib/handover/handover.model.js +1 -0
- package/lib/handover/handover.model.js.map +1 -1
- package/lib/instructor/instructor.model.d.ts +8 -0
- package/lib/instructor/instructor.model.js +8 -0
- package/lib/instructor/instructor.model.js.map +1 -1
- package/lib/item/item.model.d.ts +42 -0
- package/lib/item/item.model.js +42 -0
- package/lib/item/item.model.js.map +1 -1
- package/lib/link/link.model.d.ts +40 -0
- package/lib/link/link.model.js +40 -0
- package/lib/link/link.model.js.map +1 -1
- package/lib/metric/metric.model.d.ts +29 -0
- package/lib/metric/metric.model.js +29 -0
- package/lib/metric/metric.model.js.map +1 -1
- package/lib/payment/company-payment.model.d.ts +1 -0
- package/lib/payment/company-payment.model.js +1 -0
- package/lib/payment/company-payment.model.js.map +1 -1
- package/lib/payment/payment-method.model.d.ts +4 -0
- package/lib/payment/payment-method.model.js +4 -0
- package/lib/payment/payment-method.model.js.map +1 -1
- package/lib/payment/payment.model.d.ts +3 -0
- package/lib/payment/payment.model.js +3 -0
- package/lib/payment/payment.model.js.map +1 -1
- package/lib/priceplan/plan.model.d.ts +6 -0
- package/lib/priceplan/plan.model.js +6 -0
- package/lib/priceplan/plan.model.js.map +1 -1
- package/lib/product/product.model.d.ts +1 -0
- package/lib/product/product.model.js +1 -0
- package/lib/product/product.model.js.map +1 -1
- package/lib/refund/refund.model.d.ts +3 -0
- package/lib/refund/refund.model.js +3 -0
- package/lib/refund/refund.model.js.map +1 -1
- package/lib/security/acl.d.ts +5 -0
- package/lib/security/acl.js +5 -0
- package/lib/security/acl.js.map +1 -1
- package/lib/security/permissions.d.ts +5 -0
- package/lib/security/permissions.js +5 -0
- package/lib/security/permissions.js.map +1 -1
- package/lib/security/role.types.d.ts +32 -0
- package/lib/security/role.types.js +32 -0
- package/lib/security/role.types.js.map +1 -1
- package/lib/security/token.d.ts +23 -0
- package/lib/session/driving/session.model.d.ts +2 -0
- package/lib/session/driving/session.model.js +2 -0
- package/lib/session/driving/session.model.js.map +1 -1
- package/lib/session/driving/session.topic.d.ts +1 -0
- package/lib/session/driving/session.topic.js +1 -0
- package/lib/session/driving/session.topic.js.map +1 -1
- package/lib/signature/signature.model.d.ts +2 -0
- package/lib/signature/signature.model.js +2 -0
- package/lib/signature/signature.model.js.map +1 -1
- package/lib/ticket/ticket.dto.d.ts +1 -0
- package/lib/ticket/ticket.dto.js +1 -0
- package/lib/ticket/ticket.dto.js.map +1 -1
- package/lib/ticket/ticket.model.d.ts +1 -0
- package/lib/ticket/ticket.model.js +1 -0
- package/lib/ticket/ticket.model.js.map +1 -1
- package/lib/training/course.model.d.ts +1 -0
- package/lib/training/course.model.js +1 -0
- package/lib/training/course.model.js.map +1 -1
- package/lib/training/driving.model.d.ts +2 -0
- package/lib/training/driving.model.js +2 -0
- package/lib/training/driving.model.js.map +1 -1
- package/lib/training/request.model.d.ts +4 -0
- package/lib/training/request.model.js +4 -0
- package/lib/training/request.model.js.map +1 -1
- package/lib/training/training.dto.js +2 -1
- package/lib/training/training.dto.js.map +1 -1
- package/lib/training/training.model.d.ts +37 -0
- package/lib/training/training.model.js +37 -0
- package/lib/training/training.model.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/user/profile.type.d.ts +5 -0
- package/lib/user/profile.type.js +5 -0
- package/lib/user/profile.type.js.map +1 -1
- package/lib/user/user.model.d.ts +11 -0
- package/lib/user/user.model.js +11 -0
- package/lib/user/user.model.js.map +1 -1
- package/lib/utils/array.helper.d.ts +16 -0
- package/lib/utils/array.helper.js +16 -0
- package/lib/utils/array.helper.js.map +1 -1
- package/lib/utils/date.helper.d.ts +79 -0
- package/lib/utils/date.helper.js +87 -2
- package/lib/utils/date.helper.js.map +1 -1
- package/lib/utils/phone.helper.d.ts +6 -0
- package/lib/utils/phone.helper.js +6 -0
- package/lib/utils/phone.helper.js.map +1 -1
- package/lib/validators/compare.validator.d.ts +4 -0
- package/lib/validators/compare.validator.js +6 -0
- package/lib/validators/compare.validator.js.map +1 -1
- package/lib/validators/required.validator.d.ts +10 -0
- package/lib/validators/required.validator.js +19 -4
- package/lib/validators/required.validator.js.map +1 -1
- package/package.json +1 -1
package/lib/user/user.model.d.ts
CHANGED
|
@@ -9,11 +9,17 @@ import { ProfileType } from "./profile.type";
|
|
|
9
9
|
import { Coordinate } from "../geo";
|
|
10
10
|
import { UserAlert } from "../alert/alert.model";
|
|
11
11
|
import { Metric } from "../metric";
|
|
12
|
+
/**
|
|
13
|
+
* Implemented for all kind of users (student, instructor, company user or agent).
|
|
14
|
+
* Depends on app sessions (public, mobile, admin, console).
|
|
15
|
+
* Some of properties can have different validaition rules.
|
|
16
|
+
*/
|
|
12
17
|
export declare class User {
|
|
13
18
|
id: number;
|
|
14
19
|
uid: string;
|
|
15
20
|
language: Language;
|
|
16
21
|
status: AccountStatus;
|
|
22
|
+
/******************** Personal Data ********************/
|
|
17
23
|
name: string;
|
|
18
24
|
phone: string;
|
|
19
25
|
image: string;
|
|
@@ -23,10 +29,14 @@ export declare class User {
|
|
|
23
29
|
zipCode: string;
|
|
24
30
|
coord: Coordinate;
|
|
25
31
|
timezone: string;
|
|
32
|
+
/************************* alerts *************************/
|
|
26
33
|
alerts: UserAlert[];
|
|
34
|
+
/************************** activity ***************************/
|
|
27
35
|
lastActivity: Date;
|
|
28
36
|
overdatedActivity: boolean;
|
|
37
|
+
/************************* FCM tokens (for push notifications) *************************/
|
|
29
38
|
fcmTokens: string[];
|
|
39
|
+
/************************* profiles **************************/
|
|
30
40
|
selectedProfile: ProfileType;
|
|
31
41
|
student: Student;
|
|
32
42
|
agent: Agent;
|
|
@@ -36,6 +46,7 @@ export declare class User {
|
|
|
36
46
|
company: Company;
|
|
37
47
|
createdOn: Date;
|
|
38
48
|
metrics: Metric[];
|
|
49
|
+
/************************* methods *************************/
|
|
39
50
|
constructor(props?: Partial<User>);
|
|
40
51
|
static toInstance(data: any): User[];
|
|
41
52
|
isActive(): boolean;
|
package/lib/user/user.model.js
CHANGED
|
@@ -22,11 +22,17 @@ const profile_type_1 = require("./profile.type");
|
|
|
22
22
|
const geo_1 = require("../geo");
|
|
23
23
|
const alert_model_1 = require("../alert/alert.model");
|
|
24
24
|
const metric_1 = require("../metric");
|
|
25
|
+
/**
|
|
26
|
+
* Implemented for all kind of users (student, instructor, company user or agent).
|
|
27
|
+
* Depends on app sessions (public, mobile, admin, console).
|
|
28
|
+
* Some of properties can have different validaition rules.
|
|
29
|
+
*/
|
|
25
30
|
class User {
|
|
26
31
|
id;
|
|
27
32
|
uid;
|
|
28
33
|
language;
|
|
29
34
|
status;
|
|
35
|
+
/******************** Personal Data ********************/
|
|
30
36
|
name;
|
|
31
37
|
phone;
|
|
32
38
|
image;
|
|
@@ -36,10 +42,14 @@ class User {
|
|
|
36
42
|
zipCode;
|
|
37
43
|
coord;
|
|
38
44
|
timezone;
|
|
45
|
+
/************************* alerts *************************/
|
|
39
46
|
alerts;
|
|
47
|
+
/************************** activity ***************************/
|
|
40
48
|
lastActivity;
|
|
41
49
|
overdatedActivity;
|
|
50
|
+
/************************* FCM tokens (for push notifications) *************************/
|
|
42
51
|
fcmTokens;
|
|
52
|
+
/************************* profiles **************************/
|
|
43
53
|
selectedProfile;
|
|
44
54
|
student;
|
|
45
55
|
agent;
|
|
@@ -49,6 +59,7 @@ class User {
|
|
|
49
59
|
company;
|
|
50
60
|
createdOn;
|
|
51
61
|
metrics;
|
|
62
|
+
/************************* methods *************************/
|
|
52
63
|
constructor(props) {
|
|
53
64
|
Object.assign(this, props);
|
|
54
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/user/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAkE;AAClE,sCAAqC;AACrC,0CAA2C;AAC3C,4DAAmD;AACnD,qEAA4D;AAC5D,wCAAqC;AACrC,oCAAiC;AACjC,wCAAqC;AACrC,iDAA6C;AAC7C,gCAAoC;AACpC,sDAAiD;AACjD,sCAAmC;
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../src/user/user.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
export declare class ArrayHelper {
|
|
2
|
+
/**
|
|
3
|
+
* Get a random item from an array
|
|
4
|
+
* @param val Given T type array
|
|
5
|
+
* @returns Given T type
|
|
6
|
+
*/
|
|
2
7
|
static getRandom<T>(val: T[]): T;
|
|
8
|
+
/**
|
|
9
|
+
* Get the last item from an array
|
|
10
|
+
* @param val Given T type array
|
|
11
|
+
* @returns Given T type
|
|
12
|
+
*/
|
|
3
13
|
static getLastItem<T>(val: T[]): T;
|
|
14
|
+
/**
|
|
15
|
+
* Sum all numbers in a number array
|
|
16
|
+
* @param val Number[]
|
|
17
|
+
* @param toFixed (2)
|
|
18
|
+
* @returns Sum number
|
|
19
|
+
*/
|
|
4
20
|
static getSum(val: number[], toFixed?: number): number;
|
|
5
21
|
}
|
|
@@ -2,13 +2,29 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArrayHelper = void 0;
|
|
4
4
|
class ArrayHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Get a random item from an array
|
|
7
|
+
* @param val Given T type array
|
|
8
|
+
* @returns Given T type
|
|
9
|
+
*/
|
|
5
10
|
static getRandom(val) {
|
|
6
11
|
const randomIndex = Math.floor(Math.random() * this.length);
|
|
7
12
|
return val[randomIndex];
|
|
8
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the last item from an array
|
|
16
|
+
* @param val Given T type array
|
|
17
|
+
* @returns Given T type
|
|
18
|
+
*/
|
|
9
19
|
static getLastItem(val) {
|
|
10
20
|
return val?.length ? val[this.length - 1] : undefined;
|
|
11
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Sum all numbers in a number array
|
|
24
|
+
* @param val Number[]
|
|
25
|
+
* @param toFixed (2)
|
|
26
|
+
* @returns Sum number
|
|
27
|
+
*/
|
|
12
28
|
static getSum(val, toFixed = 2) {
|
|
13
29
|
return +val.reduce((acc, curr) => +acc + +curr, 0).toFixed(toFixed);
|
|
14
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.helper.js","sourceRoot":"","sources":["../../src/utils/array.helper.ts"],"names":[],"mappings":";;;AACA,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"array.helper.js","sourceRoot":"","sources":["../../src/utils/array.helper.ts"],"names":[],"mappings":";;;AACA,MAAa,WAAW;IAEvB;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAI,GAAQ;QAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAI,GAAQ;QAC7B,OAAO,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,GAAa,EAAE,OAAO,GAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,CAAC;CACD;AA9BD,kCA8BC"}
|
|
@@ -1,18 +1,97 @@
|
|
|
1
1
|
import { DateTime, WeekdayNumbers } from 'luxon';
|
|
2
2
|
import { Appointment, Period, WeekDay } from '../calendar';
|
|
3
3
|
export declare class DateHelper {
|
|
4
|
+
/**
|
|
5
|
+
* Is date between start and end dates
|
|
6
|
+
* @param date Date
|
|
7
|
+
* @param start Date
|
|
8
|
+
* @param end Date
|
|
9
|
+
* @returns
|
|
10
|
+
*/
|
|
4
11
|
static isBetween(date: Date, start: Date, end: Date): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Converts a Date to a date-only string in the format "YYYY-MM-DD".
|
|
14
|
+
* @param date Given date
|
|
15
|
+
* @returns Date string
|
|
16
|
+
*/
|
|
5
17
|
static toDateOnly(date: Date): string;
|
|
18
|
+
/**
|
|
19
|
+
* Converts a Date to a time-only string in the format "HH:MM:SS.sssZ".
|
|
20
|
+
* @param date Given date
|
|
21
|
+
* @returns Time string
|
|
22
|
+
*/
|
|
6
23
|
static toTimeOnly(date: Date): string;
|
|
24
|
+
/**
|
|
25
|
+
* Get DateTime instance from Date
|
|
26
|
+
* @param date
|
|
27
|
+
* @returns DateTime
|
|
28
|
+
*/
|
|
7
29
|
static toDateTimeInstance(date: Date): DateTime;
|
|
30
|
+
/**
|
|
31
|
+
* Check if date is start of day
|
|
32
|
+
* @param date Given date
|
|
33
|
+
* @returns True if date is start of day
|
|
34
|
+
*/
|
|
8
35
|
static isStartOfDay(date: Date): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check if date is end of day
|
|
38
|
+
* @param date Given date
|
|
39
|
+
* @returns True if date is end of day
|
|
40
|
+
*/
|
|
9
41
|
static isEndOfDay(date: Date): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Converts a number to a WeekdayNumbers enum from luxon.
|
|
44
|
+
* @param val
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
10
47
|
static toWeekdayNumber(val: number): WeekdayNumbers;
|
|
48
|
+
/**
|
|
49
|
+
* Converts a WeekDay enum from intelact/driveup to a WeekdayNumbers enum from luxon.
|
|
50
|
+
* @param Weekday - The weekday to convert
|
|
51
|
+
* @returns WeekdayNumbers from luxon - 1 to 7
|
|
52
|
+
*/
|
|
11
53
|
static getWeekdayNumber(weekday: WeekDay): WeekdayNumbers;
|
|
54
|
+
/**
|
|
55
|
+
* Get WeekDay from DateTime
|
|
56
|
+
* @param date
|
|
57
|
+
* @returns WeekDay
|
|
58
|
+
*/
|
|
12
59
|
static getWeekday(date: DateTime): WeekDay;
|
|
60
|
+
/**
|
|
61
|
+
* Converts a WeekDay enum from intelact/driveup to a MySQL weekday number.
|
|
62
|
+
* @param Weekday - The weekday to convert
|
|
63
|
+
* @returns number - MySQL weekday number (0 = Monday, 6 = Sunday)
|
|
64
|
+
*/
|
|
13
65
|
static getMySqlWeekday(weekday: WeekDay): number;
|
|
66
|
+
/**
|
|
67
|
+
* Merge periods
|
|
68
|
+
* @param Period[]
|
|
69
|
+
* @returns Period[] - Returns an array of merged periods
|
|
70
|
+
*/
|
|
14
71
|
static mergePeriods(periods: Period[]): Period[];
|
|
72
|
+
/**
|
|
73
|
+
* Merge appointment periods
|
|
74
|
+
* @param Appointment[]
|
|
75
|
+
* @returns Appointment[] - Returns an array of merged appointments
|
|
76
|
+
*/
|
|
15
77
|
static mergeAppointmentPeriods(appointments: Appointment[]): Appointment[];
|
|
78
|
+
/**
|
|
79
|
+
* Get a formatted date string in "DD MMM YYYY" format,
|
|
80
|
+
* or an empty string if the given date is invalid.
|
|
81
|
+
* Example: "23 Oct 2025"
|
|
82
|
+
* @param date string | number | Date
|
|
83
|
+
* @param local Default en-GB
|
|
84
|
+
* @returns Formatted date string
|
|
85
|
+
*/
|
|
16
86
|
static formatDate(date: string | number | Date, local?: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* Get a formatted date and time string in "DD MMM YYYY - HH:MM" format,
|
|
89
|
+
* or an empty string if the given date is invalid.
|
|
90
|
+
* Example: "23 Oct 2025 - 14:30"
|
|
91
|
+
* @param date string | number | Date
|
|
92
|
+
* @param seperator Default '-'
|
|
93
|
+
* @param local Default en-GB
|
|
94
|
+
* @returns Formatted date and time string
|
|
95
|
+
*/
|
|
17
96
|
static formatDateAndTime(date: string | number | Date, seperator?: string, local?: string): string;
|
|
18
97
|
}
|
package/lib/utils/date.helper.js
CHANGED
|
@@ -4,33 +4,70 @@ exports.DateHelper = void 0;
|
|
|
4
4
|
const luxon_1 = require("luxon");
|
|
5
5
|
const calendar_1 = require("../calendar");
|
|
6
6
|
class DateHelper {
|
|
7
|
+
/**
|
|
8
|
+
* Is date between start and end dates
|
|
9
|
+
* @param date Date
|
|
10
|
+
* @param start Date
|
|
11
|
+
* @param end Date
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
7
14
|
static isBetween(date, start, end) {
|
|
8
15
|
return date.getTime() >= start.getTime() && date.getTime() <= end.getTime();
|
|
9
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Converts a Date to a date-only string in the format "YYYY-MM-DD".
|
|
19
|
+
* @param date Given date
|
|
20
|
+
* @returns Date string
|
|
21
|
+
*/
|
|
10
22
|
static toDateOnly(date) {
|
|
11
23
|
return date.toISOString().split('T')[0];
|
|
12
24
|
}
|
|
13
25
|
;
|
|
26
|
+
/**
|
|
27
|
+
* Converts a Date to a time-only string in the format "HH:MM:SS.sssZ".
|
|
28
|
+
* @param date Given date
|
|
29
|
+
* @returns Time string
|
|
30
|
+
*/
|
|
14
31
|
static toTimeOnly(date) {
|
|
15
32
|
return date.toISOString().split('T')[1];
|
|
16
33
|
}
|
|
17
34
|
;
|
|
35
|
+
/**
|
|
36
|
+
* Get DateTime instance from Date
|
|
37
|
+
* @param date
|
|
38
|
+
* @returns DateTime
|
|
39
|
+
*/
|
|
18
40
|
static toDateTimeInstance(date) {
|
|
19
41
|
const dt = luxon_1.DateTime.fromJSDate(date);
|
|
20
42
|
return dt.isValid ? dt : null;
|
|
21
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Check if date is start of day
|
|
46
|
+
* @param date Given date
|
|
47
|
+
* @returns True if date is start of day
|
|
48
|
+
*/
|
|
22
49
|
static isStartOfDay(date) {
|
|
23
50
|
return (date.getHours() === 0 &&
|
|
24
51
|
date.getMinutes() === 0 &&
|
|
25
52
|
date.getSeconds() === 0 &&
|
|
26
53
|
date.getMilliseconds() === 0);
|
|
27
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Check if date is end of day
|
|
57
|
+
* @param date Given date
|
|
58
|
+
* @returns True if date is end of day
|
|
59
|
+
*/
|
|
28
60
|
static isEndOfDay(date) {
|
|
29
61
|
return (date.getHours() === 23 &&
|
|
30
62
|
date.getMinutes() === 59 &&
|
|
31
63
|
date.getSeconds() === 59 &&
|
|
32
64
|
date.getMilliseconds() === 999);
|
|
33
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Converts a number to a WeekdayNumbers enum from luxon.
|
|
68
|
+
* @param val
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
34
71
|
static toWeekdayNumber(val) {
|
|
35
72
|
return (val === 1 ? 1
|
|
36
73
|
: val === 2 ? 2
|
|
@@ -42,6 +79,11 @@ class DateHelper {
|
|
|
42
79
|
: undefined);
|
|
43
80
|
}
|
|
44
81
|
;
|
|
82
|
+
/**
|
|
83
|
+
* Converts a WeekDay enum from intelact/driveup to a WeekdayNumbers enum from luxon.
|
|
84
|
+
* @param Weekday - The weekday to convert
|
|
85
|
+
* @returns WeekdayNumbers from luxon - 1 to 7
|
|
86
|
+
*/
|
|
45
87
|
static getWeekdayNumber(weekday) {
|
|
46
88
|
return (weekday === calendar_1.WeekDay.Monday ? 1
|
|
47
89
|
: weekday === calendar_1.WeekDay.Tuesday ? 2
|
|
@@ -49,8 +91,14 @@ class DateHelper {
|
|
|
49
91
|
: weekday === calendar_1.WeekDay.Thursday ? 4
|
|
50
92
|
: weekday === calendar_1.WeekDay.Friday ? 5
|
|
51
93
|
: weekday === calendar_1.WeekDay.Saturday ? 6
|
|
52
|
-
: 7
|
|
94
|
+
: 7 // Sunday
|
|
95
|
+
);
|
|
53
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Get WeekDay from DateTime
|
|
99
|
+
* @param date
|
|
100
|
+
* @returns WeekDay
|
|
101
|
+
*/
|
|
54
102
|
static getWeekday(date) {
|
|
55
103
|
const number = date.weekday;
|
|
56
104
|
return (number === 1 ? calendar_1.WeekDay.Monday
|
|
@@ -61,6 +109,11 @@ class DateHelper {
|
|
|
61
109
|
: number === 6 ? calendar_1.WeekDay.Saturday
|
|
62
110
|
: calendar_1.WeekDay.Sunday);
|
|
63
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Converts a WeekDay enum from intelact/driveup to a MySQL weekday number.
|
|
114
|
+
* @param Weekday - The weekday to convert
|
|
115
|
+
* @returns number - MySQL weekday number (0 = Monday, 6 = Sunday)
|
|
116
|
+
*/
|
|
64
117
|
static getMySqlWeekday(weekday) {
|
|
65
118
|
return (weekday === calendar_1.WeekDay.Monday ? 0
|
|
66
119
|
: weekday === calendar_1.WeekDay.Tuesday ? 1
|
|
@@ -68,19 +121,27 @@ class DateHelper {
|
|
|
68
121
|
: weekday === calendar_1.WeekDay.Thursday ? 3
|
|
69
122
|
: weekday === calendar_1.WeekDay.Friday ? 4
|
|
70
123
|
: weekday === calendar_1.WeekDay.Saturday ? 5
|
|
71
|
-
: 6
|
|
124
|
+
: 6 // Sunday
|
|
125
|
+
);
|
|
72
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Merge periods
|
|
129
|
+
* @param Period[]
|
|
130
|
+
* @returns Period[] - Returns an array of merged periods
|
|
131
|
+
*/
|
|
73
132
|
static mergePeriods(periods) {
|
|
74
133
|
if (!periods?.length)
|
|
75
134
|
return [];
|
|
76
135
|
periods.sort((a, b) => a.startDate.getTime() - b.startDate.getTime());
|
|
77
136
|
const merged = [];
|
|
78
137
|
for (const period of periods) {
|
|
138
|
+
// if this is the first itteration of the loop, add the period to the reslult array
|
|
79
139
|
if (!merged.length) {
|
|
80
140
|
merged.push(period);
|
|
81
141
|
continue;
|
|
82
142
|
}
|
|
83
143
|
const last = merged[merged.length - 1];
|
|
144
|
+
// if the period overlaps with the last one, merge them
|
|
84
145
|
if (period.startDate <= last.endDate) {
|
|
85
146
|
last.endDate = last.endDate > period.endDate ? last.endDate : period.endDate;
|
|
86
147
|
}
|
|
@@ -90,16 +151,23 @@ class DateHelper {
|
|
|
90
151
|
}
|
|
91
152
|
return merged;
|
|
92
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Merge appointment periods
|
|
156
|
+
* @param Appointment[]
|
|
157
|
+
* @returns Appointment[] - Returns an array of merged appointments
|
|
158
|
+
*/
|
|
93
159
|
static mergeAppointmentPeriods(appointments) {
|
|
94
160
|
if (!appointments?.length)
|
|
95
161
|
return [];
|
|
96
162
|
appointments.sort((a, b) => new Date(a.startDate).getTime() - new Date(b.startDate).getTime());
|
|
97
163
|
const merged = [];
|
|
98
164
|
for (const appointment of appointments) {
|
|
165
|
+
// if this is the first itteration of the loop, add the period to the reslult array
|
|
99
166
|
if (!merged.length) {
|
|
100
167
|
merged.push(appointment);
|
|
101
168
|
continue;
|
|
102
169
|
}
|
|
170
|
+
// if the period overlaps with the last period in the array, merge them
|
|
103
171
|
const last = merged[merged.length - 1];
|
|
104
172
|
if (new Date(appointment.startDate) <= new Date(last.endDate)) {
|
|
105
173
|
last.endDate =
|
|
@@ -111,6 +179,14 @@ class DateHelper {
|
|
|
111
179
|
}
|
|
112
180
|
return merged;
|
|
113
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Get a formatted date string in "DD MMM YYYY" format,
|
|
184
|
+
* or an empty string if the given date is invalid.
|
|
185
|
+
* Example: "23 Oct 2025"
|
|
186
|
+
* @param date string | number | Date
|
|
187
|
+
* @param local Default en-GB
|
|
188
|
+
* @returns Formatted date string
|
|
189
|
+
*/
|
|
114
190
|
static formatDate(date, local = 'en-GB') {
|
|
115
191
|
if (!date)
|
|
116
192
|
return '';
|
|
@@ -120,6 +196,15 @@ class DateHelper {
|
|
|
120
196
|
year: 'numeric'
|
|
121
197
|
});
|
|
122
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Get a formatted date and time string in "DD MMM YYYY - HH:MM" format,
|
|
201
|
+
* or an empty string if the given date is invalid.
|
|
202
|
+
* Example: "23 Oct 2025 - 14:30"
|
|
203
|
+
* @param date string | number | Date
|
|
204
|
+
* @param seperator Default '-'
|
|
205
|
+
* @param local Default en-GB
|
|
206
|
+
* @returns Formatted date and time string
|
|
207
|
+
*/
|
|
123
208
|
static formatDateAndTime(date, seperator = '-', local = 'en-GB') {
|
|
124
209
|
if (!date)
|
|
125
210
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.helper.js","sourceRoot":"","sources":["../../src/utils/date.helper.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AACjD,0CAA2D;AAE3D,MAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"date.helper.js","sourceRoot":"","sources":["../../src/utils/date.helper.ts"],"names":[],"mappings":";;;AAAA,iCAAiD;AACjD,0CAA2D;AAE3D,MAAa,UAAU;IAEtB;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,IAAU,EAAE,KAAW,EAAE,GAAS;QAClD,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAU;QAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAAA,CAAC;IAEF;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAU;QAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAAA,CAAC;IAEF;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAU;QACnC,MAAM,EAAE,GAAG,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAU;QAC7B,OAAO,CACN,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;YACvB,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAU;QAC3B,OAAO,CACN,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;YACtB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;YACxB,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,CAC9B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QACjC,OAAO,CACN,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACf,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACf,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BACf,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gCACf,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oCACf,CAAC,CAAC,SAAS,CACX,CAAC;IACH,CAAC;IAAA,CAAC;IAEF;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAgB;QACvC,OAAO,CACN,OAAO,KAAK,kBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAClC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAChC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAClC,CAAC,CAAC,CAAC,CAAC,SAAS;SACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,IAAc;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,OAAO,CACN,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,MAAM;YAC7B,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,OAAO;gBAChC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,SAAS;oBAClC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,QAAQ;wBACjC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,MAAM;4BAC/B,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAO,CAAC,QAAQ;gCACjC,CAAC,CAAC,kBAAO,CAAC,MAAM,CAChB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,OAAgB;QACtC,OAAO,CACN,OAAO,KAAK,kBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBACnC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAClC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAChC,CAAC,CAAC,OAAO,KAAK,kBAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gCAClC,CAAC,CAAC,CAAC,CAAC,SAAS;SACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAiB;QACpC,IAAI,CAAC,OAAO,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAEhC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtE,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,mFAAmF;YACnF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,SAAS;YACV,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,uDAAuD;YACvD,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,CAAC,YAA2B;QACzD,IAAI,CAAC,YAAY,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAErC,YAAY,CAAC,IAAI,CAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAC3E,CAAC;QAEF,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACxC,mFAAmF;YACnF,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzB,SAAS;YACV,CAAC;YAED,uEAAuE;YACvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/D,IAAI,CAAC,OAAO;oBACX,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,IAA4B,EAAE,QAAgB,OAAO;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAC/C,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,SAAS;SACf,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAA4B,EAAE,YAAoB,GAAG,EAAE,QAAgB,OAAO;QACtG,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAClD,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,SAAS;SACf,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE;YAClD,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,OAAO,GAAG,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC/C,CAAC;CACD;AAvPD,gCAuPC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
export declare class PhoneHelper {
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the country code from a given phone number string.
|
|
4
|
+
* @param phoneNumber - The phone number string to extract the country code from.
|
|
5
|
+
* @param prefix - The prefix to prepend to the extracted country code. Default is '+'.
|
|
6
|
+
* @returns The extracted country code with the specified prefix, or null if not found.
|
|
7
|
+
*/
|
|
2
8
|
static extractCountryCode(phoneNumber: string, prefix?: string): string;
|
|
3
9
|
}
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PhoneHelper = void 0;
|
|
4
4
|
class PhoneHelper {
|
|
5
|
+
/**
|
|
6
|
+
* Extracts the country code from a given phone number string.
|
|
7
|
+
* @param phoneNumber - The phone number string to extract the country code from.
|
|
8
|
+
* @param prefix - The prefix to prepend to the extracted country code. Default is '+'.
|
|
9
|
+
* @returns The extracted country code with the specified prefix, or null if not found.
|
|
10
|
+
*/
|
|
5
11
|
static extractCountryCode(phoneNumber, prefix = '+') {
|
|
6
12
|
const match = /^\+(\d{1,4})/.exec(phoneNumber);
|
|
7
13
|
return match ? prefix + match[1] : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone.helper.js","sourceRoot":"","sources":["../../src/utils/phone.helper.ts"],"names":[],"mappings":";;;AACA,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"phone.helper.js","sourceRoot":"","sources":["../../src/utils/phone.helper.ts"],"names":[],"mappings":";;;AACA,MAAa,WAAW;IAEvB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAmB,EAAE,MAAM,GAAG,GAAG;QAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;CACD;AAZD,kCAYC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ValidationArguments, ValidatorConstraintInterface } from "class-validator";
|
|
2
|
+
/**
|
|
3
|
+
* Checks if the start date is less than or equal to the end date
|
|
4
|
+
* If one of the does not have a valid value, returns true
|
|
5
|
+
*/
|
|
2
6
|
export declare class CompareWithEndDate implements ValidatorConstraintInterface {
|
|
3
7
|
validate(startDate: Date, args: ValidationArguments): boolean;
|
|
4
8
|
defaultMessage(args?: ValidationArguments): string;
|
|
@@ -9,9 +9,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.CompareWithEndDate = void 0;
|
|
10
10
|
const class_validator_1 = require("class-validator");
|
|
11
11
|
const luxon_1 = require("luxon");
|
|
12
|
+
/**
|
|
13
|
+
* Checks if the start date is less than or equal to the end date
|
|
14
|
+
* If one of the does not have a valid value, returns true
|
|
15
|
+
*/
|
|
12
16
|
let CompareWithEndDate = class CompareWithEndDate {
|
|
17
|
+
// startDate must be there before the args param, if it's not there the args will be treated as the startDate and we won't have access to the object
|
|
13
18
|
validate(startDate, args) {
|
|
14
19
|
const dto = args.object;
|
|
20
|
+
// no validation is performed if either is not provided
|
|
15
21
|
if (!luxon_1.DateTime.fromJSDate(dto.startDate).isValid ||
|
|
16
22
|
!luxon_1.DateTime.fromJSDate(dto.endDate).isValid)
|
|
17
23
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.validator.js","sourceRoot":"","sources":["../../src/validators/compare.validator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAyG;AACzG,iCAAiC;
|
|
1
|
+
{"version":3,"file":"compare.validator.js","sourceRoot":"","sources":["../../src/validators/compare.validator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qDAAyG;AACzG,iCAAiC;AAGjC;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC9B,oJAAoJ;IACpJ,QAAQ,CAAC,SAAe,EAAE,IAAyB;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAgB,CAAC;QAElC,uDAAuD;QACvD,IACC,CAAC,gBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO;YAC3C,CAAC,gBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO;YAEzC,OAAO,IAAI,CAAC;QAEb,OAAO,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,IAA0B;QACxC,OAAO,4CAA4C,CAAC;IACrD,CAAC;CACD,CAAA;AAlBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACrD,kBAAkB,CAkB9B"}
|
|
@@ -3,9 +3,19 @@ export declare class MutuallyRequiredConstraint implements ValidatorConstraintIn
|
|
|
3
3
|
validate(value: any, args: ValidationArguments): boolean;
|
|
4
4
|
defaultMessage(args: ValidationArguments): string;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Checks if the two fields are mutually empty or with value.
|
|
8
|
+
*
|
|
9
|
+
* @param relatedField the field name that needs to be checked with the field the decorator has been applied to
|
|
10
|
+
*/
|
|
6
11
|
export declare function MutuallyRequired(relatedField: string, validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
|
|
7
12
|
export declare class EitherRequiredConstraint implements ValidatorConstraintInterface {
|
|
8
13
|
validate(value: any, args: ValidationArguments): boolean;
|
|
9
14
|
defaultMessage(args: ValidationArguments): string;
|
|
10
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Checks if the two fields are mutually empty or with value.
|
|
18
|
+
*
|
|
19
|
+
* @param relatedField the field name that needs to be checked with the field the decorator has been applied to
|
|
20
|
+
*/
|
|
11
21
|
export declare function EitherRequired(relatedField: string, validationOptions?: ValidationOptions): (object: Object, propertyName: string) => void;
|
|
@@ -13,14 +13,17 @@ const class_validator_1 = require("class-validator");
|
|
|
13
13
|
let MutuallyRequiredConstraint = class MutuallyRequiredConstraint {
|
|
14
14
|
validate(value, args) {
|
|
15
15
|
const dto = args.object;
|
|
16
|
-
const relatedField = args.constraints[0];
|
|
16
|
+
const relatedField = args.constraints[0]; // field name passed in the decorator
|
|
17
17
|
const relatedValue = dto[relatedField];
|
|
18
18
|
if (!value && !relatedValue) {
|
|
19
|
+
// Both are empty: validation passes
|
|
19
20
|
return true;
|
|
20
21
|
}
|
|
21
22
|
if (value && relatedValue) {
|
|
23
|
+
// Both fields set: validation passes
|
|
22
24
|
return true;
|
|
23
25
|
}
|
|
26
|
+
// One field has a value but the other does not. validation fails
|
|
24
27
|
return false;
|
|
25
28
|
}
|
|
26
29
|
defaultMessage(args) {
|
|
@@ -34,13 +37,18 @@ exports.MutuallyRequiredConstraint = MutuallyRequiredConstraint = __decorate([
|
|
|
34
37
|
async: false
|
|
35
38
|
})
|
|
36
39
|
], MutuallyRequiredConstraint);
|
|
40
|
+
/**
|
|
41
|
+
* Checks if the two fields are mutually empty or with value.
|
|
42
|
+
*
|
|
43
|
+
* @param relatedField the field name that needs to be checked with the field the decorator has been applied to
|
|
44
|
+
*/
|
|
37
45
|
function MutuallyRequired(relatedField, validationOptions) {
|
|
38
46
|
return function (object, propertyName) {
|
|
39
47
|
(0, class_validator_1.registerDecorator)({
|
|
40
48
|
target: object.constructor,
|
|
41
49
|
propertyName: propertyName,
|
|
42
50
|
options: validationOptions,
|
|
43
|
-
constraints: [relatedField],
|
|
51
|
+
constraints: [relatedField], // This should be dynamic
|
|
44
52
|
validator: MutuallyRequiredConstraint
|
|
45
53
|
});
|
|
46
54
|
};
|
|
@@ -48,11 +56,13 @@ function MutuallyRequired(relatedField, validationOptions) {
|
|
|
48
56
|
let EitherRequiredConstraint = class EitherRequiredConstraint {
|
|
49
57
|
validate(value, args) {
|
|
50
58
|
const dto = args.object;
|
|
51
|
-
const relatedField = args.constraints[0];
|
|
59
|
+
const relatedField = args.constraints[0]; // field name passed in the decorator
|
|
52
60
|
const relatedValue = dto[relatedField];
|
|
53
61
|
if (value || relatedValue) {
|
|
62
|
+
// One has value: validation passes
|
|
54
63
|
return true;
|
|
55
64
|
}
|
|
65
|
+
// Neither has value: validation fails
|
|
56
66
|
return false;
|
|
57
67
|
}
|
|
58
68
|
defaultMessage(args) {
|
|
@@ -66,13 +76,18 @@ exports.EitherRequiredConstraint = EitherRequiredConstraint = __decorate([
|
|
|
66
76
|
async: false
|
|
67
77
|
})
|
|
68
78
|
], EitherRequiredConstraint);
|
|
79
|
+
/**
|
|
80
|
+
* Checks if the two fields are mutually empty or with value.
|
|
81
|
+
*
|
|
82
|
+
* @param relatedField the field name that needs to be checked with the field the decorator has been applied to
|
|
83
|
+
*/
|
|
69
84
|
function EitherRequired(relatedField, validationOptions) {
|
|
70
85
|
return function (object, propertyName) {
|
|
71
86
|
(0, class_validator_1.registerDecorator)({
|
|
72
87
|
target: object.constructor,
|
|
73
88
|
propertyName: propertyName,
|
|
74
89
|
options: validationOptions,
|
|
75
|
-
constraints: [relatedField],
|
|
90
|
+
constraints: [relatedField], // This should be dynamic
|
|
76
91
|
validator: EitherRequiredConstraint
|
|
77
92
|
});
|
|
78
93
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"required.validator.js","sourceRoot":"","sources":["../../src/validators/required.validator.ts"],"names":[],"mappings":";;;;;;;;;AA0CA,4CAaC;AA+BD,wCAaC;AAnGD,qDAMyB;AAMlB,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACtC,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAA6B,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"required.validator.js","sourceRoot":"","sources":["../../src/validators/required.validator.ts"],"names":[],"mappings":";;;;;;;;;AA0CA,4CAaC;AA+BD,wCAaC;AAnGD,qDAMyB;AAMlB,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACtC,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAA6B,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;QAC/E,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,oCAAoC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YAC3B,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,iEAAiE;QACjE,OAAO,KAAK,CAAC;IACd,CAAC;IAED,cAAc,CAAC,IAAyB;QACvC,OAAO,GAAG,IAAI,CAAC,QAAQ,sBAAsB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IAChF,CAAC;CACD,CAAA;AAvBY,gEAA0B;qCAA1B,0BAA0B;IAJtC,IAAA,qCAAmB,EAAC;QACpB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,KAAK;KACZ,CAAC;GACW,0BAA0B,CAuBtC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAC/B,YAAoB,EACpB,iBAAqC;IAErC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,yBAAyB;YACtD,SAAS,EAAE,0BAA0B;SACrC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC;AAMM,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACpC,QAAQ,CAAC,KAAU,EAAE,IAAyB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAA6B,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,qCAAqC;QAC/E,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YAC3B,mCAAmC;YACnC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,sCAAsC;QACtC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,cAAc,CAAC,IAAyB;QACvC,OAAO,GAAG,IAAI,CAAC,QAAQ,uBAAuB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACnF,CAAC;CACD,CAAA;AAlBY,4DAAwB;mCAAxB,wBAAwB;IAJpC,IAAA,qCAAmB,EAAC;QACpB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,KAAK;KACZ,CAAC;GACW,wBAAwB,CAkBpC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAC7B,YAAoB,EACpB,iBAAqC;IAErC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACpD,IAAA,mCAAiB,EAAC;YACjB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,CAAC,YAAY,CAAC,EAAE,yBAAyB;YACtD,SAAS,EAAE,wBAAwB;SACnC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|