@comet/cms-api 9.0.0-canary-20251209132220 → 9.0.0-canary-20251211112608
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/auth/guards/comet.guard.d.ts +2 -1
- package/lib/auth/guards/comet.guard.d.ts.map +1 -1
- package/lib/auth/guards/comet.guard.js +7 -3
- package/lib/auth/guards/comet.guard.js.map +1 -1
- package/lib/builds/build-templates.resolver.js +2 -2
- package/lib/builds/build-templates.resolver.js.map +1 -1
- package/lib/builds/builds.resolver.js +2 -2
- package/lib/builds/builds.resolver.js.map +1 -1
- package/lib/common/guards/cdn.guard.d.ts +2 -1
- package/lib/common/guards/cdn.guard.d.ts.map +1 -1
- package/lib/common/guards/cdn.guard.js +9 -3
- package/lib/common/guards/cdn.guard.js.map +1 -1
- package/lib/cron-jobs/cron-jobs.resolver.js +2 -2
- package/lib/cron-jobs/cron-jobs.resolver.js.map +1 -1
- package/lib/cron-jobs/cron-jobs.service.d.ts.map +1 -1
- package/lib/cron-jobs/cron-jobs.service.js +3 -2
- package/lib/cron-jobs/cron-jobs.service.js.map +1 -1
- package/lib/cron-jobs/dto/cron-job.object.d.ts +1 -0
- package/lib/cron-jobs/dto/cron-job.object.d.ts.map +1 -1
- package/lib/cron-jobs/dto/cron-job.object.js +4 -0
- package/lib/cron-jobs/dto/cron-job.object.js.map +1 -1
- package/lib/cron-jobs/jobs.resolver.js +2 -2
- package/lib/cron-jobs/jobs.resolver.js.map +1 -1
- package/lib/file-uploads/dto/file-upload.body.d.ts +4 -0
- package/lib/file-uploads/dto/file-upload.body.d.ts.map +1 -0
- package/lib/file-uploads/dto/file-upload.body.js +25 -0
- package/lib/file-uploads/dto/file-upload.body.js.map +1 -0
- package/lib/file-uploads/entities/file-upload.entity.d.ts +1 -0
- package/lib/file-uploads/entities/file-upload.entity.d.ts.map +1 -1
- package/lib/file-uploads/entities/file-upload.entity.js +9 -1
- package/lib/file-uploads/entities/file-upload.entity.js.map +1 -1
- package/lib/file-uploads/file-upload-expiration.subscriber.d.ts +12 -0
- package/lib/file-uploads/file-upload-expiration.subscriber.d.ts.map +1 -0
- package/lib/file-uploads/file-upload-expiration.subscriber.js +50 -0
- package/lib/file-uploads/file-upload-expiration.subscriber.js.map +1 -0
- package/lib/file-uploads/file-uploads-upload.controller.d.ts.map +1 -1
- package/lib/file-uploads/file-uploads-upload.controller.js +5 -3
- package/lib/file-uploads/file-uploads-upload.controller.js.map +1 -1
- package/lib/file-uploads/file-uploads.config.d.ts +8 -0
- package/lib/file-uploads/file-uploads.config.d.ts.map +1 -1
- package/lib/file-uploads/file-uploads.module.d.ts.map +1 -1
- package/lib/file-uploads/file-uploads.module.js +7 -1
- package/lib/file-uploads/file-uploads.module.js.map +1 -1
- package/lib/file-uploads/file-uploads.service.d.ts +8 -3
- package/lib/file-uploads/file-uploads.service.d.ts.map +1 -1
- package/lib/file-uploads/file-uploads.service.js +49 -6
- package/lib/file-uploads/file-uploads.service.js.map +1 -1
- package/lib/importer/data-streams/data-stream.d.ts +10 -0
- package/lib/importer/data-streams/data-stream.d.ts.map +1 -0
- package/lib/importer/data-streams/data-stream.js +7 -0
- package/lib/importer/data-streams/data-stream.js.map +1 -0
- package/lib/importer/data-streams/file-data-stream.d.ts +22 -0
- package/lib/importer/data-streams/file-data-stream.d.ts.map +1 -0
- package/lib/importer/data-streams/file-data-stream.js +16 -0
- package/lib/importer/data-streams/file-data-stream.js.map +1 -0
- package/lib/importer/data-streams/local-file-data-stream.d.ts +18 -0
- package/lib/importer/data-streams/local-file-data-stream.d.ts.map +1 -0
- package/lib/importer/data-streams/local-file-data-stream.js +99 -0
- package/lib/importer/data-streams/local-file-data-stream.js.map +1 -0
- package/lib/importer/decorators/csv-column.decorator.d.ts +35 -0
- package/lib/importer/decorators/csv-column.decorator.d.ts.map +1 -0
- package/lib/importer/decorators/csv-column.decorator.js +63 -0
- package/lib/importer/decorators/csv-column.decorator.js.map +1 -0
- package/lib/importer/import-target.interface.d.ts +6 -0
- package/lib/importer/import-target.interface.d.ts.map +1 -0
- package/lib/importer/import-target.interface.js +3 -0
- package/lib/importer/import-target.interface.js.map +1 -0
- package/lib/importer/importer-input.type.d.ts +4 -0
- package/lib/importer/importer-input.type.d.ts.map +1 -0
- package/lib/importer/importer-input.type.js +3 -0
- package/lib/importer/importer-input.type.js.map +1 -0
- package/lib/importer/pipes/end.pipe.d.ts +14 -0
- package/lib/importer/pipes/end.pipe.d.ts.map +1 -0
- package/lib/importer/pipes/end.pipe.js +19 -0
- package/lib/importer/pipes/end.pipe.js.map +1 -0
- package/lib/importer/pipes/importer-pipe.type.d.ts +19 -0
- package/lib/importer/pipes/importer-pipe.type.d.ts.map +1 -0
- package/lib/importer/pipes/importer-pipe.type.js +3 -0
- package/lib/importer/pipes/importer-pipe.type.js.map +1 -0
- package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.d.ts +13 -0
- package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.d.ts.map +1 -0
- package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.js +22 -0
- package/lib/importer/pipes/parsers/csv-parser-and-transform.composite-pipe.js.map +1 -0
- package/lib/importer/pipes/parsers/csv-parser.pipe.d.ts +24 -0
- package/lib/importer/pipes/parsers/csv-parser.pipe.d.ts.map +1 -0
- package/lib/importer/pipes/parsers/csv-parser.pipe.js +98 -0
- package/lib/importer/pipes/parsers/csv-parser.pipe.js.map +1 -0
- package/lib/importer/pipes/parsers/data-transformer.pipe.d.ts +19 -0
- package/lib/importer/pipes/parsers/data-transformer.pipe.d.ts.map +1 -0
- package/lib/importer/pipes/parsers/data-transformer.pipe.js +51 -0
- package/lib/importer/pipes/parsers/data-transformer.pipe.js.map +1 -0
- package/lib/importer/pipes/parsers/data-validator.pipe.d.ts +15 -0
- package/lib/importer/pipes/parsers/data-validator.pipe.d.ts.map +1 -0
- package/lib/importer/pipes/parsers/data-validator.pipe.js +61 -0
- package/lib/importer/pipes/parsers/data-validator.pipe.js.map +1 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +16 -2
- package/lib/index.js.map +1 -1
- package/lib/kubernetes/{prevent-local-invocation.guard.d.ts → kubernetes-authentication.guard.d.ts} +2 -2
- package/lib/kubernetes/kubernetes-authentication.guard.d.ts.map +1 -0
- package/lib/kubernetes/{prevent-local-invocation.guard.js → kubernetes-authentication.guard.js} +10 -10
- package/lib/kubernetes/kubernetes-authentication.guard.js.map +1 -0
- package/lib/kubernetes/kubernetes.module.d.ts +8 -2
- package/lib/kubernetes/kubernetes.module.d.ts.map +1 -1
- package/lib/kubernetes/kubernetes.module.js.map +1 -1
- package/lib/kubernetes/kubernetes.service.d.ts +2 -1
- package/lib/kubernetes/kubernetes.service.d.ts.map +1 -1
- package/lib/kubernetes/kubernetes.service.js +25 -17
- package/lib/kubernetes/kubernetes.service.js.map +1 -1
- package/lib/mikro-orm/migrations/Migration20251013081751.d.ts +5 -0
- package/lib/mikro-orm/migrations/Migration20251013081751.d.ts.map +1 -0
- package/lib/mikro-orm/migrations/Migration20251013081751.js +22 -0
- package/lib/mikro-orm/migrations/Migration20251013081751.js.map +1 -0
- package/lib/mikro-orm/mikro-orm.module.d.ts.map +1 -1
- package/lib/mikro-orm/mikro-orm.module.js +2 -0
- package/lib/mikro-orm/mikro-orm.module.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/lib/user-permissions/auth/user-permissions.guard.d.ts +2 -1
- package/lib/user-permissions/auth/user-permissions.guard.d.ts.map +1 -1
- package/lib/user-permissions/auth/user-permissions.guard.js +18 -8
- package/lib/user-permissions/auth/user-permissions.guard.js.map +1 -1
- package/lib/warnings/warning-checker.command.d.ts.map +1 -1
- package/lib/warnings/warning-checker.command.js +9 -11
- package/lib/warnings/warning-checker.command.js.map +1 -1
- package/package.json +16 -14
- package/lib/kubernetes/prevent-local-invocation.guard.d.ts.map +0 -1
- package/lib/kubernetes/prevent-local-invocation.guard.js.map +0 -1
|
@@ -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 = [
|
|
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;
|
|
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,26 @@
|
|
|
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
|
-
|
|
13
|
-
|
|
13
|
+
private deleteExpiredFilesInterval;
|
|
14
|
+
constructor(orm: MikroORM, repository: EntityRepository<FileUpload>, blobStorageBackendService: BlobStorageBackendService, config: FileUploadsConfig, entityManager: EntityManager);
|
|
15
|
+
onApplicationBootstrap(): void;
|
|
16
|
+
beforeApplicationShutdown(): void;
|
|
17
|
+
upload(file: FileUploadInput, expiresIn?: number): Promise<FileUpload>;
|
|
14
18
|
createHash(params: DownloadParams | ImageParams): string;
|
|
15
19
|
createDownloadUrl(file: FileUpload): string;
|
|
16
20
|
createImageUrl(file: FileUpload, resizeWidth: number): string | undefined;
|
|
17
21
|
createPreviewUrl(file: FileUpload): string;
|
|
18
22
|
getFileContent(file: FileUpload): Promise<Buffer>;
|
|
19
23
|
delete(fileUpload: FileUpload): Promise<void>;
|
|
24
|
+
deleteExpiredFiles(): Promise<void>;
|
|
20
25
|
}
|
|
21
26
|
//# 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,
|
|
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;IAIvB,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;IAPlC,OAAO,CAAC,0BAA0B,CAAiB;gBAG9B,GAAG,EAAE,QAAQ,EACiB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACjB,yBAAyB,EAAE,yBAAyB,EAC5E,MAAM,EAAE,iBAAiB,EACtD,aAAa,EAAE,aAAa;IAGjD,sBAAsB;IAWtB,yBAAyB;IAInB,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,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
|
-
|
|
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(
|
|
158
|
-
__param(
|
|
159
|
-
__param(
|
|
160
|
-
__metadata("design:paramtypes", [postgresql_1.
|
|
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,
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"import-target.interface.js","sourceRoot":"","sources":["../../src/importer/import-target.interface.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"importer-pipe.type.js","sourceRoot":"","sources":["../../../src/importer/pipes/importer-pipe.type.ts"],"names":[],"mappings":""}
|