@lenne.tech/nest-server 11.32.4 → 11.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/.claude/rules/architecture.md +16 -0
  2. package/.claude/rules/configurable-features.md +11 -3
  3. package/.claude/rules/testing.md +101 -1
  4. package/CLAUDE.md +5 -0
  5. package/FRAMEWORK-API.md +58 -3
  6. package/dist/config.env.js +6 -0
  7. package/dist/config.env.js.map +1 -1
  8. package/dist/core/common/helpers/content-disposition.helper.d.ts +1 -0
  9. package/dist/core/common/helpers/content-disposition.helper.js +14 -0
  10. package/dist/core/common/helpers/content-disposition.helper.js.map +1 -0
  11. package/dist/core/common/helpers/file.helper.d.ts +7 -0
  12. package/dist/core/common/helpers/file.helper.js +21 -4
  13. package/dist/core/common/helpers/file.helper.js.map +1 -1
  14. package/dist/core/common/helpers/graceful-shutdown.helper.d.ts +2 -0
  15. package/dist/core/common/helpers/graceful-shutdown.helper.js +55 -0
  16. package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -0
  17. package/dist/core/common/helpers/project-name.helper.d.ts +2 -0
  18. package/dist/core/common/helpers/project-name.helper.js +38 -0
  19. package/dist/core/common/helpers/project-name.helper.js.map +1 -0
  20. package/dist/core/common/interfaces/cron-job-config.interface.d.ts +1 -0
  21. package/dist/core/common/interfaces/server-options.interface.d.ts +39 -0
  22. package/dist/core/common/services/core-cron-jobs.initializer.d.ts +10 -0
  23. package/dist/core/common/services/core-cron-jobs.initializer.js +46 -0
  24. package/dist/core/common/services/core-cron-jobs.initializer.js.map +1 -0
  25. package/dist/core/common/services/core-cron-jobs.registry.d.ts +8 -0
  26. package/dist/core/common/services/core-cron-jobs.registry.js +12 -0
  27. package/dist/core/common/services/core-cron-jobs.registry.js.map +1 -0
  28. package/dist/core/common/services/core-cron-jobs.service.d.ts +37 -7
  29. package/dist/core/common/services/core-cron-jobs.service.js +278 -27
  30. package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
  31. package/dist/core/common/services/core-redis-pubsub.d.ts +20 -0
  32. package/dist/core/common/services/core-redis-pubsub.js +112 -0
  33. package/dist/core/common/services/core-redis-pubsub.js.map +1 -0
  34. package/dist/core/common/services/core-redis.service.d.ts +25 -0
  35. package/dist/core/common/services/core-redis.service.js +154 -0
  36. package/dist/core/common/services/core-redis.service.js.map +1 -0
  37. package/dist/core/common/services/core-s3.service.d.ts +51 -0
  38. package/dist/core/common/services/core-s3.service.js +261 -0
  39. package/dist/core/common/services/core-s3.service.js.map +1 -0
  40. package/dist/core/common/services/core-trust-proxy.initializer.d.ts +16 -0
  41. package/dist/core/common/services/core-trust-proxy.initializer.js +77 -0
  42. package/dist/core/common/services/core-trust-proxy.initializer.js.map +1 -0
  43. package/dist/core/common/services/rate-limit-store.d.ts +61 -0
  44. package/dist/core/common/services/rate-limit-store.js +235 -0
  45. package/dist/core/common/services/rate-limit-store.js.map +1 -0
  46. package/dist/core/modules/ai/core-ai-mcp.controller.d.ts +19 -3
  47. package/dist/core/modules/ai/core-ai-mcp.controller.js +148 -18
  48. package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
  49. package/dist/core/modules/ai/services/core-ai.service.d.ts +7 -2
  50. package/dist/core/modules/ai/services/core-ai.service.js +24 -20
  51. package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
  52. package/dist/core/modules/auth/core-auth.module.js +4 -1
  53. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  54. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +1 -1
  55. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +3 -14
  56. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -1
  57. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +12 -10
  58. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +30 -59
  59. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -1
  60. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +8 -2
  61. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +118 -45
  62. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -1
  63. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.d.ts +1 -1
  64. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js +2 -11
  65. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js.map +1 -1
  66. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.d.ts +12 -10
  67. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js +30 -85
  68. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js.map +1 -1
  69. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +0 -1
  70. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
  71. package/dist/core/modules/file/core-file.controller.d.ts +11 -2
  72. package/dist/core/modules/file/core-file.controller.js +52 -15
  73. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  74. package/dist/core/modules/file/core-file.resolver.d.ts +4 -4
  75. package/dist/core/modules/file/core-file.resolver.js +23 -16
  76. package/dist/core/modules/file/core-file.resolver.js.map +1 -1
  77. package/dist/core/modules/file/core-file.service.d.ts +41 -7
  78. package/dist/core/modules/file/core-file.service.js +228 -8
  79. package/dist/core/modules/file/core-file.service.js.map +1 -1
  80. package/dist/core/modules/file/file-metadata.helper.d.ts +16 -0
  81. package/dist/core/modules/file/file-metadata.helper.js +33 -0
  82. package/dist/core/modules/file/file-metadata.helper.js.map +1 -0
  83. package/dist/core/modules/file/file-roles.helper.d.ts +4 -0
  84. package/dist/core/modules/file/file-roles.helper.js +53 -0
  85. package/dist/core/modules/file/file-roles.helper.js.map +1 -0
  86. package/dist/core/modules/file/file-storage.helper.d.ts +13 -0
  87. package/dist/core/modules/file/file-storage.helper.js +65 -0
  88. package/dist/core/modules/file/file-storage.helper.js.map +1 -0
  89. package/dist/core/modules/file/filesystem-file.helper.d.ts +22 -0
  90. package/dist/core/modules/file/filesystem-file.helper.js +77 -0
  91. package/dist/core/modules/file/filesystem-file.helper.js.map +1 -0
  92. package/dist/core/modules/file/interfaces/file-service-options.interface.d.ts +1 -0
  93. package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +7 -1
  94. package/dist/core/modules/file/s3-file.helper.d.ts +37 -0
  95. package/dist/core/modules/file/s3-file.helper.js +81 -0
  96. package/dist/core/modules/file/s3-file.helper.js.map +1 -0
  97. package/dist/core/modules/hub/core-hub.controller.d.ts +8 -8
  98. package/dist/core/modules/hub/core-hub.controller.js +24 -22
  99. package/dist/core/modules/hub/core-hub.controller.js.map +1 -1
  100. package/dist/core/modules/hub/helpers/hub-mask.helper.js +2 -2
  101. package/dist/core/modules/hub/helpers/hub-mask.helper.js.map +1 -1
  102. package/dist/core/modules/hub/hub-buffer.d.ts +23 -0
  103. package/dist/core/modules/hub/hub-buffer.js +101 -0
  104. package/dist/core/modules/hub/hub-buffer.js.map +1 -0
  105. package/dist/core/modules/hub/services/core-hub-mailbox.service.d.ts +7 -5
  106. package/dist/core/modules/hub/services/core-hub-mailbox.service.js +14 -10
  107. package/dist/core/modules/hub/services/core-hub-mailbox.service.js.map +1 -1
  108. package/dist/core/modules/hub/services/hub-log-buffer.service.d.ts +5 -2
  109. package/dist/core/modules/hub/services/hub-log-buffer.service.js +17 -8
  110. package/dist/core/modules/hub/services/hub-log-buffer.service.js.map +1 -1
  111. package/dist/core/modules/hub/services/hub-query-profiler.service.d.ts +4 -2
  112. package/dist/core/modules/hub/services/hub-query-profiler.service.js +13 -7
  113. package/dist/core/modules/hub/services/hub-query-profiler.service.js.map +1 -1
  114. package/dist/core/modules/hub/services/hub-trace-buffer.service.d.ts +4 -2
  115. package/dist/core/modules/hub/services/hub-trace-buffer.service.js +13 -8
  116. package/dist/core/modules/hub/services/hub-trace-buffer.service.js.map +1 -1
  117. package/dist/core/modules/migrate/helpers/migration.helper.d.ts +2 -6
  118. package/dist/core/modules/migrate/helpers/migration.helper.js +4 -4
  119. package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
  120. package/dist/core/modules/migrate/migration-runner.d.ts +1 -0
  121. package/dist/core/modules/migrate/migration-runner.js +4 -0
  122. package/dist/core/modules/migrate/migration-runner.js.map +1 -1
  123. package/dist/core/modules/migrate/mongo-state-store.d.ts +1 -0
  124. package/dist/core/modules/migrate/mongo-state-store.js +98 -9
  125. package/dist/core/modules/migrate/mongo-state-store.js.map +1 -1
  126. package/dist/core/modules/system-setup/core-system-setup.service.d.ts +2 -0
  127. package/dist/core/modules/system-setup/core-system-setup.service.js +31 -1
  128. package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
  129. package/dist/core/modules/tenant/core-tenant.guard.d.ts +17 -3
  130. package/dist/core/modules/tenant/core-tenant.guard.js +92 -15
  131. package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
  132. package/dist/core/modules/tenant/core-tenant.module.js +3 -4
  133. package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
  134. package/dist/core/modules/tus/core-tus.controller.d.ts +2 -0
  135. package/dist/core/modules/tus/core-tus.controller.js +29 -3
  136. package/dist/core/modules/tus/core-tus.controller.js.map +1 -1
  137. package/dist/core/modules/tus/core-tus.service.d.ts +24 -1
  138. package/dist/core/modules/tus/core-tus.service.js +182 -28
  139. package/dist/core/modules/tus/core-tus.service.js.map +1 -1
  140. package/dist/core/modules/tus/interfaces/tus-config.interface.js +3 -0
  141. package/dist/core/modules/tus/interfaces/tus-config.interface.js.map +1 -1
  142. package/dist/core/modules/tus/tus-redis-locker.d.ts +25 -0
  143. package/dist/core/modules/tus/tus-redis-locker.js +87 -0
  144. package/dist/core/modules/tus/tus-redis-locker.js.map +1 -0
  145. package/dist/core/modules/tus/tus.module.d.ts +1 -0
  146. package/dist/core/modules/tus/tus.module.js +30 -4
  147. package/dist/core/modules/tus/tus.module.js.map +1 -1
  148. package/dist/core.module.js +18 -1
  149. package/dist/core.module.js.map +1 -1
  150. package/dist/index.d.ts +10 -0
  151. package/dist/index.js +10 -0
  152. package/dist/index.js.map +1 -1
  153. package/dist/main.js +2 -1
  154. package/dist/main.js.map +1 -1
  155. package/dist/server/modules/file/file.controller.js +2 -2
  156. package/dist/server/modules/file/file.controller.js.map +1 -1
  157. package/dist/server/modules/file/file.resolver.js +3 -14
  158. package/dist/server/modules/file/file.resolver.js.map +1 -1
  159. package/dist/server/modules/file/file.service.d.ts +10 -2
  160. package/dist/server/modules/file/file.service.js +23 -3
  161. package/dist/server/modules/file/file.service.js.map +1 -1
  162. package/dist/server/modules/user/avatar.controller.d.ts +5 -1
  163. package/dist/server/modules/user/avatar.controller.js +26 -10
  164. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  165. package/dist/server/modules/user/user.model.js +3 -2
  166. package/dist/server/modules/user/user.model.js.map +1 -1
  167. package/dist/server/modules/user/user.module.js +6 -2
  168. package/dist/server/modules/user/user.module.js.map +1 -1
  169. package/dist/server/modules/user/user.service.d.ts +1 -1
  170. package/dist/server/modules/user/user.service.js +6 -13
  171. package/dist/server/modules/user/user.service.js.map +1 -1
  172. package/dist/tsconfig.build.tsbuildinfo +1 -1
  173. package/docs/REQUEST-LIFECYCLE.md +57 -8
  174. package/docs/security-overrides.md +21 -3
  175. package/migration-guides/11.32.3-to-11.32.4.md +15 -3
  176. package/migration-guides/11.32.x-to-11.33.x.md +1584 -0
  177. package/package.json +74 -42
  178. package/src/config.env.ts +45 -0
  179. package/src/core/common/helpers/content-disposition.helper.ts +90 -0
  180. package/src/core/common/helpers/file.helper.ts +53 -10
  181. package/src/core/common/helpers/graceful-shutdown.helper.ts +116 -0
  182. package/src/core/common/helpers/project-name.helper.ts +71 -0
  183. package/src/core/common/interfaces/cron-job-config.interface.ts +16 -0
  184. package/src/core/common/interfaces/server-options.interface.ts +439 -2
  185. package/src/core/common/services/core-cron-jobs.initializer.ts +39 -0
  186. package/src/core/common/services/core-cron-jobs.registry.ts +45 -0
  187. package/src/core/common/services/core-cron-jobs.service.ts +589 -47
  188. package/src/core/common/services/core-redis-pubsub.ts +183 -0
  189. package/src/core/common/services/core-redis.service.ts +249 -0
  190. package/src/core/common/services/core-s3.service.ts +465 -0
  191. package/src/core/common/services/core-trust-proxy.initializer.ts +112 -0
  192. package/src/core/common/services/rate-limit-store.ts +492 -0
  193. package/src/core/modules/ai/README.md +25 -0
  194. package/src/core/modules/ai/core-ai-mcp.controller.ts +253 -22
  195. package/src/core/modules/ai/services/core-ai.service.ts +33 -24
  196. package/src/core/modules/auth/core-auth.module.ts +7 -1
  197. package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +12 -21
  198. package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +49 -93
  199. package/src/core/modules/better-auth/core-better-auth-email-verification.service.ts +202 -66
  200. package/src/core/modules/better-auth/core-better-auth-rate-limit.middleware.ts +11 -18
  201. package/src/core/modules/better-auth/core-better-auth-rate-limiter.service.ts +51 -132
  202. package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +7 -1
  203. package/src/core/modules/file/INTEGRATION-CHECKLIST.md +120 -0
  204. package/src/core/modules/file/README.md +308 -53
  205. package/src/core/modules/file/core-file.controller.ts +168 -12
  206. package/src/core/modules/file/core-file.resolver.ts +46 -12
  207. package/src/core/modules/file/core-file.service.ts +517 -17
  208. package/src/core/modules/file/file-metadata.helper.ts +142 -0
  209. package/src/core/modules/file/file-roles.helper.ts +110 -0
  210. package/src/core/modules/file/file-storage.helper.ts +163 -0
  211. package/src/core/modules/file/filesystem-file.helper.ts +184 -0
  212. package/src/core/modules/file/interfaces/file-service-options.interface.ts +14 -0
  213. package/src/core/modules/file/interfaces/file-upload.interface.ts +17 -1
  214. package/src/core/modules/file/s3-file.helper.ts +209 -0
  215. package/src/core/modules/hub/README.md +48 -0
  216. package/src/core/modules/hub/core-hub.controller.ts +18 -16
  217. package/src/core/modules/hub/helpers/hub-mask.helper.ts +21 -4
  218. package/src/core/modules/hub/hub-buffer.ts +198 -0
  219. package/src/core/modules/hub/services/core-hub-mailbox.service.ts +22 -12
  220. package/src/core/modules/hub/services/hub-log-buffer.service.ts +24 -8
  221. package/src/core/modules/hub/services/hub-query-profiler.service.ts +9 -6
  222. package/src/core/modules/hub/services/hub-trace-buffer.service.ts +14 -9
  223. package/src/core/modules/migrate/README.md +33 -6
  224. package/src/core/modules/migrate/helpers/migration.helper.ts +13 -6
  225. package/src/core/modules/migrate/migration-runner.ts +10 -1
  226. package/src/core/modules/migrate/mongo-state-store.ts +179 -11
  227. package/src/core/modules/system-setup/README.md +7 -2
  228. package/src/core/modules/system-setup/core-system-setup.service.ts +95 -1
  229. package/src/core/modules/tenant/README.md +21 -1
  230. package/src/core/modules/tenant/core-tenant.guard.ts +135 -14
  231. package/src/core/modules/tenant/core-tenant.module.ts +8 -4
  232. package/src/core/modules/tus/INTEGRATION-CHECKLIST.md +93 -21
  233. package/src/core/modules/tus/README.md +35 -2
  234. package/src/core/modules/tus/core-tus.controller.ts +64 -12
  235. package/src/core/modules/tus/core-tus.service.ts +358 -34
  236. package/src/core/modules/tus/interfaces/tus-config.interface.ts +9 -0
  237. package/src/core/modules/tus/tus-redis-locker.ts +139 -0
  238. package/src/core/modules/tus/tus.module.ts +78 -6
  239. package/src/core.module.ts +26 -1
  240. package/src/index.ts +10 -0
  241. package/src/main.ts +7 -1
  242. package/src/server/modules/file/file.controller.ts +14 -5
  243. package/src/server/modules/file/file.resolver.ts +11 -19
  244. package/src/server/modules/file/file.service.ts +89 -4
  245. package/src/server/modules/user/avatar.controller.ts +46 -9
  246. package/src/server/modules/user/user.model.ts +9 -3
  247. package/src/server/modules/user/user.module.ts +12 -3
  248. package/src/server/modules/user/user.service.ts +20 -17
  249. package/src/test/README.md +7 -2
  250. package/src/core/common/helpers/file.helper.spec.ts +0 -145
  251. package/src/core/common/helpers/logging.helper.spec.ts +0 -61
  252. package/src/core/common/helpers/process-diagnostics.helper.spec.ts +0 -310
  253. package/src/core/common/services/brevo.service.spec.ts +0 -266
  254. package/src/core/modules/file/core-file.controller.spec.ts +0 -164
  255. package/src/core/modules/hub/core-hub.module.spec.ts +0 -108
  256. package/src/core/modules/hub/helpers/hub-command-shape.helper.spec.ts +0 -48
  257. package/src/core/modules/hub/helpers/hub-mask.helper.spec.ts +0 -67
  258. package/src/core/modules/hub/helpers/hub-mermaid.helper.spec.ts +0 -61
  259. package/src/core/modules/hub/helpers/hub-shell.helper.spec.ts +0 -106
  260. package/src/core/modules/hub/hub-config.helper.spec.ts +0 -108
  261. package/src/core/modules/hub/hub-ring-buffer.spec.ts +0 -95
  262. package/src/core/modules/hub/services/core-hub-mailbox.service.spec.ts +0 -116
  263. package/src/core/modules/hub/services/hub-trace-buffer.service.spec.ts +0 -112
  264. package/src/core/modules/migrate/helpers/migration.helper.spec.ts +0 -85
