@nest-omni/core 4.1.3-1 → 4.1.3-3

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 (237) hide show
  1. package/audit/audit.module.d.ts +10 -0
  2. package/audit/audit.module.js +15 -0
  3. package/audit/controllers/audit.controller.d.ts +24 -0
  4. package/audit/controllers/audit.controller.js +24 -0
  5. package/audit/decorators/audit-controller.decorator.d.ts +8 -0
  6. package/audit/decorators/audit-controller.decorator.js +9 -0
  7. package/audit/decorators/audit-operation.decorator.d.ts +45 -0
  8. package/audit/decorators/audit-operation.decorator.js +49 -0
  9. package/audit/decorators/entity-audit.decorator.d.ts +8 -0
  10. package/audit/decorators/entity-audit.decorator.js +9 -0
  11. package/audit/dto/audit-log-query.dto.d.ts +3 -0
  12. package/audit/dto/audit-log-query.dto.js +3 -0
  13. package/audit/dto/begin-transaction.dto.d.ts +3 -0
  14. package/audit/dto/begin-transaction.dto.js +3 -0
  15. package/audit/dto/compare-entities.dto.d.ts +3 -0
  16. package/audit/dto/compare-entities.dto.js +3 -0
  17. package/audit/dto/pre-check-restore.dto.d.ts +3 -0
  18. package/audit/dto/pre-check-restore.dto.js +3 -0
  19. package/audit/dto/restore-entity.dto.d.ts +3 -0
  20. package/audit/dto/restore-entity.dto.js +3 -0
  21. package/audit/entities/entity-audit-log.entity.d.ts +3 -0
  22. package/audit/entities/entity-audit-log.entity.js +3 -0
  23. package/audit/entities/entity-transaction.entity.d.ts +3 -0
  24. package/audit/entities/entity-transaction.entity.js +3 -0
  25. package/audit/entities/manual-operation-log.entity.d.ts +4 -0
  26. package/audit/entities/manual-operation-log.entity.js +4 -0
  27. package/audit/entities/operation-template.entity.d.ts +4 -0
  28. package/audit/entities/operation-template.entity.js +4 -0
  29. package/audit/enums/audit.enums.d.ts +17 -2
  30. package/audit/enums/audit.enums.js +15 -0
  31. package/audit/index.js +10 -0
  32. package/audit/interceptors/audit.interceptor.d.ts +15 -0
  33. package/audit/interceptors/audit.interceptor.js +23 -1
  34. package/audit/interfaces/audit.interfaces.d.ts +42 -0
  35. package/audit/services/audit-context.service.d.ts +15 -0
  36. package/audit/services/audit-context.service.js +15 -0
  37. package/audit/services/audit-strategy.service.d.ts +6 -0
  38. package/audit/services/audit-strategy.service.js +13 -0
  39. package/audit/services/entity-audit.service.d.ts +57 -0
  40. package/audit/services/entity-audit.service.js +91 -0
  41. package/audit/services/manual-audit-log.service.d.ts +124 -0
  42. package/audit/services/manual-audit-log.service.js +138 -0
  43. package/audit/services/multi-database.service.d.ts +12 -0
  44. package/audit/services/multi-database.service.js +12 -0
  45. package/audit/services/operation-description.service.d.ts +59 -0
  46. package/audit/services/operation-description.service.js +76 -2
  47. package/audit/services/transaction-audit.service.d.ts +30 -0
  48. package/audit/services/transaction-audit.service.js +47 -0
  49. package/audit/subscribers/entity-audit.subscriber.d.ts +15 -0
  50. package/audit/subscribers/entity-audit.subscriber.js +29 -1
  51. package/cache/cache-metrics.service.d.ts +67 -0
  52. package/cache/cache-metrics.service.js +68 -4
  53. package/cache/cache-serialization.service.d.ts +31 -0
  54. package/cache/cache-serialization.service.js +25 -0
  55. package/cache/cache.constants.d.ts +9 -0
  56. package/cache/cache.constants.js +9 -0
  57. package/cache/cache.health.d.ts +26 -0
  58. package/cache/cache.health.js +30 -0
  59. package/cache/cache.module.d.ts +86 -0
  60. package/cache/cache.module.js +71 -0
  61. package/cache/cache.service.d.ts +140 -0
  62. package/cache/cache.service.js +157 -0
  63. package/cache/cache.warmup.service.d.ts +39 -0
  64. package/cache/cache.warmup.service.js +32 -0
  65. package/cache/decorators/cache-evict.decorator.d.ts +47 -0
  66. package/cache/decorators/cache-evict.decorator.js +56 -0
  67. package/cache/decorators/cache-put.decorator.d.ts +34 -0
  68. package/cache/decorators/cache-put.decorator.js +39 -0
  69. package/cache/decorators/cacheable.decorator.d.ts +40 -0
  70. package/cache/decorators/cacheable.decorator.js +55 -0
  71. package/cache/dependencies/callback.dependency.d.ts +33 -0
  72. package/cache/dependencies/callback.dependency.js +39 -1
  73. package/cache/dependencies/chain.dependency.d.ts +28 -0
  74. package/cache/dependencies/chain.dependency.js +34 -0
  75. package/cache/dependencies/db.dependency.d.ts +45 -0
  76. package/cache/dependencies/db.dependency.js +48 -1
  77. package/cache/dependencies/file.dependency.d.ts +32 -0
  78. package/cache/dependencies/file.dependency.js +34 -0
  79. package/cache/dependencies/tag.dependency.d.ts +36 -0
  80. package/cache/dependencies/tag.dependency.js +36 -0
  81. package/cache/dependencies/time.dependency.d.ts +43 -0
  82. package/cache/dependencies/time.dependency.js +43 -0
  83. package/cache/examples/basic-usage.d.ts +15 -0
  84. package/cache/examples/basic-usage.js +62 -8
  85. package/cache/index.js +9 -0
  86. package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
  87. package/cache/interfaces/cache-options.interface.d.ts +81 -0
  88. package/cache/interfaces/cache-options.interface.js +6 -0
  89. package/cache/interfaces/cache-provider.interface.d.ts +78 -0
  90. package/cache/providers/base-cache.provider.d.ts +14 -0
  91. package/cache/providers/base-cache.provider.js +16 -0
  92. package/cache/providers/cls-cache.provider.d.ts +20 -0
  93. package/cache/providers/cls-cache.provider.js +28 -0
  94. package/cache/providers/memory-cache.provider.d.ts +23 -0
  95. package/cache/providers/memory-cache.provider.js +26 -0
  96. package/cache/providers/redis-cache.provider.d.ts +26 -0
  97. package/cache/providers/redis-cache.provider.js +29 -0
  98. package/cache/utils/dependency-manager.util.d.ts +52 -0
  99. package/cache/utils/dependency-manager.util.js +59 -0
  100. package/cache/utils/key-generator.util.d.ts +42 -0
  101. package/cache/utils/key-generator.util.js +53 -1
  102. package/common/abstract.entity.d.ts +14 -0
  103. package/common/abstract.entity.js +14 -0
  104. package/common/boilerplate.polyfill.d.ts +142 -4
  105. package/common/boilerplate.polyfill.js +24 -100
  106. package/common/dto/dto-container.d.ts +16 -0
  107. package/common/dto/dto-container.js +20 -0
  108. package/common/dto/dto-decorators.d.ts +18 -0
  109. package/common/dto/dto-decorators.js +14 -0
  110. package/common/dto/dto-extensions.d.ts +11 -0
  111. package/common/dto/dto-extensions.js +9 -0
  112. package/common/dto/dto-service-accessor.d.ts +17 -0
  113. package/common/dto/dto-service-accessor.js +18 -0
  114. package/common/dto/dto-transformer.d.ts +12 -0
  115. package/common/dto/dto-transformer.js +9 -0
  116. package/common/dto/index.js +2 -0
  117. package/common/examples/paginate-and-map.example.d.ts +6 -0
  118. package/common/examples/paginate-and-map.example.js +26 -0
  119. package/common/utils.d.ts +15 -0
  120. package/common/utils.js +15 -0
  121. package/constants/language-code.js +1 -0
  122. package/decorators/field.decorators.js +8 -1
  123. package/decorators/property.decorators.js +1 -0
  124. package/decorators/public-route.decorator.js +1 -0
  125. package/decorators/transform.decorators.d.ts +27 -0
  126. package/decorators/transform.decorators.js +29 -0
  127. package/decorators/translate.decorator.js +1 -0
  128. package/decorators/user.decorator.js +1 -0
  129. package/decorators/validator.decorators.d.ts +8 -18
  130. package/decorators/validator.decorators.js +22 -190
  131. package/filters/constraint-errors.js +1 -0
  132. package/helpers/common.helper.d.ts +13 -0
  133. package/helpers/common.helper.js +13 -0
  134. package/http-client/config/http-client.config.d.ts +15 -0
  135. package/http-client/config/http-client.config.js +25 -9
  136. package/http-client/decorators/http-client.decorators.d.ts +63 -0
  137. package/http-client/decorators/http-client.decorators.js +71 -3
  138. package/http-client/entities/http-log.entity.d.ts +229 -0
  139. package/http-client/entities/http-log.entity.js +6 -1
  140. package/http-client/errors/http-client.errors.d.ts +57 -0
  141. package/http-client/errors/http-client.errors.js +58 -0
  142. package/http-client/examples/advanced-usage.example.d.ts +41 -0
  143. package/http-client/examples/advanced-usage.example.js +68 -24
  144. package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
  145. package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
  146. package/http-client/examples/basic-usage.example.d.ts +60 -0
  147. package/http-client/examples/basic-usage.example.js +60 -0
  148. package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
  149. package/http-client/examples/multi-api-configuration.example.js +76 -5
  150. package/http-client/http-client.module.d.ts +13 -0
  151. package/http-client/http-client.module.js +19 -0
  152. package/http-client/index.js +8 -0
  153. package/http-client/interfaces/api-client-config.interface.d.ts +125 -0
  154. package/http-client/interfaces/api-client-config.interface.js +3 -0
  155. package/http-client/interfaces/http-client-config.interface.d.ts +60 -0
  156. package/http-client/services/api-client-registry.service.d.ts +57 -0
  157. package/http-client/services/api-client-registry.service.js +84 -1
  158. package/http-client/services/cache.service.d.ts +52 -0
  159. package/http-client/services/cache.service.js +72 -3
  160. package/http-client/services/circuit-breaker.service.d.ts +46 -0
  161. package/http-client/services/circuit-breaker.service.js +52 -0
  162. package/http-client/services/http-client.service.d.ts +67 -0
  163. package/http-client/services/http-client.service.js +105 -4
  164. package/http-client/services/http-log-query.service.d.ts +83 -0
  165. package/http-client/services/http-log-query.service.js +122 -1
  166. package/http-client/services/http-replay.service.d.ts +101 -0
  167. package/http-client/services/http-replay.service.js +86 -0
  168. package/http-client/services/log-cleanup.service.d.ts +63 -0
  169. package/http-client/services/log-cleanup.service.js +54 -2
  170. package/http-client/services/logging.service.d.ts +40 -0
  171. package/http-client/services/logging.service.js +53 -0
  172. package/http-client/utils/call-stack-extractor.util.d.ts +37 -0
  173. package/http-client/utils/call-stack-extractor.util.js +48 -0
  174. package/http-client/utils/context-extractor.util.d.ts +49 -0
  175. package/http-client/utils/context-extractor.util.js +52 -0
  176. package/http-client/utils/curl-generator.util.d.ts +21 -0
  177. package/http-client/utils/curl-generator.util.js +44 -3
  178. package/http-client/utils/request-id.util.d.ts +18 -0
  179. package/http-client/utils/request-id.util.js +20 -0
  180. package/http-client/utils/retry-recorder.util.d.ts +42 -0
  181. package/http-client/utils/retry-recorder.util.js +44 -0
  182. package/i18n/en_US/validation.json +2 -1
  183. package/i18n/zh_CN/validation.json +2 -1
  184. package/index.js +8 -0
  185. package/interceptors/translation-interceptor.service.js +5 -0
  186. package/package.json +1 -1
  187. package/providers/context.provider.js +2 -0
  188. package/providers/generator.provider.d.ts +4 -0
  189. package/providers/generator.provider.js +4 -0
  190. package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
  191. package/redis-lock/examples/lock-strategy.examples.js +130 -15
  192. package/redis-lock/index.js +3 -0
  193. package/redis-lock/redis-lock.decorator.d.ts +101 -0
  194. package/redis-lock/redis-lock.decorator.js +120 -0
  195. package/redis-lock/redis-lock.module.d.ts +60 -0
  196. package/redis-lock/redis-lock.module.js +46 -0
  197. package/redis-lock/redis-lock.service.d.ts +251 -0
  198. package/redis-lock/redis-lock.service.js +219 -3
  199. package/setup/bootstrap.setup.js +20 -0
  200. package/setup/mode.setup.d.ts +44 -0
  201. package/setup/mode.setup.js +44 -0
  202. package/setup/schedule.decorator.d.ts +226 -0
  203. package/setup/schedule.decorator.js +214 -1
  204. package/setup/worker.decorator.d.ts +86 -0
  205. package/setup/worker.decorator.js +88 -0
  206. package/shared/serviceRegistryModule.js +9 -1
  207. package/shared/services/api-config.service.d.ts +3 -0
  208. package/shared/services/api-config.service.js +20 -9
  209. package/validator-json/decorators.d.ts +17 -0
  210. package/validator-json/decorators.js +17 -2
  211. package/validator-json/default.d.ts +6 -0
  212. package/validator-json/default.js +30 -2
  213. package/validator-json/defaultConverters.js +1 -0
  214. package/validator-json/options.d.ts +23 -0
  215. package/validators/common-validators.d.ts +143 -0
  216. package/validators/common-validators.js +249 -0
  217. package/validators/custom-validate.examples.d.ts +96 -0
  218. package/validators/custom-validate.examples.js +400 -0
  219. package/validators/custom-validate.validator.d.ts +133 -0
  220. package/validators/custom-validate.validator.js +213 -0
  221. package/validators/index.d.ts +2 -0
  222. package/validators/index.js +2 -0
  223. package/validators/is-exists.validator.d.ts +18 -4
  224. package/validators/is-exists.validator.js +67 -6
  225. package/validators/is-unique.validator.d.ts +19 -4
  226. package/validators/is-unique.validator.js +67 -11
  227. package/validators/skip-empty.validator.d.ts +5 -0
  228. package/validators/skip-empty.validator.js +5 -0
  229. package/vault/interfaces/vault-options.interface.d.ts +9 -0
  230. package/vault/vault-config.loader.d.ts +30 -0
  231. package/vault/vault-config.loader.js +48 -1
  232. package/vault/vault-config.service.d.ts +53 -0
  233. package/vault/vault-config.service.js +57 -0
  234. package/vault/vault.module.d.ts +4 -0
  235. package/vault/vault.module.js +4 -0
  236. package/decorators/examples/validation-decorators.example.d.ts +0 -69
  237. package/decorators/examples/validation-decorators.example.js +0 -331
