@comet/cms-api 9.0.0-canary-20251209132220 → 9.0.0-canary-20251209140438

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 (121) hide show
  1. package/lib/auth/guards/comet.guard.d.ts +2 -1
  2. package/lib/auth/guards/comet.guard.d.ts.map +1 -1
  3. package/lib/auth/guards/comet.guard.js +7 -3
  4. package/lib/auth/guards/comet.guard.js.map +1 -1
  5. package/lib/builds/build-templates.resolver.js +2 -2
  6. package/lib/builds/build-templates.resolver.js.map +1 -1
  7. package/lib/builds/builds.resolver.js +2 -2
  8. package/lib/builds/builds.resolver.js.map +1 -1
  9. package/lib/common/guards/cdn.guard.d.ts +2 -1
  10. package/lib/common/guards/cdn.guard.d.ts.map +1 -1
  11. package/lib/common/guards/cdn.guard.js +9 -3
  12. package/lib/common/guards/cdn.guard.js.map +1 -1
  13. package/lib/cron-jobs/cron-jobs.resolver.js +2 -2
  14. package/lib/cron-jobs/cron-jobs.resolver.js.map +1 -1
  15. package/lib/cron-jobs/jobs.resolver.js +2 -2
  16. package/lib/cron-jobs/jobs.resolver.js.map +1 -1
  17. package/lib/file-uploads/dto/file-upload.body.d.ts +4 -0
  18. package/lib/file-uploads/dto/file-upload.body.d.ts.map +1 -0
  19. package/lib/file-uploads/dto/file-upload.body.js +25 -0
  20. package/lib/file-uploads/dto/file-upload.body.js.map +1 -0
  21. package/lib/file-uploads/entities/file-upload.entity.d.ts +1 -0
  22. package/lib/file-uploads/entities/file-upload.entity.d.ts.map +1 -1
  23. package/lib/file-uploads/entities/file-upload.entity.js +9 -1
  24. package/lib/file-uploads/entities/file-upload.entity.js.map +1 -1
  25. package/lib/file-uploads/file-upload-expiration.subscriber.d.ts +12 -0
  26. package/lib/file-uploads/file-upload-expiration.subscriber.d.ts.map +1 -0
  27. package/lib/file-uploads/file-upload-expiration.subscriber.js +50 -0
  28. package/lib/file-uploads/file-upload-expiration.subscriber.js.map +1 -0
  29. package/lib/file-uploads/file-uploads-upload.controller.d.ts.map +1 -1
  30. package/lib/file-uploads/file-uploads-upload.controller.js +5 -3
  31. package/lib/file-uploads/file-uploads-upload.controller.js.map +1 -1
  32. package/lib/file-uploads/file-uploads.config.d.ts +8 -0
  33. package/lib/file-uploads/file-uploads.config.d.ts.map +1 -1
  34. package/lib/file-uploads/file-uploads.module.d.ts.map +1 -1
  35. package/lib/file-uploads/file-uploads.module.js +7 -1
  36. package/lib/file-uploads/file-uploads.module.js.map +1 -1
  37. package/lib/file-uploads/file-uploads.service.d.ts +8 -3
  38. package/lib/file-uploads/file-uploads.service.d.ts.map +1 -1
  39. package/lib/file-uploads/file-uploads.service.js +49 -6
  40. package/lib/file-uploads/file-uploads.service.js.map +1 -1
  41. package/lib/importer/data-streams/data-stream.d.ts +10 -0
  42. package/lib/importer/data-streams/data-stream.d.ts.map +1 -0
  43. package/lib/importer/data-streams/data-stream.js +7 -0
  44. package/lib/importer/data-streams/data-stream.js.map +1 -0
  45. package/lib/importer/data-streams/file-data-stream.d.ts +22 -0
  46. package/lib/importer/data-streams/file-data-stream.d.ts.map +1 -0
  47. package/lib/importer/data-streams/file-data-stream.js +16 -0
  48. package/lib/importer/data-streams/file-data-stream.js.map +1 -0
  49. package/lib/importer/data-streams/local-file-data-stream.d.ts +18 -0
  50. package/lib/importer/data-streams/local-file-data-stream.d.ts.map +1 -0
  51. package/lib/importer/data-streams/local-file-data-stream.js +99 -0
  52. package/lib/importer/data-streams/local-file-data-stream.js.map +1 -0
  53. package/lib/importer/decorators/csv-column.decorator.d.ts +35 -0
  54. package/lib/importer/decorators/csv-column.decorator.d.ts.map +1 -0
  55. package/lib/importer/decorators/csv-column.decorator.js +63 -0
  56. package/lib/importer/decorators/csv-column.decorator.js.map +1 -0
  57. package/lib/importer/import-target.interface.d.ts +6 -0
  58. package/lib/importer/import-target.interface.d.ts.map +1 -0
  59. package/lib/importer/import-target.interface.js +3 -0
  60. package/lib/importer/import-target.interface.js.map +1 -0
  61. package/lib/importer/importer-input.type.d.ts +4 -0
  62. package/lib/importer/importer-input.type.d.ts.map +1 -0
  63. package/lib/importer/importer-input.type.js +3 -0
  64. package/lib/importer/importer-input.type.js.map +1 -0
  65. package/lib/importer/pipes/end.pipe.d.ts +14 -0
  66. package/lib/importer/pipes/end.pipe.d.ts.map +1 -0
  67. package/lib/importer/pipes/end.pipe.js +19 -0
  68. package/lib/importer/pipes/end.pipe.js.map +1 -0
  69. package/lib/importer/pipes/importer-pipe.type.d.ts +19 -0
  70. package/lib/importer/pipes/importer-pipe.type.d.ts.map +1 -0
  71. package/lib/importer/pipes/importer-pipe.type.js +3 -0
  72. package/lib/importer/pipes/importer-pipe.type.js.map +1 -0
  73. package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.d.ts +13 -0
  74. package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.d.ts.map +1 -0
  75. package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.js +22 -0
  76. package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.js.map +1 -0
  77. package/lib/importer/pipes/parsers/csv-parser.pipe.d.ts +24 -0
  78. package/lib/importer/pipes/parsers/csv-parser.pipe.d.ts.map +1 -0
  79. package/lib/importer/pipes/parsers/csv-parser.pipe.js +98 -0
  80. package/lib/importer/pipes/parsers/csv-parser.pipe.js.map +1 -0
  81. package/lib/importer/pipes/parsers/data-transformer.pipe.d.ts +19 -0
  82. package/lib/importer/pipes/parsers/data-transformer.pipe.d.ts.map +1 -0
  83. package/lib/importer/pipes/parsers/data-transformer.pipe.js +51 -0
  84. package/lib/importer/pipes/parsers/data-transformer.pipe.js.map +1 -0
  85. package/lib/importer/pipes/parsers/data-validator.pipe.d.ts +15 -0
  86. package/lib/importer/pipes/parsers/data-validator.pipe.d.ts.map +1 -0
  87. package/lib/importer/pipes/parsers/data-validator.pipe.js +61 -0
  88. package/lib/importer/pipes/parsers/data-validator.pipe.js.map +1 -0
  89. package/lib/index.d.ts +9 -0
  90. package/lib/index.d.ts.map +1 -1
  91. package/lib/index.js +16 -2
  92. package/lib/index.js.map +1 -1
  93. package/lib/kubernetes/{prevent-local-invocation.guard.d.ts → kubernetes-authentication.guard.d.ts} +2 -2
  94. package/lib/kubernetes/kubernetes-authentication.guard.d.ts.map +1 -0
  95. package/lib/kubernetes/{prevent-local-invocation.guard.js → kubernetes-authentication.guard.js} +10 -10
  96. package/lib/kubernetes/kubernetes-authentication.guard.js.map +1 -0
  97. package/lib/kubernetes/kubernetes.module.d.ts +8 -2
  98. package/lib/kubernetes/kubernetes.module.d.ts.map +1 -1
  99. package/lib/kubernetes/kubernetes.module.js.map +1 -1
  100. package/lib/kubernetes/kubernetes.service.d.ts +2 -1
  101. package/lib/kubernetes/kubernetes.service.d.ts.map +1 -1
  102. package/lib/kubernetes/kubernetes.service.js +25 -17
  103. package/lib/kubernetes/kubernetes.service.js.map +1 -1
  104. package/lib/mikro-orm/migrations/Migration20251013081751.d.ts +5 -0
  105. package/lib/mikro-orm/migrations/Migration20251013081751.d.ts.map +1 -0
  106. package/lib/mikro-orm/migrations/Migration20251013081751.js +22 -0
  107. package/lib/mikro-orm/migrations/Migration20251013081751.js.map +1 -0
  108. package/lib/mikro-orm/mikro-orm.module.d.ts.map +1 -1
  109. package/lib/mikro-orm/mikro-orm.module.js +2 -0
  110. package/lib/mikro-orm/mikro-orm.module.js.map +1 -1
  111. package/lib/tsconfig.build.tsbuildinfo +1 -1
  112. package/lib/user-permissions/auth/user-permissions.guard.d.ts +2 -1
  113. package/lib/user-permissions/auth/user-permissions.guard.d.ts.map +1 -1
  114. package/lib/user-permissions/auth/user-permissions.guard.js +18 -8
  115. package/lib/user-permissions/auth/user-permissions.guard.js.map +1 -1
  116. package/lib/warnings/warning-checker.command.d.ts.map +1 -1
  117. package/lib/warnings/warning-checker.command.js +9 -11
  118. package/lib/warnings/warning-checker.command.js.map +1 -1
  119. package/package.json +16 -14
  120. package/lib/kubernetes/prevent-local-invocation.guard.d.ts.map +0 -1
  121. package/lib/kubernetes/prevent-local-invocation.guard.js.map +0 -1
