@fabx.vn/core 1.1.0 → 1.1.1
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/README.md +2 -6
- package/dist/config/cookie.config.d.ts +1 -0
- package/dist/config/cookie.config.js +1 -0
- package/dist/config/cookie.config.js.map +1 -1
- package/dist/config/database.config.d.ts +1 -0
- package/dist/config/database.config.js +2 -1
- package/dist/config/database.config.js.map +1 -1
- package/dist/config/internal.config.d.ts +4 -1
- package/dist/config/internal.config.js +4 -2
- package/dist/config/internal.config.js.map +1 -1
- package/dist/config/rabbitmq.config.d.ts +1 -5
- package/dist/config/rabbitmq.config.js +2 -6
- package/dist/config/rabbitmq.config.js.map +1 -1
- package/dist/config/redis-cache.config.d.ts +9 -0
- package/dist/config/redis-cache.config.js +13 -0
- package/dist/config/redis-cache.config.js.map +1 -0
- package/dist/config/redis.config.js +1 -1
- package/dist/config/redis.config.js.map +1 -1
- package/dist/constants/messages.constants.d.ts +0 -5
- package/dist/constants/messages.constants.js +0 -5
- package/dist/constants/messages.constants.js.map +1 -1
- package/dist/core/core.module.js +6 -0
- package/dist/core/core.module.js.map +1 -1
- package/dist/core/decorators/current-user.decorator.js +17 -1
- package/dist/core/decorators/current-user.decorator.js.map +1 -1
- package/dist/core/dtos/pagination.dto.d.ts +12 -0
- package/dist/core/dtos/pagination.dto.js +25 -1
- package/dist/core/dtos/pagination.dto.js.map +1 -1
- package/dist/core/entities/base.entity.d.ts +1 -0
- package/dist/core/entities/base.entity.js +4 -0
- package/dist/core/entities/base.entity.js.map +1 -1
- package/dist/core/guards/jwt-auth.guard.js +2 -3
- package/dist/core/guards/jwt-auth.guard.js.map +1 -1
- package/dist/core/modules/typeorm-filter.module.d.ts +5 -0
- package/dist/core/modules/typeorm-filter.module.js +41 -0
- package/dist/core/modules/typeorm-filter.module.js.map +1 -0
- package/dist/core/services/base-pagination.service.d.ts +9 -1
- package/dist/core/services/base-pagination.service.js +91 -0
- package/dist/core/services/base-pagination.service.js.map +1 -1
- package/dist/core/services/cookie.service.d.ts +2 -0
- package/dist/core/services/cookie.service.js +17 -18
- package/dist/core/services/cookie.service.js.map +1 -1
- package/dist/core/services/jwt.service.js +0 -10
- package/dist/core/services/jwt.service.js.map +1 -1
- package/dist/{services/redis.service.d.ts → core/services/redis-cache.service.d.ts} +6 -1
- package/dist/{services/redis.service.js → core/services/redis-cache.service.js} +37 -9
- package/dist/core/services/redis-cache.service.js.map +1 -0
- package/dist/core/services/redis.service.d.ts +1 -0
- package/dist/core/services/redis.service.js +15 -2
- package/dist/core/services/redis.service.js.map +1 -1
- package/dist/core/services/repository-wrapper.service.d.ts +7 -0
- package/dist/core/services/repository-wrapper.service.js +95 -0
- package/dist/core/services/repository-wrapper.service.js.map +1 -0
- package/dist/core/services/session.service.d.ts +2 -2
- package/dist/core/services/session.service.js +3 -10
- package/dist/core/services/session.service.js.map +1 -1
- package/dist/core/subscribers/audit.subscriber.js +3 -0
- package/dist/core/subscribers/audit.subscriber.js.map +1 -1
- package/dist/enums/object-type.enum.d.ts +9 -0
- package/dist/enums/object-type.enum.js +14 -0
- package/dist/enums/object-type.enum.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/libs/axios/axios-client.js +2 -2
- package/dist/libs/axios/axios-client.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/date.utils.d.ts +1 -0
- package/dist/utils/date.utils.js +10 -0
- package/dist/utils/date.utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/config/google-oauth.config.d.ts +0 -6
- package/dist/config/google-oauth.config.js +0 -10
- package/dist/config/google-oauth.config.js.map +0 -1
- package/dist/core/services/cache.service.d.ts +0 -13
- package/dist/core/services/cache.service.js +0 -51
- package/dist/core/services/cache.service.js.map +0 -1
- package/dist/core/services/permission.service.d.ts +0 -23
- package/dist/core/services/permission.service.js +0 -83
- package/dist/core/services/permission.service.js.map +0 -1
- package/dist/core.module.d.ts +0 -2
- package/dist/core.module.js +0 -72
- package/dist/core.module.js.map +0 -1
- package/dist/decorators/current-user.decorator.d.ts +0 -1
- package/dist/decorators/current-user.decorator.js +0 -9
- package/dist/decorators/current-user.decorator.js.map +0 -1
- package/dist/decorators/public.decorator.d.ts +0 -2
- package/dist/decorators/public.decorator.js +0 -8
- package/dist/decorators/public.decorator.js.map +0 -1
- package/dist/decorators/require-permissions.decorator.d.ts +0 -4
- package/dist/decorators/require-permissions.decorator.js +0 -11
- package/dist/decorators/require-permissions.decorator.js.map +0 -1
- package/dist/dtos/api-response.dto.d.ts +0 -10
- package/dist/dtos/api-response.dto.js +0 -22
- package/dist/dtos/api-response.dto.js.map +0 -1
- package/dist/dtos/pagination.dto.d.ts +0 -17
- package/dist/dtos/pagination.dto.js +0 -61
- package/dist/dtos/pagination.dto.js.map +0 -1
- package/dist/filters/http-exception.filter.d.ts +0 -5
- package/dist/filters/http-exception.filter.js +0 -47
- package/dist/filters/http-exception.filter.js.map +0 -1
- package/dist/guards/internal-auth.guard.d.ts +0 -7
- package/dist/guards/internal-auth.guard.js +0 -42
- package/dist/guards/internal-auth.guard.js.map +0 -1
- package/dist/guards/jwt-auth.guard.d.ts +0 -12
- package/dist/guards/jwt-auth.guard.js +0 -56
- package/dist/guards/jwt-auth.guard.js.map +0 -1
- package/dist/guards/permission.guard.d.ts +0 -9
- package/dist/guards/permission.guard.js +0 -71
- package/dist/guards/permission.guard.js.map +0 -1
- package/dist/interceptors/request-context.interceptor.d.ts +0 -8
- package/dist/interceptors/request-context.interceptor.js +0 -39
- package/dist/interceptors/request-context.interceptor.js.map +0 -1
- package/dist/services/cookie.service.d.ts +0 -13
- package/dist/services/cookie.service.js +0 -50
- package/dist/services/cookie.service.js.map +0 -1
- package/dist/services/jwt.service.d.ts +0 -37
- package/dist/services/jwt.service.js +0 -187
- package/dist/services/jwt.service.js.map +0 -1
- package/dist/services/rabbitmq-publisher.service.d.ts +0 -9
- package/dist/services/rabbitmq-publisher.service.js +0 -57
- package/dist/services/rabbitmq-publisher.service.js.map +0 -1
- package/dist/services/redis.service.js.map +0 -1
- package/dist/services/request-context.service.d.ts +0 -18
- package/dist/services/request-context.service.js +0 -40
- package/dist/services/request-context.service.js.map +0 -1
- package/dist/services/request-info.service.d.ts +0 -8
- package/dist/services/request-info.service.js +0 -32
- package/dist/services/request-info.service.js.map +0 -1
- package/dist/services/session.service.d.ts +0 -21
- package/dist/services/session.service.js +0 -70
- package/dist/services/session.service.js.map +0 -1
- package/dist/strategies/jwt.strategy.d.ts +0 -7
- package/dist/strategies/jwt.strategy.js +0 -38
- package/dist/strategies/jwt.strategy.js.map +0 -1
- package/dist/subscribers/audit.subscriber.d.ts +0 -8
- package/dist/subscribers/audit.subscriber.js +0 -40
- package/dist/subscribers/audit.subscriber.js.map +0 -1
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BasePaginationService = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
4
5
|
class BasePaginationService {
|
|
5
6
|
constructor(repository) {
|
|
6
7
|
this.repository = repository;
|
|
7
8
|
}
|
|
9
|
+
getDateColumns() {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
getDuplicateErrorMessage() {
|
|
13
|
+
return "Duplicate entry";
|
|
14
|
+
}
|
|
15
|
+
getQueryAlias() {
|
|
16
|
+
return "entity";
|
|
17
|
+
}
|
|
18
|
+
getDeletedAtField() {
|
|
19
|
+
return "deletedAt";
|
|
20
|
+
}
|
|
8
21
|
async paginate(queryBuilder, paginationDto) {
|
|
9
22
|
const { page = 1, limit = 10 } = paginationDto;
|
|
10
23
|
const skip = (page - 1) * limit;
|
|
@@ -40,6 +53,84 @@ class BasePaginationService {
|
|
|
40
53
|
}
|
|
41
54
|
return queryBuilder;
|
|
42
55
|
}
|
|
56
|
+
isDateColumn(column) {
|
|
57
|
+
return this.getDateColumns().includes(column);
|
|
58
|
+
}
|
|
59
|
+
handleDuplicateError(error, message) {
|
|
60
|
+
if (error.code === "ER_DUP_ENTRY") {
|
|
61
|
+
throw new common_1.ConflictException(message || this.getDuplicateErrorMessage());
|
|
62
|
+
}
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
buildColumnFilters(queryBuilder, filters, fieldMapping, alias) {
|
|
66
|
+
const entityAlias = alias || this.getQueryAlias();
|
|
67
|
+
Object.entries(filters).forEach(([column, values]) => {
|
|
68
|
+
if (values?.length > 0) {
|
|
69
|
+
const dbField = fieldMapping[column] || `${entityAlias}.${column}`;
|
|
70
|
+
const condition = this.isDateColumn(column)
|
|
71
|
+
? `DATE(${dbField}) IN (:...${column}Values)`
|
|
72
|
+
: `${dbField} IN (:...${column}Values)`;
|
|
73
|
+
queryBuilder.andWhere(condition, { [`${column}Values`]: values });
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
return queryBuilder;
|
|
77
|
+
}
|
|
78
|
+
async getFilterValuesInternal(dto, columnMapping, fieldMapping) {
|
|
79
|
+
const { column, search, page = 1, limit = 100 } = dto;
|
|
80
|
+
const entityAlias = this.getQueryAlias();
|
|
81
|
+
const entityColumn = columnMapping[column] || column;
|
|
82
|
+
const isDateColumn = this.isDateColumn(column);
|
|
83
|
+
const dbField = fieldMapping?.[column]
|
|
84
|
+
? fieldMapping[column].replace(`${entityAlias}.`, "")
|
|
85
|
+
: entityColumn;
|
|
86
|
+
const selectExpression = isDateColumn
|
|
87
|
+
? `DATE(${entityAlias}.${dbField}) AS value`
|
|
88
|
+
: `${entityAlias}.${dbField} AS value`;
|
|
89
|
+
const searchCondition = isDateColumn
|
|
90
|
+
? `DATE(${entityAlias}.${dbField}) LIKE :search`
|
|
91
|
+
: `${entityAlias}.${dbField} LIKE :search`;
|
|
92
|
+
const baseQuery = this.repository
|
|
93
|
+
.createQueryBuilder(entityAlias)
|
|
94
|
+
.select(selectExpression)
|
|
95
|
+
.groupBy("value");
|
|
96
|
+
const deletedAtField = this.getDeletedAtField();
|
|
97
|
+
if (deletedAtField) {
|
|
98
|
+
baseQuery.where(`${entityAlias}.${deletedAtField} IS NULL`);
|
|
99
|
+
}
|
|
100
|
+
if (search) {
|
|
101
|
+
baseQuery.having(searchCondition, { search: `%${search}%` });
|
|
102
|
+
}
|
|
103
|
+
const total = (await baseQuery.getRawMany()).length;
|
|
104
|
+
const dataQuery = this.repository
|
|
105
|
+
.createQueryBuilder(entityAlias)
|
|
106
|
+
.select(selectExpression)
|
|
107
|
+
.addSelect("COUNT(*) AS count")
|
|
108
|
+
.groupBy("value")
|
|
109
|
+
.orderBy("value", "ASC")
|
|
110
|
+
.skip((page - 1) * limit)
|
|
111
|
+
.take(limit);
|
|
112
|
+
if (deletedAtField) {
|
|
113
|
+
dataQuery.where(`${entityAlias}.${deletedAtField} IS NULL`);
|
|
114
|
+
}
|
|
115
|
+
if (search) {
|
|
116
|
+
dataQuery.having(searchCondition, { search: `%${search}%` });
|
|
117
|
+
}
|
|
118
|
+
const results = await dataQuery.getRawMany();
|
|
119
|
+
const data = results.map((r) => ({
|
|
120
|
+
value: r.value,
|
|
121
|
+
label: String(r.value),
|
|
122
|
+
count: parseInt(String(r.count), 10),
|
|
123
|
+
}));
|
|
124
|
+
return {
|
|
125
|
+
data,
|
|
126
|
+
meta: {
|
|
127
|
+
total,
|
|
128
|
+
page,
|
|
129
|
+
limit,
|
|
130
|
+
totalPages: Math.ceil(total / limit),
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
}
|
|
43
134
|
}
|
|
44
135
|
exports.BasePaginationService = BasePaginationService;
|
|
45
136
|
//# sourceMappingURL=base-pagination.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-pagination.service.js","sourceRoot":"","sources":["../../../src/core/services/base-pagination.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base-pagination.service.js","sourceRoot":"","sources":["../../../src/core/services/base-pagination.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@ export interface ExtractedTokensDto {
|
|
|
4
4
|
refreshToken?: string;
|
|
5
5
|
}
|
|
6
6
|
export declare class CookieService {
|
|
7
|
+
private static readonly logger;
|
|
7
8
|
private static readonly COOKIE_NAME;
|
|
9
|
+
private static readonly COOKIE_DOMAIN;
|
|
8
10
|
private static readonly COOKIE_OPTIONS;
|
|
9
11
|
static setAuthCookies(res: Response, accessToken: string, refreshToken: string, refreshTokenExpiresAt: Date): void;
|
|
10
12
|
static clearAuthCookies(res: Response): void;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.CookieService = void 0;
|
|
4
5
|
const cookie_config_1 = require("../../config/cookie.config");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
5
7
|
class CookieService {
|
|
6
8
|
static setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
|
|
9
|
+
this.clearAuthCookies(res);
|
|
7
10
|
const authData = {
|
|
8
11
|
accessToken,
|
|
9
12
|
refreshToken,
|
|
@@ -11,55 +14,51 @@ class CookieService {
|
|
|
11
14
|
refreshTokenExpiresAt: refreshTokenExpiresAt.getTime(),
|
|
12
15
|
};
|
|
13
16
|
const cookieMaxAge = refreshTokenExpiresAt.getTime() - Date.now();
|
|
14
|
-
console.log(`[CookieService] Setting cookie ${this.COOKIE_NAME} with accessToken: ${accessToken.substring(0, 20)}...`);
|
|
15
|
-
console.log(`[CookieService] Cookie options:`, JSON.stringify({
|
|
16
|
-
...this.COOKIE_OPTIONS,
|
|
17
|
-
maxAge: Math.max(cookieMaxAge, 0),
|
|
18
|
-
}));
|
|
19
17
|
res.cookie(this.COOKIE_NAME, JSON.stringify(authData), {
|
|
20
18
|
...this.COOKIE_OPTIONS,
|
|
21
19
|
maxAge: Math.max(cookieMaxAge, 0),
|
|
22
20
|
});
|
|
23
|
-
console.log(`[CookieService] Cookie set successfully`);
|
|
24
21
|
}
|
|
25
22
|
static clearAuthCookies(res) {
|
|
26
|
-
res.clearCookie(this.COOKIE_NAME, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
res.clearCookie(this.COOKIE_NAME, { path: "/" });
|
|
24
|
+
if (this.COOKIE_OPTIONS.domain) {
|
|
25
|
+
res.clearCookie(this.COOKIE_NAME, {
|
|
26
|
+
path: "/",
|
|
27
|
+
domain: this.COOKIE_OPTIONS.domain,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
30
|
}
|
|
31
31
|
static setRefreshedCookies(res, accessToken, refreshToken, refreshTokenExpiresAt) {
|
|
32
32
|
this.setAuthCookies(res, accessToken, refreshToken, refreshTokenExpiresAt);
|
|
33
33
|
}
|
|
34
34
|
static extractTokensFromCookie(request) {
|
|
35
|
+
this.logger.log(`Extracting tokens from cookie: ${this.COOKIE_NAME}`);
|
|
35
36
|
const authCookie = request.cookies?.[this.COOKIE_NAME];
|
|
36
|
-
if (!authCookie)
|
|
37
|
-
console.log(`[CookieService] No cookie found with name: ${this.COOKIE_NAME}`);
|
|
38
|
-
console.log(`[CookieService] Available cookies:`, Object.keys(request.cookies || {}));
|
|
37
|
+
if (!authCookie)
|
|
39
38
|
return undefined;
|
|
40
|
-
}
|
|
41
39
|
try {
|
|
42
40
|
const authData = JSON.parse(authCookie);
|
|
43
|
-
console.log(`[CookieService] Extracted accessToken: ${authData.accessToken?.substring(0, 20)}...`);
|
|
44
41
|
return {
|
|
45
42
|
accessToken: authData.accessToken,
|
|
46
43
|
refreshToken: authData.refreshToken,
|
|
47
44
|
};
|
|
48
45
|
}
|
|
49
46
|
catch (error) {
|
|
50
|
-
console.
|
|
51
|
-
console.error("[CookieService] Cookie value:", authCookie);
|
|
47
|
+
console.log("Failed to parse auth cookie:", error);
|
|
52
48
|
return undefined;
|
|
53
49
|
}
|
|
54
50
|
}
|
|
55
51
|
}
|
|
56
52
|
exports.CookieService = CookieService;
|
|
53
|
+
_a = CookieService;
|
|
54
|
+
CookieService.logger = new common_1.Logger(_a.name);
|
|
57
55
|
CookieService.COOKIE_NAME = cookie_config_1.cookieConfig.cookieName;
|
|
56
|
+
CookieService.COOKIE_DOMAIN = cookie_config_1.cookieConfig.cookieDomain;
|
|
58
57
|
CookieService.COOKIE_OPTIONS = {
|
|
59
58
|
httpOnly: true,
|
|
60
59
|
secure: process.env.NODE_ENV === "production",
|
|
61
60
|
sameSite: process.env.NODE_ENV === "production" ? "none" : "strict",
|
|
62
|
-
domain:
|
|
61
|
+
domain: _a.COOKIE_DOMAIN,
|
|
63
62
|
path: "/",
|
|
64
63
|
};
|
|
65
64
|
//# sourceMappingURL=cookie.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.service.js","sourceRoot":"","sources":["../../../src/core/services/cookie.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookie.service.js","sourceRoot":"","sources":["../../../src/core/services/cookie.service.ts"],"names":[],"mappings":";;;;AACA,yDAAqD;AACrD,2CAAwC;AAOxC,MAAa,aAAa;IAkBxB,MAAM,CAAC,cAAc,CACnB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAI3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAE3B,MAAM,QAAQ,GAAG;YACf,WAAW;YACX,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,qBAAqB,EAAE,qBAAqB,CAAC,OAAO,EAAE;SACvD,CAAC;QAEF,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAElE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrD,GAAG,IAAI,CAAC,cAAc;YACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAKD,MAAM,CAAC,gBAAgB,CAAC,GAAa;QACnC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAE/B,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE;gBAChC,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,mBAAmB,CACxB,GAAa,EACb,WAAmB,EACnB,YAAoB,EACpB,qBAA2B;QAE3B,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;IAC7E,CAAC;IAKD,MAAM,CAAC,uBAAuB,CAC5B,OAAgB;QAEhB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,OAAO;gBACL,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;;AAzFH,sCA0FC;;AAzFyB,oBAAM,GAAG,IAAI,eAAM,CAAC,EAAa,CAAC,IAAI,CAAC,AAAjC,CAAkC;AAExC,yBAAW,GAAG,4BAAY,CAAC,UAAU,AAA1B,CAA2B;AACtC,2BAAa,GAAG,4BAAY,CAAC,YAAY,AAA5B,CAA6B;AAE1C,4BAAc,GAAG;IACvC,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAC7C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;IACnE,MAAM,EAAE,EAAI,CAAC,aAAa;IAC1B,IAAI,EAAE,GAAG;CACD,AAN4B,CAM3B"}
|
|
@@ -25,12 +25,9 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
|
|
|
25
25
|
this.logger = new common_1.Logger(CoreJwtService_1.name);
|
|
26
26
|
}
|
|
27
27
|
async createAccessToken(sessionData) {
|
|
28
|
-
this.logger.log(`Creating access token for session data: ${JSON.stringify(sessionData)}`);
|
|
29
28
|
const ttlSec = date_utils_1.DateUtils.parseExpirationTime(jwt_config_1.jwtConfig.expiresIn);
|
|
30
|
-
this.logger.log(`TTL seconds: ${ttlSec}`);
|
|
31
29
|
const sessionId = await this.sessionService.createSession(sessionData, ttlSec);
|
|
32
30
|
const payload = { sub: sessionId };
|
|
33
|
-
this.logger.log(`Payload: ${JSON.stringify(payload)}`);
|
|
34
31
|
return this.jwtService.sign(payload);
|
|
35
32
|
}
|
|
36
33
|
decodeToken(token) {
|
|
@@ -52,10 +49,8 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
|
|
|
52
49
|
}
|
|
53
50
|
}
|
|
54
51
|
validateTokenSignature(token) {
|
|
55
|
-
this.logger.log(`Validating token signature: ${token}`);
|
|
56
52
|
try {
|
|
57
53
|
const payload = this.verifyToken(token);
|
|
58
|
-
this.logger.log(`Payload: ${JSON.stringify(payload)}`);
|
|
59
54
|
if (!payload) {
|
|
60
55
|
return {
|
|
61
56
|
isValid: false,
|
|
@@ -83,9 +78,7 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
|
|
|
83
78
|
return payload?.sub || null;
|
|
84
79
|
}
|
|
85
80
|
async deleteSessionFromToken(token) {
|
|
86
|
-
this.logger.log(`Deleting session from token: ${token}`);
|
|
87
81
|
const sessionId = this.getSessionIdFromToken(token);
|
|
88
|
-
this.logger.log(`Session ID: ${sessionId}`);
|
|
89
82
|
if (sessionId) {
|
|
90
83
|
await this.sessionService.deleteSession(sessionId);
|
|
91
84
|
return true;
|
|
@@ -93,10 +86,8 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
|
|
|
93
86
|
return false;
|
|
94
87
|
}
|
|
95
88
|
getTokenExpirationTime(token) {
|
|
96
|
-
this.logger.log(`Getting token expiration time: ${token}`);
|
|
97
89
|
try {
|
|
98
90
|
const payload = this.decodeToken(token);
|
|
99
|
-
this.logger.log(`Payload: ${JSON.stringify(payload)}`);
|
|
100
91
|
if (!payload)
|
|
101
92
|
return null;
|
|
102
93
|
const decoded = this.jwtService.decode(token);
|
|
@@ -132,7 +123,6 @@ let CoreJwtService = CoreJwtService_1 = class CoreJwtService {
|
|
|
132
123
|
}
|
|
133
124
|
async getCurrentUser(accessToken) {
|
|
134
125
|
try {
|
|
135
|
-
this.logger.log(`Getting current user from token: ${accessToken}`);
|
|
136
126
|
const payload = this.decodeToken(accessToken);
|
|
137
127
|
this.logger.log(`Payload: ${JSON.stringify(payload)}`);
|
|
138
128
|
if (!payload?.sub)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../src/core/services/jwt.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,qCAAyC;AACzC,oEAAgF;AAChF,kDAA8C;AAC9C,mDAA+C;AAC/C,6DAAyD;AACzD,sEAAyD;AAalD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAGzB,YACmB,UAAsB,EACtB,cAA8B;QAD9B,eAAU,GAAV,UAAU,CAAY;QACtB,mBAAc,GAAd,cAAc,CAAgB;QAJhC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAKvD,CAAC;IAMJ,KAAK,CAAC,iBAAiB,CAAC,WAA2B;QACjD,
|
|
1
|
+
{"version":3,"file":"jwt.service.js","sourceRoot":"","sources":["../../../src/core/services/jwt.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OnModuleInit, OnModuleDestroy } from "@nestjs/common";
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class RedisCacheService implements OnModuleInit, OnModuleDestroy {
|
|
3
|
+
private readonly logger;
|
|
3
4
|
private redis;
|
|
4
5
|
onModuleInit(): Promise<void>;
|
|
5
6
|
onModuleDestroy(): Promise<void>;
|
|
@@ -14,5 +15,9 @@ export declare class RedisService implements OnModuleInit, OnModuleDestroy {
|
|
|
14
15
|
sadd(key: string, ...members: (string | number)[]): Promise<number>;
|
|
15
16
|
smembers(key: string): Promise<string[]>;
|
|
16
17
|
srem(key: string, ...members: (string | number)[]): Promise<number>;
|
|
18
|
+
hget(key: string, field: string): Promise<string | null>;
|
|
19
|
+
hset(key: string, field: string, value: string): Promise<number>;
|
|
20
|
+
hgetall(key: string): Promise<Record<string, string>>;
|
|
21
|
+
hdel(key: string, ...fields: string[]): Promise<number>;
|
|
17
22
|
pipeline(): import("ioredis").ChainableCommander;
|
|
18
23
|
}
|
|
@@ -5,17 +5,33 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var RedisCacheService_1;
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
10
|
+
exports.RedisCacheService = void 0;
|
|
11
|
+
const redis_cache_config_1 = require("../../config/redis-cache.config");
|
|
10
12
|
const common_1 = require("@nestjs/common");
|
|
11
13
|
const ioredis_1 = require("ioredis");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
let RedisCacheService = RedisCacheService_1 = class RedisCacheService {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.logger = new common_1.Logger(RedisCacheService_1.name);
|
|
17
|
+
}
|
|
14
18
|
async onModuleInit() {
|
|
15
|
-
this.redis = new ioredis_1.default(
|
|
19
|
+
this.redis = new ioredis_1.default(redis_cache_config_1.redisCacheConfig);
|
|
20
|
+
this.redis.on("connect", () => {
|
|
21
|
+
this.logger.log(`Connected to Redis Cache at ${redis_cache_config_1.redisCacheConfig.host}:${redis_cache_config_1.redisCacheConfig.port}`);
|
|
22
|
+
});
|
|
23
|
+
this.redis.on("error", (error) => {
|
|
24
|
+
this.logger.error(`Redis Cache connection error: ${error}`);
|
|
25
|
+
});
|
|
26
|
+
this.redis.on("close", () => {
|
|
27
|
+
this.logger.warn(`Redis Cache connection closed`);
|
|
28
|
+
});
|
|
16
29
|
}
|
|
17
30
|
async onModuleDestroy() {
|
|
18
|
-
|
|
31
|
+
if (this.redis) {
|
|
32
|
+
await this.redis.quit();
|
|
33
|
+
this.logger.log("Redis Cache connection closed");
|
|
34
|
+
}
|
|
19
35
|
}
|
|
20
36
|
async get(key) {
|
|
21
37
|
return this.redis.get(key);
|
|
@@ -55,12 +71,24 @@ let RedisService = class RedisService {
|
|
|
55
71
|
async srem(key, ...members) {
|
|
56
72
|
return this.redis.srem(key, ...members);
|
|
57
73
|
}
|
|
74
|
+
async hget(key, field) {
|
|
75
|
+
return this.redis.hget(key, field);
|
|
76
|
+
}
|
|
77
|
+
async hset(key, field, value) {
|
|
78
|
+
return this.redis.hset(key, field, value);
|
|
79
|
+
}
|
|
80
|
+
async hgetall(key) {
|
|
81
|
+
return this.redis.hgetall(key);
|
|
82
|
+
}
|
|
83
|
+
async hdel(key, ...fields) {
|
|
84
|
+
return this.redis.hdel(key, ...fields);
|
|
85
|
+
}
|
|
58
86
|
pipeline() {
|
|
59
87
|
return this.redis.pipeline();
|
|
60
88
|
}
|
|
61
89
|
};
|
|
62
|
-
exports.
|
|
63
|
-
exports.
|
|
90
|
+
exports.RedisCacheService = RedisCacheService;
|
|
91
|
+
exports.RedisCacheService = RedisCacheService = RedisCacheService_1 = __decorate([
|
|
64
92
|
(0, common_1.Injectable)()
|
|
65
|
-
],
|
|
66
|
-
//# sourceMappingURL=redis.service.js.map
|
|
93
|
+
], RedisCacheService);
|
|
94
|
+
//# sourceMappingURL=redis-cache.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-cache.service.js","sourceRoot":"","sources":["../../../src/core/services/redis-cache.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,14 +5,27 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var RedisService_1;
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
exports.RedisService = void 0;
|
|
10
11
|
const redis_config_1 = require("../../config/redis.config");
|
|
11
12
|
const common_1 = require("@nestjs/common");
|
|
12
13
|
const ioredis_1 = require("ioredis");
|
|
13
|
-
let RedisService = class RedisService {
|
|
14
|
+
let RedisService = RedisService_1 = class RedisService {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.logger = new common_1.Logger(RedisService_1.name);
|
|
17
|
+
}
|
|
14
18
|
async onModuleInit() {
|
|
15
19
|
this.redis = new ioredis_1.default(redis_config_1.redisConfig);
|
|
20
|
+
this.redis.on("connect", () => {
|
|
21
|
+
`Connected to Redis at ${redis_config_1.redisConfig.host}:${redis_config_1.redisConfig.port}`;
|
|
22
|
+
});
|
|
23
|
+
this.redis.on("error", (error) => {
|
|
24
|
+
this.logger.error(`Redis connection error: ${error}`);
|
|
25
|
+
});
|
|
26
|
+
this.redis.on("close", () => {
|
|
27
|
+
this.logger.warn(`Redis connection closed`);
|
|
28
|
+
});
|
|
16
29
|
}
|
|
17
30
|
async onModuleDestroy() {
|
|
18
31
|
await this.redis.quit();
|
|
@@ -60,7 +73,7 @@ let RedisService = class RedisService {
|
|
|
60
73
|
}
|
|
61
74
|
};
|
|
62
75
|
exports.RedisService = RedisService;
|
|
63
|
-
exports.RedisService = RedisService = __decorate([
|
|
76
|
+
exports.RedisService = RedisService = RedisService_1 = __decorate([
|
|
64
77
|
(0, common_1.Injectable)()
|
|
65
78
|
], RedisService);
|
|
66
79
|
//# sourceMappingURL=redis.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/core/services/redis.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../../src/core/services/redis.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
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.RepositoryWrapperService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const request_context_service_1 = require("../services/request-context.service");
|
|
12
|
+
let RepositoryWrapperService = class RepositoryWrapperService {
|
|
13
|
+
wrap(repository) {
|
|
14
|
+
const hasCompanyId = this.hasCompanyIdColumn(repository);
|
|
15
|
+
if (!hasCompanyId) {
|
|
16
|
+
return repository;
|
|
17
|
+
}
|
|
18
|
+
return new Proxy(repository, {
|
|
19
|
+
get: (target, prop) => {
|
|
20
|
+
const original = target[prop];
|
|
21
|
+
if (typeof original === "function" &&
|
|
22
|
+
(prop === "find" ||
|
|
23
|
+
prop === "findOne" ||
|
|
24
|
+
prop === "findBy" ||
|
|
25
|
+
prop === "findOneBy" ||
|
|
26
|
+
prop === "count" ||
|
|
27
|
+
prop === "countBy" ||
|
|
28
|
+
prop === "exists" ||
|
|
29
|
+
prop === "existsBy")) {
|
|
30
|
+
return (...args) => {
|
|
31
|
+
const companyId = this.getCompanyId();
|
|
32
|
+
if (!companyId) {
|
|
33
|
+
return original.apply(target, args);
|
|
34
|
+
}
|
|
35
|
+
const modifiedArgs = this.modifyQueryArgs(prop, args, companyId);
|
|
36
|
+
return original.apply(target, modifiedArgs);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return original;
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getCompanyId() {
|
|
44
|
+
const user = request_context_service_1.RequestContextService.getCurrentUser();
|
|
45
|
+
return user?.companyId;
|
|
46
|
+
}
|
|
47
|
+
hasCompanyIdColumn(repository) {
|
|
48
|
+
return repository.metadata.columns.some((column) => column.propertyName === "companyId");
|
|
49
|
+
}
|
|
50
|
+
modifyQueryArgs(method, args, companyId) {
|
|
51
|
+
if (method === "findBy" ||
|
|
52
|
+
method === "findOneBy" ||
|
|
53
|
+
method === "countBy" ||
|
|
54
|
+
method === "existsBy") {
|
|
55
|
+
if (args[0]) {
|
|
56
|
+
if (Array.isArray(args[0])) {
|
|
57
|
+
args[0] = args[0].map((w) => ({ ...w, companyId }));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
args[0] = { ...args[0], companyId };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
args[0] = { companyId };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
if (args[0]) {
|
|
69
|
+
if (args[0].where) {
|
|
70
|
+
if (Array.isArray(args[0].where)) {
|
|
71
|
+
args[0].where = args[0].where.map((w) => ({
|
|
72
|
+
...w,
|
|
73
|
+
companyId,
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
args[0].where = { ...args[0].where, companyId };
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
args[0].where = { companyId };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
args[0] = { where: { companyId } };
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return args;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.RepositoryWrapperService = RepositoryWrapperService;
|
|
92
|
+
exports.RepositoryWrapperService = RepositoryWrapperService = __decorate([
|
|
93
|
+
(0, common_1.Injectable)()
|
|
94
|
+
], RepositoryWrapperService);
|
|
95
|
+
//# sourceMappingURL=repository-wrapper.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository-wrapper.service.js","sourceRoot":"","sources":["../../../src/core/services/repository-wrapper.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RedisService } from "../services/redis.service";
|
|
2
2
|
export interface CurrentUserDto {
|
|
3
|
-
|
|
3
|
+
companyId: number;
|
|
4
|
+
uuid: string;
|
|
4
5
|
userId: number;
|
|
5
6
|
orgUnitId: number;
|
|
6
7
|
email: string;
|
|
@@ -12,7 +13,6 @@ export interface CurrentUserDto {
|
|
|
12
13
|
}
|
|
13
14
|
export declare class SessionService {
|
|
14
15
|
private readonly redisService;
|
|
15
|
-
private readonly logger;
|
|
16
16
|
constructor(redisService: RedisService);
|
|
17
17
|
private sessionKey;
|
|
18
18
|
private userSessionsKey;
|