mongodb-dynamic-api 5.4.1 → 6.0.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.
Files changed (136) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +42 -0
  3. package/package.json +3 -3
  4. package/src/adapters/socket-adapter.d.ts +3 -1
  5. package/src/adapters/socket-adapter.js +24 -4
  6. package/src/adapters/socket-adapter.js.map +1 -1
  7. package/src/decorators/validator-pipe.decorator.d.ts +1 -1
  8. package/src/decorators/validator-pipe.decorator.js +8 -1
  9. package/src/decorators/validator-pipe.decorator.js.map +1 -1
  10. package/src/dynamic-api.module.js +7 -2
  11. package/src/dynamic-api.module.js.map +1 -1
  12. package/src/gateways/base.gateway.js +11 -2
  13. package/src/gateways/base.gateway.js.map +1 -1
  14. package/src/guards/base-policies.guard.js +9 -9
  15. package/src/guards/base-policies.guard.js.map +1 -1
  16. package/src/guards/jwt-socket.guard.js +6 -1
  17. package/src/guards/jwt-socket.guard.js.map +1 -1
  18. package/src/helpers/auth-token.helper.d.ts +10 -0
  19. package/src/helpers/auth-token.helper.js +12 -0
  20. package/src/helpers/auth-token.helper.js.map +1 -0
  21. package/src/helpers/authenticated-room.constant.d.ts +1 -0
  22. package/src/helpers/authenticated-room.constant.js +5 -0
  23. package/src/helpers/authenticated-room.constant.js.map +1 -0
  24. package/src/helpers/index.d.ts +1 -0
  25. package/src/helpers/index.js +1 -0
  26. package/src/helpers/index.js.map +1 -1
  27. package/src/helpers/mint-token-pair.helper.js +2 -2
  28. package/src/helpers/mint-token-pair.helper.js.map +1 -1
  29. package/src/helpers/request-filter.helper.d.ts +5 -0
  30. package/src/helpers/request-filter.helper.js +45 -0
  31. package/src/helpers/request-filter.helper.js.map +1 -0
  32. package/src/helpers/resolve-broadcast.helper.d.ts +1 -0
  33. package/src/helpers/resolve-broadcast.helper.js +8 -2
  34. package/src/helpers/resolve-broadcast.helper.js.map +1 -1
  35. package/src/helpers/socket-config.helper.js +1 -1
  36. package/src/helpers/socket-config.helper.js.map +1 -1
  37. package/src/helpers/validation-config.helper.d.ts +1 -1
  38. package/src/helpers/validation-config.helper.js +2 -2
  39. package/src/helpers/validation-config.helper.js.map +1 -1
  40. package/src/helpers/ws-config.store.js +2 -2
  41. package/src/helpers/ws-config.store.js.map +1 -1
  42. package/src/interfaces/dynamic-api-broadcast-config.interface.d.ts +1 -0
  43. package/src/modules/auth/auth-broadcast.helper.js +9 -3
  44. package/src/modules/auth/auth-broadcast.helper.js.map +1 -1
  45. package/src/modules/auth/auth.module.js +1 -1
  46. package/src/modules/auth/auth.module.js.map +1 -1
  47. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js +6 -2
  48. package/src/modules/auth/guards/jwt-socket-auth/jwt-socket-auth.guard.js.map +1 -1
  49. package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js +6 -1
  50. package/src/modules/auth/guards/jwt-socket-refresh/jwt-socket-refresh.guard.js.map +1 -1
  51. package/src/modules/auth/interfaces/auth-options.interface.d.ts +1 -0
  52. package/src/modules/auth/jwt-secrets.helper.d.ts +3 -0
  53. package/src/modules/auth/jwt-secrets.helper.js +15 -0
  54. package/src/modules/auth/jwt-secrets.helper.js.map +1 -0
  55. package/src/modules/auth/mixins/auth-controller.mixin.js +4 -23
  56. package/src/modules/auth/mixins/auth-controller.mixin.js.map +1 -1
  57. package/src/modules/auth/mixins/auth-gateway.mixin.js +4 -1
  58. package/src/modules/auth/mixins/auth-gateway.mixin.js.map +1 -1
  59. package/src/modules/auth/services/base-auth.service.d.ts +1 -0
  60. package/src/modules/auth/services/base-auth.service.js +31 -21
  61. package/src/modules/auth/services/base-auth.service.js.map +1 -1
  62. package/src/modules/auth/strategies/jwt-refresh.strategy.js +5 -1
  63. package/src/modules/auth/strategies/jwt-refresh.strategy.js.map +1 -1
  64. package/src/modules/auth/strategies/jwt.strategy.d.ts +1 -3
  65. package/src/modules/auth/strategies/jwt.strategy.js +5 -2
  66. package/src/modules/auth/strategies/jwt.strategy.js.map +1 -1
  67. package/src/pipes/dynamic-api-validation.pipe.d.ts +10 -0
  68. package/src/pipes/dynamic-api-validation.pipe.js +32 -0
  69. package/src/pipes/dynamic-api-validation.pipe.js.map +1 -0
  70. package/src/routes/get-many/base-get-many.service.js +2 -0
  71. package/src/routes/get-many/base-get-many.service.js.map +1 -1
  72. package/src/services/base/base.service.d.ts +4 -5
  73. package/src/services/base/base.service.js +9 -9
  74. package/src/services/base/base.service.js.map +1 -1
  75. package/src/services/dynamic-api-broadcast/dynamic-api-broadcast.service.js +5 -1
  76. package/src/services/dynamic-api-broadcast/dynamic-api-broadcast.service.js.map +1 -1
  77. package/src/version.json +1 -1
  78. package/test/e2e.setup.d.ts +4 -0
  79. package/test/e2e.setup.js +13 -0
  80. package/test/e2e.setup.js.map +1 -1
  81. package/test/for-feature/ability-predicate-request-filters.e2e-spec.d.ts +1 -0
  82. package/test/for-feature/ability-predicate-request-filters.e2e-spec.js +159 -0
  83. package/test/for-feature/ability-predicate-request-filters.e2e-spec.js.map +1 -0
  84. package/test/for-feature/broadcast-payload-serialization.e2e-spec.d.ts +1 -0
  85. package/test/for-feature/broadcast-payload-serialization.e2e-spec.js +64 -0
  86. package/test/for-feature/broadcast-payload-serialization.e2e-spec.js.map +1 -0
  87. package/test/for-feature/callbacks-user.e2e-spec.js +3 -2
  88. package/test/for-feature/callbacks-user.e2e-spec.js.map +1 -1
  89. package/test/for-feature/presence.e2e-spec.js +1 -1
  90. package/test/for-feature/presence.e2e-spec.js.map +1 -1
  91. package/test/for-feature/presenter-viewer-context.e2e-spec.js +2 -1
  92. package/test/for-feature/presenter-viewer-context.e2e-spec.js.map +1 -1
  93. package/test/for-feature/validation-strict-bodies.e2e-spec.d.ts +1 -0
  94. package/test/for-feature/validation-strict-bodies.e2e-spec.js +88 -0
  95. package/test/for-feature/validation-strict-bodies.e2e-spec.js.map +1 -0
  96. package/test/for-feature/websockets-authenticated-broadcast.e2e-spec.d.ts +1 -0
  97. package/test/for-feature/websockets-authenticated-broadcast.e2e-spec.js +121 -0
  98. package/test/for-feature/websockets-authenticated-broadcast.e2e-spec.js.map +1 -0
  99. package/test/for-feature/websockets.e2e-spec.js +9 -1
  100. package/test/for-feature/websockets.e2e-spec.js.map +1 -1
  101. package/test/for-root/auth-api-basic.e2e-spec.js +3 -3
  102. package/test/for-root/auth-api-basic.e2e-spec.js.map +1 -1
  103. package/test/for-root/auth-api-broadcast.e2e-spec.js +4 -4
  104. package/test/for-root/auth-api-broadcast.e2e-spec.js.map +1 -1
  105. package/test/for-root/auth-api-passwordless.e2e-spec.js +1 -1
  106. package/test/for-root/auth-api-passwordless.e2e-spec.js.map +1 -1
  107. package/test/for-root/auth-api-rate-limit.e2e-spec.js +2 -1
  108. package/test/for-root/auth-api-rate-limit.e2e-spec.js.map +1 -1
  109. package/test/for-root/auth-api-reset-password.e2e-spec.js +2 -2
  110. package/test/for-root/auth-api-reset-password.e2e-spec.js.map +1 -1
  111. package/test/for-root/auth-api-token-types.e2e-spec.d.ts +1 -0
  112. package/test/for-root/auth-api-token-types.e2e-spec.js +116 -0
  113. package/test/for-root/auth-api-token-types.e2e-spec.js.map +1 -0
  114. package/test/for-root/health-check.e2e-spec.js +1 -1
  115. package/test/for-root/health-check.e2e-spec.js.map +1 -1
  116. package/test/for-root/websockets-auth-basic.e2e-spec.js +9 -15
  117. package/test/for-root/websockets-auth-basic.e2e-spec.js.map +1 -1
  118. package/test/for-root/websockets-auth-broadcast.e2e-spec.js +4 -4
  119. package/test/for-root/websockets-auth-broadcast.e2e-spec.js.map +1 -1
  120. package/test/for-root/websockets-auth-refresh-token.e2e-spec.js +4 -4
  121. package/test/for-root/websockets-auth-refresh-token.e2e-spec.js.map +1 -1
  122. package/test/for-root/websockets-auth-reset-password.e2e-spec.js +2 -2
  123. package/test/for-root/websockets-auth-reset-password.e2e-spec.js.map +1 -1
  124. package/test/for-root/websockets-invalid-token.e2e-spec.js +9 -9
  125. package/test/for-root/websockets-invalid-token.e2e-spec.js.map +1 -1
  126. package/test/shared/index.d.ts +1 -0
  127. package/test/shared/index.js +4 -1
  128. package/test/shared/index.js.map +1 -1
  129. package/test/shared/init-app.js +2 -1
  130. package/test/shared/init-app.js.map +1 -1
  131. package/test/shared/init-module.js +2 -1
  132. package/test/shared/init-module.js.map +1 -1
  133. package/test/shared/test-jwt.d.ts +6 -0
  134. package/test/shared/test-jwt.js +9 -0
  135. package/test/shared/test-jwt.js.map +1 -0
  136. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  Changelog
