@nest-omni/core 4.1.3-3 → 4.1.3-31

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 (370) hide show
  1. package/audit/audit.module.d.ts +1 -0
  2. package/audit/audit.module.js +51 -2
  3. package/audit/controllers/audit.controller.d.ts +57 -1
  4. package/audit/controllers/audit.controller.js +43 -0
  5. package/audit/decorators/audit-action.decorator.d.ts +74 -0
  6. package/audit/decorators/audit-action.decorator.js +42 -0
  7. package/audit/decorators/audit-controller.decorator.d.ts +1 -1
  8. package/audit/decorators/audit-controller.decorator.js +2 -2
  9. package/audit/decorators/audit-operation.decorator.d.ts +0 -7
  10. package/audit/decorators/audit-operation.decorator.js +0 -7
  11. package/audit/decorators/entity-audit.decorator.d.ts +78 -2
  12. package/audit/decorators/entity-audit.decorator.js +145 -4
  13. package/audit/decorators/index.d.ts +2 -0
  14. package/audit/decorators/index.js +2 -0
  15. package/audit/dto/audit-action-query.dto.d.ts +13 -0
  16. package/audit/dto/audit-action-query.dto.js +77 -0
  17. package/audit/dto/index.d.ts +1 -0
  18. package/audit/dto/index.js +1 -0
  19. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  20. package/audit/entities/audit-action-summary.entity.js +101 -0
  21. package/audit/entities/entity-audit-log.entity.d.ts +7 -2
  22. package/audit/entities/entity-audit-log.entity.js +45 -9
  23. package/audit/entities/entity-transaction.entity.d.ts +8 -2
  24. package/audit/entities/entity-transaction.entity.js +39 -3
  25. package/audit/entities/index.d.ts +3 -0
  26. package/audit/entities/index.js +3 -0
  27. package/audit/entities/manual-operation-log.entity.d.ts +0 -2
  28. package/audit/entities/manual-operation-log.entity.js +8 -9
  29. package/audit/enums/audit.enums.d.ts +14 -6
  30. package/audit/enums/audit.enums.js +18 -9
  31. package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
  32. package/audit/examples/decorator-value-mapping.example.js +414 -0
  33. package/audit/index.d.ts +5 -1
  34. package/audit/index.js +29 -2
  35. package/audit/interceptors/audit-action.interceptor.d.ts +39 -0
  36. package/audit/interceptors/audit-action.interceptor.js +217 -0
  37. package/audit/interceptors/audit.interceptor.d.ts +1 -0
  38. package/audit/interceptors/audit.interceptor.js +19 -11
  39. package/audit/interceptors/index.d.ts +1 -0
  40. package/audit/interceptors/index.js +1 -0
  41. package/audit/interfaces/audit.interfaces.d.ts +132 -4
  42. package/audit/services/audit-action.service.d.ts +142 -0
  43. package/audit/services/audit-action.service.js +246 -0
  44. package/audit/services/audit-context.service.d.ts +91 -0
  45. package/audit/services/audit-context.service.js +170 -0
  46. package/audit/services/entity-audit.service.d.ts +220 -9
  47. package/audit/services/entity-audit.service.js +761 -72
  48. package/audit/services/index.d.ts +3 -0
  49. package/audit/services/index.js +3 -0
  50. package/audit/services/manual-audit-log.service.d.ts +23 -23
  51. package/audit/services/manual-audit-log.service.js +34 -57
  52. package/audit/services/multi-database.service.d.ts +0 -5
  53. package/audit/services/multi-database.service.js +0 -24
  54. package/audit/services/operation-description.service.d.ts +14 -3
  55. package/audit/services/operation-description.service.js +165 -26
  56. package/audit/services/transaction-audit.service.d.ts +1 -0
  57. package/audit/services/transaction-audit.service.js +12 -9
  58. package/audit/subscribers/entity-audit.subscriber.d.ts +5 -0
  59. package/audit/subscribers/entity-audit.subscriber.js +69 -5
  60. package/cache/cache.module.d.ts +7 -8
  61. package/cache/cache.module.js +15 -13
  62. package/cache/cache.service.d.ts +6 -4
  63. package/cache/cache.service.js +24 -12
  64. package/cache/decorators/cache-put.decorator.js +5 -4
  65. package/cache/dependencies/callback.dependency.js +9 -0
  66. package/cache/dependencies/db.dependency.d.ts +43 -12
  67. package/cache/dependencies/db.dependency.js +46 -18
  68. package/cache/dependencies/tag.dependency.d.ts +31 -4
  69. package/cache/dependencies/tag.dependency.js +100 -11
  70. package/cache/entities/index.d.ts +1 -0
  71. package/cache/entities/index.js +17 -0
  72. package/cache/entities/typeorm-cache.entity.d.ts +71 -0
  73. package/cache/entities/typeorm-cache.entity.js +110 -0
  74. package/cache/index.d.ts +2 -1
  75. package/cache/index.js +19 -2
  76. package/cache/interfaces/cache-options.interface.d.ts +8 -0
  77. package/cache/providers/index.d.ts +2 -1
  78. package/cache/providers/index.js +2 -1
  79. package/cache/providers/lrucache.provider.d.ts +77 -0
  80. package/cache/providers/lrucache.provider.js +228 -0
  81. package/cache/providers/redis-cache.provider.d.ts +1 -0
  82. package/cache/providers/redis-cache.provider.js +8 -6
  83. package/cache/providers/typeorm-cache.provider.d.ts +211 -0
  84. package/cache/providers/typeorm-cache.provider.js +483 -0
  85. package/common/boilerplate.polyfill.d.ts +1 -0
  86. package/common/boilerplate.polyfill.js +18 -1
  87. package/common/helpers/validation-metadata-helper.d.ts +112 -0
  88. package/common/helpers/validation-metadata-helper.js +164 -0
  89. package/common/index.d.ts +1 -0
  90. package/common/index.js +4 -0
  91. package/decorators/examples/field-i18n.example.d.ts +294 -0
  92. package/decorators/examples/field-i18n.example.js +478 -0
  93. package/decorators/field.decorators.d.ts +95 -3
  94. package/decorators/field.decorators.js +152 -18
  95. package/decorators/transform.decorators.d.ts +0 -2
  96. package/decorators/transform.decorators.js +0 -23
  97. package/decorators/translate.decorator.d.ts +26 -0
  98. package/decorators/translate.decorator.js +26 -1
  99. package/email-log/email-log.constants.d.ts +8 -0
  100. package/email-log/email-log.constants.js +11 -0
  101. package/email-log/email-log.module.d.ts +47 -0
  102. package/email-log/email-log.module.js +140 -0
  103. package/email-log/index.d.ts +11 -0
  104. package/email-log/index.js +48 -0
  105. package/email-log/interfaces/email-log-options.interface.d.ts +61 -0
  106. package/email-log/interfaces/email-log-options.interface.js +134 -0
  107. package/email-log/interfaces/email-log-transport.interface.d.ts +20 -0
  108. package/email-log/interfaces/email-log-transport.interface.js +2 -0
  109. package/email-log/interfaces/index.d.ts +2 -0
  110. package/email-log/interfaces/index.js +18 -0
  111. package/email-log/providers/email-provider.d.ts +42 -0
  112. package/email-log/providers/email-provider.js +127 -0
  113. package/email-log/providers/index.d.ts +1 -0
  114. package/email-log/providers/index.js +17 -0
  115. package/email-log/services/email-log-alert.service.d.ts +46 -0
  116. package/email-log/services/email-log-alert.service.js +162 -0
  117. package/email-log/services/email-log-formatter.service.d.ts +78 -0
  118. package/email-log/services/email-log-formatter.service.js +442 -0
  119. package/email-log/services/email-log-logger.service.d.ts +85 -0
  120. package/email-log/services/email-log-logger.service.js +168 -0
  121. package/email-log/services/email-log-rate-limiter.service.d.ts +42 -0
  122. package/email-log/services/email-log-rate-limiter.service.js +110 -0
  123. package/email-log/services/email-log-transport.service.d.ts +80 -0
  124. package/email-log/services/email-log-transport.service.js +271 -0
  125. package/email-log/services/index.d.ts +5 -0
  126. package/email-log/services/index.js +21 -0
  127. package/email-log/transports/index.d.ts +1 -0
  128. package/email-log/transports/index.js +17 -0
  129. package/email-log/transports/pino-email.transport.d.ts +56 -0
  130. package/email-log/transports/pino-email.transport.js +188 -0
  131. package/email-log/utils/index.d.ts +2 -0
  132. package/email-log/utils/index.js +18 -0
  133. package/email-log/utils/log-level.helper.d.ts +46 -0
  134. package/email-log/utils/log-level.helper.js +74 -0
  135. package/email-log/utils/pino-transport.utils.d.ts +135 -0
  136. package/email-log/utils/pino-transport.utils.js +238 -0
  137. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  138. package/file-upload/controllers/file-access.controller.js +128 -0
  139. package/file-upload/decorators/column.decorator.d.ts +151 -0
  140. package/file-upload/decorators/column.decorator.js +273 -0
  141. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  142. package/file-upload/decorators/csv-data.decorator.js +85 -0
  143. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  144. package/file-upload/decorators/csv-import.decorator.js +24 -0
  145. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  146. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  147. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  148. package/file-upload/decorators/excel-data.decorator.js +85 -0
  149. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  150. package/file-upload/decorators/file-upload.decorator.js +172 -0
  151. package/file-upload/decorators/index.d.ts +5 -0
  152. package/file-upload/decorators/index.js +38 -0
  153. package/file-upload/decorators/process.decorator.d.ts +40 -0
  154. package/file-upload/decorators/process.decorator.js +52 -0
  155. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  156. package/file-upload/decorators/validate-data.decorator.js +39 -0
  157. package/file-upload/dto/create-file.dto.d.ts +24 -0
  158. package/file-upload/dto/create-file.dto.js +112 -0
  159. package/file-upload/dto/find-files.dto.d.ts +15 -0
  160. package/file-upload/dto/find-files.dto.js +76 -0
  161. package/file-upload/dto/index.d.ts +4 -0
  162. package/file-upload/dto/index.js +20 -0
  163. package/file-upload/dto/pagination.dto.d.ts +7 -0
  164. package/file-upload/dto/pagination.dto.js +39 -0
  165. package/file-upload/dto/update-file.dto.d.ts +15 -0
  166. package/file-upload/dto/update-file.dto.js +67 -0
  167. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  168. package/file-upload/entities/file-metadata.entity.js +76 -0
  169. package/file-upload/entities/file.entity.d.ts +114 -0
  170. package/file-upload/entities/file.entity.js +350 -0
  171. package/file-upload/entities/index.d.ts +2 -0
  172. package/file-upload/entities/index.js +18 -0
  173. package/file-upload/enums/file-type.enum.d.ts +72 -0
  174. package/file-upload/enums/file-type.enum.js +212 -0
  175. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  176. package/file-upload/exceptions/file-upload.exception.js +120 -0
  177. package/file-upload/exceptions/index.d.ts +1 -0
  178. package/file-upload/exceptions/index.js +17 -0
  179. package/file-upload/file-upload.module.d.ts +89 -0
  180. package/file-upload/file-upload.module.js +292 -0
  181. package/file-upload/index.d.ts +37 -0
  182. package/file-upload/index.js +77 -0
  183. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  184. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  185. package/file-upload/interceptors/index.d.ts +1 -0
  186. package/file-upload/interceptors/index.js +17 -0
  187. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  188. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  189. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  190. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  191. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  192. package/file-upload/interfaces/file-entity.interface.js +28 -0
  193. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  194. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  195. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  196. package/file-upload/interfaces/file-processor.interface.js +2 -0
  197. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  198. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  199. package/file-upload/interfaces/index.d.ts +7 -0
  200. package/file-upload/interfaces/index.js +24 -0
  201. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  202. package/file-upload/interfaces/processor-options.interface.js +2 -0
  203. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  204. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  205. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  206. package/file-upload/interfaces/upload-options.interface.js +2 -0
  207. package/file-upload/processors/csv.processor.d.ts +98 -0
  208. package/file-upload/processors/csv.processor.js +391 -0
  209. package/file-upload/processors/excel.processor.d.ts +130 -0
  210. package/file-upload/processors/excel.processor.js +547 -0
  211. package/file-upload/processors/image.processor.d.ts +199 -0
  212. package/file-upload/processors/image.processor.js +377 -0
  213. package/file-upload/providers/index.d.ts +2 -0
  214. package/file-upload/providers/index.js +18 -0
  215. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  216. package/file-upload/providers/local-storage.provider.js +484 -0
  217. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  218. package/file-upload/providers/s3-storage.provider.js +455 -0
  219. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  220. package/file-upload/services/file-signature-validator.service.js +376 -0
  221. package/file-upload/services/file.service.d.ts +193 -0
  222. package/file-upload/services/file.service.js +638 -0
  223. package/file-upload/services/index.d.ts +4 -0
  224. package/file-upload/services/index.js +20 -0
  225. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  226. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  227. package/file-upload/services/mime-registry.service.d.ts +47 -0
  228. package/file-upload/services/mime-registry.service.js +167 -0
  229. package/file-upload/utils/checksum.util.d.ts +28 -0
  230. package/file-upload/utils/checksum.util.js +65 -0
  231. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  232. package/file-upload/utils/dynamic-import.util.js +156 -0
  233. package/file-upload/utils/filename.util.d.ts +59 -0
  234. package/file-upload/utils/filename.util.js +184 -0
  235. package/file-upload/utils/filepath.util.d.ts +70 -0
  236. package/file-upload/utils/filepath.util.js +152 -0
  237. package/file-upload/utils/index.d.ts +4 -0
  238. package/file-upload/utils/index.js +20 -0
  239. package/filters/bad-request.filter.d.ts +9 -0
  240. package/filters/bad-request.filter.js +57 -16
  241. package/http-client/config/http-client.config.d.ts +5 -0
  242. package/http-client/config/http-client.config.js +27 -14
  243. package/http-client/decorators/http-client.decorators.d.ts +7 -28
  244. package/http-client/decorators/http-client.decorators.js +124 -99
  245. package/http-client/entities/http-log.entity.d.ts +0 -20
  246. package/http-client/entities/http-log.entity.js +1 -21
  247. package/http-client/examples/advanced-usage.example.d.ts +4 -5
  248. package/http-client/examples/advanced-usage.example.js +7 -59
  249. package/http-client/examples/axios-config-extended.example.d.ts +17 -0
  250. package/http-client/examples/axios-config-extended.example.js +311 -0
  251. package/http-client/examples/flexible-response-example.d.ts +28 -0
  252. package/http-client/examples/flexible-response-example.js +120 -0
  253. package/http-client/examples/index.d.ts +2 -0
  254. package/http-client/examples/index.js +2 -0
  255. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  256. package/http-client/examples/proxy-from-environment.example.js +409 -0
  257. package/http-client/examples/ssl-certificate.example.d.ts +47 -0
  258. package/http-client/examples/ssl-certificate.example.js +432 -0
  259. package/http-client/http-client.module.d.ts +43 -2
  260. package/http-client/http-client.module.js +150 -90
  261. package/http-client/index.d.ts +1 -1
  262. package/http-client/interfaces/api-client-config.interface.d.ts +24 -103
  263. package/http-client/interfaces/http-client-config.interface.d.ts +137 -62
  264. package/http-client/services/api-client-registry.service.d.ts +8 -21
  265. package/http-client/services/api-client-registry.service.js +31 -282
  266. package/http-client/services/circuit-breaker.service.d.ts +69 -2
  267. package/http-client/services/circuit-breaker.service.js +185 -7
  268. package/http-client/services/http-client.service.d.ts +85 -23
  269. package/http-client/services/http-client.service.js +512 -168
  270. package/http-client/services/http-log-query.service.js +0 -13
  271. package/http-client/services/index.d.ts +0 -1
  272. package/http-client/services/index.js +0 -1
  273. package/http-client/services/logging.service.d.ts +69 -16
  274. package/http-client/services/logging.service.js +290 -170
  275. package/http-client/utils/call-stack-extractor.util.d.ts +26 -0
  276. package/http-client/utils/call-stack-extractor.util.js +35 -0
  277. package/http-client/utils/context-extractor.util.d.ts +2 -0
  278. package/http-client/utils/context-extractor.util.js +17 -3
  279. package/http-client/utils/curl-generator.util.js +2 -5
  280. package/http-client/utils/index.d.ts +2 -0
  281. package/http-client/utils/index.js +2 -0
  282. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  283. package/http-client/utils/proxy-environment.util.js +154 -0
  284. package/http-client/utils/retry-recorder.util.d.ts +0 -4
  285. package/http-client/utils/retry-recorder.util.js +2 -27
  286. package/http-client/utils/sanitize.util.d.ts +58 -0
  287. package/http-client/utils/sanitize.util.js +188 -0
  288. package/http-client/utils/security-validator.util.d.ts +118 -0
  289. package/http-client/utils/security-validator.util.js +354 -0
  290. package/index.d.ts +4 -1
  291. package/index.js +6 -1
  292. package/interceptors/translation-interceptor.service.d.ts +7 -0
  293. package/interceptors/translation-interceptor.service.js +40 -8
  294. package/ip-filter/constants.d.ts +21 -0
  295. package/ip-filter/constants.js +24 -0
  296. package/ip-filter/decorators/index.d.ts +1 -0
  297. package/ip-filter/decorators/index.js +17 -0
  298. package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
  299. package/ip-filter/decorators/ip-filter.decorator.js +79 -0
  300. package/ip-filter/guards/index.d.ts +1 -0
  301. package/ip-filter/guards/index.js +17 -0
  302. package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
  303. package/ip-filter/guards/ip-filter.guard.js +174 -0
  304. package/ip-filter/index.d.ts +7 -0
  305. package/ip-filter/index.js +23 -0
  306. package/ip-filter/interfaces/index.d.ts +4 -0
  307. package/ip-filter/interfaces/index.js +20 -0
  308. package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
  309. package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
  310. package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
  311. package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
  312. package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
  313. package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
  314. package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
  315. package/ip-filter/interfaces/ip-rule.interface.js +2 -0
  316. package/ip-filter/ip-filter.module.d.ts +55 -0
  317. package/ip-filter/ip-filter.module.js +105 -0
  318. package/ip-filter/services/index.d.ts +1 -0
  319. package/ip-filter/services/index.js +17 -0
  320. package/ip-filter/services/ip-filter.service.d.ts +92 -0
  321. package/ip-filter/services/ip-filter.service.js +238 -0
  322. package/ip-filter/utils/index.d.ts +1 -0
  323. package/ip-filter/utils/index.js +17 -0
  324. package/ip-filter/utils/ip-utils.d.ts +61 -0
  325. package/ip-filter/utils/ip-utils.js +162 -0
  326. package/package.json +34 -29
  327. package/providers/context.provider.d.ts +9 -0
  328. package/providers/context.provider.js +13 -0
  329. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  330. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  331. package/redis-lock/index.d.ts +2 -0
  332. package/redis-lock/index.js +5 -1
  333. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  334. package/redis-lock/lock-heartbeat.service.js +232 -0
  335. package/redis-lock/redis-lock.module.d.ts +6 -0
  336. package/redis-lock/redis-lock.module.js +136 -77
  337. package/redis-lock/redis-lock.service.d.ts +31 -0
  338. package/redis-lock/redis-lock.service.js +124 -17
  339. package/setup/bootstrap.setup.d.ts +2 -1
  340. package/setup/bootstrap.setup.js +3 -2
  341. package/setup/index.d.ts +1 -0
  342. package/setup/index.js +1 -0
  343. package/setup/run-in-mode.decorator.d.ts +56 -0
  344. package/setup/run-in-mode.decorator.js +92 -0
  345. package/setup/schedule.decorator.d.ts +1 -0
  346. package/setup/schedule.decorator.js +28 -13
  347. package/setup/worker.decorator.js +10 -1
  348. package/shared/index.d.ts +1 -1
  349. package/shared/index.js +1 -1
  350. package/shared/{serviceRegistryModule.js → service-registry.module.js} +28 -17
  351. package/shared/services/api-config.service.d.ts +41 -0
  352. package/shared/services/api-config.service.js +175 -8
  353. package/shared/services/index.d.ts +0 -1
  354. package/shared/services/index.js +0 -1
  355. package/validators/custom-validate.validator.d.ts +1 -0
  356. package/validators/custom-validate.validator.js +1 -0
  357. package/validators/file-mimetype.validator.d.ts +0 -2
  358. package/validators/file-mimetype.validator.js +4 -6
  359. package/validators/is-exists.validator.d.ts +15 -6
  360. package/validators/is-exists.validator.js +8 -7
  361. package/validators/is-unique.validator.d.ts +22 -7
  362. package/validators/is-unique.validator.js +41 -17
  363. package/vault/vault-config.service.js +1 -1
  364. package/cache/providers/memory-cache.provider.d.ts +0 -49
  365. package/cache/providers/memory-cache.provider.js +0 -197
  366. package/http-client/services/cache.service.d.ts +0 -76
  367. package/http-client/services/cache.service.js +0 -333
  368. package/shared/services/validator.service.d.ts +0 -3
  369. package/shared/services/validator.service.js +0 -20
  370. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -4,6 +4,7 @@ import { AuditConfig } from './interfaces';
