@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.
Files changed (183) hide show
  1. package/audit/audit.module.js +42 -2
  2. package/audit/controllers/audit.controller.d.ts +64 -0
  3. package/audit/controllers/audit.controller.js +50 -0
  4. package/audit/decorators/audit-action.decorator.d.ts +74 -0
  5. package/audit/decorators/audit-action.decorator.js +42 -0
  6. package/audit/decorators/audit-controller.decorator.d.ts +1 -1
  7. package/audit/decorators/audit-controller.decorator.js +2 -2
  8. package/audit/decorators/entity-audit.decorator.d.ts +78 -2
  9. package/audit/decorators/entity-audit.decorator.js +145 -4
  10. package/audit/decorators/index.d.ts +2 -0
  11. package/audit/decorators/index.js +2 -0
  12. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  13. package/audit/entities/audit-action-summary.entity.js +101 -0
  14. package/audit/entities/entity-audit-log.entity.d.ts +8 -0
  15. package/audit/entities/entity-audit-log.entity.js +54 -2
  16. package/audit/entities/entity-transaction.entity.d.ts +8 -2
  17. package/audit/entities/entity-transaction.entity.js +39 -3
  18. package/audit/entities/index.d.ts +3 -0
  19. package/audit/entities/index.js +3 -0
  20. package/audit/entities/manual-operation-log.entity.js +8 -1
  21. package/audit/enums/audit.enums.d.ts +22 -6
  22. package/audit/enums/audit.enums.js +27 -9
  23. package/audit/index.d.ts +4 -1
  24. package/audit/index.js +25 -2
  25. package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
  26. package/audit/interceptors/audit-action.interceptor.js +215 -0
  27. package/audit/interceptors/index.d.ts +1 -0
  28. package/audit/interceptors/index.js +1 -0
  29. package/audit/interfaces/audit.interfaces.d.ts +145 -2
  30. package/audit/services/audit-action.service.d.ts +141 -0
  31. package/audit/services/audit-action.service.js +244 -0
  32. package/audit/services/audit-context.service.d.ts +82 -0
  33. package/audit/services/audit-context.service.js +170 -0
  34. package/audit/services/entity-audit.service.d.ts +174 -4
  35. package/audit/services/entity-audit.service.js +515 -14
  36. package/audit/services/index.d.ts +3 -0
  37. package/audit/services/index.js +3 -0
  38. package/audit/services/manual-audit-log.service.d.ts +24 -23
  39. package/audit/services/manual-audit-log.service.js +32 -53
  40. package/audit/services/operation-description.service.d.ts +13 -3
  41. package/audit/services/operation-description.service.js +161 -24
  42. package/audit/services/transaction-audit.service.js +3 -3
  43. package/audit/subscribers/entity-audit.subscriber.d.ts +4 -0
  44. package/audit/subscribers/entity-audit.subscriber.js +47 -0
  45. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  46. package/file-upload/controllers/file-access.controller.js +128 -0
  47. package/file-upload/decorators/csv-data.decorator.d.ts +44 -0
  48. package/file-upload/decorators/csv-data.decorator.js +131 -0
  49. package/file-upload/decorators/excel-data.decorator.d.ts +44 -0
  50. package/file-upload/decorators/excel-data.decorator.js +125 -0
  51. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  52. package/file-upload/decorators/file-upload.decorator.js +172 -0
  53. package/file-upload/decorators/index.d.ts +4 -0
  54. package/file-upload/decorators/index.js +20 -0
  55. package/file-upload/decorators/process.decorator.d.ts +40 -0
  56. package/file-upload/decorators/process.decorator.js +52 -0
  57. package/file-upload/dto/create-file.dto.d.ts +24 -0
  58. package/file-upload/dto/create-file.dto.js +112 -0
  59. package/file-upload/dto/find-files.dto.d.ts +15 -0
  60. package/file-upload/dto/find-files.dto.js +76 -0
  61. package/file-upload/dto/index.d.ts +4 -0
  62. package/file-upload/dto/index.js +20 -0
  63. package/file-upload/dto/pagination.dto.d.ts +7 -0
  64. package/file-upload/dto/pagination.dto.js +39 -0
  65. package/file-upload/dto/update-file.dto.d.ts +16 -0
  66. package/file-upload/dto/update-file.dto.js +71 -0
  67. package/file-upload/entities/file-metadata.entity.d.ts +22 -0
  68. package/file-upload/entities/file-metadata.entity.js +84 -0
  69. package/file-upload/entities/file.entity.d.ts +129 -0
  70. package/file-upload/entities/file.entity.js +384 -0
  71. package/file-upload/entities/index.d.ts +2 -0
  72. package/file-upload/entities/index.js +18 -0
  73. package/file-upload/enums/file-type.enum.d.ts +72 -0
  74. package/file-upload/enums/file-type.enum.js +212 -0
  75. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  76. package/file-upload/exceptions/file-upload.exception.js +120 -0
  77. package/file-upload/exceptions/index.d.ts +1 -0
  78. package/file-upload/exceptions/index.js +17 -0
  79. package/file-upload/file-upload.module.d.ts +89 -0
  80. package/file-upload/file-upload.module.js +264 -0
  81. package/file-upload/index.d.ts +26 -0
  82. package/file-upload/index.js +59 -0
  83. package/file-upload/interceptors/file-upload.interceptor.d.ts +48 -0
  84. package/file-upload/interceptors/file-upload.interceptor.js +434 -0
  85. package/file-upload/interceptors/index.d.ts +1 -0
  86. package/file-upload/interceptors/index.js +17 -0
  87. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  88. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  89. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  90. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  91. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  92. package/file-upload/interfaces/file-entity.interface.js +28 -0
  93. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  94. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  95. package/file-upload/interfaces/file-upload-options.interface.d.ts +117 -0
  96. package/file-upload/interfaces/file-upload-options.interface.js +2 -0
  97. package/file-upload/interfaces/index.d.ts +7 -0
  98. package/file-upload/interfaces/index.js +24 -0
  99. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  100. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  101. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  102. package/file-upload/interfaces/upload-options.interface.js +2 -0
  103. package/file-upload/providers/index.d.ts +2 -0
  104. package/file-upload/providers/index.js +18 -0
  105. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  106. package/file-upload/providers/local-storage.provider.js +484 -0
  107. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  108. package/file-upload/providers/s3-storage.provider.js +455 -0
  109. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  110. package/file-upload/services/file-signature-validator.service.js +376 -0
  111. package/file-upload/services/file.service.d.ts +190 -0
  112. package/file-upload/services/file.service.js +609 -0
  113. package/file-upload/services/index.d.ts +4 -0
  114. package/file-upload/services/index.js +20 -0
  115. package/file-upload/services/malicious-file-detector.service.d.ts +274 -0
  116. package/file-upload/services/malicious-file-detector.service.js +1035 -0
  117. package/file-upload/services/mime-registry.service.d.ts +47 -0
  118. package/file-upload/services/mime-registry.service.js +167 -0
  119. package/file-upload/utils/checksum.util.d.ts +28 -0
  120. package/file-upload/utils/checksum.util.js +65 -0
  121. package/file-upload/utils/dynamic-import.util.d.ts +50 -0
  122. package/file-upload/utils/dynamic-import.util.js +144 -0
  123. package/file-upload/utils/filename.util.d.ts +59 -0
  124. package/file-upload/utils/filename.util.js +184 -0
  125. package/file-upload/utils/filepath.util.d.ts +70 -0
  126. package/file-upload/utils/filepath.util.js +152 -0
  127. package/file-upload/utils/index.d.ts +4 -0
  128. package/file-upload/utils/index.js +20 -0
  129. package/http-client/http-client.module.js +1 -5
  130. package/index.d.ts +3 -1
  131. package/index.js +4 -1
  132. package/package.json +4 -5
  133. package/redis-lock/lock-heartbeat.service.d.ts +2 -2
  134. package/redis-lock/lock-heartbeat.service.js +4 -4
  135. package/redis-lock/redis-lock.service.d.ts +18 -0
  136. package/redis-lock/redis-lock.service.js +38 -8
  137. package/setup/bootstrap.setup.d.ts +1 -0
  138. package/setup/bootstrap.setup.js +1 -0
  139. package/setup/schedule.decorator.js +18 -8
  140. package/shared/index.d.ts +1 -1
  141. package/shared/index.js +1 -1
  142. package/shared/{serviceRegistryModule.js → service-registry.module.js} +9 -16
  143. package/shared/services/index.d.ts +0 -1
  144. package/shared/services/index.js +0 -1
  145. package/transaction/__tests__/mocks.d.ts +9 -0
  146. package/transaction/__tests__/mocks.js +33 -0
  147. package/transaction/base-service-transaction.d.ts +99 -0
  148. package/transaction/base-service-transaction.js +286 -0
  149. package/transaction/cls-compatibility.service.d.ts +55 -0
  150. package/transaction/cls-compatibility.service.js +127 -0
  151. package/transaction/data-source-registry.d.ts +91 -0
  152. package/transaction/data-source-registry.js +349 -0
  153. package/transaction/database-adapter.d.ts +44 -0
  154. package/transaction/database-adapter.js +240 -0
  155. package/transaction/decorators/entity-datasource.decorator.d.ts +62 -0
  156. package/transaction/decorators/entity-datasource.decorator.js +105 -0
  157. package/transaction/index.d.ts +14 -0
  158. package/transaction/index.js +57 -0
  159. package/transaction/logging-transactional.interceptor.d.ts +18 -0
  160. package/transaction/logging-transactional.interceptor.js +163 -0
  161. package/transaction/transaction-context.service.d.ts +137 -0
  162. package/transaction/transaction-context.service.js +411 -0
  163. package/transaction/transaction-manager.d.ts +230 -0
  164. package/transaction/transaction-manager.js +1001 -0
  165. package/transaction/transaction-synchronization.d.ts +171 -0
  166. package/transaction/transaction-synchronization.js +380 -0
  167. package/transaction/transaction.errors.d.ts +91 -0
  168. package/transaction/transaction.errors.js +206 -0
  169. package/transaction/transaction.module.d.ts +30 -0
  170. package/transaction/transaction.module.js +98 -0
  171. package/transaction/transactional.decorator.d.ts +82 -0
  172. package/transaction/transactional.decorator.js +319 -0
  173. package/transaction/typeorm-module-wrapper.d.ts +96 -0
  174. package/transaction/typeorm-module-wrapper.js +197 -0
  175. package/validators/file-mimetype.validator.d.ts +0 -2
  176. package/validators/file-mimetype.validator.js +4 -6
  177. package/validators/is-exists.validator.d.ts +2 -5
  178. package/validators/is-exists.validator.js +4 -6
  179. package/validators/is-unique.validator.d.ts +2 -5
  180. package/validators/is-unique.validator.js +6 -11
  181. package/shared/services/validator.service.d.ts +0 -3
  182. package/shared/services/validator.service.js +0 -20
  183. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { Repository, EntityManager } from 'typeorm';
