mongodb-dynamic-api 5.4.0 → 5.4.2

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 (61) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.json +3 -3
  3. package/src/adapters/socket-adapter.js +7 -3
  4. package/src/adapters/socket-adapter.js.map +1 -1
  5. package/src/gateways/base.gateway.js +6 -1
  6. package/src/gateways/base.gateway.js.map +1 -1
  7. package/src/guards/base-policies.guard.js +7 -9
  8. package/src/guards/base-policies.guard.js.map +1 -1
  9. package/src/guards/jwt-socket.guard.js +6 -1
  10. package/src/guards/jwt-socket.guard.js.map +1 -1
  11. package/src/helpers/auth-token.helper.d.ts +10 -0
  12. package/src/helpers/auth-token.helper.js +18 -0
  13. package/src/helpers/auth-token.helper.js.map +1 -0
  14. package/src/helpers/mint-token-pair.helper.js +2 -2
  15. package/src/helpers/mint-token-pair.helper.js.map +1 -1
  16. package/src/helpers/request-filter.helper.d.ts +4 -0
  17. package/src/helpers/request-filter.helper.js +35 -0
  18. package/src/helpers/request-filter.helper.js.map +1 -0
  19. package/src/helpers/resolve-broadcast.helper.js +2 -1
  20. package/src/helpers/resolve-broadcast.helper.js.map +1 -1
  21. package/src/modules/auth/auth-broadcast.helper.js +9 -3
  22. package/src/modules/auth/auth-broadcast.helper.js.map +1 -1
  23. package/src/modules/auth/auth.module.d.ts +1 -0
  24. package/src/modules/auth/auth.module.js +13 -0
  25. package/src/modules/auth/auth.module.js.map +1 -1
  26. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +6 -2
  27. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -1
  28. package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js +6 -1
  29. package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js.map +1 -1
  30. package/src/modules/auth/mixins/auth-controller.mixin.js +4 -23
  31. package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
  32. package/src/modules/auth/mixins/auth-gateway.mixin.js +2 -1
  33. package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
  34. package/src/modules/auth/services/base-auth.service.d.ts +1 -0
  35. package/src/modules/auth/services/base-auth.service.js +31 -21
  36. package/src/modules/auth/services/base-auth.service.js.map +1 -1
  37. package/src/modules/auth/strategies/jwt-refresh.strategy.js +5 -1
  38. package/src/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
  39. package/src/modules/auth/strategies/jwt.strategy.d.ts +1 -3
  40. package/src/modules/auth/strategies/jwt.strategy.js +5 -2
  41. package/src/modules/auth/strategies/jwt.strategy.js.map +1 -1
  42. package/src/routes/get-many/base-get-many.service.js +2 -0
  43. package/src/routes/get-many/base-get-many.service.js.map +1 -1
  44. package/src/services/base/base.service.d.ts +4 -5
  45. package/src/services/base/base.service.js +9 -9
  46. package/src/services/base/base.service.js.map +1 -1
  47. package/src/version.json +1 -1
  48. package/test/for-feature/ability-predicate-request-filters.e2e-spec.d.ts +1 -0
  49. package/test/for-feature/ability-predicate-request-filters.e2e-spec.js +149 -0
  50. package/test/for-feature/ability-predicate-request-filters.e2e-spec.js.map +1 -0
  51. package/test/for-feature/broadcast-payload-serialization.e2e-spec.d.ts +1 -0
  52. package/test/for-feature/broadcast-payload-serialization.e2e-spec.js +64 -0
  53. package/test/for-feature/broadcast-payload-serialization.e2e-spec.js.map +1 -0
  54. package/test/for-root/auth-api-reset-password.e2e-spec.js +2 -2
  55. package/test/for-root/auth-api-reset-password.e2e-spec.js.map +1 -1
  56. package/test/for-root/auth-api-token-types.e2e-spec.d.ts +1 -0
  57. package/test/for-root/auth-api-token-types.e2e-spec.js +111 -0
  58. package/test/for-root/auth-api-token-types.e2e-spec.js.map +1 -0
  59. package/test/for-root/websockets-auth-reset-password.e2e-spec.js +2 -2
  60. package/test/for-root/websockets-auth-reset-password.e2e-spec.js.map +1 -1
  61. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  Changelog