4
4
  * 审计模块
5
5
  */
6
6
  export declare class AuditModule {
7
+ private static readonly logger;
7
8
  /**
8
9
  * 注册审计模块
9
10
  * @param config 审计配置
@@ -37,6 +37,10 @@ let AuditModule = AuditModule_1 = class AuditModule {
37
37
  var _a, _b;
38
38
  const auditConnectionName = ((_a = config === null || config === void 0 ? void 0 : config.connections) === null || _a === void 0 ? void 0 : _a.audit) || 'default';
39
39
  const monitoredConnections = ((_b = config === null || config === void 0 ? void 0 : config.connections) === null || _b === void 0 ? void 0 : _b.monitored) || ['default'];
40
+ if (process.env.NODE_ENV !== 'prod') {
41
+ this.logger.log(`Initializing AuditModule with connection: ${auditConnectionName}`);
42
+ this.logger.log(`Monitoring connections: ${monitoredConnections.join(', ')}`);
43
+ }
40
44
  // 创建多个订阅者提供者,每个监听的数据库连接一个
41
45
  const subscriberProviders = monitoredConnections.map((connectionName) => ({
42
46
  provide: `AUDIT_SUBSCRIBER_${connectionName}`,
@@ -67,6 +71,27 @@ let AuditModule = AuditModule_1 = class AuditModule {
67
71
  },
68
72
  inject: [(0, typeorm_1.getDataSourceToken)(auditConnectionName)],
69
73
  },
74
+ {
75
+ provide: (0, typeorm_1.getRepositoryToken)(entities_1.OperationTemplateEntity),
76
+ useFactory: (dataSource) => {
77
+ return dataSource.getRepository(entities_1.OperationTemplateEntity);
78
+ },
79
+ inject: [(0, typeorm_1.getDataSourceToken)(auditConnectionName)],
80
+ },
81
+ {
82
+ provide: (0, typeorm_1.getRepositoryToken)(entities_1.ManualOperationLogEntity),
83
+ useFactory: (dataSource) => {
84
+ return dataSource.getRepository(entities_1.ManualOperationLogEntity);
85
+ },
86
+ inject: [(0, typeorm_1.getDataSourceToken)(auditConnectionName)],
87
+ },
88
+ {
89
+ provide: (0, typeorm_1.getRepositoryToken)(entities_1.AuditActionSummaryEntity),
90
+ useFactory: (dataSource) => {
91
+ return dataSource.getRepository(entities_1.AuditActionSummaryEntity);
92
+ },
93
+ inject: [(0, typeorm_1.getDataSourceToken)(auditConnectionName)],
94
+ },
70
95
  {
71
96
  provide: 'AUDIT_ENTITY_MANAGER',
72
97
  useFactory: (dataSource) => {
@@ -78,8 +103,14 @@ let AuditModule = AuditModule_1 = class AuditModule {
78
103
  return {
79
104
  module: AuditModule_1,
80
105
  imports: [
81
- // 审计日志存储到指定的数据库连接
82
- typeorm_1.TypeOrmModule.forFeature([entities_1.EntityAuditLogEntity, entities_1.EntityTransactionEntity], auditConnectionName),
106
+ // ��计日志存储到指定的数据库连接
107
+ typeorm_1.TypeOrmModule.forFeature([
108
+ entities_1.EntityAuditLogEntity,
109
+ entities_1.EntityTransactionEntity,
110
+ entities_1.OperationTemplateEntity,
111
+ entities_1.ManualOperationLogEntity,
112
+ entities_1.AuditActionSummaryEntity,
113
+ ], auditConnectionName),
83
114
  nestjs_cls_1.ClsModule.forRoot({
84
115
  global: true,
85
116
  middleware: { mount: true },
@@ -105,7 +136,11 @@ let AuditModule = AuditModule_1 = class AuditModule {
105
136
  ...repositoryProviders,
106
137
  services_1.EntityAuditService,
107
138
  services_1.TransactionAuditService,
139
+ services_1.OperationDescriptionService,
140
+ services_1.AuditActionService,
141
+ services_1.ManualAuditLogService,
108
142
  interceptors_1.AuditInterceptor,
143
+ interceptors_1.AuditActionInterceptor,
109
144
  ...subscriberProviders,
110
145
  ],
111
146
  exports: [
@@ -114,7 +149,12 @@ let AuditModule = AuditModule_1 = class AuditModule {
114
149
  services_1.MultiDatabaseService,
115
150
  services_1.EntityAuditService,
116
151
  services_1.TransactionAuditService,
152
+ services_1.OperationDescriptionService,
153
+ services_1.AuditActionService,
154
+ services_1.ManualAuditLogService,
117
155
  interceptors_1.AuditInterceptor,
156
+ interceptors_1.AuditActionInterceptor,
157
+ (0, typeorm_1.getRepositoryToken)(entities_1.AuditActionSummaryEntity),
118
158
  ],
119
159
  };
120
160
  }
@@ -226,7 +266,11 @@ let AuditModule = AuditModule_1 = class AuditModule {
226
266
  ...repositoryProviders,
227
267
  services_1.EntityAuditService,
228
268
  services_1.TransactionAuditService,
269
+ services_1.OperationDescriptionService,
270
+ services_1.AuditActionService,
271
+ services_1.ManualAuditLogService,
229
272
  interceptors_1.AuditInterceptor,
273
+ interceptors_1.AuditActionInterceptor,
230
274
  ],
231
275
  exports: [
232
276
  services_1.AuditContextService,
@@ -234,12 +278,17 @@ let AuditModule = AuditModule_1 = class AuditModule {
234
278
  services_1.MultiDatabaseService,
235
279
  services_1.EntityAuditService,
236
280
  services_1.TransactionAuditService,
281
+ services_1.OperationDescriptionService,
282
+ services_1.AuditActionService,
283
+ services_1.ManualAuditLogService,
237
284
  interceptors_1.AuditInterceptor,
285
+ interceptors_1.AuditActionInterceptor,
238
286
  ],
239
287
  };
240
288
  }
241
289
  };
242
290
  exports.AuditModule = AuditModule;
291
+ AuditModule.logger = new common_1.Logger(AuditModule_1.name);
243
292
  exports.AuditModule = AuditModule = AuditModule_1 = __decorate([
244
293
  (0, common_1.Global)(),
245
294
  (0, common_1.Module)({})
@@ -1,6 +1,6 @@
1
1
  import { EntityAuditService } from '../services/entity-audit.service';
2
2
  import { TransactionAuditService } from '../services/transaction-audit.service';
3
- import { AuditLogQueryDto, CompareEntitiesDto, RestoreEntityDto, PreCheckRestoreDto, BeginTransactionDto } from '../dto';
3
+ import { AuditLogQueryDto, AuditActionQueryDto, CompareEntitiesDto, RestoreEntityDto, PreCheckRestoreDto, BeginTransactionDto } from '../dto';
4
4
  import { EntityAuditLogEntity } from '../entities';
5
5
  import { EntityDifference, PreCheckResult, RestoreResult } from '../interfaces';
6
6
  import { PageDto } from '../../common/dto';
@@ -41,4 +41,60 @@ export declare class AuditController {
41
41
  * 回滚审计事务
42
42
  */
43
43
  rollbackTransaction(transactionId: string): Promise<void>;
44
+ /**
45
+ * 查询审计动作汇总记录
46
+ */
47
+ getAuditActions(query: AuditActionQueryDto): Promise<PageDto<import("../entities").AuditActionSummaryEntity>>;
48
+ /**
49
+ * 查询单个审计动作的详细信息
50
+ */
51
+ getAuditActionDetail(actionId: string): Promise<{
52
+ summary: {
53
+ id: string;
54
+ actionName: string;
55
+ operationTemplateKey: string;
56
+ description: string;
57
+ descriptionParams: Record<string, any>;
58
+ success: boolean;
59
+ errorMessage: string;
60
+ duration: number;
61
+ userId: string;
62
+ username: string;
63
+ requestId: string;
64
+ requestIp: string;
65
+ userAgent: string;
66
+ entityChangesCount: number;
67
+ entityTypes: string[];
68
+ operationStats: Record<string, number>;
69
+ createdAt: Date;
70
+ metadata: Record<string, any>;
71
+ };
72
+ entityChanges: EntityAuditLogEntity[];
73
+ detailedChanges: {
74
+ id: string;
75
+ entityType: string;
76
+ entityId: string;
77
+ operation: import("..").AuditOperation;
78
+ operationLabel: string;
79
+ description: string;
80
+ sequenceInAction: number;
81
+ createdAt: Date;
82
+ oldValue: Record<string, any>;
83
+ newValue: Record<string, any>;
84
+ changeDetails: import("../interfaces").ChangeDetail[];
85
+ changedFieldsCount: number;
86
+ changedFields: string[];
87
+ }[];
88
+ statistics: {
89
+ totalChanges: number;
90
+ totalFieldChanges: number;
91
+ byEntityType: Record<string, number>;
92
+ byOperation: Record<string, number>;
93
+ operationSequence: {
94
+ sequence: number;
95
+ entityType: string;
96
+ operation: import("..").AuditOperation;
97
+ }[];
98
+ };
99
+ }>;
44
100
  }
