@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
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.bootstrapSetup = bootstrapSetup;
13
+ require("../common/boilerplate.polyfill");
13
14
  const Sentry = require("@sentry/nestjs");
14
15
  const profiling_node_1 = require("@sentry/profiling-node");
15
16
  const dotenv = require("dotenv");
@@ -19,12 +20,15 @@ const process = require("process");
19
20
  const mode_setup_1 = require("./mode.setup");
20
21
  function findValidRootPath() {
21
22
  const getAppRootPath = () => {
23
+ // 优先使用 require.main.filename(应用入口文件)
22
24
  if (require.main && require.main.filename) {
23
25
  return (0, path_1.dirname)(require.main.filename);
24
26
  }
27
+ // fallback 到 process.argv[1]
25
28
  if (process.argv[1]) {
26
29
  return (0, path_1.dirname)(process.argv[1]);
27
30
  }
31
+ // 最后 fallback 到当前工作目录
28
32
  return process.cwd();
29
33
  };
30
34
  const possibleRootPaths = [getAppRootPath(), process.cwd(), __dirname];
@@ -56,6 +60,8 @@ function findValidRootPath() {
56
60
  throw new Error(`No valid .env file: ${envFilePath}`);
57
61
  }
58
62
  const { envFilePath, rootPath, baseEnvFilePath } = findValidRootPath();
63
+ // 配置加载顺序: base.env < 环境.env < Vault
64
+ // 1. 先加载本地配置文件 (base.env 和 环境.env)
59
65
  dotenv.config({ path: [envFilePath, baseEnvFilePath] });
60
66
  process.env.ROOT_PATH = rootPath;
61
67
  process.env.ENV_FILE_PATH = envFilePath;
@@ -121,41 +127,55 @@ const vault_1 = require("../vault");
121
127
  const dto_1 = require("../common/dto");
122
128
  function bootstrapSetup(AppModule, SetupSwagger) {
123
129
  return __awaiter(this, void 0, void 0, function* () {
130
+ // 2. 加载 Vault 配置(会覆盖 .env 中的配置)
124
131
  yield vault_1.VaultConfigLoader.loadVaultConfig();
132
+ // 获取应用模式
125
133
  const shouldStartHttp = (0, mode_setup_1.shouldStartHttpServer)();
134
+ // 创建应用实例
126
135
  const app = yield core_1.NestFactory.create(AppModule, {
127
136
  bufferLogs: true,
128
137
  autoFlushLogs: true,
129
138
  });
139
+ // 设置容器 - 类似class-validator的useContainer
130
140
  const appModuleRef = app.select(AppModule);
131
141
  (0, class_validator_1.useContainer)(appModuleRef, { fallbackOnErrors: true });
142
+ // 初始化DTO容器
132
143
  dto_1.DtoContainer.useContainer(appModuleRef);
144
+ // 获取核心服务
133
145
  const configService = app.select(__1.ServiceRegistryModule).get(__1.ApiConfigService);
134
146
  const logger = app.get(nestjs_pino_1.Logger);
135
147
  app.useLogger(logger);
136
148
  app.flushLogs();
149
+ // 记录应用模式
137
150
  logger.log(`Application Mode: ${(0, mode_setup_1.getModeDescription)()}`);
138
151
  logger.log(`Environment: ${process.env.NODE_ENV || 'unknown'}`);
139
152
  app.enableShutdownHooks();
153
+ // 基础配置
140
154
  app.enableVersioning();
141
155
  app.enable('trust proxy');
142
156
  app.set('query parser', 'extended');
157
+ // 中间件配置
143
158
  app.use(bodyParse.urlencoded({
144
159
  extended: true,
145
160
  parameterLimit: 1000,
146
161
  }), bodyParse.json({ limit: '50mb' }), new nestjs_cls_1.ClsMiddleware({
147
162
  saveReq: true,
163
+ // 启用请求保存,解决CLS相关的上下文问题
148
164
  }).use, (0, __1.RequestIdMiddleware)(), (0, __1.PowerByMiddleware)(), (0, __1.OmniAuthMiddleware)(), compression());
165
+ // 全局过滤器
149
166
  const reflector = app.get(core_1.Reflector);
150
167
  app.useGlobalFilters(new setup_1.SentryGlobalFilter(), new __1.HttpExceptionFilter(), new __1.QueryFailedFilter(reflector));
168
+ // 全局拦截器
151
169
  app.useGlobalInterceptors(new __1.LanguageInterceptor(), new __1.TranslationInterceptor(), new nestjs_pino_1.LoggerErrorInterceptor());
170
+ // 全局管道
152
171
  app.useGlobalPipes(new nestjs_i18n_1.I18nValidationPipe({
153
172
  whitelist: true,
154
173
  errorHttpStatusCode: common_1.HttpStatus.UNPROCESSABLE_ENTITY,
155
174
  transform: true,
156
175
  stopAtFirstError: true,
157
- validationError: { target: false, value: false },
176
+ validationError: { target: true, value: true },
158
177
  }));
178
+ // 可选功能模块 - 仅在 HTTP 或 Hybrid 模式下启用
159
179
  if (shouldStartHttp) {
160
180
  if (configService.documentationEnabled && SetupSwagger) {
161
181
  SetupSwagger(app, configService.documentationPath);
@@ -181,6 +201,7 @@ function bootstrapSetup(AppModule, SetupSwagger) {
181
201
  else {
182
202
  logger.log('Running in Worker-only mode - HTTP server not started');
183
203
  logger.log('Application is ready to process background tasks');
204
+ // 在 Worker 模式下,应用会持续运行但不监听 HTTP 请求
184
205
  yield app.init();
185
206
  }
186
207
  return app;
package/setup/index.d.ts CHANGED
@@ -2,3 +2,4 @@ export * from './bootstrap.setup';
2
2
  export * from './mode.setup';
3
3
  export * from './worker.decorator';
4
4
  export * from './schedule.decorator';
5
+ export * from './run-in-mode.decorator';
package/setup/index.js CHANGED
@@ -18,3 +18,4 @@ __exportStar(require("./bootstrap.setup"), exports);
18
18
  __exportStar(require("./mode.setup"), exports);
19
19
  __exportStar(require("./worker.decorator"), exports);
20
20
  __exportStar(require("./schedule.decorator"), exports);
21
+ __exportStar(require("./run-in-mode.decorator"), exports);
@@ -1,12 +1,56 @@
1
+ /**
2
+ * Application Mode Detection and Management System
3
+ *
4
+ * This module provides utilities for detecting and managing different application modes:
5
+ * - HTTP: Only HTTP server (no workers/schedulers)
6
+ * - WORKER: Only background workers and schedulers (no HTTP server)
7
+ * - HYBRID: Both HTTP server and workers (default)
8
+ */
1
9
  export declare enum ApplicationMode {
2
10
  HTTP = "http",
3
11
  WORKER = "worker",
4
12
  HYBRID = "hybrid"
5
13
  }
14
+ /**
15
+ * Get the current application mode from environment variables
16
+ * Supports both APP_MODE and MODE environment variables
17
+ *
18
+ * @returns The current application mode
19
+ */
6
20
  export declare function getApplicationMode(): ApplicationMode;
21
+ /**
22
+ * Check if the current mode should process queues and scheduled tasks
23
+ *
24
+ * @returns True if workers should be registered
25
+ */
7
26
  export declare function shouldProcessQueues(): boolean;
27
+ /**
28
+ * Check if the current mode should start HTTP server
29
+ *
30
+ * @returns True if HTTP server should be started
31
+ */
8
32
  export declare function shouldStartHttpServer(): boolean;
33
+ /**
34
+ * Check if running in HTTP-only mode
35
+ *
36
+ * @returns True if running in HTTP-only mode
37
+ */
9
38
  export declare function isHttpMode(): boolean;
39
+ /**
40
+ * Check if running in Worker-only mode
41
+ *
42
+ * @returns True if running in Worker-only mode
43
+ */
10
44
  export declare function isWorkerMode(): boolean;
45
+ /**
46
+ * Check if running in Hybrid mode
47
+ *
48
+ * @returns True if running in Hybrid mode
49
+ */
11
50
  export declare function isHybridMode(): boolean;
51
+ /**
52
+ * Get a human-readable description of the current mode
53
+ *
54
+ * @returns Description of the current mode
55
+ */
12
56
  export declare function getModeDescription(): string;
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ /**
3
+ * Application Mode Detection and Management System
4
+ *
5
+ * This module provides utilities for detecting and managing different application modes:
6
+ * - HTTP: Only HTTP server (no workers/schedulers)
7
+ * - WORKER: Only background workers and schedulers (no HTTP server)
8
+ * - HYBRID: Both HTTP server and workers (default)
9
+ */
2
10
  Object.defineProperty(exports, "__esModule", { value: true });
3
11
  exports.ApplicationMode = void 0;
4
12
  exports.getApplicationMode = getApplicationMode;
@@ -14,6 +22,12 @@ var ApplicationMode;
14
22
  ApplicationMode["WORKER"] = "worker";
15
23
  ApplicationMode["HYBRID"] = "hybrid";
16
24
  })(ApplicationMode || (exports.ApplicationMode = ApplicationMode = {}));
25
+ /**
26
+ * Get the current application mode from environment variables
27
+ * Supports both APP_MODE and MODE environment variables
28
+ *
29
+ * @returns The current application mode
30
+ */
17
31
  function getApplicationMode() {
18
32
  const mode = (process.env.APP_MODE || process.env.MODE || 'hybrid')
19
33
  .toLowerCase()
@@ -28,23 +42,53 @@ function getApplicationMode() {
28
42
  return ApplicationMode.HYBRID;
29
43
  }
30
44
  }
45
+ /**
46
+ * Check if the current mode should process queues and scheduled tasks
47
+ *
48
+ * @returns True if workers should be registered
49
+ */
31
50
  function shouldProcessQueues() {
32
51
  const mode = getApplicationMode();
33
52
  return mode === ApplicationMode.WORKER || mode === ApplicationMode.HYBRID;
34
53
  }
54
+ /**
55
+ * Check if the current mode should start HTTP server
56
+ *
57
+ * @returns True if HTTP server should be started
58
+ */
35
59
  function shouldStartHttpServer() {
36
60
  const mode = getApplicationMode();
37
61
  return mode === ApplicationMode.HTTP || mode === ApplicationMode.HYBRID;
38
62
  }
63
+ /**
64
+ * Check if running in HTTP-only mode
65
+ *
66
+ * @returns True if running in HTTP-only mode
67
+ */
39
68
  function isHttpMode() {
40
69
  return getApplicationMode() === ApplicationMode.HTTP;
41
70
  }
71
+ /**
72
+ * Check if running in Worker-only mode
73
+ *
74
+ * @returns True if running in Worker-only mode
75
+ */
42
76
  function isWorkerMode() {
43
77
  return getApplicationMode() === ApplicationMode.WORKER;
44
78
  }
79
+ /**
80
+ * Check if running in Hybrid mode
81
+ *
82
+ * @returns True if running in Hybrid mode
83
+ */
45
84
  function isHybridMode() {
46
85
  return getApplicationMode() === ApplicationMode.HYBRID;
47
86
  }
87
+ /**
88
+ * Get a human-readable description of the current mode
89
+ *
90
+ * @returns Description of the current mode
91
+ */
48
92
  function getModeDescription() {
49
93
  const mode = getApplicationMode();
50
94
  switch (mode) {
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Mode-Aware Method Decorators
3
+ *
4
+ * Conditional method execution based on application mode:
5
+ * - HTTP: Only HTTP server (no workers/schedulers)
6
+ * - WORKER: Only background workers and schedulers (no HTTP server)
7
+ * - HYBRID: Both HTTP server and workers (default)
8
+ */
9
+ /**
10
+ * Method only executes in HTTP mode (skipped in WORKER and HYBRID)
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * @RunOnlyInHttp()
15
+ * async handleApiRequest() {
16
+ * // Only runs when APP_MODE=http
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function RunOnlyInHttp(): MethodDecorator;
21
+ /**
22
+ * Method only executes in WORKER mode (skipped in HTTP and HYBRID)
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * @RunOnlyInWorker()
27
+ * async processBackgroundJob() {
28
+ * // Only runs when APP_MODE=worker
29
+ * }
30
+ * ```
31
+ */
32
+ export declare function RunOnlyInWorker(): MethodDecorator;
33
+ /**
34
+ * Method executes in HTTP or HYBRID mode (skipped in WORKER-only mode)
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * @RunInHttpOrHybrid()
39
+ * async handleWebRequest() {
40
+ * // Runs in HTTP or HYBRID mode
41
+ * }
42
+ * ```
43
+ */
44
+ export declare function RunInHttpOrHybrid(): MethodDecorator;
45
+ /**
46
+ * Method executes in WORKER or HYBRID mode (skipped in HTTP-only mode)
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * @RunInWorkerOrHybrid()
51
+ * async processScheduledTask() {
52
+ * // Runs in WORKER or HYBRID mode
53
+ * }
54
+ * ```
55
+ */
56
+ export declare function RunInWorkerOrHybrid(): MethodDecorator;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * Mode-Aware Method Decorators
4
+ *
5
+ * Conditional method execution based on application mode:
6
+ * - HTTP: Only HTTP server (no workers/schedulers)
7
+ * - WORKER: Only background workers and schedulers (no HTTP server)
8
+ * - HYBRID: Both HTTP server and workers (default)
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.RunOnlyInHttp = RunOnlyInHttp;
12
+ exports.RunOnlyInWorker = RunOnlyInWorker;
13
+ exports.RunInHttpOrHybrid = RunInHttpOrHybrid;
14
+ exports.RunInWorkerOrHybrid = RunInWorkerOrHybrid;
15
+ const common_1 = require("@nestjs/common");
16
+ const mode_setup_1 = require("./mode.setup");
17
+ /**
18
+ * Create mode-restricted decorator
19
+ */
20
+ function createModeDecorator(allowedModes) {
21
+ return function (target, propertyKey, descriptor) {
22
+ const originalMethod = descriptor.value;
23
+ const className = target.constructor.name;
24
+ const methodName = String(propertyKey);
25
+ const logger = new common_1.Logger(`${className}.${methodName}`);
26
+ descriptor.value = function (...args) {
27
+ const currentMode = (0, mode_setup_1.getApplicationMode)();
28
+ if (!allowedModes.includes(currentMode)) {
29
+ logger.log(`Skipped (current: ${currentMode}, allowed: ${allowedModes.join(', ')})`);
30
+ return undefined;
31
+ }
32
+ return originalMethod.apply(this, args);
33
+ };
34
+ return descriptor;
35
+ };
36
+ }
37
+ /**
38
+ * Method only executes in HTTP mode (skipped in WORKER and HYBRID)
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * @RunOnlyInHttp()
43
+ * async handleApiRequest() {
44
+ * // Only runs when APP_MODE=http
45
+ * }
46
+ * ```
47
+ */
48
+ function RunOnlyInHttp() {
49
+ return createModeDecorator([mode_setup_1.ApplicationMode.HTTP]);
50
+ }
51
+ /**
52
+ * Method only executes in WORKER mode (skipped in HTTP and HYBRID)
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * @RunOnlyInWorker()
57
+ * async processBackgroundJob() {
58
+ * // Only runs when APP_MODE=worker
59
+ * }
60
+ * ```
61
+ */
62
+ function RunOnlyInWorker() {
63
+ return createModeDecorator([mode_setup_1.ApplicationMode.WORKER]);
64
+ }
65
+ /**
66
+ * Method executes in HTTP or HYBRID mode (skipped in WORKER-only mode)
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * @RunInHttpOrHybrid()
71
+ * async handleWebRequest() {
72
+ * // Runs in HTTP or HYBRID mode
73
+ * }
74
+ * ```
75
+ */
76
+ function RunInHttpOrHybrid() {
77
+ return createModeDecorator([mode_setup_1.ApplicationMode.HTTP, mode_setup_1.ApplicationMode.HYBRID]);
78
+ }
79
+ /**
80
+ * Method executes in WORKER or HYBRID mode (skipped in HTTP-only mode)
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * @RunInWorkerOrHybrid()
85
+ * async processScheduledTask() {
86
+ * // Runs in WORKER or HYBRID mode
87
+ * }
88
+ * ```
89
+ */
90
+ function RunInWorkerOrHybrid() {
91
+ return createModeDecorator([mode_setup_1.ApplicationMode.WORKER, mode_setup_1.ApplicationMode.HYBRID]);
92
+ }
@@ -1,23 +1,250 @@
1
+ /**
2
+ * Enhanced Schedule Decorators for Worker Mode
3
+ *
4
+ * This module provides decorators for scheduled tasks that:
5
+ * - Only run in Worker or Hybrid mode (not in HTTP-only mode)
6
+ * - Support distributed locking via Redis
7
+ * - Support retry logic for failed tasks
8
+ * - Provide automatic lock key generation
9
+ * - Support task execution logging and error handling
10
+ */
1
11
  import type { CronOptions } from '@nestjs/schedule';
12
+ /**
13
+ * Options for schedule decorators with lock support
14
+ */
2
15
  export interface ScheduleWithLockOptions {
16
+ /**
17
+ * Lock TTL in milliseconds
18
+ * For Cron: defaults to 3600000 (1 hour)
19
+ * For Interval: defaults to 80% of interval duration
20
+ * For Timeout: defaults to 300000 (5 minutes)
21
+ */
3
22
  lockTtl?: number;
23
+ /**
24
+ * Number of retry attempts if task fails
25
+ * @default 0
26
+ */
4
27
  retryCount?: number;
28
+ /**
29
+ * Delay between retry attempts in milliseconds
30
+ * @default 1000
31
+ */
5
32
  retryDelay?: number;
33
+ /**
34
+ * Whether to use exponential backoff for retries
35
+ * @default false
36
+ */
6
37
  useExponentialBackoff?: boolean;
38
+ /**
39
+ * Maximum retry delay in milliseconds (for exponential backoff)
40
+ * @default 60000 (1 minute)
41
+ */
7
42
  maxRetryDelay?: number;
43
+ /**
44
+ * Whether to log task execution
45
+ * @default true
46
+ */
8
47
  logExecution?: boolean;
48
+ /**
49
+ * Custom lock key prefix
50
+ * @default 'schedule'
51
+ */
9
52
  lockKeyPrefix?: string;
53
+ /**
54
+ * Automatic lock extension interval in milliseconds
55
+ * If set, the lock will be automatically extended at this interval
56
+ * @default 0 (no automatic extension)
57
+ */
10
58
  autoExtendLock?: number;
59
+ /**
60
+ * Callback function when task execution succeeds
61
+ */
11
62
  onSuccess?: (duration: number) => void | Promise<void>;
63
+ /**
64
+ * Callback function when task execution fails
65
+ */
12
66
  onError?: (error: Error) => void | Promise<void>;
67
+ /**
68
+ * Whether to skip execution if lock cannot be acquired
69
+ * @default true
70
+ */
13
71
  skipIfLocked?: boolean;
14
72
  }
73
+ /**
74
+ * Cron decorator that only executes in Worker or Hybrid mode
75
+ *
76
+ * @param cronTime - Cron expression
77
+ * @param options - Cron options
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * @WorkerCron('0 0 * * *') // Run daily at midnight
82
+ * async dailyTask() {
83
+ * // Task logic
84
+ * }
85
+ * ```
86
+ */
15
87
  export declare function WorkerCron(cronTime: string | Date, options?: CronOptions): MethodDecorator;
88
+ /**
89
+ * Interval decorator that only executes in Worker or Hybrid mode
90
+ *
91
+ * @param timeout - Interval in milliseconds
92
+ * @param name - Optional name for the interval
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * @WorkerInterval(60000) // Run every minute
97
+ * async minutelyTask() {
98
+ * // Task logic
99
+ * }
100
+ * ```
101
+ */
16
102
  export declare function WorkerInterval(timeout: number, name?: string): MethodDecorator;
103
+ /**
104
+ * Timeout decorator that only executes in Worker or Hybrid mode
105
+ *
106
+ * @param timeout - Timeout in milliseconds
107
+ * @param name - Optional name for the timeout
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * @WorkerTimeout(5000) // Run once after 5 seconds
112
+ * async startupTask() {
113
+ * // Task logic
114
+ * }
115
+ * ```
116
+ */
17
117
  export declare function WorkerTimeout(timeout: number, name?: string): MethodDecorator;
118
+ /**
119
+ * Cron decorator with distributed lock support
120
+ * Automatically generates lock key from class and method name
121
+ *
122
+ * @param cronTime - Cron expression
123
+ * @param lockKeyOrOptions - Lock key (string) or options object
124
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
125
+ *
126
+ * @param cronOptions
127
+ * @example
128
+ * ```typescript
129
+ * // Using string lock key
130
+ * @WorkerCronWithLock('0 * * * *', 'hourly-task', 3600000)
131
+ * async hourlyTask() {
132
+ * // Task logic
133
+ * }
134
+ *
135
+ * // Using options object (auto-generates lock key)
136
+ * @WorkerCronWithLock('0 * * * *', { lockTtl: 3600000, retryCount: 3 })
137
+ * async hourlyTask() {
138
+ * // Task logic
139
+ * }
140
+ * ```
141
+ */
18
142
  export declare function WorkerCronWithLock(cronTime: string | Date, lockKeyOrOptions: string | ScheduleWithLockOptions, lockTtl?: number, cronOptions?: CronOptions): MethodDecorator;
143
+ /**
144
+ * Interval decorator with distributed lock support
145
+ *
146
+ * @param timeout - Interval in milliseconds
147
+ * @param lockKeyOrOptions - Lock key (string) or options object
148
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
149
+ *
150
+ * @example
151
+ * ```typescript
152
+ * // Using string lock key
153
+ * @WorkerIntervalWithLock(60000, 'status-check', 50000)
154
+ * async checkStatus() {
155
+ * // Task logic
156
+ * }
157
+ *
158
+ * // Using options object (auto-generates lock key)
159
+ * @WorkerIntervalWithLock(60000, { retryCount: 2 })
160
+ * async checkStatus() {
161
+ * // Task logic
162
+ * }
163
+ * ```
164
+ */
19
165
  export declare function WorkerIntervalWithLock(timeout: number, lockKeyOrOptions: string | ScheduleWithLockOptions, lockTtl?: number): MethodDecorator;
166
+ /**
167
+ * Timeout decorator with distributed lock support
168
+ *
169
+ * @param timeout - Timeout in milliseconds
170
+ * @param lockKeyOrOptions - Lock key (string) or options object
171
+ * @param lockTtl - Lock TTL in milliseconds (only if lockKeyOrOptions is a string)
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * // Using string lock key
176
+ * @WorkerTimeoutWithLock(5000, 'init-task', 10000)
177
+ * async initializeSystem() {
178
+ * // Task logic
179
+ * }
180
+ *
181
+ * // Using options object (auto-generates lock key)
182
+ * @WorkerTimeoutWithLock(5000, { lockTtl: 10000 })
183
+ * async initializeSystem() {
184
+ * // Task logic
185
+ * }
186
+ * ```
187
+ */
20
188
  export declare function WorkerTimeoutWithLock(timeout: number, lockKeyOrOptions: string | ScheduleWithLockOptions, lockTtl?: number): MethodDecorator;
189
+ /**
190
+ * Smart Cron decorator with auto-generated lock key and intelligent defaults
191
+ * Recommended for most use cases
192
+ *
193
+ * @param cronTime - Cron expression
194
+ * @param options - Schedule options
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * @WorkerCronSmart('0 * * * *') // Run hourly with auto-generated lock key
199
+ * async hourlyTask() {
200
+ * // Task logic
201
+ * }
202
+ *
203
+ * @WorkerCronSmart('0 0 * * *', {
204
+ * lockTtl: 7200000, // 2 hours
205
+ * retryCount: 3,
206
+ * onError: (error) => console.error('Task failed:', error),
207
+ * })
208
+ * async dailyTask() {
209
+ * // Task logic
210
+ * }
211
+ * ```
212
+ */
21
213
  export declare function WorkerCronSmart(cronTime: string | Date, options?: ScheduleWithLockOptions, cronOptions?: CronOptions): MethodDecorator;
214
+ /**
215
+ * Smart Interval decorator with auto-generated lock key and intelligent defaults
216
+ * Lock TTL is automatically set to 80% of interval duration
217
+ *
218
+ * @param timeout - Interval in milliseconds
219
+ * @param options - Schedule options
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * @WorkerIntervalSmart(120000) // Run every 2 minutes, lock for ~1.6 minutes
224
+ * async checkStatus() {
225
+ * // Task logic
226
+ * }
227
+ * ```
228
+ */
22
229
  export declare function WorkerIntervalSmart(timeout: number, options?: ScheduleWithLockOptions): MethodDecorator;
230
+ /**
231
+ * Advanced Cron decorator with full control
232
+ * Alias for WorkerCronSmart with explicit lock key parameter
233
+ *
234
+ * @param cronTime - Cron expression
235
+ * @param lockKeyOrOptions - Lock key (string) or options object
236
+ * @param options - Schedule options (only if lockKeyOrOptions is a string)
237
+ *
238
+ * @example
239
+ * ```typescript
240
+ * @WorkerCronAdvanced('0 0 * * *', 'daily-report', {
241
+ * lockTtl: 7200000,
242
+ * retryCount: 5,
243
+ * useExponentialBackoff: true,
244
+ * })
245
+ * async generateDailyReport() {
246
+ * // Task logic
247
+ * }
248
+ * ```
249
+ */
23
250
  export declare function WorkerCronAdvanced(cronTime: string | Date, lockKeyOrOptions: string | ScheduleWithLockOptions, options?: ScheduleWithLockOptions, cronOptions?: CronOptions): MethodDecorator;