@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
@@ -1,4 +1,7 @@
1
1
  import type { CacheProvider } from '../interfaces/cache-provider.interface';
2
+ /**
3
+ * Base cache provider with common utility methods
4
+ */
2
5
  export declare abstract class BaseCacheProvider implements CacheProvider {
3
6
  abstract get<T>(key: string): Promise<T | null>;
4
7
  abstract set<T>(key: string, value: T, ttl?: number): Promise<void>;
@@ -7,10 +10,21 @@ export declare abstract class BaseCacheProvider implements CacheProvider {
7
10
  abstract clear(): Promise<void>;
8
11
  abstract has(key: string): Promise<boolean>;
9
12
  abstract getName(): string;
13
+ /**
14
+ * Get multiple values at once
15
+ * Default implementation - can be overridden for better performance
16
+ */
10
17
  mget<T>(keys: string[]): Promise<(T | null)[]>;
18
+ /**
19
+ * Set multiple values at once
20
+ * Default implementation - can be overridden for better performance
21
+ */
11
22
  mset(items: Array<{
12
23
  key: string;
13
24
  value: any;
14
25
  }>, ttl?: number): Promise<void>;
26
+ /**
27
+ * Convert wildcard pattern to RegExp
28
+ */
15
29
  protected patternToRegex(pattern: string): RegExp;
16
30
  }
@@ -10,21 +10,37 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseCacheProvider = void 0;
13
+ /**
14
+ * Base cache provider with common utility methods
15
+ */
13
16
  class BaseCacheProvider {
17
+ /**
18
+ * Get multiple values at once
19
+ * Default implementation - can be overridden for better performance
20
+ */
14
21
  mget(keys) {
15
22
  return __awaiter(this, void 0, void 0, function* () {
16
23
  const promises = keys.map((key) => this.get(key));
17
24
  return Promise.all(promises);
18
25
  });
19
26
  }
27
+ /**
28
+ * Set multiple values at once
29
+ * Default implementation - can be overridden for better performance
30
+ */
20
31
  mset(items, ttl) {
21
32
  return __awaiter(this, void 0, void 0, function* () {
22
33
  const promises = items.map((item) => this.set(item.key, item.value, ttl));
23
34
  yield Promise.all(promises);
24
35
  });
25
36
  }
37
+ /**
38
+ * Convert wildcard pattern to RegExp
39
+ */
26
40
  patternToRegex(pattern) {
41
+ // Escape special regex characters except *
27
42
  const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&');
43
+ // Convert * to .*
28
44
  const regexPattern = escaped.replace(/\*/g, '.*');
29
45
  return new RegExp(`^${regexPattern}$`);
30
46
  }
@@ -1,4 +1,12 @@
1
1
  import { BaseCacheProvider } from './base-cache.provider';
2
+ /**
3
+ * CLS (Continuation Local Storage) cache provider
4
+ *
5
+ * This is the L1 cache layer - request-scoped caching using nestjs-cls.
6
+ * Data stored here is only available within the same request context.
7
+ *
8
+ * Fastest cache layer but limited to single request lifecycle.
9
+ */
2
10
  export declare class ClsCacheProvider extends BaseCacheProvider {
3
11
  private static readonly CACHE_PREFIX;
4
12
  private static readonly KEYS_SET;
@@ -9,8 +17,20 @@ export declare class ClsCacheProvider extends BaseCacheProvider {
9
17
  deletePattern(pattern: string): Promise<number>;
10
18
  clear(): Promise<void>;
11
19
  has(key: string): Promise<boolean>;
20
+ /**
21
+ * Get full key with prefix
22
+ */
12
23
  private getFullKey;
24
+ /**
25
+ * Add key to tracked keys set
26
+ */
13
27
  private addKeyToSet;
28
+ /**
29
+ * Remove key from tracked keys set
30
+ */
14
31
  private removeKeyFromSet;
32
+ /**
33
+ * Get all tracked keys
34
+ */
15
35
  private getAllKeys;
16
36
  }
@@ -12,6 +12,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.ClsCacheProvider = void 0;
13
13
  const nestjs_cls_1 = require("nestjs-cls");
14
14
  const base_cache_provider_1 = require("./base-cache.provider");
15
+ /**
16
+ * CLS (Continuation Local Storage) cache provider
17
+ *
18
+ * This is the L1 cache layer - request-scoped caching using nestjs-cls.
19
+ * Data stored here is only available within the same request context.
20
+ *
21
+ * Fastest cache layer but limited to single request lifecycle.
22
+ */
15
23
  class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
16
24
  getName() {
17
25
  return 'CLS';
@@ -25,6 +33,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
25
33
  if (!cached) {
26
34
  return null;
27
35
  }
36
+ // Check TTL
28
37
  if (cached.expiresAt && Date.now() > cached.expiresAt) {
29
38
  yield this.delete(key);
30
39
  return null;
@@ -32,6 +41,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
32
41
  return cached.value;
33
42
  }
34
43
  catch (_a) {
44
+ // CLS might not be available (e.g., outside request context)
35
45
  return null;
36
46
  }
37
47
  });
@@ -46,9 +56,11 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
46
56
  cached.expiresAt = Date.now() + ttl;
47
57
  }
48
58
  store.set(fullKey, cached);
59
+ // Track this key for cleanup
49
60
  this.addKeyToSet(key);
50
61
  }
