@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
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.LRUCacheProvider = void 0;
22
+ const common_1 = require("@nestjs/common");
23
+ const base_cache_provider_1 = require("./base-cache.provider");
24
+ // Dynamic import to handle ESM/CommonJS interop
25
+ const LRUCacheClass = require('lru-cache').LRUCache;
26
+ /**
27
+ * LRU Memory Cache Provider
28
+ *
29
+ * High-performance in-memory LRU (Least Recently Used) cache provider.
30
+ * This is an L2 cache layer with fast access and automatic eviction.
31
+ *
32
+ * Features:
33
+ * - O(1) get/set operations
34
+ * - Automatic LRU eviction when cache is full
35
+ * - Optional TTL (Time To Live) support
36
+ * - Namespace isolation
37
+ * - Cache statistics (size, hit rate, usage percentage)
38
+ *
39
+ * Use Cases:
40
+ * - Session data caching
41
+ * - Frequently accessed configuration
42
+ * - API response caching
43
+ * - Temporary data storage
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const provider = new LRUCacheProvider({
48
+ * maxSize: 1000,
49
+ * ttl: 60000, // optional TTL
50
+ * namespace: 'my-cache',
51
+ * });
52
+ * ```
53
+ */
54
+ let LRUCacheProvider = class LRUCacheProvider extends base_cache_provider_1.BaseCacheProvider {
55
+ constructor(options) {
56
+ super();
57
+ const { maxSize = 500, ttl, namespace = 'cache:lru' } = options || {};
58
+ this.namespace = namespace;
59
+ this.defaultTtl = ttl;
60
+ this.cache = new LRUCacheClass({
61
+ max: maxSize,
62
+ ttl: ttl,
63
+ updateAgeOnGet: true,
64
+ updateAgeOnHas: true,
65
+ });
66
+ }
67
+ getName() {
68
+ return 'LRUMemory';
69
+ }
70
+ get(key) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ try {
73
+ const fullKey = this.getFullKey(key);
74
+ const value = this.cache.get(fullKey);
75
+ return value !== undefined ? value : null;
76
+ }
77
+ catch (error) {
78
+ console.warn(`LRUCacheProvider: Failed to get key ${key}:`, error);
79
+ return null;
80
+ }
81
+ });
82
+ }
83
+ set(key, value, ttl) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ try {
86
+ const fullKey = this.getFullKey(key);
87
+ const effectiveTtl = ttl !== null && ttl !== void 0 ? ttl : this.defaultTtl;
88
+ this.cache.set(fullKey, value, { ttl: effectiveTtl });
89
+ }
90
+ catch (error) {
91
+ throw new Error(`LRUCacheProvider: Failed to set key ${key}: ${error}`);
92
+ }
93
+ });
94
+ }
95
+ delete(key) {
96
+ return __awaiter(this, void 0, void 0, function* () {
97
+ try {
98
+ if (Array.isArray(key)) {
99
+ key.forEach((k) => {
100
+ const fullKey = this.getFullKey(k);
101
+ this.cache.delete(fullKey);
102
+ });
103
+ }
104
+ else {
105
+ const fullKey = this.getFullKey(key);
106
+ this.cache.delete(fullKey);
107
+ }
108
+ }
109
+ catch (error) {
110
+ throw new Error(`LRUCacheProvider: Failed to delete keys: ${error}`);
111
+ }
112
+ });
113
+ }
114
+ deletePattern(pattern) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ try {
117
+ const regex = this.patternToRegex(pattern);
118
+ const keys = Array.from(this.cache.keys());
119
+ let deleted = 0;
120
+ for (const key of keys) {
121
+ if (regex.test(String(key))) {
122
+ this.cache.delete(key);
123
+ deleted++;
124
+ }
125
+ }
126
+ return deleted;
127
+ }
128
+ catch (error) {
129
+ throw new Error(`LRUCacheProvider: Failed to delete pattern ${pattern}: ${error}`);
130
+ }
131
+ });
132
+ }
133
+ clear() {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ try {
136
+ this.cache.clear();
137
+ }
138
+ catch (error) {
139
+ throw new Error(`LRUCacheProvider: Failed to clear cache: ${error}`);
140
+ }
141
+ });
142
+ }
143
+ has(key) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ try {
146
+ const fullKey = this.getFullKey(key);
147
+ return this.cache.has(fullKey);
148
+ }
149
+ catch (error) {
150
+ return false;
151
+ }
152
+ });
153
+ }
154
+ mget(keys) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ try {
157
+ return keys.map((key) => {
158
+ const fullKey = this.getFullKey(key);
159
+ const value = this.cache.get(fullKey);
160
+ return value !== undefined ? value : null;
161
+ });
162
+ }
163
+ catch (error) {
164
+ console.warn(`LRUCacheProvider: Failed to mget:`, error);
165
+ return keys.map(() => null);
166
+ }
167
+ });
168
+ }
169
+ mset(items, ttl) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ try {
172
+ const effectiveTtl = ttl !== null && ttl !== void 0 ? ttl : this.defaultTtl;
173
+ items.forEach((item) => {
174
+ const fullKey = this.getFullKey(item.key);
175
+ this.cache.set(fullKey, item.value, { ttl: effectiveTtl });
176
+ });
177
+ }
178
+ catch (error) {
179
+ throw new Error(`LRUCacheProvider: Failed to mset: ${error}`);
180
+ }
181
+ });
182
+ }
183
+ /**
184
+ * Get cache size
185
+ */
186
+ getSize() {
187
+ return this.cache.size;
188
+ }
189
+ /**
190
+ * Get cache statistics
191
+ */
192
+ getStats() {
193
+ return {
194
+ provider: 'LRUMemory',
195
+ namespace: this.namespace,
196
+ size: this.cache.size,
197
+ maxSize: this.cache.max,
198
+ calculatedSize: this.cache.calculatedSize,
199
+ usagePercentage: this.cache.max
200
+ ? (this.cache.size / this.cache.max) * 100
201
+ : 0,
202
+ };
203
+ }
204
+ /**
205
+ * Clean up expired items
206
+ */
207
+ cleanup() {
208
+ const beforeSize = this.cache.size;
209
+ this.cache.purgeStale();
210
+ return beforeSize - this.cache.size;
211
+ }
212
+ /**
213
+ * Destroy the provider
214
+ */
215
+ onModuleDestroy() {
216
+ this.cache.clear();
217
+ }
218
+ getFullKey(key) {
219
+ return `${this.namespace}:${key}`;
220
+ }
221
+ };
222
+ exports.LRUCacheProvider = LRUCacheProvider;
223
+ exports.LRUCacheProvider = LRUCacheProvider = __decorate([
224
+ (0, common_1.Injectable)(),
225
+ __metadata("design:paramtypes", [Object])
226
+ ], LRUCacheProvider);
@@ -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
  }
