@comet/cms-api 8.8.0-canary-20251126125613 → 8.8.0-canary-20251126135231

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 (33) hide show
  1. package/lib/file-uploads/dto/file-upload.body.d.ts +4 -0
  2. package/lib/file-uploads/dto/file-upload.body.d.ts.map +1 -0
  3. package/lib/file-uploads/dto/file-upload.body.js +25 -0
  4. package/lib/file-uploads/dto/file-upload.body.js.map +1 -0
  5. package/lib/file-uploads/entities/file-upload.entity.d.ts +1 -0
  6. package/lib/file-uploads/entities/file-upload.entity.d.ts.map +1 -1
  7. package/lib/file-uploads/entities/file-upload.entity.js +9 -1
  8. package/lib/file-uploads/entities/file-upload.entity.js.map +1 -1
  9. package/lib/file-uploads/file-upload-expiration.subscriber.d.ts +12 -0
  10. package/lib/file-uploads/file-upload-expiration.subscriber.d.ts.map +1 -0
  11. package/lib/file-uploads/file-upload-expiration.subscriber.js +50 -0
  12. package/lib/file-uploads/file-upload-expiration.subscriber.js.map +1 -0
  13. package/lib/file-uploads/file-uploads-upload.controller.d.ts.map +1 -1
  14. package/lib/file-uploads/file-uploads-upload.controller.js +5 -3
  15. package/lib/file-uploads/file-uploads-upload.controller.js.map +1 -1
  16. package/lib/file-uploads/file-uploads.config.d.ts +8 -0
  17. package/lib/file-uploads/file-uploads.config.d.ts.map +1 -1
  18. package/lib/file-uploads/file-uploads.module.d.ts.map +1 -1
  19. package/lib/file-uploads/file-uploads.module.js +7 -1
  20. package/lib/file-uploads/file-uploads.module.js.map +1 -1
  21. package/lib/file-uploads/file-uploads.service.d.ts +5 -3
  22. package/lib/file-uploads/file-uploads.service.d.ts.map +1 -1
  23. package/lib/file-uploads/file-uploads.service.js +44 -6
  24. package/lib/file-uploads/file-uploads.service.js.map +1 -1
  25. package/lib/mikro-orm/migrations/Migration20251013081751.d.ts +5 -0
  26. package/lib/mikro-orm/migrations/Migration20251013081751.d.ts.map +1 -0
  27. package/lib/mikro-orm/migrations/Migration20251013081751.js +22 -0
  28. package/lib/mikro-orm/migrations/Migration20251013081751.js.map +1 -0
  29. package/lib/mikro-orm/mikro-orm.module.d.ts.map +1 -1
  30. package/lib/mikro-orm/mikro-orm.module.js +2 -0
  31. package/lib/mikro-orm/mikro-orm.module.js.map +1 -1
  32. package/lib/tsconfig.build.tsbuildinfo +1 -1
  33. package/package.json +2 -2
@@ -0,0 +1,4 @@
1
+ export declare class FileUploadBody {
2
+ expiresIn?: number;
3
+ }
4
+ //# sourceMappingURL=file-upload.body.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.body.d.ts","sourceRoot":"","sources":["../../../src/file-uploads/dto/file-upload.body.ts"],"names":[],"mappings":"AAKA,qBAAa,cAAc;IAIvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.FileUploadBody = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const is_undefinable_1 = require("../../common/validators/is-undefinable");
16
+ class FileUploadBody {
17
+ }
18
+ exports.FileUploadBody = FileUploadBody;
19
+ __decorate([
20
+ (0, class_validator_1.IsInt)(),
21
+ (0, is_undefinable_1.IsUndefinable)(),
22
+ (0, class_transformer_1.Type)(() => Number),
23
+ __metadata("design:type", Number)
24
+ ], FileUploadBody.prototype, "expiresIn", void 0);
25
+ //# sourceMappingURL=file-upload.body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.body.js","sourceRoot":"","sources":["../../../src/file-uploads/dto/file-upload.body.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAAwC;AAExC,2EAAuE;AAEvE,MAAa,cAAc;CAK1B;AALD,wCAKC;AADG;IAHC,IAAA,uBAAK,GAAE;IACP,IAAA,8BAAa,GAAE;IACf,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;iDACA"}
@@ -8,5 +8,6 @@ export declare class FileUpload extends BaseEntity {
8
8
  contentHash: string;
9
9
  createdAt: Date;
10
10
  updatedAt: Date;
11
+ expiresAt?: Date;
11
12
  }
12
13
  //# sourceMappingURL=file-upload.entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.entity.d.ts","sourceRoot":"","sources":["../../../src/file-uploads/entities/file-upload.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6B,aAAa,EAAwB,MAAM,uBAAuB,CAAC;AAInH,qBAEa,UAAW,SAAQ,UAAU;IACtC,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAI5C,EAAE,EAAE,MAAM,CAAU;IAIpB,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,EAAE,MAAM,CAAC;IAIb,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAMpB,SAAS,EAAE,IAAI,CAAc;IAO7B,SAAS,EAAE,IAAI,CAAc;CAChC"}
