@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.
- package/.claude/rules/architecture.md +16 -0
- package/.claude/rules/configurable-features.md +11 -3
- package/.claude/rules/testing.md +101 -1
- package/CLAUDE.md +5 -0
- package/FRAMEWORK-API.md +58 -3
- package/dist/config.env.js +6 -0
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/helpers/content-disposition.helper.d.ts +1 -0
- package/dist/core/common/helpers/content-disposition.helper.js +14 -0
- package/dist/core/common/helpers/content-disposition.helper.js.map +1 -0
- package/dist/core/common/helpers/file.helper.d.ts +7 -0
- package/dist/core/common/helpers/file.helper.js +21 -4
- package/dist/core/common/helpers/file.helper.js.map +1 -1
- package/dist/core/common/helpers/graceful-shutdown.helper.d.ts +2 -0
- package/dist/core/common/helpers/graceful-shutdown.helper.js +55 -0
- package/dist/core/common/helpers/graceful-shutdown.helper.js.map +1 -0
- package/dist/core/common/helpers/project-name.helper.d.ts +2 -0
- package/dist/core/common/helpers/project-name.helper.js +38 -0
- package/dist/core/common/helpers/project-name.helper.js.map +1 -0
- package/dist/core/common/interfaces/cron-job-config.interface.d.ts +1 -0
- package/dist/core/common/interfaces/server-options.interface.d.ts +39 -0
- package/dist/core/common/services/core-cron-jobs.initializer.d.ts +10 -0
- package/dist/core/common/services/core-cron-jobs.initializer.js +46 -0
- package/dist/core/common/services/core-cron-jobs.initializer.js.map +1 -0
- package/dist/core/common/services/core-cron-jobs.registry.d.ts +8 -0
- package/dist/core/common/services/core-cron-jobs.registry.js +12 -0
- package/dist/core/common/services/core-cron-jobs.registry.js.map +1 -0
- package/dist/core/common/services/core-cron-jobs.service.d.ts +37 -7
- package/dist/core/common/services/core-cron-jobs.service.js +278 -27
- package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
- package/dist/core/common/services/core-redis-pubsub.d.ts +20 -0
- package/dist/core/common/services/core-redis-pubsub.js +112 -0
- package/dist/core/common/services/core-redis-pubsub.js.map +1 -0
- package/dist/core/common/services/core-redis.service.d.ts +25 -0
- package/dist/core/common/services/core-redis.service.js +154 -0
- package/dist/core/common/services/core-redis.service.js.map +1 -0
- package/dist/core/common/services/core-s3.service.d.ts +51 -0
- package/dist/core/common/services/core-s3.service.js +261 -0
- package/dist/core/common/services/core-s3.service.js.map +1 -0
- package/dist/core/common/services/core-trust-proxy.initializer.d.ts +16 -0
- package/dist/core/common/services/core-trust-proxy.initializer.js +77 -0
- package/dist/core/common/services/core-trust-proxy.initializer.js.map +1 -0
- package/dist/core/common/services/rate-limit-store.d.ts +61 -0
- package/dist/core/common/services/rate-limit-store.js +235 -0
- package/dist/core/common/services/rate-limit-store.js.map +1 -0
- package/dist/core/modules/ai/core-ai-mcp.controller.d.ts +19 -3
- package/dist/core/modules/ai/core-ai-mcp.controller.js +148 -18
- package/dist/core/modules/ai/core-ai-mcp.controller.js.map +1 -1
- package/dist/core/modules/ai/services/core-ai.service.d.ts +7 -2
- package/dist/core/modules/ai/services/core-ai.service.js +24 -20
- package/dist/core/modules/ai/services/core-ai.service.js.map +1 -1
- package/dist/core/modules/auth/core-auth.module.js +4 -1
- package/dist/core/modules/auth/core-auth.module.js.map +1 -1
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.d.ts +1 -1
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js +3 -14
- package/dist/core/modules/auth/guards/legacy-auth-rate-limit.guard.js.map +1 -1
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.d.ts +12 -10
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js +30 -59
- package/dist/core/modules/auth/services/legacy-auth-rate-limiter.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.d.ts +8 -2
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js +118 -45
- package/dist/core/modules/better-auth/core-better-auth-email-verification.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.d.ts +1 -1
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js +2 -11
- package/dist/core/modules/better-auth/core-better-auth-rate-limit.middleware.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.d.ts +12 -10
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js +30 -85
- package/dist/core/modules/better-auth/core-better-auth-rate-limiter.service.js.map +1 -1
- package/dist/core/modules/better-auth/core-better-auth-user.mapper.js +0 -1
- package/dist/core/modules/better-auth/core-better-auth-user.mapper.js.map +1 -1
- package/dist/core/modules/file/core-file.controller.d.ts +11 -2
- package/dist/core/modules/file/core-file.controller.js +52 -15
- package/dist/core/modules/file/core-file.controller.js.map +1 -1
- package/dist/core/modules/file/core-file.resolver.d.ts +4 -4
- package/dist/core/modules/file/core-file.resolver.js +23 -16
- package/dist/core/modules/file/core-file.resolver.js.map +1 -1
- package/dist/core/modules/file/core-file.service.d.ts +41 -7
- package/dist/core/modules/file/core-file.service.js +228 -8
- package/dist/core/modules/file/core-file.service.js.map +1 -1
- package/dist/core/modules/file/file-metadata.helper.d.ts +16 -0
- package/dist/core/modules/file/file-metadata.helper.js +33 -0
- package/dist/core/modules/file/file-metadata.helper.js.map +1 -0
- package/dist/core/modules/file/file-roles.helper.d.ts +4 -0
- package/dist/core/modules/file/file-roles.helper.js +53 -0
- package/dist/core/modules/file/file-roles.helper.js.map +1 -0
- package/dist/core/modules/file/file-storage.helper.d.ts +13 -0
- package/dist/core/modules/file/file-storage.helper.js +65 -0
- package/dist/core/modules/file/file-storage.helper.js.map +1 -0
- package/dist/core/modules/file/filesystem-file.helper.d.ts +22 -0
- package/dist/core/modules/file/filesystem-file.helper.js +77 -0
- package/dist/core/modules/file/filesystem-file.helper.js.map +1 -0
- package/dist/core/modules/file/interfaces/file-service-options.interface.d.ts +1 -0
- package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +7 -1
- package/dist/core/modules/file/s3-file.helper.d.ts +37 -0
- package/dist/core/modules/file/s3-file.helper.js +81 -0
- package/dist/core/modules/file/s3-file.helper.js.map +1 -0
- package/dist/core/modules/hub/core-hub.controller.d.ts +8 -8
- package/dist/core/modules/hub/core-hub.controller.js +24 -22
- package/dist/core/modules/hub/core-hub.controller.js.map +1 -1
- package/dist/core/modules/hub/helpers/hub-mask.helper.js +2 -2
- package/dist/core/modules/hub/helpers/hub-mask.helper.js.map +1 -1
- package/dist/core/modules/hub/hub-buffer.d.ts +23 -0
- package/dist/core/modules/hub/hub-buffer.js +101 -0
- package/dist/core/modules/hub/hub-buffer.js.map +1 -0
- package/dist/core/modules/hub/services/core-hub-mailbox.service.d.ts +7 -5
- package/dist/core/modules/hub/services/core-hub-mailbox.service.js +14 -10
- package/dist/core/modules/hub/services/core-hub-mailbox.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-log-buffer.service.d.ts +5 -2
- package/dist/core/modules/hub/services/hub-log-buffer.service.js +17 -8
- package/dist/core/modules/hub/services/hub-log-buffer.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-query-profiler.service.d.ts +4 -2
- package/dist/core/modules/hub/services/hub-query-profiler.service.js +13 -7
- package/dist/core/modules/hub/services/hub-query-profiler.service.js.map +1 -1
- package/dist/core/modules/hub/services/hub-trace-buffer.service.d.ts +4 -2
- package/dist/core/modules/hub/services/hub-trace-buffer.service.js +13 -8
- package/dist/core/modules/hub/services/hub-trace-buffer.service.js.map +1 -1
- package/dist/core/modules/migrate/helpers/migration.helper.d.ts +2 -6
- package/dist/core/modules/migrate/helpers/migration.helper.js +4 -4
- package/dist/core/modules/migrate/helpers/migration.helper.js.map +1 -1
- package/dist/core/modules/migrate/migration-runner.d.ts +1 -0
- package/dist/core/modules/migrate/migration-runner.js +4 -0
- package/dist/core/modules/migrate/migration-runner.js.map +1 -1
- package/dist/core/modules/migrate/mongo-state-store.d.ts +1 -0
- package/dist/core/modules/migrate/mongo-state-store.js +98 -9
- package/dist/core/modules/migrate/mongo-state-store.js.map +1 -1
- package/dist/core/modules/system-setup/core-system-setup.service.d.ts +2 -0
- package/dist/core/modules/system-setup/core-system-setup.service.js +31 -1
- package/dist/core/modules/system-setup/core-system-setup.service.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.guard.d.ts +17 -3
- package/dist/core/modules/tenant/core-tenant.guard.js +92 -15
- package/dist/core/modules/tenant/core-tenant.guard.js.map +1 -1
- package/dist/core/modules/tenant/core-tenant.module.js +3 -4
- package/dist/core/modules/tenant/core-tenant.module.js.map +1 -1
- package/dist/core/modules/tus/core-tus.controller.d.ts +2 -0
- package/dist/core/modules/tus/core-tus.controller.js +29 -3
- package/dist/core/modules/tus/core-tus.controller.js.map +1 -1
- package/dist/core/modules/tus/core-tus.service.d.ts +24 -1
- package/dist/core/modules/tus/core-tus.service.js +182 -28
- package/dist/core/modules/tus/core-tus.service.js.map +1 -1
- package/dist/core/modules/tus/interfaces/tus-config.interface.js +3 -0
- package/dist/core/modules/tus/interfaces/tus-config.interface.js.map +1 -1
- package/dist/core/modules/tus/tus-redis-locker.d.ts +25 -0
- package/dist/core/modules/tus/tus-redis-locker.js +87 -0
- package/dist/core/modules/tus/tus-redis-locker.js.map +1 -0
- package/dist/core/modules/tus/tus.module.d.ts +1 -0
- package/dist/core/modules/tus/tus.module.js +30 -4
- package/dist/core/modules/tus/tus.module.js.map +1 -1
- package/dist/core.module.js +18 -1
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/main.js +2 -1
- package/dist/main.js.map +1 -1
- package/dist/server/modules/file/file.controller.js +2 -2
- package/dist/server/modules/file/file.controller.js.map +1 -1
- package/dist/server/modules/file/file.resolver.js +3 -14
- package/dist/server/modules/file/file.resolver.js.map +1 -1
- package/dist/server/modules/file/file.service.d.ts +10 -2
- package/dist/server/modules/file/file.service.js +23 -3
- package/dist/server/modules/file/file.service.js.map +1 -1
- package/dist/server/modules/user/avatar.controller.d.ts +5 -1
- package/dist/server/modules/user/avatar.controller.js +26 -10
- package/dist/server/modules/user/avatar.controller.js.map +1 -1
- package/dist/server/modules/user/user.model.js +3 -2
- package/dist/server/modules/user/user.model.js.map +1 -1
- package/dist/server/modules/user/user.module.js +6 -2
- package/dist/server/modules/user/user.module.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +1 -1
- package/dist/server/modules/user/user.service.js +6 -13
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/docs/REQUEST-LIFECYCLE.md +57 -8
- package/docs/security-overrides.md +21 -3
- package/migration-guides/11.32.3-to-11.32.4.md +15 -3
- package/migration-guides/11.32.x-to-11.33.x.md +1584 -0
- package/package.json +74 -42
- package/src/config.env.ts +45 -0
- package/src/core/common/helpers/content-disposition.helper.ts +90 -0
- package/src/core/common/helpers/file.helper.ts +53 -10
- package/src/core/common/helpers/graceful-shutdown.helper.ts +116 -0
- package/src/core/common/helpers/project-name.helper.ts +71 -0
- package/src/core/common/interfaces/cron-job-config.interface.ts +16 -0
- package/src/core/common/interfaces/server-options.interface.ts +439 -2
- package/src/core/common/services/core-cron-jobs.initializer.ts +39 -0
- package/src/core/common/services/core-cron-jobs.registry.ts +45 -0
- package/src/core/common/services/core-cron-jobs.service.ts +589 -47
- package/src/core/common/services/core-redis-pubsub.ts +183 -0
- package/src/core/common/services/core-redis.service.ts +249 -0
- package/src/core/common/services/core-s3.service.ts +465 -0
- package/src/core/common/services/core-trust-proxy.initializer.ts +112 -0
- package/src/core/common/services/rate-limit-store.ts +492 -0
- package/src/core/modules/ai/README.md +25 -0
- package/src/core/modules/ai/core-ai-mcp.controller.ts +253 -22
- package/src/core/modules/ai/services/core-ai.service.ts +33 -24
- package/src/core/modules/auth/core-auth.module.ts +7 -1
- package/src/core/modules/auth/guards/legacy-auth-rate-limit.guard.ts +12 -21
- package/src/core/modules/auth/services/legacy-auth-rate-limiter.service.ts +49 -93
- package/src/core/modules/better-auth/core-better-auth-email-verification.service.ts +202 -66
- package/src/core/modules/better-auth/core-better-auth-rate-limit.middleware.ts +11 -18
- package/src/core/modules/better-auth/core-better-auth-rate-limiter.service.ts +51 -132
- package/src/core/modules/better-auth/core-better-auth-user.mapper.ts +7 -1
- package/src/core/modules/file/INTEGRATION-CHECKLIST.md +120 -0
- package/src/core/modules/file/README.md +308 -53
- package/src/core/modules/file/core-file.controller.ts +168 -12
- package/src/core/modules/file/core-file.resolver.ts +46 -12
- package/src/core/modules/file/core-file.service.ts +517 -17
- package/src/core/modules/file/file-metadata.helper.ts +142 -0
- package/src/core/modules/file/file-roles.helper.ts +110 -0
- package/src/core/modules/file/file-storage.helper.ts +163 -0
- package/src/core/modules/file/filesystem-file.helper.ts +184 -0
- package/src/core/modules/file/interfaces/file-service-options.interface.ts +14 -0
- package/src/core/modules/file/interfaces/file-upload.interface.ts +17 -1
- package/src/core/modules/file/s3-file.helper.ts +209 -0
- package/src/core/modules/hub/README.md +48 -0
- package/src/core/modules/hub/core-hub.controller.ts +18 -16
- package/src/core/modules/hub/helpers/hub-mask.helper.ts +21 -4
- package/src/core/modules/hub/hub-buffer.ts +198 -0
- package/src/core/modules/hub/services/core-hub-mailbox.service.ts +22 -12
- package/src/core/modules/hub/services/hub-log-buffer.service.ts +24 -8
- package/src/core/modules/hub/services/hub-query-profiler.service.ts +9 -6
- package/src/core/modules/hub/services/hub-trace-buffer.service.ts +14 -9
- package/src/core/modules/migrate/README.md +33 -6
- package/src/core/modules/migrate/helpers/migration.helper.ts +13 -6
- package/src/core/modules/migrate/migration-runner.ts +10 -1
- package/src/core/modules/migrate/mongo-state-store.ts +179 -11
- package/src/core/modules/system-setup/README.md +7 -2
- package/src/core/modules/system-setup/core-system-setup.service.ts +95 -1
- package/src/core/modules/tenant/README.md +21 -1
- package/src/core/modules/tenant/core-tenant.guard.ts +135 -14
- package/src/core/modules/tenant/core-tenant.module.ts +8 -4
- package/src/core/modules/tus/INTEGRATION-CHECKLIST.md +93 -21
- package/src/core/modules/tus/README.md +35 -2
- package/src/core/modules/tus/core-tus.controller.ts +64 -12
- package/src/core/modules/tus/core-tus.service.ts +358 -34
- package/src/core/modules/tus/interfaces/tus-config.interface.ts +9 -0
- package/src/core/modules/tus/tus-redis-locker.ts +139 -0
- package/src/core/modules/tus/tus.module.ts +78 -6
- package/src/core.module.ts +26 -1
- package/src/index.ts +10 -0
- package/src/main.ts +7 -1
- package/src/server/modules/file/file.controller.ts +14 -5
- package/src/server/modules/file/file.resolver.ts +11 -19
- package/src/server/modules/file/file.service.ts +89 -4
- package/src/server/modules/user/avatar.controller.ts +46 -9
- package/src/server/modules/user/user.model.ts +9 -3
- package/src/server/modules/user/user.module.ts +12 -3
- package/src/server/modules/user/user.service.ts +20 -17
- package/src/test/README.md +7 -2
- package/src/core/common/helpers/file.helper.spec.ts +0 -145
- package/src/core/common/helpers/logging.helper.spec.ts +0 -61
- package/src/core/common/helpers/process-diagnostics.helper.spec.ts +0 -310
- package/src/core/common/services/brevo.service.spec.ts +0 -266
- package/src/core/modules/file/core-file.controller.spec.ts +0 -164
- package/src/core/modules/hub/core-hub.module.spec.ts +0 -108
- package/src/core/modules/hub/helpers/hub-command-shape.helper.spec.ts +0 -48
- package/src/core/modules/hub/helpers/hub-mask.helper.spec.ts +0 -67
- package/src/core/modules/hub/helpers/hub-mermaid.helper.spec.ts +0 -61
- package/src/core/modules/hub/helpers/hub-shell.helper.spec.ts +0 -106
- package/src/core/modules/hub/hub-config.helper.spec.ts +0 -108
- package/src/core/modules/hub/hub-ring-buffer.spec.ts +0 -95
- package/src/core/modules/hub/services/core-hub-mailbox.service.spec.ts +0 -116
- package/src/core/modules/hub/services/hub-trace-buffer.service.spec.ts +0 -112
- 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.
|
|
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.
|
|
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.
|
|
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,
|
|
1
|
+
{"version":3,"file":"core-tus.controller.js","sourceRoot":"","sources":["../../../../src/core/modules/tus/core-tus.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4E;AAG5E,6EAAgE;AAChE,4DAAwD;AACxD,6EAAmE;AACnE,yDAAoD;AAsC7C,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;IAmBvD,AAAN,KAAK,CAAC,gBAAgB,CAAQ,GAAY,EAAS,GAAa;QAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAWK,AAAN,KAAK,CAAC,sBAAsB,CAAQ,GAAY,EAAS,GAAa;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;IAcK,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;AA/FY,8CAAiB;AAsBtB;IAFL,IAAA,gBAAO,GAAE;IACT,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACH,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;yDAEjD;AAWK;IAFL,IAAA,gBAAO,EAAC,KAAK,CAAC;IACd,IAAA,uBAAK,EAAC,oBAAQ,CAAC,UAAU,CAAC;IACG,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;+DAEvD;AAcK;IAFL,IAAA,YAAG,GAAE;IACL,IAAA,uBAAK,EAAC,oBAAQ,CAAC,MAAM,CAAC;IACN,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,MAAM,CAAC;IACA,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAiBhD;4BA9FU,iBAAiB;IAH7B,IAAA,mBAAU,EAAC,KAAK,CAAC;IACjB,IAAA,uBAAK,EAAC,oBAAQ,CAAC,MAAM,CAAC;IACtB,IAAA,wCAAe,GAAE;qCAI2B,iCAAc;GAH9C,iBAAiB,CA+F7B"}
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
78
|
-
|
|
79
|
-
.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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 =
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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}
|
|
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.
|
|
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
|
-
|
|
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":";;;
|
|
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
|
}
|