2
2
 
3
+ ## [6.0.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.2...v6.0.0) (2026-09-27)
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * **websockets:** with useAuth enabled, broadcasts without rooms no longer reach anonymous sockets; set broadcast.public: true to keep them public. A handshake carrying an invalid or expired token is now refused with a connect_error; pass rejectInvalidToken: false to enableDynamicAPIWebSockets for the v5 behavior.
8
+
9
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10
+ Claude-Session: https://claude.ai/code/session_01GkMbWLRLybgXX99EyjuGvA
11
+ * **guards:** a guarded DeleteMany/UpdateMany/DuplicateMany whose ids include a non-existent document now fails with a 404 instead of silently processing the documents that exist.
12
+
13
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14
+ Claude-Session: https://claude.ai/code/session_01GkMbWLRLybgXX99EyjuGvA
15
+ * **validation:** with validation configured, a body property without a class-validator decorator is rejected with a 400; pass whitelist: false and forbidNonWhitelisted: false to keep the previous behavior.
16
+
17
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18
+ Claude-Session: https://claude.ai/code/session_01GkMbWLRLybgXX99EyjuGvA
19
+ * **auth:** useAuth.jwt.secret and useAuth.jwt.refreshSecret are required and must differ; tokens without a typ claim (issued before v5.4.2) are rejected, so users still holding one must log in again.
20
+
21
+ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22
+ Claude-Session: https://claude.ai/code/session_01GkMbWLRLybgXX99EyjuGvA
23
+
24
+ ### websockets
25
+
26
+ * **websockets:** send room-less broadcasts to authenticated sockets only and reject invalid handshake tokens by default ([ca94e52](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ca94e523fc46f745cd71f0996ad55e737efdc06e))
27
+
28
+ ### guards
29
+
30
+ * **guards:** fail the whole ids request when a targeted document is missing ([d559dad](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d559dad21c34742acc0e234ed04cd26ebb87a9fc))
31
+
32
+ ### validation
33
+
34
+ * **validation:** reject undeclared body properties when validation is configured ([9e41eab](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/9e41eab36f1747c09253a159df84e9b3012be057))
35
+
36
+ ### auth
37
+
38
+ * **auth:** require distinct JWT secrets and the typ claim ([03592e6](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/03592e6e41554add64d2138587890232ffac3ab6))
39
+
40
+ ## [5.4.2](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.1...v5.4.2) (2026-09-26)
41
+
42
+ ### quality
43
+
44
+ * **quality:** avoid implicit stringification in the reset-password flow (S6551) ([70647e0](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/70647e0a28b1a1e9a55e4ea35572533273fe6497))
45
+
46
+ ### deps
47
+
48
+ * **deps:** bump bcrypt to 6 and @nestjs/platform-express to 12.1 ([7d3d057](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/7d3d057b2238ff968a302443ba485e6e30068f11))
49
+
50
+ ### websockets
51
+
52
+ * **websockets:** serialize broadcast payloads and honor the cors option ([ca7425b](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ca7425b92770dd81b963ec61603cb5969c15f80b))
53
+
54
+ ### auth
55
+
56
+ * **auth:** verify reset tokens and type every signed token ([ef39643](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/ef39643a63995dbe0ac554a0d3a98221b3bdcb85))
57
+
58
+ ### guards
59
+
60
+ * **guards:** check the documents a request actually targets ([d317d35](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/d317d357fd55d168aef0e1781dc6b745239ea54e))
61
+
3
62
  ## [5.4.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.4.0...v5.4.1) (2026-09-26)