1
+ {"version":3,"file":"file-upload.entity.d.ts","sourceRoot":"","sources":["../../../src/file-uploads/entities/file-upload.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA6B,aAAa,EAAwB,MAAM,uBAAuB,CAAC;AAInH,qBAEa,UAAW,SAAQ,UAAU;IACtC,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAI5C,EAAE,EAAE,MAAM,CAAU;IAIpB,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,EAAE,MAAM,CAAC;IAIb,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAMpB,SAAS,EAAE,IAAI,CAAc;IAO7B,SAAS,EAAE,IAAI,CAAc;IAO7B,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB"}
@@ -17,7 +17,7 @@ let FileUpload = class FileUpload extends postgresql_1.BaseEntity {
17
17
  constructor() {
18
18
  super(...arguments);
19
19
  this.id = (0, uuid_1.v4)();
20
- this.createdAt = new Date(); // TODO: delete after x days?
20
+ this.createdAt = new Date();
21
21
  this.updatedAt = new Date();
22
22
  }
23
23
  };
@@ -63,6 +63,14 @@ __decorate([
63
63
  }),
64
64
  __metadata("design:type", Date)
65
65
  ], FileUpload.prototype, "updatedAt", void 0);
66
+ __decorate([
67
+ (0, graphql_1.Field)({ nullable: true, description: "The date and time the file will be deleted. If undefined, the file will never be deleted." }),
68
+ (0, postgresql_1.Property)({
69
+ columnType: "timestamp with time zone",
70
+ nullable: true,
71
+ }),
72
+ __metadata("design:type", Date)
73
+ ], FileUpload.prototype, "expiresAt", void 0);
66
74
  exports.FileUpload = FileUpload = __decorate([
67
75
  (0, graphql_1.ObjectType)("FileUpload"),
68
76
  (0, postgresql_1.Entity)({ tableName: "CometFileUpload" })
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.entity.js","sourceRoot":"","sources":["../../../src/file-uploads/entities/file-upload.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAmH;AACnH,6CAA6D;AAC7D,+BAAkC;AAI3B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,uBAAU;IAAnC;;QAKH,OAAE,GAAW,IAAA,SAAI,GAAE,CAAC;QAuBpB,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC,CAAC,6BAA6B;QAO3D,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IACjC,CAAC;CAAA,CAAA;AApCY,gCAAU;AAKnB;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;IACf,IAAA,uBAAU,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;sCACf;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;wCACpB;AAIb;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;IAChB,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;wCAChC;AAIb;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;4CAChB;AAKjB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;IACzC,IAAA,kBAAK,GAAE;;+CACY;AAMpB;IAJC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC;QACN,UAAU,EAAE,0BAA0B;KACzC,CAAC;8BACS,IAAI;6CAAc;AAO7B;IALC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC;QACN,UAAU,EAAE,0BAA0B;QACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;KAC7B,CAAC;8BACS,IAAI;6CAAc;qBAnCpB,UAAU;IAFtB,IAAA,oBAAU,EAAC,YAAY,CAAC;IACxB,IAAA,mBAAM,EAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;GAC5B,UAAU,CAoCtB"}
1
+ {"version":3,"file":"file-upload.entity.js","sourceRoot":"","sources":["../../../src/file-uploads/entities/file-upload.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAmH;AACnH,6CAA6D;AAC7D,+BAAkC;AAI3B,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,uBAAU;IAAnC;;QAKH,OAAE,GAAW,IAAA,SAAI,GAAE,CAAC;QAuBpB,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC;QAO7B,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC;IAQjC,CAAC;CAAA,CAAA;AA3CY,gCAAU;AAKnB;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;IACf,IAAA,uBAAU,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;sCACf;AAIpB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;wCACpB;AAIb;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,CAAC;IAChB,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,uBAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;;wCAChC;AAIb;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;;4CAChB;AAKjB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;IACzC,IAAA,kBAAK,GAAE;;+CACY;AAMpB;IAJC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC;QACN,UAAU,EAAE,0BAA0B;KACzC,CAAC;8BACS,IAAI;6CAAc;AAO7B;IALC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC;QACN,UAAU,EAAE,0BAA0B;QACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;KAC7B,CAAC;8BACS,IAAI;6CAAc;AAO7B;IALC,IAAA,eAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,2FAA2F,EAAE,CAAC;IACnI,IAAA,qBAAQ,EAAC;QACN,UAAU,EAAE,0BAA0B;QACtC,QAAQ,EAAE,IAAI;KACjB,CAAC;8BACU,IAAI;6CAAC;qBA1CR,UAAU;IAFtB,IAAA,oBAAU,EAAC,YAAY,CAAC;IACxB,IAAA,mBAAM,EAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;GAC5B,UAAU,CA2CtB"}
@@ -0,0 +1,12 @@
1
+ import { EntityName, EventArgs, EventSubscriber } from "@mikro-orm/core";
2
+ import { EntityManager } from "@mikro-orm/postgresql";
3
+ import { FileUpload } from "./entities/file-upload.entity";
4
+ import { FileUploadsService } from "./file-uploads.service";
5
+ export declare class FileUploadExpirationSubscriber implements EventSubscriber {
6
+ private readonly entityManager;
7
+ private readonly fileUploadsService;
8
+ constructor(entityManager: EntityManager, fileUploadsService: FileUploadsService);
9
+ getSubscribedEntities(): EntityName<FileUpload>[];
10
+ onLoad(args: EventArgs<FileUpload>): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=file-upload-expiration.subscriber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-expiration.subscriber.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-upload-expiration.subscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBACa,8BAA+B,YAAW,eAAe;IAE9D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBADlB,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB;IAK3D,qBAAqB,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;IAI3C,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAM3D"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.FileUploadExpirationSubscriber = void 0;
22
+ const postgresql_1 = require("@mikro-orm/postgresql");
23
+ const common_1 = require("@nestjs/common");
24
+ const file_upload_entity_1 = require("./entities/file-upload.entity");
25
+ const file_uploads_service_1 = require("./file-uploads.service");
26
+ let FileUploadExpirationSubscriber = class FileUploadExpirationSubscriber {
27
+ constructor(entityManager, fileUploadsService) {
28
+ this.entityManager = entityManager;
29
+ this.fileUploadsService = fileUploadsService;
30
+ entityManager.getEventManager().registerSubscriber(this);
31
+ }
32
+ getSubscribedEntities() {
33
+ return [file_upload_entity_1.FileUpload];
34
+ }
35
+ onLoad(args) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (args.entity.expiresAt && args.entity.expiresAt < new Date()) {
38
+ yield this.fileUploadsService.delete(args.entity);
39
+ yield this.entityManager.flush();
40
+ }
41
+ });
42
+ }
43
+ };
44
+ exports.FileUploadExpirationSubscriber = FileUploadExpirationSubscriber;
45
+ exports.FileUploadExpirationSubscriber = FileUploadExpirationSubscriber = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [postgresql_1.EntityManager,
48
+ file_uploads_service_1.FileUploadsService])
49
+ ], FileUploadExpirationSubscriber);
50
+ //# sourceMappingURL=file-upload-expiration.subscriber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload-expiration.subscriber.js","sourceRoot":"","sources":["../../src/file-uploads/file-upload-expiration.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA,sDAAsD;AACtD,2CAA4C;AAE5C,sEAA2D;AAC3D,iEAA4D;AAGrD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IACvC,YACqB,aAA4B,EAC5B,kBAAsC;QADtC,kBAAa,GAAb,aAAa,CAAe;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAoB;QAEvD,aAAa,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,qBAAqB;QACjB,OAAO,CAAC,+BAAU,CAAC,CAAC;IACxB,CAAC;IAEK,MAAM,CAAC,IAA2B;;YACpC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;gBAC9D,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;QACL,CAAC;KAAA;CACJ,CAAA;AAlBY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;qCAG2B,0BAAa;QACR,yCAAkB;GAHlD,8BAA8B,CAkB1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads-upload.controller.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads-upload.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,IAAI,EAAiC,MAAM,gBAAgB,CAAC;AAgB/F,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CA8C7F"}
1
+ {"version":3,"file":"file-uploads-upload.controller.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads-upload.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,IAAI,EAAiC,MAAM,gBAAgB,CAAC;AAiBrG,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CA8C7F"}
@@ -27,6 +27,7 @@ const common_1 = require("@nestjs/common");
27
27
  const rimraf_1 = require("rimraf");