2
2
 
3
+ ## [5.4.2](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.1...v5.4.2) (2026-09-26)
4
+
5
+ ### quality
6
+
7
+ * **quality:** avoid implicit stringification in the reset-password flow (S6551) ([70647e0](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/70647e0a28b1a1e9a55e4ea35572533273fe6497))
8
+
9
+ ### deps
10
+
11
+ * **deps:** bump bcrypt to 6 and @nestjs/platform-express to 12.1 ([7d3d057](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/7d3d057b2238ff968a302443ba485e6e30068f11))
12
+
13
+ ### websockets
14
+
15
+ * **websockets:** serialize broadcast payloads and honor the cors option ([ca7425b](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ca7425b92770dd81b963ec61603cb5969c15f80b))
16
+
17
+ ### auth
18
+
19
+ * **auth:** verify reset tokens and type every signed token ([ef39643](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ef39643a63995dbe0ac554a0d3a98221b3bdcb85))
20
+
21
+ ### guards
22
+
23
+ * **guards:** check the documents a request actually targets ([d317d35](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d317d357fd55d168aef0e1781dc6b745239ea54e))
24
+
25
+ ## [5.4.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.0...v5.4.1) (2026-09-26)
26
+
3
27
  ## [5.4.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.3.0...v5.4.0) (2026-09-26)
4
28
 
5
29
  ### quality
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb-dynamic-api",
3
- "version": "5.4.0",
3
+ "version": "5.4.2",
4
4
  "description": "Auto generated CRUD API for MongoDB using NestJS",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "index.js",
@@ -50,12 +50,12 @@
50
50
  "@nestjs/jwt": "^12.0.1",
51
51
  "@nestjs/mongoose": "^12.0.0",
52
52
  "@nestjs/passport": "^12.0.0",
53
- "@nestjs/platform-express": "^12.0.1",
53
+ "@nestjs/platform-express": "^12.1.0",
54
54
  "@nestjs/platform-socket.io": "^12.0.1",
55
55
  "@nestjs/swagger": "^12.0.1",
56
56
  "@nestjs/websockets": "^12.0.1",
57
57
  "@types/lodash": "^4.14.202",
58
- "bcrypt": "^5.1.1",
58
+ "bcrypt": "^6.0.0",
59
59
  "cache-manager": "^6.1.6",
60
60
  "class-transformer": "^0.5.1",
61
61
  "class-validator": "^0.14.1",
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SocketAdapter = void 0;
4
4
  const platform_socket_io_1 = require("@nestjs/platform-socket.io");
5
5
  const jwt = require("jsonwebtoken");
6
+ const auth_token_helper_1 = require("../helpers/auth-token.helper");
6
7
  const ws_config_store_1 = require("../helpers/ws-config.store");
7
8
  const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
8
9
  class SocketAdapter extends platform_socket_io_1.IoAdapter {
@@ -13,7 +14,7 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
13
14
  }