@@ -93,6 +93,31 @@ let AuditController = class AuditController {
93
93
  return this.transactionAuditService.rollbackTransaction(transactionId);
94
94
  });
95
95
  }
96
+ /**
97
+ * 查询审计动作汇总记录
98
+ */
99
+ getAuditActions(query) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ return this.entityAuditService.getAuditActions({
102
+ userId: query.userId,
103
+ username: query.username,
104
+ actionName: query.actionName,
105
+ success: query.success,
106
+ startTime: query.startTime ? new Date(query.startTime) : undefined,
107
+ endTime: query.endTime ? new Date(query.endTime) : undefined,
108
+ page: query.page,
109
+ limit: query.limit,
110
+ });
111
+ });
112
+ }
113
+ /**
114
+ * 查询单个审计动作的详细信息
115
+ */
116
+ getAuditActionDetail(actionId) {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ return this.entityAuditService.getAuditActionDetail(actionId);
119
+ });
120
+ }
96
121
  };
97
122
  exports.AuditController = AuditController;
98
123
  __decorate([
@@ -158,6 +183,24 @@ __decorate([
158
183
  __metadata("design:paramtypes", [String]),
159
184
  __metadata("design:returntype", Promise)
160
185
  ], AuditController.prototype, "rollbackTransaction", null);
186
+ __decorate([
187
+ (0, common_1.Get)('actions'),
188
+ (0, swagger_1.ApiOperation)({ summary: '查询审计动作汇总记录' }),
189
+ (0, swagger_1.ApiResponse)({ status: 200, description: '返回审计动作汇总列表' }),
190
+ __param(0, (0, common_1.Query)()),
191
+ __metadata("design:type", Function),
192
+ __metadata("design:paramtypes", [dto_1.AuditActionQueryDto]),
193
+ __metadata("design:returntype", Promise)
194
+ ], AuditController.prototype, "getAuditActions", null);
195
+ __decorate([
196
+ (0, common_1.Get)('actions/:actionId'),
197
+ (0, swagger_1.ApiOperation)({ summary: '查询审计动作详细信息' }),
198
+ (0, swagger_1.ApiResponse)({ status: 200, description: '返回审计动作详细信息' }),
199
+ __param(0, (0, common_1.Param)('actionId')),
200
+ __metadata("design:type", Function),
201
+ __metadata("design:paramtypes", [String]),
202
+ __metadata("design:returntype", Promise)
203
+ ], AuditController.prototype, "getAuditActionDetail", null);
161
204
  exports.AuditController = AuditController = __decorate([
162
205
  (0, common_1.Controller)('audit'),
163
206
  (0, swagger_1.ApiTags)('audit'),
@@ -0,0 +1,74 @@
1
+ import { AuditParamsContext } from '../services/audit-context.service';
2
+ export declare const AUDIT_ACTION_METADATA = "AUDIT_ACTION_METADATA";
3
+ /**
4
+ * 审计动作选项
5
+ */
6
+ export interface AuditActionOptions {
7
+ /**
8
+ * 操作模板键(可选)
9
+ * @example 'order.create'
10
+ */
11
+ templateKey?: string;
12
+ /**
13
+ * 参数构建器,用于从请求和实体变更中提取描述参数
14
+ * @param context - 包含 req, result, error, entityChanges 的上下文
15
+ * @returns 描述参数对象
16
+ *
17
+ * @example
18
+ * paramsBuilder: (context) => {
19
+ * const order = context.findEntity('Order', 'CREATE');
20
+ * const items = context.findEntities('OrderItem', 'CREATE');
21
+ * return {
22
+ * 'order.sn': order?.newValue.orderSn,
23
+ * 'product.count': items.length,
24
+ * 'receiver': order?.newValue.receiverName,
25
+ * };
26
+ * }
27
+ */
28
+ paramsBuilder?: (context: AuditParamsContext) => Record<string, any>;
29
+ /**
30
+ * 是否启用审计(默认 true)
31
+ */
32
+ enabled?: boolean;
33
+ /**
34
+ * 扩展元数据
35
+ */
36
+ metadata?: Record<string, any>;
37
+ }
38
+ /**
39
+ * 审计动作装饰器元数据
40
+ */
41
+ export interface AuditActionMetadata {
42
+ actionName: string;
43
+ options: AuditActionOptions;
44
+ }
45
+ /**
46
+ * 审计动作装饰器
47
+ * 用于在控制器方法上标记审计动作,自动收集该请求中的所有实体变更
48
+ *
49
+ * @param actionName - 操作名称,如 'createOrder', 'cancelOrder'
50
+ * @param options - 审计动作选项
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * @Post()
55
+ * @AuditAction('createOrder', {
56
+ * templateKey: 'order.create',
57
+ * paramsBuilder: (context) => {
58
+ * const order = context.findEntity('Order', 'CREATE');
59
+ * const items = context.findEntities('OrderItem', 'CREATE');
60
+ * return {
61
+ * 'order.sn': order?.newValue.orderSn,
62
+ * 'product.count': items.length,
63
+ * 'product.names': items.map(i => i.metadata?.productName).join('、'),
64
+ * 'receiver': order?.newValue.receiverName,
65
+ * 'totalAmount': order?.newValue.totalAmount,
66
+ * };
67
+ * }
68
+ * })
69
+ * async createOrder(@Body() dto: CreateOrderDto) {
70
+ * return await this.orderService.create(dto);
71
+ * }
72
+ * ```
73
+ */
74
+ export declare function AuditAction(actionName: string, options?: AuditActionOptions): MethodDecorator;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUDIT_ACTION_METADATA = void 0;
4
+ exports.AuditAction = AuditAction;
5
+ const common_1 = require("@nestjs/common");
6
+ exports.AUDIT_ACTION_METADATA = 'AUDIT_ACTION_METADATA';
7
+ /**
8
+ * 审计动作装饰器
9
+ * 用于在控制器方法上标记审计动作,自动收集该请求中的所有实体变更
10
+ *
11
+ * @param actionName - 操作名称,如 'createOrder', 'cancelOrder'
12
+ * @param options - 审计动作选项
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * @Post()
17
+ * @AuditAction('createOrder', {
18
+ * templateKey: 'order.create',
19
+ * paramsBuilder: (context) => {
20
+ * const order = context.findEntity('Order', 'CREATE');
21
+ * const items = context.findEntities('OrderItem', 'CREATE');
22
+ * return {
23
+ * 'order.sn': order?.newValue.orderSn,
24
+ * 'product.count': items.length,
25
+ * 'product.names': items.map(i => i.metadata?.productName).join('、'),
26
+ * 'receiver': order?.newValue.receiverName,
27
+ * 'totalAmount': order?.newValue.totalAmount,
28
+ * };
29
+ * }
30
+ * })
31
+ * async createOrder(@Body() dto: CreateOrderDto) {
32
+ * return await this.orderService.create(dto);
33
+ * }
34
+ * ```
35
+ */
36
+ function AuditAction(actionName, options = {}) {
37
+ const metadata = {
38
+ actionName,
39
+ options: Object.assign({ enabled: true }, options),
40
+ };
41
+ return (0, common_1.SetMetadata)(exports.AUDIT_ACTION_METADATA, metadata);
42
+ }
@@ -5,7 +5,7 @@ export declare const METHOD_AUDIT_OPTIONS: unique symbol;
5
5
  * 控制器审计装饰器
6
6
  * @param options 控制器审计选项
7
7
  */
8
- export declare function EntityAuditController(options?: ControllerAuditOptions): ClassDecorator;
8
+ export declare function AuditController(options?: ControllerAuditOptions): ClassDecorator;
9
9
  /**
10
10
  * 方法审计装饰器
11
11
  * @param options 方法审计选项
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.METHOD_AUDIT_OPTIONS = exports.CONTROLLER_AUDIT_OPTIONS = void 0;
4
- exports.EntityAuditController = EntityAuditController;
4
+ exports.AuditController = AuditController;
5
5
  exports.AuditMethod = AuditMethod;
6
6
  // 元数据键
7
7
  exports.CONTROLLER_AUDIT_OPTIONS = Symbol('CONTROLLER_AUDIT_OPTIONS');
@@ -10,7 +10,7 @@ exports.METHOD_AUDIT_OPTIONS = Symbol('METHOD_AUDIT_OPTIONS');
10
10
  * 控制器审计装饰器
11
11
  * @param options 控制器审计选项
12
12
  */
13
- function EntityAuditController(options) {
13
+ function AuditController(options) {
14
14
  return (target) => {
15
15
  Reflect.defineMetadata(exports.CONTROLLER_AUDIT_OPTIONS, options || {}, target);
16
16
  };
@@ -7,7 +7,6 @@ export declare const AUDIT_OPERATION_OPTIONS: unique symbol;
7
7
  * 用于手动记录业务操作的审计日志,支持:
8
8
  * - 自定义操作模板
9
9
  * - 动态描述参数
10
- * - 回滚操作定义
11
10
  * - 自动事务管理
12
11
  *
13
12
  * @param options 审计操作选项
@@ -20,12 +19,6 @@ export declare const AUDIT_OPERATION_OPTIONS: unique symbol;
20
19
  * username: args[0].username,
21
20
  * approver: result.approver
22
21
  * }),
23
- * rollbackActions: (args, result) => [{
24
- * type: RollbackActionType.UPDATE,
25
- * action: 'reject',
26
- * params: { userId: args[0].id },
27
- * order: 1
28
- * }],
29
22
  * autoTransaction: true
30
23
  * })
31
24
  * async approveUser(user: User): Promise<ApprovalResult> {
@@ -13,7 +13,6 @@ exports.AUDIT_OPERATION_OPTIONS = Symbol('AUDIT_OPERATION_OPTIONS');
13
13
  * 用于手动记录业务操作的审计日志,支持:
14
14
  * - 自定义操作模板
15
15
  * - 动态描述参数
16
- * - 回滚操作定义
17
16
  * - 自动事务管理
18
17
  *
19
18
  * @param options 审计操作选项
@@ -26,12 +25,6 @@ exports.AUDIT_OPERATION_OPTIONS = Symbol('AUDIT_OPERATION_OPTIONS');
26
25
  * username: args[0].username,
27
26
  * approver: result.approver
28
27
  * }),
29
- * rollbackActions: (args, result) => [{
30
- * type: RollbackActionType.UPDATE,
31
- * action: 'reject',
32
- * params: { userId: args[0].id },
33
- * order: 1
34
- * }],
35
28
  * autoTransaction: true
36
29
  * })