4
63
 
5
64
  ## [5.4.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v5.3.0...v5.4.0) (2026-09-26)
package/README.md CHANGED
@@ -25,6 +25,47 @@
25
25
 
26
26
  ---
27
27
 
28
+ > [!WARNING]
29
+ > **v6 — Breaking changes.** Secure defaults: insecure fallbacks that v5 kept for compatibility are gone. No symbol is renamed, so there is no codemod — apps that already set both JWT secrets, don't send undeclared body fields and don't rely on anonymous WebSocket listeners upgrade without code changes.
30
+ >
31
+ > 🔐 See [migration-v6.md](./README/migration-v6.md) for the per-change checklist and the front-end changes.
32
+ >
33
+ > <details>
34
+ > <summary>📋 Full list of breaking changes (v5 → v6)</summary>
35
+ >
36
+ > ### 🔑 JWT secrets required
37
+ > `useAuth.jwt.secret` and `useAuth.jwt.refreshSecret` are required and must differ — `forRoot()` throws at startup otherwise. There is no default secret any more.
38
+ > ```typescript
39
+ > jwt: { secret: process.env.JWT_SECRET, refreshSecret: process.env.JWT_REFRESH_SECRET }
40
+ > ```
41
+ >
42
+ > ### 🏷️ `typ` claim required
43
+ > Tokens without a `typ` claim (signed before v5.4.2) are rejected with `401`.
44
+ >
45
+ > ### 🧾 Strict request bodies
46
+ > Once validation is configured (`enableDynamicAPIValidation` or `validationPipeOptions`), bodies are validated with `whitelist` + `forbidNonWhitelisted`: an undeclared property → `400`. Routes without configured validation are unchanged.
47
+ >
48
+ > ### 🛡️ Strict `ids` check
49
+ > `DeleteMany` / `UpdateMany` / `DuplicateMany` with an `abilityPredicate`: one missing id → `404` for the whole request, nothing written.
50
+ >
51
+ > ### 📡 Authenticated-only broadcasts
52
+ > With `useAuth`, a broadcast without `rooms` only reaches authenticated sockets. `broadcast: { enabled: true, public: true }` restores the v5 behavior.
53
+ >
54
+ > ### 🔌 Invalid handshake tokens refused
55
+ > `rejectInvalidToken` defaults to `true`: an expired or invalid token gets a `connect_error` (`Unauthorized: …`). `enableDynamicAPIWebSockets(app, { rejectInvalidToken: false })` restores the v5 behavior.
56
+ >
57
+ > | Change | v5 | v6 |
58
+ > |---|---|---|
59
+ > | Missing `jwt.secret` | package default secret | startup error |
60
+ > | Missing `jwt.refreshSecret` | falls back to `secret` | startup error |
61
+ > | Token without `typ` | accepted as access token | `401` |
62
+ > | Undeclared body field (validation configured) | accepted | `400` |
63
+ > | Missing id in `ids` (with `abilityPredicate`) | ignored | `404` |
64
+ > | Room-less broadcast (auth enabled) | every socket | authenticated sockets |
65
+ > | Invalid handshake token | anonymous + `unauthorized` event | `connect_error` |
66
+ >
67
+ > </details>
68
+
28
69
  > [!WARNING]
