@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
@@ -1,32 +1,121 @@
1
1
  import type { CacheDependency } from './cache-dependency.interface';
2
+ /**
3
+ * Cache layer enum - defines the three-tier cache architecture
4
+ */
2
5
  export declare enum CacheLayer {
6
+ /** L1: Request-level cache (nestjs-cls) - fastest, scoped to request */
3
7
  CLS = "cls",
8
+ /** L2: Process-level cache (native Map) - fast, scoped to process */
4
9
  MEMORY = "memory",
10
+ /** L3: Distributed cache (Redis) - persistent, shared across processes */
5
11
  REDIS = "redis"
6
12
  }
13
+ /**
14
+ * Cache configuration options
15
+ */
7
16
  export interface CacheOptions {
17
+ /**
18
+ * Time to live in milliseconds
19
+ * @example 300_000 // 5 minutes
20
+ */
8
21
  ttl?: number;
22
+ /**
23
+ * Cache layers to use
24
+ * @default [CacheLayer.MEMORY, CacheLayer.REDIS]
25
+ */
9
26
  layers?: CacheLayer[];
27
+ /**
28
+ * Key prefix for namespacing
29
+ * @example 'user:' will result in keys like 'user:123'
30
+ */
10
31
  prefix?: string;
32
+ /**
33
+ * Condition function to determine if value should be cached
34
+ * @param args - Method arguments
35
+ * @returns true to cache, false to skip
36
+ */
11
37
  condition?: (...args: any[]) => boolean | Promise<boolean>;
38
+ /**
39
+ * Unless condition - skip caching when this condition is true
40
+ * Can be a function (safe) or a string expression (use with caution)
41
+ * @param result - Method return value
42
+ * @param args - Method arguments
43
+ * @returns true to skip caching, false to cache normally
44
+ */
45
+ unless?: ((result: any, args: any[]) => boolean) | string;
46
+ /**
47
+ * Cache dependencies - cache will be invalidated when dependencies change
48
+ * Similar to Yii2 cache dependency system
49
+ */
12
50
  dependencies?: CacheDependency[];
51
+ /**
52
+ * Whether to backfill upper cache layers when value is found in lower layer
53
+ * @default true
54
+ */
13
55
  backfill?: boolean;
56
+ /**
57
+ * Namespace for grouping related cache keys
58
+ */
14
59
  namespace?: string;
15
60
  }
61
+ /**
62
+ * Options for cache decorator key generation
63
+ */
16
64
  export interface CacheKeyOptions {
65
+ /**
66
+ * Static key or key generator function
67
+ */
17
68
  key?: string | ((...args: any[]) => string);
69
+ /**
70
+ * Key prefix
71
+ */
18
72
  prefix?: string;
73
+ /**
74
+ * Whether to include all method arguments in key generation
75
+ * @default false
76
+ */
19
77
  includeAllArgs?: boolean;
20
78
  }
79
+ /**
80
+ * Options for @Cacheable decorator
81
+ */
21
82
  export interface CacheableOptions extends CacheOptions, CacheKeyOptions {
22
83
  }
84
+ /**
85
+ * Options for @CacheEvict decorator
86
+ */
23
87
  export interface CacheEvictOptions {
88
+ /**
89
+ * Keys to evict (can be static strings or generator functions)
90
+ */
24
91
  keys?: Array<string | ((...args: any[]) => string)>;
92
+ /**
93
+ * Patterns to match for eviction (supports wildcards)
94
+ * @example ['user:*', 'posts:list:*']
95
+ */
25
96
  patterns?: string[];
97
+ /**
98
+ * Tags to invalidate
99
+ */
26
100
  tags?: string[];
101
+ /**
102
+ * Cache layers to evict from
103
+ */
27
104
  layers?: CacheLayer[];
105
+ /**
106
+ * Condition to determine if eviction should occur
107
+ * @param args - Method arguments
108
+ * @param result - Method return value
109
+ */
28
110
  condition?: (...args: any[]) => boolean | Promise<boolean>;
111
+ /**
112
+ * Whether to evict before or after method execution
113
+ * @default 'after'
114
+ */
29
115
  timing?: 'before' | 'after';
30
116
  }
