@tc-libs/helper 0.3.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.
Files changed (81) hide show
  1. package/package.json +7 -2
  2. package/src/constants/date.enum.constant.d.ts +26 -0
  3. package/src/constants/date.enum.constant.js +32 -0
  4. package/src/constants/date.enum.constant.js.map +1 -0
  5. package/src/constants/helper.function.constant.d.ts +1 -0
  6. package/src/constants/helper.function.constant.js +9 -0
  7. package/src/constants/helper.function.constant.js.map +1 -0
  8. package/src/constants/index.d.ts +2 -0
  9. package/src/constants/index.js +6 -0
  10. package/src/constants/index.js.map +1 -0
  11. package/src/helper.module.d.ts +6 -0
  12. package/src/helper.module.js +66 -0
  13. package/src/helper.module.js.map +1 -0
  14. package/src/helper.module.options.d.ts +38 -0
  15. package/src/helper.module.options.js +5 -0
  16. package/src/helper.module.options.js.map +1 -0
  17. package/src/index.d.ts +4 -2
  18. package/src/index.js +4 -2
  19. package/src/index.js.map +1 -1
  20. package/src/interfaces/date.interface.d.ts +34 -0
  21. package/src/{lib/interface/helper.option.interface.js → interfaces/date.interface.js} +1 -1
  22. package/src/interfaces/date.interface.js.map +1 -0
  23. package/src/interfaces/date.service.interface.d.ts +30 -0
  24. package/src/interfaces/date.service.interface.js +3 -0
  25. package/src/interfaces/date.service.interface.js.map +1 -0
  26. package/src/interfaces/encryption.interface.d.ts +10 -0
  27. package/src/interfaces/encryption.interface.js +3 -0
  28. package/src/interfaces/encryption.interface.js.map +1 -0
  29. package/src/interfaces/geo-service.interface.d.ts +10 -0
  30. package/src/interfaces/geo-service.interface.js +3 -0
  31. package/src/interfaces/geo-service.interface.js.map +1 -0
  32. package/src/interfaces/index.d.ts +7 -0
  33. package/src/interfaces/index.js +11 -0
  34. package/src/interfaces/index.js.map +1 -0
  35. package/src/interfaces/number.interface.d.ts +7 -0
  36. package/src/interfaces/number.interface.js +3 -0
  37. package/src/interfaces/number.interface.js.map +1 -0
  38. package/src/interfaces/string.interface.options.d.ts +5 -0
  39. package/src/interfaces/string.interface.options.js +3 -0
  40. package/src/interfaces/string.interface.options.js.map +1 -0
  41. package/src/interfaces/string.interface.service.d.ts +11 -0
  42. package/src/interfaces/string.interface.service.js +3 -0
  43. package/src/interfaces/string.interface.service.js.map +1 -0
  44. package/src/interfaces/token.interface.d.ts +7 -0
  45. package/src/interfaces/token.interface.js +3 -0
  46. package/src/interfaces/token.interface.js.map +1 -0
  47. package/src/services/helper.date.service.d.ts +32 -0
  48. package/src/services/helper.date.service.js +169 -0
  49. package/src/services/helper.date.service.js.map +1 -0
  50. package/src/services/helper.encryption.service.d.ts +14 -0
  51. package/src/services/helper.encryption.service.js +74 -0
  52. package/src/services/helper.encryption.service.js.map +1 -0
  53. package/src/services/helper.geo.service.d.ts +4 -0
  54. package/src/services/helper.geo.service.js +16 -0
  55. package/src/services/helper.geo.service.js.map +1 -0
  56. package/src/services/helper.hash.service.d.ts +4 -0
  57. package/src/services/helper.hash.service.js +19 -0
  58. package/src/services/helper.hash.service.js.map +1 -0
  59. package/src/services/helper.number.service.d.ts +9 -0
  60. package/src/services/helper.number.service.js +39 -0
  61. package/src/services/helper.number.service.js.map +1 -0
  62. package/src/services/helper.password.service.d.ts +4 -0
  63. package/src/services/helper.password.service.js +19 -0
  64. package/src/services/helper.password.service.js.map +1 -0
  65. package/src/services/helper.string.service.d.ts +15 -0
  66. package/src/services/helper.string.service.js +74 -0
  67. package/src/services/helper.string.service.js.map +1 -0
  68. package/src/services/helper.token.service.d.ts +46 -0
  69. package/src/services/helper.token.service.js +150 -0
  70. package/src/services/helper.token.service.js.map +1 -0
  71. package/src/services/index.d.ts +8 -0
  72. package/src/services/index.js +12 -0
  73. package/src/services/index.js.map +1 -0
  74. package/src/lib/helper.module.d.ts +0 -5
  75. package/src/lib/helper.module.js +0 -27
  76. package/src/lib/helper.module.js.map +0 -1
  77. package/src/lib/helper.service.d.ts +0 -3
  78. package/src/lib/helper.service.js +0 -16
  79. package/src/lib/helper.service.js.map +0 -1
  80. package/src/lib/interface/helper.option.interface.d.ts +0 -3
  81. 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,4 @@
1
+ import { IGeoRules, IGeoPoint, IGeoService } from '../interfaces/geo-service.interface';
2
+ export declare class GeoService implements IGeoService {
3
+ inRadius(geoRule: IGeoRules, geoCurrent: IGeoPoint): boolean;
4
+ }
@@ -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,4 @@
1
+ export declare class HashService {
2
+ sha1Base64(string: string): string;
3
+ sha256(string: string): string;
4
+ }
@@ -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,4 @@
1
+ export declare class PasswordService {
2
+ hashPassword(plainTextPassword: string): Promise<string>;
3
+ compare(plainTextPassword: string, hashedPassword: string): Promise<boolean>;
4
+ }
@@ -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
+ }