29
70
  > **v5 — Breaking changes.** The package's public export surface was curated: internal implementation classes, mixins, builders and helpers that were never meant to be imported directly are no longer exported from `mongodb-dynamic-api`. Everything documented in this README and in `README/*.md` is unaffected.
30
71
  >
@@ -347,6 +388,7 @@ Register `UsersModule` in `AppModule`, run `npm run start:dev` — your API is l
347
388
  | 🩺 **Health Check** | `GET /health` readiness probe, `DynamicApiHealthModule` ⭐ *New* | [View](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/health-check.md) |
348
389
  | 🧪 **Testing** | `createDynamicApiTestingApp`, in-memory MongoDB, zero Docker ⭐ *New* | [View](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/testing.md) |
349
390
  | 🏗️ **Schematics** | `nest g -c mongodb-dynamic-api resource <name>` — scaffold entity + module in one command ⭐ *New* | [View](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/schematics.md) |
391
+ | 🔐 **Migrating to v6** | Secure defaults: required secrets, strict bodies, authenticated-only broadcasts — checklist + front-end changes ⭐ *New* | [View](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/migration-v6.md) |
350
392
  | 🚚 **Migrating to v5** | `npx mongodb-dynamic-api migrate-v5 <path>` — codemod for the mechanical v5 renames ⭐ *New* | [View](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/migration-v5.md) |
