@lenne.tech/nest-server 11.32.3 → 11.33.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 (262) 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/bin/migrate.js +13 -3
  7. package/dist/core/common/helpers/content-disposition.helper.d.ts +1 -0
  8. package/dist/core/common/helpers/content-disposition.helper.js +14 -0
  9. package/dist/core/common/helpers/content-disposition.helper.js.map +1 -0
  10. package/dist/core/common/helpers/file.helper.d.ts +21 -2
  11. package/dist/core/common/helpers/file.helper.js +69 -13
  12. package/dist/core/common/helpers/file.helper.js.map +1 -1
  13. package/dist/core/common/helpers/graceful-shutdown.helper.d.ts +2 -0
  14. package/dist/core/common/helpers/graceful-shutdown.helper.js +55 -0
  15. package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -0
  16. package/dist/core/common/helpers/project-name.helper.d.ts +2 -0
  17. package/dist/core/common/helpers/project-name.helper.js +38 -0
  18. package/dist/core/common/helpers/project-name.helper.js.map +1 -0
  19. package/dist/core/common/interfaces/cron-job-config.interface.d.ts +1 -0
  20. package/dist/core/common/interfaces/server-options.interface.d.ts +39 -0
  21. package/dist/core/common/services/core-cron-jobs.initializer.d.ts +10 -0
  22. package/dist/core/common/services/core-cron-jobs.initializer.js +46 -0
  23. package/dist/core/common/services/core-cron-jobs.initializer.js.map +1 -0
  24. package/dist/core/common/services/core-cron-jobs.registry.d.ts +8 -0
  25. package/dist/core/common/services/core-cron-jobs.registry.js +12 -0
  26. package/dist/core/common/services/core-cron-jobs.registry.js.map +1 -0
  27. package/dist/core/common/services/core-cron-jobs.service.d.ts +37 -7
  28. package/dist/core/common/services/core-cron-jobs.service.js +278 -27
  29. package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
  30. package/dist/core/common/services/core-redis-pubsub.d.ts +20 -0
  31. package/dist/core/common/services/core-redis-pubsub.js +112 -0
  32. package/dist/core/common/services/core-redis-pubsub.js.map +1 -0
  33. package/dist/core/common/services/core-redis.service.d.ts +25 -0
  34. package/dist/core/common/services/core-redis.service.js +154 -0
  35. package/dist/core/common/services/core-redis.service.js.map +1 -0
  36. package/dist/core/common/services/core-s3.service.d.ts +51 -0
  37. package/dist/core/common/services/core-s3.service.js +261 -0
  38. package/dist/core/common/services/core-s3.service.js.map +1 -0
  39. package/dist/core/common/services/core-trust-proxy.initializer.d.ts +16 -0
  40. package/dist/core/common/services/core-trust-proxy.initializer.js +77 -0
  41. package/dist/core/common/services/core-trust-proxy.initializer.js.map +1 -0
  42. package/dist/core/common/services/rate-limit-store.d.ts +61 -0
  43. package/dist/core/common/services/rate-limit-store.js +235 -0
  44. package/dist/core/common/services/rate-limit-store.js.map +1 -0
  45. package/dist/core/modules/ai/core-ai-mcp.controller.d.ts +19 -3
  46. package/dist/core/modules/ai/core-ai-mcp.controller.js +148 -18
  47. package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
  48. package/dist/core/modules/ai/services/core-ai.service.d.ts +7 -2
  49. package/dist/core/modules/ai/services/core-ai.service.js +24 -20
  50. package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
  51. package/dist/core/modules/auth/core-auth.module.js +4 -1
  52. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  53. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +1 -1
  54. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +3 -14
  55. package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -1
  56. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +12 -10
  57. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +30 -59
  58. package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -1
  59. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +8 -2
  60. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +118 -45
  61. package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -1
  62. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.d.ts +1 -1
  63. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js +2 -11
  64. package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js.map +1 -1
  65. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.d.ts +12 -10
  66. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js +30 -85
  67. package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js.map +1 -1
  68. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +0 -1
  69. package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
  70. package/dist/core/modules/file/core-file.controller.d.ts +15 -3
  71. package/dist/core/modules/file/core-file.controller.js +90 -20
  72. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  73. package/dist/core/modules/file/core-file.resolver.d.ts +4 -4
  74. package/dist/core/modules/file/core-file.resolver.js +23 -16
  75. package/dist/core/modules/file/core-file.resolver.js.map +1 -1
  76. package/dist/core/modules/file/core-file.service.d.ts +41 -7
  77. package/dist/core/modules/file/core-file.service.js +227 -7
  78. package/dist/core/modules/file/core-file.service.js.map +1 -1
  79. package/dist/core/modules/file/file-metadata.helper.d.ts +16 -0
  80. package/dist/core/modules/file/file-metadata.helper.js +33 -0
  81. package/dist/core/modules/file/file-metadata.helper.js.map +1 -0
  82. package/dist/core/modules/file/file-roles.helper.d.ts +4 -0
  83. package/dist/core/modules/file/file-roles.helper.js +53 -0
  84. package/dist/core/modules/file/file-roles.helper.js.map +1 -0
  85. package/dist/core/modules/file/file-storage.helper.d.ts +13 -0
  86. package/dist/core/modules/file/file-storage.helper.js +65 -0
  87. package/dist/core/modules/file/file-storage.helper.js.map +1 -0
  88. package/dist/core/modules/file/filesystem-file.helper.d.ts +22 -0
  89. package/dist/core/modules/file/filesystem-file.helper.js +77 -0
  90. package/dist/core/modules/file/filesystem-file.helper.js.map +1 -0
  91. package/dist/core/modules/file/interfaces/file-service-options.interface.d.ts +1 -0
  92. package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +7 -1
  93. package/dist/core/modules/file/s3-file.helper.d.ts +37 -0
  94. package/dist/core/modules/file/s3-file.helper.js +81 -0
  95. package/dist/core/modules/file/s3-file.helper.js.map +1 -0
  96. package/dist/core/modules/hub/core-hub.controller.d.ts +8 -8
  97. package/dist/core/modules/hub/core-hub.controller.js +24 -22
  98. package/dist/core/modules/hub/core-hub.controller.js.map +1 -1
  99. package/dist/core/modules/hub/helpers/hub-mask.helper.js +2 -2
  100. package/dist/core/modules/hub/helpers/hub-mask.helper.js.map +1 -1
  101. package/dist/core/modules/hub/hub-buffer.d.ts +23 -0
  102. package/dist/core/modules/hub/hub-buffer.js +101 -0
  103. package/dist/core/modules/hub/hub-buffer.js.map +1 -0
  104. package/dist/core/modules/hub/services/core-hub-mailbox.service.d.ts +7 -5
  105. package/dist/core/modules/hub/services/core-hub-mailbox.service.js +14 -10
  106. package/dist/core/modules/hub/services/core-hub-mailbox.service.js.map +1 -1
  107. package/dist/core/modules/hub/services/hub-log-buffer.service.d.ts +5 -2
  108. package/dist/core/modules/hub/services/hub-log-buffer.service.js +17 -8
  109. package/dist/core/modules/hub/services/hub-log-buffer.service.js.map +1 -1
  110. package/dist/core/modules/hub/services/hub-query-profiler.service.d.ts +4 -2
  111. package/dist/core/modules/hub/services/hub-query-profiler.service.js +13 -7
  112. package/dist/core/modules/hub/services/hub-query-profiler.service.js.map +1 -1
  113. package/dist/core/modules/hub/services/hub-trace-buffer.service.d.ts +4 -2
  114. package/dist/core/modules/hub/services/hub-trace-buffer.service.js +13 -8
  115. package/dist/core/modules/hub/services/hub-trace-buffer.service.js.map +1 -1
  116. package/dist/core/modules/migrate/cli/migrate-cli.d.ts +3 -1
  117. package/dist/core/modules/migrate/cli/migrate-cli.js +29 -4
  118. package/dist/core/modules/migrate/cli/migrate-cli.js.map +1 -1
  119. package/dist/core/modules/migrate/helpers/migration.helper.d.ts +3 -6
  120. package/dist/core/modules/migrate/helpers/migration.helper.js +55 -8
  121. package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
  122. package/dist/core/modules/migrate/migration-runner.d.ts +1 -0
  123. package/dist/core/modules/migrate/migration-runner.js +4 -0
  124. package/dist/core/modules/migrate/migration-runner.js.map +1 -1
  125. package/dist/core/modules/migrate/mongo-state-store.d.ts +1 -0
  126. package/dist/core/modules/migrate/mongo-state-store.js +98 -9
  127. package/dist/core/modules/migrate/mongo-state-store.js.map +1 -1
  128. package/dist/core/modules/system-setup/core-system-setup.service.d.ts +2 -0
  129. package/dist/core/modules/system-setup/core-system-setup.service.js +31 -1
  130. package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
  131. package/dist/core/modules/tenant/core-tenant.guard.d.ts +17 -3
  132. package/dist/core/modules/tenant/core-tenant.guard.js +92 -15
  133. package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
  134. package/dist/core/modules/tenant/core-tenant.module.js +3 -4
  135. package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
  136. package/dist/core/modules/tus/core-tus.controller.d.ts +2 -0
  137. package/dist/core/modules/tus/core-tus.controller.js +29 -3
  138. package/dist/core/modules/tus/core-tus.controller.js.map +1 -1
  139. package/dist/core/modules/tus/core-tus.service.d.ts +24 -1
  140. package/dist/core/modules/tus/core-tus.service.js +182 -28
  141. package/dist/core/modules/tus/core-tus.service.js.map +1 -1
  142. package/dist/core/modules/tus/interfaces/tus-config.interface.js +3 -0
  143. package/dist/core/modules/tus/interfaces/tus-config.interface.js.map +1 -1
  144. package/dist/core/modules/tus/tus-redis-locker.d.ts +25 -0
  145. package/dist/core/modules/tus/tus-redis-locker.js +87 -0
  146. package/dist/core/modules/tus/tus-redis-locker.js.map +1 -0
  147. package/dist/core/modules/tus/tus.module.d.ts +1 -0
  148. package/dist/core/modules/tus/tus.module.js +30 -4
  149. package/dist/core/modules/tus/tus.module.js.map +1 -1
  150. package/dist/core.module.js +18 -1
  151. package/dist/core.module.js.map +1 -1
  152. package/dist/index.d.ts +10 -0
  153. package/dist/index.js +10 -0
  154. package/dist/index.js.map +1 -1
  155. package/dist/main.js +2 -1
  156. package/dist/main.js.map +1 -1
  157. package/dist/server/modules/file/file.controller.js.map +1 -1
  158. package/dist/server/modules/file/file.resolver.js +1 -12
  159. package/dist/server/modules/file/file.resolver.js.map +1 -1
  160. package/dist/server/modules/file/file.service.d.ts +5 -1
  161. package/dist/server/modules/file/file.service.js +12 -3
  162. package/dist/server/modules/file/file.service.js.map +1 -1
  163. package/dist/server/modules/user/avatar.controller.d.ts +5 -1
  164. package/dist/server/modules/user/avatar.controller.js +26 -10
  165. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  166. package/dist/server/modules/user/user.model.js +3 -2
  167. package/dist/server/modules/user/user.model.js.map +1 -1
  168. package/dist/server/modules/user/user.module.js +6 -2
  169. package/dist/server/modules/user/user.module.js.map +1 -1
  170. package/dist/server/modules/user/user.service.d.ts +1 -1
  171. package/dist/server/modules/user/user.service.js +6 -13
  172. package/dist/server/modules/user/user.service.js.map +1 -1
  173. package/dist/tsconfig.build.tsbuildinfo +1 -1
  174. package/docs/REQUEST-LIFECYCLE.md +57 -8
  175. package/docs/security-overrides.md +30 -5
  176. package/migration-guides/11.32.3-to-11.32.4.md +335 -0
  177. package/migration-guides/11.32.x-to-11.33.x.md +1551 -0
  178. package/package.json +74 -42
  179. package/src/core/common/helpers/content-disposition.helper.ts +90 -0
  180. package/src/core/common/helpers/file.helper.ts +201 -20
  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 +108 -0
  204. package/src/core/modules/file/README.md +324 -41
  205. package/src/core/modules/file/core-file.controller.ts +267 -19
  206. package/src/core/modules/file/core-file.resolver.ts +46 -12
  207. package/src/core/modules/file/core-file.service.ts +482 -16
  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 +68 -6
  224. package/src/core/modules/migrate/cli/migrate-cli.ts +69 -6
  225. package/src/core/modules/migrate/helpers/migration.helper.ts +144 -10
  226. package/src/core/modules/migrate/migration-runner.ts +10 -1
  227. package/src/core/modules/migrate/mongo-state-store.ts +179 -11
  228. package/src/core/modules/system-setup/README.md +7 -2
  229. package/src/core/modules/system-setup/core-system-setup.service.ts +95 -1
  230. package/src/core/modules/tenant/README.md +21 -1
  231. package/src/core/modules/tenant/core-tenant.guard.ts +135 -14
  232. package/src/core/modules/tenant/core-tenant.module.ts +8 -4
  233. package/src/core/modules/tus/INTEGRATION-CHECKLIST.md +93 -21
  234. package/src/core/modules/tus/README.md +35 -2
  235. package/src/core/modules/tus/core-tus.controller.ts +64 -12
  236. package/src/core/modules/tus/core-tus.service.ts +358 -34
  237. package/src/core/modules/tus/interfaces/tus-config.interface.ts +9 -0
  238. package/src/core/modules/tus/tus-redis-locker.ts +139 -0
  239. package/src/core/modules/tus/tus.module.ts +78 -6
  240. package/src/core.module.ts +26 -1
  241. package/src/index.ts +10 -0
  242. package/src/main.ts +7 -1
  243. package/src/server/modules/file/file.controller.ts +7 -3
  244. package/src/server/modules/file/file.resolver.ts +5 -17
  245. package/src/server/modules/file/file.service.ts +42 -3
  246. package/src/server/modules/user/avatar.controller.ts +39 -9
  247. package/src/server/modules/user/user.model.ts +9 -3
  248. package/src/server/modules/user/user.module.ts +12 -3
  249. package/src/server/modules/user/user.service.ts +20 -17
  250. package/src/test/README.md +7 -2
  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/hub/core-hub.module.spec.ts +0 -108
  255. package/src/core/modules/hub/helpers/hub-command-shape.helper.spec.ts +0 -48
  256. package/src/core/modules/hub/helpers/hub-mask.helper.spec.ts +0 -67
  257. package/src/core/modules/hub/helpers/hub-mermaid.helper.spec.ts +0 -61
  258. package/src/core/modules/hub/helpers/hub-shell.helper.spec.ts +0 -106
  259. package/src/core/modules/hub/hub-config.helper.spec.ts +0 -108
  260. package/src/core/modules/hub/hub-ring-buffer.spec.ts +0 -95
  261. package/src/core/modules/hub/services/core-hub-mailbox.service.spec.ts +0 -116
  262. package/src/core/modules/hub/services/hub-trace-buffer.service.spec.ts +0 -112