@@ -1,66 +1,317 @@
1
1
  import { OnModuleInit } from '@nestjs/common';
2
2
  import type Redis from 'ioredis';
3
+ /**
4
+ * Lock acquisition strategy
5
+ */
3
6
  export declare enum LockStrategy {
7
+ /**
8
+ * Skip execution if lock cannot be acquired immediately
9
+ * This is the default behavior for backward compatibility
10
+ */
4
11
  SKIP = "SKIP",
12
+ /**
13
+ * Throw an error if lock cannot be acquired
14
+ * Useful for critical operations that must have exclusive access
15
+ */
5
16
  THROW = "THROW",
17
+ /**
18
+ * Wait/block until the lock can be acquired
19
+ * Will retry indefinitely with the specified retry delay
20
+ */
6
21
  WAIT = "WAIT"
7
22
  }
8
23
  export interface LockOptions {
24
+ /**
25
+ * Lock expiration time in milliseconds
26
+ * @default 300000 (5 minutes)
27
+ */
9
28
  ttl?: number;
29
+ /**
30
+ * Maximum number of retry attempts to acquire the lock
31
+ * Only applies when strategy is SKIP or THROW
32
+ * For WAIT strategy, this is ignored (infinite retries)
33
+ * @default 0 (no retries)
34
+ */
10
35
  retryCount?: number;
36
+ /**
37
+ * Delay between retry attempts in milliseconds
38
+ * @default 100
39
+ */
11
40
  retryDelay?: number;
41
+ /**
42
+ * Custom lock key prefix
43
+ * @default 'lock'
44
+ */
12
45
  keyPrefix?: string;
46
+ /**
47
+ * Whether to throw an error if lock acquisition fails
48
+ * @deprecated Use strategy: LockStrategy.THROW instead
49
+ * @default false
50
+ */
13
51
  throwOnFailure?: boolean;
52
+ /**
53
+ * Lock acquisition strategy
54
+ * - SKIP: Skip execution if lock cannot be acquired (default)
55
+ * - THROW: Throw error if lock cannot be acquired
56
+ * - WAIT: Wait/block until lock can be acquired (indefinite retries)
57
+ * @default LockStrategy.SKIP
58
+ */
14
59
  strategy?: LockStrategy;
60
+ /**
61
+ * Maximum wait time in milliseconds when using WAIT strategy
62
+ * If set, will timeout after this duration
63
+ * @default undefined (no timeout, wait indefinitely)
64
+ */
15
65
  waitTimeout?: number;
66
+ /**
67
+ * Automatic lock extension interval in milliseconds
68
+ * If set, the lock will be automatically extended at this interval
69
+ * @default 0 (no automatic extension)
70
+ */
16
71
  autoExtend?: number;
17
72
  }