2
- import { EntityAuditLogEntity, EntityTransactionEntity } from '../entities';
2
+ import { EntityAuditLogEntity, EntityTransactionEntity, ManualOperationLogEntity, AuditActionSummaryEntity } from '../entities';
3
3
  import { AuditOperation } from '../enums';
4
- import { AuditConfig, IAuditStrategy, EntityDifference, RestoreOptions, RestoreResult, PreCheckResult } from '../interfaces';
4
+ import { AuditConfig, IAuditStrategy, EntityDifference, RestoreOptions, RestoreResult, PreCheckResult, ManualOperationData, ChangeDetail, RollbackAction } from '../interfaces';
5
5
  import { AuditContextService } from './audit-context.service';
6
6
  import { MultiDatabaseService } from './multi-database.service';
7
7
  import { PageDto } from '../../common/dto';
@@ -12,13 +12,15 @@ import { AuditLogQueryDto } from '../dto';
12
12
  export declare class EntityAuditService {
13
13
  private readonly auditLogRepository;
14
14
  private readonly transactionRepository;
15
+ private readonly manualOperationRepository;
15
16
  private readonly entityManager;
16
17
  private readonly contextService;
17
18
  private readonly multiDbService;
18
19
  private readonly auditStrategy;
19
20
  private readonly config?;
21
+ private readonly actionSummaryRepository?;
20
22
  private readonly auditConnectionName;
21
- constructor(auditLogRepository: Repository<EntityAuditLogEntity>, transactionRepository: Repository<EntityTransactionEntity>, entityManager: EntityManager, contextService: AuditContextService, multiDbService: MultiDatabaseService, auditStrategy?: IAuditStrategy, config?: AuditConfig, auditConnectionName?: string);
23
+ constructor(auditLogRepository: Repository<EntityAuditLogEntity>, transactionRepository: Repository<EntityTransactionEntity>, manualOperationRepository: Repository<ManualOperationLogEntity>, entityManager: EntityManager, contextService: AuditContextService, multiDbService: MultiDatabaseService, auditStrategy?: IAuditStrategy, config?: AuditConfig, auditConnectionName?: string, actionSummaryRepository?: Repository<AuditActionSummaryEntity>);
22
24
  /**
23
25
  * 记录实体变更
24
26
  */
@@ -84,11 +86,179 @@ export declare class EntityAuditService {
84
86
  */
85
87
  private generateHashChain;
86
88
  /**
87
- * 生成描述
89
+ * 生成描述(支持多语言)
90
+ * @param operation 操作类型
91
+ * @param entityType 实体类型
92
+ * @param entityId 实体ID
93
+ * @param changedFields 变更字段列表
94
+ * @param language 语言(默认中文)
95
+ * @param entityClass 实体类(可选,用于获取实体标签)
88
96
  */
89
97
  private generateDescription;
90
98
  /**
91
99
  * 检测冲突
92
100
  */
93
101
  private detectConflicts;
102
+ /**
103
+ * 增强的记录实体变更(支持模板和结构化变更详情)
104
+ * @param data 审计数据
105
+ * @returns 审计日志实体
106
+ */
107
+ logEntityChangeWithTemplate(data: {
108
+ entityType: string;
109
+ entityId: string;
110
+ operation: AuditOperation;
111
+ oldValue?: Record<string, any>;
112
+ newValue?: Record<string, any>;
113
+ changedFields?: string[];
114
+ operationTemplateKey?: string;
115
+ descriptionParams?: Record<string, any>;
116
+ changeDetails?: ChangeDetail[];
117
+ rollbackActions?: RollbackAction[];
118
+ metadata?: Record<string, any>;
119
+ }): Promise<EntityAuditLogEntity | null>;
120
+ /**
121
+ * 记录手动操作
122
+ * @param data 手动操作数据
123
+ * @returns 手动操作日志实体
124
+ */
125
+ logManualOperation(data: ManualOperationData): Promise<ManualOperationLogEntity>;
126
+ /**
127
+ * 在事务中执行操作
128
+ * @param fn 执行函数
129
+ * @param options 事务选项
130
+ * @returns 执���结果
131
+ */
132
+ withTransaction<T>(fn: (transactionId: string) => Promise<T>, options?: {
133
+ userId?: string;
134
+ username?: string;
135
+ requestIp?: string;
136
+ operationTemplateKey?: string;
137
+ descriptionParams?: Record<string, any>;
138
+ metadata?: Record<string, any>;
139
+ }): Promise<T>;
140
+ /**
141
+ * 获取当前事务ID
142
+ * @returns 当前事务ID或null
143
+ */
144
+ getCurrentTransactionId(): Promise<string | null>;
145
+ /**
146
+ * 设置当前事务ID
147
+ * @param transactionId 事务ID
148
+ */
149
+ setCurrentTransactionId(transactionId: string | null): Promise<void>;
150
+ /**
151
+ * 开始事务
152
+ * @param userId 用户ID
153
+ * @param userName 用户名
154
+ * @param ip IP地址
155
+ * @param operationTemplateKey 操作模板键
156
+ * @param descriptionParams 描述参数
157
+ * @returns 事务ID
158
+ */
159
+ beginTransaction(userId?: string, userName?: string, ip?: string, operationTemplateKey?: string, descriptionParams?: Record<string, any>): Promise<string>;
160
+ /**
161
+ * 提交事务
162
+ * @param transactionId 事务ID
163
+ */
164
+ commitTransaction(transactionId: string): Promise<void>;
165
+ /**
166
+ * 回滚事务
167
+ * @param transactionId 事务ID
168
+ */
169
+ rollbackTransaction(transactionId: string): Promise<void>;
170
+ /**
171
+ * 查询审计动作汇总记录
172
+ */
173
+ getAuditActions(options: {
174
+ userId?: string;
175
+ username?: string;
176
+ actionName?: string;
177
+ success?: boolean;
178
+ startTime?: Date;
179
+ endTime?: Date;
180
+ page?: number;
181
+ limit?: number;
182
+ }): Promise<PageDto<AuditActionSummaryEntity>>;
183
+ /**
184
+ * 查询单个审计动作的详细信息(包含关联的实体变更)
185
+ */
186
+ getAuditActionDetail(actionId: string): Promise<{
187
+ summary: {
188
+ id: string;
189
+ actionName: string;
190
+ operationTemplateKey: string;
191
+ description: string;
192
+ descriptionParams: Record<string, any>;
193
+ success: boolean;
194
+ errorMessage: string;
195
+ duration: number;
196
+ userId: string;
197
+ username: string;
198
+ requestId: string;
199
+ requestIp: string;
200
+ userAgent: string;
201
+ entityChangesCount: number;
202
+ entityTypes: string[];
203
+ operationStats: Record<string, number>;
204
+ createdAt: Date;
205
+ metadata: Record<string, any>;
206
+ };
207
+ entityChanges: EntityAuditLogEntity[];
208
+ detailedChanges: {
209
+ id: string;
210
+ entityType: string;
211
+ entityId: string;
212
+ operation: AuditOperation;
213
+ operationLabel: string;
214
+ description: string;
215
+ sequenceInAction: number;
216
+ createdAt: Date;
217
+ oldValue: Record<string, any>;
218
+ newValue: Record<string, any>;
219
+ fieldChanges: {
220
+ field: string;
221
+ fieldLabel: string;
222
+ oldValue: any;
223
+ newValue: any;
224
+ changeType: "added" | "removed" | "modified" | "unchanged";
225
+ displayOldValue?: string;
226
+ displayNewValue?: string;
227
+ }[];
228
+ changedFieldsCount: number;
229
+ changedFields: string[];
230
+ }[];
231
+ statistics: {
232
+ totalChanges: number;
233
+ totalFieldChanges: number;
234
+ byEntityType: Record<string, number>;
235
+ byOperation: Record<string, number>;
236
+ operationSequence: {
237
+ sequence: number;
238
+ entityType: string;
239
+ operation: AuditOperation;
240
+ }[];
241
+ };
242
+ }>;
243
+ /**
244
+ * 分析字段变化(支持多语言)
245
+ * @param oldValue 旧值
246
+ * @param newValue 新值
247
+ * @param operation 操作类型
248
+ * @param entityClass 实体类(可选,用于获取字段和值的多语言标签)
249
+ * @param language 语言(默认中文)
250
+ */
251
+ private analyzeFieldChanges;
252
+ /**
253
+ * 格式化显示值
254
+ */
255
+ private formatDisplayValue;
256
+ /**
257
+ * 获取操作标签
258
+ */
259
+ private getOperationLabel;
260
+ /**
261
+ * 按字段分组统计
262
+ */
263
+ private groupBy;
94
264
  }