@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,14 @@
1
1
  "use strict";
2
+ /**
3
+ * Enhanced Schedule Decorators for Worker Mode
4
+ *
5
+ * This module provides decorators for scheduled tasks that:
6
+ * - Only run in Worker or Hybrid mode (not in HTTP-only mode)
7
+ * - Support distributed locking via Redis
8
+ * - Support retry logic for failed tasks
9
+ * - Provide automatic lock key generation
10
+ * - Support task execution logging and error handling
11
+ */
2
12
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
13
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
14
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -21,10 +31,16 @@ exports.WorkerCronAdvanced = WorkerCronAdvanced;
21
31
  const common_1 = require("@nestjs/common");
22
32
  const schedule_1 = require("@nestjs/schedule");
23
33
  const mode_setup_1 = require("./mode.setup");
24
- const redis_lock_service_1 = require("../redis-lock/redis-lock.service");
34
+ const redis_lock_1 = require("../redis-lock");
35
+ /**
36
+ * Generate a lock key from class name and method name
37
+ */
25
38
  function generateLockKey(className, methodName) {
26
39
  return `${className}.${methodName}`;
27
40
  }
41
+ /**
42
+ * Execute a function with retry logic
43
+ */
28
44
  function executeWithRetry(fn, options) {
29
45
  return __awaiter(this, void 0, void 0, function* () {
30
46
  const { retryCount = 0, retryDelay = 1000, useExponentialBackoff = false, maxRetryDelay = 60000, logger, taskName, } = options;
@@ -51,43 +67,72 @@ function executeWithRetry(fn, options) {
51
67
  throw lastError;
52
68
  });
53
69
  }
70
+ /**
71
+ * Base decorator creator for worker-mode tasks
72
+ */
54
73
  function createWorkerDecorator(baseDecorator, decoratorName) {
55
74
  return function (target, propertyKey, descriptor) {
56
75
  const originalMethod = descriptor.value;
76
+ const className = target.constructor.name;
77
+ const methodName = String(propertyKey);
78
+ const logger = new common_1.Logger(`${className}.${methodName}`);
57
79
  descriptor.value = function (...args) {
58
80
  return __awaiter(this, void 0, void 0, function* () {
81
+ // Only execute in worker or hybrid mode
59
82
  if (!(0, mode_setup_1.shouldProcessQueues)()) {
83
+ logger.log('Skipped (scheduled tasks require WORKER or HYBRID mode)');
60
84
  return;
61
85
  }
62
86
  return originalMethod.apply(this, args);
63
87
  });
64
88
  };
89
+ // Apply the base decorator
65
90
  baseDecorator(target, propertyKey, descriptor);
66
91
  return descriptor;
67
92
  };
68
93
  }
94
+ /**
95
+ * Create a worker decorator with lock support
96
+ */
69
97
  function createWorkerDecoratorWithLock(baseDecorator, decoratorName, lockKey, options = {}) {
70
98
  return function (target, propertyKey, descriptor) {
71
99
  const originalMethod = descriptor.value;
72
100
  const className = target.constructor.name;
73
101
  const methodName = String(propertyKey);
74
102
  const logger = new common_1.Logger(`${className}.${methodName}`);
103
+ // Resolve lock key
75
104
  const resolvedLockKey = typeof lockKey === 'function' ? lockKey() : lockKey;
76
105
  descriptor.value = function (...args) {
77
106
  return __awaiter(this, void 0, void 0, function* () {
107
+ // Only execute in worker or hybrid mode
78
108
  if (!(0, mode_setup_1.shouldProcessQueues)()) {
109
+ logger.log('Skipped (scheduled tasks require WORKER or HYBRID mode)');
79
110
  return;
80
111
  }
81
- const lockService = redis_lock_service_1.RedisLockService.getOrCreateGlobalInstance();
82
- const { lockTtl = 3600000, retryCount = 0, retryDelay = 1000, useExponentialBackoff = false, maxRetryDelay = 60000, logExecution = true, lockKeyPrefix = 'schedule', autoExtendLock = 0, onSuccess, onError, skipIfLocked = true, } = options;
112
+ // Get or create global instance - auto-configures from environment variables
113
+ const lockService = redis_lock_1.RedisLockService.getOrCreateGlobalInstance();
114
+ const { lockTtl = 600000, // 10 minutes default (reduced from 1 hour)
115
+ retryCount = 3, retryDelay = 500, useExponentialBackoff = true, maxRetryDelay = 30000, logExecution = true, lockKeyPrefix = 'schedule', autoExtendLock = 0, onSuccess, onError, skipIfLocked = true, } = options;
116
+ // Configuration validation and adjustment
117
+ const validatedLockTtl = lockTtl >= 3600000
118
+ ? (logger.warn(`lockTtl (${lockTtl}ms) is quite long for a scheduled task, consider if this is appropriate for ${className}.${methodName}`), lockTtl)
119
+ : lockTtl;
120
+ const validatedRetryCount = retryCount > 10
121
+ ? (logger.warn(`retryCount (${retryCount}) is too high, limiting to 10 for task ${className}.${methodName}`), 10)
122
+ : retryCount;
123
+ const validatedRetryDelay = retryDelay < 100
124
+ ? (logger.warn(`retryDelay (${retryDelay}ms) is too low, setting to 100ms for task ${className}.${methodName}`), 100)
125
+ : retryDelay;
83
126
  const fullLockKey = `${lockKeyPrefix}:${resolvedLockKey}`;
84
127
  const startTime = Date.now();
128
+ // Log task start
85
129
  if (logExecution) {
86
130
  logger.log(`Task starting...`);
87
131
  }
88
132
  try {
133
+ // Acquire lock
89
134
  const lockResult = yield lockService.acquireLock(resolvedLockKey, {
90
- ttl: lockTtl,
135
+ ttl: validatedLockTtl,
91
136
  keyPrefix: lockKeyPrefix,
92
137
  autoExtend: autoExtendLock,
93
138
  });
@@ -101,9 +146,10 @@ function createWorkerDecoratorWithLock(baseDecorator, decoratorName, lockKey, op
101
146
  }
102
147
  }
103
148
  try {
149
+ // Execute with retry logic
104
150
  const result = yield executeWithRetry(() => originalMethod.apply(this, args), {
105
- retryCount,
106
- retryDelay,
151
+ retryCount: validatedRetryCount,
152
+ retryDelay: validatedRetryDelay,
107
153
  useExponentialBackoff,
108
154
  maxRetryDelay,
109
155
  logger,
@@ -113,15 +159,18 @@ function createWorkerDecoratorWithLock(baseDecorator, decoratorName, lockKey, op
113
159
  if (logExecution) {
114
160
  logger.log(`Task completed successfully in ${duration}ms`);
115
161
  }
162
+ // Call success callback with proper this context
116
163
  if (onSuccess) {
117
164
  yield onSuccess.call(this, duration);
118
165
  }
119
166
  return result;
120
167
  }
121
168
  finally {
169
+ // Clear auto-extension timer if it exists
122
170
  if (lockResult.autoExtendTimer) {
123
171
  clearInterval(lockResult.autoExtendTimer);
124
172
  }
173
+ // Always release the lock
125
174
  yield lockService.releaseLock(resolvedLockKey, lockResult.lockValue, lockKeyPrefix);
126
175
  if (logExecution) {
127
176
  logger.debug(`Lock "${fullLockKey}" released`);
@@ -130,9 +179,9 @@ function createWorkerDecoratorWithLock(baseDecorator, decoratorName, lockKey, op
130
179
  }
131
180
  catch (error) {
132
181
  const duration = Date.now() - startTime;
133
- if (logExecution) {
134
- logger.error(`Task failed after ${duration}ms: ${error.message}`, error.stack);
135
- }
182
+ // Always log errors regardless of logExecution setting
183
+ logger.error(`Task failed after ${duration}ms: ${error.message}`, error.stack);
184
+ // Call error callback with proper this context
136
185
  if (onError) {
137
186
  yield onError.call(this, error);
138
187
  }
@@ -140,25 +189,98 @@ function createWorkerDecoratorWithLock(baseDecorator, decoratorName, lockKey, op
140
189
  }
141
190
  });
142
191
  };
192
+ // Apply the base decorator
143
193
  baseDecorator(target, propertyKey, descriptor);
144
194
  return descriptor;
145
195
  };
146
196
  }
197
+ // ============================================================================
198
+ // Basic Worker Decorators (without lock)
199
+ // ============================================================================
200
+ /**
201
+ * Cron decorator that only executes in Worker or Hybrid mode
202
+ *
203
+ * @param cronTime - Cron expression
204
+ * @param options - Cron options
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * @WorkerCron('0 0 * * *') // Run daily at midnight
209
+ * async dailyTask() {
210
+ * // Task logic
211
+ * }
212
+ * ```
213
+ */
147
214
  function WorkerCron(cronTime, options) {
148
215
  return createWorkerDecorator((0, schedule_1.Cron)(cronTime, options), 'WorkerCron');
149
216
  }
217
+ /**
218
+ * Interval decorator that only executes in Worker or Hybrid mode
219
+ *
220
+ * @param timeout - Interval in milliseconds
221
+ * @param name - Optional name for the interval
222
+ *
223
+ * @example
224
+ * ```typescript
225
+ * @WorkerInterval(60000) // Run every minute
226
+ * async minutelyTask() {
227
+ * // Task logic
228
+ * }
229
+ * ```
230
+ */
150
231
  function WorkerInterval(timeout, name) {
151
232
  if (name) {
152
233
  return createWorkerDecorator((0, schedule_1.Interval)(name, timeout), 'WorkerInterval');
153
234
  }
154
235
  return createWorkerDecorator((0, schedule_1.Interval)(timeout), 'WorkerInterval');
155
236
  }
237
+ /**
238
+ * Timeout decorator that only executes in Worker or Hybrid mode
239
+ *
240
+ * @param timeout - Timeout in milliseconds
241
+ * @param name - Optional name for the timeout
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * @WorkerTimeout(5000) // Run once after 5 seconds
246
+ * async startupTask() {
247
+ * // Task logic
248
+ * }
249
+ * ```
250
+ */
156
251
  function WorkerTimeout(timeout, name) {
157
252
  if (name) {
158
253
  return createWorkerDecorator((0, schedule_1.Timeout)(name, timeout), 'WorkerTimeout');
159
254
  }
160
255
  return createWorkerDecorator((0, schedule_1.Timeout)(timeout), 'WorkerTimeout');
161
256
  }
257
+ // ============================================================================
258
+ // Worker Decorators with Lock Support
259
+ // ============================================================================
260
+ /**
261
+ * Cron decorator with distributed lock support
262
+ * Automatically generates lock key from class and method name
263
+ *
264
+ * @param cronTime - Cron expression
265
+ * @param lockKeyOrOptions - Lock key (string) or options object
266
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
267
+ *
268
+ * @param cronOptions
269
+ * @example
270
+ * ```typescript
271
+ * // Using string lock key
272
+ * @WorkerCronWithLock('0 * * * *', 'hourly-task', 3600000)
273
+ * async hourlyTask() {
274
+ * // Task logic
275
+ * }
276
+ *
277
+ * // Using options object (auto-generates lock key)
278
+ * @WorkerCronWithLock('0 * * * *', { lockTtl: 3600000, retryCount: 3 })
279
+ * async hourlyTask() {
280
+ * // Task logic
281
+ * }
282
+ * ```
283
+ */
162
284
  function WorkerCronWithLock(cronTime, lockKeyOrOptions, lockTtl, cronOptions) {
163
285
  return function (target, propertyKey, descriptor) {
164
286
  let lockKey;
@@ -174,21 +296,65 @@ function WorkerCronWithLock(cronTime, lockKeyOrOptions, lockTtl, cronOptions) {
174
296
  return createWorkerDecoratorWithLock((0, schedule_1.Cron)(cronTime, cronOptions), 'WorkerCronWithLock', lockKey, options)(target, propertyKey, descriptor);
175
297
  };
176
298
  }
299
+ /**
300
+ * Interval decorator with distributed lock support
301
+ *
302
+ * @param timeout - Interval in milliseconds
303
+ * @param lockKeyOrOptions - Lock key (string) or options object
304
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
305
+ *
306
+ * @example
307
+ * ```typescript
308
+ * // Using string lock key
309
+ * @WorkerIntervalWithLock(60000, 'status-check', 50000)
310
+ * async checkStatus() {
311
+ * // Task logic
312
+ * }
313
+ *
314
+ * // Using options object (auto-generates lock key)
315
+ * @WorkerIntervalWithLock(60000, { retryCount: 2 })
316
+ * async checkStatus() {
317
+ * // Task logic
318
+ * }
319
+ * ```
320
+ */
177
321
  function WorkerIntervalWithLock(timeout, lockKeyOrOptions, lockTtl) {
178
322
  return function (target, propertyKey, descriptor) {
179
323
  let lockKey;
180
324
  let options;
181
325
  if (typeof lockKeyOrOptions === 'string') {
182
326
  lockKey = lockKeyOrOptions;
183
- options = { lockTtl: lockTtl || Math.floor(timeout * 0.8) };
327
+ options = { lockTtl: lockTtl || Math.max(Math.floor(timeout * 0.8), 10000) };
184
328
  }
185
329
  else {
186
330
  lockKey = generateLockKey(target.constructor.name, String(propertyKey));
187
- options = Object.assign({ lockTtl: Math.floor(timeout * 0.8) }, lockKeyOrOptions);
331
+ options = Object.assign({ lockTtl: Math.max(Math.floor(timeout * 0.8), 10000) }, lockKeyOrOptions);
188
332
  }
189
333
  return createWorkerDecoratorWithLock((0, schedule_1.Interval)(timeout), 'WorkerIntervalWithLock', lockKey, options)(target, propertyKey, descriptor);
190
334
  };
191
335
  }
336
+ /**
337
+ * Timeout decorator with distributed lock support
338
+ *
339
+ * @param timeout - Timeout in milliseconds
340
+ * @param lockKeyOrOptions - Lock key (string) or options object
341
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
342
+ *
343
+ * @example
344
+ * ```typescript
345
+ * // Using string lock key
346
+ * @WorkerTimeoutWithLock(5000, 'init-task', 10000)
347
+ * async initializeSystem() {
348
+ * // Task logic
349
+ * }
350
+ *
351
+ * // Using options object (auto-generates lock key)
352
+ * @WorkerTimeoutWithLock(5000, { lockTtl: 10000 })
353
+ * async initializeSystem() {
354
+ * // Task logic
355
+ * }
356
+ * ```
357
+ */
192
358
  function WorkerTimeoutWithLock(timeout, lockKeyOrOptions, lockTtl) {
193
359
  return function (target, propertyKey, descriptor) {
194
360
  let lockKey;
@@ -204,18 +370,80 @@ function WorkerTimeoutWithLock(timeout, lockKeyOrOptions, lockTtl) {
204
370
  return createWorkerDecoratorWithLock((0, schedule_1.Timeout)(timeout), 'WorkerTimeoutWithLock', lockKey, options)(target, propertyKey, descriptor);
205
371
  };
206
372
  }
373
+ // ============================================================================
374
+ // Smart Decorators (Recommended)
375
+ // ============================================================================
376
+ /**
377
+ * Smart Cron decorator with auto-generated lock key and intelligent defaults
378
+ * Recommended for most use cases
379
+ *
380
+ * @param cronTime - Cron expression
381
+ * @param options - Schedule options
382
+ *
383
+ * @example
384
+ * ```typescript
385
+ * @WorkerCronSmart('0 * * * *') // Run hourly with auto-generated lock key
386
+ * async hourlyTask() {
387
+ * // Task logic
388
+ * }
389
+ *
390
+ * @WorkerCronSmart('0 0 * * *', {
391
+ * lockTtl: 7200000, // 2 hours
392
+ * retryCount: 3,
393
+ * onError: (error) => console.error('Task failed:', error),
394
+ * })
395
+ * async dailyTask() {
396
+ * // Task logic
397
+ * }
398
+ * ```
399
+ */
207
400
  function WorkerCronSmart(cronTime, options = {}, cronOptions) {
208
401
  return function (target, propertyKey, descriptor) {
209
402
  const lockKey = generateLockKey(target.constructor.name, String(propertyKey));
210
403
  return createWorkerDecoratorWithLock((0, schedule_1.Cron)(cronTime, cronOptions), 'WorkerCronSmart', lockKey, Object.assign({ lockTtl: 3600000, logExecution: true }, options))(target, propertyKey, descriptor);
211
404
  };
212
405
  }
406
+ /**
407
+ * Smart Interval decorator with auto-generated lock key and intelligent defaults
408
+ * Lock TTL is automatically set to 80% of interval duration
409
+ *
410
+ * @param timeout - Interval in milliseconds
411
+ * @param options - Schedule options
412
+ *
413
+ * @example
414
+ * ```typescript
415
+ * @WorkerIntervalSmart(120000) // Run every 2 minutes, lock for ~1.6 minutes
416
+ * async checkStatus() {
417
+ * // Task logic
418
+ * }
419
+ * ```
420
+ */
213
421
  function WorkerIntervalSmart(timeout, options = {}) {
214
422
  return function (target, propertyKey, descriptor) {
215
423
  const lockKey = generateLockKey(target.constructor.name, String(propertyKey));
216
- return createWorkerDecoratorWithLock((0, schedule_1.Interval)(timeout), 'WorkerIntervalSmart', lockKey, Object.assign({ lockTtl: Math.floor(timeout * 0.8), logExecution: true }, options))(target, propertyKey, descriptor);
424
+ return createWorkerDecoratorWithLock((0, schedule_1.Interval)(timeout), 'WorkerIntervalSmart', lockKey, Object.assign({ lockTtl: Math.max(Math.floor(timeout * 0.8), 10000), logExecution: true }, options))(target, propertyKey, descriptor);
217
425
  };
218
426
  }
427
+ /**
428
+ * Advanced Cron decorator with full control
429
+ * Alias for WorkerCronSmart with explicit lock key parameter
430
+ *
431
+ * @param cronTime - Cron expression
432
+ * @param lockKeyOrOptions - Lock key (string) or options object
433
+ * @param options - Schedule options (only if lockKeyOrOptions is a string)
434
+ *
435
+ * @example
436
+ * ```typescript
437
+ * @WorkerCronAdvanced('0 0 * * *', 'daily-report', {
438
+ * lockTtl: 7200000,
439
+ * retryCount: 5,
440
+ * useExponentialBackoff: true,
441
+ * })
442
+ * async generateDailyReport() {
443
+ * // Task logic
444
+ * }
445
+ * ```
446
+ */
219
447
  function WorkerCronAdvanced(cronTime, lockKeyOrOptions, options, cronOptions) {
220
448
  return function (target, propertyKey, descriptor) {
221
449
  let lockKey;
@@ -1,14 +1,100 @@
1
+ /**
2
+ * Worker Decorators for Bull Queue Processors
3
+ *
4
+ * These decorators conditionally apply Bull decorators based on the application mode.
5
+ * They only register processors when running in Worker or Hybrid mode.
6
+ */
7
+ /**
8
+ * Conditionally applies Bull's @Processor decorator
9
+ * Only registers the processor class when running in Worker or Hybrid mode
10
+ *
11
+ * @param queueName - Name of the queue to process
12
+ * @param options - Processor options (optional)
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * @WorkerProcessor('email')
17
+ * export class EmailProcessor {
18
+ * @WorkerProcess('send')
19
+ * async sendEmail(job: Job) {
20
+ * // Process email sending
21
+ * }
22
+ * }
23
+ * ```
24
+ */
1
25
  export declare function WorkerProcessor(queueName?: string): ClassDecorator;
26
+ /**
27
+ * Conditionally applies Bull's @Process decorator
28
+ * Only registers the processor method when running in Worker or Hybrid mode
29
+ *
30
+ * @param name - Job name to process (optional)
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * @WorkerProcess('send-email')
35
+ * async sendEmail(job: Job<EmailData>) {
36
+ * // Process job
37
+ * }
38
+ * ```
39
+ */
2
40
  export declare function WorkerProcess(name?: string): MethodDecorator;
41
+ /**
42
+ * Conditionally applies Bull's @OnQueueActive decorator
43
+ * Only registers when running in Worker or Hybrid mode
44
+ */
3
45
  export declare function WorkerOnQueueActive(): MethodDecorator;
46
+ /**
47
+ * Conditionally applies Bull's @OnQueueCompleted decorator
48
+ * Only registers when running in Worker or Hybrid mode
49
+ */
4
50
  export declare function WorkerOnQueueCompleted(): MethodDecorator;
51
+ /**
52
+ * Conditionally applies Bull's @OnQueueProgress decorator
53
+ * Only registers when running in Worker or Hybrid mode
54
+ */
5
55
  export declare function WorkerOnQueueProgress(): MethodDecorator;
56
+ /**
57
+ * Conditionally applies Bull's @OnQueueFailed decorator
58
+ * Only registers when running in Worker or Hybrid mode
59
+ */
6
60
  export declare function WorkerOnQueueFailed(): MethodDecorator;
61
+ /**
62
+ * Conditionally applies Bull's @OnQueueError decorator
63
+ * Only registers when running in Worker or Hybrid mode
64
+ */
7
65
  export declare function WorkerOnQueueError(): MethodDecorator;
66
+ /**
67
+ * Conditionally applies Bull's @OnQueueWaiting decorator
68
+ * Only registers when running in Worker or Hybrid mode
69
+ */
8
70
  export declare function WorkerOnQueueWaiting(): MethodDecorator;
71
+ /**
72
+ * Conditionally applies Bull's @OnQueueStalled decorator
73
+ * Only registers when running in Worker or Hybrid mode
74
+ */
9
75
  export declare function WorkerOnQueueStalled(): MethodDecorator;
76
+ /**
77
+ * Conditionally applies Bull's @OnQueueRemoved decorator
78
+ * Only registers when running in Worker or Hybrid mode
79
+ */
10
80
  export declare function WorkerOnQueueRemoved(): MethodDecorator;
81
+ /**
82
+ * Conditionally applies Bull's @OnQueueCleaned decorator
83
+ * Only registers when running in Worker or Hybrid mode
84
+ */
11
85
  export declare function WorkerOnQueueCleaned(): MethodDecorator;
86
+ /**
87
+ * Conditionally applies Bull's @OnQueueDrained decorator
88
+ * Only registers when running in Worker or Hybrid mode
89
+ */
12
90
  export declare function WorkerOnQueueDrained(): MethodDecorator;
91
+ /**
92
+ * Conditionally applies Bull's @OnQueuePaused decorator
93
+ * Only registers when running in Worker or Hybrid mode
94
+ */
13
95
  export declare function WorkerOnQueuePaused(): MethodDecorator;
96
+ /**
97
+ * Conditionally applies Bull's @OnQueueResumed decorator
98
+ * Only registers when running in Worker or Hybrid mode
99
+ */
14
100
  export declare function WorkerOnQueueResumed(): MethodDecorator;
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * Worker Decorators for Bull Queue Processors
4
+ *
5
+ * These decorators conditionally apply Bull decorators based on the application mode.
6
+ * They only register processors when running in Worker or Hybrid mode.
7
+ */
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
3
9
  exports.WorkerProcessor = WorkerProcessor;
4
10
  exports.WorkerProcess = WorkerProcess;
@@ -14,24 +20,71 @@ exports.WorkerOnQueueCleaned = WorkerOnQueueCleaned;
14
20
  exports.WorkerOnQueueDrained = WorkerOnQueueDrained;
15
21
  exports.WorkerOnQueuePaused = WorkerOnQueuePaused;
16
22
  exports.WorkerOnQueueResumed = WorkerOnQueueResumed;
23
+ const common_1 = require("@nestjs/common");
17
24
  const bull_1 = require("@nestjs/bull");
18
25
  const mode_setup_1 = require("./mode.setup");
26
+ /**
27
+ * Conditionally applies Bull's @Processor decorator
28
+ * Only registers the processor class when running in Worker or Hybrid mode
29
+ *
30
+ * @param queueName - Name of the queue to process
31
+ * @param options - Processor options (optional)
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * @WorkerProcessor('email')
36
+ * export class EmailProcessor {
37
+ * @WorkerProcess('send')
38
+ * async sendEmail(job: Job) {
39
+ * // Process email sending
40
+ * }
41
+ * }
42
+ * ```
43
+ */
19
44
  function WorkerProcessor(queueName) {
20
45
  if ((0, mode_setup_1.shouldProcessQueues)()) {
21
46
  return (0, bull_1.Processor)(queueName);
22
47
  }
48
+ // In HTTP-only mode, return a no-op decorator
23
49
  return function (constructor) {
24
50
  return constructor;
25
51
  };
26
52
  }
53
+ /**
54
+ * Conditionally applies Bull's @Process decorator
55
+ * Only registers the processor method when running in Worker or Hybrid mode
56
+ *
57
+ * @param name - Job name to process (optional)
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * @WorkerProcess('send-email')
62
+ * async sendEmail(job: Job<EmailData>) {
63
+ * // Process job
64
+ * }
65
+ * ```
66
+ */
27
67
  function WorkerProcess(name) {
28
68
  if ((0, mode_setup_1.shouldProcessQueues)()) {
29
69
  return (0, bull_1.Process)(name);
30
70
  }
71
+ // In HTTP-only mode, return a decorator that logs and skips
31
72
  return function (target, propertyKey, descriptor) {
73
+ const originalMethod = descriptor.value;
74
+ const className = target.constructor.name;
75
+ const methodName = String(propertyKey);
76
+ const logger = new common_1.Logger(`${className}.${methodName}`);
77
+ descriptor.value = function (...args) {
78
+ logger.log('Skipped (queue processors require WORKER or HYBRID mode)');
79
+ return undefined;
80
+ };
32
81
  return descriptor;
33
82
  };
34
83
  }
84
+ /**
85
+ * Conditionally applies Bull's @OnQueueActive decorator
86
+ * Only registers when running in Worker or Hybrid mode
87
+ */
35
88
  function WorkerOnQueueActive() {
36
89
  if ((0, mode_setup_1.shouldProcessQueues)()) {
37
90
  return (0, bull_1.OnQueueActive)();
@@ -40,6 +93,10 @@ function WorkerOnQueueActive() {
40
93
  return descriptor;
41
94
  };
42
95
  }
96
+ /**
97
+ * Conditionally applies Bull's @OnQueueCompleted decorator
98
+ * Only registers when running in Worker or Hybrid mode
99
+ */
43
100
  function WorkerOnQueueCompleted() {
44
101
  if ((0, mode_setup_1.shouldProcessQueues)()) {
45
102
  return (0, bull_1.OnQueueCompleted)();
@@ -48,6 +105,10 @@ function WorkerOnQueueCompleted() {
48
105
  return descriptor;
49
106
  };
50
107
  }
108
+ /**
109
+ * Conditionally applies Bull's @OnQueueProgress decorator
110
+ * Only registers when running in Worker or Hybrid mode
111
+ */
51
112
  function WorkerOnQueueProgress() {
52
113
  if ((0, mode_setup_1.shouldProcessQueues)()) {
53
114
  return (0, bull_1.OnQueueProgress)();
@@ -56,6 +117,10 @@ function WorkerOnQueueProgress() {
56
117
  return descriptor;
57
118
  };
58
119
  }
120
+ /**
121
+ * Conditionally applies Bull's @OnQueueFailed decorator
122
+ * Only registers when running in Worker or Hybrid mode
123
+ */
59
124
  function WorkerOnQueueFailed() {
60
125
  if ((0, mode_setup_1.shouldProcessQueues)()) {
61
126
  return (0, bull_1.OnQueueFailed)();
@@ -64,6 +129,10 @@ function WorkerOnQueueFailed() {
64
129
  return descriptor;
65
130
  };
66
131
  }
132
+ /**
133
+ * Conditionally applies Bull's @OnQueueError decorator
134
+ * Only registers when running in Worker or Hybrid mode
135
+ */
67
136
  function WorkerOnQueueError() {
68
137
  if ((0, mode_setup_1.shouldProcessQueues)()) {
69
138
  return (0, bull_1.OnQueueError)();
@@ -72,6 +141,10 @@ function WorkerOnQueueError() {
72
141
  return descriptor;
73
142
  };
74
143
  }
144
+ /**
145
+ * Conditionally applies Bull's @OnQueueWaiting decorator
146
+ * Only registers when running in Worker or Hybrid mode
147
+ */
75
148
  function WorkerOnQueueWaiting() {
76
149
  if ((0, mode_setup_1.shouldProcessQueues)()) {
77
150
  return (0, bull_1.OnQueueWaiting)();
@@ -80,6 +153,10 @@ function WorkerOnQueueWaiting() {
80
153
  return descriptor;
81
154
  };
82
155
  }
156
+ /**
157
+ * Conditionally applies Bull's @OnQueueStalled decorator
158
+ * Only registers when running in Worker or Hybrid mode
159
+ */
83
160
  function WorkerOnQueueStalled() {
84
161
  if ((0, mode_setup_1.shouldProcessQueues)()) {
85
162
  return (0, bull_1.OnQueueStalled)();
@@ -88,6 +165,10 @@ function WorkerOnQueueStalled() {
88
165
  return descriptor;
89
166
  };
90
167
  }
168
+ /**
169
+ * Conditionally applies Bull's @OnQueueRemoved decorator
170
+ * Only registers when running in Worker or Hybrid mode
171
+ */
91
172
  function WorkerOnQueueRemoved() {
92
173
  if ((0, mode_setup_1.shouldProcessQueues)()) {
93
174
  return (0, bull_1.OnQueueRemoved)();
@@ -96,6 +177,10 @@ function WorkerOnQueueRemoved() {
96
177
  return descriptor;
97
178
  };
98
179
  }
180
+ /**
181
+ * Conditionally applies Bull's @OnQueueCleaned decorator
182
+ * Only registers when running in Worker or Hybrid mode
183
+ */
99
184
  function WorkerOnQueueCleaned() {
100
185
  if ((0, mode_setup_1.shouldProcessQueues)()) {
101
186
  return (0, bull_1.OnQueueCleaned)();
@@ -104,6 +189,10 @@ function WorkerOnQueueCleaned() {
104
189
  return descriptor;
105
190
  };
106
191
  }
192
+ /**
193
+ * Conditionally applies Bull's @OnQueueDrained decorator
194
+ * Only registers when running in Worker or Hybrid mode
195
+ */
107
196
  function WorkerOnQueueDrained() {
108
197
  if ((0, mode_setup_1.shouldProcessQueues)()) {
109
198
  return (0, bull_1.OnQueueDrained)();
@@ -112,6 +201,10 @@ function WorkerOnQueueDrained() {
112
201
  return descriptor;
113
202
  };
114
203
  }
204
+ /**
205
+ * Conditionally applies Bull's @OnQueuePaused decorator
206
+ * Only registers when running in Worker or Hybrid mode
207
+ */
115
208
  function WorkerOnQueuePaused() {
116
209
  if ((0, mode_setup_1.shouldProcessQueues)()) {
117
210
  return (0, bull_1.OnQueuePaused)();
@@ -120,6 +213,10 @@ function WorkerOnQueuePaused() {
120
213
  return descriptor;
121
214
  };
122
215
  }
216
+ /**
217
+ * Conditionally applies Bull's @OnQueueResumed decorator
218
+ * Only registers when running in Worker or Hybrid mode
219
+ */
123
220
  function WorkerOnQueueResumed() {
124
221
  if ((0, mode_setup_1.shouldProcessQueues)()) {
125
222
  return (0, bull_1.OnQueueResumed)();