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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/audit/audit.module.d.ts +1 -0
  2. package/audit/audit.module.js +51 -2
  3. package/audit/controllers/audit.controller.d.ts +57 -1
  4. package/audit/controllers/audit.controller.js +43 -0
  5. package/audit/decorators/audit-action.decorator.d.ts +74 -0
  6. package/audit/decorators/audit-action.decorator.js +42 -0
  7. package/audit/decorators/audit-controller.decorator.d.ts +1 -1
  8. package/audit/decorators/audit-controller.decorator.js +2 -2
  9. package/audit/decorators/audit-operation.decorator.d.ts +0 -7
  10. package/audit/decorators/audit-operation.decorator.js +0 -7
  11. package/audit/decorators/entity-audit.decorator.d.ts +78 -2
  12. package/audit/decorators/entity-audit.decorator.js +145 -4
  13. package/audit/decorators/index.d.ts +2 -0
  14. package/audit/decorators/index.js +2 -0
  15. package/audit/dto/audit-action-query.dto.d.ts +13 -0
  16. package/audit/dto/audit-action-query.dto.js +77 -0
  17. package/audit/dto/index.d.ts +1 -0
  18. package/audit/dto/index.js +1 -0
  19. package/audit/entities/audit-action-summary.entity.d.ts +23 -0
  20. package/audit/entities/audit-action-summary.entity.js +101 -0
  21. package/audit/entities/entity-audit-log.entity.d.ts +7 -2
  22. package/audit/entities/entity-audit-log.entity.js +45 -9
  23. package/audit/entities/entity-transaction.entity.d.ts +8 -2
  24. package/audit/entities/entity-transaction.entity.js +39 -3
  25. package/audit/entities/index.d.ts +3 -0
  26. package/audit/entities/index.js +3 -0
  27. package/audit/entities/manual-operation-log.entity.d.ts +0 -2
  28. package/audit/entities/manual-operation-log.entity.js +8 -9
  29. package/audit/enums/audit.enums.d.ts +14 -6
  30. package/audit/enums/audit.enums.js +18 -9
  31. package/audit/examples/decorator-value-mapping.example.d.ts +70 -0
  32. package/audit/examples/decorator-value-mapping.example.js +414 -0
  33. package/audit/index.d.ts +5 -1
  34. package/audit/index.js +29 -2
  35. package/audit/interceptors/audit-action.interceptor.d.ts +39 -0
  36. package/audit/interceptors/audit-action.interceptor.js +217 -0
  37. package/audit/interceptors/audit.interceptor.d.ts +1 -0
  38. package/audit/interceptors/audit.interceptor.js +19 -11
  39. package/audit/interceptors/index.d.ts +1 -0
  40. package/audit/interceptors/index.js +1 -0
  41. package/audit/interfaces/audit.interfaces.d.ts +132 -4
  42. package/audit/services/audit-action.service.d.ts +142 -0
  43. package/audit/services/audit-action.service.js +246 -0
  44. package/audit/services/audit-context.service.d.ts +91 -0
  45. package/audit/services/audit-context.service.js +170 -0
  46. package/audit/services/entity-audit.service.d.ts +220 -9
  47. package/audit/services/entity-audit.service.js +761 -72
  48. package/audit/services/index.d.ts +3 -0
  49. package/audit/services/index.js +3 -0
  50. package/audit/services/manual-audit-log.service.d.ts +23 -23
  51. package/audit/services/manual-audit-log.service.js +34 -57
  52. package/audit/services/multi-database.service.d.ts +0 -5
  53. package/audit/services/multi-database.service.js +0 -24
  54. package/audit/services/operation-description.service.d.ts +14 -3
  55. package/audit/services/operation-description.service.js +165 -26
  56. package/audit/services/transaction-audit.service.d.ts +1 -0
  57. package/audit/services/transaction-audit.service.js +12 -9
  58. package/audit/subscribers/entity-audit.subscriber.d.ts +5 -0
  59. package/audit/subscribers/entity-audit.subscriber.js +69 -5
  60. package/cache/cache.module.d.ts +7 -8
  61. package/cache/cache.module.js +15 -13
  62. package/cache/cache.service.d.ts +6 -4
  63. package/cache/cache.service.js +24 -12
  64. package/cache/decorators/cache-put.decorator.js +5 -4
  65. package/cache/dependencies/callback.dependency.js +9 -0
  66. package/cache/dependencies/db.dependency.d.ts +43 -12
  67. package/cache/dependencies/db.dependency.js +46 -18
  68. package/cache/dependencies/tag.dependency.d.ts +31 -4
  69. package/cache/dependencies/tag.dependency.js +100 -11
  70. package/cache/entities/index.d.ts +1 -0
  71. package/cache/entities/index.js +17 -0
  72. package/cache/entities/typeorm-cache.entity.d.ts +71 -0
  73. package/cache/entities/typeorm-cache.entity.js +110 -0
  74. package/cache/index.d.ts +2 -1
  75. package/cache/index.js +19 -2
  76. package/cache/interfaces/cache-options.interface.d.ts +8 -0
  77. package/cache/providers/index.d.ts +2 -1
  78. package/cache/providers/index.js +2 -1
  79. package/cache/providers/lrucache.provider.d.ts +77 -0
  80. package/cache/providers/lrucache.provider.js +228 -0
  81. package/cache/providers/redis-cache.provider.d.ts +1 -0
  82. package/cache/providers/redis-cache.provider.js +8 -6
  83. package/cache/providers/typeorm-cache.provider.d.ts +211 -0
  84. package/cache/providers/typeorm-cache.provider.js +483 -0
  85. package/common/boilerplate.polyfill.d.ts +1 -0
  86. package/common/boilerplate.polyfill.js +18 -1
  87. package/common/helpers/validation-metadata-helper.d.ts +112 -0
  88. package/common/helpers/validation-metadata-helper.js +164 -0
  89. package/common/index.d.ts +1 -0
  90. package/common/index.js +4 -0
  91. package/decorators/examples/field-i18n.example.d.ts +294 -0
  92. package/decorators/examples/field-i18n.example.js +478 -0
  93. package/decorators/field.decorators.d.ts +95 -3
  94. package/decorators/field.decorators.js +152 -18
  95. package/decorators/transform.decorators.d.ts +0 -2
  96. package/decorators/transform.decorators.js +0 -23
  97. package/decorators/translate.decorator.d.ts +26 -0
  98. package/decorators/translate.decorator.js +26 -1
  99. package/email-log/email-log.constants.d.ts +8 -0
  100. package/email-log/email-log.constants.js +11 -0
  101. package/email-log/email-log.module.d.ts +47 -0
  102. package/email-log/email-log.module.js +140 -0
  103. package/email-log/index.d.ts +11 -0
  104. package/email-log/index.js +48 -0
  105. package/email-log/interfaces/email-log-options.interface.d.ts +61 -0
  106. package/email-log/interfaces/email-log-options.interface.js +134 -0
  107. package/email-log/interfaces/email-log-transport.interface.d.ts +20 -0
  108. package/email-log/interfaces/email-log-transport.interface.js +2 -0
  109. package/email-log/interfaces/index.d.ts +2 -0
  110. package/email-log/interfaces/index.js +18 -0
  111. package/email-log/providers/email-provider.d.ts +42 -0
  112. package/email-log/providers/email-provider.js +127 -0
  113. package/email-log/providers/index.d.ts +1 -0
  114. package/email-log/providers/index.js +17 -0
  115. package/email-log/services/email-log-alert.service.d.ts +46 -0
  116. package/email-log/services/email-log-alert.service.js +162 -0
  117. package/email-log/services/email-log-formatter.service.d.ts +78 -0
  118. package/email-log/services/email-log-formatter.service.js +442 -0
  119. package/email-log/services/email-log-logger.service.d.ts +85 -0
  120. package/email-log/services/email-log-logger.service.js +168 -0
  121. package/email-log/services/email-log-rate-limiter.service.d.ts +42 -0
  122. package/email-log/services/email-log-rate-limiter.service.js +110 -0
  123. package/email-log/services/email-log-transport.service.d.ts +80 -0
  124. package/email-log/services/email-log-transport.service.js +271 -0
  125. package/email-log/services/index.d.ts +5 -0
  126. package/email-log/services/index.js +21 -0
  127. package/email-log/transports/index.d.ts +1 -0
  128. package/email-log/transports/index.js +17 -0
  129. package/email-log/transports/pino-email.transport.d.ts +56 -0
  130. package/email-log/transports/pino-email.transport.js +188 -0
  131. package/email-log/utils/index.d.ts +2 -0
  132. package/email-log/utils/index.js +18 -0
  133. package/email-log/utils/log-level.helper.d.ts +46 -0
  134. package/email-log/utils/log-level.helper.js +74 -0
  135. package/email-log/utils/pino-transport.utils.d.ts +135 -0
  136. package/email-log/utils/pino-transport.utils.js +238 -0
  137. package/file-upload/controllers/file-access.controller.d.ts +23 -0
  138. package/file-upload/controllers/file-access.controller.js +128 -0
  139. package/file-upload/decorators/column.decorator.d.ts +151 -0
  140. package/file-upload/decorators/column.decorator.js +273 -0
  141. package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
  142. package/file-upload/decorators/csv-data.decorator.js +85 -0
  143. package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
  144. package/file-upload/decorators/csv-import.decorator.js +24 -0
  145. package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
  146. package/file-upload/decorators/examples/column-mapping.example.js +122 -0
  147. package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
  148. package/file-upload/decorators/excel-data.decorator.js +85 -0
  149. package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
  150. package/file-upload/decorators/file-upload.decorator.js +172 -0
  151. package/file-upload/decorators/index.d.ts +5 -0
  152. package/file-upload/decorators/index.js +38 -0
  153. package/file-upload/decorators/process.decorator.d.ts +40 -0
  154. package/file-upload/decorators/process.decorator.js +52 -0
  155. package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
  156. package/file-upload/decorators/validate-data.decorator.js +39 -0
  157. package/file-upload/dto/create-file.dto.d.ts +24 -0
  158. package/file-upload/dto/create-file.dto.js +112 -0
  159. package/file-upload/dto/find-files.dto.d.ts +15 -0
  160. package/file-upload/dto/find-files.dto.js +76 -0
  161. package/file-upload/dto/index.d.ts +4 -0
  162. package/file-upload/dto/index.js +20 -0
  163. package/file-upload/dto/pagination.dto.d.ts +7 -0
  164. package/file-upload/dto/pagination.dto.js +39 -0
  165. package/file-upload/dto/update-file.dto.d.ts +15 -0
  166. package/file-upload/dto/update-file.dto.js +67 -0
  167. package/file-upload/entities/file-metadata.entity.d.ts +25 -0
  168. package/file-upload/entities/file-metadata.entity.js +76 -0
  169. package/file-upload/entities/file.entity.d.ts +114 -0
  170. package/file-upload/entities/file.entity.js +350 -0
  171. package/file-upload/entities/index.d.ts +2 -0
  172. package/file-upload/entities/index.js +18 -0
  173. package/file-upload/enums/file-type.enum.d.ts +72 -0
  174. package/file-upload/enums/file-type.enum.js +212 -0
  175. package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
  176. package/file-upload/exceptions/file-upload.exception.js +120 -0
  177. package/file-upload/exceptions/index.d.ts +1 -0
  178. package/file-upload/exceptions/index.js +17 -0
  179. package/file-upload/file-upload.module.d.ts +89 -0
  180. package/file-upload/file-upload.module.js +292 -0
  181. package/file-upload/index.d.ts +37 -0
  182. package/file-upload/index.js +77 -0
  183. package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
  184. package/file-upload/interceptors/file-upload.interceptor.js +594 -0
  185. package/file-upload/interceptors/index.d.ts +1 -0
  186. package/file-upload/interceptors/index.js +17 -0
  187. package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
  188. package/file-upload/interfaces/custom-file-type.interface.js +2 -0
  189. package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
  190. package/file-upload/interfaces/file-buffer.interface.js +2 -0
  191. package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
  192. package/file-upload/interfaces/file-entity.interface.js +28 -0
  193. package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
  194. package/file-upload/interfaces/file-metadata.interface.js +2 -0
  195. package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
  196. package/file-upload/interfaces/file-processor.interface.js +2 -0
  197. package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
  198. package/file-upload/interfaces/file-upload-options.interface.js +5 -0
  199. package/file-upload/interfaces/index.d.ts +7 -0
  200. package/file-upload/interfaces/index.js +24 -0
  201. package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
  202. package/file-upload/interfaces/processor-options.interface.js +2 -0
  203. package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
  204. package/file-upload/interfaces/storage-provider.interface.js +2 -0
  205. package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
  206. package/file-upload/interfaces/upload-options.interface.js +2 -0
  207. package/file-upload/processors/csv.processor.d.ts +98 -0
  208. package/file-upload/processors/csv.processor.js +391 -0
  209. package/file-upload/processors/excel.processor.d.ts +130 -0
  210. package/file-upload/processors/excel.processor.js +547 -0
  211. package/file-upload/processors/image.processor.d.ts +199 -0
  212. package/file-upload/processors/image.processor.js +377 -0
  213. package/file-upload/providers/index.d.ts +2 -0
  214. package/file-upload/providers/index.js +18 -0
  215. package/file-upload/providers/local-storage.provider.d.ts +98 -0
  216. package/file-upload/providers/local-storage.provider.js +484 -0
  217. package/file-upload/providers/s3-storage.provider.d.ts +87 -0
  218. package/file-upload/providers/s3-storage.provider.js +455 -0
  219. package/file-upload/services/file-signature-validator.service.d.ts +118 -0
  220. package/file-upload/services/file-signature-validator.service.js +376 -0
  221. package/file-upload/services/file.service.d.ts +193 -0
  222. package/file-upload/services/file.service.js +638 -0
  223. package/file-upload/services/index.d.ts +4 -0
  224. package/file-upload/services/index.js +20 -0
  225. package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
  226. package/file-upload/services/malicious-file-detector.service.js +1234 -0
  227. package/file-upload/services/mime-registry.service.d.ts +47 -0
  228. package/file-upload/services/mime-registry.service.js +167 -0
  229. package/file-upload/utils/checksum.util.d.ts +28 -0
  230. package/file-upload/utils/checksum.util.js +65 -0
  231. package/file-upload/utils/dynamic-import.util.d.ts +54 -0
  232. package/file-upload/utils/dynamic-import.util.js +156 -0
  233. package/file-upload/utils/filename.util.d.ts +59 -0
  234. package/file-upload/utils/filename.util.js +184 -0
  235. package/file-upload/utils/filepath.util.d.ts +70 -0
  236. package/file-upload/utils/filepath.util.js +152 -0
  237. package/file-upload/utils/index.d.ts +4 -0
  238. package/file-upload/utils/index.js +20 -0
  239. package/filters/bad-request.filter.d.ts +9 -0
  240. package/filters/bad-request.filter.js +57 -16
  241. package/http-client/config/http-client.config.d.ts +5 -0
  242. package/http-client/config/http-client.config.js +27 -14
  243. package/http-client/decorators/http-client.decorators.d.ts +7 -28
  244. package/http-client/decorators/http-client.decorators.js +124 -99
  245. package/http-client/entities/http-log.entity.d.ts +0 -20
  246. package/http-client/entities/http-log.entity.js +1 -21
  247. package/http-client/examples/advanced-usage.example.d.ts +4 -5
  248. package/http-client/examples/advanced-usage.example.js +7 -59
  249. package/http-client/examples/axios-config-extended.example.d.ts +17 -0
  250. package/http-client/examples/axios-config-extended.example.js +311 -0
  251. package/http-client/examples/flexible-response-example.d.ts +28 -0
  252. package/http-client/examples/flexible-response-example.js +120 -0
  253. package/http-client/examples/index.d.ts +2 -0
  254. package/http-client/examples/index.js +2 -0
  255. package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
  256. package/http-client/examples/proxy-from-environment.example.js +409 -0
  257. package/http-client/examples/ssl-certificate.example.d.ts +47 -0
  258. package/http-client/examples/ssl-certificate.example.js +432 -0
  259. package/http-client/http-client.module.d.ts +43 -2
  260. package/http-client/http-client.module.js +150 -90
  261. package/http-client/index.d.ts +1 -1
  262. package/http-client/interfaces/api-client-config.interface.d.ts +24 -103
  263. package/http-client/interfaces/http-client-config.interface.d.ts +137 -62
  264. package/http-client/services/api-client-registry.service.d.ts +8 -21
  265. package/http-client/services/api-client-registry.service.js +31 -282
  266. package/http-client/services/circuit-breaker.service.d.ts +69 -2
  267. package/http-client/services/circuit-breaker.service.js +185 -7
  268. package/http-client/services/http-client.service.d.ts +85 -23
  269. package/http-client/services/http-client.service.js +512 -168
  270. package/http-client/services/http-log-query.service.js +0 -13
  271. package/http-client/services/index.d.ts +0 -1
  272. package/http-client/services/index.js +0 -1
  273. package/http-client/services/logging.service.d.ts +69 -16
  274. package/http-client/services/logging.service.js +290 -170
  275. package/http-client/utils/call-stack-extractor.util.d.ts +26 -0
  276. package/http-client/utils/call-stack-extractor.util.js +35 -0
  277. package/http-client/utils/context-extractor.util.d.ts +2 -0
  278. package/http-client/utils/context-extractor.util.js +17 -3
  279. package/http-client/utils/curl-generator.util.js +2 -5
  280. package/http-client/utils/index.d.ts +2 -0
  281. package/http-client/utils/index.js +2 -0
  282. package/http-client/utils/proxy-environment.util.d.ts +42 -0
  283. package/http-client/utils/proxy-environment.util.js +154 -0
  284. package/http-client/utils/retry-recorder.util.d.ts +0 -4
  285. package/http-client/utils/retry-recorder.util.js +2 -27
  286. package/http-client/utils/sanitize.util.d.ts +58 -0
  287. package/http-client/utils/sanitize.util.js +188 -0
  288. package/http-client/utils/security-validator.util.d.ts +118 -0
  289. package/http-client/utils/security-validator.util.js +354 -0
  290. package/index.d.ts +4 -1
  291. package/index.js +6 -1
  292. package/interceptors/translation-interceptor.service.d.ts +7 -0
  293. package/interceptors/translation-interceptor.service.js +40 -8
  294. package/ip-filter/constants.d.ts +21 -0
  295. package/ip-filter/constants.js +24 -0
  296. package/ip-filter/decorators/index.d.ts +1 -0
  297. package/ip-filter/decorators/index.js +17 -0
  298. package/ip-filter/decorators/ip-filter.decorator.d.ts +58 -0
  299. package/ip-filter/decorators/ip-filter.decorator.js +79 -0
  300. package/ip-filter/guards/index.d.ts +1 -0
  301. package/ip-filter/guards/index.js +17 -0
  302. package/ip-filter/guards/ip-filter.guard.d.ts +62 -0
  303. package/ip-filter/guards/ip-filter.guard.js +174 -0
  304. package/ip-filter/index.d.ts +7 -0
  305. package/ip-filter/index.js +23 -0
  306. package/ip-filter/interfaces/index.d.ts +4 -0
  307. package/ip-filter/interfaces/index.js +20 -0
  308. package/ip-filter/interfaces/ip-filter-async-options.interface.d.ts +15 -0
  309. package/ip-filter/interfaces/ip-filter-async-options.interface.js +2 -0
  310. package/ip-filter/interfaces/ip-filter-metadata.interface.d.ts +26 -0
  311. package/ip-filter/interfaces/ip-filter-metadata.interface.js +2 -0
  312. package/ip-filter/interfaces/ip-filter-options.interface.d.ts +34 -0
  313. package/ip-filter/interfaces/ip-filter-options.interface.js +2 -0
  314. package/ip-filter/interfaces/ip-rule.interface.d.ts +36 -0
  315. package/ip-filter/interfaces/ip-rule.interface.js +2 -0
  316. package/ip-filter/ip-filter.module.d.ts +55 -0
  317. package/ip-filter/ip-filter.module.js +105 -0
  318. package/ip-filter/services/index.d.ts +1 -0
  319. package/ip-filter/services/index.js +17 -0
  320. package/ip-filter/services/ip-filter.service.d.ts +92 -0
  321. package/ip-filter/services/ip-filter.service.js +238 -0
  322. package/ip-filter/utils/index.d.ts +1 -0
  323. package/ip-filter/utils/index.js +17 -0
  324. package/ip-filter/utils/ip-utils.d.ts +61 -0
  325. package/ip-filter/utils/ip-utils.js +162 -0
  326. package/package.json +34 -29
  327. package/providers/context.provider.d.ts +9 -0
  328. package/providers/context.provider.js +13 -0
  329. package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
  330. package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
  331. package/redis-lock/index.d.ts +2 -0
  332. package/redis-lock/index.js +5 -1
  333. package/redis-lock/lock-heartbeat.service.d.ts +80 -0
  334. package/redis-lock/lock-heartbeat.service.js +232 -0
  335. package/redis-lock/redis-lock.module.d.ts +6 -0
  336. package/redis-lock/redis-lock.module.js +136 -77
  337. package/redis-lock/redis-lock.service.d.ts +31 -0
  338. package/redis-lock/redis-lock.service.js +124 -17
  339. package/setup/bootstrap.setup.d.ts +2 -1
  340. package/setup/bootstrap.setup.js +3 -2
  341. package/setup/index.d.ts +1 -0
  342. package/setup/index.js +1 -0
  343. package/setup/run-in-mode.decorator.d.ts +56 -0
  344. package/setup/run-in-mode.decorator.js +92 -0
  345. package/setup/schedule.decorator.d.ts +1 -0
  346. package/setup/schedule.decorator.js +28 -13
  347. package/setup/worker.decorator.js +10 -1
  348. package/shared/index.d.ts +1 -1
  349. package/shared/index.js +1 -1
  350. package/shared/{serviceRegistryModule.js → service-registry.module.js} +28 -17
  351. package/shared/services/api-config.service.d.ts +41 -0
  352. package/shared/services/api-config.service.js +175 -8
  353. package/shared/services/index.d.ts +0 -1
  354. package/shared/services/index.js +0 -1
  355. package/validators/custom-validate.validator.d.ts +1 -0
  356. package/validators/custom-validate.validator.js +1 -0
  357. package/validators/file-mimetype.validator.d.ts +0 -2
  358. package/validators/file-mimetype.validator.js +4 -6
  359. package/validators/is-exists.validator.d.ts +15 -6
  360. package/validators/is-exists.validator.js +8 -7
  361. package/validators/is-unique.validator.d.ts +22 -7
  362. package/validators/is-unique.validator.js +41 -17
  363. package/vault/vault-config.service.js +1 -1
  364. package/cache/providers/memory-cache.provider.d.ts +0 -49
  365. package/cache/providers/memory-cache.provider.js +0 -197
  366. package/http-client/services/cache.service.d.ts +0 -76
  367. package/http-client/services/cache.service.js +0 -333
  368. package/shared/services/validator.service.d.ts +0 -3
  369. package/shared/services/validator.service.js +0 -20
  370. /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