117
+ /**
118
+ * Options for @CachePut decorator
119
+ */
31
120
  export interface CachePutOptions extends CacheOptions, CacheKeyOptions {
32
121
  }
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheLayer = void 0;
4
+ /**
5
+ * Cache layer enum - defines the three-tier cache architecture
6
+ */
4
7
  var CacheLayer;
5
8
  (function (CacheLayer) {
9
+ /** L1: Request-level cache (nestjs-cls) - fastest, scoped to request */
6
10
  CacheLayer["CLS"] = "cls";
11
+ /** L2: Process-level cache (native Map) - fast, scoped to process */
7
12
  CacheLayer["MEMORY"] = "memory";
13
+ /** L3: Distributed cache (Redis) - persistent, shared across processes */
8
14
  CacheLayer["REDIS"] = "redis";
9
15
  })(CacheLayer || (exports.CacheLayer = CacheLayer = {}));
@@ -1,28 +1,106 @@
1
+ /**
2
+ * Base cache provider interface
3
+ * All cache providers (CLS, Memory, Redis) implement this interface
4
+ */
1
5
  export interface CacheProvider {
6
+ /**
7
+ * Get value from cache
8
+ *
9
+ * @param key - Cache key
10
+ * @returns Cached value or null if not found
11
+ */
2
12
  get<T>(key: string): Promise<T | null>;
13
+ /**
14
+ * Set value in cache
15
+ *
16
+ * @param key - Cache key
17
+ * @param value - Value to cache
18
+ * @param ttl - Time to live in milliseconds
19
+ */
3
20
  set<T>(key: string, value: T, ttl?: number): Promise<void>;
21
+ /**
22
+ * Delete value from cache
23
+ *
24
+ * @param key - Cache key or array of keys
25
+ */
4
26
  delete(key: string | string[]): Promise<void>;
27
+ /**
28
+ * Delete keys matching a pattern (supports wildcards)
29
+ *
30
+ * @param pattern - Pattern to match (e.g., 'user:*')
31
+ * @returns Number of keys deleted
32
+ */
5
33
  deletePattern?(pattern: string): Promise<number>;
34
+ /**
35
+ * Clear all cache entries
36
+ */
6
37
  clear(): Promise<void>;
38
+ /**
39
+ * Check if a key exists in cache
40
+ *
41
+ * @param key - Cache key
42
+ */
7
43
  has(key: string): Promise<boolean>;
44
+ /**
45
+ * Get multiple values at once
46
+ *
47
+ * @param keys - Array of cache keys
48
+ * @returns Array of values (null for missing keys)
49
+ */
8
50
  mget<T>(keys: string[]): Promise<(T | null)[]>;
51
+ /**
52
+ * Set multiple values at once
53
+ *
54
+ * @param items - Array of key-value pairs
55
+ * @param ttl - Time to live in milliseconds
56
+ */
9
57
  mset(items: Array<{
10
58
  key: string;
11
59
  value: any;
12
60
  }>, ttl?: number): Promise<void>;
61
+ /**
62
+ * Get provider name
63
+ */
13
64
  getName(): string;
14
65
  }
66
+ /**
67
+ * Cache statistics
68
+ */
15
69
  export interface CacheStats {
70
+ /**
71
+ * Total number of get operations
72
+ */
16
73
  totalGets: number;
74
+ /**
75
+ * Number of cache hits
76
+ */
17
77
  hits: number;
78
+ /**
79
+ * Number of cache misses
80
+ */
18
81
  misses: number;
82
+ /**
83
+ * Hit rate (hits / totalGets)
84
+ */
19
85
  hitRate: number;
86
+ /**
87
+ * Stats per layer
88
+ */
20
89
  byLayer: Record<string, {
21
90
  hits: number;
22
91
  misses: number;
23
92
  hitRate: number;
24
93
  }>;
94
+ /**
95
+ * Total number of set operations
96
+ */
25
97
  totalSets: number;
98
+ /**
99
+ * Total number of delete operations
100
+ */
26
101
  totalDeletes: number;
102
+ /**
103
+ * Total number of clear operations
104
+ */
27
105
  totalClears: number;
28
106
  }