51
62
  catch (_a) {
63
+ // CLS might not be available, silently fail
52
64
  }
53
65
  });
54
66
  }
@@ -64,6 +76,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
64
76
  }
65
77
  }
66
78
  catch (_a) {
79
+ // CLS might not be available, silently fail
67
80
  }
68
81
  });
69
82
  }
@@ -90,6 +103,7 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
90
103
  yield this.delete(allKeys);
91
104
  }
92
105
  catch (_a) {
106
+ // CLS might not be available, silently fail
93
107
  }
94
108
  });
95
109
  }
@@ -99,9 +113,15 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
99
113
  return value !== null;
100
114
  });
101
115
  }
116
+ /**
117
+ * Get full key with prefix
118
+ */
102
119
  getFullKey(key) {
103
120
  return `${ClsCacheProvider.CACHE_PREFIX}${key}`;
104
121
  }
122
+ /**
123
+ * Add key to tracked keys set
124
+ */
105
125
  addKeyToSet(key) {
106
126
  try {
107
127
  const store = nestjs_cls_1.ClsServiceManager.getClsService();
@@ -110,8 +130,12 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
110
130
  store.set(ClsCacheProvider.KEYS_SET, keys);
111
131
  }
112
132
  catch (_a) {
133
+ // Ignore
113
134
  }
114
135
  }
136
+ /**
137
+ * Remove key from tracked keys set
138
+ */
115
139
  removeKeyFromSet(key) {
116
140
  try {
117
141
  const store = nestjs_cls_1.ClsServiceManager.getClsService();
@@ -122,8 +146,12 @@ class ClsCacheProvider extends base_cache_provider_1.BaseCacheProvider {
122
146
  }
123
147
  }
124
148
  catch (_a) {
149
+ // Ignore
125
150
  }
126
151
  }