14
15
  createIOServer(port, options) {
15
16
  if (!this.ioServer) {
16
- this.ioServer = super.createIOServer(port, { ...options, cors: { origin: '*' } });
17
+ this.ioServer = super.createIOServer(port, { ...options, cors: options?.cors ?? { origin: '*' } });
17
18
  this.ioServer.use((socket, next) => {
18
19
  if (!ws_config_store_1.DynamicApiWsConfigStore.rejectInvalidToken) {
19
20
  return next();
@@ -86,8 +87,11 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
86
87
  return {};
87
88
  }
88
89
  try {
89
- const { iat, exp, ...payload } = jwt.verify(token, jwtSecret);
90
- return { user: payload };
90
+ const payload = jwt.verify(token, jwtSecret);
91
+ if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
92
+ return { error: 'invalid token type' };
93
+ }
94
+ return { user: (0, auth_token_helper_1.stripTokenClaims)(payload) };
91
95
  }
92
96
  catch (e) {
93
97
  return { error: e instanceof Error ? e.message : String(e) };
@@ -1 +1 @@
1
- {"version":3,"file":"socket-adapter.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/adapters/socket-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket-adapter.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/adapters/socket-adapter.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseGateway = void 0;
4
4
  const websockets_1 = require("@nestjs/websockets");
5
5
  const dynamic_api_module_1 = require("../dynamic-api.module");
6
+ const auth_token_helper_1 = require("../helpers/auth-token.helper");
6
7
  const lodash_helper_1 = require("../helpers/lodash.helper");
7
8
  const resolve_broadcast_helper_1 = require("../helpers/resolve-broadcast.helper");
8
9
  const ws_config_store_1 = require("../helpers/ws-config.store");
@@ -29,7 +30,11 @@ class BaseGateway {
29
30
  this.logger.warn('Invalid access token');
30
31
  this.logger.error(e.message, e.stack);
31
32
  }
32
- const { iat, exp, ...user } = verified ?? {};
33
+ if (verified && !(0, auth_token_helper_1.isTokenOfType)(verified, 'access')) {
34
+ this.logger.warn('Invalid access token type');
35
+ verified = undefined;
36
+ }
37
+ const user = verified ? (0, auth_token_helper_1.stripTokenClaims)(verified) : {};
33
38
  socket.user = !(0, lodash_helper_1.isEmpty)(user) ? user : undefined;
34
39
  }
35
40
  if (socket.user?.id && verified?.exp > Date.now() / 1000) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.gateway.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/gateways/base.gateway.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseSocketPoliciesGuard = exports.BasePoliciesGuard = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const websockets_1 = require("@nestjs/websockets");
6
+ const request_filter_helper_1 = require("../helpers/request-filter.helper");
6
7
  const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
7
8
  const base_service_1 = require("../services/base/base.service");
8
9
  class BasePoliciesGuard extends base_service_1.BaseService {
@@ -16,22 +17,20 @@ class BasePoliciesGuard extends base_service_1.BaseService {
16
17
  if (!user || !this.authAbilityPredicate(user, body)) {
17
18
  throw new common_1.ForbiddenException('Access Denied');
18
19
  }
19
- this.user = user;
20
20
  }
21
21
  if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
22
22
  if (!user) {
23
23
  throw new common_1.ForbiddenException('Access Denied');
24
24
  }
25
- this.user = user;
26
25
  const targetId = params?.[this.targetParam ?? 'id'];
27
26
  if (targetId) {
28
- await this.findOneDocumentWithAbilityPredicate(targetId, query);
27
+ await this.findOneDocumentWithAbilityPredicate(targetId, (0, request_filter_helper_1.buildAbilityPredicateFilter)(query), undefined, user);
29
28
  }
30
29
  else if (this.routeType === 'Aggregate' && query && this.queryToPipeline) {
31
- await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(query));
30
+ await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(query), user);
32
31
  }
33
32
  else {
34
- await this.findManyDocumentsWithAbilityPredicate(query);
33
+ await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(query), user);
35
34
  }
36
35
  }
37
36
  return true;
@@ -70,19 +69,18 @@ class BaseSocketPoliciesGuard extends base_service_1.BaseService {
70
69
  }
71
70
  if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
72
71
  try {
73
- this.user = socket.user;
74
72
  const { id } = data || {};
75
73
  if (id) {
76
74
  this.logger.debug(`Finding one document with id: ${id} and ability predicate`);
77
- await this.findOneDocumentWithAbilityPredicate(id);
75
+ await this.findOneDocumentWithAbilityPredicate(id, undefined, undefined, socket.user);
78
76
  }
79
77
  else if (this.routeType === 'Aggregate' && data && this.queryToPipeline) {
80
78
  this.logger.debug('Aggregating documents with ability predicate');
81
- await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data));
79
+ await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data), socket.user);
82
80
  }
