@nest-omni/core 4.1.3-2 → 4.1.3-20

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 (386) hide show
  1. package/audit/audit.module.d.ts +10 -0
  2. package/audit/audit.module.js +63 -1
  3. package/audit/controllers/audit.controller.d.ts +88 -0
  4. package/audit/controllers/audit.controller.js +74 -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 +9 -1
  8. package/audit/decorators/audit-controller.decorator.js +11 -2
  9. package/audit/decorators/audit-operation.decorator.d.ts +45 -0
  10. package/audit/decorators/audit-operation.decorator.js +49 -0
  11. package/audit/decorators/entity-audit.decorator.d.ts +85 -1
  12. package/audit/decorators/entity-audit.decorator.js +153 -3
  13. package/audit/decorators/index.d.ts +2 -0
  14. package/audit/decorators/index.js +2 -0
  15. package/audit/dto/audit-log-query.dto.d.ts +3 -0
  16. package/audit/dto/audit-log-query.dto.js +3 -0
  17. package/audit/dto/begin-transaction.dto.d.ts +3 -0
  18. package/audit/dto/begin-transaction.dto.js +3 -0
  19. package/audit/dto/compare-entities.dto.d.ts +3 -0
  20. package/audit/dto/compare-entities.dto.js +3 -0
  21. package/audit/dto/pre-check-restore.dto.d.ts +3 -0
  22. package/audit/dto/pre-check-restore.dto.js +3 -0
  23. package/audit/dto/restore-entity.dto.d.ts +3 -0
  24. package/audit/dto/restore-entity.dto.js +3 -0
  25. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  26. package/audit/entities/audit-action-summary.entity.js +101 -0
  27. package/audit/entities/entity-audit-log.entity.d.ts +11 -0
  28. package/audit/entities/entity-audit-log.entity.js +57 -2
  29. package/audit/entities/entity-transaction.entity.d.ts +11 -2
  30. package/audit/entities/entity-transaction.entity.js +42 -3
  31. package/audit/entities/index.d.ts +3 -0
  32. package/audit/entities/index.js +3 -0
  33. package/audit/entities/manual-operation-log.entity.d.ts +4 -0
  34. package/audit/entities/manual-operation-log.entity.js +12 -1
  35. package/audit/entities/operation-template.entity.d.ts +4 -0
  36. package/audit/entities/operation-template.entity.js +4 -0
  37. package/audit/enums/audit.enums.d.ts +37 -6
  38. package/audit/enums/audit.enums.js +40 -7
  39. package/audit/index.d.ts +4 -1
  40. package/audit/index.js +34 -1
  41. package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
  42. package/audit/interceptors/audit-action.interceptor.js +215 -0
  43. package/audit/interceptors/audit.interceptor.d.ts +15 -0
  44. package/audit/interceptors/audit.interceptor.js +23 -1
  45. package/audit/interceptors/index.d.ts +1 -0
  46. package/audit/interceptors/index.js +1 -0
  47. package/audit/interfaces/audit.interfaces.d.ts +187 -2
  48. package/audit/services/audit-action.service.d.ts +141 -0
  49. package/audit/services/audit-action.service.js +244 -0
  50. package/audit/services/audit-context.service.d.ts +97 -0
  51. package/audit/services/audit-context.service.js +185 -0
  52. package/audit/services/audit-strategy.service.d.ts +6 -0
  53. package/audit/services/audit-strategy.service.js +13 -0
  54. package/audit/services/entity-audit.service.d.ts +230 -3
  55. package/audit/services/entity-audit.service.js +607 -14
  56. package/audit/services/index.d.ts +3 -0
  57. package/audit/services/index.js +3 -0
  58. package/audit/services/manual-audit-log.service.d.ts +134 -9
  59. package/audit/services/manual-audit-log.service.js +157 -40
  60. package/audit/services/multi-database.service.d.ts +9 -2
  61. package/audit/services/multi-database.service.js +9 -21
  62. package/audit/services/operation-description.service.d.ts +71 -2
  63. package/audit/services/operation-description.service.js +231 -20
  64. package/audit/services/transaction-audit.service.d.ts +30 -0
  65. package/audit/services/transaction-audit.service.js +53 -5
  66. package/audit/subscribers/entity-audit.subscriber.d.ts +19 -0
  67. package/audit/subscribers/entity-audit.subscriber.js +76 -1
  68. package/cache/cache-metrics.service.d.ts +67 -0
  69. package/cache/cache-metrics.service.js +68 -4
  70. package/cache/cache-serialization.service.d.ts +31 -0
  71. package/cache/cache-serialization.service.js +25 -0
  72. package/cache/cache.constants.d.ts +9 -0
  73. package/cache/cache.constants.js +9 -0
  74. package/cache/cache.health.d.ts +26 -0
  75. package/cache/cache.health.js +30 -0
  76. package/cache/cache.module.d.ts +82 -2
  77. package/cache/cache.module.js +76 -5
  78. package/cache/cache.service.d.ts +140 -0
  79. package/cache/cache.service.js +169 -0
  80. package/cache/cache.warmup.service.d.ts +39 -0
  81. package/cache/cache.warmup.service.js +32 -0
  82. package/cache/decorators/cache-evict.decorator.d.ts +47 -0
  83. package/cache/decorators/cache-evict.decorator.js +56 -0
  84. package/cache/decorators/cache-put.decorator.d.ts +34 -0
  85. package/cache/decorators/cache-put.decorator.js +39 -0
  86. package/cache/decorators/cacheable.decorator.d.ts +40 -0
  87. package/cache/decorators/cacheable.decorator.js +55 -0
  88. package/cache/dependencies/callback.dependency.d.ts +33 -0
  89. package/cache/dependencies/callback.dependency.js +39 -1
  90. package/cache/dependencies/chain.dependency.d.ts +28 -0
  91. package/cache/dependencies/chain.dependency.js +34 -0
  92. package/cache/dependencies/db.dependency.d.ts +83 -7
  93. package/cache/dependencies/db.dependency.js +89 -14
  94. package/cache/dependencies/file.dependency.d.ts +32 -0
  95. package/cache/dependencies/file.dependency.js +34 -0
  96. package/cache/dependencies/tag.dependency.d.ts +75 -4
  97. package/cache/dependencies/tag.dependency.js +145 -11
  98. package/cache/dependencies/time.dependency.d.ts +43 -0
  99. package/cache/dependencies/time.dependency.js +43 -0
  100. package/cache/examples/basic-usage.d.ts +15 -0
  101. package/cache/examples/basic-usage.js +62 -8
  102. package/cache/index.js +9 -0
  103. package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
  104. package/cache/interfaces/cache-options.interface.d.ts +89 -0
  105. package/cache/interfaces/cache-options.interface.js +6 -0
  106. package/cache/interfaces/cache-provider.interface.d.ts +78 -0
  107. package/cache/providers/base-cache.provider.d.ts +14 -0
  108. package/cache/providers/base-cache.provider.js +16 -0
  109. package/cache/providers/cls-cache.provider.d.ts +20 -0
  110. package/cache/providers/cls-cache.provider.js +28 -0
  111. package/cache/providers/memory-cache.provider.d.ts +43 -0
  112. package/cache/providers/memory-cache.provider.js +66 -0
  113. package/cache/providers/redis-cache.provider.d.ts +26 -0
  114. package/cache/providers/redis-cache.provider.js +29 -0
  115. package/cache/utils/dependency-manager.util.d.ts +52 -0
  116. package/cache/utils/dependency-manager.util.js +59 -0
  117. package/cache/utils/key-generator.util.d.ts +42 -0
  118. package/cache/utils/key-generator.util.js +53 -1
  119. package/common/abstract.entity.d.ts +14 -0
  120. package/common/abstract.entity.js +14 -0
  121. package/common/boilerplate.polyfill.d.ts +142 -0
  122. package/common/boilerplate.polyfill.js +18 -1
  123. package/common/dto/dto-container.d.ts +16 -0
  124. package/common/dto/dto-container.js +20 -0
  125. package/common/dto/dto-decorators.d.ts +18 -0
  126. package/common/dto/dto-decorators.js +14 -0
  127. package/common/dto/dto-extensions.d.ts +11 -0
  128. package/common/dto/dto-extensions.js +9 -0
  129. package/common/dto/dto-service-accessor.d.ts +17 -0
  130. package/common/dto/dto-service-accessor.js +18 -0
  131. package/common/dto/dto-transformer.d.ts +12 -0
  132. package/common/dto/dto-transformer.js +9 -0
  133. package/common/dto/index.js +2 -0
  134. package/common/examples/paginate-and-map.example.d.ts +6 -0
  135. package/common/examples/paginate-and-map.example.js +26 -0
  136. package/common/utils.d.ts +15 -0
  137. package/common/utils.js +15 -0
  138. package/constants/language-code.js +1 -0
  139. package/decorators/field.decorators.d.ts +1 -1
  140. package/decorators/field.decorators.js +8 -1
  141. package/decorators/property.decorators.js +1 -0
  142. package/decorators/public-route.decorator.js +1 -0
  143. package/decorators/transform.decorators.d.ts +27 -0
  144. package/decorators/transform.decorators.js +29 -0
  145. package/decorators/translate.decorator.js +1 -0
  146. package/decorators/user.decorator.js +1 -0
  147. package/decorators/validator.decorators.d.ts +8 -18
  148. package/decorators/validator.decorators.js +22 -190
  149. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  150. package/file-upload/controllers/file-access.controller.js +128 -0
  151. package/file-upload/decorators/column.decorator.d.ts +151 -0
  152. package/file-upload/decorators/column.decorator.js +273 -0
  153. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  154. package/file-upload/decorators/csv-data.decorator.js +85 -0
  155. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  156. package/file-upload/decorators/csv-import.decorator.js +24 -0
  157. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  158. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  159. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  160. package/file-upload/decorators/excel-data.decorator.js +85 -0
  161. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  162. package/file-upload/decorators/file-upload.decorator.js +172 -0
  163. package/file-upload/decorators/index.d.ts +5 -0
  164. package/file-upload/decorators/index.js +38 -0
  165. package/file-upload/decorators/process.decorator.d.ts +40 -0
  166. package/file-upload/decorators/process.decorator.js +52 -0
  167. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  168. package/file-upload/decorators/validate-data.decorator.js +39 -0
  169. package/file-upload/dto/create-file.dto.d.ts +24 -0
  170. package/file-upload/dto/create-file.dto.js +112 -0
  171. package/file-upload/dto/find-files.dto.d.ts +15 -0
  172. package/file-upload/dto/find-files.dto.js +76 -0
  173. package/file-upload/dto/index.d.ts +4 -0
  174. package/file-upload/dto/index.js +20 -0
  175. package/file-upload/dto/pagination.dto.d.ts +7 -0
  176. package/file-upload/dto/pagination.dto.js +39 -0
  177. package/file-upload/dto/update-file.dto.d.ts +15 -0
  178. package/file-upload/dto/update-file.dto.js +67 -0
  179. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  180. package/file-upload/entities/file-metadata.entity.js +76 -0
  181. package/file-upload/entities/file.entity.d.ts +114 -0
  182. package/file-upload/entities/file.entity.js +350 -0
  183. package/file-upload/entities/index.d.ts +2 -0
  184. package/file-upload/entities/index.js +18 -0
  185. package/file-upload/enums/file-type.enum.d.ts +72 -0
  186. package/file-upload/enums/file-type.enum.js +212 -0
  187. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  188. package/file-upload/exceptions/file-upload.exception.js +120 -0
  189. package/file-upload/exceptions/index.d.ts +1 -0
  190. package/file-upload/exceptions/index.js +17 -0
  191. package/file-upload/file-upload.module.d.ts +89 -0
  192. package/file-upload/file-upload.module.js +292 -0
  193. package/file-upload/index.d.ts +37 -0
  194. package/file-upload/index.js +77 -0
  195. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  196. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  197. package/file-upload/interceptors/index.d.ts +1 -0
  198. package/file-upload/interceptors/index.js +17 -0
  199. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  200. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  201. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  202. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  203. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  204. package/file-upload/interfaces/file-entity.interface.js +28 -0
  205. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  206. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  207. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  208. package/file-upload/interfaces/file-processor.interface.js +2 -0
  209. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  210. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  211. package/file-upload/interfaces/index.d.ts +7 -0
  212. package/file-upload/interfaces/index.js +24 -0
  213. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  214. package/file-upload/interfaces/processor-options.interface.js +2 -0
  215. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  216. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  217. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  218. package/file-upload/interfaces/upload-options.interface.js +2 -0
  219. package/file-upload/processors/csv.processor.d.ts +98 -0
  220. package/file-upload/processors/csv.processor.js +391 -0
  221. package/file-upload/processors/excel.processor.d.ts +130 -0
  222. package/file-upload/processors/excel.processor.js +547 -0
  223. package/file-upload/processors/image.processor.d.ts +199 -0
  224. package/file-upload/processors/image.processor.js +377 -0
  225. package/file-upload/providers/index.d.ts +2 -0
  226. package/file-upload/providers/index.js +18 -0
  227. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  228. package/file-upload/providers/local-storage.provider.js +484 -0
  229. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  230. package/file-upload/providers/s3-storage.provider.js +455 -0
  231. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  232. package/file-upload/services/file-signature-validator.service.js +376 -0
  233. package/file-upload/services/file.service.d.ts +193 -0
  234. package/file-upload/services/file.service.js +638 -0
  235. package/file-upload/services/index.d.ts +4 -0
  236. package/file-upload/services/index.js +20 -0
  237. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  238. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  239. package/file-upload/services/mime-registry.service.d.ts +47 -0
  240. package/file-upload/services/mime-registry.service.js +167 -0
  241. package/file-upload/utils/checksum.util.d.ts +28 -0
  242. package/file-upload/utils/checksum.util.js +65 -0
  243. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  244. package/file-upload/utils/dynamic-import.util.js +156 -0
  245. package/file-upload/utils/filename.util.d.ts +59 -0
  246. package/file-upload/utils/filename.util.js +184 -0
  247. package/file-upload/utils/filepath.util.d.ts +70 -0
  248. package/file-upload/utils/filepath.util.js +152 -0
  249. package/file-upload/utils/index.d.ts +4 -0
  250. package/file-upload/utils/index.js +20 -0
  251. package/filters/constraint-errors.js +1 -0
  252. package/helpers/common.helper.d.ts +13 -0
  253. package/helpers/common.helper.js +13 -0
  254. package/http-client/config/http-client.config.d.ts +20 -0
  255. package/http-client/config/http-client.config.js +48 -21
  256. package/http-client/decorators/http-client.decorators.d.ts +55 -14
  257. package/http-client/decorators/http-client.decorators.js +154 -78
  258. package/http-client/entities/http-log.entity.d.ts +217 -8
  259. package/http-client/entities/http-log.entity.js +7 -22
  260. package/http-client/errors/http-client.errors.d.ts +57 -0
  261. package/http-client/errors/http-client.errors.js +58 -0
  262. package/http-client/examples/advanced-usage.example.d.ts +40 -0
  263. package/http-client/examples/advanced-usage.example.js +53 -61
  264. package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
  265. package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
  266. package/http-client/examples/basic-usage.example.d.ts +60 -0
  267. package/http-client/examples/basic-usage.example.js +60 -0
  268. package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
  269. package/http-client/examples/multi-api-configuration.example.js +76 -5
  270. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  271. package/http-client/examples/proxy-from-environment.example.js +409 -0
  272. package/http-client/http-client.module.d.ts +48 -2
  273. package/http-client/http-client.module.js +147 -68
  274. package/http-client/index.d.ts +1 -1
  275. package/http-client/index.js +8 -0
  276. package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
  277. package/http-client/interfaces/api-client-config.interface.js +3 -0
  278. package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
  279. package/http-client/services/api-client-registry.service.d.ts +50 -11
  280. package/http-client/services/api-client-registry.service.js +90 -250
  281. package/http-client/services/circuit-breaker.service.d.ts +115 -2
  282. package/http-client/services/circuit-breaker.service.js +237 -7
  283. package/http-client/services/http-client.service.d.ts +124 -14
  284. package/http-client/services/http-client.service.js +437 -148
  285. package/http-client/services/http-log-query.service.d.ts +83 -0
  286. package/http-client/services/http-log-query.service.js +121 -13
  287. package/http-client/services/http-replay.service.d.ts +101 -0
  288. package/http-client/services/http-replay.service.js +86 -0
  289. package/http-client/services/index.d.ts +0 -1
  290. package/http-client/services/index.js +0 -1
  291. package/http-client/services/log-cleanup.service.d.ts +63 -0
  292. package/http-client/services/log-cleanup.service.js +54 -2
  293. package/http-client/services/logging.service.d.ts +116 -7
  294. package/http-client/services/logging.service.js +349 -86
  295. package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
  296. package/http-client/utils/call-stack-extractor.util.js +83 -0
  297. package/http-client/utils/context-extractor.util.d.ts +49 -0
  298. package/http-client/utils/context-extractor.util.js +52 -0
  299. package/http-client/utils/curl-generator.util.d.ts +21 -0
  300. package/http-client/utils/curl-generator.util.js +44 -3
  301. package/http-client/utils/index.d.ts +1 -0
  302. package/http-client/utils/index.js +1 -0
  303. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  304. package/http-client/utils/proxy-environment.util.js +148 -0
  305. package/http-client/utils/request-id.util.d.ts +18 -0
  306. package/http-client/utils/request-id.util.js +20 -0
  307. package/http-client/utils/retry-recorder.util.d.ts +42 -0
  308. package/http-client/utils/retry-recorder.util.js +44 -0
  309. package/http-client/utils/security-validator.util.d.ts +118 -0
  310. package/http-client/utils/security-validator.util.js +352 -0
  311. package/index.d.ts +3 -1
  312. package/index.js +12 -1
  313. package/interceptors/translation-interceptor.service.js +5 -0
  314. package/package.json +11 -7
  315. package/providers/context.provider.js +2 -0
  316. package/providers/generator.provider.d.ts +4 -0
  317. package/providers/generator.provider.js +4 -0
  318. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  319. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  320. package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
  321. package/redis-lock/examples/lock-strategy.examples.js +130 -15
  322. package/redis-lock/index.d.ts +2 -0
  323. package/redis-lock/index.js +8 -1
  324. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  325. package/redis-lock/lock-heartbeat.service.js +232 -0
  326. package/redis-lock/redis-lock.decorator.d.ts +101 -0
  327. package/redis-lock/redis-lock.decorator.js +120 -0
  328. package/redis-lock/redis-lock.module.d.ts +66 -0
  329. package/redis-lock/redis-lock.module.js +175 -70
  330. package/redis-lock/redis-lock.service.d.ts +282 -0
  331. package/redis-lock/redis-lock.service.js +343 -20
  332. package/setup/bootstrap.setup.d.ts +1 -0
  333. package/setup/bootstrap.setup.js +21 -0
  334. package/setup/index.d.ts +1 -0
  335. package/setup/index.js +1 -0
  336. package/setup/mode.setup.d.ts +44 -0
  337. package/setup/mode.setup.js +44 -0
  338. package/setup/run-in-mode.decorator.d.ts +56 -0
  339. package/setup/run-in-mode.decorator.js +92 -0
  340. package/setup/schedule.decorator.d.ts +227 -0
  341. package/setup/schedule.decorator.js +240 -12
  342. package/setup/worker.decorator.d.ts +86 -0
  343. package/setup/worker.decorator.js +97 -0
  344. package/shared/index.d.ts +1 -1
  345. package/shared/index.js +1 -1
  346. package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -17
  347. package/shared/services/api-config.service.d.ts +3 -0
  348. package/shared/services/api-config.service.js +21 -9
  349. package/shared/services/index.d.ts +0 -1
  350. package/shared/services/index.js +0 -1
  351. package/validator-json/decorators.d.ts +17 -0
  352. package/validator-json/decorators.js +17 -2
  353. package/validator-json/default.d.ts +6 -0
  354. package/validator-json/default.js +30 -2
  355. package/validator-json/defaultConverters.js +1 -0
  356. package/validator-json/options.d.ts +23 -0
  357. package/validators/common-validators.d.ts +143 -0
  358. package/validators/common-validators.js +249 -0
  359. package/validators/custom-validate.examples.d.ts +23 -0
  360. package/validators/custom-validate.examples.js +78 -6
  361. package/validators/custom-validate.validator.d.ts +108 -0
  362. package/validators/custom-validate.validator.js +85 -0
  363. package/validators/file-mimetype.validator.d.ts +0 -2
  364. package/validators/file-mimetype.validator.js +4 -6
  365. package/validators/index.d.ts +1 -0
  366. package/validators/index.js +1 -0
  367. package/validators/is-exists.validator.d.ts +26 -6
  368. package/validators/is-exists.validator.js +30 -7
  369. package/validators/is-unique.validator.d.ts +33 -7
  370. package/validators/is-unique.validator.js +59 -17
  371. package/validators/skip-empty.validator.d.ts +5 -0
  372. package/validators/skip-empty.validator.js +5 -0
  373. package/vault/interfaces/vault-options.interface.d.ts +9 -0
  374. package/vault/vault-config.loader.d.ts +30 -0
  375. package/vault/vault-config.loader.js +48 -1
  376. package/vault/vault-config.service.d.ts +53 -0
  377. package/vault/vault-config.service.js +57 -0
  378. package/vault/vault.module.d.ts +4 -0
  379. package/vault/vault.module.js +4 -0
  380. package/decorators/examples/validation-decorators.example.d.ts +0 -69
  381. package/decorators/examples/validation-decorators.example.js +0 -331
  382. package/http-client/services/cache.service.d.ts +0 -24
  383. package/http-client/services/cache.service.js +0 -264
  384. package/shared/services/validator.service.d.ts +0 -3
  385. package/shared/services/validator.service.js +0 -20
  386. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -3,3 +3,6 @@ export * from './audit-strategy.service';