152
+ /**
153
+ * Get all tracked keys
154
+ */
127
155
  getAllKeys() {
128
156
  try {
129
157
  const store = nestjs_cls_1.ClsServiceManager.getClsService();
@@ -1,13 +1,41 @@
1
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
+ * **Automatic Cleanup**: Includes periodic cleanup of expired items to prevent memory leaks.
11
+ */
2
12
  export declare class MemoryCacheProvider extends BaseCacheProvider {
3
13
  private cache;
4
14
  private keys;
5
15
  private defaultTtl?;
6
16
  private namespace;
17
+ private cleanupTimer?;
18
+ /**
19
+ * Cleanup interval in milliseconds
20
+ * @default 300000 (5 minutes)
21
+ */
22
+ private readonly CLEANUP_INTERVAL;
7
23
  constructor(options?: {
8
24
  ttl?: number;
9
25
  namespace?: string;
10
26
  });
27
+ /**
28
+ * Start periodic cleanup of expired items
29
+ */
30
+ private startCleanupTimer;
31
+ /**
32
+ * Stop automatic cleanup timer
33
+ */
34
+ private stopCleanupTimer;
35
+ /**
36
+ * Destroy the provider and cleanup resources
37
+ */
38
+ destroy(): void;
11
39
  getName(): string;
12
40
  get<T>(key: string): Promise<T | null>;
13
41
  set<T>(key: string, value: T, ttl?: number): Promise<void>;
@@ -15,10 +43,25 @@ export declare class MemoryCacheProvider extends BaseCacheProvider {
15
43
  deletePattern(pattern: string): Promise<number>;
16
44
  clear(): Promise<void>;
17
45
  has(key: string): Promise<boolean>;
46
+ /**
47
+ * Get all keys (for debugging/testing)
48
+ */
18
49
  getAllKeys(): string[];
50
+ /**
51
+ * Get cache size
52
+ */
19
53
  getSize(): number;
54
+ /**
55
+ * Clean up expired items (optional maintenance method)
56
+ */
20
57
  cleanup(): number;
58
+ /**
59
+ * Optimized mget with batch cleanup
60
+ */
21
61
  mget<T>(keys: string[]): Promise<(T | null)[]>;
62
+ /**
63
+ * Optimized mset
64
+ */
22
65
  mset(items: Array<{
23
66
  key: string;
24
67
  value: any;
@@ -11,13 +11,61 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MemoryCacheProvider = void 0;
13
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
+ * **Automatic Cleanup**: Includes periodic cleanup of expired items to prevent memory leaks.
23
+ */
14
24
  class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
15
25
  constructor(options) {
16
26
  super();
17
27
  this.cache = new Map();
18
28
  this.keys = new Set();
29
+ /**
30
+ * Cleanup interval in milliseconds
31
+ * @default 300000 (5 minutes)
32
+ */
33
+ this.CLEANUP_INTERVAL = 5 * 60 * 1000;
19
34
  this.defaultTtl = options === null || options === void 0 ? void 0 : options.ttl;
20
35
  this.namespace = (options === null || options === void 0 ? void 0 : options.namespace) || 'cache:memory';
36
+ // Start automatic cleanup timer
37
+ this.startCleanupTimer();
38
+ }
39
+ /**
40
+ * Start periodic cleanup of expired items
41
+ */
42
+ startCleanupTimer() {
43
+ this.cleanupTimer = setInterval(() => {
44
+ const cleaned = this.cleanup();
45
+ if (cleaned > 0) {
46
+ console.debug(`[MemoryCache] Cleaned up ${cleaned} expired items from namespace: ${this.namespace}`);
47
+ }
48
+ }, this.CLEANUP_INTERVAL);
49
+ // Allow Node.js to exit if this is the only active timer
50
+ if (this.cleanupTimer.unref) {
51
+ this.cleanupTimer.unref();
52
+ }
53
+ }
54
+ /**
55
+ * Stop automatic cleanup timer
56
+ */
57
+ stopCleanupTimer() {
58
+ if (this.cleanupTimer) {
59
+ clearInterval(this.cleanupTimer);
60
+ this.cleanupTimer = undefined;
61
+ }
62
+ }
63
+ /**
64
+ * Destroy the provider and cleanup resources
65
+ */
66
+ destroy() {
67
+ this.stopCleanupTimer();
68
+ this.clear();
21
69
  }
22
70
  getName() {
23
71
  return 'Memory';
@@ -29,6 +77,7 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
29
77
  if (!item) {
30
78
  return null;
31
79
  }
80
+ // Check if item has expired
32
81
  if (item.expiresAt && Date.now() > item.expiresAt) {
33
82
  this.cache.delete(key);
34
83
  this.keys.delete(key);
@@ -110,6 +159,7 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
110
159
  if (!item) {
111
160
  return false;
112
161
  }
162
+ // Check if item has expired
113
163
  if (item.expiresAt && Date.now() > item.expiresAt) {
114
164
  this.cache.delete(key);
115
165
  this.keys.delete(key);
@@ -122,12 +172,21 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
122
172
  }
123
173
  });
124
174
  }
175
+ /**
176
+ * Get all keys (for debugging/testing)
177
+ */
125
178
  getAllKeys() {
126
179
  return Array.from(this.keys);
127
180
  }
181
+ /**
182
+ * Get cache size
183
+ */
128
184
  getSize() {
129
185
  return this.keys.size;
130
186
  }
187
+ /**
188
+ * Clean up expired items (optional maintenance method)
189
+ */
131
190
  cleanup() {
132
191
  let cleaned = 0;
133
192
  const now = Date.now();
@@ -140,6 +199,9 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
140
199
  }
141
200
  return cleaned;
142
201
  }
202
+ /**
203
+ * Optimized mget with batch cleanup
204
+ */
143
205
  mget(keys) {
144
206
  return __awaiter(this, void 0, void 0, function* () {
145
207
  const results = [];
@@ -150,6 +212,7 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
150
212
  results.push(null);
151
213
  continue;
152
214
  }
215
+ // Check if item has expired
153
216
  if (item.expiresAt && now > item.expiresAt) {
154
217
  this.cache.delete(key);
155
218
  this.keys.delete(key);
@@ -161,6 +224,9 @@ class MemoryCacheProvider extends base_cache_provider_1.BaseCacheProvider {
161
224
  return results;
162
225
  });
163
226
  }
227
+ /**
228
+ * Optimized mset
229
+ */
164
230
  mset(items, ttl) {
165
231
  return __awaiter(this, void 0, void 0, function* () {
166
232
  const promises = items.map((item) => this.set(item.key, item.value, ttl));
@@ -1,6 +1,17 @@
1
1
  import type Redis from 'ioredis';
2
2
  import { BaseCacheProvider } from './base-cache.provider';
3
+ /**
4
+ * Token for injecting Redis client
5
+ */
3
6
  export declare const REDIS_CLIENT: unique symbol;
7
+ /**
8
+ * Redis cache provider using ioredis
9
+ *
10
+ * This is the L3 cache layer - distributed caching using Redis.
11
+ * Data is persisted in Redis and shared across all processes/servers.
12
+ *
13
+ * Slowest but most persistent and widely shared cache layer.
14
+ */
4
15
  export declare class RedisCacheProvider extends BaseCacheProvider {
5
16
  private readonly redis?;
6
17
  private readonly keyPrefix;
@@ -12,12 +23,27 @@ export declare class RedisCacheProvider extends BaseCacheProvider {
12
23
  deletePattern(pattern: string): Promise<number>;
13
24
  clear(): Promise<void>;
14
25
  has(key: string): Promise<boolean>;
26
+ /**
27
+ * Batch get using Redis MGET
28
+ */
15
29
  mget<T>(keys: string[]): Promise<(T | null)[]>;
30
+ /**
31
+ * Batch set using Redis pipeline
32
+ */
16
33
  mset(items: Array<{
17
34
  key: string;
18
35
  value: any;
19
36
  }>, ttl?: number): Promise<void>;
37
+ /**
38
+ * Check if Redis client is available
39
+ */
20
40
  isAvailable(): boolean;
41
+ /**
42
+ * Get Redis client (for advanced usage)
43
+ */
21
44
  getClient(): Redis | undefined;
45
+ /**
46
+ * Get full key with prefix
47
+ */
22
48
  private getFullKey;
23
49
  }
@@ -24,7 +24,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.RedisCacheProvider = exports.REDIS_CLIENT = void 0;
25
25
  const common_1 = require("@nestjs/common");
26
26
  const base_cache_provider_1 = require("./base-cache.provider");
27
+ /**
28
+ * Token for injecting Redis client
29
+ */
27
30
  exports.REDIS_CLIENT = Symbol('REDIS_CLIENT');
31
+ /**
32
+ * Redis cache provider using ioredis
33
+ *
34
+ * This is the L3 cache layer - distributed caching using Redis.
35
+ * Data is persisted in Redis and shared across all processes/servers.
36
+ *
37
+ * Slowest but most persistent and widely shared cache layer.
38
+ */
28
39
  let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.BaseCacheProvider {
29
40
  constructor(redis) {
30
41
  super();
@@ -65,6 +76,7 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
65
76
  const fullKey = this.getFullKey(key);
66
77
  const serialized = JSON.stringify(value);
67
78
  if (ttl && ttl > 0) {
79
+ // TTL in milliseconds, Redis expects seconds
68
80
  yield this.redis.setex(fullKey, Math.ceil(ttl / 1000), serialized);
69
81
  }
70
82
  else {
@@ -102,6 +114,7 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
102
114
  const fullPattern = this.getFullKey(pattern);
103
115
  let cursor = '0';
104
116
  let deletedCount = 0;
117
+ // Use SCAN to find matching keys (more efficient than KEYS)
105
118
  do {
106
119
  const [nextCursor, keys] = yield this.redis.scan(cursor, 'MATCH', fullPattern, 'COUNT', 100);
107
120
  cursor = nextCursor;
@@ -124,6 +137,7 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
124
137
  return;
125
138
  }
126
139
  try {
140
+ // Clear all keys with our prefix
127
141
  yield this.deletePattern('*');
128
142
  }
129
143
  catch (error) {
@@ -146,6 +160,9 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
146
160
  }
147
161
  });
148
162
  }
163
+ /**
164
+ * Batch get using Redis MGET
165
+ */
149
166
  mget(keys) {
150
167
  return __awaiter(this, void 0, void 0, function* () {
151
168
  if (!this.redis || keys.length === 0) {
@@ -172,6 +189,9 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
172
189
  }
173
190
  });
174
191
  }
192
+ /**
193
+ * Batch set using Redis pipeline
194
+ */
175
195
  mset(items, ttl) {
176
196
  return __awaiter(this, void 0, void 0, function* () {
177
197
  if (!this.redis || items.length === 0) {
@@ -196,12 +216,21 @@ let RedisCacheProvider = class RedisCacheProvider extends base_cache_provider_1.
196
216
  }
197
217
  });
198
218
  }
219
+ /**
220
+ * Check if Redis client is available
221
+ */
199
222
  isAvailable() {
200
223
  return !!this.redis && this.redis.status === 'ready';
201
224
  }
225
+ /**
226
+ * Get Redis client (for advanced usage)
227
+ */
202
228
  getClient() {
203
229
  return this.redis;
204
230
  }
231
+ /**
232
+ * Get full key with prefix
233
+ */
205
234
  getFullKey(key) {
206
235
  return `${this.keyPrefix}${key}`;
207
236
  }
@@ -1,15 +1,67 @@
1
1
  import type { CacheDependency, DependencyData } from '../interfaces';
2
+ /**
3
+ * Wrapper for cached value with dependency data
4
+ */
2
5
  export interface CachedValueWithDependencies<T> {
3
6
  value: T;
4
7
  dependencies?: DependencyData[];
5
8
  cachedAt: number;
6
9
  }
10
+ /**
11
+ * Utility class for managing cache dependencies
12
+ */
7
13
  export declare class DependencyManager {
14
+ /**
15
+ * Wrap a value with its dependencies
16
+ *
17
+ * @param value - The value to cache
18
+ * @param dependencies - Array of dependencies
19
+ * @returns Wrapped value with dependency data
20
+ */
8
21
  static wrapWithDependencies<T>(value: T, dependencies?: CacheDependency[]): Promise<CachedValueWithDependencies<T>>;
22
+ /**
23
+ * Capture current state of all dependencies
24
+ *
25
+ * @param dependencies - Array of dependencies
26
+ * @returns Array of dependency data snapshots
27
+ */
9
28
  static captureDependencies(dependencies: CacheDependency[]): Promise<DependencyData[]>;
29
+ /**
30
+ * Check if any dependencies have changed
31
+ *
32
+ * @param dependencies - Current dependencies
33
+ * @param cachedDependencies - Previously captured dependency data
34
+ * @returns true if any dependency has changed
35
+ */
10
36
  static areDependenciesChanged(dependencies: CacheDependency[], cachedDependencies?: DependencyData[]): Promise<boolean>;
37
+ /**
38
+ * Unwrap cached value and validate dependencies
39
+ *
40
+ * @param wrapped - Wrapped cached value
41
+ * @param dependencies - Current dependencies to check
42
+ * @returns Unwrapped value if valid, null if dependencies changed
43
+ */
11
44
  static unwrapAndValidate<T>(wrapped: CachedValueWithDependencies<T> | null, dependencies?: CacheDependency[]): Promise<T | null>;
45
+ /**
46
+ * Get which dependencies have changed
47
+ *
48
+ * @param dependencies - Current dependencies
49
+ * @param cachedDependencies - Previously captured dependency data
50
+ * @returns Array of changed dependency keys
51
+ */
12
52
  static getChangedDependencies(dependencies: CacheDependency[], cachedDependencies?: DependencyData[]): Promise<string[]>;
53
+ /**
54
+ * Serialize dependencies for storage
55
+ *
56
+ * @param dependencies - Dependency data
57
+ * @returns Serialized string
58
+ */
13
59
  static serializeDependencies(dependencies: DependencyData[]): string;
60
+ /**
61
+ * Deserialize dependencies from storage
62
+ *
63
+ * @param serialized - Serialized string
64
+ * @returns Dependency data array
65
+ */
14
66
  static deserializeDependencies(serialized: string): DependencyData[];
15
67
  }