18
73
  export interface LockResult {
74
+ /**
75
+ * Whether the lock was successfully acquired
76
+ */
19
77
  acquired: boolean;
78
+ /**
79
+ * Lock value (identifier) if acquired
80
+ */
20
81
  lockValue?: string;
82
+ /**
83
+ * Error message if acquisition failed
84
+ */
21
85
  error?: string;
86
+ /**
87
+ * Timer ID for auto-extension if enabled
88
+ */
22
89
  autoExtendTimer?: NodeJS.Timeout;
23
90
  }
91
+ /**
92
+ * Redis-based distributed lock service
93
+ *
94
+ * Provides thread-safe, distributed locking mechanism using Redis.
95
+ * Supports automatic lock expiration, retries, proper lock release,
96
+ * and automatic lock extension.
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * constructor(private lockService: RedisLockService) {}
101
+ *
102
+ * async processTask() {
103
+ * const result = await this.lockService.acquireLock('task:process', { ttl: 60000 });
104
+ *
105
+ * if (result.acquired) {
106
+ * try {
107
+ * // Do work
108
+ * } finally {
109
+ * await this.lockService.releaseLock('task:process', result.lockValue);
110
+ * }
111
+ * }
112
+ * }
113
+ * ```
114
+ */
24
115
  export declare class RedisLockService implements OnModuleInit {
25
116
  private static globalInstance;
26
117
  private readonly logger;
27
118
  private redis;
28
119
  private readonly defaultOptions;
29
120
  constructor();
121
+ /**
122
+ * Get the global singleton instance
123
+ * This allows decorators to access the service without dependency injection
124
+ */
30
125
  static getGlobalInstance(): RedisLockService | null;
126
+ /**
127
+ * Get or create the global singleton instance
128
+ * If no instance exists, it will create one
129
+ */
31
130
  static getOrCreateGlobalInstance(): RedisLockService;
131
+ /**
132
+ * Set the global singleton instance
133
+ * Useful for testing or manual setup
134
+ */
32
135
  static setGlobalInstance(instance: RedisLockService): void;
33
136
  onModuleInit(): Promise<void>;
34
137
  onModuleDestroy(): Promise<void>;
138
+ /**
139
+ * Set Redis client (required for dependency injection)
140
+ * This service requires an external Redis client to function
141
+ */
35
142
  setRedisClient(redis: Redis): void;
143
+ /**
144
+ * Set default TTL for locks
145
+ */
36
146
  setDefaultTtl(ttl: number): void;
147
+ /**
148
+ * Set default key prefix for locks
149
+ */
37
150
  setDefaultKeyPrefix(prefix: string): void;
151
+ /**
152
+ * Set default retry count for lock acquisition
153
+ */
38
154
  setDefaultRetryCount(count: number): void;
155
+ /**
156
+ * Set default retry delay for lock acquisition
157
+ */
39
158
  setDefaultRetryDelay(delay: number): void;
159
+ /**
160
+ * Acquire a distributed lock
161
+ *
162
+ * @param key - Lock key (will be prefixed with 'lock:')
163
+ * @param options - Lock options
164
+ * @returns Lock acquisition result
165
+ */
40
166
  acquireLock(key: string, options?: LockOptions): Promise<LockResult>;
167
+ /**
168
+ * Release a distributed lock
169
+ *
170
+ * Uses Lua script to ensure atomic check-and-delete operation
171
+ * Only releases the lock if the value matches (prevents releasing someone else's lock)
172
+ *
173
+ * @param key - Lock key
174
+ * @param lockValue - Lock value obtained during acquisition
175
+ * @param keyPrefix - Key prefix (must match acquisition)
176
+ * @returns True if lock was released, false otherwise
177
+ */
41
178
  releaseLock(key: string, lockValue: string, keyPrefix?: string): Promise<boolean>;
179
+ /**
180
+ * Extend the expiration time of an existing lock
181
+ *
182
+ * @param key - Lock key
183
+ * @param lockValue - Lock value obtained during acquisition
184
+ * @param ttl - New TTL in milliseconds
185
+ * @param keyPrefix - Key prefix (must match acquisition)
186
+ * @returns True if lock was extended, false otherwise
187
+ */
42
188
  extendLock(key: string, lockValue: string, ttl: number, keyPrefix?: string): Promise<boolean>;
189
+ /**
190
+ * Check if a lock exists
191
+ *
192
+ * @param key - Lock key
193
+ * @param keyPrefix - Key prefix
194
+ * @returns True if lock exists, false otherwise
195
+ */
43
196
  isLocked(key: string, keyPrefix?: string): Promise<boolean>;
197
+ /**
198
+ * Execute a function with automatic lock acquisition and release
199
+ *
200
+ * @param key - Lock key
201
+ * @param fn - Function to execute while holding the lock
202
+ * @param options - Lock options
203
+ * @returns Result of the function execution, or null if lock couldn't be acquired
204
+ */
44
205
  withLock<T>(key: string, fn: () => Promise<T>, options?: LockOptions): Promise<T | null>;
206
+ /**
207
+ * Get lock information from Redis
208
+ *
209
+ * @param key - Lock key
210
+ * @param keyPrefix - Key prefix
211
+ * @returns Lock information including TTL and value
212
+ */
45
213
  getLockInfo(key: string, keyPrefix?: string): Promise<{
46
214
  value: string | null;
47
215
  ttl: number | null;
48
216
  }>;
217
+ /**
218
+ * Force release a lock (use with caution)
219
+ *
220
+ * @param key - Lock key
221
+ * @param keyPrefix - Key prefix
222
+ * @returns True if lock was released, false otherwise
223
+ */
49
224
  forceRelease(key: string, keyPrefix?: string): Promise<boolean>;
225
+ /**
226
+ * Clean up locks by pattern
227
+ * Useful for cleaning up locks after process restart or for specific services
228
+ *
229
+ * WARNING: Use with caution in production! This will forcefully delete locks.
230
+ *
231
+ * @param pattern - Lock pattern (e.g., 'MyService:*' or '*:migration:*')
232
+ * @param keyPrefix - Key prefix (default: 'lock')
233
+ * @returns Number of locks deleted
234
+ *
235
+ * @example
236
+ * ```typescript
237
+ * // Clean up all locks for MyService
238
+ * await lockService.cleanupLocksByPattern('MyService:*');
239
+ *
240
+ * // Clean up all migration locks
241
+ * await lockService.cleanupLocksByPattern('*:migration:*');
242
+ * ```
243
+ */
50
244
  cleanupLocksByPattern(pattern: string, keyPrefix?: string): Promise<number>;
245
+ /**
246
+ * Clean up locks on startup
247
+ * This method is useful for cleaning up stale locks from previous process instances
248
+ *
249
+ * WARNING: Only use this if you're sure the locks are from previous process instances!
250
+ *
251
+ * @param patterns - Array of lock patterns to clean up
252
+ * @param keyPrefix - Key prefix (default: 'lock')
253
+ * @returns Total number of locks deleted
254
+ *
255
+ * @example
256
+ * ```typescript
257
+ * // In your module's onModuleInit
258
+ * async onModuleInit() {
259
+ * // Clean up locks from this service that might be left from previous restart
260
+ * await this.lockService.cleanupOnStartup([
261
+ * 'MyService:*',
262
+ * 'AnotherService:*'
263
+ * ]);
264
+ * }
265
+ * ```
266
+ */
51
267
  cleanupOnStartup(patterns: string[], keyPrefix?: string): Promise<number>;
268
+ /**
269
+ * Health check for Redis connection
270
+ * Returns information about Redis connectivity and lock service status
271
+ *
272
+ * @returns Health check result
273
+ */
52
274
  healthCheck(): Promise<{
53
275
  healthy: boolean;
54
276
  redis: boolean;
55
277
  message: string;
56
278
  }>;
279
+ /**
280
+ * Get all active locks with optional pattern filtering
281
+ * Useful for monitoring and debugging
282
+ *
283
+ * @param pattern - Optional pattern to filter locks (e.g., 'MyService:*')
284
+ * @param keyPrefix - Key prefix (default: 'lock')
285
+ * @returns Array of active lock information
286
+ */
57
287
  getActiveLocks(pattern?: string, keyPrefix?: string): Promise<Array<{
58
288
  key: string;
59
289
  value: string | null;
60
290
  ttl: number | null;
61
291
  }>>;
292
+ /**
293
+ * Get Redis connection
294
+ * Requires external Redis client to be set
295
+ */
62
296
  private getRedis;
297
+ /**
298
+ * Generate a unique lock value
299
+ *
300
+ * @returns Unique lock identifier
301
+ */
63
302
  private generateLockValue;
303
+ /**
304
+ * Build the full Redis key for a lock
305
+ *
306
+ * @param key - Lock key
307
+ * @param prefix - Key prefix
308
+ * @returns Full Redis key
309
+ */
64
310
  private buildLockKey;
311
+ /**
312
+ * Sleep for a specified duration
313
+ *
314
+ * @param ms - Milliseconds to sleep
315
+ */
65
316
  private sleep;
66
317
  }