@@ -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
  }
@@ -13,6 +13,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.TusModule = exports.TUS_CONFIG = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const mongoose_1 = require("@nestjs/mongoose");
16
+ const config_service_1 = require("../../common/services/config.service");
17
+ const core_redis_service_1 = require("../../common/services/core-redis.service");
18
+ const core_s3_service_1 = require("../../common/services/core-s3.service");
16
19
  const core_tus_controller_1 = require("./core-tus.controller");
17
20
  const core_tus_service_1 = require("./core-tus.service");
18
21
  const tus_constants_1 = require("./tus.constants");
@@ -37,6 +40,23 @@ let TusModule = class TusModule {
37
40
  static getControllerClass() {
38
41
  return this.customController || core_tus_controller_1.CoreTusController;
39
42
  }
43
+ static applyRoles(controller, roles) {
44
+ if (roles !== undefined &&
45
+ (!Array.isArray(roles) || roles.length === 0 || roles.some((r) => typeof r !== 'string'))) {
46
+ this.logger.warn(`Ignoring tus.roles: expected a non-empty array of role strings, got ${JSON.stringify(roles)}. ` +
47
+ `Falling back to ${JSON.stringify(tus_config_interface_1.DEFAULT_TUS_CONFIG.roles)}.`);
48
+ }
49
+ const effective = Array.isArray(roles) && roles.length > 0 && roles.every((r) => typeof r === 'string')
50
+ ? roles
51
+ : tus_config_interface_1.DEFAULT_TUS_CONFIG.roles;
52
+ Reflect.defineMetadata('roles', effective, controller);
53
+ for (const member of ['handleTus', 'handleTusWithId']) {
54
+ const handler = controller.prototype[member];
55
+ if (typeof handler === 'function') {
56
+ Reflect.defineMetadata('roles', effective, handler);
57
+ }
58
+ }
59
+ }
40
60
  static forRoot(options = {}) {
41
61
  const { config: rawConfig, controller } = options;
42
62
  const config = (0, tus_config_interface_1.normalizeTusConfig)(rawConfig);
@@ -66,6 +86,7 @@ let TusModule = class TusModule {
66
86
  };
67
87
  }
68
88
  this.tusEnabled = true;
89
+ this.applyRoles(this.getControllerClass(), config.roles);
69
90
  return {
70
91
  controllers: [this.getControllerClass()],
71
92
  exports: [tus_constants_1.TUS_CONFIG, core_tus_service_1.CoreTusService],
@@ -76,12 +97,17 @@ let TusModule = class TusModule {
76
97
  useValue: config,
77
98
  },
78
99
  {
79
- inject: [(0, mongoose_1.getConnectionToken)(), tus_constants_1.TUS_CONFIG],
100
+ inject: [
101
+ (0, mongoose_1.getConnectionToken)(),
102
+ tus_constants_1.TUS_CONFIG,
103
+ config_service_1.ConfigService,
104
+ { optional: true, token: core_s3_service_1.CoreS3Service },
105
+ { optional: true, token: core_redis_service_1.CoreRedisService },
106
+ ],
80
107
  provide: core_tus_service_1.CoreTusService,
81
- useFactory: async (connection, tusConfig) => {
82
- const service = new core_tus_service_1.CoreTusService(connection);
108
+ useFactory: async (connection, tusConfig, configService, s3Service, redisService) => {
109
+ const service = new core_tus_service_1.CoreTusService(connection, { configService, redisService, s3Service });
83
110
  service.configure(tusConfig);
84
- await service.onModuleInit();
85
111
  return service;
86
112
  },
87
113
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tus.module.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tus.module.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/tus.module.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,10 @@ const mongoose_password_plugin_1 = require("./core/common/plugins/mongoose-passw
30
30
  const mongoose_role_guard_plugin_1 = require("./core/common/plugins/mongoose-role-guard.plugin");
31
31
  const mongoose_tenant_plugin_1 = require("./core/common/plugins/mongoose-tenant.plugin");
32
32
  const config_service_1 = require("./core/common/services/config.service");
33
+ const core_cron_jobs_initializer_1 = require("./core/common/services/core-cron-jobs.initializer");
34
+ const core_redis_service_1 = require("./core/common/services/core-redis.service");
35
+ const core_s3_service_1 = require("./core/common/services/core-s3.service");
36
+ const core_trust_proxy_initializer_1 = require("./core/common/services/core-trust-proxy.initializer");
33
37
  const email_service_1 = require("./core/common/services/email.service");
34
38
  const mailjet_service_1 = require("./core/common/services/mailjet.service");
35
39
  const model_doc_service_1 = require("./core/common/services/model-doc.service");
@@ -39,6 +43,7 @@ const core_better_auth_user_mapper_1 = require("./core/modules/better-auth/core-
39
43
  const core_better_auth_module_1 = require("./core/modules/better-auth/core-better-auth.module");
40
44
  const core_better_auth_service_1 = require("./core/modules/better-auth/core-better-auth.service");
41
45
  const error_code_module_1 = require("./core/modules/error-code/error-code.module");
46
+ const file_roles_helper_1 = require("./core/modules/file/file-roles.helper");
42
47
  const core_health_check_module_1 = require("./core/modules/health-check/core-health-check.module");
43
48
  const core_hub_module_1 = require("./core/modules/hub/core-hub.module");
44
49
  const hub_config_helper_1 = require("./core/modules/hub/hub-config.helper");
@@ -128,6 +133,7 @@ let CoreModule = class CoreModule {
128
133
  }
129
134
  return connection;
130
135
  };
136
+ (0, file_roles_helper_1.applyFileRoles)(config.file);
131
137
  const jwtConfig = config.jwt;
132
138
  if (jwtConfig?.secret && jwtConfig.secret && jwtConfig.refresh && jwtConfig.refresh.secret === jwtConfig.secret) {
133
139
  console.warn('JWT secret and refresh secret are equal, this can lead to security vulnerabilities!');
@@ -137,6 +143,10 @@ let CoreModule = class CoreModule {
137
143
  provide: config_service_1.ConfigService,
138
144
  useValue: new config_service_1.ConfigService(config),
139
145
  },
146
+ core_cron_jobs_initializer_1.CoreCronJobsInitializer,
147
+ core_redis_service_1.CoreRedisService,
148
+ core_s3_service_1.CoreS3Service,
149
+ core_trust_proxy_initializer_1.CoreTrustProxyInitializer,
140
150
  email_service_1.EmailService,
141
151
  template_service_1.TemplateService,
142
152
  mailjet_service_1.MailjetService,
@@ -288,7 +298,14 @@ let CoreModule = class CoreModule {
288
298
  }
289
299
  imports.push(core_tenant_module_1.CoreTenantModule.forRoot({ modelName: membershipModelName }));
290
300
  }
291
- const exports = [config_service_1.ConfigService, email_service_1.EmailService, template_service_1.TemplateService, mailjet_service_1.MailjetService];
301
+ const exports = [
302
+ config_service_1.ConfigService,
303
+ core_redis_service_1.CoreRedisService,
304
+ core_s3_service_1.CoreS3Service,
305
+ email_service_1.EmailService,
306
+ template_service_1.TemplateService,
307
+ mailjet_service_1.MailjetService,
308
+ ];
292
309
  if (!process.env.VITEST && isGraphQlEnabled) {
293
310
  exports.push(complexity_plugin_1.ComplexityPlugin);
294
311
  }