@triproject/nestjs-core 1.0.5 → 1.0.13

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 (55) hide show
  1. package/.swcrc +24 -0
  2. package/README.md +297 -38
  3. package/dist/bootstrap.js +1 -43
  4. package/dist/config.js +1 -50
  5. package/dist/controllers/controller.js +1 -56
  6. package/dist/drivers/cache/cache.d.ts +1 -1
  7. package/dist/drivers/cache/cache.driver.js +1 -22
  8. package/dist/drivers/cache/cache.js +1 -92
  9. package/dist/drivers/cache/index.js +1 -19
  10. package/dist/drivers/cache/redis.js +1 -52
  11. package/dist/drivers/db/db.helper.js +1 -217
  12. package/dist/drivers/db/db.module.js +1 -44
  13. package/dist/drivers/db/db.service.js +1 -49
  14. package/dist/drivers/db/index.js +1 -21
  15. package/dist/drivers/db/migration.d.ts +133 -5
  16. package/dist/drivers/db/migration.js +1 -81
  17. package/dist/drivers/db/repository.js +1 -255
  18. package/dist/drivers/encryptions/encryption.js +1 -50
  19. package/dist/drivers/encryptions/encryption.module.js +1 -24
  20. package/dist/drivers/encryptions/index.js +1 -19
  21. package/dist/drivers/encryptions/jwt.js +1 -46
  22. package/dist/drivers/encryptions/password-hash.js +1 -38
  23. package/dist/drivers/encryptions/snap.signature.js +1 -110
  24. package/dist/drivers/logger/app.logger.js +2 -183
  25. package/dist/drivers/logger/cloudwatch.d.ts +18 -0
  26. package/dist/drivers/logger/cloudwatch.js +1 -0
  27. package/dist/drivers/logger/cloudwatch.logger.d.ts +1 -0
  28. package/dist/drivers/logger/cloudwatch.logger.js +1 -0
  29. package/dist/drivers/logger/index.js +1 -18
  30. package/dist/drivers/logger/slack.logger.js +1 -24
  31. package/dist/drivers/mail/index.js +1 -22
  32. package/dist/drivers/mail/mail-template.js +8 -41
  33. package/dist/drivers/mail/mail.config.js +1 -4
  34. package/dist/drivers/mail/mail.js +13 -73
  35. package/dist/drivers/mail/mail.module.js +1 -26
  36. package/dist/drivers/mail/mail.queue.js +1 -37
  37. package/dist/drivers/mail/mailer.js +1 -62
  38. package/dist/drivers/notifications/index.js +1 -21
  39. package/dist/drivers/notifications/notification.config.js +1 -4
  40. package/dist/drivers/notifications/notification.module.js +1 -25
  41. package/dist/drivers/notifications/notification.queue.js +1 -37
  42. package/dist/drivers/notifications/push-notification.js +1 -75
  43. package/dist/drivers/notifications/slack.js +1 -95
  44. package/dist/drivers/queues/app.queue.js +1 -66
  45. package/dist/drivers/queues/index.js +1 -18
  46. package/dist/drivers/queues/queue.module.js +1 -41
  47. package/dist/helpers/exception.helper.js +1 -71
  48. package/dist/helpers/http.helper.js +1 -134
  49. package/dist/helpers/swagger.helper.js +1 -287
  50. package/dist/helpers/totp.helper.js +1 -30
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.js +1 -24
  53. package/dist/middlewares/log.middleware.js +1 -59
  54. package/dist/types.d.js +1 -0
  55. package/package.json +27 -14
