@nest-omni/core 4.1.3-10 → 4.1.3-12
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/audit/audit.module.js +42 -2
- package/audit/controllers/audit.controller.d.ts +64 -0
- package/audit/controllers/audit.controller.js +50 -0
- package/audit/decorators/audit-action.decorator.d.ts +74 -0
- package/audit/decorators/audit-action.decorator.js +42 -0
- package/audit/decorators/audit-controller.decorator.d.ts +1 -1
- package/audit/decorators/audit-controller.decorator.js +2 -2
- package/audit/decorators/entity-audit.decorator.d.ts +78 -2
- package/audit/decorators/entity-audit.decorator.js +145 -4
- package/audit/decorators/index.d.ts +2 -0
- package/audit/decorators/index.js +2 -0
- package/audit/entities/audit-action-summary.entity.d.ts +23 -0
- package/audit/entities/audit-action-summary.entity.js +101 -0
- package/audit/entities/entity-audit-log.entity.d.ts +8 -0
- package/audit/entities/entity-audit-log.entity.js +54 -2
- package/audit/entities/entity-transaction.entity.d.ts +8 -2
- package/audit/entities/entity-transaction.entity.js +39 -3
- package/audit/entities/index.d.ts +3 -0
- package/audit/entities/index.js +3 -0
- package/audit/entities/manual-operation-log.entity.js +8 -1
- package/audit/enums/audit.enums.d.ts +22 -6
- package/audit/enums/audit.enums.js +27 -9
- package/audit/index.d.ts +4 -1
- package/audit/index.js +25 -2
- package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
- package/audit/interceptors/audit-action.interceptor.js +215 -0
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +145 -2
- package/audit/services/audit-action.service.d.ts +141 -0
- package/audit/services/audit-action.service.js +244 -0
- package/audit/services/audit-context.service.d.ts +82 -0
- package/audit/services/audit-context.service.js +170 -0
- package/audit/services/entity-audit.service.d.ts +174 -4
- package/audit/services/entity-audit.service.js +515 -14
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +24 -23
- package/audit/services/manual-audit-log.service.js +32 -53
- package/audit/services/operation-description.service.d.ts +13 -3
- package/audit/services/operation-description.service.js +161 -24
- package/audit/services/transaction-audit.service.js +3 -3
- package/audit/subscribers/entity-audit.subscriber.d.ts +4 -0
- package/audit/subscribers/entity-audit.subscriber.js +47 -0
- package/file-upload/controllers/file-access.controller.d.ts +23 -0
- package/file-upload/controllers/file-access.controller.js +128 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +44 -0
- package/file-upload/decorators/csv-data.decorator.js +131 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +44 -0
- package/file-upload/decorators/excel-data.decorator.js +125 -0
- package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
- package/file-upload/decorators/file-upload.decorator.js +172 -0
- package/file-upload/decorators/index.d.ts +4 -0
- package/file-upload/decorators/index.js +20 -0
- package/file-upload/decorators/process.decorator.d.ts +40 -0
- package/file-upload/decorators/process.decorator.js +52 -0
- package/file-upload/dto/create-file.dto.d.ts +24 -0
- package/file-upload/dto/create-file.dto.js +112 -0
- package/file-upload/dto/find-files.dto.d.ts +15 -0
- package/file-upload/dto/find-files.dto.js +76 -0
- package/file-upload/dto/index.d.ts +4 -0
- package/file-upload/dto/index.js +20 -0
- package/file-upload/dto/pagination.dto.d.ts +7 -0
- package/file-upload/dto/pagination.dto.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +16 -0
- package/file-upload/dto/update-file.dto.js +71 -0
- package/file-upload/entities/file-metadata.entity.d.ts +22 -0
- package/file-upload/entities/file-metadata.entity.js +84 -0
- package/file-upload/entities/file.entity.d.ts +129 -0
- package/file-upload/entities/file.entity.js +384 -0
- package/file-upload/entities/index.d.ts +2 -0
- package/file-upload/entities/index.js +18 -0
- package/file-upload/enums/file-type.enum.d.ts +72 -0
- package/file-upload/enums/file-type.enum.js +212 -0
- package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
- package/file-upload/exceptions/file-upload.exception.js +120 -0
- package/file-upload/exceptions/index.d.ts +1 -0
- package/file-upload/exceptions/index.js +17 -0
- package/file-upload/file-upload.module.d.ts +89 -0
- package/file-upload/file-upload.module.js +264 -0
- package/file-upload/index.d.ts +26 -0
- package/file-upload/index.js +59 -0
- package/file-upload/interceptors/file-upload.interceptor.d.ts +48 -0
- package/file-upload/interceptors/file-upload.interceptor.js +434 -0
- package/file-upload/interceptors/index.d.ts +1 -0
- package/file-upload/interceptors/index.js +17 -0
- package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
- package/file-upload/interfaces/custom-file-type.interface.js +2 -0
- package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
- package/file-upload/interfaces/file-buffer.interface.js +2 -0
- package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
- package/file-upload/interfaces/file-entity.interface.js +28 -0
- package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
- package/file-upload/interfaces/file-metadata.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +117 -0
- package/file-upload/interfaces/file-upload-options.interface.js +2 -0
- package/file-upload/interfaces/index.d.ts +7 -0
- package/file-upload/interfaces/index.js +24 -0
- package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
- package/file-upload/interfaces/storage-provider.interface.js +2 -0
- package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
- package/file-upload/interfaces/upload-options.interface.js +2 -0
- package/file-upload/providers/index.d.ts +2 -0
- package/file-upload/providers/index.js +18 -0
- package/file-upload/providers/local-storage.provider.d.ts +98 -0
- package/file-upload/providers/local-storage.provider.js +484 -0
- package/file-upload/providers/s3-storage.provider.d.ts +87 -0
- package/file-upload/providers/s3-storage.provider.js +455 -0
- package/file-upload/services/file-signature-validator.service.d.ts +118 -0
- package/file-upload/services/file-signature-validator.service.js +376 -0
- package/file-upload/services/file.service.d.ts +190 -0
- package/file-upload/services/file.service.js +609 -0
- package/file-upload/services/index.d.ts +4 -0
- package/file-upload/services/index.js +20 -0
- package/file-upload/services/malicious-file-detector.service.d.ts +274 -0
- package/file-upload/services/malicious-file-detector.service.js +1035 -0
- package/file-upload/services/mime-registry.service.d.ts +47 -0
- package/file-upload/services/mime-registry.service.js +167 -0
- package/file-upload/utils/checksum.util.d.ts +28 -0
- package/file-upload/utils/checksum.util.js +65 -0
- package/file-upload/utils/dynamic-import.util.d.ts +50 -0
- package/file-upload/utils/dynamic-import.util.js +144 -0
- package/file-upload/utils/filename.util.d.ts +59 -0
- package/file-upload/utils/filename.util.js +184 -0
- package/file-upload/utils/filepath.util.d.ts +70 -0
- package/file-upload/utils/filepath.util.js +152 -0
- package/file-upload/utils/index.d.ts +4 -0
- package/file-upload/utils/index.js +20 -0
- package/http-client/http-client.module.js +1 -5
- package/index.d.ts +3 -1
- package/index.js +4 -1
- package/package.json +4 -5
- package/redis-lock/lock-heartbeat.service.d.ts +2 -2
- package/redis-lock/lock-heartbeat.service.js +4 -4
- package/redis-lock/redis-lock.service.d.ts +18 -0
- package/redis-lock/redis-lock.service.js +38 -8
- package/setup/bootstrap.setup.d.ts +1 -0
- package/setup/bootstrap.setup.js +1 -0
- package/setup/schedule.decorator.js +18 -8
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/shared/{serviceRegistryModule.js → service-registry.module.js} +9 -16
- package/shared/services/index.d.ts +0 -1
- package/shared/services/index.js +0 -1
- package/transaction/__tests__/mocks.d.ts +9 -0
- package/transaction/__tests__/mocks.js +33 -0
- package/transaction/base-service-transaction.d.ts +99 -0
- package/transaction/base-service-transaction.js +286 -0
- package/transaction/cls-compatibility.service.d.ts +55 -0
- package/transaction/cls-compatibility.service.js +127 -0
- package/transaction/data-source-registry.d.ts +91 -0
- package/transaction/data-source-registry.js +349 -0
- package/transaction/database-adapter.d.ts +44 -0
- package/transaction/database-adapter.js +240 -0
- package/transaction/decorators/entity-datasource.decorator.d.ts +62 -0
- package/transaction/decorators/entity-datasource.decorator.js +105 -0
- package/transaction/index.d.ts +14 -0
- package/transaction/index.js +57 -0
- package/transaction/logging-transactional.interceptor.d.ts +18 -0
- package/transaction/logging-transactional.interceptor.js +163 -0
- package/transaction/transaction-context.service.d.ts +137 -0
- package/transaction/transaction-context.service.js +411 -0
- package/transaction/transaction-manager.d.ts +230 -0
- package/transaction/transaction-manager.js +1001 -0
- package/transaction/transaction-synchronization.d.ts +171 -0
- package/transaction/transaction-synchronization.js +380 -0
- package/transaction/transaction.errors.d.ts +91 -0
- package/transaction/transaction.errors.js +206 -0
- package/transaction/transaction.module.d.ts +30 -0
- package/transaction/transaction.module.js +98 -0
- package/transaction/transactional.decorator.d.ts +82 -0
- package/transaction/transactional.decorator.js +319 -0
- package/transaction/typeorm-module-wrapper.d.ts +96 -0
- package/transaction/typeorm-module-wrapper.js +197 -0
- package/validators/file-mimetype.validator.d.ts +0 -2
- package/validators/file-mimetype.validator.js +4 -6
- package/validators/is-exists.validator.d.ts +2 -5
- package/validators/is-exists.validator.js +4 -6
- package/validators/is-unique.validator.d.ts +2 -5
- package/validators/is-unique.validator.js +6 -11
- package/shared/services/validator.service.d.ts +0 -3
- package/shared/services/validator.service.js +0 -20
- /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { EntityManager, DataSource, QueryRunner } from 'typeorm';
|
|
2
|
+
import { TransactionContextService } from './transaction-context.service';
|
|
3
|
+
/**
|
|
4
|
+
* 事务传播行为
|
|
5
|
+
*/
|
|
6
|
+
export declare enum Propagation {
|
|
7
|
+
/**
|
|
8
|
+
* 支持当前事务,如果不存在就创建一个新事务
|
|
9
|
+
*/
|
|
10
|
+
REQUIRED = 0,
|
|
11
|
+
/**
|
|
12
|
+
* 支持当前事务,如果不存在就以非事务方式执行
|
|
13
|
+
*/
|
|
14
|
+
SUPPORTS = 1,
|
|
15
|
+
/**
|
|
16
|
+
* 支持当前事务,如果不存在就抛出异常
|
|
17
|
+
*/
|
|
18
|
+
MANDATORY = 2,
|
|
19
|
+
/**
|
|
20
|
+
* 创建新事务,如果当前存在事务就挂起它
|
|
21
|
+
*/
|
|
22
|
+
REQUIRES_NEW = 3,
|
|
23
|
+
/**
|
|
24
|
+
* 以非事务方式执行,如果当前存在事务就挂起它
|
|
25
|
+
*/
|
|
26
|
+
NOT_SUPPORTED = 4,
|
|
27
|
+
/**
|
|
28
|
+
* 以非事务方式执行,如果当前存在事务就抛出异常
|
|
29
|
+
*/
|
|
30
|
+
NEVER = 5,
|
|
31
|
+
/**
|
|
32
|
+
* 如果当前存在事务,就在嵌套事务中执行
|
|
33
|
+
*/
|
|
34
|
+
NESTED = 6
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 事务隔离级别
|
|
38
|
+
*/
|
|
39
|
+
export declare enum IsolationLevel {
|
|
40
|
+
DEFAULT = -1,
|
|
41
|
+
READ_UNCOMMITTED = 1,
|
|
42
|
+
READ_COMMITTED = 2,
|
|
43
|
+
REPEATABLE_READ = 3,
|
|
44
|
+
SERIALIZABLE = 4
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* 事务超时处理回调
|
|
48
|
+
*/
|
|
49
|
+
export interface TransactionTimeoutCallback {
|
|
50
|
+
(status: TransactionStatus): Promise<void> | void;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 事务定义
|
|
54
|
+
*/
|
|
55
|
+
export interface TransactionDefinition {
|
|
56
|
+
propagation: Propagation;
|
|
57
|
+
isolationLevel?: IsolationLevel;
|
|
58
|
+
readOnly?: boolean;
|
|
59
|
+
timeout?: number;
|
|
60
|
+
name?: string;
|
|
61
|
+
dataSourceName?: string;
|
|
62
|
+
onTimeout?: TransactionTimeoutCallback;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 事务状态
|
|
66
|
+
*/
|
|
67
|
+
export interface TransactionStatus {
|
|
68
|
+
isCompleted: boolean;
|
|
69
|
+
isRollbackOnly: boolean;
|
|
70
|
+
isNewTransaction: boolean;
|
|
71
|
+
dataSourceName: string;
|
|
72
|
+
startTime: Date;
|
|
73
|
+
definition: TransactionDefinition;
|
|
74
|
+
nestingLevel: number;
|
|
75
|
+
timeoutTimer?: NodeJS.Timeout;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 事务资源
|
|
79
|
+
*/
|
|
80
|
+
interface TransactionResource {
|
|
81
|
+
dataSourceName: string;
|
|
82
|
+
dataSource: DataSource;
|
|
83
|
+
queryRunner: QueryRunner;
|
|
84
|
+
transactionStarted: boolean;
|
|
85
|
+
nestingLevel: number;
|
|
86
|
+
savepoints: string[];
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* 挂起的事务资源
|
|
90
|
+
*/
|
|
91
|
+
interface SuspendedTransaction {
|
|
92
|
+
dataSourceName: string;
|
|
93
|
+
resource: TransactionResource;
|
|
94
|
+
status: TransactionStatus;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 统一的事务上下文管理类
|
|
98
|
+
* 减少状态管理复杂度,避免不一致
|
|
99
|
+
*/
|
|
100
|
+
export declare class TransactionContextManager {
|
|
101
|
+
private readonly resources;
|
|
102
|
+
private readonly activeTransactions;
|
|
103
|
+
private readonly suspendedTransactions;
|
|
104
|
+
getResource(name: string): TransactionResource | undefined;
|
|
105
|
+
getActiveTransaction(name: string): TransactionStatus | null;
|
|
106
|
+
getAllActiveTransactions(): Map<string, TransactionStatus>;
|
|
107
|
+
getAllResources(): Map<string, TransactionResource>;
|
|
108
|
+
setResource(name: string, resource: TransactionResource): void;
|
|
109
|
+
setActiveTransaction(name: string, status: TransactionStatus): void;
|
|
110
|
+
deleteResource(name: string): boolean;
|
|
111
|
+
deleteActiveTransaction(name: string): boolean;
|
|
112
|
+
suspendTransaction(name: string): SuspendedTransaction | null;
|
|
113
|
+
resumeSuspendedTransaction(name: string): SuspendedTransaction | null;
|
|
114
|
+
clear(): void;
|
|
115
|
+
getStats(): {
|
|
116
|
+
activeTransactions: {
|
|
117
|
+
dataSource: string;
|
|
118
|
+
nestingLevel: number;
|
|
119
|
+
startTime: Date;
|
|
120
|
+
propagation: Propagation;
|
|
121
|
+
isRollbackOnly: boolean;
|
|
122
|
+
}[];
|
|
123
|
+
resources: {
|
|
124
|
+
dataSource: string;
|
|
125
|
+
hasTransaction: boolean;
|
|
126
|
+
nestingLevel: number;
|
|
127
|
+
}[];
|
|
128
|
+
suspendedTransactions: number;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 事务管理器
|
|
133
|
+
* 统一管理多数据源事务,支持自动嵌套
|
|
134
|
+
*/
|
|
135
|
+
export declare class TransactionManager {
|
|
136
|
+
private readonly transactionContext;
|
|
137
|
+
private readonly contextManager;
|
|
138
|
+
private readonly config?;
|
|
139
|
+
private readonly logger;
|
|
140
|
+
constructor(transactionContext: TransactionContextService, contextManager: TransactionContextManager, config?: {
|
|
141
|
+
defaultTimeout?: number;
|
|
142
|
+
defaultReadOnly?: boolean;
|
|
143
|
+
logTransactionDetails?: boolean;
|
|
144
|
+
});
|
|
145
|
+
/**
|
|
146
|
+
* 获取或创建事务
|
|
147
|
+
* 处理各种传播行为
|
|
148
|
+
*/
|
|
149
|
+
getTransaction(definition: TransactionDefinition): Promise<TransactionStatus>;
|
|
150
|
+
/**
|
|
151
|
+
* 提交事务
|
|
152
|
+
*/
|
|
153
|
+
commit(status: TransactionStatus): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* 回滚事务
|
|
156
|
+
*/
|
|
157
|
+
rollback(status: TransactionStatus): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* 获取当前事务的 EntityManager
|
|
160
|
+
*/
|
|
161
|
+
getCurrentEntityManager(dataSourceName?: string): EntityManager | null;
|
|
162
|
+
/**
|
|
163
|
+
* 获取当前事务状态
|
|
164
|
+
*/
|
|
165
|
+
getCurrentTransaction(dataSourceName?: string): TransactionStatus | null;
|
|
166
|
+
/**
|
|
167
|
+
* 获取事务统计
|
|
168
|
+
*/
|
|
169
|
+
getTransactionStats(): {
|
|
170
|
+
activeTransactions: {
|
|
171
|
+
dataSource: string;
|
|
172
|
+
nestingLevel: number;
|
|
173
|
+
startTime: Date;
|
|
174
|
+
propagation: Propagation;
|
|
175
|
+
isRollbackOnly: boolean;
|
|
176
|
+
}[];
|
|
177
|
+
resources: {
|
|
178
|
+
dataSource: string;
|
|
179
|
+
hasTransaction: boolean;
|
|
180
|
+
nestingLevel: number;
|
|
181
|
+
}[];
|
|
182
|
+
suspendedTransactions: number;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* 根据 Entity 获取数据源名称
|
|
186
|
+
* 支持装饰器、静态方法和动态方法
|
|
187
|
+
*/
|
|
188
|
+
getDataSourceForEntity(entityClassOrInstance: Function | Object): string | null;
|
|
189
|
+
/**
|
|
190
|
+
* 为 Entity 获取或创建 EntityManager
|
|
191
|
+
* 自动检测 Entity 的数据源
|
|
192
|
+
*/
|
|
193
|
+
getEntityManagerForEntity(entityClassOrInstance: any, fallbackDataSourceName?: string): EntityManager | null;
|
|
194
|
+
private handleRequired;
|
|
195
|
+
private handleRequiresNew;
|
|
196
|
+
private handleNested;
|
|
197
|
+
private handleSupports;
|
|
198
|
+
private handleNotSupported;
|
|
199
|
+
private handleMandatory;
|
|
200
|
+
private handleNever;
|
|
201
|
+
private createNewTransaction;
|
|
202
|
+
private createParticipatingTransaction;
|
|
203
|
+
private getActiveTransaction;
|
|
204
|
+
private getDataSource;
|
|
205
|
+
private convertIsolationLevel;
|
|
206
|
+
private markCompleted;
|
|
207
|
+
private removeActiveTransaction;
|
|
208
|
+
private markParentForRollback;
|
|
209
|
+
private rollbackOnCommitException;
|
|
210
|
+
private cleanupResource;
|
|
211
|
+
/**
|
|
212
|
+
* 恢复挂起的事务 - 已移到 TransactionContextManager 中
|
|
213
|
+
* 此方法保留以兼容
|
|
214
|
+
*/
|
|
215
|
+
private resumeSuspendedTransaction;
|
|
216
|
+
/**
|
|
217
|
+
* 获取事务超时时间(毫秒)
|
|
218
|
+
*/
|
|
219
|
+
private getTimeoutMs;
|
|
220
|
+
/**
|
|
221
|
+
* 处理事务超时
|
|
222
|
+
*/
|
|
223
|
+
private handleTransactionTimeout;
|
|
224
|
+
/**
|
|
225
|
+
* 清理事务定时器
|
|
226
|
+
* 确保定时器被正确清理,避免内存泄漏
|
|
227
|
+
*/
|
|
228
|
+
private clearTimeout;
|
|
229
|
+
}
|
|
230
|
+
export {};
|