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

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