83
81
  else {
84
82
  this.logger.debug('Finding many documents with ability predicate');
85
- await this.findManyDocumentsWithAbilityPredicate(data);
83
+ await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(data), socket.user);
86
84
  }
87
85
  }
88
86
  catch (error) {
@@ -1 +1 @@
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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"}
1
+ {"version":3,"file":"base-policies.guard.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/guards/base-policies.guard.ts"],"names":[],"mappings":";;;AAAA,2CAAyF;AACzF,mDAAiD;AAIjD,4EAA+E;AAC/E,iFAA6E;AAE7E,gEAA4D;AAG5D,MAAe,iBAA6C,SAAQ,0BAAmB;IAkBrF,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAE1E,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACjE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,2BAAkB,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;YAEpD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,mCAAmC,CAC5C,QAAQ,EAAE,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAC9D,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC3E,MAAM,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,qCAAqC,CAAC,IAAA,mDAA2B,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA0EQ,8CAAiB;AAvE1B,MAAe,uBAAmD,SAAQ,0BAAmB;IAY3F,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,IAAY,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,kDAAuB,CAAC,uBAAuB,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;YAC/B,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,IAAI;YACJ,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC3C,MAAM,IAAI,wBAAW,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;gBACvD,MAAM,IAAI,wBAAW,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;gBACjE,IAAI,CAAC;oBACH,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;oBAE1B,IAAI,EAAE,EAAE,CAAC;wBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,wBAAwB,CAAC,CAAC;wBAC/E,MAAM,IAAI,CAAC,mCAAmC,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxF,CAAC;yBAAM,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;wBAClE,MAAM,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7F,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;wBACnE,MAAM,IAAI,CAAC,qCAAqC,CAAC,IAAA,mDAA2B,EAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBACnG,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;oBACjD,MAAM,IAAI,wBAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAE2B,0DAAuB"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JwtSocketGuard = void 0;
4
4
  const jwt_1 = require("@nestjs/jwt");
5
5
  const websockets_1 = require("@nestjs/websockets");
6
+ const auth_token_helper_1 = require("../helpers/auth-token.helper");
6
7
  const lodash_helper_1 = require("../helpers/lodash.helper");
7
8
  const dynamic_api_module_1 = require("../dynamic-api.module");
8
9
  const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
@@ -57,10 +58,14 @@ class JwtSocketGuard {
57
58
  async extractUserFromToken(accessToken) {
58
59
  this.logger.debug('extractUserFromToken', { accessToken: !!accessToken });
59
60
  try {
60
- const { iat, exp, ...user } = await this.jwtService.verifyAsync(accessToken, {
61
+ const payload = await this.jwtService.verifyAsync(accessToken, {
61
62
  secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
62
63
  ignoreExpiration: false,
63
64
  });
65
+ if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
66
+ throw new Error('Unexpected token type');
67
+ }
68
+ const user = (0, auth_token_helper_1.stripTokenClaims)(payload);
64
69
  this.logger.debug('User extracted from token', { userEmail: user?.email });
65
70
  return user;
66
71
  }
@@ -1 +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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"}
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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"}
@@ -0,0 +1,10 @@
1
+ type AuthTokenType = 'access' | 'refresh' | 'reset';
2
+ interface AuthTokenClaims {
3
+ iat?: number;
4
+ exp?: number;
5
+ typ?: unknown;
6
+ }
7
+ declare function isTokenOfType(payload: AuthTokenClaims | null | undefined, expected: AuthTokenType): boolean;
8
+ declare function stripTokenClaims<T extends AuthTokenClaims>(payload: T): Omit<T, 'iat' | 'exp' | 'typ'>;
9
+ export { isTokenOfType, stripTokenClaims };
10
+ export type { AuthTokenType };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTokenOfType = isTokenOfType;
4
+ exports.stripTokenClaims = stripTokenClaims;
5
+ function isTokenOfType(payload, expected) {
6
+ if (!payload) {
7
+ return false;
8
+ }
9
+ if (payload.typ === undefined) {
10
+ return expected !== 'reset';
11
+ }
12
+ return payload.typ === expected;
13
+ }
14
+ function stripTokenClaims(payload) {
15
+ const { iat, exp, typ, ...user } = payload;
16
+ return user;
17
+ }
18
+ //# sourceMappingURL=auth-token.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-token.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/auth-token.helper.ts"],"names":[],"mappings":";;AAyCS,sCAAa;AAAE,4CAAgB;AArBxC,SAAS,aAAa,CAAC,OAA2C,EAAE,QAAuB;IACzF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC;AAClC,CAAC;AAMD,SAAS,gBAAgB,CAA4B,OAAU;IAC7D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -22,10 +22,10 @@ async function mintTokenPair(entity, user, options = {}) {
22
22
  });
23
23
  const fieldsToBuild = ['_id', 'id', loginField, ...additionalFields];
24
24
  const payload = fieldsToBuild.reduce((acc, field) => (user[field] === undefined ? acc : { ...acc, [field]: user[field] }), {});
25
- const accessToken = jwtService.sign(payload);
25
+ const accessToken = jwtService.sign({ ...payload, typ: 'access' });
26
26
  const refreshSecret = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('jwtRefreshSecret');
27
27
  const refreshTokenExpiresIn = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('jwtRefreshTokenExpiresIn');
28
- const refreshToken = jwtService.sign({ ...payload, jti: (0, node_crypto_1.randomUUID)() }, {
28
+ const refreshToken = jwtService.sign({ ...payload, typ: 'refresh', jti: (0, node_crypto_1.randomUUID)() }, {
29
29
  ...(refreshSecret ? { secret: refreshSecret } : {}),
30
30
  ...(refreshTokenExpiresIn ? { expiresIn: refreshTokenExpiresIn } : {}),
31
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mint-token-pair.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mint-token-pair.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mint-token-pair.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mint-token-pair.helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ type RequestFilter = Record<string, unknown>;
2
+ declare function assertNoMongoOperators(value: unknown): void;
3
+ declare function buildAbilityPredicateFilter(input: unknown): RequestFilter;
4
+ export { assertNoMongoOperators, buildAbilityPredicateFilter };
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertNoMongoOperators = assertNoMongoOperators;
4
+ exports.buildAbilityPredicateFilter = buildAbilityPredicateFilter;
5
+ const common_1 = require("@nestjs/common");
6
+ function isPlainObject(value) {
7
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
8
+ }
9
+ function assertNoMongoOperators(value) {
10
+ if (Array.isArray(value)) {
11
+ value.forEach(assertNoMongoOperators);
12
+ return;
13
+ }
14
+ if (!isPlainObject(value)) {
15
+ return;
16
+ }
17
+ for (const [key, nested] of Object.entries(value)) {
18
+ if (key.startsWith('$')) {
19
+ throw new common_1.BadRequestException(`Invalid filter key "${key}"`);
20
+ }
21
+ assertNoMongoOperators(nested);
22
+ }
23
+ }
24
+ function buildAbilityPredicateFilter(input) {
25
+ assertNoMongoOperators(input);
26
+ if (!isPlainObject(input)) {
27
+ return {};
28
+ }
29
+ const { ids, ...filter } = input;
30
+ if (ids !== undefined) {
31
+ return { _id: { $in: Array.isArray(ids) ? ids : [ids] } };
32
+ }
33
+ return filter;
34
+ }
35
+ //# sourceMappingURL=request-filter.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-filter.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/request-filter.helper.ts"],"names":[],"mappings":";;AAyDS,wDAAsB;AAAE,kEAA2B;AAzD5D,2CAAqD;AAIrD,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAQD,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,4BAAmB,CAAC,uBAAuB,GAAG,GAAG,CAAC,CAAC;QAC/D,CAAC;QAED,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAUD,SAAS,2BAA2B,CAAC,KAAc;IACjD,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAEjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveBroadcast = resolveBroadcast;
4
+ const class_transformer_1 = require("class-transformer");
4
5
  const resolve_rooms_helper_1 = require("./resolve-rooms.helper");
5
6
  function resolveBroadcast(event, data, broadcastConfig, user) {
6
7
  if (!broadcastConfig || !data?.length) {
@@ -19,7 +20,7 @@ function resolveBroadcast(event, data, broadcastConfig, user) {
19
20
  return {
20
21
  event: eventName || event,
21
22
  rooms: (0, resolve_rooms_helper_1.resolveRooms)(rooms, broadcastData, user),
22
- data: broadcastData,
23
+ data: broadcastData.map((item) => (0, class_transformer_1.instanceToPlain)(item)),
23
24
  };
24
25
  }
25
26
  //# sourceMappingURL=resolve-broadcast.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-broadcast.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/resolve-broadcast.helper.ts"],"names":[],"mappings":";;AAkDS,4CAAgB;AAlDzB,iEAAsD;AAmBtD,SAAS,gBAAgB,CACvB,KAAa,EACb,IAAS,EACT,eAAqD,EACrD,IAAW;IAEX,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;IAEtD,IAAI,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU;QACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,OAA8C,CAAC,IAAI,EAAE,IAAY,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,IAAI,KAAK;QACzB,KAAK,EAAE,IAAA,mCAAY,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;QAC/C,IAAI,EAAE,aAAa;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-broadcast.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/resolve-broadcast.helper.ts"],"names":[],"mappings":";;AAuDS,4CAAgB;AAvDzB,yDAAoD;AACpD,iEAAsD;AAuBtD,SAAS,gBAAgB,CACvB,KAAa,EACb,IAAS,EACT,eAAqD,EACrD,IAAW;IAEX,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;IAEtD,IAAI,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,UAAU;QACjD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,OAA8C,CAAC,IAAI,EAAE,IAAY,CAAC,CAAC;QAC5F,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,IAAI,KAAK;QACzB,KAAK,EAAE,IAAA,mCAAY,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC;QAC/C,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,IAAI,CAAM,CAAC;KAC9D,CAAC;AACJ,CAAC"}
@@ -2,10 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildAuthBroadcastData = buildAuthBroadcastData;
4
4
  const lodash_helper_1 = require("../../helpers/lodash.helper");
5
+ const dynamic_api_global_state_service_1 = require("../../services/dynamic-api-global-state/dynamic-api-global-state.service");
5
6
  function buildAuthBroadcastData(user, fields) {
6
- if (!fields?.length) {
7
- return { ...user };
7
+ const data = (fields?.length ? (0, lodash_helper_1.pick)(user, fields) : { ...user });
8
+ const passwordField = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('credentials')?.passwordField;
9
+ const refreshTokenField = dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('refreshTokenField');
10
+ for (const sensitiveField of [passwordField, refreshTokenField]) {
11
+ if (sensitiveField) {
12
+ delete data[sensitiveField];
13
+ }
8
14
  }
9
- return (0, lodash_helper_1.pick)(user, fields);
15
+ return data;
10
16
  }
11
17
  //# sourceMappingURL=auth-broadcast.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-broadcast.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth-broadcast.helper.ts"],"names":[],"mappings":";;AAcS,wDAAsB;AAd/B,+DAAmD;AAGnD,SAAS,sBAAsB,CAC7B,IAAqB,EACrB,MAAyB;IAEzB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,IAAA,oBAAI,EAAC,IAAI,EAAE,MAAkB,CAAoB,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"auth-broadcast.helper.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth-broadcast.helper.ts"],"names":[],"mappings":";;AA0BS,wDAAsB;AA1B/B,+DAAmD;AAEnD,+HAAwH;AAMxH,SAAS,sBAAsB,CAC7B,IAAqB,EACrB,MAAyB;IAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAA,oBAAI,EAAC,IAAI,EAAE,MAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAA4B,CAAC;IAExG,MAAM,aAAa,GAAG,+DAA4B,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC1F,MAAM,iBAAiB,GAAG,+DAA4B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAErF,KAAK,MAAM,cAAc,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC;QAChE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,IAAuB,CAAC;AACjC,CAAC"}
@@ -10,5 +10,6 @@ export declare class AuthModule implements NestModule {
10
10
  providers: (import("../../interfaces").DynamicApiServiceProvider | import("@nestjs/common").Provider)[];
11
11
  controllers: import("@nestjs/common").Type<any>[];
12
12
  };
13
+ private static warnAboutJwtSecrets;
13
14
  private static initializeAuthOptions;
14
15
  }
@@ -17,6 +17,7 @@ const dynamic_api_module_1 = require("../../dynamic-api.module");
17
17
  const dynamic_api_broadcast_gateway_1 = require("../../gateways/dynamic-api-broadcast.gateway");
18
18
  const schema_helper_1 = require("../../helpers/schema.helper");
19
19
  const socket_config_helper_1 = require("../../helpers/socket-config.helper");
20
+ const mongo_dynamic_api_logger_1 = require("../../logger/mongo-dynamic-api.logger");
20
21
  const bcrypt_service_1 = require("../../services/bcrypt/bcrypt.service");
21
22
  const dynamic_api_global_state_service_1 = require("../../services/dynamic-api-global-state/dynamic-api-global-state.service");
22
23
  const dynamic_api_broadcast_service_1 = require("../../services/dynamic-api-broadcast/dynamic-api-broadcast.service");
@@ -117,7 +118,19 @@ let AuthModule = AuthModule_1 = class AuthModule {
117
118
  controllers: [AuthController, ...extraControllers],
118
119
  };
119
120
  }
121
+ static warnAboutJwtSecrets(jwt) {
122
+ const logger = new mongo_dynamic_api_logger_1.MongoDBDynamicApiLogger('AuthModule');
123
+ if (!jwt?.secret) {
124
+ logger.warn('useAuth.jwt.secret is not set: tokens are signed with the public default secret, so anyone can forge '
125
+ + 'a valid JWT. Set useAuth.jwt.secret to a long random value.');
126
+ }
127
+ if (!jwt?.refreshSecret) {
128
+ logger.warn('useAuth.jwt.refreshSecret is not set: refresh tokens are signed with the access token secret. '
129
+ + 'Set a distinct useAuth.jwt.refreshSecret.');
130
+ }
131
+ }
120
132
  static initializeAuthOptions({ userEntity, jwt, login, register, updateAccount, getAccount, resetPassword, refreshToken, passwordless, validationPipeOptions, webSocket, extraImports = [], extraProviders = [], extraControllers = [], }) {
133
+ AuthModule_1.warnAboutJwtSecrets(jwt);
121
134
  return {
122
135
  userEntity: userEntity,
123
136
  jwt: {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/modules/auth/auth.module.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ exports.JwtSocketAuthGuard = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const jwt_1 = require("@nestjs/jwt");
13
13
  const websockets_1 = require("@nestjs/websockets");
14
+ const auth_token_helper_1 = require("../../../../helpers/auth-token.helper");
14
15
  const lodash_helper_1 = require("../../../../helpers/lodash.helper");
15
16
  const dynamic_api_module_1 = require("../../../../dynamic-api.module");
16
17
  const mongo_dynamic_api_logger_1 = require("../../../../logger/mongo-dynamic-api.logger");
@@ -44,11 +45,14 @@ let JwtSocketAuthGuard = JwtSocketAuthGuard_1 = class JwtSocketAuthGuard {
44
45
  },
45
46
  });
46
47
  try {
47
- const { iat, exp, ...user } = await jwtService.verifyAsync(accessToken, {
48
+ const payload = await jwtService.verifyAsync(accessToken, {
48
49
  secret: dynamic_api_module_1.DynamicApiModule.state.get('jwtSecret'),
49
50
  ignoreExpiration: false,
50
51
  });
51
- return user;
52
+ if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
53
+ throw new Error('Unexpected token type');
54
+ }
55
+ return (0, auth_token_helper_1.stripTokenClaims)(payload);
52
56
  }
53
57
  catch (e) {
54
58
  this.logger.warn('extractUserFromToken jwtService.verify error');
@@ -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,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,kDAAuB,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,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,IAAA,uBAAO,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,wBAAwB,CAAC,MAAsB;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAE3D,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,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AAnDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAmD9B"}
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,6EAAwF;AACxF,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAAxB;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAsDjF,CAAC;IApDQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAEnC,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,IAAA,uBAAO,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,wBAAwB,CAAC,MAAsB;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAE3D,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,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;gBACxD,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,iCAAa,EAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,OAAO,IAAA,oCAAgB,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AAvDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAuD9B"}
@@ -11,6 +11,7 @@ exports.JwtSocketRefreshGuard = void 0;
11
11
  const common_1 = require("@nestjs/common");
12
12
  const jwt_1 = require("@nestjs/jwt");
13
13
  const websockets_1 = require("@nestjs/websockets");
14
+ const auth_token_helper_1 = require("../../../../helpers/auth-token.helper");
14
15
  const lodash_helper_1 = require("../../../../helpers/lodash.helper");
15
16
  const dynamic_api_module_1 = require("../../../../dynamic-api.module");
16
17
  const mongo_dynamic_api_logger_1 = require("../../../../logger/mongo-dynamic-api.logger");
@@ -42,10 +43,14 @@ let JwtSocketRefreshGuard = JwtSocketRefreshGuard_1 = class JwtSocketRefreshGuar
42
43
  const secret = refreshSecret ?? jwtSecret;
43
44
  const jwtService = new jwt_1.JwtService({ secret });
44
45
  try {
45
- const { iat, exp, jti, ...user } = await jwtService.verifyAsync(refreshToken, {
46
+ const payload = await jwtService.verifyAsync(refreshToken, {
46
47
  secret,
47
48
  ignoreExpiration: false,
48
49
  });
50
+ if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'refresh')) {
51
+ throw new Error('Unexpected token type');
52
+ }
53
+ const { jti, ...user } = (0, auth_token_helper_1.stripTokenClaims)(payload);
49
54
  return user;
50
55
  }
51
56
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-socket-refresh.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IA+CpF,CAAC;IA7CQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,yBAAyB,CAAC,MAAsB;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAsB,CAAC;QAEnE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QACvD,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAqB,kBAAkB,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,aAAa,IAAI,SAAS,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE;gBAC5E,MAAM;gBACN,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AAhDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAgDjC"}
1
+ {"version":3,"file":"jwt-socket-refresh.guard.js","sourceRoot":"","sources":["../../../../../../libs/dynamic-api/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAC3E,qCAAyC;AACzC,mDAAiD;AACjD,6EAAwF;AACxF,qEAA4D;AAC5D,uEAAkE;AAElE,0FAAsF;AAG/E,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACY,WAAM,GAAG,IAAI,kDAAuB,CAAC,uBAAqB,CAAC,IAAI,CAAC,CAAC;IAoDpF,CAAC;IAlDQ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAE3D,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACpD,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,yBAAyB,CAAC,MAAsB;QACxD,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAsB,CAAC;QAEnE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,YAAoB;QACvD,MAAM,aAAa,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAqB,kBAAkB,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,aAAa,IAAI,SAAS,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE;gBACzD,MAAM;gBACN,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,IAAA,iCAAa,EAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,CAAC;YAED,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAA,oCAAgB,EAAC,OAAO,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAErE,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF,CAAA;AArDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAqDjC"}