@@ -17,6 +17,7 @@ exports.CoreTusController = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
18
  const roles_decorator_1 = require("../../common/decorators/roles.decorator");
19
19
  const role_enum_1 = require("../../common/enums/role.enum");
20
+ const core_tenant_decorators_1 = require("../tenant/core-tenant.decorators");
20
21
  const core_tus_service_1 = require("./core-tus.service");
21
22
  let CoreTusController = CoreTusController_1 = class CoreTusController {
22
23
  tusService;
@@ -24,6 +25,12 @@ let CoreTusController = CoreTusController_1 = class CoreTusController {
24
25
  constructor(tusService) {
25
26
  this.tusService = tusService;
26
27
  }
28
+ async handleTusOptions(req, res) {
29
+ return this.handleTus(req, res);
30
+ }
31
+ async handleTusOptionsWithId(req, res) {
32
+ return this.handleTus(req, res);
33
+ }
27
34
  async handleTus(req, res) {
28
35
  const server = this.tusService.getServer();
29
36
  if (!server) {
@@ -61,17 +68,35 @@ let CoreTusController = CoreTusController_1 = class CoreTusController {
61
68
  };
62
69
  exports.CoreTusController = CoreTusController;
63
70
  __decorate([
64
- (0, common_1.All)(),
71
+ (0, common_1.Options)(),
72
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
73
+ __param(0, (0, common_1.Req)()),
74
+ __param(1, (0, common_1.Res)()),
75
+ __metadata("design:type", Function),
76
+ __metadata("design:paramtypes", [Object, Object]),
77
+ __metadata("design:returntype", Promise)
78
+ ], CoreTusController.prototype, "handleTusOptions", null);
79
+ __decorate([
80
+ (0, common_1.Options)(':id'),
65
81
  (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
66
82
  __param(0, (0, common_1.Req)()),
67
83
  __param(1, (0, common_1.Res)()),
68
84
  __metadata("design:type", Function),
69
85
  __metadata("design:paramtypes", [Object, Object]),
70
86
  __metadata("design:returntype", Promise)
87
+ ], CoreTusController.prototype, "handleTusOptionsWithId", null);
88
+ __decorate([
89
+ (0, common_1.All)(),
90
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
91
+ __param(0, (0, common_1.Req)()),
92
+ __param(1, (0, common_1.Res)()),
93
+ __metadata("design:type", Function),
94
+ __metadata("design:paramtypes", [Object, Object]),
95
+ __metadata("design:returntype", Promise)
71
96
  ], CoreTusController.prototype, "handleTus", null);
72
97
  __decorate([
73
98
  (0, common_1.All)(':id'),
74
- (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
99
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
75
100
  __param(0, (0, common_1.Req)()),
76
101
  __param(1, (0, common_1.Res)()),
77
102
  __metadata("design:type", Function),
@@ -80,7 +105,8 @@ __decorate([
80
105
  ], CoreTusController.prototype, "handleTusWithId", null);
81
106
  exports.CoreTusController = CoreTusController = CoreTusController_1 = __decorate([
82
107
  (0, common_1.Controller)('tus'),
83
- (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_EVERYONE),
108
+ (0, roles_decorator_1.Roles)(role_enum_1.RoleEnum.S_USER),
109
+ (0, core_tenant_decorators_1.SkipTenantCheck)(),
84
110
  __metadata("design:paramtypes", [core_tus_service_1.CoreTusService])
85
111
  ], CoreTusController);
86
112
  //# sourceMappingURL=core-tus.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-tus.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAmE;AAGnE,6EAAgE;AAChE,4DAAwD;AACxD,yDAAoD;AAqB7C,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAGG;IAFd,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7D,YAA+B,UAA0B;QAA1B,eAAU,GAAV,UAAU,CAAgB;IAAG,CAAC;IAcvD,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAY,EAAS,GAAa;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IASK,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAY,EAAS,GAAa;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AA7DY,8CAAiB;AAiBtB;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACV,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;kDAiB1C;AASK;IAFL,IAAA,YAAG,EAAC,KAAK,CAAC;IACV,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACJ,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAiBhD;4BA5DU,iBAAiB;IAF7B,IAAA,mBAAU,EAAC,KAAK,CAAC;IACjB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;qCAIkB,iCAAc;GAH9C,iBAAiB,CA6D7B"}
1
+ {"version":3,"file":"core-tus.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.controller.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,27 @@
1
1
  import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
2
  import { Server, Upload } from '@tus/server';
3
3
  import { Connection } from 'mongoose';
4
+ import { Readable } from 'stream';
4
5
  import { ITusConfig } from '../../common/interfaces/server-options.interface';
6
+ import { ConfigService } from '../../common/services/config.service';
7
+ import { CoreRedisService } from '../../common/services/core-redis.service';
8
+ import { CoreS3Service } from '../../common/services/core-s3.service';
9
+ export interface CoreTusServiceOptions {
10
+ configService?: ConfigService;
11
+ redisService?: CoreRedisService;
12
+ s3Service?: CoreS3Service;
13
+ }
5
14
  export declare class CoreTusService implements OnModuleDestroy, OnModuleInit {
6
15
  private readonly connection;
16
+ protected readonly options?: CoreTusServiceOptions;
7
17
  private readonly logger;
8
18
  private tusServer;
9
19
  private config;
10
20
  private files;
11
21
  private cleanupInterval;
12
- constructor(connection: Connection);
22
+ protected s3Store: any;
23
+ protected s3StoreSharesEndpoint: boolean;
24
+ constructor(connection: Connection, options?: CoreTusServiceOptions);
13
25
  configure(config: boolean | ITusConfig | undefined): void;
14
26
  onModuleInit(): Promise<void>;
15
27
  onModuleDestroy(): Promise<void>;
@@ -18,6 +30,17 @@ export declare class CoreTusService implements OnModuleDestroy, OnModuleInit {
18
30
  isEnabled(): boolean;
19
31
  getPath(): string;
20
32
  protected onUploadComplete(upload: Upload): Promise<void>;
33
+ protected get fileStorageDriver(): string;
34
+ protected get fileStorageDir(): string;
35
+ protected get s3FileStorage(): boolean;
36
+ protected canCopyWithinS3(upload: Upload): boolean;
37
+ protected createLocker(): any;
38
+ protected importS3Store(): Promise<any>;
39
+ protected createS3Store(): Promise<any>;
40
+ protected readStagedUpload(uploadId: string): Promise<null | Readable>;
41
+ protected deleteStagedUpload(uploadId: string): Promise<void>;
42
+ protected deleteStagedObjects(uploadId: string): Promise<void>;
43
+ protected isMissingUploadError(error: any): boolean;
21
44
  protected onUploadTerminate(upload: Upload): Promise<void>;
22
45
  protected validateFileType(filetype: string | undefined): boolean;
23
46
  private createTusServer;
@@ -18,16 +18,26 @@ const fs = require("fs");
18
18
  const mongoose_1 = require("mongoose");
19
19
  const path = require("path");
20
20
  const gridfs_helper_1 = require("../../common/helpers/gridfs.helper");
21
+ const config_service_1 = require("../../common/services/config.service");
22
+ const core_s3_service_1 = require("../../common/services/core-s3.service");
23
+ const file_storage_helper_1 = require("../file/file-storage.helper");
24
+ const filesystem_file_helper_1 = require("../file/filesystem-file.helper");
25
+ const s3_file_helper_1 = require("../file/s3-file.helper");
26
+ const tus_redis_locker_1 = require("./tus-redis-locker");
21
27
  const tus_config_interface_1 = require("./interfaces/tus-config.interface");
22
28
  let CoreTusService = CoreTusService_1 = class CoreTusService {
23
29
  connection;
30
+ options;
24
31
  logger = new common_1.Logger(CoreTusService_1.name);
25
32
  tusServer = null;
26
33
  config;
27
34
  files;
28
35
  cleanupInterval = null;
29
- constructor(connection) {
36
+ s3Store = null;
37
+ s3StoreSharesEndpoint = false;
38
+ constructor(connection, options) {
30
39
  this.connection = connection;
40
+ this.options = options;
31
41
  this.config = { ...tus_config_interface_1.DEFAULT_TUS_CONFIG };
32
42
  }
33
43
  configure(config) {
@@ -41,10 +51,13 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
41
51
  this.logger.debug('TUS uploads disabled');
42
52
  return;
43
53
  }
54
+ if (this.tusServer) {
55
+ return;
56
+ }
44
57
  this.files = new mongoose_1.mongo.GridFSBucket(this.connection.db, { bucketName: 'fs' });
45
58
  const uploadDir = this.config.uploadDir || tus_config_interface_1.DEFAULT_TUS_CONFIG.uploadDir;
46
59
  await this.ensureUploadDir(uploadDir);
47
- this.tusServer = this.createTusServer(uploadDir);
60
+ this.tusServer = await this.createTusServer(uploadDir);
48
61
  this.setupExpirationCleanup();
49
62
  this.logger.log(`TUS server initialized at ${this.config.path}`);
50
63
  this.logEnabledFeatures();
@@ -68,41 +81,173 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
68
81
  return this.config.path || tus_config_interface_1.DEFAULT_TUS_CONFIG.path;
69
82
  }
70
83
  async onUploadComplete(upload) {
71
- const uploadDir = this.config.uploadDir || tus_config_interface_1.DEFAULT_TUS_CONFIG.uploadDir;
72
- const filePath = path.join(uploadDir, upload.id);
73
84
  try {
74
85
  const metadata = this.parseMetadata(upload.metadata);
75
86
  const filename = metadata.filename || upload.id;
76
87
  const contentType = metadata.filetype || 'application/octet-stream';
77
- const fileExists = await fs.promises
78
- .access(filePath)
79
- .then(() => true)
80
- .catch(() => false);
81
- if (!fileExists) {
82
- this.logger.warn(`Upload file not found at ${filePath}, skipping GridFS migration`);
88
+ const fileMetadata = {
89
+ originalMetadata: metadata,
90
+ tusUploadId: upload.id,
91
+ uploadedAt: new Date(),
92
+ };
93
+ if (this.canCopyWithinS3(upload)) {
94
+ const fileInfo = await s3_file_helper_1.S3FileHelper.copyFile(this.options.s3Service, this.connection.db.collection(s3_file_helper_1.S3_FILES_COLLECTION), {
95
+ contentLength: upload.size,
96
+ contentType,
97
+ filename,
98
+ metadata: fileMetadata,
99
+ sourceBucket: this.options.s3Service.getConfig().stagingBucket,
100
+ sourceKey: upload.id,
101
+ });
102
+ this.logger.debug(`Upload ${upload.id} copied inside S3 to ${fileInfo._id} (filename: ${filename}) — no bytes through this process`);
103
+ await this.deleteStagedUpload(upload.id);
83
104
  return;
84
105
  }
85
- const readStream = fs.createReadStream(filePath);
86
- const fileInfo = await gridfs_helper_1.GridFSHelper.writeFileFromStream(this.files, readStream, {
87
- contentType,
88
- filename,
89
- metadata: {
90
- originalMetadata: metadata,
91
- tusUploadId: upload.id,
92
- uploadedAt: new Date(),
93
- },
94
- });
95
- this.logger.debug(`Upload ${upload.id} migrated to GridFS as ${fileInfo._id} (filename: ${filename})`);
96
- await this.deleteTemporaryFile(upload.id);
106
+ const readStream = await this.readStagedUpload(upload.id);
107
+ if (!readStream) {
108
+ return;
109
+ }
110
+ if (this.fileStorageDriver === 'filesystem') {
111
+ const fileInfo = await filesystem_file_helper_1.FilesystemFileHelper.writeFile(this.fileStorageDir, this.connection.db.collection(filesystem_file_helper_1.FILESYSTEM_FILES_COLLECTION), { body: readStream, contentType, filename, metadata: fileMetadata });
112
+ this.logger.debug(`Upload ${upload.id} migrated to the filesystem as ${fileInfo._id} (filename: ${filename})`);
113
+ }
114
+ else if (this.s3FileStorage) {
115
+ const fileInfo = await s3_file_helper_1.S3FileHelper.writeFile(this.options.s3Service, this.connection.db.collection(s3_file_helper_1.S3_FILES_COLLECTION), { body: readStream, contentLength: upload.size, contentType, filename, metadata: fileMetadata });
116
+ this.logger.debug(`Upload ${upload.id} migrated to S3 as ${fileInfo._id} (filename: ${filename})`);
117
+ }
118
+ else {
119
+ const fileInfo = await gridfs_helper_1.GridFSHelper.writeFileFromStream(this.files, readStream, {
120
+ contentType,
121
+ filename,
122
+ metadata: fileMetadata,
123
+ });
124
+ this.logger.debug(`Upload ${upload.id} migrated to GridFS as ${fileInfo._id} (filename: ${filename})`);
125
+ }
126
+ await this.deleteStagedUpload(upload.id);
97
127
  }
98
128
  catch (error) {
99
- this.logger.error(`Failed to migrate upload ${upload.id} to GridFS: ${error.message}`);
129
+ this.logger.error(`Failed to migrate upload ${upload.id}: ${error.message}`);
100
130
  throw error;
101
131
  }
102
132
  }
133
+ get fileStorageDriver() {
134
+ return (0, file_storage_helper_1.resolveFileStorage)(config_service_1.ConfigService.configFastButReadOnly).driver;
135
+ }
136
+ get fileStorageDir() {
137
+ return config_service_1.ConfigService.configFastButReadOnly?.file?.storageDir || filesystem_file_helper_1.DEFAULT_FILESYSTEM_DIR;
138
+ }
139
+ get s3FileStorage() {
140
+ return !!this.options?.s3Service?.enabled && this.fileStorageDriver === 's3';
141
+ }
142
+ canCopyWithinS3(upload) {
143
+ if (!this.s3StoreSharesEndpoint || !this.s3FileStorage) {
144
+ return false;
145
+ }
146
+ if (typeof upload.size !== 'number') {
147
+ this.logger.warn(`Upload ${upload.id} has no known size, so it cannot be size-checked against the ${core_s3_service_1.CoreS3Service.MAX_COPY_OBJECT_BYTES}-byte ` +
148
+ 'CopyObject limit — streaming it through this process instead.');
149
+ return false;
150
+ }
151
+ if (upload.size > core_s3_service_1.CoreS3Service.MAX_COPY_OBJECT_BYTES) {
152
+ this.logger.warn(`Upload ${upload.id} is ${upload.size} bytes, above the ${core_s3_service_1.CoreS3Service.MAX_COPY_OBJECT_BYTES}-byte limit of a single ` +
153
+ 'S3 CopyObject (multipart upload-part-copy would be required). Streaming it through this process instead — ' +
154
+ 'expect the finishing request to run for the duration of a full download plus a full upload.');
155
+ return false;
156
+ }
157
+ return true;
158
+ }
159
+ createLocker() {
160
+ const redisService = this.options?.redisService;
161
+ if (!redisService?.enabled) {
162
+ return undefined;
163
+ }
164
+ this.logger.debug('TUS upload locks are shared via Redis');
165
+ return new tus_redis_locker_1.TusRedisLocker(redisService);
166
+ }
167
+ importS3Store() {
168
+ return Promise.resolve().then(() => require('@tus/s3-store'));
169
+ }
170
+ async createS3Store() {
171
+ const s3Service = this.options?.s3Service;
172
+ if (!s3Service?.enabled || this.config.s3Staging === false) {
173
+ return null;
174
+ }
175
+ let s3StoreModule;
176
+ try {
177
+ s3StoreModule = await this.importS3Store();
178
+ }
179
+ catch {
180
+ this.logger.warn('S3 is configured but the optional peer dependency "@tus/s3-store" is not installed — TUS uploads are ' +
181
+ 'staged on local disk. Run: pnpm add @tus/s3-store');
182
+ return null;
183
+ }
184
+ const { accessKeyId, endpoint, forcePathStyle, region, secretAccessKey, stagingBucket } = s3Service.getConfig();
185
+ this.s3Store = new s3StoreModule.S3Store({
186
+ s3ClientConfig: {
187
+ bucket: stagingBucket,
188
+ forcePathStyle,
189
+ region,
190
+ ...(endpoint ? { endpoint } : {}),
191
+ ...(accessKeyId && secretAccessKey ? { credentials: { accessKeyId, secretAccessKey } } : {}),
192
+ },
193
+ });
194
+ this.s3StoreSharesEndpoint = true;
195
+ this.logger.log(`TUS uploads staged in S3 bucket ${stagingBucket}`);
196
+ return this.s3Store;
197
+ }
198
+ async readStagedUpload(uploadId) {
199
+ if (this.s3Store) {
200
+ return await this.s3Store.read(uploadId);
201
+ }
202
+ const uploadDir = this.config.uploadDir || tus_config_interface_1.DEFAULT_TUS_CONFIG.uploadDir;
203
+ const filePath = path.join(uploadDir, uploadId);
204
+ const fileExists = await fs.promises
205
+ .access(filePath)
206
+ .then(() => true)
207
+ .catch(() => false);
208
+ if (!fileExists) {
209
+ this.logger.warn(`Upload file not found at ${filePath}, skipping migration`);
210
+ return null;
211
+ }
212
+ return fs.createReadStream(filePath);
213
+ }
214
+ async deleteStagedUpload(uploadId) {
215
+ if (this.s3Store) {
216
+ try {
217
+ await this.s3Store.remove(uploadId);
218
+ }
219
+ catch (error) {
220
+ if (!this.isMissingUploadError(error)) {
221
+ this.logger.warn(`Failed to remove staged upload ${uploadId} from S3: ${error.message}`);
222
+ }
223
+ }
224
+ await this.deleteStagedObjects(uploadId);
225
+ return;
226
+ }
227
+ await this.deleteTemporaryFile(uploadId);
228
+ }
229
+ async deleteStagedObjects(uploadId) {
230
+ const s3Service = this.options?.s3Service;
231
+ if (!this.s3StoreSharesEndpoint || !s3Service?.enabled) {
232
+ return;
233
+ }
234
+ const { stagingBucket } = s3Service.getConfig();
235
+ for (const key of [uploadId, `${uploadId}.info`]) {
236
+ try {
237
+ await s3Service.deleteObject(key, stagingBucket);
238
+ }
239
+ catch (error) {
240
+ this.logger.warn(`Failed to delete staged object ${key} from S3 bucket ${stagingBucket}: ${error.message}`);
241
+ }
242
+ }
243
+ }
244
+ isMissingUploadError(error) {
245
+ const name = error?.name ?? error?.Code;
246
+ return (name === 'NoSuchUpload' || name === 'NoSuchKey' || name === 'NotFound' || error?.$metadata?.httpStatusCode === 404);
247
+ }
103
248
  async onUploadTerminate(upload) {
104
249
  this.logger.debug(`Upload ${upload.id} terminated`);
105
- await this.deleteTemporaryFile(upload.id);
250
+ await this.deleteStagedUpload(upload.id);
106
251
  }
107
252
  validateFileType(filetype) {
108
253
  const allowedTypes = this.config.allowedTypes;
@@ -125,11 +270,13 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
125
270
  }
126
271
  return false;
127
272
  }
128
- createTusServer(uploadDir) {
129
- const datastore = new file_store_1.FileStore({ directory: uploadDir });
273
+ async createTusServer(uploadDir) {
274
+ const datastore = (await this.createS3Store()) || new file_store_1.FileStore({ directory: uploadDir });
275
+ const locker = this.createLocker();
130
276
  const server = new server_1.Server({
131
277
  allowedHeaders: this.config.allowedHeaders || tus_config_interface_1.DEFAULT_TUS_ALLOWED_HEADERS,
132
278
  datastore,
279
+ ...(locker ? { locker } : {}),
133
280
  maxSize: this.config.maxSize,
134
281
  onUploadCreate: async (_req, upload) => {
135
282
  if (this.config.allowedTypes && this.config.allowedTypes.length > 0) {
@@ -152,7 +299,10 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
152
299
  }
153
300
  catch (error) {
154
301
  this.logger.error(`Upload finish error: ${error.message}`);
155
- return {};
302
+ throw Object.assign(new Error(`Upload could not be stored: ${error.message}`), {
303
+ body: 'Upload could not be stored',
304
+ status_code: 500,
305
+ });
156
306
  }
157
307
  },
158
308
  path: this.config.path || tus_config_interface_1.DEFAULT_TUS_CONFIG.path,
@@ -223,9 +373,13 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
223
373
  this.cleanupInterval = setInterval(async () => {
224
374
  await this.cleanupExpiredUploads(expirationMs);
225
375
  }, 60 * 60 * 1000);
376
+ this.cleanupInterval.unref?.();
226
377
  this.logger.debug(`Expiration cleanup scheduled (expire after ${expiresIn})`);
227
378
  }
228
379
  async cleanupExpiredUploads(maxAgeMs) {
380
+ if (this.s3Store) {
381
+ return;
382
+ }
229
383
  const uploadDir = this.config.uploadDir || tus_config_interface_1.DEFAULT_TUS_CONFIG.uploadDir;
230
384
  const now = Date.now();
231
385
  try {
@@ -282,6 +436,6 @@ let CoreTusService = CoreTusService_1 = class CoreTusService {
282
436
  exports.CoreTusService = CoreTusService;
283
437
  exports.CoreTusService = CoreTusService = CoreTusService_1 = __decorate([
284
438
  (0, common_1.Injectable)(),
285
- __metadata("design:paramtypes", [mongoose_1.Connection])
439
+ __metadata("design:paramtypes", [mongoose_1.Connection, Object])
286
440
  ], CoreTusService);
287
441
  //# sourceMappingURL=core-tus.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-tus.service.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-tus.service.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.service.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_TUS_CONFIG = exports.DEFAULT_TUS_ALLOWED_HEADERS = void 0;
4
4
  exports.normalizeTusConfig = normalizeTusConfig;
5
5
  exports.parseExpirationTime = parseExpirationTime;
6
+ const role_enum_1 = require("../../../common/enums/role.enum");
6
7
  exports.DEFAULT_TUS_ALLOWED_HEADERS = [];
7
8
  exports.DEFAULT_TUS_CONFIG = {
8
9
  allowedHeaders: exports.DEFAULT_TUS_ALLOWED_HEADERS,
@@ -15,6 +16,8 @@ exports.DEFAULT_TUS_CONFIG = {
15
16
  expiration: { enabled: true, expiresIn: '24h' },
16
17
  maxSize: 50 * 1024 * 1024 * 1024,
17
18
  path: '/tus',
19
+ roles: [role_enum_1.RoleEnum.S_USER],
20
+ s3Staging: true,
18
21
  termination: true,
19
22
  uploadDir: 'uploads/tus',
20
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tus-config.interface.js","sourceRoot":"","sources":["../../../../../src/core/modules/tus/interfaces/tus-config.interface.ts"],"names":[],"mappings":";;;AA2DA,gDAoBC;AAMD,kDAqBC;AAhFY,QAAA,2BAA2B,GAAa,EAAE,CAAC;AAK3C,QAAA,kBAAkB,GAM3B;IACF,cAAc,EAAE,mCAA2B;IAC3C,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC/C,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAChC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,aAAa;CACzB,CAAC;AASF,SAAgB,kBAAkB,CAAC,MAAwC;IAEzE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,0BAAkB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,GAAG,0BAAkB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,GAAG,0BAAkB;QACrB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAMD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3B,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB;YACE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"tus-config.interface.js","sourceRoot":"","sources":["../../../../../src/core/modules/tus/interfaces/tus-config.interface.ts"],"names":[],"mappings":";;;AAoEA,gDAoBC;AAMD,kDAqBC;AA7GD,+DAA2D;AAqB9C,QAAA,2BAA2B,GAAa,EAAE,CAAC;AAK3C,QAAA,kBAAkB,GAM3B;IACF,cAAc,EAAE,mCAA2B;IAC3C,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,IAAI;IACxB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE;IAC/C,OAAO,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAChC,IAAI,EAAE,MAAM;IAOZ,KAAK,EAAE,CAAC,oBAAQ,CAAC,MAAM,CAAC;IACxB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,aAAa;CACzB,CAAC;AASF,SAAgB,kBAAkB,CAAC,MAAwC;IAEzE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,EAAE,GAAG,0BAAkB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,GAAG,0BAAkB,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,GAAG,0BAAkB;QACrB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAMD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;QAC3B,KAAK,GAAG;YACN,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB;YACE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { CoreRedisService } from '../../common/services/core-redis.service';
3
+ type RequestRelease = () => Promise<void> | void;
4
+ export declare class TusRedisLock {
5
+ protected readonly redisService: CoreRedisService;
6
+ protected readonly key: string;
7
+ protected readonly ttlMs: number;
8
+ protected readonly acquireTimeoutMs: number;
9
+ protected heartbeat?: NodeJS.Timeout;
10
+ protected token?: string;
11
+ constructor(redisService: CoreRedisService, key: string, ttlMs: number, acquireTimeoutMs: number);
12
+ lock(signal: AbortSignal, cancelReq: RequestRelease): Promise<void>;
13
+ unlock(): Promise<void>;
14
+ protected startHeartbeat(): void;
15
+ protected stopHeartbeat(): void;
16
+ }
17
+ export declare class TusRedisLocker {
18
+ protected readonly redisService: CoreRedisService;
19
+ protected readonly ttlMs: number;
20
+ protected readonly acquireTimeoutMs: number;
21
+ protected readonly logger: Logger;
22
+ constructor(redisService: CoreRedisService, ttlMs?: number, acquireTimeoutMs?: number);
23
+ newLock(id: string): TusRedisLock;
24
+ }
25
+ export {};
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TusRedisLocker = exports.TusRedisLock = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const node_crypto_1 = require("node:crypto");
6
+ class TusRedisLock {
7
+ redisService;
8
+ key;
9
+ ttlMs;
10
+ acquireTimeoutMs;
11
+ heartbeat;
12
+ token;
13
+ constructor(redisService, key, ttlMs, acquireTimeoutMs) {
14
+ this.redisService = redisService;
15
+ this.key = key;
16
+ this.ttlMs = ttlMs;
17
+ this.acquireTimeoutMs = acquireTimeoutMs;
18
+ }
19
+ async lock(signal, cancelReq) {
20
+ const deadline = Date.now() + this.acquireTimeoutMs;
21
+ const token = `${process.pid}-${(0, node_crypto_1.randomUUID)()}`;
22
+ for (;;) {
23
+ const acquired = await this.redisService.getClient().set(this.key, token, 'PX', this.ttlMs, 'NX');
24
+ if (acquired === 'OK') {
25
+ this.token = token;
26
+ this.startHeartbeat();
27
+ return;
28
+ }
29
+ await cancelReq();
30
+ if (signal.aborted || Date.now() > deadline) {
31
+ throw new Error(`Could not acquire the upload lock for "${this.key}" within ${this.acquireTimeoutMs}ms`);
32
+ }
33
+ await new Promise((resolve) => setTimeout(resolve, 100));
34
+ }
35
+ }
36
+ async unlock() {
37
+ this.stopHeartbeat();
38
+ const token = this.token;
39
+ this.token = undefined;
40
+ if (!token) {
41
+ return;
42
+ }
43
+ const script = `if redis.call('GET', KEYS[1]) == ARGV[1] then return redis.call('DEL', KEYS[1]) end return 0`;
44
+ try {
45
+ await this.redisService.getClient().eval(script, 1, this.key, token);
46
+ }
47
+ catch {
48
+ }
49
+ }
50
+ startHeartbeat() {
51
+ this.heartbeat = setInterval(() => {
52
+ const token = this.token;
53
+ if (!token) {
54
+ return;
55
+ }
56
+ const script = `if redis.call('GET', KEYS[1]) == ARGV[1] then return redis.call('PEXPIRE', KEYS[1], ARGV[2]) end return 0`;
57
+ this.redisService
58
+ .getClient()
59
+ .eval(script, 1, this.key, token, this.ttlMs)
60
+ .catch(() => undefined);
61
+ }, Math.max(1000, Math.floor(this.ttlMs / 3)));
62
+ this.heartbeat.unref?.();
63
+ }
64
+ stopHeartbeat() {
65
+ if (this.heartbeat) {
66
+ clearInterval(this.heartbeat);
67
+ this.heartbeat = undefined;
68
+ }
69
+ }
70
+ }
71
+ exports.TusRedisLock = TusRedisLock;
72
+ class TusRedisLocker {
73
+ redisService;
74
+ ttlMs;
75
+ acquireTimeoutMs;
76
+ logger = new common_1.Logger(TusRedisLocker.name);
77
+ constructor(redisService, ttlMs = 30_000, acquireTimeoutMs = 10_000) {
78
+ this.redisService = redisService;
79
+ this.ttlMs = ttlMs;
80
+ this.acquireTimeoutMs = acquireTimeoutMs;
81
+ }
82
+ newLock(id) {
83
+ return new TusRedisLock(this.redisService, this.redisService.key('tus-lock', id), this.ttlMs, this.acquireTimeoutMs);
84
+ }
85
+ }
86
+ exports.TusRedisLocker = TusRedisLocker;
87
+ //# sourceMappingURL=tus-redis-locker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tus-redis-locker.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus-redis-locker.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class TusModule implements OnModuleInit {
16
16
  constructor(tusService?: CoreTusService);
17
17
  onModuleInit(): Promise<void>;
18
18
  private static getControllerClass;
19
+ private static applyRoles;
19
20
  static forRoot(options?: TusModuleOptions): DynamicModule;
20
21
  static reset(): void;
21
22
  }