mongodb-dynamic-api 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/package.json +1 -1
- package/src/gateways/base.gateway.js +2 -2
- package/src/gateways/base.gateway.js.map +1 -1
- package/src/guards/base-policies.guard.d.ts +13 -1
- package/src/guards/base-policies.guard.js +52 -2
- package/src/guards/base-policies.guard.js.map +1 -1
- package/src/guards/index.d.ts +1 -0
- package/src/guards/index.js +1 -0
- package/src/guards/index.js.map +1 -1
- package/src/guards/jwt-socket.guard.d.ts +11 -0
- package/src/guards/jwt-socket.guard.js +70 -0
- package/src/guards/jwt-socket.guard.js.map +1 -0
- package/src/helpers/format.helper.d.ts +1 -1
- package/src/helpers/format.helper.js +1 -1
- package/src/helpers/format.helper.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/logger/index.d.ts +1 -0
- package/src/logger/index.js +18 -0
- package/src/logger/index.js.map +1 -0
- package/src/logger/mongo-dynamic-api.logger.d.ts +10 -0
- package/src/logger/mongo-dynamic-api.logger.js +44 -0
- package/src/logger/mongo-dynamic-api.logger.js.map +1 -0
- package/src/mixins/index.d.ts +1 -1
- package/src/mixins/index.js +1 -1
- package/src/mixins/index.js.map +1 -1
- package/src/mixins/policies-guard.mixin.d.ts +7 -0
- package/src/mixins/{create-policies-guard.mixin.js → policies-guard.mixin.js} +28 -4
- package/src/mixins/policies-guard.mixin.js.map +1 -0
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +2 -1
- package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -1
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js +2 -2
- package/src/modules/auth/mixins/auth-policies-guard.mixin.js.map +1 -1
- package/src/modules/auth/services/base-auth.service.js +2 -1
- package/src/modules/auth/services/base-auth.service.js.map +1 -1
- package/src/routes/aggregate/aggregate-controller.mixin.js +3 -2
- package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate-gateway.mixin.js +9 -8
- package/src/routes/aggregate/aggregate-gateway.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-controller.mixin.js +1 -1
- package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js +7 -3
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-controller.mixin.js +1 -1
- package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js +6 -3
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-controller.mixin.js +1 -1
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.js +7 -3
- package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-controller.mixin.js +1 -1
- package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.js +7 -3
- package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +6 -3
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +6 -3
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-controller.mixin.js +1 -1
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.mixin.js +6 -3
- package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-controller.mixin.js +1 -1
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js +6 -3
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.js +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js +6 -3
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-controller.mixin.js +1 -1
- package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js +6 -3
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-controller.mixin.js +1 -1
- package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js +6 -3
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
- package/src/services/base/base.service.d.ts +1 -0
- package/src/services/base/base.service.js +22 -0
- package/src/services/base/base.service.js.map +1 -1
- package/src/version.json +1 -1
- package/test/dynamic-api-for-feature.e2e-spec.js +1 -27
- package/test/dynamic-api-for-feature.e2e-spec.js.map +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/mixins/create-policies-guard.mixin.d.ts +0 -6
- package/src/mixins/create-policies-guard.mixin.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [2.11.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.10.1...v2.11.0) (2025-07-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### socket
|
|
7
|
+
|
|
8
|
+
* **socket:** add policies guard mixin ([bc739b4](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/bc739b4b8ea5e026fc93a5c70e1dfae454323c4f))
|
|
9
|
+
|
|
10
|
+
## [2.10.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.10.0...v2.10.1) (2025-07-19)
|
|
11
|
+
|
|
3
12
|
## [2.10.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.9.0...v2.10.0) (2025-02-22)
|
|
4
13
|
|
|
5
14
|
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseGateway = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
4
|
const websockets_1 = require("@nestjs/websockets");
|
|
6
5
|
const lodash_1 = require("lodash");
|
|
7
6
|
const dynamic_api_module_1 = require("../dynamic-api.module");
|
|
7
|
+
const logger_1 = require("../logger");
|
|
8
8
|
class BaseGateway {
|
|
9
9
|
constructor(jwtService) {
|
|
10
10
|
this.jwtService = jwtService;
|
|
11
|
-
this.logger = new
|
|
11
|
+
this.logger = new logger_1.MongoDBDynamicApiLogger(BaseGateway.name);
|
|
12
12
|
}
|
|
13
13
|
addUserToSocket(socket, isPublic) {
|
|
14
14
|
const isAuthEnabled = dynamic_api_module_1.DynamicApiModule.state.get('isAuthEnabled');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":";;;AACA,mDAAiD;AACjD,mCAAiC;AAEjC,8DAAyD;AAEzD,sCAAoD;AAGpD,MAAsB,WAAW;IAG/B,YAAyC,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAF9C,WAAM,GAAG,IAAI,gCAAuB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEN,CAAC;IAEzD,eAAe,CAAC,MAA8B,EAAE,QAAiB;QACzE,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAqB,CAAC;QACjE,IAAI,QAAyD,CAAC;QAE9D,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;oBAC7C,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;iBAChD,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAGD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;YAE7C,MAAM,CAAC,IAAI,GAAG,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAES,eAAe,CAAmB,IAAO;QACjD,OAAO,OAAO,CAAC,KAAK,IAAI,IAAI;YAC1B,KAAK,CAAC,OAAO,CACX,IACD,CAAC,GAAG,CAAC;YAEJ,IACD,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;CACF;AA/CD,kCA+CC"}
|
|
@@ -28,7 +28,7 @@ import { Model } from 'mongoose';
|
|
|
28
28
|
import { AbilityPredicate, RouteType } from '../interfaces';
|
|
29
29
|
import { BaseEntity } from '../models';
|
|
30
30
|
import { BaseService } from '../services';
|
|
31
|
-
|
|
31
|
+
declare abstract class BasePoliciesGuard<Entity extends BaseEntity> extends BaseService<Entity> implements CanActivate {
|
|
32
32
|
protected readonly model: Model<Entity>;
|
|
33
33
|
protected routeType: RouteType;
|
|
34
34
|
protected entity: Type<Entity>;
|
|
@@ -37,3 +37,15 @@ export declare abstract class BasePoliciesGuard<Entity extends BaseEntity> exten
|
|
|
37
37
|
protected constructor(model: Model<Entity>);
|
|
38
38
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
39
39
|
}
|
|
40
|
+
declare abstract class BaseSocketPoliciesGuard<Entity extends BaseEntity> extends BaseService<Entity> implements CanActivate {
|
|
41
|
+
protected readonly model: Model<Entity>;
|
|
42
|
+
protected routeType: RouteType;
|
|
43
|
+
protected abilityPredicate: AbilityPredicate<Entity> | undefined;
|
|
44
|
+
protected entity: Type<Entity>;
|
|
45
|
+
protected queryToPipeline?: (query: unknown) => PipelineStage[];
|
|
46
|
+
protected isPublic: boolean | undefined;
|
|
47
|
+
private logger;
|
|
48
|
+
protected constructor(model: Model<Entity>);
|
|
49
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
50
|
+
}
|
|
51
|
+
export { BasePoliciesGuard, BaseSocketPoliciesGuard };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BasePoliciesGuard = void 0;
|
|
3
|
+
exports.BaseSocketPoliciesGuard = exports.BasePoliciesGuard = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
+
const websockets_1 = require("@nestjs/websockets");
|
|
6
|
+
const logger_1 = require("../logger");
|
|
5
7
|
const services_1 = require("../services");
|
|
6
8
|
class BasePoliciesGuard extends services_1.BaseService {
|
|
7
9
|
constructor(model) {
|
|
@@ -9,7 +11,7 @@ class BasePoliciesGuard extends services_1.BaseService {
|
|
|
9
11
|
this.model = model;
|
|
10
12
|
}
|
|
11
13
|
async canActivate(context) {
|
|
12
|
-
|
|
14
|
+
const { user, query, params } = context.switchToHttp().getRequest();
|
|
13
15
|
if (this.abilityPredicate) {
|
|
14
16
|
if (!user) {
|
|
15
17
|
throw new common_1.ForbiddenException('Access Denied');
|
|
@@ -29,4 +31,52 @@ class BasePoliciesGuard extends services_1.BaseService {
|
|
|
29
31
|
}
|
|
30
32
|
}
|
|
31
33
|
exports.BasePoliciesGuard = BasePoliciesGuard;
|
|
34
|
+
class BaseSocketPoliciesGuard extends services_1.BaseService {
|
|
35
|
+
constructor(model) {
|
|
36
|
+
super(model);
|
|
37
|
+
this.model = model;
|
|
38
|
+
}
|
|
39
|
+
async canActivate(context) {
|
|
40
|
+
this.logger = new logger_1.MongoDBDynamicApiLogger(`SocketPoliciesGuard-${this.routeType}-${this.entity?.name}`);
|
|
41
|
+
const [socket, data, _, _event] = context.getArgs();
|
|
42
|
+
this.logger.debug('canActivate', {
|
|
43
|
+
socketId: socket.id,
|
|
44
|
+
socketUser: socket.user,
|
|
45
|
+
data,
|
|
46
|
+
event: _event,
|
|
47
|
+
isPublic: this.isPublic,
|
|
48
|
+
abilityPredicate: !!this.abilityPredicate,
|
|
49
|
+
});
|
|
50
|
+
if (!this.isPublic) {
|
|
51
|
+
if (!socket.user) {
|
|
52
|
+
this.logger.warn('No user data in socket');
|
|
53
|
+
throw new websockets_1.WsException('Access Denied');
|
|
54
|
+
}
|
|
55
|
+
if (this.abilityPredicate) {
|
|
56
|
+
try {
|
|
57
|
+
this.user = socket.user;
|
|
58
|
+
const { id } = data || {};
|
|
59
|
+
if (id) {
|
|
60
|
+
this.logger.debug(`Finding one document with id: ${id} and ability predicate`);
|
|
61
|
+
await this.findOneDocumentWithAbilityPredicate(id);
|
|
62
|
+
}
|
|
63
|
+
else if (this.routeType === 'Aggregate' && data && this.queryToPipeline) {
|
|
64
|
+
this.logger.debug('Aggregating documents with ability predicate');
|
|
65
|
+
await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
this.logger.debug('Finding many documents with ability predicate');
|
|
69
|
+
await this.findManyDocumentsWithAbilityPredicate(data);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.logger.error('Error in canActivate', error);
|
|
74
|
+
throw new websockets_1.WsException(error.message);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.BaseSocketPoliciesGuard = BaseSocketPoliciesGuard;
|
|
32
82
|
//# sourceMappingURL=base-policies.guard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;
|
|
1
|
+
{"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":"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"}
|
package/src/guards/index.d.ts
CHANGED
package/src/guards/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./base-policies.guard"), exports);
|
|
18
18
|
__exportStar(require("./dynamic-api-jwt-auth.guard"), exports);
|
|
19
|
+
__exportStar(require("./jwt-socket.guard"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/src/guards/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+DAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+DAA6C;AAC7C,qDAAmC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Socket } from 'socket.io';
|
|
3
|
+
export declare class JwtSocketGuard implements CanActivate {
|
|
4
|
+
protected readonly isPublic: boolean;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
constructor(isPublic?: boolean);
|
|
7
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
8
|
+
protected getUserFromSocket(socket: Socket): Promise<unknown>;
|
|
9
|
+
private getAccessTokenFromSocketQuery;
|
|
10
|
+
private extractUserFromToken;
|
|
11
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JwtSocketGuard = void 0;
|
|
4
|
+
const jwt_1 = require("@nestjs/jwt");
|
|
5
|
+
const websockets_1 = require("@nestjs/websockets");
|
|
6
|
+
const lodash_1 = require("lodash");
|
|
7
|
+
const dynamic_api_module_1 = require("../dynamic-api.module");
|
|
8
|
+
const logger_1 = require("../logger");
|
|
9
|
+
class JwtSocketGuard {
|
|
10
|
+
constructor(isPublic = false) {
|
|
11
|
+
this.isPublic = isPublic;
|
|
12
|
+
this.logger = new logger_1.MongoDBDynamicApiLogger(JwtSocketGuard.name);
|
|
13
|
+
}
|
|
14
|
+
async canActivate(context) {
|
|
15
|
+
const [socket] = context.getArgs();
|
|
16
|
+
this.logger.debug('canActivate', {
|
|
17
|
+
isPublic: this.isPublic,
|
|
18
|
+
socketId: socket?.id,
|
|
19
|
+
});
|
|
20
|
+
if (!this.isPublic) {
|
|
21
|
+
this.logger.debug('Checking user from socket query');
|
|
22
|
+
const user = await this.getUserFromSocket(socket);
|
|
23
|
+
if ((0, lodash_1.isEmpty)(user)) {
|
|
24
|
+
this.logger.warn('No user data');
|
|
25
|
+
throw new websockets_1.WsException('Unauthorized');
|
|
26
|
+
}
|
|
27
|
+
socket.user = user;
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
async getUserFromSocket(socket) {
|
|
32
|
+
const accessToken = this.getAccessTokenFromSocketQuery(socket);
|
|
33
|
+
return this.extractUserFromToken(accessToken);
|
|
34
|
+
}
|
|
35
|
+
getAccessTokenFromSocketQuery(socket) {
|
|
36
|
+
const accessToken = socket.handshake.query.accessToken;
|
|
37
|
+
this.logger.debug('getAccessTokenFromSocketQuery', {
|
|
38
|
+
accessToken: !!accessToken,
|
|
39
|
+
});
|
|
40
|
+
if (!accessToken) {
|
|
41
|
+
this.logger.warn('No access token provided in socket query');
|
|
42
|
+
throw new websockets_1.WsException('Unauthorized');
|
|
43
|
+
}
|
|
44
|
+
return accessToken;
|
|
45
|
+
}
|
|
46
|
+
async extractUserFromToken(accessToken) {
|
|
47
|
+
this.logger.debug('extractUserFromToken', { accessToken: !!accessToken });
|
|
48
|
+
const jwtService = new jwt_1.JwtService({
|
|
49
|
+
secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
|
|
50
|
+
signOptions: {
|
|
51
|
+
expiresIn: dynamic_api_module_1.DynamicApiModule.state.get('jwtExpirationTime'),
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
try {
|
|
55
|
+
const { iat, exp, ...user } = await jwtService.verifyAsync(accessToken, {
|
|
56
|
+
secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
|
|
57
|
+
ignoreExpiration: false,
|
|
58
|
+
});
|
|
59
|
+
this.logger.debug('User extracted from token', { userEmail: user?.email });
|
|
60
|
+
return user;
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
this.logger.warn('extractUserFromToken jwtService.verify error');
|
|
64
|
+
this.logger.warn(e.message);
|
|
65
|
+
throw new websockets_1.WsException('Unauthorized');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.JwtSocketGuard = JwtSocketGuard;
|
|
70
|
+
//# sourceMappingURL=jwt-socket.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-socket.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/jwt-socket.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { RouteType } from '../interfaces';
|
|
|
2
2
|
declare function pascalCase(str?: string): string;
|
|
3
3
|
declare function isValidVersion(version: string): boolean;
|
|
4
4
|
declare function getDisplayedName(apiTag: string | undefined, entityName: string, subPath: string | undefined): string;
|
|
5
|
-
declare function provideName(routeType: RouteType, displayedName: string, version: string | undefined, suffix: 'Service' | 'Controller' | 'PoliciesGuard' | 'Gateway'): string;
|
|
5
|
+
declare function provideName(routeType: RouteType, displayedName: string, version: string | undefined, suffix: 'Service' | 'Controller' | 'PoliciesGuard' | 'Gateway' | 'SocketPoliciesGuard'): string;
|
|
6
6
|
declare function isEmptyObject(obj?: unknown): boolean;
|
|
7
7
|
declare function isNotEmptyObject(obj?: unknown): boolean;
|
|
8
8
|
export { pascalCase, isValidVersion, getDisplayedName, provideName, isEmptyObject, isNotEmptyObject, };
|
|
@@ -4,7 +4,7 @@ exports.isNotEmptyObject = exports.isEmptyObject = exports.provideName = exports
|
|
|
4
4
|
const lodash_1 = require("lodash");
|
|
5
5
|
const versioning_config_helper_1 = require("./versioning-config.helper");
|
|
6
6
|
function getNamePrefix(routeType, displayedName, version) {
|
|
7
|
-
return `${routeType}${displayedName}${(0, versioning_config_helper_1.addVersionSuffix)(version)}`;
|
|
7
|
+
return `${routeType}${displayedName}${version ? (0, versioning_config_helper_1.addVersionSuffix)(version) : ''}`;
|
|
8
8
|
}
|
|
9
9
|
function pascalCase(str) {
|
|
10
10
|
return str ? (0, lodash_1.upperFirst)((0, lodash_1.camelCase)(str)) : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/format.helper.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,yEAA8D;AAE9D,SAAS,aAAa,CAAC,SAAoB,EAAE,aAAqB,EAAE,OAA2B;IAC7F,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,2CAAgB,EAAC,OAAO,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"format.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/format.helper.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,yEAA8D;AAE9D,SAAS,aAAa,CAAC,SAAoB,EAAE,aAAqB,EAAE,OAA2B;IAC7F,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAA,2CAAgB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACnF,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,OAAO,GAAG,CAAC,CAAC,CAAC,IAAA,mBAAU,EAAC,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AA4BC,gCAAU;AA1BZ,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAyBC,wCAAc;AAvBhB,SAAS,gBAAgB,CAAC,MAA0B,EAAE,UAAkB,EAAE,OAA2B;IACnG,OAAO,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;AAC9E,CAAC;AAsBC,4CAAgB;AApBlB,SAAS,WAAW,CAClB,SAAoB,EACpB,aAAqB,EACrB,OAA2B,EAC3B,MAAsF;IAEtF,OAAO,GAAG,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;AACxE,CAAC;AAcC,kCAAW;AAZb,SAAS,aAAa,CAAC,GAAa;IAClC,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAWC,sCAAa;AATf,SAAS,gBAAgB,CAAC,GAAa;IACrC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAQC,4CAAgB"}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -23,6 +23,7 @@ __exportStar(require("./guards"), exports);
|
|
|
23
23
|
__exportStar(require("./helpers"), exports);
|
|
24
24
|
__exportStar(require("./interceptors"), exports);
|
|
25
25
|
__exportStar(require("./interfaces"), exports);
|
|
26
|
+
__exportStar(require("./logger"), exports);
|
|
26
27
|
__exportStar(require("./mixins"), exports);
|
|
27
28
|
__exportStar(require("./models"), exports);
|
|
28
29
|
__exportStar(require("./routes"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,uDAAqC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B;AAC7B,yCAAuB;AACvB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,iDAA+B;AAC/B,+CAA6B;AAC7B,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,0CAAwB;AACxB,uDAAqC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './mongo-dynamic-api.logger';
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./mongo-dynamic-api.logger"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
export declare class MongoDBDynamicApiLogger extends Logger {
|
|
3
|
+
private readonly isEnabled;
|
|
4
|
+
private readonly logLevel;
|
|
5
|
+
constructor(context: string);
|
|
6
|
+
debug(...args: Logger['debug']['arguments']): void;
|
|
7
|
+
log(...args: Logger['log']['arguments']): void;
|
|
8
|
+
warn(...args: Logger['warn']['arguments']): void;
|
|
9
|
+
error(...args: Logger['error']['arguments']): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MongoDBDynamicApiLogger = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const process = require("node:process");
|
|
6
|
+
const logLevelsDictionary = {
|
|
7
|
+
debug: ['DEBUG'],
|
|
8
|
+
log: ['INFO', 'DEBUG'],
|
|
9
|
+
warn: ['WARN', 'INFO', 'DEBUG'],
|
|
10
|
+
error: ['ERROR', 'WARN', 'INFO', 'DEBUG'],
|
|
11
|
+
};
|
|
12
|
+
class MongoDBDynamicApiLogger extends common_1.Logger {
|
|
13
|
+
constructor(context) {
|
|
14
|
+
super(context);
|
|
15
|
+
this.isEnabled = !!process.env.MONGODB_DYNAMIC_API_LOGGER;
|
|
16
|
+
this.logLevel = (process.env.MONGODB_DYNAMIC_API_LOGGER || 'ERROR');
|
|
17
|
+
}
|
|
18
|
+
debug(...args) {
|
|
19
|
+
if (!this.isEnabled || !logLevelsDictionary['debug'].includes(this.logLevel)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
super.debug(...args);
|
|
23
|
+
}
|
|
24
|
+
log(...args) {
|
|
25
|
+
if (!this.isEnabled || !logLevelsDictionary['log'].includes(this.logLevel)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
super.log(...args);
|
|
29
|
+
}
|
|
30
|
+
warn(...args) {
|
|
31
|
+
if (!this.isEnabled || !logLevelsDictionary['warn'].includes(this.logLevel)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
super.warn(...args);
|
|
35
|
+
}
|
|
36
|
+
error(...args) {
|
|
37
|
+
if (!this.isEnabled || !logLevelsDictionary['error'].includes(this.logLevel)) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
super.error(...args);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.MongoDBDynamicApiLogger = MongoDBDynamicApiLogger;
|
|
44
|
+
//# sourceMappingURL=mongo-dynamic-api.logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo-dynamic-api.logger.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/logger/mongo-dynamic-api.logger.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,wCAAwC;AAKxC,MAAM,mBAAmB,GAAuE;IAC9F,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IAC/B,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;CAC1C,CAAA;AAED,MAAa,uBAAwB,SAAQ,eAAM;IAIjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJA,cAAS,GAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAC9D,aAAQ,GAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,OAAO,CAA8B,CAAC;IAIxI,CAAC;IAED,KAAK,CAAC,GAAG,IAAkC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,OAAO;QACT,CAAC;QAGD,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,GAAG,IAAgC;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3E,OAAO;QACT,CAAC;QAGD,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,GAAG,IAAiC;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5E,OAAO;QACT,CAAC;QAGD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG,IAAkC;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7E,OAAO;QACT,CAAC;QAGD,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AA3CD,0DA2CC"}
|
package/src/mixins/index.d.ts
CHANGED
package/src/mixins/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./
|
|
17
|
+
__exportStar(require("./policies-guard.mixin"), exports);
|
|
18
18
|
__exportStar(require("./entity-body.mixin"), exports);
|
|
19
19
|
__exportStar(require("./entity-presenter.mixin"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
package/src/mixins/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,sDAAoC;AACpC,2DAAyC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { PipelineStage } from 'mongodb-pipeline-builder';
|
|
3
|
+
import { AbilityPredicate, AuthAbilityPredicate, PoliciesGuardConstructor, RouteType } from '../interfaces';
|
|
4
|
+
import { BaseEntity } from '../models';
|
|
5
|
+
declare function RoutePoliciesGuardMixin<Entity extends BaseEntity>(entity: Type<Entity>, routeType: RouteType, displayedName: string, version: string | undefined, abilityPredicate: AbilityPredicate<Entity> | undefined, queryToPipeline?: (query: unknown) => PipelineStage[]): PoliciesGuardConstructor<Entity>;
|
|
6
|
+
declare function SocketPoliciesGuardMixin<Entity extends BaseEntity>(entity: Type<Entity>, routeType: RouteType, event: string, version: string | undefined, abilityPredicate: AuthAbilityPredicate | undefined, isPublic: boolean | undefined, queryToPipeline?: (query: unknown) => PipelineStage[]): PoliciesGuardConstructor<Entity>;
|
|
7
|
+
export { RoutePoliciesGuardMixin, SocketPoliciesGuardMixin };
|
|
@@ -12,14 +12,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.SocketPoliciesGuardMixin = exports.RoutePoliciesGuardMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
18
|
const mongoose_2 = require("mongoose");
|
|
19
19
|
const dynamic_api_module_1 = require("../dynamic-api.module");
|
|
20
20
|
const guards_1 = require("../guards");
|
|
21
21
|
const helpers_1 = require("../helpers");
|
|
22
|
-
function
|
|
22
|
+
function RoutePoliciesGuardMixin(entity, routeType, displayedName, version, abilityPredicate, queryToPipeline) {
|
|
23
23
|
let RoutePoliciesGuard = class RoutePoliciesGuard extends guards_1.BasePoliciesGuard {
|
|
24
24
|
constructor(model) {
|
|
25
25
|
super(model);
|
|
@@ -41,5 +41,29 @@ function CreatePoliciesGuardMixin(entity, routeType, displayedName, version, abi
|
|
|
41
41
|
});
|
|
42
42
|
return RoutePoliciesGuard;
|
|
43
43
|
}
|
|
44
|
-
exports.
|
|
45
|
-
|
|
44
|
+
exports.RoutePoliciesGuardMixin = RoutePoliciesGuardMixin;
|
|
45
|
+
function SocketPoliciesGuardMixin(entity, routeType, event, version, abilityPredicate, isPublic, queryToPipeline) {
|
|
46
|
+
let SocketPoliciesGuard = class SocketPoliciesGuard extends guards_1.BaseSocketPoliciesGuard {
|
|
47
|
+
constructor(model) {
|
|
48
|
+
super(model);
|
|
49
|
+
this.model = model;
|
|
50
|
+
this.routeType = routeType;
|
|
51
|
+
this.entity = entity;
|
|
52
|
+
this.abilityPredicate = abilityPredicate;
|
|
53
|
+
this.queryToPipeline = queryToPipeline;
|
|
54
|
+
this.isPublic = isPublic;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
SocketPoliciesGuard = __decorate([
|
|
58
|
+
(0, common_1.Injectable)(),
|
|
59
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.state.get('connectionName'))),
|
|
60
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
61
|
+
], SocketPoliciesGuard);
|
|
62
|
+
Object.defineProperty(SocketPoliciesGuard, 'name', {
|
|
63
|
+
value: `${(0, helpers_1.provideName)(routeType, (0, helpers_1.pascalCase)(event), version, 'SocketPoliciesGuard')}`,
|
|
64
|
+
writable: false,
|
|
65
|
+
});
|
|
66
|
+
return SocketPoliciesGuard;
|
|
67
|
+
}
|
|
68
|
+
exports.SocketPoliciesGuardMixin = SocketPoliciesGuardMixin;
|
|
69
|
+
//# sourceMappingURL=policies-guard.mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies-guard.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/policies-guard.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAClD,+CAA+C;AAE/C,uCAAiC;AACjC,8DAAyD;AACzD,sCAAuE;AACvE,wCAAqD;AASrD,SAAS,uBAAuB,CAC9B,MAAoB,EACpB,SAAoB,EACpB,aAAqB,EACrB,OAA2B,EAC3B,gBAAsD,EACtD,eAAqD;IAErD,IACM,kBAAkB,GADxB,MACM,kBAAmB,SAAQ,0BAAyB;QAMxD,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAV/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAyC,gBAAgB,CAAC;YAC1E,oBAAe,GAAG,eAAe,CAAC;QAU5C,CAAC;KACF,CAAA;IAfK,kBAAkB;QADvB,IAAA,mBAAU,GAAE;QAQR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAX7B,kBAAkB,CAevB;IAED,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAsCQ,0DAAuB;AApChC,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,SAAoB,EACpB,KAAa,EACb,OAA2B,EAC3B,gBAAkD,EAClD,QAA6B,EAC7B,eAAqD;IAErD,IACM,mBAAmB,GADzB,MACM,mBAAoB,SAAQ,gCAA+B;QAO/D,YAKE,KAAuC;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFM,UAAK,GAAL,KAAK,CAAe;YAX/B,cAAS,GAAG,SAAS,CAAC;YACtB,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;YACpC,oBAAe,GAAG,eAAe,CAAC;YAClC,aAAQ,GAAG,QAAQ,CAAC;QAU9B,CAAC;KACF,CAAA;IAhBK,mBAAmB;QADxB,IAAA,mBAAU,GAAE;QASR,WAAA,IAAA,sBAAW,EACV,MAAM,CAAC,IAAI,EACX,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAC7C,CAAA;yCACyB,gBAAK;OAZ7B,mBAAmB,CAgBxB;IAED,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACjD,KAAK,EAAE,GAAG,IAAA,qBAAW,EAAC,SAAS,EAAE,IAAA,oBAAU,EAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,EAAE;QACrF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAEiC,4DAAwB"}
|
|
@@ -13,9 +13,10 @@ const jwt_1 = require("@nestjs/jwt");
|
|
|
13
13
|
const websockets_1 = require("@nestjs/websockets");
|
|
14
14
|
const lodash_1 = require("lodash");
|
|
15
15
|
const dynamic_api_module_1 = require("../../../../dynamic-api.module");
|
|
16
|
+
const logger_1 = require("../../../../logger");
|
|
16
17
|
let JwtSocketAuthGuard = JwtSocketAuthGuard_1 = class JwtSocketAuthGuard {
|
|
17
18
|
constructor() {
|
|
18
|
-
this.logger = new
|
|
19
|
+
this.logger = new logger_1.MongoDBDynamicApiLogger(JwtSocketAuthGuard_1.name);
|
|
19
20
|
}
|
|
20
21
|
async canActivate(context) {
|
|
21
22
|
const [socket] = context.getArgs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-socket-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"jwt-socket-auth.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,mCAAiC;AACjC,uEAAkE;AAElE,+CAA6D;AAGtD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,gCAAuB,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAkDjF,CAAC;IAhDQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjC,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,6BAA6B,CAAC,MAAsB;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAqB,CAAC;QAEjE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACtD,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC;YAChC,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/C,WAAW,EAAE;gBACX,SAAS,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;aAC3D;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;gBACtE,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AAnDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAmD9B"}
|
|
@@ -38,11 +38,11 @@ function AuthSocketPoliciesGuardMixin(entity, abilityPredicate) {
|
|
|
38
38
|
this.abilityPredicate = abilityPredicate;
|
|
39
39
|
}
|
|
40
40
|
async canActivate(context) {
|
|
41
|
-
const [socket] = context.getArgs();
|
|
41
|
+
const [socket, data, _, _event] = context.getArgs();
|
|
42
42
|
if (this.abilityPredicate) {
|
|
43
43
|
const accessToken = this.getAccessTokenFromSocketQuery(socket);
|
|
44
44
|
socket.user = await this.extractUserFromToken(accessToken);
|
|
45
|
-
if (!socket.user || !this.abilityPredicate(socket.user)) {
|
|
45
|
+
if (!socket.user || !this.abilityPredicate(socket.user, data)) {
|
|
46
46
|
throw new websockets_1.WsException('Access denied');
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-policies-guard.mixin.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/mixins/auth-policies-guard.mixin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwF;AACxF,mDAAiD;AAGjD,sCAA+C;AAE/C,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,gBAAkD;IAGlD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;QAA3B;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;QAahD,CAAC;QAXC,WAAW,CAAC,OAAyB;YACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;YAE3D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAC3B,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAC5C,EAAE,CAAC;gBACF,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAA;IAfK,qBAAqB;QAD1B,IAAA,mBAAU,GAAE;OACP,qBAAqB,CAe1B;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AA+BQ,wDAAsB;AA7B/B,SAAS,4BAA4B,CACnC,MAAoB,EACpB,gBAAkD;IAGlD,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,2BAAkB;QAA5D;;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;QAiBhD,CAAC;QAfU,KAAK,CAAC,WAAW,CAAC,OAAyB;YAClD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-policies-guard.mixin.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/mixins/auth-policies-guard.mixin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwF;AACxF,mDAAiD;AAGjD,sCAA+C;AAE/C,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,gBAAkD;IAGlD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;QAA3B;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;QAahD,CAAC;QAXC,WAAW,CAAC,OAAyB;YACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;YAE3D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAC3B,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAC5C,EAAE,CAAC;gBACF,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAA;IAfK,qBAAqB;QAD1B,IAAA,mBAAU,GAAE;OACP,qBAAqB,CAe1B;IAED,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AA+BQ,wDAAsB;AA7B/B,SAAS,4BAA4B,CACnC,MAAoB,EACpB,gBAAkD;IAGlD,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,2BAAkB;QAA5D;;YACY,WAAM,GAAG,MAAM,CAAC;YAChB,qBAAgB,GAAG,gBAAgB,CAAC;QAiBhD,CAAC;QAfU,KAAK,CAAC,WAAW,CAAC,OAAyB;YAClD,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAEpD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;gBAE/D,MAAM,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;gBAE3D,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC9D,MAAM,IAAI,wBAAW,CAAC,eAAe,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAA;IAnBK,2BAA2B;QADhC,IAAA,mBAAU,GAAE;OACP,2BAA2B,CAmBhC;IAED,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAEgC,oEAA4B"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseAuthService = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
|
+
const logger_1 = require("../../../logger");
|
|
5
6
|
const services_1 = require("../../../services");
|
|
6
7
|
class BaseAuthService extends services_1.BaseService {
|
|
7
8
|
constructor(model, jwtService, bcryptService) {
|
|
@@ -12,7 +13,7 @@ class BaseAuthService extends services_1.BaseService {
|
|
|
12
13
|
this.loginField = 'email';
|
|
13
14
|
this.passwordField = 'password';
|
|
14
15
|
this.additionalRequestFields = [];
|
|
15
|
-
this.logger = new
|
|
16
|
+
this.logger = new logger_1.MongoDBDynamicApiLogger('AuthService');
|
|
16
17
|
}
|
|
17
18
|
async validateUser(login, pass) {
|
|
18
19
|
this.verifyArguments(login, pass);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-auth.service.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/services/base-auth.service.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"base-auth.service.js","sourceRoot":"","sources":["../../../../../libs/dynamic-api/src/modules/auth/services/base-auth.service.ts"],"names":[],"mappings":"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"}
|