@@ -47,24 +47,41 @@ 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;
55
56
  }
56
- upload(file) {
57
+ onApplicationBootstrap() {
58
+ // Delete expired files every minute
59
+ this.deleteExpiredFilesInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
60
+ try {
61
+ yield this.deleteExpiredFiles();
62
+ }
63
+ catch (error) {
64
+ console.error("Error while deleting expired files", error);
65
+ }
66
+ }), 60000);
67
+ }
68
+ beforeApplicationShutdown() {
69
+ clearInterval(this.deleteExpiredFilesInterval);
70
+ }
71
+ upload(file, expiresIn) {
57
72
  return __awaiter(this, void 0, void 0, function* () {
58
73
  const contentHash = yield hasha_1.default.fromFile(file.path, { algorithm: "md5" });
59
74
  yield this.blobStorageBackendService.upload(file, contentHash, this.config.directory);
60
75
  const extension = (0, path_1.extname)(file.originalname);
61
76
  const filename = (0, path_1.basename)(file.originalname, extension);
62
77
  const name = (0, files_utils_1.slugifyFilename)(filename, extension);
78
+ const expires = expiresIn || this.config.expiresIn;
63
79
  const fileUpload = this.repository.create({
64
80
  name,
65
81
  size: file.size,
66
82
  mimetype: file.mimetype,
67
83
  contentHash,
84
+ expiresAt: expires ? (0, date_fns_1.addSeconds)(new Date(), expires) : undefined,
68
85
  });
69
86
  this.entityManager.persist(fileUpload);
70
87
  return fileUpload;
@@ -150,14 +167,40 @@ let FileUploadsService = class FileUploadsService {
150
167
  this.entityManager.remove(fileUpload);
151
168
  });
152
169
  }
170
+ deleteExpiredFiles() {
171
+ return __awaiter(this, void 0, void 0, function* () {
172
+ let hasMore = false;
173
+ const limit = 100;
174
+ do {
175
+ const files = yield this.repository.find({
176
+ expiresAt: { $lt: new Date() },
177
+ }, {
178
+ limit,
179
+ offset: 0,
180
+ });
181
+ for (const file of files) {
182
+ yield this.delete(file);
183
+ }
184
+ hasMore = files.length === limit;
185
+ } while (hasMore);
186
+ yield this.entityManager.flush();
187
+ });
188
+ }
153
189
  };