@@ -23,11 +23,9 @@ exports.IsUnique = IsUnique;
23
23
  const class_validator_1 = require("class-validator");
24
24
  const nestjs_i18n_1 = require("nestjs-i18n");
25
25
  const common_1 = require("@nestjs/common");
26
- const transactional_1 = require("@nestjs-cls/transactional");
26
+ const transaction_1 = require("@nest-omni/transaction");
27
27
  let IsUniqueValidator = class IsUniqueValidator {
28
- constructor(transactionHost) {
29
- this.transactionHost = transactionHost;
30
- }
28
+ constructor() { }
31
29
  /**
32
30
  * 解析 Entity 引用,支持多种形式:
33
31
  * 1. Entity 类直接引用
@@ -84,40 +82,66 @@ let IsUniqueValidator = class IsUniqueValidator {
84
82
  }
85
83
  validate(value, args) {
86
84
  return __awaiter(this, void 0, void 0, function* () {
87
- const [entityRef, findCondition] = args.constraints;
85
+ const [entityRef, findCondition, options] = args.constraints;
88
86
  // 解析 Entity 引用
89
87
  const entityClass = this.resolveEntity(entityRef, args.property, args.object);
90
- const repository = this.transactionHost.tx.getRepository(entityClass);
88
+ // 获取数据源(支持多数据源)
89
+ const dataSourceName = (options === null || options === void 0 ? void 0 : options.dataSource) || 'default';
90
+ const dataSource = (0, transaction_1.getDataSource)(dataSourceName);
91
+ const repository = dataSource.getRepository(entityClass);
91
92
  args.value = value;
92
93
  let exists;
93
94
  const defCon = findCondition(args);
94
- const pkCols = repository.metadata
95
- .primaryColumns.map((column) => column.propertyName);
96
- const isNew = pkCols.some((pk) => args.object[pk]);
97
- if (!isNew) {
98
- exists =
99
- (yield repository
100
- .count({ where: defCon })) < 1;
95
+ // 获取用于判断是否为新建的字段
96
+ // 优先级:手动配置的 uniqueKeys > 实体主键
97
+ let pkCols;
98
+ if ((options === null || options === void 0 ? void 0 : options.uniqueKeys) && options.uniqueKeys.length > 0) {
99
+ // 1. 使用手动指定的字段
100
+ pkCols = options.uniqueKeys;
101
+ }
102
+ else {
103
+ // 2. 使用实体的主键
104
+ pkCols = repository.metadata.primaryColumns.map((column) => column.propertyName);
105
+ }
106
+ // 如果没有主键也没有 uniqueKeys,使用简化逻辑
107
+ // 查询条件本身表示唯一性,只要存在记录就不允许
108
+ if (pkCols.length === 0) {
109
+ const count = yield repository.count({ where: defCon });
110
+ exists = count < 1;
111
+ return exists;
112
+ }
113
+ // 修复:检查是否为新建记录
114
+ // 如果所有 uniqueKeys/主键都没有值(null/undefined),则为新建
115
+ const isNew = !pkCols.some((pk) => {
116
+ const pkValue = args.object[pk];
117
+ return pkValue !== null && pkValue !== undefined && pkValue !== '';
118
+ });
119
+ if (isNew) {
120
+ // 新建场景:简单检查是否存在相同值的记录
121
+ exists = (yield repository.count({ where: defCon })) < 1;
101
122
  }
102
123
  else {
124
+ // 更新场景:需要排除当前记录(通过主键对比)
103
125
  const entities = yield repository
104
126
  .createQueryBuilder()
105
127
  .where(defCon)
106
- .select(pkCols)
107
128
  .limit(2)
108
- .execute();
129
+ .getMany();
109
130
  const entityCount = entities.length;
110
131
  if (entityCount === 1) {
132
+ // 只有一条记录,检查是否是当前记录本身
111
133
  const entity = entities[0];
112
134
  const oldPk = {};
113
135
  const newPk = {};
114
- pkCols.map((pk) => {
136
+ pkCols.forEach((pk) => {
115
137
  oldPk[pk] = entity[pk];
116
138
  newPk[pk] = args.object[pk];
117
139
  });
140
+ // 如果主键相同,说明是自己,允许(唯一)
118
141
  exists = JSON.stringify(oldPk) === JSON.stringify(newPk);
119
142
  }
120
143
  else {
144
+ // 0条或多条记录
121
145
  exists = entityCount < 1;
122
146
  }
123
147
  }
@@ -132,7 +156,7 @@ exports.IsUniqueValidator = IsUniqueValidator;
132
156
  exports.IsUniqueValidator = IsUniqueValidator = __decorate([
133
157
  (0, common_1.Injectable)(),
134
158
  (0, class_validator_1.ValidatorConstraint)({ name: 'isUnique', async: true }),
135
- __metadata("design:paramtypes", [transactional_1.TransactionHost])
159
+ __metadata("design:paramtypes", [])
136
160
  ], IsUniqueValidator);
137
161
  function IsUnique(constraints, validationOptions) {
138
162
  return function (object, propertyName) {
@@ -172,7 +172,7 @@ let VaultConfigService = VaultConfigService_1 = class VaultConfigService {
172
172
  }
173
173
  try {
174
174
  const health = yield this.vaultClient.health();
175
- return health && !health.sealed;
175
+ return !!(health && !health.sealed);
176
176
  }
177
177
  catch (error) {
178
178
  this.logger.error('Vault health check failed', error.message);
@@ -1,49 +0,0 @@
1
- import { BaseCacheProvider } from './base-cache.provider';
2
- /**
3
- * Memory cache provider using native Map with TTL support
4
- *
5
- * This is the L2 cache layer - process-level caching.
6
- * Data is stored in memory and shared across all requests in the same process.
7
- *
8
- * Faster than Redis but not shared across multiple processes/servers.
9
- */
10
- export declare class MemoryCacheProvider extends BaseCacheProvider {
11
- private cache;
12
- private keys;
13
- private defaultTtl?;
14
- private namespace;
15
- constructor(options?: {
16
- ttl?: number;
17
- namespace?: string;
18
- });
19
- getName(): string;
20
- get<T>(key: string): Promise<T | null>;
21
- set<T>(key: string, value: T, ttl?: number): Promise<void>;
22
- delete(key: string | string[]): Promise<void>;
23
- deletePattern(pattern: string): Promise<number>;
24
- clear(): Promise<void>;
25
- has(key: string): Promise<boolean>;
26
- /**
27
- * Get all keys (for debugging/testing)
28
- */
29
- getAllKeys(): string[];
30
- /**
31
- * Get cache size
32
- */
33
- getSize(): number;
34
- /**
35
- * Clean up expired items (optional maintenance method)
36
- */
37
- cleanup(): number;
38
- /**
39
- * Optimized mget with batch cleanup
40
- */
41
- mget<T>(keys: string[]): Promise<(T | null)[]>;
42
- /**
43
- * Optimized mset
44
- */
45
- mset(items: Array<{
46
- key: string;
47
- value: any;
48
- }>, ttl?: number): Promise<void>;
49
- }
@@ -1,197 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryCacheProvider = void 0;
13
- const base_cache_provider_1 = require("./base-cache.provider");
14
- /**
15
- * Memory cache provider using native Map with TTL support
16
- *
17
- * This is the L2 cache layer - process-level caching.
18
- * Data is stored in memory and shared across all requests in the same process.
19
- *
20
- * Faster than Redis but not shared across multiple processes/servers.
21
- */
22
- class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
23
- constructor(options) {
24
- super();
25
- this.cache = new Map();
26
- this.keys = new Set();
27
- this.defaultTtl = options === null || options === void 0 ? void 0 : options.ttl;
28
- this.namespace = (options === null || options === void 0 ? void 0 : options.namespace) || 'cache:memory';
29
- }
30
- getName() {
31
- return 'Memory';
32
- }
33
- get(key) {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- try {
36
- const item = this.cache.get(key);
37
- if (!item) {
38
- return null;
39
- }
40
- // Check if item has expired
41
- if (item.expiresAt && Date.now() > item.expiresAt) {
42
- this.cache.delete(key);
43
- this.keys.delete(key);
44
- return null;
45
- }
46
- return item.value;
47
- }
48
- catch (_a) {
49
- return null;
50
- }
51
- });
52
- }
53
- set(key, value, ttl) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- try {
56
- const effectiveTtl = ttl !== null && ttl !== void 0 ? ttl : this.defaultTtl;
57
- const expiresAt = effectiveTtl ? Date.now() + effectiveTtl : undefined;
58
- const item = {
59
- value,
60
- expiresAt,
61
- };
62
- this.cache.set(key, item);
63
- this.keys.add(key);
64
- }
65
- catch (error) {
66
- throw new Error(`MemoryCacheProvider: Failed to set key ${key}: ${error instanceof Error ? error.message : String(error)}`);
67
- }
68
- });
69
- }
70
- delete(key) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- try {
73
- if (Array.isArray(key)) {
74
- key.forEach((k) => {
75
- this.cache.delete(k);
76
- this.keys.delete(k);
77
- });
78
- }
79
- else {
80
- this.cache.delete(key);
81
- this.keys.delete(key);
82
- }
83
- }
84
- catch (error) {
85
- throw new Error(`MemoryCacheProvider: Failed to delete key(s): ${error instanceof Error ? error.message : String(error)}`);
86
- }
87
- });
88
- }
89
- deletePattern(pattern) {
90
- return __awaiter(this, void 0, void 0, function* () {
91
- try {
92
- const regex = this.patternToRegex(pattern);
93
- const matchedKeys = Array.from(this.keys).filter((key) => regex.test(key));
94
- if (matchedKeys.length > 0) {
95
- yield this.delete(matchedKeys);
96
- }
97
- return matchedKeys.length;
98
- }
99
- catch (_a) {
100
- return 0;
101
- }
102
- });
103
- }
104
- clear() {
105
- return __awaiter(this, void 0, void 0, function* () {
106
- try {
107
- this.cache.clear();
108
- this.keys.clear();
109
- }
110
- catch (error) {
111
- throw new Error(`MemoryCacheProvider: Failed to clear cache: ${error instanceof Error ? error.message : String(error)}`);
112
- }
113
- });
114
- }
115
- has(key) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- try {
118
- const item = this.cache.get(key);
119
- if (!item) {
120
- return false;
121
- }
122
- // Check if item has expired
123
- if (item.expiresAt && Date.now() > item.expiresAt) {
124
- this.cache.delete(key);
125
- this.keys.delete(key);
126
- return false;
127
- }
128
- return true;
129
- }
130
- catch (_a) {
131
- return false;
132
- }
133
- });
134
- }
135
- /**
136
- * Get all keys (for debugging/testing)
137
- */
138
- getAllKeys() {
139
- return Array.from(this.keys);
140
- }
141
- /**
142
- * Get cache size
143
- */
144
- getSize() {
145
- return this.keys.size;
146
- }
147
- /**
148
- * Clean up expired items (optional maintenance method)
149
- */
150
- cleanup() {
151
- let cleaned = 0;
152
- const now = Date.now();
153
- for (const [key, item] of this.cache.entries()) {
154
- if (item.expiresAt && now > item.expiresAt) {
155
- this.cache.delete(key);
156
- this.keys.delete(key);
157
- cleaned++;
158
- }
159
- }
160
- return cleaned;
161
- }
162
- /**
163
- * Optimized mget with batch cleanup
164
- */
165
- mget(keys) {
166
- return __awaiter(this, void 0, void 0, function* () {
167
- const results = [];
168
- const now = Date.now();
169
- for (const key of keys) {
170
- const item = this.cache.get(key);
171
- if (!item) {
172
- results.push(null);
173
- continue;
174
- }
175
- // Check if item has expired
176
- if (item.expiresAt && now > item.expiresAt) {
177
- this.cache.delete(key);
178
- this.keys.delete(key);
179
- results.push(null);
180
- continue;
181
- }
182
- results.push(item.value);
183
- }
184
- return results;
185
- });
186
- }
187
- /**
188
- * Optimized mset
189
- */
190
- mset(items, ttl) {
191
- return __awaiter(this, void 0, void 0, function* () {
192
- const promises = items.map((item) => this.set(item.key, item.value, ttl));
193
- yield Promise.all(promises);
194
- });
195
- }
196
- }
197
- exports.MemoryCacheProvider = MemoryCacheProvider;
@@ -1,76 +0,0 @@
1
- import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import { HttpCacheConfig } from '../interfaces/http-client-config.interface';
3
- import { CacheService } from '../../cache/cache.service';
4
- /**
5
- * HTTP缓存服务
6
- * 集成现有的三层缓存架构
7
- */
8
- export declare class HttpCacheService {
9
- private readonly cacheService;
10
- private readonly logger;
11
- constructor(cacheService: CacheService);
12
- /**
13
- * 获取缓存的响应
14
- */
15
- get(config: AxiosRequestConfig, cacheOptions: HttpCacheConfig): Promise<AxiosResponse | null>;
16
- /**
17
- * 缓存响应
18
- */
19
- set(config: AxiosRequestConfig, response: AxiosResponse, cacheOptions: HttpCacheConfig): Promise<void>;
20
- /**
21
- * 清除缓存
22
- */
23
- clear(pattern?: string): Promise<void>;
24
- /**
25
- * 获取缓存统计信息
26
- */
27
- getStats(): Promise<any>;
28
- /**
29
- * 清理过期缓存
30
- */
31
- cleanup(): Promise<void>;
32
- /**
33
- * 预热缓存
34
- */
35
- warmup(urls: string[], headers?: Record<string, string>): Promise<void>;
36
- /**
37
- * 获取缓存命中率详情
38
- */
39
- getDetailedStats(): Promise<any>;
40
- /**
41
- * 生成缓存键
42
- */
43
- private generateCacheKey;
44
- /**
45
- * 构建完整的缓存键
46
- */
47
- private buildCacheKey;
48
- /**
49
- * 映射缓存层
50
- */
51
- private mapLayers;
52
- /**
53
- * 选择用于缓存键的头信息
54
- */
55
- private selectHeadersForCacheKey;
56
- /**
57
- * 判断响应是否可缓存
58
- */
59
- private isResponseCacheable;
60
- /**
61
- * 哈希对象
62
- */
63
- private hashObject;
64
- /**
65
- * 计算综合命中率
66
- */
67
- private calculateHitRate;
68
- /**
69
- * 获取最近的缓存活动
70
- */
71
- private getRecentCacheActivity;
72
- /**
73
- * 生成缓存优化建议
74
- */
75
- private generateRecommendations;
76
- }