@nest-omni/core 4.1.3-12 → 4.1.3-14
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/cache/dependencies/db.dependency.d.ts +55 -6
- package/cache/dependencies/db.dependency.js +64 -13
- package/common/boilerplate.polyfill.js +1 -1
- package/file-upload/decorators/column.decorator.d.ts +151 -0
- package/file-upload/decorators/column.decorator.js +273 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +17 -31
- package/file-upload/decorators/csv-data.decorator.js +45 -91
- package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
- package/file-upload/decorators/csv-import.decorator.js +24 -0
- package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
- package/file-upload/decorators/examples/column-mapping.example.js +122 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +15 -29
- package/file-upload/decorators/excel-data.decorator.js +42 -82
- package/file-upload/decorators/index.d.ts +3 -2
- package/file-upload/decorators/index.js +20 -2
- package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
- package/file-upload/decorators/validate-data.decorator.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +0 -1
- package/file-upload/dto/update-file.dto.js +0 -4
- package/file-upload/entities/file-metadata.entity.d.ts +6 -3
- package/file-upload/entities/file-metadata.entity.js +2 -10
- package/file-upload/entities/file.entity.d.ts +3 -18
- package/file-upload/entities/file.entity.js +0 -34
- package/file-upload/file-upload.module.d.ts +1 -1
- package/file-upload/file-upload.module.js +44 -16
- package/file-upload/index.d.ts +13 -2
- package/file-upload/index.js +21 -3
- package/file-upload/interceptors/file-upload.interceptor.d.ts +61 -8
- package/file-upload/interceptors/file-upload.interceptor.js +417 -257
- package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
- package/file-upload/interfaces/file-processor.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +3 -46
- package/file-upload/interfaces/file-upload-options.interface.js +3 -0
- package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
- package/file-upload/interfaces/processor-options.interface.js +2 -0
- package/file-upload/processors/csv.processor.d.ts +98 -0
- package/file-upload/processors/csv.processor.js +391 -0
- package/file-upload/processors/excel.processor.d.ts +130 -0
- package/file-upload/processors/excel.processor.js +547 -0
- package/file-upload/processors/image.processor.d.ts +199 -0
- package/file-upload/processors/image.processor.js +377 -0
- package/file-upload/services/file.service.d.ts +3 -0
- package/file-upload/services/file.service.js +39 -10
- package/file-upload/services/malicious-file-detector.service.d.ts +29 -3
- package/file-upload/services/malicious-file-detector.service.js +256 -57
- package/file-upload/utils/dynamic-import.util.d.ts +6 -2
- package/file-upload/utils/dynamic-import.util.js +17 -5
- package/http-client/decorators/http-client.decorators.d.ts +4 -2
- package/http-client/decorators/http-client.decorators.js +2 -1
- package/http-client/entities/http-log.entity.js +1 -9
- package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
- package/http-client/examples/proxy-from-environment.example.js +410 -0
- package/http-client/http-client.module.js +65 -6
- package/http-client/interfaces/http-client-config.interface.d.ts +6 -0
- package/http-client/services/http-client.service.d.ts +8 -0
- package/http-client/services/http-client.service.js +61 -17
- package/http-client/services/logging.service.d.ts +1 -1
- package/http-client/services/logging.service.js +74 -58
- package/http-client/utils/index.d.ts +1 -0
- package/http-client/utils/index.js +1 -0
- package/http-client/utils/proxy-environment.util.d.ts +42 -0
- package/http-client/utils/proxy-environment.util.js +148 -0
- package/package.json +9 -5
- package/shared/service-registry.module.js +18 -0
- package/transaction/data-source.util.d.ts +142 -0
- package/transaction/data-source.util.js +330 -0
- package/transaction/index.d.ts +1 -0
- package/transaction/index.js +12 -1
- package/validators/is-exists.validator.d.ts +19 -2
- package/validators/is-exists.validator.js +27 -2
- package/validators/is-unique.validator.d.ts +12 -1
- package/validators/is-unique.validator.js +26 -1
package/file-upload/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.BaseRowData = exports.parseAndValidateCsvData = exports.getCsvColumnMapping = exports.CsvColumn = exports.parseAndValidateExcelData = exports.getExcelColumnMapping = exports.ExcelColumn = void 0;
|
|
17
18
|
// Module
|
|
18
19
|
__exportStar(require("./file-upload.module"), exports);
|
|
19
20
|
// Enums
|
|
@@ -25,11 +26,24 @@ __exportStar(require("./interfaces/file-buffer.interface"), exports);
|
|
|
25
26
|
__exportStar(require("./interfaces/file-metadata.interface"), exports);
|
|
26
27
|
__exportStar(require("./interfaces/upload-options.interface"), exports);
|
|
27
28
|
__exportStar(require("./interfaces/custom-file-type.interface"), exports);
|
|
29
|
+
__exportStar(require("./interfaces/file-processor.interface"), exports);
|
|
28
30
|
// Note: FileEntity interface is not exported to avoid conflict with TypeORM entity
|
|
29
|
-
// Decorators
|
|
31
|
+
// Decorators - 避免冲突,选择性导出
|
|
30
32
|
__exportStar(require("./decorators/file-upload.decorator"), exports);
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
// Excel/CSV 列映射装饰器(字段级别)
|
|
34
|
+
var excel_data_decorator_1 = require("./decorators/excel-data.decorator");
|
|
35
|
+
Object.defineProperty(exports, "ExcelColumn", { enumerable: true, get: function () { return excel_data_decorator_1.ExcelColumn; } });
|
|
36
|
+
Object.defineProperty(exports, "getExcelColumnMapping", { enumerable: true, get: function () { return excel_data_decorator_1.getExcelColumnMapping; } });
|
|
37
|
+
Object.defineProperty(exports, "parseAndValidateExcelData", { enumerable: true, get: function () { return excel_data_decorator_1.parseAndValidateExcelData; } });
|
|
38
|
+
var csv_data_decorator_1 = require("./decorators/csv-data.decorator");
|
|
39
|
+
Object.defineProperty(exports, "CsvColumn", { enumerable: true, get: function () { return csv_data_decorator_1.CsvColumn; } });
|
|
40
|
+
Object.defineProperty(exports, "getCsvColumnMapping", { enumerable: true, get: function () { return csv_data_decorator_1.getCsvColumnMapping; } });
|
|
41
|
+
Object.defineProperty(exports, "parseAndValidateCsvData", { enumerable: true, get: function () { return csv_data_decorator_1.parseAndValidateCsvData; } });
|
|
42
|
+
__exportStar(require("./decorators/csv-import.decorator"), exports);
|
|
43
|
+
// Validation decorators
|
|
44
|
+
var validate_data_decorator_1 = require("./decorators/validate-data.decorator");
|
|
45
|
+
Object.defineProperty(exports, "BaseRowData", { enumerable: true, get: function () { return validate_data_decorator_1.BaseRowData; } });
|
|
46
|
+
__exportStar(require("./decorators/validate-data.decorator"), exports);
|
|
33
47
|
__exportStar(require("./decorators/process.decorator"), exports);
|
|
34
48
|
// Interceptors
|
|
35
49
|
__exportStar(require("./interceptors/file-upload.interceptor"), exports);
|
|
@@ -44,6 +58,10 @@ __exportStar(require("./services/mime-registry.service"), exports);
|
|
|
44
58
|
__exportStar(require("./services/file-signature-validator.service"), exports);
|
|
45
59
|
__exportStar(require("./services/malicious-file-detector.service"), exports);
|
|
46
60
|
__exportStar(require("./services/file.service"), exports);
|
|
61
|
+
// Processors
|
|
62
|
+
__exportStar(require("./processors/excel.processor"), exports);
|
|
63
|
+
__exportStar(require("./processors/csv.processor"), exports);
|
|
64
|
+
__exportStar(require("./processors/image.processor"), exports);
|
|
47
65
|
// Entities
|
|
48
66
|
__exportStar(require("./entities/file.entity"), exports);
|
|
49
67
|
__exportStar(require("./entities/file-metadata.entity"), exports);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
2
|
import { Reflector } from '@nestjs/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import { IFileProcessor } from '../interfaces/file-
|
|
4
|
+
import { IFileProcessor } from '../interfaces/file-processor.interface';
|
|
5
5
|
import { FileService } from '../services/file.service';
|
|
6
6
|
import { FileSignatureValidator } from '../services/file-signature-validator.service';
|
|
7
7
|
import { MaliciousFileDetector } from '../services/malicious-file-detector.service';
|
|
8
8
|
import { MimeRegistryService } from '../services/mime-registry.service';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 文件上传拦截器(优化版)
|
|
11
11
|
* 负责创建文件记录、执行钩子、处理器等后置逻辑
|
|
12
12
|
*/
|
|
13
13
|
export declare class FileUploadInterceptor implements NestInterceptor {
|
|
@@ -21,6 +21,58 @@ export declare class FileUploadInterceptor implements NestInterceptor {
|
|
|
21
21
|
private readonly logger;
|
|
22
22
|
constructor(reflector: Reflector, mimeRegistry: MimeRegistryService, processors?: Map<string, IFileProcessor>, fileService?: FileService, signatureValidator?: FileSignatureValidator, maliciousDetector?: MaliciousFileDetector, moduleOptions?: any);
|
|
23
23
|
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
|
|
24
|
+
/**
|
|
25
|
+
* 判断是否应该跳过验证
|
|
26
|
+
*/
|
|
27
|
+
private shouldSkipValidation;
|
|
28
|
+
/**
|
|
29
|
+
* 验证文件
|
|
30
|
+
*/
|
|
31
|
+
private validateFile;
|
|
32
|
+
/**
|
|
33
|
+
* 批量验证文件类型和扩展名
|
|
34
|
+
*/
|
|
35
|
+
private validateFileTypeAndExtension;
|
|
36
|
+
/**
|
|
37
|
+
* 判断是否需要执行文件签名验证
|
|
38
|
+
*/
|
|
39
|
+
private shouldPerformSignatureValidation;
|
|
40
|
+
/**
|
|
41
|
+
* 验证文件签名
|
|
42
|
+
*/
|
|
43
|
+
private validateFileSignature;
|
|
44
|
+
/**
|
|
45
|
+
* 判断是否需要执行恶意文件检测
|
|
46
|
+
*/
|
|
47
|
+
private shouldPerformMaliciousCheck;
|
|
48
|
+
/**
|
|
49
|
+
* 检测恶意文件
|
|
50
|
+
*/
|
|
51
|
+
private checkMaliciousFile;
|
|
52
|
+
/**
|
|
53
|
+
* 处理文件
|
|
54
|
+
*/
|
|
55
|
+
private processFile;
|
|
56
|
+
/**
|
|
57
|
+
* 创建文件实体
|
|
58
|
+
*/
|
|
59
|
+
private createFileEntity;
|
|
60
|
+
/**
|
|
61
|
+
* 执行处理器
|
|
62
|
+
*/
|
|
63
|
+
private executeProcessors;
|
|
64
|
+
/**
|
|
65
|
+
* 转换为 FileEntity
|
|
66
|
+
*/
|
|
67
|
+
private convertToFileEntity;
|
|
68
|
+
/**
|
|
69
|
+
* 更新成功状态
|
|
70
|
+
*/
|
|
71
|
+
private updateFileEntityOnSuccess;
|
|
72
|
+
/**
|
|
73
|
+
* 清理失败的文件
|
|
74
|
+
*/
|
|
75
|
+
private cleanupOnFailure;
|
|
24
76
|
/**
|
|
25
77
|
* 创建上传上下文
|
|
26
78
|
*/
|
|
@@ -34,15 +86,16 @@ export declare class FileUploadInterceptor implements NestInterceptor {
|
|
|
34
86
|
*/
|
|
35
87
|
private generateUploadId;
|
|
36
88
|
/**
|
|
37
|
-
*
|
|
89
|
+
* 判断是否应该在处理后删除原文件
|
|
38
90
|
*/
|
|
39
|
-
private
|
|
91
|
+
private shouldDeleteAfterProcess;
|
|
40
92
|
/**
|
|
41
|
-
*
|
|
93
|
+
* 将处理器结果保存到 file_metadata 表
|
|
94
|
+
* 处理器可以通过返回结果中的 metadata 字段来指定要保存的内容
|
|
42
95
|
*/
|
|
43
|
-
private
|
|
96
|
+
private saveProcessorResultToMetadata;
|
|
44
97
|
/**
|
|
45
|
-
*
|
|
98
|
+
* 删除原文件
|
|
46
99
|
*/
|
|
47
|
-
private
|
|
100
|
+
private deleteOriginalFile;
|
|
48
101
|
}
|