154
190
  exports.FileUploadsService = FileUploadsService;
191
+ __decorate([
192
+ (0, postgresql_1.CreateRequestContext)(),
193
+ __metadata("design:type", Function),
194
+ __metadata("design:paramtypes", []),
195
+ __metadata("design:returntype", Promise)
196
+ ], FileUploadsService.prototype, "deleteExpiredFiles", null);
155
197
  exports.FileUploadsService = FileUploadsService = __decorate([
156
198
  (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,
199
+ __param(1, (0, nestjs_1.InjectRepository)(file_upload_entity_1.FileUpload)),
200
+ __param(2, (0, common_1.Inject)((0, common_1.forwardRef)(() => blob_storage_backend_service_1.BlobStorageBackendService))),
201
+ __param(3, (0, common_1.Inject)(file_uploads_constants_1.FILE_UPLOADS_CONFIG)),
202
+ __metadata("design:paramtypes", [postgresql_1.MikroORM,
203
+ postgresql_1.EntityRepository,
161
204
  blob_storage_backend_service_1.BlobStorageBackendService, Object, postgresql_1.EntityManager])
162
205
  ], FileUploadsService);
163
206
  //# 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,10 @@
1
+ import type { Readable } from "stream";
2
+ import type { PipeMetadata } from "../pipes/importer-pipe.type";
3
+ export type StreamChunkAndMetadata = {
4
+ chunk: Buffer | string;
5
+ metadata: PipeMetadata;
6
+ };
7
+ export declare abstract class ImporterDataStream {
8
+ abstract getDataStreamAndMetadata(): Promise<Readable | null>;
9
+ }
10
+ //# sourceMappingURL=data-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-stream.d.ts","sourceRoot":"","sources":["../../../src/importer/data-streams/data-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,MAAM,sBAAsB,GAAG;IACjC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;CAC1B,CAAC;AACF,8BAAsB,kBAAkB;IACpC,QAAQ,CAAC,wBAAwB,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAChE"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImporterDataStream = void 0;
4
+ class ImporterDataStream {
5
+ }
6
+ exports.ImporterDataStream = ImporterDataStream;
7
+ //# sourceMappingURL=data-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-stream.js","sourceRoot":"","sources":["../../../src/importer/data-streams/data-stream.ts"],"names":[],"mappings":";;;AAQA,MAAsB,kBAAkB;CAEvC;AAFD,gDAEC"}
@@ -0,0 +1,22 @@
1
+ import { type ReadStream } from "node:fs";
2
+ import { type SdkStream } from "@smithy/types";
3
+ import { type IncomingMessage } from "http";
4
+ import { ImporterDataStream } from "./data-stream";
5
+ type FileStream = SdkStream<IncomingMessage> | ReadStream;
6
+ interface FileStreamAndSize {
7
+ fileStream: FileStream;
8
+ fileName?: string;
9
+ fileSize?: number;
10
+ }
11
+ export type FileStreamAndMetadata = {
12
+ dataStream: FileStream;
13
+ metadata: {
14
+ fileName?: string;
15
+ fileSize?: number;
16
+ };
17
+ };
18
+ export declare abstract class FileDataStream extends ImporterDataStream {
19
+ getFileStreamResult(fileStreamAndSize: FileStreamAndSize): FileStreamAndMetadata;
20
+ }
21
+ export {};
22
+ //# sourceMappingURL=file-data-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-data-stream.d.ts","sourceRoot":"","sources":["../../../src/importer/data-streams/file-data-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,KAAK,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC;AAE1D,UAAU,iBAAiB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE;QACN,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,8BAAsB,cAAe,SAAQ,kBAAkB;IAC3D,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB;CAQnF"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileDataStream = void 0;
4
+ const data_stream_1 = require("./data-stream");
5
+ class FileDataStream extends data_stream_1.ImporterDataStream {
6
+ getFileStreamResult(fileStreamAndSize) {
7
+ return {
8
+ dataStream: fileStreamAndSize.fileStream,
9
+ metadata: {
10
+ fileName: fileStreamAndSize.fileName,
11
+ },
12
+ };
13
+ }
14
+ }
15
+ exports.FileDataStream = FileDataStream;
16
+ //# sourceMappingURL=file-data-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-data-stream.js","sourceRoot":"","sources":["../../../src/importer/data-streams/file-data-stream.ts"],"names":[],"mappings":";;;AAKA,+CAAmD;AAkBnD,MAAsB,cAAe,SAAQ,gCAAkB;IAC3D,mBAAmB,CAAC,iBAAoC;QACpD,OAAO;YACH,UAAU,EAAE,iBAAiB,CAAC,UAAU;YACxC,QAAQ,EAAE;gBACN,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;aACvC;SACJ,CAAC;IACN,CAAC;CACJ;AATD,wCASC"}
@@ -0,0 +1,18 @@
1
+ import { Readable } from "node:stream";
2
+ import { FileDataStream } from "./file-data-stream";
3
+ export declare class ImporterLocalFileDataStream extends FileDataStream {
4
+ private readonly logger;
5
+ fileKey: string;
6
+ constructor(fileKey: string);
7
+ getDataStreamAndMetadata(): Promise<Readable | null>;
8
+ private generateFileIterator;
9
+ protected getFileStreamAndSizeOfLocalFile({ filePath, encoding }: {
10
+ filePath?: string;
11
+ encoding?: BufferEncoding;
12
+ }): Promise<{
13
+ fileSize: number;
14
+ fileStream: import("fs").ReadStream;
15
+ fileName: string;
16
+ } | null>;
17
+ }
18
+ //# sourceMappingURL=local-file-data-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-data-stream.d.ts","sourceRoot":"","sources":["../../../src/importer/data-streams/local-file-data-stream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMvC,OAAO,EAAE,cAAc,EAA8B,MAAM,oBAAoB,CAAC;AAEhF,qBAAa,2BAA4B,SAAQ,cAAc;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM;IAKrB,wBAAwB;YAUf,oBAAoB;cASnB,+BAA+B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAE;;;;;CAiB3H"}
@@ -0,0 +1,99 @@
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
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
19
+ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
20
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
21
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
22
+ return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
23
+ function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
24
+ function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
25
+ function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
26
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
27
+ function fulfill(value) { resume("next", value); }
28
+ function reject(value) { resume("throw", value); }
29
+ function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
30
+ };
31
+ var __importDefault = (this && this.__importDefault) || function (mod) {
32
+ return (mod && mod.__esModule) ? mod : { "default": mod };
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.ImporterLocalFileDataStream = void 0;
36
+ const node_fs_1 = require("node:fs");
37
+ const node_stream_1 = require("node:stream");
38
+ const common_1 = require("@nestjs/common");
39
+ const path_1 = __importDefault(require("path"));
40
+ const file_data_stream_1 = require("./file-data-stream");
41
+ class ImporterLocalFileDataStream extends file_data_stream_1.FileDataStream {
42
+ constructor(fileKey) {
43
+ super();
44
+ this.logger = new common_1.Logger();
45
+ this.fileKey = fileKey;
46
+ }
47
+ getDataStreamAndMetadata() {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ const dataStreamAndSize = yield this.getFileStreamAndSizeOfLocalFile({ filePath: this.fileKey });
50
+ if (!dataStreamAndSize) {
51
+ return null;
52
+ }
53
+ const fileStreamAndMetadata = yield this.getFileStreamResult(dataStreamAndSize);
54
+ return node_stream_1.Readable.from(this.generateFileIterator(fileStreamAndMetadata));
55
+ });
56
+ }
57
+ generateFileIterator(fileStreamAndMetadata) {
58
+ return __asyncGenerator(this, arguments, function* generateFileIterator_1() {
59
+ var _a, e_1, _b, _c;
60
+ const { dataStream, metadata } = fileStreamAndMetadata;
61
+ try {
62
+ for (var _d = true, dataStream_1 = __asyncValues(dataStream), dataStream_1_1; dataStream_1_1 = yield __await(dataStream_1.next()), _a = dataStream_1_1.done, !_a; _d = true) {
63
+ _c = dataStream_1_1.value;
64
+ _d = false;
65
+ const chunk = _c;
66
+ const chunkAndMetadata = { chunk, metadata };
67
+ yield yield __await(chunkAndMetadata);
68
+ }
69
+ }
70
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
71
+ finally {
72
+ try {
73
+ if (!_d && !_a && (_b = dataStream_1.return)) yield __await(_b.call(dataStream_1));
74
+ }
75
+ finally { if (e_1) throw e_1.error; }
76
+ }
77
+ });
78
+ }
79
+ getFileStreamAndSizeOfLocalFile(_a) {
80
+ return __awaiter(this, arguments, void 0, function* ({ filePath, encoding }) {
81
+ if (!filePath) {
82
+ this.logger.error(`File ${filePath} does not exist`);
83
+ return null;
84
+ }
85
+ // check if file exists
86
+ if (!(0, node_fs_1.existsSync)(filePath)) {
87
+ this.logger.error(`File ${filePath} does not exist`);
88
+ return null;
89
+ }
90
+ const fileSize = (0, node_fs_1.statSync)(filePath).size;
91
+ // gzip file must be read as binary, without encoding
92
+ const fileStream = (0, node_fs_1.createReadStream)(filePath, filePath.endsWith(".gz") && !encoding ? {} : { encoding: encoding || "utf-8" });
93
+ this.logger.log(`Providing fileStreams for local file (${filePath} fileSize: ${fileSize}).`);
94
+ return { fileSize, fileStream, fileName: path_1.default.basename(filePath) };
95
+ });
96
+ }
97
+ }
98
+ exports.ImporterLocalFileDataStream = ImporterLocalFileDataStream;
99
+ //# sourceMappingURL=local-file-data-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-data-stream.js","sourceRoot":"","sources":["../../../src/importer/data-streams/local-file-data-stream.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAiE;AACjE,6CAAuC;AAEvC,2CAAwC;AACxC,gDAAwB;AAGxB,yDAAgF;AAEhF,MAAa,2BAA4B,SAAQ,iCAAc;IAI3D,YAAY,OAAe;QACvB,KAAK,EAAE,CAAC;QAJK,WAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAKnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEK,wBAAwB;;YAC1B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAEhF,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC3E,CAAC;KAAA;IAEc,oBAAoB,CAAC,qBAA4C;;;YAC5E,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAAC;;gBAEvD,KAA0B,eAAA,eAAA,cAAA,UAAU,CAAA,gBAAA,iGAAE,CAAC;oBAAb,0BAAU;oBAAV,WAAU;oBAAzB,MAAM,KAAK,KAAA,CAAA;oBAClB,MAAM,gBAAgB,GAA2B,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;oBACrE,oBAAM,gBAAgB,CAAA,CAAC;gBAC3B,CAAC;;;;;;;;;QACL,CAAC;KAAA;IAEe,+BAA+B;6DAAC,EAAE,QAAQ,EAAE,QAAQ,EAAoD;YACpH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,uBAAuB;YACvB,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,QAAQ,iBAAiB,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,MAAM,QAAQ,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACzC,qDAAqD;YACrD,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAC,CAAC;YAC9H,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,QAAQ,cAAc,QAAQ,IAAI,CAAC,CAAC;YAC7F,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvE,CAAC;KAAA;CACJ;AA7CD,kEA6CC"}
@@ -0,0 +1,35 @@
1
+ import { type ImporterInputClass } from "../importer-input.type";
2
+ export declare enum CsvColumnType {
3
+ String = "String",
4
+ Integer = "Integer",
5
+ Float = "Float",
6
+ Boolean = "Boolean",
7
+ DateTime = "DateTime"
8
+ }
9
+ interface ParsingOptions {
10
+ valueMapping?: ValueMapping;
11
+ dateFormatString?: string;
12
+ type?: CsvColumnType;
13
+ transform?: (value: string) => unknown;
14
+ }
15
+ export interface ImportFieldMetadata extends ParsingOptions {
16
+ key: string;
17
+ fieldPath: string;
18
+ fieldName: string | number;
19
+ }
20
+ interface ValueMapping {
21
+ [key: string]: boolean;
22
+ }
23
+ /**
24
+ * Decorator to define a CSV column for an entity property. It defines the mapping between csv column and entity property.
25
+ * @param {string} fieldName The name/header of the column in the csv file.
26
+ * @param {ParsingOptions} parsingOptions - {@link ParsingOptions} Parsing options for the CSV column.
27
+ * -------------------
28
+ * *ParsingOptions:*
29
+ * @property {{@link valueMapping}} valueMapping - A map defining boolean value representations
30
+ * @property {string} dateFormatString - date-fns format string for parsing this column
31
+ */
32
+ export declare const CsvColumn: (fieldName: string | number, parsingOptions?: Partial<ParsingOptions>) => (target: any, key: string) => void;
33
+ export declare const getFieldMetadata: (entity: ImporterInputClass) => ImportFieldMetadata[];
34
+ export {};
35
+ //# sourceMappingURL=csv-column.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-column.decorator.d.ts","sourceRoot":"","sources":["../../../src/importer/decorators/csv-column.decorator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,oBAAY,aAAa;IACrB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;CACxB;AAED,UAAU,cAAc;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AACD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B;AACD,UAAU,YAAY;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,WAAW,MAAM,GAAG,MAAM,EAAE,iBAAgB,OAAO,CAAC,cAAc,CAAM,MAG7E,QAAQ,GAAG,EAAE,KAAK,MAAM,SA8B5C,CAAC;AACF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,kBAAkB,KACD,mBAAmB,EAC5E,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFieldMetadata = exports.CsvColumn = exports.CsvColumnType = void 0;
4
+ const class_transformer_1 = require("class-transformer");
5
+ const date_fns_1 = require("date-fns");
6
+ var CsvColumnType;
7
+ (function (CsvColumnType) {
8
+ CsvColumnType["String"] = "String";
9
+ CsvColumnType["Integer"] = "Integer";
10
+ CsvColumnType["Float"] = "Float";
11
+ CsvColumnType["Boolean"] = "Boolean";
12
+ CsvColumnType["DateTime"] = "DateTime";
13
+ })(CsvColumnType || (exports.CsvColumnType = CsvColumnType = {}));
14
+ const defaultValueMapping = { true: true, false: false };
15
+ const metadataKey = "fields";
16
+ /**
17
+ * Decorator to define a CSV column for an entity property. It defines the mapping between csv column and entity property.
18
+ * @param {string} fieldName The name/header of the column in the csv file.
19
+ * @param {ParsingOptions} parsingOptions - {@link ParsingOptions} Parsing options for the CSV column.
20
+ * -------------------
21
+ * *ParsingOptions:*
22
+ * @property {{@link valueMapping}} valueMapping - A map defining boolean value representations
23
+ * @property {string} dateFormatString - date-fns format string for parsing this column
24
+ */
25
+ const CsvColumn = (fieldName, parsingOptions = {}) => {
26
+ const { valueMapping, dateFormatString, type, transform } = parsingOptions;
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ return function (target, key) {
29
+ const fields = Reflect.getOwnMetadata(metadataKey, target.constructor) || (Reflect.getMetadata(metadataKey, target.constructor) || []).slice(0);
30
+ fields.push({ key, fieldPath: key, fieldName, valueMapping, dateFormatString, type });
31
+ Reflect.defineMetadata(metadataKey, fields, target.constructor);
32
+ (0, class_transformer_1.Transform)(({ value }) => {
33
+ if (transform) {
34
+ return transform(value);
35
+ }
36
+ if (type === CsvColumnType.Boolean) {
37
+ const valueMapping = parsingOptions.valueMapping || defaultValueMapping;
38
+ return valueMapping[value];
39
+ }
40
+ if (type === CsvColumnType.Integer) {
41
+ return parseInt(value);
42
+ }
43
+ if (type === CsvColumnType.Float) {
44
+ return parseFloat(value);
45
+ }
46
+ if (type === CsvColumnType.DateTime) {
47
+ if (dateFormatString) {
48
+ return (0, date_fns_1.parse)(value, dateFormatString, new Date());
49
+ }
50
+ else {
51
+ return (0, date_fns_1.parseISO)(value);
52
+ }
53
+ }
54
+ return value;
55
+ })(target, key);
56
+ };
57
+ };
58
+ exports.CsvColumn = CsvColumn;
59
+ const getFieldMetadata = (entity) => {
60
+ return Reflect.getOwnMetadata(metadataKey, entity);
61
+ };
62
+ exports.getFieldMetadata = getFieldMetadata;
63
+ //# sourceMappingURL=csv-column.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-column.decorator.js","sourceRoot":"","sources":["../../../src/importer/decorators/csv-column.decorator.ts"],"names":[],"mappings":";;;AAAA,yDAA8C;AAC9C,uCAA2C;AAI3C,IAAY,aAMX;AAND,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;AACzB,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAiBD,MAAM,mBAAmB,GAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAClF,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B;;;;;;;;GAQG;AACI,MAAM,SAAS,GAAG,CAAC,SAA0B,EAAE,iBAA0C,EAAE,EAAE,EAAE;IAClG,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;IAC3E,+DAA+D;IAC/D,OAAO,UAAU,MAAW,EAAE,GAAW;QACrC,MAAM,MAAM,GACR,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QAEhE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,IAAI,mBAAmB,CAAC;gBACxE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,IAAI,IAAI,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,KAAK,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAClC,IAAI,gBAAgB,EAAE,CAAC;oBACnB,OAAO,IAAA,gBAAK,EAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACJ,OAAO,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACL,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;AACN,CAAC,CAAC;AAjCW,QAAA,SAAS,aAiCpB;AACK,MAAM,gBAAgB,GAAG,CAAC,MAA0B,EAAE,EAAE;IAC3D,OAAO,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAA0B,CAAC;AAChF,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
@@ -0,0 +1,6 @@
1
+ export type ImportTargetInterface = {
2
+ id: string;
3
+ createdAt?: Date;
4
+ updatedAt?: Date;
5
+ };
6
+ //# sourceMappingURL=import-target.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-target.interface.d.ts","sourceRoot":"","sources":["../../src/importer/import-target.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=import-target.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-target.interface.js","sourceRoot":"","sources":["../../src/importer/import-target.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export type ImporterInputClass = {
2
+ new (): object;
3
+ };
4
+ //# sourceMappingURL=importer-input.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer-input.type.d.ts","sourceRoot":"","sources":["../../src/importer/importer-input.type.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=importer-input.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer-input.type.js","sourceRoot":"","sources":["../../src/importer/importer-input.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { Transform, type TransformCallback } from "stream";
2
+ import { type ImporterPipe } from "./importer-pipe.type";
3
+ export declare class ImporterEndPipe implements ImporterPipe {
4
+ getPipe(): EndHandler;
5
+ }
6
+ declare class EndHandler extends Transform {
7
+ constructor();
8
+ _transform(inputData: {
9
+ chunk: Buffer | string;
10
+ metadata: Record<string, unknown>;
11
+ }, encoding: BufferEncoding, callback: TransformCallback): void;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=end.pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end.pipe.d.ts","sourceRoot":"","sources":["../../../src/importer/pipes/end.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,eAAgB,YAAW,YAAY;IAChD,OAAO;CAGV;AAED,cAAM,UAAW,SAAQ,SAAS;;IAK9B,UAAU,CAAC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB;CAG7I"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImporterEndPipe = void 0;
4
+ const stream_1 = require("stream");
5
+ class ImporterEndPipe {
6
+ getPipe() {
7
+ return new EndHandler();
8
+ }
9
+ }
10
+ exports.ImporterEndPipe = ImporterEndPipe;
11
+ class EndHandler extends stream_1.Transform {
12
+ constructor() {
13
+ super({ writableObjectMode: true, objectMode: true });
14
+ }
15
+ _transform(inputData, encoding, callback) {
16
+ callback();
17
+ }
18
+ }
19
+ //# sourceMappingURL=end.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end.pipe.js","sourceRoot":"","sources":["../../../src/importer/pipes/end.pipe.ts"],"names":[],"mappings":";;;AAAA,mCAA2D;AAI3D,MAAa,eAAe;IACxB,OAAO;QACH,OAAO,IAAI,UAAU,EAAE,CAAC;IAC5B,CAAC;CACJ;AAJD,0CAIC;AAED,MAAM,UAAW,SAAQ,kBAAS;IAC9B;QACI,KAAK,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,SAAwE,EAAE,QAAwB,EAAE,QAA2B;QACtI,QAAQ,EAAE,CAAC;IACf,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ import { type LoggerService } from "@nestjs/common";
2
+ import { type ValidationError as ClassValidationError } from "class-validator";
3
+ import { type Transform } from "stream";
4
+ export type PipeData = Record<string, unknown>;
5
+ export type PipeMetadata = Record<string, unknown>;
6
+ type ParserOptions = Record<string, unknown>;
7
+ export interface ValidationError extends ClassValidationError {
8
+ name?: string | number;
9
+ errorMessage: string;
10
+ value?: string;
11
+ }
12
+ export type ImporterPipe = {
13
+ getPipe(logger: LoggerService, options?: ParserOptions): Transform;
14
+ };
15
+ export type CompositeImporterPipe = {
16
+ getPipes(logger: LoggerService, options: ParserOptions): Transform[];
17
+ };
18
+ export {};
19
+ //# sourceMappingURL=importer-pipe.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer-pipe.type.d.ts","sourceRoot":"","sources":["../../../src/importer/pipes/importer-pipe.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,IAAI,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7C,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IACzD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,CAAC;CACxE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=importer-pipe.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importer-pipe.type.js","sourceRoot":"","sources":["../../../src/importer/pipes/importer-pipe.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { type Connection, type EntityManager, type IDatabaseDriver } from "@mikro-orm/core";
2
+ import { type LoggerService } from "@nestjs/common";
3
+ import { type Transform } from "stream";
4
+ import { type ImporterInputClass } from "../../importer-input.type";
5
+ import { type CompositeImporterPipe } from "../importer-pipe.type";
6
+ import { type CsvParserOptions } from "./csv-parser.pipe";
7
+ export declare class ImporterCsvParseAndTransformPipes implements CompositeImporterPipe {
8
+ private readonly inputClass;
9
+ private readonly fields;
10
+ constructor(inputClass: ImporterInputClass, em: EntityManager<IDatabaseDriver<Connection>>);
11
+ getPipes(logger: LoggerService, parserOptions: CsvParserOptions): Transform[];
12
+ }
13
+ //# sourceMappingURL=csv-parser-and-transform.composite-pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-parser-and-transform.composite-pipe.d.ts","sourceRoot":"","sources":["../../../../src/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIxE,qBAAa,iCAAkC,YAAW,qBAAqB;IAIvE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAG1B,UAAU,EAAE,kBAAkB,EAC/C,EAAE,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAKlD,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,GAAG,SAAS,EAAE;CAQhF"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ImporterCsvParseAndTransformPipes = void 0;
4
+ const csv_column_decorator_1 = require("../../decorators/csv-column.decorator");
5
+ const csv_parser_pipe_1 = require("./csv-parser.pipe");
6
+ const data_transformer_pipe_1 = require("./data-transformer.pipe");
7
+ const data_validator_pipe_1 = require("./data-validator.pipe");
8
+ class ImporterCsvParseAndTransformPipes {
9
+ constructor(inputClass, em) {
10
+ this.inputClass = inputClass;
11
+ this.fields = (0, csv_column_decorator_1.getFieldMetadata)(inputClass);
12
+ }
13
+ getPipes(logger, parserOptions) {
14
+ const parserPipe = new csv_parser_pipe_1.CsvParsePipe(parserOptions, this.fields).getPipe();
15
+ const transformPipe = new data_transformer_pipe_1.DataTransformerPipe(this.inputClass).getPipe(logger);
16
+ const validatorPipe = new data_validator_pipe_1.DataValidatorPipe().getPipe(logger);
17
+ const pipes = [parserPipe, transformPipe, validatorPipe];
18
+ return pipes;
19
+ }
20
+ }
21
+ exports.ImporterCsvParseAndTransformPipes = ImporterCsvParseAndTransformPipes;
22
+ //# sourceMappingURL=csv-parser-and-transform.composite-pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-parser-and-transform.composite-pipe.js","sourceRoot":"","sources":["../../../../src/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.ts"],"names":[],"mappings":";;;AAIA,gFAAmG;AAGnG,uDAAwE;AACxE,mEAA8D;AAC9D,+DAA0D;AAE1D,MAAa,iCAAiC;IAG1C,YACqB,UAA8B,EAC/C,EAA8C;QAD7B,eAAU,GAAV,UAAU,CAAoB;QAG/C,IAAI,CAAC,MAAM,GAAG,IAAA,uCAAgB,EAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,QAAQ,CAAC,MAAqB,EAAE,aAA+B;QAC3D,MAAM,UAAU,GAAG,IAAI,8BAAY,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1E,MAAM,aAAa,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAG,IAAI,uCAAiB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAlBD,8EAkBC"}
@@ -0,0 +1,24 @@
1
+ import { type ParserOptionsArgs } from "@fast-csv/parse";
2
+ import { Transform, type TransformCallback } from "stream";
3
+ import { type ImportFieldMetadata } from "../../decorators/csv-column.decorator";
4
+ import { type ImporterPipe, type PipeMetadata } from "../importer-pipe.type";
5
+ export type CsvParserOptions = Omit<ParserOptionsArgs, "encoding"> & {
6
+ encoding: BufferEncoding;
7
+ };
8
+ export declare class CsvParsePipe implements ImporterPipe {
9
+ private readonly parserOptions;
10
+ constructor(parserOptions: CsvParserOptions, csvColumns: ImportFieldMetadata[]);
11
+ getPipe(): CsvParser;
12
+ private getParserOptions;
13
+ }
14
+ export declare class CsvParser extends Transform {
15
+ private readonly options;
16
+ private parser;
17
+ constructor(options: CsvParserOptions);
18
+ _transform(input: {
19
+ chunk: Buffer | string;
20
+ metadata: PipeMetadata;
21
+ }, encoding: BufferEncoding, callback: TransformCallback): void;
22
+ _flush(callback: TransformCallback): void;
23
+ }
24
+ //# sourceMappingURL=csv-parser.pipe.d.ts.map