37
30
  * async approveUser(user: User): Promise<ApprovalResult> {
@@ -3,11 +3,87 @@ export declare const ENTITY_AUDIT_OPTIONS: unique symbol;
3
3
  export declare const FIELD_AUDIT_OPTIONS: unique symbol;
4
4
  /**
5
5
  * 实体审计装饰器
6
+ *
7
+ * @description
8
+ * 支持基础审计配置和多语言标签。
9
+ * 字段标签和值标签请使用 @AuditField({ label: { zh: '姓名', en: 'Name' } })
10
+ *
6
11
  * @param options 审计配置选项
12
+ *
13
+ * @example
14
+ * // 基础用法
15
+ * @AuditEntity({
16
+ * enabled: true,
17
+ * label: { zh: '订单', en: 'Order' },
18
+ * excludeFields: ['password'],
19
+ * maskFields: ['email']
20
+ * })
21
+ *
22
+ * @example
23
+ * // 指定模板键
24
+ * @AuditEntity({
25
+ * enabled: true,
26
+ * label: { zh: '用户', en: 'User' },
27
+ * templateKey: 'user',
28
+ * })
7
29
  */
8
- export declare function EntityAudit(options?: EntityAuditConfig): ClassDecorator;
30
+ export declare function AuditEntity(options?: EntityAuditConfig): ClassDecorator;
9
31
  /**
10
32
  * 字段审计装饰器
11
- * @param options 字段显示选项
33
+ * @param options 字段显示选项(支持多语言 label 和 valueLabels)
34
+ *
35
+ * @example
36
+ * // 单语言
37
+ * @AuditField({ label: '姓名' })
38
+ *
39
+ * @example
40
+ * // 多语言
41
+ * @AuditField({ label: { zh: '姓名', en: 'Name' } })
42
+ *
43
+ * @example
44
+ * // 带值标签映射
45
+ * @AuditField({
46
+ * label: { zh: '状态', en: 'Status' },
47
+ * valueLabels: {
48
+ * active: { zh: '激活', en: 'Active' },
49
+ * inactive: { zh: '未激活', en: 'Inactive' }
50
+ * }
51
+ * })
12
52
  */
13
53
  export declare function AuditField(options?: FieldDisplayOptions): PropertyDecorator;
54
+ /**
55
+ * 获取实体审计配置
56
+ * @param target 目标类
57
+ * @returns 审计配置
58
+ */
59
+ export declare function getEntityAuditConfig(target: any): EntityAuditConfig;
60
+ /**
61
+ * 获取字段审计配置
62
+ * @param target 目标类
63
+ * @returns 字段配置映射
64
+ */
65
+ export declare function getFieldAuditConfig(target: any): Record<string, FieldDisplayOptions>;
66
+ /**
67
+ * 获取字段的标签(支持多语言)
68
+ * @param target 目标类
69
+ * @param fieldName 字段名
70
+ * @param language 语言代码(默认:zh)
71
+ * @returns 字段标签
72
+ */
73
+ export declare function getFieldLabel(target: any, fieldName: string, language?: string): string;
74
+ /**
75
+ * 获取字段值的标签(支持多语言)
76
+ * @param target 目标类
77
+ * @param fieldName 字段名
78
+ * @param value 值
79
+ * @param language 语言代码(默认:zh)
80
+ * @returns 值的标签
81
+ */
82
+ export declare function getFieldValueLabel(target: any, fieldName: string, value: any, language?: string): string;
83
+ /**
84
+ * 获取实体的标签(支持多语言)
85
+ * @param target 目标类
86
+ * @param language 语言代码(默认:zh)
87
+ * @returns 实体标签
88
+ */
89
+ export declare function getEntityLabel(target: any, language?: string): string;