@@ -1,92 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AppCache = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const helpers_1 = require("@triproject/helpers");
15
- const config_1 = require("../../config");
16
- const redis_1 = require("./redis");
17
- let AppCache = class AppCache {
18
- connection;
19
- PREFIX = config_1.APP_KEY;
20
- constructor(redis) {
21
- this.connection = redis.getConnection();
22
- }
23
- _parseKey(key) {
24
- if (!key)
25
- throw new common_1.UnprocessableEntityException('Cache key cannot be null or undefined');
26
- const keys = [this.PREFIX];
27
- if (Array.isArray(key))
28
- keys.push(...key);
29
- else
30
- keys.push(key?.toString());
31
- return keys
32
- .flat()
33
- .flat()
34
- .filter((d) => d)
35
- .map((d) => d?.toString()?.toUpperCase())
36
- .join(':');
37
- }
38
- async set(key, value, ttl = 60) {
39
- await this.connection.set(this._parseKey(key), JSON.stringify({ data: value }), {
40
- expiration: { type: 'EX', value: ttl * 1000 },
41
- });
42
- }
43
- async get(key) {
44
- try {
45
- const data = await this.connection.get(this._parseKey(key));
46
- if (!data)
47
- return undefined;
48
- const parsedData = JSON.parse(data?.toString());
49
- return parsedData?.data;
50
- }
51
- catch (error) {
52
- return;
53
- }
54
- }
55
- async del(key) {
56
- await this.connection.del(this._parseKey(key));
57
- }
58
- async delAll(key) {
59
- const keys = await this.connection.hGetAll(`*${this.PREFIX}*${this._parseKey(key)}*`);
60
- for (const k in keys)
61
- await this.connection.del(k);
62
- }
63
- async cache(key, fn, ttl = 60) {
64
- const data = await this.get(key);
65
- if (data)
66
- return data;
67
- const result = await fn();
68
- await this.set(key, result, ttl);
69
- return result;
70
- }
71
- async cacheWithTimeStamp(key, value, ttl) {
72
- try {
73
- let data = await this.get(key);
74
- if (data)
75
- return data;
76
- data = {
77
- data: (typeof data === 'function' ? await value() : value),
78
- timestamp: (0, helpers_1.dateUtil)().utc().toString(),
79
- };
80
- this.set(key, data, ttl);
81
- return data;
82
- }
83
- catch (error) {
84
- throw error;
85
- }
86
- }
87
- };
88
- exports.AppCache = AppCache;
89
- exports.AppCache = AppCache = __decorate([
90
- (0, common_1.Injectable)(),
91
- __metadata("design:paramtypes", [redis_1.Redis])
92
- ], AppCache);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"AppCache",{enumerable:!0,get:function(){return AppCache}});let _common=require("@nestjs/common"),_helpers=require("@triproject/helpers"),_config=require("../../config"),_redis=require("./redis");function _ts_metadata(k,v){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(k,v)}let AppCache=class AppCache{connection;PREFIX=_config.APP_KEY;constructor(redis){this.connection=redis.getConnection()}_parseKey(key){if(!key)throw new _common.UnprocessableEntityException("Cache key cannot be null or undefined");let keys=[this.PREFIX];return Array.isArray(key)?keys.push(...key):keys.push(key?.toString()),keys.flat().flat().filter(d=>d).map(d=>d?.toString()?.toUpperCase()).join("::").replaceAll(/[^a-zA-Z0-9\-:]/g,"-")}async set(key,value,ttl=60){await this.connection.set(this._parseKey(key),JSON.stringify({data:value}),{expiration:{type:"EX",value:1e3*ttl}})}async get(key){try{let data=await this.connection.get(this._parseKey(key));if(!data)return;let parsedData=JSON.parse(data?.toString());return parsedData?.data}catch(error){return}}async del(key){await this.connection.del(this._parseKey(key))}async delAll(key){for(let k of(await this.connection.keys(`${this._parseKey(key)}*`)))await this.connection.del(k)}async cache(key,fn,ttl=60){let data=await this.get(key);if(data)return data;let result=await fn();return await this.set(key,result,ttl),result}async cacheWithTimeStamp(key,value,ttl){try{let data=await this.get(key);if(data)return data;return data={data:"function"==typeof data?await value():value,timestamp:(0,_helpers.dateUtil)().utc().toString()},this.set(key,data,ttl),data}catch(error){throw error}}};AppCache=function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}([(0,_common.Injectable)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[void 0===_redis.Redis?Object:_redis.Redis])],AppCache);
@@ -1,19 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./cache"), exports);
18
- __exportStar(require("./cache.driver"), exports);
19
- __exportStar(require("./redis"), exports);
1
+ "use strict";function _export_star(from,to){return Object.keys(from).forEach(function(k){"default"===k||Object.prototype.hasOwnProperty.call(to,k)||Object.defineProperty(to,k,{enumerable:!0,get:function(){return from[k]}})}),from}Object.defineProperty(exports,"__esModule",{value:!0}),_export_star(require("./cache"),exports),_export_star(require("./cache.driver"),exports),_export_star(require("./redis"),exports);
@@ -1,52 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var Redis_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.Redis = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const redis_1 = require("redis");
16
- const config_1 = require("../../config");
17
- const app_logger_1 = require("../logger/app.logger");
18
- let Redis = Redis_1 = class Redis {
19
- logger = new app_logger_1.AppLogger(Redis_1.name);
20
- connection;
21
- constructor() {
22
- this.connection = (0, redis_1.createClient)({
23
- database: config_1.REDIS_DB,
24
- password: config_1.REDIS_PASSWORD,
25
- socket: {
26
- host: config_1.REDIS_HOST,
27
- port: config_1.REDIS_PORT,
28
- tls: config_1.REDIS_TLS,
29
- },
30
- });
31
- }
32
- async _connect() {
33
- await this.connection
34
- .connect()
35
- .then(() => this.logger.log('Established connection to Redis'))
36
- .catch((err) => this.logger.error('Unable to connect to Redis', err));
37
- this.connection.on('connect', () => this.logger.log('Established connection to Redis'));
38
- this.connection.on('error', (err) => this.logger.error('Failed to connect to Redis', err));
39
- this.connection.on('reconnecting', () => this.logger.log('Reconnecting to Redis'));
40
- }
41
- getConnection() {
42
- return this.connection;
43
- }
44
- async onModuleInit() {
45
- await this._connect();
46
- }
47
- };
48
- exports.Redis = Redis;
49
- exports.Redis = Redis = Redis_1 = __decorate([
50
- (0, common_1.Injectable)(),
51
- __metadata("design:paramtypes", [])
52
- ], Redis);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Redis",{enumerable:!0,get:function(){return Redis}});let _common=require("@nestjs/common"),_redis=require("redis"),_config=require("../../config"),_applogger=require("../logger/app.logger");function _ts_metadata(k,v){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(k,v)}let Redis=class Redis{logger=new _applogger.AppLogger(Redis.name);connection;constructor(){this.connection=(0,_redis.createClient)({database:_config.REDIS_DB,password:_config.REDIS_PASSWORD,socket:{host:_config.REDIS_HOST,port:_config.REDIS_PORT,tls:_config.REDIS_TLS}})}async _connect(){await this.connection.connect().then(()=>this.logger.log("Redis connected successfully")).catch(err=>this.logger.error("Unable to connect to Redis",err)),this.connection.on("connect",()=>this.logger.log("Redis connected successfully")),this.connection.on("error",err=>this.logger.error("Redis connection error",err)),this.connection.on("reconnecting",()=>this.logger.log("Reconnecting to Redis"))}getConnection(){return this.connection}async onModuleInit(){await this._connect()}};Redis=function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}([(0,_common.Injectable)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[])],Redis);
@@ -1,217 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RelationEntity = exports.Entity = exports.PaginateRequest = exports.PaginateResponse = void 0;
13
- exports.PrimaryUuidCol = PrimaryUuidCol;
14
- exports.PrimaryCodeCol = PrimaryCodeCol;
15
- exports.PrimaryNumberCol = PrimaryNumberCol;
16
- exports.CreatedAtCol = CreatedAtCol;
17
- exports.UpdatedAtCol = UpdatedAtCol;
18
- exports.ForeignUuidCol = ForeignUuidCol;
19
- exports.NumberCol = NumberCol;
20
- exports.BooleanCol = BooleanCol;
21
- exports.NameCol = NameCol;
22
- exports.EnumCol = EnumCol;
23
- exports.SchedulerCol = SchedulerCol;
24
- const swagger_1 = require("@nestjs/swagger");
25
- const helpers_1 = require("@triproject/helpers");
26
- const class_validator_1 = require("class-validator");
27
- const sequelize_typescript_1 = require("sequelize-typescript");
28
- class PaginateResponse {
29
- data;
30
- timestamp;
31
- meta;
32
- }
33
- exports.PaginateResponse = PaginateResponse;
34
- __decorate([
35
- (0, swagger_1.ApiProperty)({ example: '2025-06-01T12:00:00Z', description: 'Timestamp of the response' }),
36
- __metadata("design:type", String)
37
- ], PaginateResponse.prototype, "timestamp", void 0);
38
- __decorate([
39
- (0, swagger_1.ApiProperty)({
40
- example: {
41
- total: 100,
42
- totalPage: 10,
43
- perPage: 10,
44
- prevPage: null,
45
- page: 1,
46
- nextPage: 2,
47
- },
48
- }),
49
- __metadata("design:type", Object)
50
- ], PaginateResponse.prototype, "meta", void 0);
51
- class PaginateRequest {
52
- perPage;
53
- page;
54
- q;
55
- orderBy;
56
- sort;
57
- searchKey;
58
- order;
59
- include;
60
- where;
61
- orWhere;
62
- andWhere;
63
- attributes;
64
- groupBy;
65
- }
66
- exports.PaginateRequest = PaginateRequest;
67
- __decorate([
68
- (0, swagger_1.ApiProperty)({ example: 10, description: 'Number of items per page' }),
69
- (0, class_validator_1.IsOptional)(),
70
- (0, class_validator_1.IsNumber)(),
71
- __metadata("design:type", Number)
72
- ], PaginateRequest.prototype, "perPage", void 0);
73
- __decorate([
74
- (0, swagger_1.ApiProperty)({ example: 1, description: 'Current page number' }),
75
- (0, class_validator_1.IsOptional)(),
76
- (0, class_validator_1.IsNumber)(),
77
- __metadata("design:type", Number)
78
- ], PaginateRequest.prototype, "page", void 0);
79
- __decorate([
80
- (0, swagger_1.ApiProperty)({ example: 'search query', description: 'Search query' }),
81
- (0, class_validator_1.IsOptional)(),
82
- (0, class_validator_1.IsString)(),
83
- __metadata("design:type", String)
84
- ], PaginateRequest.prototype, "q", void 0);
85
- __decorate([
86
- (0, swagger_1.ApiProperty)({ example: 'createdAt', description: 'Order by field' }),
87
- (0, class_validator_1.IsString)(),
88
- (0, class_validator_1.IsOptional)(),
89
- __metadata("design:type", Object)
90
- ], PaginateRequest.prototype, "orderBy", void 0);
91
- __decorate([
92
- (0, swagger_1.ApiProperty)({ example: 'ASC', enum: ['ASC', 'DESC'], description: 'Sort order' }),
93
- (0, class_validator_1.IsEnum)(['ASC', 'DESC']),
94
- __metadata("design:type", String)
95
- ], PaginateRequest.prototype, "sort", void 0);
96
- function PrimaryUuidCol() {
97
- return (0, sequelize_typescript_1.Column)({
98
- type: sequelize_typescript_1.DataType.UUID,
99
- allowNull: false,
100
- primaryKey: true,
101
- defaultValue: () => (0, helpers_1.generateId)(),
102
- });
103
- }
104
- function PrimaryCodeCol() {
105
- return (0, sequelize_typescript_1.Column)({
106
- allowNull: false,
107
- primaryKey: true,
108
- type: sequelize_typescript_1.DataType.STRING(100),
109
- defaultValue: () => (0, helpers_1.generateCode)(),
110
- });
111
- }
112
- function PrimaryNumberCol() {
113
- return (0, sequelize_typescript_1.Column)({
114
- type: sequelize_typescript_1.DataType.BIGINT,
115
- allowNull: false,
116
- primaryKey: true,
117
- autoIncrement: true,
118
- get() {
119
- return +this.getDataValue('id');
120
- },
121
- });
122
- }
123
- function CreatedAtCol() {
124
- return (0, sequelize_typescript_1.Column)({
125
- type: sequelize_typescript_1.DataType.DATE,
126
- defaultValue: () => (0, helpers_1.dateUtil)().utc().getTime(),
127
- });
128
- }
129
- function UpdatedAtCol() {
130
- return (0, sequelize_typescript_1.Column)({
131
- type: sequelize_typescript_1.DataType.DATE,
132
- defaultValue: () => (0, helpers_1.dateUtil)().utc().getTime(),
133
- onUpdate: 'UPDATE CURRENT_TIMESTAMP',
134
- });
135
- }
136
- function ForeignUuidCol(params) {
137
- return (0, sequelize_typescript_1.Column)({ type: sequelize_typescript_1.DataType.UUID, allowNull: params?.allowNull ?? false });
138
- }
139
- function NumberCol(precision = 5, scale = 2, options = {}) {
140
- let type = sequelize_typescript_1.DataType.DECIMAL(precision, scale);
141
- if (scale === 0) {
142
- type = sequelize_typescript_1.DataType.INTEGER;
143
- if (precision <= 5)
144
- type = sequelize_typescript_1.DataType.MEDIUMINT;
145
- }
146
- return (0, sequelize_typescript_1.Column)({
147
- ...options,
148
- type,
149
- defaultValue: 0,
150
- });
151
- }
152
- function BooleanCol(defaultValue = true) {
153
- return (0, sequelize_typescript_1.Column)({
154
- type: sequelize_typescript_1.DataType.BOOLEAN,
155
- defaultValue,
156
- });
157
- }
158
- function NameCol() {
159
- return (0, sequelize_typescript_1.Column)({
160
- type: sequelize_typescript_1.DataType.STRING(100),
161
- allowNull: false,
162
- });
163
- }
164
- function EnumCol(data) {
165
- return (0, sequelize_typescript_1.Column)({
166
- type: sequelize_typescript_1.DataType.ENUM(...data.enum),
167
- allowNull: false,
168
- });
169
- }
170
- function SchedulerCol() {
171
- return (_target, _propertyKey) => {
172
- (0, sequelize_typescript_1.Column)({
173
- type: sequelize_typescript_1.DataType.STRING(512),
174
- get() {
175
- try {
176
- const rawValue = this.getDataValue(_propertyKey) ?? '[]';
177
- const parsed = JSON.parse(rawValue);
178
- return parsed.map(([start, end]) => ({ start: (0, helpers_1.dateUtil)(start), end: (0, helpers_1.dateUtil)(end) }));
179
- }
180
- catch (error) {
181
- return [];
182
- }
183
- },
184
- set(value) {
185
- this.setDataValue(_propertyKey, JSON.stringify(value.map(({ start, end }) => [(0, helpers_1.dateUtil)(start).toISOString(), (0, helpers_1.dateUtil)(end).toISOString()])));
186
- },
187
- });
188
- };
189
- }
190
- let Entity = class Entity extends sequelize_typescript_1.Model {
191
- };
192
- exports.Entity = Entity;
193
- __decorate([
194
- PrimaryUuidCol(),
195
- __metadata("design:type", String)
196
- ], Entity.prototype, "id", void 0);
197
- __decorate([
198
- CreatedAtCol(),
199
- __metadata("design:type", Date)
200
- ], Entity.prototype, "createdAt", void 0);
201
- __decorate([
202
- UpdatedAtCol(),
203
- __metadata("design:type", Date)
204
- ], Entity.prototype, "updatedAt", void 0);
205
- exports.Entity = Entity = __decorate([
206
- (0, sequelize_typescript_1.Table)({ underscored: false, timestamps: true })
207
- ], Entity);
208
- let RelationEntity = class RelationEntity extends sequelize_typescript_1.Model {
209
- };
210
- exports.RelationEntity = RelationEntity;
211
- __decorate([
212
- PrimaryNumberCol(),
213
- __metadata("design:type", Number)
214
- ], RelationEntity.prototype, "id", void 0);
215
- exports.RelationEntity = RelationEntity = __decorate([
216
- (0, sequelize_typescript_1.Table)({ underscored: false, timestamps: false })
217
- ], RelationEntity);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get BooleanCol(){return BooleanCol},get CreatedAtCol(){return CreatedAtCol},get Entity(){return Entity},get EnumCol(){return EnumCol},get ForeignUuidCol(){return ForeignUuidCol},get NameCol(){return NameCol},get NumberCol(){return NumberCol},get PaginateRequest(){return PaginateRequest},get PaginateResponse(){return PaginateResponse},get PrimaryCodeCol(){return PrimaryCodeCol},get PrimaryNumberCol(){return PrimaryNumberCol},get PrimaryUuidCol(){return PrimaryUuidCol},get RelationEntity(){return RelationEntity},get SchedulerCol(){return SchedulerCol},get UpdatedAtCol(){return UpdatedAtCol}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});let _swagger=require("@nestjs/swagger"),_helpers=require("@triproject/helpers"),_classvalidator=require("class-validator"),_sequelizetypescript=require("sequelize-typescript");function _ts_decorate(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}function _ts_metadata(k,v){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(k,v)}let PaginateResponse=class PaginateResponse{data;timestamp;meta};_ts_decorate([(0,_swagger.ApiProperty)({example:"2025-06-01T12:00:00Z",description:"Timestamp of the response"}),_ts_metadata("design:type",String)],PaginateResponse.prototype,"timestamp",void 0),_ts_decorate([(0,_swagger.ApiProperty)({example:{total:100,totalPage:10,perPage:10,prevPage:null,page:1,nextPage:2}}),_ts_metadata("design:type",Object)],PaginateResponse.prototype,"meta",void 0);let PaginateRequest=class PaginateRequest{perPage;page;q;orderBy;sort;searchKey;order;include;where;orWhere;andWhere;attributes;groupBy};function PrimaryUuidCol(){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.UUID,allowNull:!1,primaryKey:!0,defaultValue:()=>(0,_helpers.generateId)()})}function PrimaryCodeCol(){return(0,_sequelizetypescript.Column)({allowNull:!1,primaryKey:!0,type:_sequelizetypescript.DataType.STRING(100),defaultValue:()=>(0,_helpers.generateCode)()})}function PrimaryNumberCol(){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.BIGINT,allowNull:!1,primaryKey:!0,autoIncrement:!0,get(){return+this.getDataValue("id")}})}function CreatedAtCol(){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.DATE,defaultValue:()=>(0,_helpers.dateUtil)().utc().getTime()})}function UpdatedAtCol(){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.DATE,defaultValue:()=>(0,_helpers.dateUtil)().utc().getTime(),onUpdate:"UPDATE CURRENT_TIMESTAMP"})}function ForeignUuidCol(params){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.UUID,allowNull:params?.allowNull??!1})}function NumberCol(precision=5,scale=2,options={}){let type=_sequelizetypescript.DataType.DECIMAL(precision,scale);return 0===scale&&(type=_sequelizetypescript.DataType.INTEGER,precision<=5&&(type=_sequelizetypescript.DataType.MEDIUMINT)),(0,_sequelizetypescript.Column)({...options,type,defaultValue:0})}function BooleanCol(defaultValue=!0){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.BOOLEAN,defaultValue})}function NameCol(){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.STRING(100),allowNull:!1})}function EnumCol(data){return(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.ENUM(...data.enum),allowNull:!1})}function SchedulerCol(){return(_target,_propertyKey)=>{(0,_sequelizetypescript.Column)({type:_sequelizetypescript.DataType.STRING(512),get(){try{let rawValue=this.getDataValue(_propertyKey)??"[]";return JSON.parse(rawValue).map(([start,end])=>({start:(0,_helpers.dateUtil)(start),end:(0,_helpers.dateUtil)(end)}))}catch(error){return[]}},set(value){this.setDataValue(_propertyKey,JSON.stringify(value.map(({start,end})=>[(0,_helpers.dateUtil)(start).toISOString(),(0,_helpers.dateUtil)(end).toISOString()])))}})}}_ts_decorate([(0,_swagger.ApiProperty)({example:10,description:"Number of items per page"}),(0,_classvalidator.IsOptional)(),(0,_classvalidator.IsNumber)(),_ts_metadata("design:type",Number)],PaginateRequest.prototype,"perPage",void 0),_ts_decorate([(0,_swagger.ApiProperty)({example:1,description:"Current page number"}),(0,_classvalidator.IsOptional)(),(0,_classvalidator.IsNumber)(),_ts_metadata("design:type",Number)],PaginateRequest.prototype,"page",void 0),_ts_decorate([(0,_swagger.ApiProperty)({example:"search query",description:"Search query"}),(0,_classvalidator.IsOptional)(),(0,_classvalidator.IsString)(),_ts_metadata("design:type",String)],PaginateRequest.prototype,"q",void 0),_ts_decorate([(0,_swagger.ApiProperty)({example:"createdAt",description:"Order by field"}),(0,_classvalidator.IsString)(),(0,_classvalidator.IsOptional)(),_ts_metadata("design:type","u"<typeof KeyOfModel?Object:KeyOfModel)],PaginateRequest.prototype,"orderBy",void 0),_ts_decorate([(0,_swagger.ApiProperty)({example:"ASC",enum:["ASC","DESC"],description:"Sort order"}),(0,_classvalidator.IsEnum)(["ASC","DESC"]),_ts_metadata("design:type","u"<typeof OrderDataType?Object:OrderDataType)],PaginateRequest.prototype,"sort",void 0);let Entity=class Entity extends _sequelizetypescript.Model{};_ts_decorate([PrimaryUuidCol(),_ts_metadata("design:type",String)],Entity.prototype,"id",void 0),_ts_decorate([CreatedAtCol(),_ts_metadata("design:type","u"<typeof Date?Object:Date)],Entity.prototype,"createdAt",void 0),_ts_decorate([UpdatedAtCol(),_ts_metadata("design:type","u"<typeof Date?Object:Date)],Entity.prototype,"updatedAt",void 0),Entity=_ts_decorate([(0,_sequelizetypescript.Table)({underscored:!1,timestamps:!0})],Entity);let RelationEntity=class RelationEntity extends _sequelizetypescript.Model{};_ts_decorate([PrimaryNumberCol(),_ts_metadata("design:type",Number)],RelationEntity.prototype,"id",void 0),RelationEntity=_ts_decorate([(0,_sequelizetypescript.Table)({underscored:!1,timestamps:!1})],RelationEntity);
@@ -1,44 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DBModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const sequelize_1 = require("@nestjs/sequelize");
12
- const path_1 = require("path");
13
- const config_1 = require("../../config");
14
- const db_service_1 = require("./db.service");
15
- let DBModule = class DBModule {
16
- };
17
- exports.DBModule = DBModule;
18
- exports.DBModule = DBModule = __decorate([
19
- (0, common_1.Global)(),
20
- (0, common_1.Module)({
21
- imports: [
22
- sequelize_1.SequelizeModule.forRootAsync({
23
- useFactory: async () => {
24
- return {
25
- host: config_1.DB_HOST,
26
- port: config_1.DB_PORT,
27
- username: config_1.DB_USER,
28
- password: config_1.DB_PASSWORD,
29
- database: config_1.DB_NAME,
30
- dialect: config_1.DB_DIALECT,
31
- pool: { min: 2, max: config_1.DB_MAX_POOL_SIZE },
32
- models: [(0, path_1.resolve)(config_1.DB_ENTITIES_PATH)],
33
- define: { charset: 'utf8', underscored: false },
34
- synchronize: false,
35
- logging: false,
36
- dialectOptions: config_1.DB_SSL ? { ssl: { require: true, rejectUnauthorized: false } } : {},
37
- };
38
- },
39
- }),
40
- ],
41
- providers: [sequelize_1.SequelizeModule, db_service_1.DbService],
42
- exports: [sequelize_1.SequelizeModule, db_service_1.DbService],
43
- })
44
- ], DBModule);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"DBModule",{enumerable:!0,get:function(){return DBModule}});let _common=require("@nestjs/common"),_sequelize=require("@nestjs/sequelize"),_path=require("path"),_config=require("../../config"),_dbservice=require("./db.service");let DBModule=class DBModule{};DBModule=function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}([(0,_common.Global)(),(0,_common.Module)({imports:[_sequelize.SequelizeModule.forRootAsync({useFactory:async()=>({host:_config.DB_HOST,port:_config.DB_PORT,username:_config.DB_USER,password:_config.DB_PASSWORD,database:_config.DB_NAME,dialect:_config.DB_DIALECT,pool:{min:2,max:_config.DB_MAX_POOL_SIZE},models:[(0,_path.resolve)(_config.DB_ENTITIES_PATH)],define:{charset:"utf8",underscored:!1},synchronize:!1,logging:!1,dialectOptions:_config.DB_SSL?{ssl:{require:!0,rejectUnauthorized:!1}}:{}})})],providers:[_sequelize.SequelizeModule,_dbservice.DbService],exports:[_sequelize.SequelizeModule,_dbservice.DbService]})],DBModule);
@@ -1,49 +1 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var DbService_1;
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.DbService = void 0;
14
- const common_1 = require("@nestjs/common");
15
- const sequelize_typescript_1 = require("sequelize-typescript");
16
- const app_logger_1 = require("../../drivers/logger/app.logger");
17
- let DbService = DbService_1 = class DbService {
18
- db;
19
- logger = new app_logger_1.AppLogger(DbService_1.name);
20
- constructor(db) {
21
- this.db = db;
22
- }
23
- async onModuleInit() {
24
- await this.authenticate();
25
- }
26
- async authenticate() {
27
- await this.db
28
- .authenticate({ retry: { max: 1 } })
29
- .then(() => this.logger.log('Database connection has been established successfully.'))
30
- .catch((err) => {
31
- this.logger.error('Unable to connect to the database:', err);
32
- throw err;
33
- });
34
- }
35
- async checkConnection() {
36
- return await this.db
37
- .authenticate({ retry: { max: 1 } })
38
- .then(() => true)
39
- .catch((err) => {
40
- this.logger.error('Database connection failed', err);
41
- return false;
42
- });
43
- }
44
- };
45
- exports.DbService = DbService;
46
- exports.DbService = DbService = DbService_1 = __decorate([
47
- (0, common_1.Injectable)(),
48
- __metadata("design:paramtypes", [sequelize_typescript_1.Sequelize])
49
- ], DbService);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"DbService",{enumerable:!0,get:function(){return DbService}});let _common=require("@nestjs/common"),_sequelizetypescript=require("sequelize-typescript"),_config=require("../../config"),_applogger=require("../../drivers/logger/app.logger");function _ts_metadata(k,v){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(k,v)}let DbService=class DbService{db;logger=new _applogger.AppLogger(DbService.name);constructor(db){this.db=db}async onModuleInit(){await this.authenticate()}async authenticate(){await this.db.authenticate({retry:{max:1}}).then(()=>this.logger.log(`Database connected successfully to ${_config.DB_NAME}:${_config.DB_DIALECT}`)).catch(err=>{throw this.logger.error("Unable to connect to the database:",err),err})}async checkConnection(){return await this.db.authenticate({retry:{max:1}}).then(()=>!0).catch(err=>(this.logger.error("Database connection failed",err),!1))}};DbService=function(decorators,target,key,desc){var d,c=arguments.length,r=c<3?target:null===desc?desc=Object.getOwnPropertyDescriptor(target,key):desc;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(decorators,target,key,desc);else for(var i=decorators.length-1;i>=0;i--)(d=decorators[i])&&(r=(c<3?d(r):c>3?d(target,key,r):d(target,key))||r);return c>3&&r&&Object.defineProperty(target,key,r),r}([(0,_common.Injectable)(),_ts_metadata("design:type",Function),_ts_metadata("design:paramtypes",[void 0===_sequelizetypescript.Sequelize?Object:_sequelizetypescript.Sequelize])],DbService);
@@ -1,21 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./db.helper"), exports);
18
- __exportStar(require("./db.module"), exports);
19
- __exportStar(require("./db.service"), exports);
20
- __exportStar(require("./migration"), exports);
21
- __exportStar(require("./repository"), exports);
1
+ "use strict";function _export_star(from,to){return Object.keys(from).forEach(function(k){"default"===k||Object.prototype.hasOwnProperty.call(to,k)||Object.defineProperty(to,k,{enumerable:!0,get:function(){return from[k]}})}),from}Object.defineProperty(exports,"__esModule",{value:!0}),_export_star(require("./db.helper"),exports),_export_star(require("./db.module"),exports),_export_star(require("./db.service"),exports),_export_star(require("./migration"),exports),_export_star(require("./repository"),exports);