@@ -0,0 +1,211 @@
1
+ import { DataSource } from 'typeorm';
2
+ import { BaseCacheProvider } from './base-cache.provider';
3
+ /**
4
+ * Options for TypeormCacheProvider
5
+ */
6
+ export interface TypeormCacheProviderOptions {
7
+ /**
8
+ * Default cache duration in milliseconds
9
+ * Default: 60000 (60 seconds)
10
+ */
11
+ duration?: number;
12
+ /**
13
+ * Enable or disable caching
14
+ * Default: true
15
+ */
16
+ enabled?: boolean;
17
+ /**
18
+ * Data source name to use for cache operations
19
+ * If not specified, uses the default data source
20
+ * Default: 'default'
21
+ */
22
+ dataSourceName?: string;
23
+ /**
24
+ * Namespace for cache isolation
25
+ * Default: 'cache'
26
+ */
27
+ namespace?: string;
28
+ /**
29
+ * Whether to automatically clean up expired entries
30
+ * Default: true
31
+ */
32
+ autoCleanup?: boolean;
33
+ /**
34
+ * Cleanup interval in milliseconds
35
+ * Default: 300000 (5 minutes)
36
+ */
37
+ cleanupInterval?: number;
38
+ }
39
+ /**
40
+ * TypeORM Cache Provider
41
+ *
42
+ * Database-backed cache provider using TypeORM for persistent caching.
43
+ * This is an L3 cache layer that provides:
44
+ * - Persistent cache storage in database
45
+ * - Cross-instance cache sharing
46
+ * - Automatic expiration handling
47
+ * - Namespace isolation
48
+ *
49
+ * Unlike in-memory caches, this provider survives application restarts
50
+ * and can be shared across multiple application instances.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * // In your module:
55
+ * @Module({
56
+ * providers: [
57
+ * {
58
+ * provide: 'TYPEORM_CACHE',
59
+ * useFactory: (dataSource: DataSource) => {
60
+ * return new TypeormCacheProvider({
61
+ * duration: 60000,
62
+ * namespace: 'app:cache',
63
+ * dataSourceName: 'default',
64
+ * });
65
+ * },
66
+ * inject: [DataSource],
67
+ * },
68
+ * ],
69
+ * })
70
+ * export class AppModule {}
71
+ *
72
+ * // In your service:
73
+ * @Injectable()
74
+ * export class UserService {
75
+ * constructor(@Inject('TYPEORM_CACHE') private cache: TypeormCacheProvider) {}
76
+ *
77
+ * async getUser(id: string) {
78
+ * // Try cache first
79
+ * const cached = await this.cache.get(`user:${id}`);
80
+ * if (cached) return cached;
81
+ *
82
+ * // Cache miss - fetch from database
83
+ * const user = await this.userRepository.findOne(id);
84
+ *
85
+ * // Store in cache
86
+ * await this.cache.set(`user:${id}`, user, 60000);
87
+ *
88
+ * return user;
89
+ * }
90
+ * }
91
+ * ```
92
+ *
93
+ * @see https://typeorm.io/#caching
94
+ */
95
+ export declare class TypeormCacheProvider extends BaseCacheProvider {
96
+ private readonly injectedDataSource?;
97
+ private defaultDuration;
98
+ private enabled;
99
+ private namespace;
100
+ private dataSourceName;
101
+ private autoCleanup;
102
+ private cleanupInterval;
103
+ private cleanupTimer?;
104
+ private dataSource?;
105
+ constructor(injectedDataSource?: DataSource, options?: TypeormCacheProviderOptions);
106
+ /**
107
+ * Get DataSource for cache operations
108
+ * Uses @nest-omni/transaction's getDataSource utility
109
+ */
110
+ private getDataSource;
111
+ /**
112
+ * Get repository for cache operations
113
+ */
114
+ private getRepository;
115
+ getName(): string;
116
+ /**
117
+ * Get cached value by key
118
+ */
119
+ get<T>(key: string): Promise<T | null>;
120
+ /**
121
+ * Set cache value with optional TTL
122
+ */
123
+ set<T>(key: string, value: T, ttl?: number): Promise<void>;
124
+ /**
125
+ * Delete cache entry by key
126
+ */
127
+ delete(key: string | string[]): Promise<void>;
128
+ /**
129
+ * Delete cache entries matching a pattern
130
+ * Uses SQL LIKE for pattern matching
131
+ */
132
+ deletePattern(pattern: string): Promise<number>;
133
+ /**
134
+ * Clear all cache entries in namespace
135
+ */
136
+ clear(): Promise<void>;
137
+ /**
138
+ * Check if key exists and is not expired
139
+ */
140
+ has(key: string): Promise<boolean>;
141
+ /**
142
+ * Get multiple values by keys
143
+ */
144
+ mget<T>(keys: string[]): Promise<(T | null)[]>;
145
+ /**
146
+ * Set multiple cache entries
147
+ */
148
+ mset(items: Array<{
149
+ key: string;
150
+ value: any;
151
+ }>, ttl?: number): Promise<void>;
152
+ /**
153
+ * Get cache configuration
154
+ */
155
+ getCacheConfig(): {
156
+ duration: number;
157
+ type: string;
158
+ enabled: boolean;
159
+ namespace: string;
160
+ dataSourceName: string;
161
+ };
162
+ /**
163
+ * Get statistics about cache entries
164
+ */
165
+ getStats(): Promise<{
166
+ totalEntries: number;
167
+ expiredEntries: number;
168
+ validEntries: number;
169
+ enabled: boolean;
170
+ defaultDuration: number;
171
+ type: string;
172
+ namespace: string;
173
+ dataSourceName: string;
174
+ error?: undefined;
175
+ } | {
176
+ totalEntries: number;
177
+ expiredEntries: number;
178
+ validEntries: number;
179
+ enabled: boolean;
180
+ defaultDuration: number;
181
+ type: string;
182
+ namespace: string;
183
+ dataSourceName: string;
184
+ error: string;
185
+ }>;
186
+ /**
187
+ * Clean up expired entries
188
+ */
189
+ cleanupExpired(): Promise<number>;
190
+ /**
191
+ * Enable or disable caching
192
+ */
193
+ setEnabled(enabled: boolean): void;
194
+ /**
195
+ * Set namespace
196
+ */
197
+ setNamespace(namespace: string): void;
198
+ /**
199
+ * Get full key with namespace
200
+ */
201
+ private getFullKey;
202
+ /**
203
+ * Start automatic cleanup of expired entries
204
+ */
205
+ private startAutoCleanup;
206
+ /**
207
+ * Stop automatic cleanup
208
+ */
209
+ private stopAutoCleanup;
210
+ onModuleDestroy(): Promise<void>;
211
+ }