@@ -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,4 +1,5 @@
1
1
  export * from './base-cache.provider';
2
2
  export * from './cls-cache.provider';
3
- export * from './memory-cache.provider';
3
+ export * from './lrucache.provider';
4
+ export * from './typeorm-cache.provider';
4
5
  export { REDIS_CLIENT, RedisCacheProvider } from './redis-cache.provider';
@@ -17,7 +17,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.RedisCacheProvider = exports.REDIS_CLIENT = void 0;
18
18
  __exportStar(require("./base-cache.provider"), exports);
19
19
  __exportStar(require("./cls-cache.provider"), exports);
20
- __exportStar(require("./memory-cache.provider"), exports);
20
+ __exportStar(require("./lrucache.provider"), exports);
21
+ __exportStar(require("./typeorm-cache.provider"), exports);
21
22
  var redis_cache_provider_1 = require("./redis-cache.provider");
22
23
  Object.defineProperty(exports, "REDIS_CLIENT", { enumerable: true, get: function () { return redis_cache_provider_1.REDIS_CLIENT; } });
23
24
  Object.defineProperty(exports, "RedisCacheProvider", { enumerable: true, get: function () { return redis_cache_provider_1.RedisCacheProvider; } });
@@ -0,0 +1,76 @@
1
+ import { OnModuleDestroy } from '@nestjs/common';
2
+ import { BaseCacheProvider } from './base-cache.provider';
3
+ /**
4
+ * LRU Memory Cache Provider
5
+ *
6
+ * High-performance in-memory LRU (Least Recently Used) cache provider.
7
+ * This is an L2 cache layer with fast access and automatic eviction.
8
+ *
9
+ * Features:
10
+ * - O(1) get/set operations
11
+ * - Automatic LRU eviction when cache is full
12
+ * - Optional TTL (Time To Live) support
13
+ * - Namespace isolation
14
+ * - Cache statistics (size, hit rate, usage percentage)
15
+ *
16
+ * Use Cases:
17
+ * - Session data caching
18
+ * - Frequently accessed configuration
19
+ * - API response caching
20
+ * - Temporary data storage
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const provider = new LRUCacheProvider({
25
+ * maxSize: 1000,
26
+ * ttl: 60000, // optional TTL
27
+ * namespace: 'my-cache',
28
+ * });
29
+ * ```
30
+ */
31
+ export declare class LRUCacheProvider extends BaseCacheProvider implements OnModuleDestroy {
32
+ private cache;
33
+ private namespace;
34
+ private defaultTtl?;
35
+ constructor(options?: {
36
+ maxSize?: number;
37
+ ttl?: number;
38
+ namespace?: string;
39
+ });
40
+ getName(): string;
41
+ get<T>(key: string): Promise<T | null>;
42
+ set<T>(key: string, value: T, ttl?: number): Promise<void>;
43
+ delete(key: string | string[]): Promise<void>;
44
+ deletePattern(pattern: string): Promise<number>;
45
+ clear(): Promise<void>;
46
+ has(key: string): Promise<boolean>;
47
+ mget<T>(keys: string[]): Promise<(T | null)[]>;
48
+ mset(items: Array<{
49
+ key: string;
50
+ value: any;
51
+ }>, ttl?: number): Promise<void>;
52
+ /**
53
+ * Get cache size
54
+ */
55
+ getSize(): number;
56
+ /**
57
+ * Get cache statistics
58
+ */
59
+ getStats(): {
60
+ provider: string;
61
+ namespace: string;
62
+ size: any;
63
+ maxSize: any;
64
+ calculatedSize: any;
65
+ usagePercentage: number;
66
+ };
67
+ /**
68
+ * Clean up expired items
69
+ */
70
+ cleanup(): number;
71
+ /**
72
+ * Destroy the provider
73
+ */
74
+ onModuleDestroy(): void;
75
+ private getFullKey;
76
+ }