@zorionapp/gg-core 5.0.15 → 5.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/gg-auth/gg-auth.module-options.d.ts +10 -0
- package/src/gg-auth/services/gg-bearer-auth.service.d.ts +3 -0
- package/src/gg-auth/services/gg-bearer-auth.service.js +17 -3
- package/src/gg-auth/services/gg-bearer-auth.service.js.map +1 -1
- package/src/gg-database/config/mikroorm.config.js +1 -1
- package/src/gg-database/config/mikroorm.config.js.map +1 -1
- package/src/gg-micro/micro.client.js +2 -2
- package/src/gg-micro/micro.client.js.map +1 -1
package/package.json
CHANGED
|
@@ -24,6 +24,16 @@ export interface GgAuthOptions {
|
|
|
24
24
|
* not required with authBearerService
|
|
25
25
|
*/
|
|
26
26
|
ggMerchantsHost?: string;
|
|
27
|
+
/**
|
|
28
|
+
* TTL for bearer auth cache entries (`auth:{accessToken}`) in seconds.
|
|
29
|
+
* Defaults to 30 seconds.
|
|
30
|
+
*/
|
|
31
|
+
authCacheTtlSeconds?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Timeout for /jwt/check HTTP call in milliseconds.
|
|
34
|
+
* Defaults to 3000 ms.
|
|
35
|
+
*/
|
|
36
|
+
jwtCheckTimeoutMs?: number;
|
|
27
37
|
}
|
|
28
38
|
interface GgAuthCustomServices {
|
|
29
39
|
/**
|
|
@@ -16,6 +16,8 @@ export declare class GgBearerAuthService implements AuthService {
|
|
|
16
16
|
private readonly ggCache;
|
|
17
17
|
private readonly baseUrl;
|
|
18
18
|
private readonly logger;
|
|
19
|
+
private readonly authCacheTtlSeconds;
|
|
20
|
+
private readonly jwtCheckTimeoutMs;
|
|
19
21
|
constructor(options: GgAuthOptions, request: Request, http: HttpService, ggCache: GgCacheService);
|
|
20
22
|
/**
|
|
21
23
|
* @param accessToken
|
|
@@ -36,4 +38,5 @@ export declare class GgBearerAuthService implements AuthService {
|
|
|
36
38
|
* @protected
|
|
37
39
|
*/
|
|
38
40
|
protected fetchAndCacheUserDto(accessToken: string, cacheKey: string): Promise<UserDto>;
|
|
41
|
+
private getPositiveNumberOrFallback;
|
|
39
42
|
}
|
|
@@ -8,6 +8,7 @@ const axios_1 = require("@nestjs/axios");
|
|
|
8
8
|
const common_1 = require("@nestjs/common");
|
|
9
9
|
const class_transformer_1 = require("class-transformer");
|
|
10
10
|
const class_validator_1 = require("class-validator");
|
|
11
|
+
const luxon_1 = require("luxon");
|
|
11
12
|
const nestjs_cls_1 = require("nestjs-cls");
|
|
12
13
|
const rxjs_1 = require("rxjs");
|
|
13
14
|
const gg_cache_1 = require("../../gg-cache");
|
|
@@ -20,6 +21,8 @@ let GgBearerAuthService = GgBearerAuthService_1 = class GgBearerAuthService {
|
|
|
20
21
|
this.ggCache = ggCache;
|
|
21
22
|
this.logger = new common_1.Logger(GgBearerAuthService_1.name);
|
|
22
23
|
this.baseUrl = `http://${this.options.ggUsersHost}/users/api/v1`;
|
|
24
|
+
this.authCacheTtlSeconds = this.getPositiveNumberOrFallback(this.options.authCacheTtlSeconds, 30);
|
|
25
|
+
this.jwtCheckTimeoutMs = this.getPositiveNumberOrFallback(this.options.jwtCheckTimeoutMs, 3000);
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* @param accessToken
|
|
@@ -54,7 +57,10 @@ let GgBearerAuthService = GgBearerAuthService_1 = class GgBearerAuthService {
|
|
|
54
57
|
fetchAndCacheUserDto(accessToken, cacheKey) {
|
|
55
58
|
const onSuccess = async (value) => {
|
|
56
59
|
this.logger.log({ msg: `User queried successfully`, userId: value.data.user.ggId });
|
|
57
|
-
await this.ggCache.set(cacheKey, value.data.user, {
|
|
60
|
+
await this.ggCache.set(cacheKey, value.data.user, {
|
|
61
|
+
namespaced: false,
|
|
62
|
+
ttl: luxon_1.Duration.fromObject({ seconds: this.authCacheTtlSeconds }),
|
|
63
|
+
});
|
|
58
64
|
};
|
|
59
65
|
const onError = async (error) => {
|
|
60
66
|
if (error.code === 'ECONNREFUSED') {
|
|
@@ -63,12 +69,20 @@ let GgBearerAuthService = GgBearerAuthService_1 = class GgBearerAuthService {
|
|
|
63
69
|
}
|
|
64
70
|
if (error.code === 'ERR_BAD_REQUEST') {
|
|
65
71
|
this.logger.warn({ msg: `User authentication declined with given JWT`, error: error.message });
|
|
66
|
-
await this.ggCache.set(cacheKey, new dto_1.UserDto(), {
|
|
72
|
+
await this.ggCache.set(cacheKey, new dto_1.UserDto(), {
|
|
73
|
+
namespaced: false,
|
|
74
|
+
ttl: luxon_1.Duration.fromObject({ seconds: this.authCacheTtlSeconds }),
|
|
75
|
+
});
|
|
67
76
|
return error;
|
|
68
77
|
}
|
|
69
78
|
this.logger.error({ msg: `Internal server error`, error });
|
|
70
79
|
};
|
|
71
|
-
return (0, rxjs_1.firstValueFrom)(this.http.post(`${this.baseUrl}/jwt/check`, { accessToken }).pipe((0, rxjs_1.tap)({ next: onSuccess, error: onError }), (0, rxjs_1.map)((res) => (0, class_transformer_1.plainToInstance)(dto_1.UserDto, res.data.user))));
|
|
80
|
+
return (0, rxjs_1.firstValueFrom)(this.http.post(`${this.baseUrl}/jwt/check`, { accessToken }, { timeout: this.jwtCheckTimeoutMs }).pipe((0, rxjs_1.tap)({ next: onSuccess, error: onError }), (0, rxjs_1.map)((res) => (0, class_transformer_1.plainToInstance)(dto_1.UserDto, res.data.user))));
|
|
81
|
+
}
|
|
82
|
+
getPositiveNumberOrFallback(value, fallback) {
|
|
83
|
+
if (Number.isFinite(value) && value > 0)
|
|
84
|
+
return value;
|
|
85
|
+
return fallback;
|
|
72
86
|
}
|
|
73
87
|
};
|
|
74
88
|
exports.GgBearerAuthService = GgBearerAuthService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-bearer-auth.service.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-auth/services/gg-bearer-auth.service.ts"],"names":[],"mappings":";;;;;AAAA,mDAAoD;AACpD,yCAA4C;AAC5C,2CAA4D;AAE5D,yDAAoD;AACpD,qDAAwC;AAGxC,2CAAqC;AACrC,+BAAgD;AAChD,6CAAgD;AAChD,sEAAwF;AAMjF,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;
|
|
1
|
+
{"version":3,"file":"gg-bearer-auth.service.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-auth/services/gg-bearer-auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ class MikroOrmConfig {
|
|
|
12
12
|
this.password = (0, lodash_1.get)(process.env, 'DB_PASSWORD', '');
|
|
13
13
|
this.dbName = (0, lodash_1.get)(process.env, 'DB_DATABASE', '');
|
|
14
14
|
this.schema = (0, lodash_1.get)(process.env, 'DB_SCHEMA', '');
|
|
15
|
-
this.debug = (0, lodash_1.get)(process.env, 'DB_DEBUG', '
|
|
15
|
+
this.debug = (0, lodash_1.get)(process.env, 'DB_DEBUG', 'false') === 'true';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikroorm.config.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-database/config/mikroorm.config.ts"],"names":[],"mappings":";;;;AAAA,qDAAoE;AACpE,mCAA6B;AAE7B,+CAAiD;AAEjD,MAAM,cAAc;IAApB;QAEkB,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAG/C,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGnD,aAAQ,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGvD,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGrD,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAInD,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"mikroorm.config.js","sourceRoot":"","sources":["../../../../../../libs/gg-core/src/gg-database/config/mikroorm.config.ts"],"names":[],"mappings":";;;;AAAA,qDAAoE;AACpE,mCAA6B;AAE7B,+CAAiD;AAEjD,MAAM,cAAc;IAApB;QAEkB,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAG/C,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGnD,aAAQ,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGvD,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAGrD,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QAInD,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IACpF,CAAC;CAAA;AAjBiB;IADf,IAAA,4BAAU,GAAE;;4CACkD;AAG/C;IADf,IAAA,4BAAU,GAAE;;4CACsD;AAGnD;IADf,IAAA,4BAAU,GAAE;;gDAC0D;AAGvD;IADf,IAAA,4BAAU,GAAE;;8CACwD;AAGrD;IADf,IAAA,4BAAU,GAAE;;8CACsD;AAInD;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;6CACsE;AAGvE,QAAA,cAAc,GAAG,IAAA,0BAAc,EAAC,cAAc,CAAC,CAAC"}
|
|
@@ -29,7 +29,7 @@ class MicroClient {
|
|
|
29
29
|
const pattern = this.getPattern(command);
|
|
30
30
|
const $ = this.clientProxy
|
|
31
31
|
.send(pattern, this.toRmqRecord(command, options.priority, options.customHeaders))
|
|
32
|
-
.pipe((0, rxjs_1.tap)(() => this.logger.
|
|
32
|
+
.pipe((0, rxjs_1.tap)(() => this.logger.debug({ msg: 'RMQ command sent', pattern })), (0, rxjs_1.timeout)(options.timeout.as('milliseconds')), (0, rxjs_1.catchError)((e) => {
|
|
33
33
|
this.logger.error({ msg: 'RMQ command error', pattern, payload: command, error: e });
|
|
34
34
|
return (0, rxjs_1.throwError)(() => e);
|
|
35
35
|
}));
|
|
@@ -57,7 +57,7 @@ class MicroClient {
|
|
|
57
57
|
emit(event, options) {
|
|
58
58
|
options = this.mergeWithDefaultOptions(options);
|
|
59
59
|
const pattern = event.constructor.pattern;
|
|
60
|
-
return this.clientProxy.emit(pattern, event.data).pipe((0, rxjs_1.tap)(() => this.logger.
|
|
60
|
+
return this.clientProxy.emit(pattern, event.data).pipe((0, rxjs_1.tap)(() => this.logger.debug({ msg: 'RMQ event sent', pattern })), (0, rxjs_1.timeout)(options.timeout.as('milliseconds')), (0, rxjs_1.catchError)((e) => {
|
|
61
61
|
this.logger.error({ msg: 'RMQ event error', pattern, payload: event, error: e });
|
|
62
62
|
return (0, rxjs_1.throwError)(() => e);
|
|
63
63
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"micro.client.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/micro.client.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEpD,2CAAwC;AACxC,yDAAiF;AACjF,yDAAoD;AACpD,mCAA6B;AAC7B,iCAAiC;AAEjC,+BAA6E;AAW7E,MAAa,WAAW;IAItB,YACmB,WAAwB,EACxB,IAAY,EACZ,UAAsB,EACtB,IAAqB;QAHrB,gBAAW,GAAX,WAAW,CAAa;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAY;QACtB,SAAI,GAAJ,IAAI,CAAiB;QAPvB,WAAM,GAAG,IAAI,eAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,mBAAc,GAAsB,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAQlH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAW,OAA6B,EAAE,OAA2B;QAC9E,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW;aACvB,IAAI,CAAkB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aAClG,IAAI,CACH,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"micro.client.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/micro.client.ts"],"names":[],"mappings":";;;AAAA,mDAAoD;AAEpD,2CAAwC;AACxC,yDAAiF;AACjF,yDAAoD;AACpD,mCAA6B;AAC7B,iCAAiC;AAEjC,+BAA6E;AAW7E,MAAa,WAAW;IAItB,YACmB,WAAwB,EACxB,IAAY,EACZ,UAAsB,EACtB,IAAqB;QAHrB,gBAAW,GAAX,WAAW,CAAa;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAY;QACtB,SAAI,GAAJ,IAAI,CAAiB;QAPvB,WAAM,GAAG,IAAI,eAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,mBAAc,GAAsB,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAQlH,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAW,OAA6B,EAAE,OAA2B;QAC9E,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW;aACvB,IAAI,CAAkB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;aAClG,IAAI,CACH,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,EAClE,IAAA,cAAO,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAC3C,IAAA,iBAAU,EAAC,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAErF,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CAAC;QAEJ,OAAO,OAAO,CAAC,QAAQ;YACrB,CAAC,CAAC,CAAC,CAAC,IAAI,CACJ,IAAA,UAAG,EAAC,CAAC,KAAK,EAAE,EAAE;gBACZ,mEAAmE;gBACnE,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAEtC,sFAAsF;gBACtF,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAA,mCAAe,EAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAE3D,OAAO;oBACL,IAAI,EAAE,IAAA,mCAAe,EAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;oBAC7C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,mCAAe,EAAC,aAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;iBACnD,CAAC;YACJ,CAAC,CAAC,CACH;YACH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAI,KAAkB,EAAE,OAA2B;QAC5D,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAI,KAAK,CAAC,WAA+B,CAAC,OAAO,CAAC;QAE/D,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CACpD,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,EAChE,IAAA,cAAO,EAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAC3C,IAAA,iBAAU,EAAC,CAAC,CAAC,EAAE,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAEjF,OAAO,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACO,WAAW,CACnB,OAAuC,EACvC,QAAQ,GAAG,CAAC,EACZ,gBAAwC,EAAE,EAC1C,KAAc;QAEd,OAAO,IAAI,gCAAgB,CAAC,OAAO,CAAC,IAAI,CAAC;aACtC,UAAU,CAAC;YACV,OAAO,EAAE;gBACP,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;gBACpC,KAAK;gBACL,GAAG,aAAa;aACjB;YACD,QAAQ;SACT,CAAC;aACD,KAAK,EAAE,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAAC,OAA2B;QACzD,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,OAAO,EAAE,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACK,UAAU,CAAW,OAA6B;QACxD,OAAQ,OAAO,CAAC,WAAiC,CAAC,OAAO,CAAC;IAC5D,CAAC;CACF;AA5HD,kCA4HC"}
|