@tc-libs/helper 0.4.0 → 0.5.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 +6 -2
- package/src/constants/date.enum.constant.d.ts +26 -0
- package/src/constants/date.enum.constant.js +32 -0
- package/src/constants/date.enum.constant.js.map +1 -0
- package/src/constants/helper.function.constant.d.ts +1 -0
- package/src/constants/helper.function.constant.js +9 -0
- package/src/constants/helper.function.constant.js.map +1 -0
- package/src/constants/index.d.ts +2 -0
- package/src/constants/index.js +6 -0
- package/src/constants/index.js.map +1 -0
- package/src/helper.module.d.ts +6 -0
- package/src/helper.module.js +66 -0
- package/src/helper.module.js.map +1 -0
- package/src/helper.module.options.d.ts +38 -0
- package/src/helper.module.options.js +5 -0
- package/src/helper.module.options.js.map +1 -0
- package/src/index.d.ts +4 -2
- package/src/index.js +4 -2
- package/src/index.js.map +1 -1
- package/src/interfaces/date.interface.d.ts +34 -0
- package/src/{lib/interface/helper.option.interface.js → interfaces/date.interface.js} +1 -1
- package/src/interfaces/date.interface.js.map +1 -0
- package/src/interfaces/date.service.interface.d.ts +30 -0
- package/src/interfaces/date.service.interface.js +3 -0
- package/src/interfaces/date.service.interface.js.map +1 -0
- package/src/interfaces/encryption.interface.d.ts +10 -0
- package/src/interfaces/encryption.interface.js +3 -0
- package/src/interfaces/encryption.interface.js.map +1 -0
- package/src/interfaces/geo-service.interface.d.ts +10 -0
- package/src/interfaces/geo-service.interface.js +3 -0
- package/src/interfaces/geo-service.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +7 -0
- package/src/interfaces/index.js +11 -0
- package/src/interfaces/index.js.map +1 -0
- package/src/interfaces/number.interface.d.ts +7 -0
- package/src/interfaces/number.interface.js +3 -0
- package/src/interfaces/number.interface.js.map +1 -0
- package/src/interfaces/string.interface.options.d.ts +5 -0
- package/src/interfaces/string.interface.options.js +3 -0
- package/src/interfaces/string.interface.options.js.map +1 -0
- package/src/interfaces/string.interface.service.d.ts +11 -0
- package/src/interfaces/string.interface.service.js +3 -0
- package/src/interfaces/string.interface.service.js.map +1 -0
- package/src/interfaces/token.interface.d.ts +7 -0
- package/src/interfaces/token.interface.js +3 -0
- package/src/interfaces/token.interface.js.map +1 -0
- package/src/services/helper.date.service.d.ts +32 -0
- package/src/services/helper.date.service.js +169 -0
- package/src/services/helper.date.service.js.map +1 -0
- package/src/services/helper.encryption.service.d.ts +14 -0
- package/src/services/helper.encryption.service.js +74 -0
- package/src/services/helper.encryption.service.js.map +1 -0
- package/src/services/helper.geo.service.d.ts +4 -0
- package/src/services/helper.geo.service.js +16 -0
- package/src/services/helper.geo.service.js.map +1 -0
- package/src/services/helper.hash.service.d.ts +4 -0
- package/src/services/helper.hash.service.js +19 -0
- package/src/services/helper.hash.service.js.map +1 -0
- package/src/services/helper.number.service.d.ts +9 -0
- package/src/services/helper.number.service.js +39 -0
- package/src/services/helper.number.service.js.map +1 -0
- package/src/services/helper.password.service.d.ts +4 -0
- package/src/services/helper.password.service.js +19 -0
- package/src/services/helper.password.service.js.map +1 -0
- package/src/services/helper.string.service.d.ts +15 -0
- package/src/services/helper.string.service.js +74 -0
- package/src/services/helper.string.service.js.map +1 -0
- package/src/services/helper.token.service.d.ts +46 -0
- package/src/services/helper.token.service.js +150 -0
- package/src/services/helper.token.service.js.map +1 -0
- package/src/services/index.d.ts +8 -0
- package/src/services/index.js +12 -0
- package/src/services/index.js.map +1 -0
- package/src/lib/helper.module.d.ts +0 -5
- package/src/lib/helper.module.js +0 -27
- package/src/lib/helper.module.js.map +0 -1
- package/src/lib/helper.service.d.ts +0 -3
- package/src/lib/helper.service.js +0 -16
- package/src/lib/helper.service.js.map +0 -1
- package/src/lib/interface/helper.option.interface.d.ts +0 -3
- package/src/lib/interface/helper.option.interface.js.map +0 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const moment_1 = tslib_1.__importDefault(require("moment"));
|
|
7
|
+
const date_enum_constant_1 = require("../constants/date.enum.constant");
|
|
8
|
+
let DateService = class DateService {
|
|
9
|
+
calculateAge(dateOfBirth) {
|
|
10
|
+
return (0, moment_1.default)().diff(dateOfBirth, 'years');
|
|
11
|
+
}
|
|
12
|
+
diff(dateOne, dateTwoMoreThanDateOne, options) {
|
|
13
|
+
const mDateOne = (0, moment_1.default)(dateOne);
|
|
14
|
+
const mDateTwo = (0, moment_1.default)(dateTwoMoreThanDateOne);
|
|
15
|
+
const diff = moment_1.default.duration(mDateTwo.diff(mDateOne));
|
|
16
|
+
if (options?.format === date_enum_constant_1.ENUM_DATE_DIFF.MILIS) {
|
|
17
|
+
return diff.asMilliseconds();
|
|
18
|
+
}
|
|
19
|
+
else if (options?.format === date_enum_constant_1.ENUM_DATE_DIFF.SECONDS) {
|
|
20
|
+
return diff.asSeconds();
|
|
21
|
+
}
|
|
22
|
+
else if (options?.format === date_enum_constant_1.ENUM_DATE_DIFF.HOURS) {
|
|
23
|
+
return diff.asHours();
|
|
24
|
+
}
|
|
25
|
+
else if (options?.format === date_enum_constant_1.ENUM_DATE_DIFF.MINUTES) {
|
|
26
|
+
return diff.asMinutes();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return diff.asDays();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
check(date) {
|
|
33
|
+
return (0, moment_1.default)(date, true).isValid();
|
|
34
|
+
}
|
|
35
|
+
checkTimestamp(timestamp) {
|
|
36
|
+
return (0, moment_1.default)(timestamp, true).isValid();
|
|
37
|
+
}
|
|
38
|
+
create(date, options) {
|
|
39
|
+
const mDate = (0, moment_1.default)(date ?? undefined);
|
|
40
|
+
if (options?.startOfDay) {
|
|
41
|
+
mDate.startOf('day');
|
|
42
|
+
}
|
|
43
|
+
return mDate.toDate();
|
|
44
|
+
}
|
|
45
|
+
timestamp(date, options) {
|
|
46
|
+
const mDate = (0, moment_1.default)(date ?? undefined);
|
|
47
|
+
if (options?.startOfDay) {
|
|
48
|
+
mDate.startOf('day');
|
|
49
|
+
}
|
|
50
|
+
return mDate.valueOf();
|
|
51
|
+
}
|
|
52
|
+
format(date, options) {
|
|
53
|
+
const m = (0, moment_1.default)(date);
|
|
54
|
+
const format = options?.format ?? date_enum_constant_1.ENUM_DATE_FORMAT.DATE;
|
|
55
|
+
if (options?.lang)
|
|
56
|
+
m.locale(options.lang);
|
|
57
|
+
return m.format(format);
|
|
58
|
+
}
|
|
59
|
+
forwardInMilliseconds(milliseconds, options) {
|
|
60
|
+
return (0, moment_1.default)(options?.fromDate).add(milliseconds, 'ms').toDate();
|
|
61
|
+
}
|
|
62
|
+
backwardInMilliseconds(milliseconds, options) {
|
|
63
|
+
return (0, moment_1.default)(options?.fromDate).subtract(milliseconds, 'ms').toDate();
|
|
64
|
+
}
|
|
65
|
+
forwardInSeconds(seconds, options) {
|
|
66
|
+
return (0, moment_1.default)(options?.fromDate).add(seconds, 's').toDate();
|
|
67
|
+
}
|
|
68
|
+
backwardInSeconds(seconds, options) {
|
|
69
|
+
return (0, moment_1.default)(options?.fromDate).subtract(seconds, 's').toDate();
|
|
70
|
+
}
|
|
71
|
+
forwardInMinutes(minutes, options) {
|
|
72
|
+
return (0, moment_1.default)(options?.fromDate).add(minutes, 'm').toDate();
|
|
73
|
+
}
|
|
74
|
+
backwardInMinutes(minutes, options) {
|
|
75
|
+
return (0, moment_1.default)(options?.fromDate).subtract(minutes, 'm').toDate();
|
|
76
|
+
}
|
|
77
|
+
forwardInHours(hours, options) {
|
|
78
|
+
return (0, moment_1.default)(options?.fromDate).add(hours, 'h').toDate();
|
|
79
|
+
}
|
|
80
|
+
backwardInHours(hours, options) {
|
|
81
|
+
return (0, moment_1.default)(options?.fromDate).subtract(hours, 'h').toDate();
|
|
82
|
+
}
|
|
83
|
+
forwardInDays(days, options) {
|
|
84
|
+
return (0, moment_1.default)(options?.fromDate).add(days, 'd').toDate();
|
|
85
|
+
}
|
|
86
|
+
backwardInDays(days, options) {
|
|
87
|
+
return (0, moment_1.default)(options?.fromDate).subtract(days, 'd').toDate();
|
|
88
|
+
}
|
|
89
|
+
forwardInMonths(months, options) {
|
|
90
|
+
return (0, moment_1.default)(options?.fromDate).add(months, 'M').toDate();
|
|
91
|
+
}
|
|
92
|
+
backwardInMonths(months, options) {
|
|
93
|
+
return (0, moment_1.default)(options?.fromDate).subtract(months, 'M').toDate();
|
|
94
|
+
}
|
|
95
|
+
endOfMonth(date) {
|
|
96
|
+
return (0, moment_1.default)(date).endOf('month').toDate();
|
|
97
|
+
}
|
|
98
|
+
startOfMonth(date) {
|
|
99
|
+
return (0, moment_1.default)(date).startOf('month').toDate();
|
|
100
|
+
}
|
|
101
|
+
endOfYear(date) {
|
|
102
|
+
return (0, moment_1.default)(date).endOf('year').toDate();
|
|
103
|
+
}
|
|
104
|
+
startOfYear(date) {
|
|
105
|
+
return (0, moment_1.default)(date).startOf('year').toDate();
|
|
106
|
+
}
|
|
107
|
+
endOfDay(date) {
|
|
108
|
+
return (0, moment_1.default)(date).endOf('day').toDate();
|
|
109
|
+
}
|
|
110
|
+
startOfDay(date) {
|
|
111
|
+
return (0, moment_1.default)(date).startOf('day').toDate();
|
|
112
|
+
}
|
|
113
|
+
extractDate(date) {
|
|
114
|
+
const newDate = this.create(date);
|
|
115
|
+
const day = this.format(newDate, {
|
|
116
|
+
format: date_enum_constant_1.ENUM_DATE_FORMAT.ONLY_DATE,
|
|
117
|
+
});
|
|
118
|
+
const month = this.format(newDate, {
|
|
119
|
+
format: date_enum_constant_1.ENUM_DATE_FORMAT.ONLY_MONTH,
|
|
120
|
+
});
|
|
121
|
+
const year = this.format(newDate, {
|
|
122
|
+
format: date_enum_constant_1.ENUM_DATE_FORMAT.ONLY_YEAR,
|
|
123
|
+
});
|
|
124
|
+
return {
|
|
125
|
+
date: newDate,
|
|
126
|
+
day,
|
|
127
|
+
month,
|
|
128
|
+
year,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
roundDown(date, options) {
|
|
132
|
+
const mDate = (0, moment_1.default)(date).set({ millisecond: 0 });
|
|
133
|
+
if (options?.hour) {
|
|
134
|
+
mDate.set({ hour: 0 });
|
|
135
|
+
}
|
|
136
|
+
if (options?.minute) {
|
|
137
|
+
mDate.set({ minute: 0 });
|
|
138
|
+
}
|
|
139
|
+
if (options?.second) {
|
|
140
|
+
mDate.set({ second: 0 });
|
|
141
|
+
}
|
|
142
|
+
return mDate.toDate();
|
|
143
|
+
}
|
|
144
|
+
getStartAndEndDate(options) {
|
|
145
|
+
const today = (0, moment_1.default)();
|
|
146
|
+
const todayMonth = today.format(date_enum_constant_1.ENUM_DATE_FORMAT.ONLY_MONTH);
|
|
147
|
+
const todayYear = today.format(date_enum_constant_1.ENUM_DATE_FORMAT.ONLY_YEAR);
|
|
148
|
+
// set month and year
|
|
149
|
+
const year = options?.year ?? todayYear;
|
|
150
|
+
const month = options?.month ?? todayMonth;
|
|
151
|
+
const date = (0, moment_1.default)(`${year}-${month}-02`, 'YYYY-MM-DD');
|
|
152
|
+
let startDate = date.startOf('year').toDate();
|
|
153
|
+
let endDate = date.endOf('year').toDate();
|
|
154
|
+
if (options?.month) {
|
|
155
|
+
const date = (0, moment_1.default)(`${year}-${month}-02`, 'YYYY-MM-DD');
|
|
156
|
+
startDate = date.startOf('month').toDate();
|
|
157
|
+
endDate = date.endOf('month').toDate();
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
startDate,
|
|
161
|
+
endDate,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
exports.DateService = DateService;
|
|
166
|
+
exports.DateService = DateService = tslib_1.__decorate([
|
|
167
|
+
(0, common_1.Injectable)()
|
|
168
|
+
], DateService);
|
|
169
|
+
//# sourceMappingURL=helper.date.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.date.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.date.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { JwtService } from '@nestjs/jwt';
|
|
2
|
+
import { IJwtOptions, IJwtVerifyOptions } from '../interfaces';
|
|
3
|
+
export declare class EncryptionService {
|
|
4
|
+
private readonly jwtService;
|
|
5
|
+
constructor(jwtService: JwtService);
|
|
6
|
+
base64Encrypt(data: string): string;
|
|
7
|
+
base64Decrypt(data: string): string;
|
|
8
|
+
base64Compare(clientBasicToken: string, ourBasicToken: string): boolean;
|
|
9
|
+
aes256Encrypt(data: string | Record<string, any> | Record<string, any>[], key: string, iv: string): string;
|
|
10
|
+
aes256Decrypt(encrypted: string, key: string, iv: string): string | Record<string, any> | Record<string, any>[];
|
|
11
|
+
jwtEncrypt(payload: Record<string, any>, options: IJwtOptions): string;
|
|
12
|
+
jwtDecrypt(token: string): Record<string, any>;
|
|
13
|
+
jwtVerify(token: string, options: IJwtVerifyOptions): boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EncryptionService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
7
|
+
const crypto_js_1 = require("crypto-js");
|
|
8
|
+
let EncryptionService = class EncryptionService {
|
|
9
|
+
constructor(jwtService) {
|
|
10
|
+
this.jwtService = jwtService;
|
|
11
|
+
}
|
|
12
|
+
base64Encrypt(data) {
|
|
13
|
+
const buff = Buffer.from(data, 'utf8');
|
|
14
|
+
return buff.toString('base64');
|
|
15
|
+
}
|
|
16
|
+
base64Decrypt(data) {
|
|
17
|
+
const buff = Buffer.from(data, 'base64');
|
|
18
|
+
return buff.toString('utf8');
|
|
19
|
+
}
|
|
20
|
+
base64Compare(clientBasicToken, ourBasicToken) {
|
|
21
|
+
return ourBasicToken === clientBasicToken;
|
|
22
|
+
}
|
|
23
|
+
aes256Encrypt(data, key, iv) {
|
|
24
|
+
const cIv = crypto_js_1.enc.Utf8.parse(iv);
|
|
25
|
+
const cipher = crypto_js_1.AES.encrypt(JSON.stringify(data), key, {
|
|
26
|
+
mode: crypto_js_1.mode.CBC,
|
|
27
|
+
padding: crypto_js_1.pad.Pkcs7,
|
|
28
|
+
iv: cIv,
|
|
29
|
+
});
|
|
30
|
+
return cipher.toString();
|
|
31
|
+
}
|
|
32
|
+
aes256Decrypt(encrypted, key, iv) {
|
|
33
|
+
const cIv = crypto_js_1.enc.Utf8.parse(iv);
|
|
34
|
+
const cipher = crypto_js_1.AES.decrypt(encrypted, key, {
|
|
35
|
+
mode: crypto_js_1.mode.CBC,
|
|
36
|
+
padding: crypto_js_1.pad.Pkcs7,
|
|
37
|
+
iv: cIv,
|
|
38
|
+
});
|
|
39
|
+
return JSON.parse(cipher.toString(crypto_js_1.enc.Utf8));
|
|
40
|
+
}
|
|
41
|
+
jwtEncrypt(payload, options) {
|
|
42
|
+
return this.jwtService.sign(payload, {
|
|
43
|
+
secret: options.secretKey,
|
|
44
|
+
expiresIn: options.expiredIn,
|
|
45
|
+
notBefore: options.notBefore ?? 0,
|
|
46
|
+
audience: options.audience,
|
|
47
|
+
issuer: options.issuer,
|
|
48
|
+
subject: options.subject,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
jwtDecrypt(token) {
|
|
52
|
+
return this.jwtService.decode(token);
|
|
53
|
+
}
|
|
54
|
+
jwtVerify(token, options) {
|
|
55
|
+
try {
|
|
56
|
+
this.jwtService.verify(token, {
|
|
57
|
+
secret: options.secretKey,
|
|
58
|
+
audience: options.audience,
|
|
59
|
+
issuer: options.issuer,
|
|
60
|
+
subject: options.subject,
|
|
61
|
+
});
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.EncryptionService = EncryptionService;
|
|
70
|
+
exports.EncryptionService = EncryptionService = tslib_1.__decorate([
|
|
71
|
+
(0, common_1.Injectable)(),
|
|
72
|
+
tslib_1.__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
73
|
+
], EncryptionService);
|
|
74
|
+
//# sourceMappingURL=helper.encryption.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.encryption.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.encryption.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAE5C,qCAAyC;AACzC,yCAAgD;AAIzC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAEvD,aAAa,CAAC,IAAY;QACxB,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,gBAAwB,EAAE,aAAqB;QAC3D,OAAO,aAAa,KAAK,gBAAgB,CAAC;IAC5C,CAAC;IAED,aAAa,CACX,IAA0D,EAC1D,GAAW,EACX,EAAU;QAEV,MAAM,GAAG,GAAG,eAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;YACpD,IAAI,EAAE,gBAAI,CAAC,GAAG;YACd,OAAO,EAAE,eAAG,CAAC,KAAK;YAClB,EAAE,EAAE,GAAG;SACR,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CACX,SAAiB,EACjB,GAAW,EACX,EAAU;QAEV,MAAM,GAAG,GAAG,eAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE;YACzC,IAAI,EAAE,gBAAI,CAAC,GAAG;YACd,OAAO,EAAE,eAAG,CAAC,KAAK;YAClB,EAAE,EAAE,GAAG;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,OAA4B,EAAE,OAAoB;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;YACnC,MAAM,EAAE,OAAO,CAAC,SAAS;YACzB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;YACjC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAwB,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,OAA0B;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5B,MAAM,EAAE,OAAO,CAAC,SAAS;gBACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AA1EY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;6CAE8B,gBAAU;GADxC,iBAAiB,CA0E7B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeoService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const geolib_1 = require("geolib");
|
|
7
|
+
let GeoService = class GeoService {
|
|
8
|
+
inRadius(geoRule, geoCurrent) {
|
|
9
|
+
return (0, geolib_1.isPointWithinRadius)({ latitude: geoRule.latitude, longitude: geoRule.longitude }, geoCurrent, geoRule.radiusInMeters);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
exports.GeoService = GeoService;
|
|
13
|
+
exports.GeoService = GeoService = tslib_1.__decorate([
|
|
14
|
+
(0, common_1.Injectable)()
|
|
15
|
+
], GeoService);
|
|
16
|
+
//# sourceMappingURL=helper.geo.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.geo.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.geo.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,mCAA6C;AAQtC,IAAM,UAAU,GAAhB,MAAM,UAAU;IACrB,QAAQ,CAAC,OAAkB,EAAE,UAAqB;QAChD,OAAO,IAAA,4BAAmB,EACxB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,EAC5D,UAAU,EACV,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;CACF,CAAA;AARY,gCAAU;qBAAV,UAAU;IADtB,IAAA,mBAAU,GAAE;GACA,UAAU,CAQtB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HashService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const crypto_js_1 = require("crypto-js");
|
|
7
|
+
let HashService = class HashService {
|
|
8
|
+
sha1Base64(string) {
|
|
9
|
+
return (0, crypto_js_1.SHA1)(string).toString(crypto_js_1.enc.Base64);
|
|
10
|
+
}
|
|
11
|
+
sha256(string) {
|
|
12
|
+
return (0, crypto_js_1.SHA256)(string).toString(crypto_js_1.enc.Hex);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.HashService = HashService;
|
|
16
|
+
exports.HashService = HashService = tslib_1.__decorate([
|
|
17
|
+
(0, common_1.Injectable)()
|
|
18
|
+
], HashService);
|
|
19
|
+
//# sourceMappingURL=helper.hash.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.hash.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.hash.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,yCAA8C;AAGvC,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,UAAU,CAAC,MAAc;QACvB,OAAO,IAAA,gBAAI,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AARY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;GACA,WAAW,CAQvB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { INumberService } from '../interfaces';
|
|
2
|
+
export declare class NumberService implements INumberService {
|
|
3
|
+
checkDiscrete(number: string): boolean;
|
|
4
|
+
checkReal(number: string): boolean;
|
|
5
|
+
create(number: string): number;
|
|
6
|
+
random(length: number): number;
|
|
7
|
+
randomInRange(min: number, max: number): number;
|
|
8
|
+
percent(value: number, total: number): number;
|
|
9
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NumberService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const faker_1 = require("@faker-js/faker");
|
|
7
|
+
let NumberService = class NumberService {
|
|
8
|
+
checkDiscrete(number) {
|
|
9
|
+
const regex = /^-?\d+$/;
|
|
10
|
+
return regex.test(number);
|
|
11
|
+
}
|
|
12
|
+
checkReal(number) {
|
|
13
|
+
const regex = /^-?\d+(\.\d+)?$/;
|
|
14
|
+
return regex.test(number);
|
|
15
|
+
}
|
|
16
|
+
create(number) {
|
|
17
|
+
return Number(number);
|
|
18
|
+
}
|
|
19
|
+
random(length) {
|
|
20
|
+
const min = Number.parseInt(`1`.padEnd(length, '0'));
|
|
21
|
+
const max = Number.parseInt(`9`.padEnd(length, '9'));
|
|
22
|
+
return this.randomInRange(min, max);
|
|
23
|
+
}
|
|
24
|
+
randomInRange(min, max) {
|
|
25
|
+
return faker_1.faker.number.int({ min, max });
|
|
26
|
+
}
|
|
27
|
+
percent(value, total) {
|
|
28
|
+
let tValue = value / total;
|
|
29
|
+
if (Number.isNaN(tValue) || !Number.isFinite(tValue)) {
|
|
30
|
+
tValue = 0;
|
|
31
|
+
}
|
|
32
|
+
return Number.parseFloat((tValue * 100).toFixed(2));
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.NumberService = NumberService;
|
|
36
|
+
exports.NumberService = NumberService = tslib_1.__decorate([
|
|
37
|
+
(0, common_1.Injectable)()
|
|
38
|
+
], NumberService);
|
|
39
|
+
//# sourceMappingURL=helper.number.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.number.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.number.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,2CAAwC;AAIjC,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,aAAa,CAAC,MAAc;QAC1B,MAAM,KAAK,GAAG,SAAS,CAAC;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAChC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,MAAM,GAAG,GAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,GAAW;QACpC,OAAO,aAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,KAAa,EAAE,KAAa;QAClC,IAAI,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AAhCY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;GACA,aAAa,CAgCzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PasswordService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const bcrypt_1 = require("bcrypt");
|
|
7
|
+
let PasswordService = class PasswordService {
|
|
8
|
+
hashPassword(plainTextPassword) {
|
|
9
|
+
return (0, bcrypt_1.hash)(plainTextPassword, 10);
|
|
10
|
+
}
|
|
11
|
+
compare(plainTextPassword, hashedPassword) {
|
|
12
|
+
return (0, bcrypt_1.compare)(plainTextPassword, hashedPassword);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.PasswordService = PasswordService;
|
|
16
|
+
exports.PasswordService = PasswordService = tslib_1.__decorate([
|
|
17
|
+
(0, common_1.Injectable)()
|
|
18
|
+
], PasswordService);
|
|
19
|
+
//# sourceMappingURL=helper.password.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.password.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.password.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,mCAAuC;AAGhC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAY,CAAC,iBAAyB;QACpC,OAAO,IAAA,aAAI,EAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,iBAAyB,EAAE,cAAsB;QACvD,OAAO,IAAA,gBAAO,EAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC;CACF,CAAA;AAPY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;GACA,eAAe,CAO3B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IStringRandomOptions } from '../interfaces';
|
|
2
|
+
import { IStringService } from '../interfaces';
|
|
3
|
+
import { DateService } from './helper.date.service';
|
|
4
|
+
export declare class StringService implements IStringService {
|
|
5
|
+
private readonly _date;
|
|
6
|
+
constructor(_date: DateService);
|
|
7
|
+
checkEmail(email: string): boolean;
|
|
8
|
+
randomReference(length: number, prefix?: string): string;
|
|
9
|
+
random(length: number, options?: IStringRandomOptions): string;
|
|
10
|
+
censor(value: string): string;
|
|
11
|
+
checkPasswordWeak(password: string, length?: number): boolean;
|
|
12
|
+
checkPasswordMedium(password: string, length?: number): boolean;
|
|
13
|
+
checkPasswordStrong(password: string, length?: number): boolean;
|
|
14
|
+
checkSafeString(text: string): boolean;
|
|
15
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const faker_1 = require("@faker-js/faker");
|
|
7
|
+
const helper_date_service_1 = require("./helper.date.service");
|
|
8
|
+
let StringService = class StringService {
|
|
9
|
+
constructor(_date) {
|
|
10
|
+
this._date = _date;
|
|
11
|
+
}
|
|
12
|
+
checkEmail(email) {
|
|
13
|
+
const regex = /\S+@\S+\.\S+/;
|
|
14
|
+
return regex.test(email);
|
|
15
|
+
}
|
|
16
|
+
randomReference(length, prefix) {
|
|
17
|
+
const timestamp = `${this._date.timestamp()}`;
|
|
18
|
+
const randomString = this.random(length, {
|
|
19
|
+
safe: true,
|
|
20
|
+
upperCase: true,
|
|
21
|
+
});
|
|
22
|
+
return prefix
|
|
23
|
+
? `${prefix}-${timestamp}${randomString}`
|
|
24
|
+
: `${timestamp}${randomString}`;
|
|
25
|
+
}
|
|
26
|
+
random(length, options) {
|
|
27
|
+
const rString = options?.safe
|
|
28
|
+
? faker_1.faker.internet.password({
|
|
29
|
+
length,
|
|
30
|
+
memorable: true,
|
|
31
|
+
pattern: /[A-Z]/,
|
|
32
|
+
prefix: options?.prefix,
|
|
33
|
+
})
|
|
34
|
+
: faker_1.faker.internet.password({
|
|
35
|
+
length,
|
|
36
|
+
memorable: false,
|
|
37
|
+
pattern: /\w/,
|
|
38
|
+
prefix: options?.prefix,
|
|
39
|
+
});
|
|
40
|
+
return options?.upperCase ? rString.toUpperCase() : rString;
|
|
41
|
+
}
|
|
42
|
+
censor(value) {
|
|
43
|
+
const length = value.length;
|
|
44
|
+
if (length === 1) {
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
const end = length > 4 ? length - 4 : 1;
|
|
48
|
+
const censorString = '*'.repeat(end > 10 ? 10 : end);
|
|
49
|
+
const visibleString = value.substring(end, length);
|
|
50
|
+
return `${censorString}${visibleString}`;
|
|
51
|
+
}
|
|
52
|
+
checkPasswordWeak(password, length) {
|
|
53
|
+
const regex = new RegExp(`^(?=.*?[A-Z])(?=.*?[a-z]).{${length ?? 8},}$`);
|
|
54
|
+
return regex.test(password);
|
|
55
|
+
}
|
|
56
|
+
checkPasswordMedium(password, length) {
|
|
57
|
+
const regex = new RegExp(`^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{${length ?? 8},}$`);
|
|
58
|
+
return regex.test(password);
|
|
59
|
+
}
|
|
60
|
+
checkPasswordStrong(password, length) {
|
|
61
|
+
const regex = new RegExp(`^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{${length ?? 8},}$`);
|
|
62
|
+
return regex.test(password);
|
|
63
|
+
}
|
|
64
|
+
checkSafeString(text) {
|
|
65
|
+
const regex = new RegExp('^[A-Za-z0-9_-]+$');
|
|
66
|
+
return regex.test(text);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.StringService = StringService;
|
|
70
|
+
exports.StringService = StringService = tslib_1.__decorate([
|
|
71
|
+
(0, common_1.Injectable)(),
|
|
72
|
+
tslib_1.__metadata("design:paramtypes", [helper_date_service_1.DateService])
|
|
73
|
+
], StringService);
|
|
74
|
+
//# sourceMappingURL=helper.string.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.string.service.js","sourceRoot":"","sources":["../../../../../packages/helper/src/services/helper.string.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { IRefreshTokenOptions, ITokenPayloadOptions } from '../interfaces';
|
|
2
|
+
import { DateService } from './helper.date.service';
|
|
3
|
+
import { EncryptionService } from './helper.encryption.service';
|
|
4
|
+
import { HelperOptions } from '../helper.module.options';
|
|
5
|
+
export declare class TokenService {
|
|
6
|
+
private readonly _encryption;
|
|
7
|
+
private readonly _date;
|
|
8
|
+
private readonly _options;
|
|
9
|
+
private readonly accessTokenSecretKey;
|
|
10
|
+
private readonly accessTokenExpirationTime;
|
|
11
|
+
private readonly accessTokenNotBeforeExpirationTime;
|
|
12
|
+
private readonly accessTokenEncryptKey;
|
|
13
|
+
private readonly accessTokenEncryptIv;
|
|
14
|
+
private readonly refreshTokenEncryptKey;
|
|
15
|
+
private readonly refreshTokenEncryptIv;
|
|
16
|
+
private readonly refreshTokenSecretKey;
|
|
17
|
+
private readonly refreshTokenExpirationTime;
|
|
18
|
+
private readonly refreshTokenExpirationTimeRememberMe;
|
|
19
|
+
private readonly refreshTokenNotBeforeExpirationTime;
|
|
20
|
+
private readonly permissionTokenNotBeforeExpirationTime;
|
|
21
|
+
private readonly permissionTokenEncryptKey;
|
|
22
|
+
private readonly permissionTokenEncryptIv;
|
|
23
|
+
private readonly permissionTokenSecretToken;
|
|
24
|
+
private readonly permissionTokenExpirationTime;
|
|
25
|
+
private readonly audience;
|
|
26
|
+
private readonly issuer;
|
|
27
|
+
private readonly subject;
|
|
28
|
+
constructor(_encryption: EncryptionService, _date: DateService, _options: HelperOptions);
|
|
29
|
+
createAccessToken(payloadHashed: string | Record<string, any>): string;
|
|
30
|
+
createRefreshToken(payloadHashed: string | Record<string, any>, options?: IRefreshTokenOptions): string;
|
|
31
|
+
createPayloadAccessToken(data: Record<string, any>, rememberMe: boolean, options?: ITokenPayloadOptions): Record<string, any>;
|
|
32
|
+
createPayloadRefreshToken(_id: string, rememberMe: boolean, options?: ITokenPayloadOptions): Record<string, any>;
|
|
33
|
+
encryptAccessToken(payload: Record<string, any>): Promise<string>;
|
|
34
|
+
decryptAccessToken({ data, }: Record<string, any>): Promise<Record<string, any>>;
|
|
35
|
+
encryptRefreshToken(payload: Record<string, any>): Promise<string>;
|
|
36
|
+
decryptRefreshToken({ data, }: Record<string, any>): Promise<Record<string, any>>;
|
|
37
|
+
validateAccessToken(token: string): boolean;
|
|
38
|
+
payloadAccessToken(token: string): Record<string, any>;
|
|
39
|
+
validateRefreshToken(token: string): boolean;
|
|
40
|
+
payloadRefreshToken(token: string): Record<string, any>;
|
|
41
|
+
encryptPermissionToken(payload: Record<string, any>): Promise<string>;
|
|
42
|
+
decryptPermissionToken({ data, }: Record<string, any>): Promise<Record<string, any>>;
|
|
43
|
+
createPermissionToken(payloadHashed: string | Record<string, any>): string;
|
|
44
|
+
validatePermissionToken(token: string): boolean;
|
|
45
|
+
payloadPermissionToken(token: string): Record<string, any>;
|
|
46
|
+
}
|