351
393
 
352
394
  > [!NOTE]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb-dynamic-api",
3
- "version": "5.4.1",
3
+ "version": "6.0.0",
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",
@@ -1,5 +1,5 @@
1
1
  import { IoAdapter } from '@nestjs/platform-socket.io';
2
- import { Server, ServerOptions } from 'socket.io';
2
+ import { Server, ServerOptions, Socket } from 'socket.io';
3
3
  export declare class SocketAdapter extends IoAdapter {
4
4
  private readonly logger;
5
5
  private ioServer;
@@ -7,6 +7,8 @@ export declare class SocketAdapter extends IoAdapter {
7
7
  namespace?: string;
8
8
  server?: Server;
9
9
  }): Server;
10
+ bindClientConnect(server: Server, callback: (socket: Socket) => void): void;
11
+ private joinAuthenticatedRoom;
10
12
  private handleConnection;
11
13
  private verifyHandshakeToken;
12
14
  }
@@ -3,8 +3,11 @@ 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");
7
+ const authenticated_room_constant_1 = require("../helpers/authenticated-room.constant");
6
8
  const ws_config_store_1 = require("../helpers/ws-config.store");
7
9
  const mongo_dynamic_api_logger_1 = require("../logger/mongo-dynamic-api.logger");
10
+ const dynamic_api_global_state_service_1 = require("../services/dynamic-api-global-state/dynamic-api-global-state.service");
8
11
  class SocketAdapter extends platform_socket_io_1.IoAdapter {
9
12
  constructor() {
10
13
  super(...arguments);
@@ -13,7 +16,7 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
13
16
  }
14
17
  createIOServer(port, options) {
15
18
  if (!this.ioServer) {
16
- this.ioServer = super.createIOServer(port, { ...options, cors: { origin: '*' } });
19
+ this.ioServer = super.createIOServer(port, { ...options, cors: options?.cors ?? { origin: '*' } });
17
20
  this.ioServer.use((socket, next) => {
18
21
  if (!ws_config_store_1.DynamicApiWsConfigStore.rejectInvalidToken) {
19
22
  return next();
@@ -33,11 +36,25 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
33
36
  }
34
37
  return this.ioServer;
35
38
  }
39
+ bindClientConnect(server, callback) {
40
+ server.on('connection', (socket) => {
41
+ this.joinAuthenticatedRoom(socket);
42
+ callback(socket);
43
+ });
44
+ }
45
+ joinAuthenticatedRoom(socket) {
46
+ const { user } = this.verifyHandshakeToken(socket);
47
+ if (user) {
48
+ socket.user = user;
49
+ socket.join(authenticated_room_constant_1.DYNAMIC_API_AUTHENTICATED_ROOM);
50
+ }
51
+ }
36
52
  handleConnection(socket) {
37
53
  const { debug, onConnection, customEvents } = ws_config_store_1.DynamicApiWsConfigStore;
38
54
  const { user, error } = this.verifyHandshakeToken(socket);
39
55
  if (user) {
40
56
  socket.user = user;
57
+ socket.join(authenticated_room_constant_1.DYNAMIC_API_AUTHENTICATED_ROOM);
41
58
  }
42
59
  if (error) {
43
60
  if (debug) {
@@ -80,14 +97,17 @@ class SocketAdapter extends platform_socket_io_1.IoAdapter {
80
97
  }
81
98
  }
82
99
  verifyHandshakeToken(socket) {
83
- const { jwtSecret } = ws_config_store_1.DynamicApiWsConfigStore;
100
+ const jwtSecret = ws_config_store_1.DynamicApiWsConfigStore.jwtSecret ?? dynamic_api_global_state_service_1.DynamicApiGlobalStateService.getValue('jwtSecret');
84
101
  const token = socket.handshake?.auth?.token;
85
102
  if (!jwtSecret || !token) {
86
103
  return {};
87
104
  }
88
105
  try {
89
- const { iat, exp, ...payload } = jwt.verify(token, jwtSecret);
90
- return { user: payload };
106
+ const payload = jwt.verify(token, jwtSecret);
107
+ if (!(0, auth_token_helper_1.isTokenOfType)(payload, 'access')) {
108
+ return { error: 'invalid token type' };
109
+ }
110
+ return { user: (0, auth_token_helper_1.stripTokenClaims)(payload) };
91
111
  }
92
112
  catch (e) {
93
113
  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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"}
@@ -1,3 +1,3 @@
1
- import { ValidationPipeOptions } from '@nestjs/common';
1
+ import type { ValidationPipeOptions } from '@nestjs/common';
2
2
  declare function ValidatorPipe(validationPipeOptions?: ValidationPipeOptions): ClassDecorator;
3
3
  export { ValidatorPipe };
@@ -2,7 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ValidatorPipe = ValidatorPipe;
4
4
  const common_1 = require("@nestjs/common");
5
+ const dynamic_api_validation_pipe_1 = require("../pipes/dynamic-api-validation.pipe");
5
6
  function ValidatorPipe(validationPipeOptions) {
6
- return validationPipeOptions ? (0, common_1.applyDecorators)((0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions))) : (_) => undefined;
7
+ if (!validationPipeOptions) {
8
+ return (_) => undefined;
9
+ }
10
+ const pipe = validationPipeOptions === dynamic_api_validation_pipe_1.IMPLICIT_ROUTE_VALIDATION_OPTIONS
11
+ ? new common_1.ValidationPipe(validationPipeOptions)
12
+ : new dynamic_api_validation_pipe_1.DynamicApiValidationPipe(validationPipeOptions);
13
+ return (0, common_1.applyDecorators)((0, common_1.UsePipes)(pipe));
7
14
  }
8
15
  //# sourceMappingURL=validator-pipe.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator-pipe.decorator.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/validator-pipe.decorator.ts"],"names":[],"mappings":";;AASS,sCAAa;AATtB,2CAAkG;AAGlG,SAAS,aAAa,CAAC,qBAA6C;IAClE,OAAO,qBAAqB,CAAC,CAAC,CAAC,IAAA,wBAAe,EAC5C,IAAA,iBAAQ,EAAC,IAAI,uBAAc,CAAC,qBAAqB,CAAC,CAAC,CACpD,CAAC,CAAC,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,SAAS,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"validator-pipe.decorator.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/decorators/validator-pipe.decorator.ts"],"names":[],"mappings":";;AAiBS,sCAAa;AAjBtB,2CAA2E;AAE3E,sFAAmH;AAGnH,SAAS,aAAa,CAAC,qBAA6C;IAClE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAU,EAAE,EAAE,CAAC,SAAS,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,qBAAqB,KAAK,+DAAiC;QACtE,CAAC,CAAC,IAAI,uBAAc,CAAC,qBAAqB,CAAC;QAC3C,CAAC,CAAC,IAAI,sDAAwB,CAAC,qBAAqB,CAAC,CAAC;IAExD,OAAO,IAAA,wBAAe,EAAC,IAAA,iBAAQ,EAAC,IAAI,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -23,6 +23,8 @@ const cache_path_registry_store_1 = require("./helpers/cache-path-registry.store
23
23
  const dynamic_api_cache_interceptor_1 = require("./interceptors/dynamic-api-cache.interceptor");
24
24
  const dynamic_api_options_interface_1 = require("./interfaces/dynamic-api-options.interface");
25
25
  const modules_1 = require("./modules");
26
+ const jwt_secrets_helper_1 = require("./modules/auth/jwt-secrets.helper");
27
+ const dynamic_api_validation_pipe_1 = require("./pipes/dynamic-api-validation.pipe");
26
28
  const routes_1 = require("./routes");
27
29
  const services_1 = require("./services");
28
30
  const dynamic_api_broadcast_service_1 = require("./services/dynamic-api-broadcast/dynamic-api-broadcast.service");
@@ -32,6 +34,9 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
32
34
  if (!uri) {
33
35
  throw new Error('You must provide a valid mongodb uri in the forRoot method to use MongoDB Dynamic API');
34
36
  }
37
+ if (useAuth?.userEntity) {
38
+ (0, jwt_secrets_helper_1.assertJwtSecrets)(useAuth.jwt);
39
+ }
35
40
  this.state.set([
36
41
  'partial',
37
42
  this.buildStateFromOptions(uri, useGlobalCache, cacheOptions, { useAuth, routesConfig, webSocket, broadcastGatewayOptions, onAfterSaveError }),
@@ -118,7 +123,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
118
123
  return;
119
124
  }
120
125
  const validationPipeOptions = routeValidationPipeOptions ?? controllerValidationPipeOptions;
121
- return module.forFeature(databaseModule, entity, controllerOptions, { ...routeConfig, description }, version, validationPipeOptions ?? { transform: true }, routeWebSocket ?? featureWebSocket, extraImports, extraProviders, extraControllers);
126
+ return module.forFeature(databaseModule, entity, controllerOptions, { ...routeConfig, description }, version, validationPipeOptions ?? dynamic_api_validation_pipe_1.IMPLICIT_ROUTE_VALIDATION_OPTIONS, routeWebSocket ?? featureWebSocket, extraImports, extraProviders, extraControllers);
122
127
  }),
123
128
  ],
124
129
  controllers: [
@@ -163,7 +168,7 @@ let DynamicApiModule = DynamicApiModule_1 = class DynamicApiModule {
163
168
  loginField: !useAuth.login?.loginField ? 'email' : String(useAuth.login.loginField),
164
169
  passwordField: !useAuth.login?.passwordField ? 'password' : String(useAuth.login.passwordField),
165
170
  },
166
- jwtSecret: useAuth.jwt?.secret ?? 'dynamic-api-jwt-secret',
171
+ jwtSecret: useAuth.jwt?.secret,
167
172
  jwtExpirationTime: useAuth.jwt?.expiresIn ?? '15m',
168
173
  jwtRefreshTokenExpiresIn: useAuth.jwt?.refreshTokenExpiresIn ?? '7d',
169
174
  jwtRefreshSecret: useAuth.jwt?.refreshSecret,
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-api.module.js","sourceRoot":"","sources":["../../libs/dynamic-api/src/dynamic-api.module.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ 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");
7
+ const authenticated_room_constant_1 = require("../helpers/authenticated-room.constant");
6
8
  const lodash_helper_1 = require("../helpers/lodash.helper");
7
9
  const resolve_broadcast_helper_1 = require("../helpers/resolve-broadcast.helper");
8
10
  const ws_config_store_1 = require("../helpers/ws-config.store");
@@ -29,7 +31,11 @@ class BaseGateway {
29
31
  this.logger.warn('Invalid access token');
30
32
  this.logger.error(e.message, e.stack);
31
33
  }
32
- const { iat, exp, ...user } = verified ?? {};
34
+ if (verified && !(0, auth_token_helper_1.isTokenOfType)(verified, 'access')) {
35
+ this.logger.warn('Invalid access token type');
36
+ verified = undefined;
37
+ }
38
+ const user = verified ? (0, auth_token_helper_1.stripTokenClaims)(verified) : {};
33
39
  socket.user = !(0, lodash_helper_1.isEmpty)(user) ? user : undefined;
34
40
  }
35
41
  if (socket.user?.id && verified?.exp > Date.now() / 1000) {
@@ -48,13 +54,16 @@ class BaseGateway {
48
54
  if (!resolved) {
49
55
  return;
50
56
  }
51
- const { event: broadcastEvent, rooms, data: broadcastData } = resolved;
57
+ const { event: broadcastEvent, rooms, data: broadcastData, authenticatedOnly } = resolved;
52
58
  if (ws_config_store_1.DynamicApiWsConfigStore.debug) {
53
59
  this.logger.log(`[WS] broadcastIfNeeded – event=${broadcastEvent}, rooms=${rooms ? JSON.stringify(rooms) : 'all'}, items=${broadcastData.length}`);
54
60
  }
55
61
  if (rooms) {
56
62
  socket.nsp.to(rooms).emit(broadcastEvent, broadcastData);
57
63
  }
64
+ else if (authenticatedOnly) {
65
+ socket.broadcast.to(authenticated_room_constant_1.DYNAMIC_API_AUTHENTICATED_ROOM).emit(broadcastEvent, broadcastData);
66
+ }
58
67
  else {
59
68
  socket.broadcast.emit(broadcastEvent, broadcastData);
60
69
  }
@@ -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,21 @@ 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
+ const documents = await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(query), user);
34
+ (0, request_filter_helper_1.assertEveryTargetFound)(query, documents.length);
35
35
  }
36
36
  }
37
37
  return true;
@@ -70,19 +70,19 @@ class BaseSocketPoliciesGuard extends base_service_1.BaseService {
70
70
  }
71
71
  if (this.abilityPredicate && this.predicateBehavior !== 'filter') {
72
72
  try {
73
- this.user = socket.user;
74
73
  const { id } = data || {};
75
74
  if (id) {
76
75
  this.logger.debug(`Finding one document with id: ${id} and ability predicate`);
77
- await this.findOneDocumentWithAbilityPredicate(id);
76
+ await this.findOneDocumentWithAbilityPredicate(id, undefined, undefined, socket.user);
78
77
  }
79
78
  else if (this.routeType === 'Aggregate' && data && this.queryToPipeline) {
80
79
  this.logger.debug('Aggregating documents with ability predicate');
81
- await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data));
80
+ await this.aggregateDocumentsWithAbilityPredicate(this.queryToPipeline(data), socket.user);
82
81
  }
83
82
  else {
84
83
  this.logger.debug('Finding many documents with ability predicate');
85
- await this.findManyDocumentsWithAbilityPredicate(data);
84
+ const documents = await this.findManyDocumentsWithAbilityPredicate((0, request_filter_helper_1.buildAbilityPredicateFilter)(data), socket.user);
85
+ (0, request_filter_helper_1.assertEveryTargetFound)(data, documents.length);
86
86
  }
87
87
  }
88
88
  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":"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"}
@@ -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":";;;AACA,qCAAyC;AACzC,mDAAiD;AACjD,oEAA+E;AAC/E,4DAAmD;AAEnD,8DAAyD;AACzD,iFAA6E;AAG7E,MAAa,cAAc;IAIzB,YAA+B,WAAW,KAAK;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;QAH9B,WAAM,GAAG,IAAI,kDAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAGzB,CAAC;IAEnD,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,gBAAU,CAAC;gBAChC,MAAM,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,WAAW,EAAE;oBACX,SAAS,EAAE,qCAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;iBAC3D;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,MAAM,EAAE,EAAE;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAElD,IAAI,IAAA,uBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACjC,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAEO,wBAAwB,CAAC,MAAc;QAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAe,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;YAC5C,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC5D,MAAM,IAAI,wBAAW,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC7D,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,MAAM,IAAI,GAAG,IAAA,oCAAgB,EAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAE3E,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;AAnFD,wCAmFC"}
@@ -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,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTokenOfType = isTokenOfType;
4
+ exports.stripTokenClaims = stripTokenClaims;
5
+ function isTokenOfType(payload, expected) {
6
+ return payload?.typ === expected;
7
+ }
8
+ function stripTokenClaims(payload) {
9
+ const { iat, exp, typ, ...user } = payload;
10
+ return user;
11
+ }
12
+ //# 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":";;AAgCS,sCAAa;AAAE,4CAAgB;AAbxC,SAAS,aAAa,CAAC,OAA2C,EAAE,QAAuB;IACzF,OAAO,OAAO,EAAE,GAAG,KAAK,QAAQ,CAAC;AACnC,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"}
@@ -0,0 +1 @@
1
+ export declare const DYNAMIC_API_AUTHENTICATED_ROOM = "dynamic-api:authenticated";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DYNAMIC_API_AUTHENTICATED_ROOM = void 0;
4
+ exports.DYNAMIC_API_AUTHENTICATED_ROOM = 'dynamic-api:authenticated';
5
+ //# sourceMappingURL=authenticated-room.constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authenticated-room.constant.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/authenticated-room.constant.ts"],"names":[],"mappings":";;;AAKa,QAAA,8BAA8B,GAAG,2BAA2B,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './authenticated-room.constant';
1
2
  export * from './index-sync.helper';
2
3
  export * from './mint-token-pair.helper';
3
4
  export { isTransactionsUnsupportedError } from './mongo-transaction.helper';
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.enableDynamicAPIVersioning = exports.enableDynamicAPIWebSockets = exports.isTransactionsUnsupportedError = void 0;
18
+ __exportStar(require("./authenticated-room.constant"), exports);
18
19
  __exportStar(require("./index-sync.helper"), exports);
19
20
  __exportStar(require("./mint-token-pair.helper"), exports);
20
21
  var mongo_transaction_helper_1 = require("./mongo-transaction.helper");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,sDAAoC;AACpC,2DAAyC;AACzC,uEAA4E;AAAnE,0IAAA,8BAA8B,OAAA;AACvC,yDAAuC;AACvC,6DAA2C;AAC3C,+DAAoE;AAA3D,kIAAA,0BAA0B,OAAA;AACnC,0DAAwC;AACxC,uEAAwE;AAA/D,sIAAA,0BAA0B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,gEAA8C;AAC9C,sDAAoC;AACpC,2DAAyC;AACzC,uEAA4E;AAAnE,0IAAA,8BAA8B,OAAA;AACvC,yDAAuC;AACvC,6DAA2C;AAC3C,+DAAoE;AAA3D,kIAAA,0BAA0B,OAAA;AACnC,0DAAwC;AACxC,uEAAwE;AAA/D,sIAAA,0BAA0B,OAAA"}