3
3
  export * from './entity-audit.service';
4
4
  export * from './transaction-audit.service';
5
5
  export * from './multi-database.service';
6
+ export * from './operation-description.service';
7
+ export * from './manual-audit-log.service';
8
+ export * from './audit-action.service';
@@ -19,3 +19,6 @@ __exportStar(require("./audit-strategy.service"), exports);
19
19
  __exportStar(require("./entity-audit.service"), exports);
20
20
  __exportStar(require("./transaction-audit.service"), exports);
21
21
  __exportStar(require("./multi-database.service"), exports);
22
+ __exportStar(require("./operation-description.service"), exports);
23
+ __exportStar(require("./manual-audit-log.service"), exports);
24
+ __exportStar(require("./audit-action.service"), exports);
@@ -2,23 +2,148 @@ import { Repository, DataSource } from 'typeorm';
2
2
  import { ManualOperationLogEntity, EntityTransactionEntity } from '../entities';
3
3
  import { AuditContextService } from './audit-context.service';
4
4
  import { ManualLogOptions } from '../interfaces';
5
+ import { AuditTransactionStatus } from '../enums';
6
+ /**
7
+ * 手动审计日志服务
8
+ *
9
+ * 提供标准的依赖注入方式记录操作日志
10
+ * @deprecated 静态方法已废弃,请使用依赖注入方式
11
+ */
5
12
  export declare class ManualAuditLogService {
6
13
  private readonly manualLogRepository;
7
14
  private readonly transactionRepository;
8
15
  private readonly contextService;
9
16
  private readonly dataSource;
10
- private static instance;
11
17
  constructor(manualLogRepository: Repository<ManualOperationLogEntity>, transactionRepository: Repository<EntityTransactionEntity>, contextService: AuditContextService, dataSource: DataSource);
12
- static log(options: ManualLogOptions): Promise<ManualOperationLogEntity>;
18
+ /**
19
+ * 记录操作日志
20
+ *
21
+ * @description
22
+ * 支持三种记录模式:
23
+ * 1. 模板键模式:从数据库查找模板
24
+ * 2. 直接描述模式:直接传入字符串或多语言描述
25
+ * 3. 内联模板模式:传入多语言模板 + 参数
26
+ *
27
+ * @example
28
+ * // 模式1:模板键模式
29
+ * await this.manualAuditLogService.log({
30
+ * templateKey: 'user.login',
31
+ * descriptionParams: {
32
+ * username: 'john.doe',
33
+ * loginTime: new Date().toISOString(),
34
+ * },
35
+ * });
36
+ *
37
+ * @example
38
+ * // 模式2:直接描述模式(字符串)
39
+ * await this.manualAuditLogService.log({
40
+ * description: '用户登录系统',
41
+ * });
42
+ *
43
+ * @example
44
+ * // 模式2:直接描述模式(多语言)
45
+ * await this.manualAuditLogService.log({
46
+ * description: {
47
+ * zh: '用户登录系统',
48
+ * en: 'User logged in',
49
+ * },
50
+ * });
51
+ *
52
+ * @example
53
+ * // 模式3:内联模板模式
54
+ * await this.manualAuditLogService.log({
55
+ * descriptionTemplate: {
56
+ * zh: '用户 {username} 在 {time} 登录了系统',
57
+ * en: 'User {username} logged in at {time}',
58
+ * },
59
+ * descriptionParams: {
60
+ * username: 'john.doe',
61
+ * time: new Date().toISOString(),
62
+ * },
63
+ * });
64
+ */
65
+ log(options: ManualLogOptions): Promise<ManualOperationLogEntity>;
66
+ /**
67
+ * 实例方法:记录操作日志
68
+ */
13
69
  logOperation(options: ManualLogOptions): Promise<ManualOperationLogEntity>;
14
- static beginTransaction(userId?: string, username?: string): Promise<string>;
15
- static commitTransaction(transactionId: string): Promise<void>;
16
- static rollbackTransaction(transactionId: string): Promise<void>;
17
- private createTransaction;
18
- private updateTransactionStatus;
70
+ /**
71
+ * 开始事务
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const txId = await this.manualAuditLogService.beginTransaction('user-123', 'John Doe');
76
+ *
77
+ * await this.manualAuditLogService.log({
78
+ * templateKey: 'order.create',
79
+ * descriptionParams: { orderId: 'order-1' },
80
+ * transactionId: txId,
81
+ * autoCreateTransaction: false,
82
+ * });
83
+ *
84
+ * await this.manualAuditLogService.log({
85
+ * templateKey: 'payment.process',
86
+ * descriptionParams: { paymentId: 'pay-1' },
87
+ * transactionId: txId,
88
+ * autoCreateTransaction: false,
89
+ * });
90
+ *
91
+ * await this.manualAuditLogService.commitTransaction(txId);
92
+ * ```
93
+ */
94
+ beginTransaction(userId?: string, username?: string): Promise<string>;
95
+ /**
96
+ * 提交事务
97
+ */
98
+ commitTransaction(transactionId: string): Promise<void>;
99
+ /**
100
+ * 回滚事务
101
+ */
102
+ rollbackTransaction(transactionId: string): Promise<void>;
103
+ /**
104
+ * 创建事务
105
+ */
106
+ createTransaction(userId?: string, username?: string): Promise<string>;
107
+ /**
108
+ * 更新事务状态
109
+ */
110
+ updateTransactionStatus(transactionId: string, status: AuditTransactionStatus): Promise<void>;
111
+ /**
112
+ * 生成事务ID
113
+ */
19
114
  private generateTransactionId;
20
- static logBatch(operations: ManualLogOptions[], sharedTransactionId?: string): Promise<ManualOperationLogEntity[]>;
21
- static findLogs(options: {
115
+ /**
116
+ * 批量记录操作日志
117
+ *
118
+ * @description
119
+ * 批量记录多个操作,支持所有三种记录模式
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * // 混合使用多种模式
124
+ * await this.manualAuditLogService.logBatch([
125
+ * {
126
+ * templateKey: 'product.update',
127
+ * descriptionParams: { productId: 'p1', field: 'price' },
128
+ * },
129
+ * {
130
+ * description: '批量更新库存',
131
+ * },
132
+ * {
133
+ * descriptionTemplate: {
134
+ * zh: '更新产品 {productId} 的 {field}',
135
+ * en: 'Update {field} of product {productId}',
136
+ * },
137
+ * descriptionParams: { productId: 'p3', field: 'stock' },
138
+ * },
139
+ * ]);
140
+ * ```
141
+ */
142
+ logBatch(operations: ManualLogOptions[], sharedTransactionId?: string): Promise<ManualOperationLogEntity[]>;
143
+ /**
144
+ * 查询操作日志
145
+ */
146
+ findLogs(options: {
22
147
  templateKey?: string;
23
148
  userId?: string;
24
149
  transactionId?: string;
@@ -20,7 +20,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  step((generator = generator.apply(thisArg, _arguments || [])).next());
21
21
  });
22
22
  };
23
- var ManualAuditLogService_1;
24
23
  Object.defineProperty(exports, "__esModule", { value: true });
25
24
  exports.ManualAuditLogService = void 0;
26
25
  const common_1 = require("@nestjs/common");
@@ -30,46 +29,109 @@ const entities_1 = require("../entities");
30
29
  const audit_context_service_1 = require("./audit-context.service");
31
30
  const enums_1 = require("../enums");
32
31
  const crypto_1 = require("crypto");
33
- let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogService {
32
+ /**
33
+ * 手动审计日志服务
34
+ *
35
+ * 提供标准的依赖注入方式记录操作日志
36
+ * @deprecated 静态方法已废弃,请使用依赖注入方式
37
+ */
38
+ let ManualAuditLogService = class ManualAuditLogService {
34
39
  constructor(manualLogRepository, transactionRepository, contextService, dataSource) {
35
40
  this.manualLogRepository = manualLogRepository;
36
41
  this.transactionRepository = transactionRepository;
37
42
  this.contextService = contextService;
38
43
  this.dataSource = dataSource;
39
- ManualAuditLogService_1.instance = this;
40
44
  }
41
- static log(options) {
45
+ /**
46
+ * 记录操作日志
47
+ *
48
+ * @description
49
+ * 支持三种记录模式:
50
+ * 1. 模板键模式:从数据库查找模板
51
+ * 2. 直接描述模式:直接传入字符串或多语言描述
52
+ * 3. 内联模板模式:传入多语言模板 + 参数
53
+ *
54
+ * @example
55
+ * // 模式1:模板键模式
56
+ * await this.manualAuditLogService.log({
57
+ * templateKey: 'user.login',
58
+ * descriptionParams: {
59
+ * username: 'john.doe',
60
+ * loginTime: new Date().toISOString(),
61
+ * },
62
+ * });
63
+ *
64
+ * @example
65
+ * // 模式2:直接描述模式(字符串)
66
+ * await this.manualAuditLogService.log({
67
+ * description: '用户登录系统',
68
+ * });
69
+ *
70
+ * @example
71
+ * // 模式2:直接描述模式(多语言)
72
+ * await this.manualAuditLogService.log({
73
+ * description: {
74
+ * zh: '用户登录系统',
75
+ * en: 'User logged in',
76
+ * },
77
+ * });
78
+ *
79
+ * @example
80
+ * // 模式3:内联模板模式
81
+ * await this.manualAuditLogService.log({
82
+ * descriptionTemplate: {
83
+ * zh: '用户 {username} 在 {time} 登录了系统',
84
+ * en: 'User {username} logged in at {time}',
85
+ * },
86
+ * descriptionParams: {
87
+ * username: 'john.doe',
88
+ * time: new Date().toISOString(),
89
+ * },
90
+ * });
91
+ */
92
+ log(options) {
42
93
  return __awaiter(this, void 0, void 0, function* () {
43
- if (!ManualAuditLogService_1.instance) {
44
- throw new Error('ManualAuditLogService is not initialized. Make sure AuditModule is imported.');
45
- }
46
- return ManualAuditLogService_1.instance.logOperation(options);
94
+ return this.logOperation(options);
47
95
  });
48
96
  }
97
+ /**
98
+ * 实例方法:记录操作日志
99
+ */
49
100
  logOperation(options) {
50
101
  return __awaiter(this, void 0, void 0, function* () {
51
102
  const { templateKey, description, descriptionTemplate, descriptionParams, userId, username, requestIp, rollbackActions, transactionId, autoCreateTransaction = true, } = options;
103
+ // 验证参数:至少提供一种模式
52
104
  if (!templateKey && !description && !descriptionTemplate) {
53
105
  throw new Error('ManualAuditLogService.log() requires one of: templateKey, description, or descriptionTemplate');
54
106
  }
107
+ // 验证参数冲突
55
108
  const modeCount = [templateKey, description, descriptionTemplate].filter(Boolean).length;
56
109
  if (modeCount > 1) {
57
110
  throw new Error('ManualAuditLogService.log() accepts only one mode: use either templateKey, description, or descriptionTemplate');
58
111
  }
112
+ // 获取当前上下文(如果有)
59
113
  const context = yield this.contextService.getCurrentContext();
114
+ // 合并用户信息(优先使用传入的参数)
60
115
  const finalUserId = userId || context.userId || 'system';
61
116
  const finalUsername = username || context.username || 'system';
62
117
  const finalRequestIp = requestIp || context.requestIp || 'unknown';
118
+ // 生成或使用事务ID
63
119
  let finalTransactionId = transactionId || context.transactionId;
64
120
  if (!finalTransactionId && autoCreateTransaction) {
121
+ // 自动创建事务
65
122
  finalTransactionId = yield this.createTransaction(finalUserId, finalUsername);
66
123
  }
124
+ // 创建手动操作日志
67
125
  const manualLog = this.manualLogRepository.create({
68
126
  transactionId: finalTransactionId,
127
+ // 模式1: 模板键模式
69
128
  operationTemplateKey: templateKey || null,
70
129
  descriptionParams: descriptionParams || null,
130
+ // 模式2: 直接描���模式
71
131
  directDescription: description || null,
132
+ // 模式3: 内联模板模式
72
133
  inlineTemplate: descriptionTemplate || null,
134
+ // 通用字段
73
135
  userId: finalUserId,
74
136
  username: finalUsername,
75
137
  requestIp: finalRequestIp,
@@ -78,30 +140,54 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
78
140
  return this.manualLogRepository.save(manualLog);
79
141
  });
80
142
  }
81
- static beginTransaction(userId, username) {
143
+ /**
144
+ * 开始事务
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * const txId = await this.manualAuditLogService.beginTransaction('user-123', 'John Doe');
149
+ *
150
+ * await this.manualAuditLogService.log({
151
+ * templateKey: 'order.create',
152
+ * descriptionParams: { orderId: 'order-1' },
153
+ * transactionId: txId,
154
+ * autoCreateTransaction: false,
155
+ * });
156
+ *
157
+ * await this.manualAuditLogService.log({
158
+ * templateKey: 'payment.process',
159
+ * descriptionParams: { paymentId: 'pay-1' },
160
+ * transactionId: txId,
161
+ * autoCreateTransaction: false,
162
+ * });
163
+ *
164
+ * await this.manualAuditLogService.commitTransaction(txId);
165
+ * ```
166
+ */
167
+ beginTransaction(userId, username) {
82
168
  return __awaiter(this, void 0, void 0, function* () {
83
- if (!ManualAuditLogService_1.instance) {
84
- throw new Error('ManualAuditLogService is not initialized');
85
- }
86
- return ManualAuditLogService_1.instance.createTransaction(userId, username);
169
+ return this.createTransaction(userId, username);
87
170
  });
88
171
  }
89
- static commitTransaction(transactionId) {
172
+ /**
173
+ * 提交事务
174
+ */
175
+ commitTransaction(transactionId) {
90
176
  return __awaiter(this, void 0, void 0, function* () {
91
- if (!ManualAuditLogService_1.instance) {
92
- throw new Error('ManualAuditLogService is not initialized');
93
- }
94
- yield ManualAuditLogService_1.instance.updateTransactionStatus(transactionId, enums_1.TransactionStatus.COMMITTED);
177
+ yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.COMMITTED);
95
178
  });
96
179
  }
97
- static rollbackTransaction(transactionId) {
180
+ /**
181
+ * 回滚事务
182
+ */
183
+ rollbackTransaction(transactionId) {
98
184
  return __awaiter(this, void 0, void 0, function* () {
99
- if (!ManualAuditLogService_1.instance) {
100
- throw new Error('ManualAuditLogService is not initialized');
101
- }
102
- yield ManualAuditLogService_1.instance.updateTransactionStatus(transactionId, enums_1.TransactionStatus.ROLLED_BACK);
185
+ yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.ROLLED_BACK);
103
186
  });
104
187
  }
188
+ /**
189
+ * 创建事务
190
+ */
105
191
  createTransaction(userId, username) {
106
192
  return __awaiter(this, void 0, void 0, function* () {
107
193
  const context = yield this.contextService.getCurrentContext();
@@ -110,46 +196,77 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
110
196
  userId: userId || context.userId || 'system',
111
197
  username: username || context.username || 'system',
112
198
  requestIp: context.requestIp || 'unknown',
113
- status: enums_1.TransactionStatus.PENDING,
199
+ status: enums_1.AuditTransactionStatus.PENDING,
114
200
  entities: [],
115
201
  });
116
202
  const saved = yield this.transactionRepository.save(transaction);
117
203
  return saved.id;
118
204
  });
119
205
  }
206
+ /**
207
+ * 更新事务状态
208
+ */
120
209
  updateTransactionStatus(transactionId, status) {
121
210
  return __awaiter(this, void 0, void 0, function* () {
122
211
  yield this.transactionRepository.update({ id: transactionId }, { status });
123
212
  });
124
213
  }
214
+ /**
215
+ * 生成事务ID
216
+ */
125
217
  generateTransactionId() {
126
218
  return `txn-${Date.now()}-${(0, crypto_1.randomBytes)(8).toString('hex')}`;
127
219
  }
128
- static logBatch(operations, sharedTransactionId) {
220
+ /**
221
+ * 批量记录操作日志
222
+ *
223
+ * @description
224
+ * 批量记录多个操作,支持所有三种记录模式
225
+ *
226
+ * @example
227
+ * ```typescript
228
+ * // 混合使用多种模式
229
+ * await this.manualAuditLogService.logBatch([
230
+ * {
231
+ * templateKey: 'product.update',
232
+ * descriptionParams: { productId: 'p1', field: 'price' },
233
+ * },
234
+ * {
235
+ * description: '批量更新库存',
236
+ * },
237
+ * {
238
+ * descriptionTemplate: {
239
+ * zh: '更新产品 {productId} 的 {field}',
240
+ * en: 'Update {field} of product {productId}',
241
+ * },
242
+ * descriptionParams: { productId: 'p3', field: 'stock' },
243
+ * },
244
+ * ]);
245
+ * ```
246
+ */
247
+ logBatch(operations, sharedTransactionId) {
129
248
  return __awaiter(this, void 0, void 0, function* () {
130
- if (!ManualAuditLogService_1.instance) {
131
- throw new Error('ManualAuditLogService is not initialized');
132
- }
133
- const transactionId = sharedTransactionId ||
134
- (yield ManualAuditLogService_1.instance.createTransaction());
249
+ // 创建共享事务ID
250
+ const transactionId = sharedTransactionId || (yield this.createTransaction());
135
251
  const results = [];
136
252
  for (const operation of operations) {
137
- const result = yield ManualAuditLogService_1.instance.logOperation(Object.assign(Object.assign({}, operation), { transactionId, autoCreateTransaction: false }));
253
+ const result = yield this.logOperation(Object.assign(Object.assign({}, operation), { transactionId, autoCreateTransaction: false }));
138
254
  results.push(result);
139
255
  }
256
+ // 自动提交事务(如果是自动创建的)
140
257
  if (!sharedTransactionId) {
141
- yield ManualAuditLogService_1.instance.updateTransactionStatus(transactionId, enums_1.TransactionStatus.COMMITTED);
258
+ yield this.updateTransactionStatus(transactionId, enums_1.AuditTransactionStatus.COMMITTED);
142
259
  }
143
260
  return results;
144
261
  });
145
262
  }
146
- static findLogs(options) {
263
+ /**
264
+ * 查询操作日志
265
+ */
266
+ findLogs(options) {
147
267
  return __awaiter(this, void 0, void 0, function* () {
148
- if (!ManualAuditLogService_1.instance) {
149
- throw new Error('ManualAuditLogService is not initialized');
150
- }
151
268
  const { templateKey, userId, transactionId, startTime, endTime, limit = 100 } = options;
152
- const query = ManualAuditLogService_1.instance.manualLogRepository
269
+ const query = this.manualLogRepository
153
270
  .createQueryBuilder('log')
154
271
  .orderBy('log.createdAt', 'DESC')
155
272
  .take(limit);
@@ -173,10 +290,10 @@ let ManualAuditLogService = ManualAuditLogService_1 = class ManualAuditLogServic
173
290
  }
174
291
  };
175
292
  exports.ManualAuditLogService = ManualAuditLogService;
176
- exports.ManualAuditLogService = ManualAuditLogService = ManualAuditLogService_1 = __decorate([
293
+ exports.ManualAuditLogService = ManualAuditLogService = __decorate([
177
294
  (0, common_1.Injectable)(),
178
- __param(0, (0, typeorm_1.InjectRepository)(entities_1.ManualOperationLogEntity, 'audit')),
179
- __param(1, (0, typeorm_1.InjectRepository)(entities_1.EntityTransactionEntity, 'audit')),
295
+ __param(0, (0, typeorm_1.InjectRepository)(entities_1.ManualOperationLogEntity)),
296
+ __param(1, (0, typeorm_1.InjectRepository)(entities_1.EntityTransactionEntity)),
180
297
  __metadata("design:paramtypes", [typeorm_2.Repository,
181
298
  typeorm_2.Repository,
182
299
  audit_context_service_1.AuditContextService,
@@ -1,10 +1,17 @@
1
- import { DataSource } from 'typeorm';
2
1
  import { ModuleRef } from '@nestjs/core';
2
+ /**
3
+ * 多数据库连接管理服务
4
+ */
3
5
  export declare class MultiDatabaseService {
4
6
  private readonly moduleRef;
5
7
  private readonly config?;
6
8
  constructor(moduleRef: ModuleRef, config?: any);
7
- getDataSource(connectionName?: string): Promise<DataSource>;
9
+ /**
10
+ * 获取所有监听的数据库连接
11
+ */
8
12
  getMonitoredConnections(): string[];
13
+ /**
14
+ * 获取审计日志存储的数据库连接
15
+ */
9
16
  getAuditConnection(): string;
10
17
  }
@@ -11,40 +11,28 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
- return new (P || (P = Promise))(function (resolve, reject) {
17
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
- step((generator = generator.apply(thisArg, _arguments || [])).next());
21
- });
22
- };
23
14
  Object.defineProperty(exports, "__esModule", { value: true });
24
15
  exports.MultiDatabaseService = void 0;
25
16
  const common_1 = require("@nestjs/common");
26
- const typeorm_1 = require("@nestjs/typeorm");
27
17
  const core_1 = require("@nestjs/core");
18
+ /**
19
+ * 多数据库连接管理服务
20
+ */
28
21
  let MultiDatabaseService = class MultiDatabaseService {
29
22
  constructor(moduleRef, config) {
30
23
  this.moduleRef = moduleRef;
31
24
  this.config = config;
32
25
  }
33
- getDataSource() {
34
- return __awaiter(this, arguments, void 0, function* (connectionName = 'default') {
35
- try {
36
- const dataSource = this.moduleRef.get((0, typeorm_1.getDataSourceToken)(connectionName), { strict: false });
37
- return dataSource;
38
- }
39
- catch (error) {
40
- throw new Error(`Failed to get DataSource for connection: ${connectionName}`);
41
- }
42
- });
43
- }
26
+ /**
27
+ * 获取所有监听的数据库连接
28
+ */
44
29
  getMonitoredConnections() {
45
30
  var _a, _b;
46
31
  return ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.connections) === null || _b === void 0 ? void 0 : _b.monitored) || ['default'];
47
32
  }
33
+ /**
34
+ * 获取审计日志存储的数据库连接
35
+ */
48
36
  getAuditConnection() {
49
37
  var _a, _b;
50
38
  return ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.connections) === null || _b === void 0 ? void 0 : _b.audit) || 'default';
@@ -1,21 +1,90 @@
1
1
  import { Repository } from 'typeorm';
2
2
  import { OperationTemplateEntity, EntityTransactionEntity, EntityAuditLogEntity, ManualOperationLogEntity } from '../entities';
3
3
  import { ChangeDetail, TransactionDescription } from '../interfaces';
4
+ import { CacheService } from '../../cache';
5
+ /**
6
+ * 操作描述服务
7
+ * 负责根据模板和参数动态生成多语言描述
8
+ */
4
9
  export declare class OperationDescriptionService {
5
10
  private readonly templateRepository;
6
11
  private readonly transactionRepository;
7
12
  private readonly auditLogRepository;
8
13
  private readonly manualOperationRepository;
9
- private templateCache;
10
- constructor(templateRepository: Repository<OperationTemplateEntity>, transactionRepository: Repository<EntityTransactionEntity>, auditLogRepository: Repository<EntityAuditLogEntity>, manualOperationRepository: Repository<ManualOperationLogEntity>);
14
+ private readonly cacheService;
15
+ private readonly CACHE_NAMESPACE;
16
+ private readonly CACHE_TTL;
17
+ constructor(templateRepository: Repository<OperationTemplateEntity>, transactionRepository: Repository<EntityTransactionEntity>, auditLogRepository: Repository<EntityAuditLogEntity>, manualOperationRepository: Repository<ManualOperationLogEntity>, cacheService: CacheService);
18
+ /**
19
+ * 动态生成操作名称
20
+ * @param templateKey 模板键
21
+ * @param language 语言
22
+ * @returns 操作名称
23
+ */
11
24
  generateOperationName(templateKey: string, language?: string): Promise<string>;
25
+ /**
26
+ * 动态生成操作描述
27
+ * @param templateKey 模板键
28
+ * @param descriptionParams 描述参数
29
+ * @param language 语言
30
+ * @returns 描述文本
31
+ */
12
32
  generateDescription(templateKey: string, descriptionParams: Record<string, any>, language?: string): Promise<string>;
33
+ /**
34
+ * 动态生成变更详情
35
+ * @param changeDetails 变更详情列表
36
+ * @param language 语言
37
+ * @returns 格式化的变更详情
38
+ */
13
39
  generateChangeDetails(changeDetails: ChangeDetail[], language?: string): Promise<any[]>;
40
+ /**
41
+ * 获取事务描述(包含所有变更)
42
+ * @param transactionId 事务ID
43
+ * @param language 语言
44
+ * @returns 事务描述对象
45
+ */
14
46
  getTransactionDescription(transactionId: string, language?: string): Promise<TransactionDescription>;
47
+ /**
48
+ * 批量获取事务描述
49
+ * @param transactionIds 事务ID列表
50
+ * @param language 语言
51
+ * @returns 事务描述映射
52
+ */
15
53
  batchGetTransactionDescriptions(transactionIds: string[], language?: string): Promise<Record<string, TransactionDescription>>;
54
+ /**
55
+ * 填充模板
56
+ * @param template 模板字符串
57
+ * @param params 参数
58
+ * @returns 填充后的字符串
59
+ */
16
60
  private fillTemplate;
61
+ /**
62
+ * 格式化显示值
63
+ * @param value 原始值
64
+ * @param displayValue 显示值
65
+ * @returns 格式化后的值
66
+ */
17
67
  private formatDisplayValue;
68
+ /**
69
+ * 获取操作模板(使用统一缓存服务)
70
+ * @param templateKey 模板键
71
+ * @returns 操作模板
72
+ */
18
73
  private getOperationTemplate;
74
+ /**
75
+ * 获取模板字符串(仅返回模板文本,不填充参数)
76
+ * @param templateKey 模板键
77
+ * @param language 语言
78
+ * @returns 模板字符串
79
+ */
80
+ getTemplate(templateKey: string, language?: string): Promise<string | null>;
81
+ /**
82
+ * 清除模板缓存
83
+ */
19
84
  clearTemplateCache(): void;
85
+ /**
86
+ * 预加载模板到缓存
87
+ * @param templateKeys 模板键列表
88
+ */
20
89
  preloadTemplates(templateKeys: string[]): Promise<void>;
21
90
  }