28
28
  const disable_comet_guards_decorator_1 = require("../auth/decorators/disable-comet-guards.decorator");
29
29
  const required_permission_decorator_1 = require("../user-permissions/decorators/required-permission.decorator");
30
+ const file_upload_body_1 = require("./dto/file-upload.body");
30
31
  const file_uploads_constants_1 = require("./file-uploads.constants");
31
32
  const file_uploads_service_1 = require("./file-uploads.service");
32
33
  const file_uploads_file_interceptor_1 = require("./file-uploads-file.interceptor");
@@ -37,9 +38,9 @@ function createFileUploadsUploadController(options) {
37
38
  this.entityManager = entityManager;
38
39
  this.config = config;
39
40
  }
40
- upload(file) {
41
+ upload(file, body) {
41
42
  return __awaiter(this, void 0, void 0, function* () {
42
- const fileUpload = yield this.fileUploadsService.upload(file);
43
+ const fileUpload = yield this.fileUploadsService.upload(file, body.expiresIn);
43
44
  yield this.entityManager.flush();
44
45
  try {
45
46
  yield (0, rimraf_1.rimraf)(file.path);
@@ -59,8 +60,9 @@ function createFileUploadsUploadController(options) {
59
60
  (0, common_1.Post)("upload"),
60
61
  (0, common_1.UseInterceptors)((0, file_uploads_file_interceptor_1.FileUploadsFileInterceptor)()),
61
62
  __param(0, (0, common_1.UploadedFile)()),
63
+ __param(1, (0, common_1.Body)()),
62
64
  __metadata("design:type", Function),
63
- __metadata("design:paramtypes", [Object]),
65
+ __metadata("design:paramtypes", [Object, file_upload_body_1.FileUploadBody]),
64
66
  __metadata("design:returntype", Promise)
65
67
  ], BaseFileUploadsUploadController.prototype, "upload", null);
66
68
  BaseFileUploadsUploadController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads-upload.controller.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads-upload.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiBA,8EA8CC;AA/DD,sDAAsD;AACtD,2CAA+F;AAC/F,mCAAgC;AAEhC,sGAAuF;AAEvF,gHAAkG;AAGlG,qEAA+D;AAC/D,iEAA4D;AAC5D,mFAA6E;AAM7E,SAAgB,iCAAiC,CAAC,OAA4B;IAC1E,IACM,+BAA+B,GADrC,MACM,+BAA+B;QACjC,YACqB,kBAAsC,EACtC,aAA4B,EACC,MAAyB;YAFtD,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAa,GAAb,aAAa,CAAe;YACC,WAAM,GAAN,MAAM,CAAmB;QACxE,CAAC;QAIE,MAAM,CAAiB,IAAqB;;gBAC9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAE9D,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAEjC,IAAI,CAAC;oBACD,MAAM,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,WAA+B,CAAC;gBAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvB,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACxE,CAAC;gBAED,uCACO,UAAU,KACb,WAAW,IACb;YACN,CAAC;SAAA;KACJ,CAAA;IAtBS;QAFL,IAAA,aAAI,EAAC,QAAQ,CAAC;QACd,IAAA,wBAAe,EAAC,IAAA,0DAA0B,GAAE,CAAC;QAChC,WAAA,IAAA,qBAAY,GAAE,CAAA;;;;iEAqB3B;IA9BC,+BAA+B;QADpC,IAAA,mBAAU,EAAC,cAAc,CAAC;QAKlB,WAAA,IAAA,eAAM,EAAC,4CAAmB,CAAC,CAAA;yCAFS,yCAAkB;YACvB,0BAAa;OAH/C,+BAA+B,CA+BpC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,+BAA+B;SAAG,CAAA;QAA5E,iCAAiC;YADtC,IAAA,mDAAkB,GAAE;WACf,iCAAiC,CAA2C;QAElF,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IAGD,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,+BAA+B;KAAG,CAAA;IAA7E,kCAAkC;QADvC,IAAA,kDAAkB,EAAC,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;OACtD,kCAAkC,CAA2C;IAEnF,OAAO,kCAAkC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"file-uploads-upload.controller.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads-upload.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBA,8EA8CC;AAhED,sDAAsD;AACtD,2CAAqG;AACrG,mCAAgC;AAEhC,sGAAuF;AAEvF,gHAAkG;AAClG,6DAAwD;AAGxD,qEAA+D;AAC/D,iEAA4D;AAC5D,mFAA6E;AAM7E,SAAgB,iCAAiC,CAAC,OAA4B;IAC1E,IACM,+BAA+B,GADrC,MACM,+BAA+B;QACjC,YACqB,kBAAsC,EACtC,aAA4B,EACC,MAAyB;YAFtD,uBAAkB,GAAlB,kBAAkB,CAAoB;YACtC,kBAAa,GAAb,aAAa,CAAe;YACC,WAAM,GAAN,MAAM,CAAmB;QACxE,CAAC;QAIE,MAAM,CAAiB,IAAqB,EAAU,IAAoB;;gBAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE9E,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;gBAEjC,IAAI,CAAC;oBACD,MAAM,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;gBAED,IAAI,WAA+B,CAAC;gBAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvB,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACxE,CAAC;gBAED,uCACO,UAAU,KACb,WAAW,IACb;YACN,CAAC;SAAA;KACJ,CAAA;IAtBS;QAFL,IAAA,aAAI,EAAC,QAAQ,CAAC;QACd,IAAA,wBAAe,EAAC,IAAA,0DAA0B,GAAE,CAAC;QAChC,WAAA,IAAA,qBAAY,GAAE,CAAA;QAAyB,WAAA,IAAA,aAAI,GAAE,CAAA;;iDAAO,iCAAc;;iEAqB/E;IA9BC,+BAA+B;QADpC,IAAA,mBAAU,EAAC,cAAc,CAAC;QAKlB,WAAA,IAAA,eAAM,EAAC,4CAAmB,CAAC,CAAA;yCAFS,yCAAkB;YACvB,0BAAa;OAH/C,+BAA+B,CA+BpC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,IAAM,iCAAiC,GAAvC,MAAM,iCAAkC,SAAQ,+BAA+B;SAAG,CAAA;QAA5E,iCAAiC;YADtC,IAAA,mDAAkB,GAAE;WACf,iCAAiC,CAA2C;QAElF,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IAGD,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,+BAA+B;KAAG,CAAA;IAA7E,kCAAkC;QADvC,IAAA,kDAAkB,EAAC,aAAa,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;OACtD,kCAAkC,CAA2C;IAEnF,OAAO,kCAAkC,CAAC;AAC9C,CAAC"}
@@ -2,6 +2,14 @@ export interface FileUploadsConfig {
2
2
  directory: string;
3
3
  maxFileSize: number;
4
4
  acceptedMimeTypes: string[];
5
+ /**
6
+ * Allows setting an expiration duration, after this duration the file will be deleted.
7
+ * The duration is in seconds.
8
+ * Leaving it undefined means the file will never be deleted.
9
+ *
10
+ * @default undefined
11
+ */
12
+ expiresIn?: number;
5
13
  upload?: {
6
14
  public: boolean;
7
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads.config.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf;;;;;WAKG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAClC,CAAC;CACL"}
1
+ {"version":3,"file":"file-uploads.config.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACL,MAAM,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf;;;;;WAKG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAClC,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads.module.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAMzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,qBAEa,iBAAiB;IAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa;CAwC7D"}
1
+ {"version":3,"file":"file-uploads.module.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAOzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,qBAEa,iBAAiB;IAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa;CA6C7D"}
@@ -14,6 +14,7 @@ const blob_storage_module_1 = require("../blob-storage/blob-storage.module");
14
14
  const file_validation_service_1 = require("../file-utils/file-validation.service");
15
15
  const imgproxy_module_1 = require("../imgproxy/imgproxy.module");
16
16
  const file_upload_entity_1 = require("./entities/file-upload.entity");
17
+ const file_upload_expiration_subscriber_1 = require("./file-upload-expiration.subscriber");
17
18
  const file_uploads_constants_1 = require("./file-uploads.constants");
18
19
  const file_uploads_resolver_1 = require("./file-uploads.resolver");
19
20
  const file_uploads_service_1 = require("./file-uploads.service");
@@ -34,7 +35,12 @@ let FileUploadsModule = FileUploadsModule_1 = class FileUploadsModule {
34
35
  }),
35
36
  };
36
37
  const controllers = [(0, file_uploads_upload_controller_1.createFileUploadsUploadController)((_a = options.upload) !== null && _a !== void 0 ? _a : { public: false })];
37
- const providers = [fileUploadsConfigProvider, file_uploads_service_1.FileUploadsService, fileUploadsFileValidatorProvider];
38
+ const providers = [
39
+ fileUploadsConfigProvider,
40
+ file_uploads_service_1.FileUploadsService,
41
+ fileUploadsFileValidatorProvider,
42
+ file_upload_expiration_subscriber_1.FileUploadExpirationSubscriber,
43
+ ];
38
44
  if (options.download) {
39
45
  if (options.download.secret.length < 16) {
40
46
  throw new Error("The download secret must be at least 16 characters long.");
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads.module.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,8CAAmD;AACnD,2CAAyE;AAEzE,6EAAwE;AACxE,mFAA8E;AAC9E,iEAA6D;AAC7D,sEAA2D;AAE3D,qEAAqG;AACrG,mEAA8D;AAC9D,iEAA4D;AAC5D,yFAAyF;AACzF,qFAAqF;AAI9E,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC1B,MAAM,CAAC,QAAQ,CAAC,OAA0B;;QACtC,MAAM,yBAAyB,GAAG;YAC9B,OAAO,EAAE,4CAAmB;YAC5B,QAAQ,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,gCAAgC,GAAG;YACrC,OAAO,EAAE,6DAAoC;YAC7C,QAAQ,EAAE,IAAI,+CAAqB,CAAC;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC/C,CAAC;SACL,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,IAAA,kEAAiC,EAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAe,CAAC,yBAAyB,EAAE,yCAAkB,EAAE,gCAAgC,CAAC,CAAC;QAEhH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,6BAA6B,GAAG,IAAA,sEAAmC,EAAC,EAAE,MAAM,EAAE,MAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,mCAAI,KAAK,EAAE,CAAC,CAAC;YACxH,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAEhD,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,oBAAoB,mCAAI,IAAI,CAAC;YAExE,IAAI,iBAAiB,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,2CAAmB,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO;YACH,MAAM,EAAE,mBAAiB;YACzB,OAAO,EAAE,CAAC,uBAAc,CAAC,UAAU,CAAC,CAAC,+BAAU,CAAC,CAAC,EAAE,uCAAiB,EAAE,gCAAc,CAAC;YACrF,SAAS;YACT,WAAW;YACX,OAAO,EAAE,CAAC,yCAAkB,CAAC;SAChC,CAAC;IACN,CAAC;CACJ,CAAA;AAzCY,8CAAiB;4BAAjB,iBAAiB;IAF7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CAyC7B"}
1
+ {"version":3,"file":"file-uploads.module.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,8CAAmD;AACnD,2CAAyE;AAEzE,6EAAwE;AACxE,mFAA8E;AAC9E,iEAA6D;AAC7D,sEAA2D;AAC3D,2FAAqF;AAErF,qEAAqG;AACrG,mEAA8D;AAC9D,iEAA4D;AAC5D,yFAAyF;AACzF,qFAAqF;AAI9E,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAC1B,MAAM,CAAC,QAAQ,CAAC,OAA0B;;QACtC,MAAM,yBAAyB,GAAG;YAC9B,OAAO,EAAE,4CAAmB;YAC5B,QAAQ,EAAE,OAAO;SACpB,CAAC;QAEF,MAAM,gCAAgC,GAAG;YACrC,OAAO,EAAE,6DAAoC;YAC7C,QAAQ,EAAE,IAAI,+CAAqB,CAAC;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC/C,CAAC;SACL,CAAC;QAEF,MAAM,WAAW,GAAG,CAAC,IAAA,kEAAiC,EAAC,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,SAAS,GAAe;YAC1B,yBAAyB;YACzB,yCAAkB;YAClB,gCAAgC;YAChC,kEAA8B;SACjC,CAAC;QAEF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,6BAA6B,GAAG,IAAA,sEAAmC,EAAC,EAAE,MAAM,EAAE,MAAA,OAAO,CAAC,QAAQ,CAAC,MAAM,mCAAI,KAAK,EAAE,CAAC,CAAC;YACxH,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAEhD,MAAM,iBAAiB,GAAG,MAAA,OAAO,CAAC,QAAQ,CAAC,oBAAoB,mCAAI,IAAI,CAAC;YAExE,IAAI,iBAAiB,EAAE,CAAC;gBACpB,SAAS,CAAC,IAAI,CAAC,2CAAmB,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO;YACH,MAAM,EAAE,mBAAiB;YACzB,OAAO,EAAE,CAAC,uBAAc,CAAC,UAAU,CAAC,CAAC,+BAAU,CAAC,CAAC,EAAE,uCAAiB,EAAE,gCAAc,CAAC;YACrF,SAAS;YACT,WAAW;YACX,OAAO,EAAE,CAAC,yCAAkB,CAAC;SAChC,CAAC;IACN,CAAC;CACJ,CAAA;AA9CY,8CAAiB;4BAAjB,iBAAiB;IAF7B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CA8C7B"}
@@ -1,21 +1,23 @@
1
- import { EntityManager, EntityRepository } from "@mikro-orm/postgresql";
1
+ import { EntityManager, EntityRepository, MikroORM } from "@mikro-orm/postgresql";
2
2
  import { BlobStorageBackendService } from "../blob-storage/backends/blob-storage-backend.service";
3
3
  import { FileUploadInput } from "../file-utils/file-upload.input";
4
4
  import { DownloadParams, ImageParams } from "./dto/file-uploads-download.params";
5
5
  import { FileUpload } from "./entities/file-upload.entity";
6
6
  import { FileUploadsConfig } from "./file-uploads.config";
7
7
  export declare class FileUploadsService {
8
+ private readonly orm;
8
9
  private readonly repository;
9
10
  private readonly blobStorageBackendService;
10
11
  private readonly config;
11
12
  private readonly entityManager;
12
- constructor(repository: EntityRepository<FileUpload>, blobStorageBackendService: BlobStorageBackendService, config: FileUploadsConfig, entityManager: EntityManager);
13
- upload(file: FileUploadInput): Promise<FileUpload>;
13
+ constructor(orm: MikroORM, repository: EntityRepository<FileUpload>, blobStorageBackendService: BlobStorageBackendService, config: FileUploadsConfig, entityManager: EntityManager);
14
+ upload(file: FileUploadInput, expiresIn?: number): Promise<FileUpload>;
14
15
  createHash(params: DownloadParams | ImageParams): string;
15
16
  createDownloadUrl(file: FileUpload): string;
16
17
  createImageUrl(file: FileUpload, resizeWidth: number): string | undefined;
17
18
  createPreviewUrl(file: FileUpload): string;
18
19
  getFileContent(file: FileUpload): Promise<Buffer>;
19
20
  delete(fileUpload: FileUpload): Promise<void>;
21
+ deleteExpiredFiles(): Promise<void>;
20
22
  }
21
23
  //# sourceMappingURL=file-uploads.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads.service.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAQxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,qBACa,kBAAkB;IAEO,OAAO,CAAC,QAAQ,CAAC,UAAU;IACJ,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHiB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACjB,yBAAyB,EAAE,yBAAyB,EAC5E,MAAM,EAAE,iBAAiB,EACtD,aAAa,EAAE,aAAa;IAG3C,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAoBxD,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM;IAcxD,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAe3C,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBzE,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAWpC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBjD,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAQtD"}
1
+ {"version":3,"file":"file-uploads.service.d.ts","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQxG,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGlE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,qBACa,kBAAkB;IAEvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACU,OAAO,CAAC,QAAQ,CAAC,UAAU;IACJ,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAJb,GAAG,EAAE,QAAQ,EACiB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACjB,yBAAyB,EAAE,yBAAyB,EAC5E,MAAM,EAAE,iBAAiB,EACtD,aAAa,EAAE,aAAa;IAY3C,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB5E,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM;IAcxD,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAe3C,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBzE,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAWpC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBjD,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;CAqB5C"}
@@ -47,24 +47,36 @@ const file_uploads_download_params_1 = require("./dto/file-uploads-download.para
47
47
  const file_upload_entity_1 = require("./entities/file-upload.entity");
48
48
  const file_uploads_constants_1 = require("./file-uploads.constants");
49
49
  let FileUploadsService = class FileUploadsService {
50
- constructor(repository, blobStorageBackendService, config, entityManager) {
50
+ constructor(orm, repository, blobStorageBackendService, config, entityManager) {
51
+ this.orm = orm;
51
52
  this.repository = repository;
52
53
  this.blobStorageBackendService = blobStorageBackendService;
53
54
  this.config = config;
54
55
  this.entityManager = entityManager;
56
+ // Delete expired files every minute
57
+ setInterval(() => __awaiter(this, void 0, void 0, function* () {
58
+ try {
59
+ yield this.deleteExpiredFiles();
60
+ }
61
+ catch (error) {
62
+ console.error("Error while deleting expired files", error);
63
+ }
64
+ }), 60000);
55
65
  }
56
- upload(file) {
66
+ upload(file, expiresIn) {
57
67
  return __awaiter(this, void 0, void 0, function* () {
58
68
  const contentHash = yield hasha_1.default.fromFile(file.path, { algorithm: "md5" });
59
69
  yield this.blobStorageBackendService.upload(file, contentHash, this.config.directory);
60
70
  const extension = (0, path_1.extname)(file.originalname);
61
71
  const filename = (0, path_1.basename)(file.originalname, extension);
62
72
  const name = (0, files_utils_1.slugifyFilename)(filename, extension);
73
+ const expires = expiresIn || this.config.expiresIn;
63
74
  const fileUpload = this.repository.create({
64
75
  name,
65
76
  size: file.size,
66
77
  mimetype: file.mimetype,
67
78
  contentHash,
79
+ expiresAt: expires ? (0, date_fns_1.addSeconds)(new Date(), expires) : undefined,
68
80
  });
69
81
  this.entityManager.persist(fileUpload);
70
82
  return fileUpload;
@@ -150,14 +162,40 @@ let FileUploadsService = class FileUploadsService {
150
162
  this.entityManager.remove(fileUpload);
151
163
  });
152
164
  }
165
+ deleteExpiredFiles() {
166
+ return __awaiter(this, void 0, void 0, function* () {
167
+ let hasMore = false;
168
+ const limit = 100;
169
+ do {
170
+ const files = yield this.repository.find({
171
+ expiresAt: { $lt: new Date() },
172
+ }, {
173
+ limit,
174
+ offset: 0,
175
+ });
176
+ for (const file of files) {
177
+ yield this.delete(file);
178
+ }
179
+ hasMore = files.length === limit;
180
+ } while (hasMore);
181
+ yield this.entityManager.flush();
182
+ });
183
+ }
153
184
  };
154
185
  exports.FileUploadsService = FileUploadsService;
186
+ __decorate([
187
+ (0, postgresql_1.CreateRequestContext)(),
188
+ __metadata("design:type", Function),
189
+ __metadata("design:paramtypes", []),
190
+ __metadata("design:returntype", Promise)
191
+ ], FileUploadsService.prototype, "deleteExpiredFiles", null);
155
192
  exports.FileUploadsService = FileUploadsService = __decorate([
156
193
  (0, common_1.Injectable)(),
157
- __param(0, (0, nestjs_1.InjectRepository)(file_upload_entity_1.FileUpload)),
158
- __param(1, (0, common_1.Inject)((0, common_1.forwardRef)(() => blob_storage_backend_service_1.BlobStorageBackendService))),
159
- __param(2, (0, common_1.Inject)(file_uploads_constants_1.FILE_UPLOADS_CONFIG)),
160
- __metadata("design:paramtypes", [postgresql_1.EntityRepository,
194
+ __param(1, (0, nestjs_1.InjectRepository)(file_upload_entity_1.FileUpload)),
195
+ __param(2, (0, common_1.Inject)((0, common_1.forwardRef)(() => blob_storage_backend_service_1.BlobStorageBackendService))),
196
+ __param(3, (0, common_1.Inject)(file_uploads_constants_1.FILE_UPLOADS_CONFIG)),
197
+ __metadata("design:paramtypes", [postgresql_1.MikroORM,
198
+ postgresql_1.EntityRepository,
161
199
  blob_storage_backend_service_1.BlobStorageBackendService, Object, postgresql_1.EntityManager])
162
200
  ], FileUploadsService);
163
201
  //# sourceMappingURL=file-uploads.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-uploads.service.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAqD;AACrD,sDAAwE;AACxE,2CAAgE;AAChE,mCAAoC;AACpC,uCAAoC;AACpC,kDAA0B;AAC1B,+BAAgD;AAGhD,wGAAkG;AAClG,2FAAiF;AAEjF,2DAA4D;AAC5D,qEAA2D;AAC3D,qFAAiF;AACjF,sEAA2D;AAE3D,qEAA+D;AAGxD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC3B,YACmD,UAAwC,EACjB,yBAAoD,EAC5E,MAAyB,EACtD,aAA4B;QAHE,eAAU,GAAV,UAAU,CAA8B;QACjB,8BAAyB,GAAzB,yBAAyB,CAA2B;QAC5E,WAAM,GAAN,MAAM,CAAmB;QACtD,kBAAa,GAAb,aAAa,CAAe;IAC9C,CAAC;IAEE,MAAM,CAAC,IAAqB;;YAC9B,MAAM,WAAW,GAAG,MAAM,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAEtF,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,IAAA,6BAAe,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAElD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBACtC,IAAI;gBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEvC,OAAO,UAAU,CAAC;QACtB,CAAC;KAAA;IAED,UAAU,CAAC,MAAoC;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,IAAI,GAAG,eAAe,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAExD,IAAI,MAAM,YAAY,0CAAW,EAAE,CAAC;YAChC,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxD,CAAC;QAED,OAAO,IAAA,mBAAU,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,iBAAiB,CAAC,IAAgB;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;SACV,CAAC,CAAC;QAEH,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc,CAAC,IAAgB,EAAE,WAAmB;QAChD,IAAI,CAAC,4BAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;YACP,WAAW;SACd,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAA,YAAK,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAEvC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,gBAAgB,CAAC,IAAgB;QAC7B,MAAM,OAAO,GAAG,IAAA,mBAAQ,EAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO;SACV,CAAC,CAAC;QAEH,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IAEK,cAAc,CAAC,IAAgB;;;YACjC,MAAM,QAAQ,GAAG,IAAA,0CAAgB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAEpG,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAE7F,MAAM,MAAM,GAAa,EAAE,CAAC;;gBAC5B,KAA0B,eAAA,KAAA,cAAA,MAAkB,CAAA,IAAA,sDAAE,CAAC;oBAArB,cAAkB;oBAAlB,WAAkB;oBAAjC,MAAM,KAAK,KAAA,CAAA;oBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrE,CAAC;;;;;;;;;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAEK,MAAM,CAAC,UAAsB;;YAC/B,MAAM,QAAQ,GAAG,IAAA,0CAAgB,EAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC1D,IAAI,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;KAAA;CACJ,CAAA;AAhHY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;IAGJ,WAAA,IAAA,yBAAgB,EAAC,+BAAU,CAAC,CAAA;IAC5B,WAAA,IAAA,eAAM,EAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wDAAyB,CAAC,CAAC,CAAA;IACnD,WAAA,IAAA,eAAM,EAAC,4CAAmB,CAAC,CAAA;qCAF+B,6BAAgB;QACsB,wDAAyB,UAE1F,0BAAa;GALxC,kBAAkB,CAgH9B"}
1
+ {"version":3,"file":"file-uploads.service.js","sourceRoot":"","sources":["../../src/file-uploads/file-uploads.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Migration } from '@mikro-orm/migrations';
2
+ export declare class Migration20251013081751 extends Migration {
3
+ up(): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=Migration20251013081751.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20251013081751.d.ts","sourceRoot":"","sources":["../../../src/mikro-orm/migrations/Migration20251013081751.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,uBAAwB,SAAQ,SAAS;IAErC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;CAInC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Migration20251013081751 = void 0;
13
+ const migrations_1 = require("@mikro-orm/migrations");
14
+ class Migration20251013081751 extends migrations_1.Migration {
15
+ up() {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ this.addSql(`alter table "CometFileUpload" add column "expiresAt" timestamp with time zone null;`);
18
+ });
19
+ }
20
+ }
21
+ exports.Migration20251013081751 = Migration20251013081751;
22
+ //# sourceMappingURL=Migration20251013081751.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migration20251013081751.js","sourceRoot":"","sources":["../../../src/mikro-orm/migrations/Migration20251013081751.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAkD;AAElD,MAAa,uBAAwB,SAAQ,sBAAS;IAErC,EAAE;;YACf,IAAI,CAAC,MAAM,CAAC,qFAAqF,CAAC,CAAC;QACrG,CAAC;KAAA;CAEF;AAND,0DAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm.module.d.ts","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,qBAAqB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAkCvD,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,qBAAqB,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE,CAyB7E;AAED,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAgD7I;AAED,qBACa,cAAc;IACvB,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,qBAAqB,GAAG,aAAa;CAcvG"}
1
+ {"version":3,"file":"mikro-orm.module.d.ts","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,qBAAqB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAmCvD,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,qBAAqB,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE,CAyB7E;AAED,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAiD7I;AAED,qBACa,cAAc;IACvB,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,qBAAqB,GAAG,aAAa;CAcvG"}
@@ -56,6 +56,7 @@ const Migration20250403134629_1 = require("./migrations/Migration20250403134629"
56
56
  const Migration20250612134629_1 = require("./migrations/Migration20250612134629");
57
57
  const Migration20250623085054_1 = require("./migrations/Migration20250623085054");
58
58
  const Migration20250623113026_1 = require("./migrations/Migration20250623113026");
59
+ const Migration20251013081751_1 = require("./migrations/Migration20251013081751");
59
60
  const Migration20251118143418_1 = require("./migrations/Migration20251118143418");
60
61
  function createMigrationsList(migrationsDir) {
61
62
  if (!fs_1.default.existsSync(migrationsDir)) {
@@ -111,6 +112,7 @@ function createOrmConfig(_a) {
111
112
  { name: "Migration20250623085054", class: Migration20250623085054_1.Migration20250623085054 },
112
113
  { name: "Migration20250623113026", class: Migration20250623113026_1.Migration20250623113026 },
113
114
  { name: "Migration20251118143418", class: Migration20251118143418_1.Migration20251118143418 },
115
+ { name: "Migration20251013081751", class: Migration20251013081751_1.Migration20251013081751 },
114
116
  ...((migrations === null || migrations === void 0 ? void 0 : migrations.migrationsList) || []),
115
117
  ].sort((migrationA, migrationB) => {
116
118
  if (migrationA.name < migrationB.name) {
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm.module.js","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mikro-orm.module.js","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"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"}