ioredis-toolkit 0.0.9 → 0.5.0

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 (267) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/LICENSE +1 -1
  3. package/README.md +68 -1058
  4. package/dist/cache/cache.d.ts +30 -0
  5. package/dist/cache/cache.d.ts.map +1 -0
  6. package/dist/cache/cache.js +59 -0
  7. package/dist/cache/cache.js.map +1 -0
  8. package/dist/cache/config.d.ts +12 -0
  9. package/dist/cache/config.d.ts.map +1 -0
  10. package/dist/cache/config.js +13 -0
  11. package/dist/cache/config.js.map +1 -0
  12. package/dist/cache/types.d.ts +32 -0
  13. package/dist/cache/types.d.ts.map +1 -0
  14. package/dist/cache/types.js +5 -0
  15. package/dist/cache/types.js.map +1 -0
  16. package/dist/index.d.ts +43 -51
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +32 -44
  19. package/dist/index.js.map +1 -0
  20. package/dist/lock/config.d.ts +12 -0
  21. package/dist/lock/config.d.ts.map +1 -0
  22. package/dist/lock/config.js +8 -0
  23. package/dist/lock/config.js.map +1 -0
  24. package/dist/lock/lock.d.ts +20 -0
  25. package/dist/lock/lock.d.ts.map +1 -0
  26. package/dist/lock/lock.js +44 -0
  27. package/dist/lock/lock.js.map +1 -0
  28. package/dist/lock/types.d.ts +19 -0
  29. package/dist/lock/types.d.ts.map +1 -0
  30. package/dist/lock/types.js +2 -0
  31. package/dist/lock/types.js.map +1 -0
  32. package/dist/modules-config.d.ts +3 -0
  33. package/dist/modules-config.d.ts.map +1 -0
  34. package/dist/modules-config.js +2 -0
  35. package/dist/modules-config.js.map +1 -0
  36. package/dist/pubsub/config.d.ts +11 -0
  37. package/dist/pubsub/config.d.ts.map +1 -0
  38. package/dist/pubsub/config.js +6 -0
  39. package/dist/pubsub/config.js.map +1 -0
  40. package/dist/pubsub/pubsub.d.ts +20 -0
  41. package/dist/pubsub/pubsub.d.ts.map +1 -0
  42. package/dist/pubsub/pubsub.js +54 -0
  43. package/dist/pubsub/pubsub.js.map +1 -0
  44. package/dist/pubsub/types.d.ts +24 -0
  45. package/dist/pubsub/types.d.ts.map +1 -0
  46. package/dist/pubsub/types.js +2 -0
  47. package/dist/pubsub/types.js.map +1 -0
  48. package/dist/rate-limit/config.d.ts +12 -0
  49. package/dist/rate-limit/config.d.ts.map +1 -0
  50. package/dist/rate-limit/config.js +6 -0
  51. package/dist/rate-limit/config.js.map +1 -0
  52. package/dist/rate-limit/rate-limiter.d.ts +18 -0
  53. package/dist/rate-limit/rate-limiter.d.ts.map +1 -0
  54. package/dist/rate-limit/rate-limiter.js +37 -0
  55. package/dist/rate-limit/rate-limiter.js.map +1 -0
  56. package/dist/rate-limit/types.d.ts +27 -0
  57. package/dist/rate-limit/types.d.ts.map +1 -0
  58. package/dist/rate-limit/types.js +2 -0
  59. package/dist/rate-limit/types.js.map +1 -0
  60. package/dist/redis/client-facade.d.ts +77 -0
  61. package/dist/redis/client-facade.d.ts.map +1 -0
  62. package/dist/redis/client-facade.js +102 -0
  63. package/dist/redis/client-facade.js.map +1 -0
  64. package/dist/redis/client.d.ts +10 -0
  65. package/dist/redis/client.d.ts.map +1 -0
  66. package/dist/redis/client.js +29 -0
  67. package/dist/redis/client.js.map +1 -0
  68. package/dist/redis/cluster.d.ts +7 -0
  69. package/dist/redis/cluster.d.ts.map +1 -0
  70. package/dist/redis/cluster.js +47 -0
  71. package/dist/redis/cluster.js.map +1 -0
  72. package/dist/redis/config.d.ts +39 -0
  73. package/dist/redis/config.d.ts.map +1 -0
  74. package/dist/redis/config.js +52 -0
  75. package/dist/redis/config.js.map +1 -0
  76. package/dist/redis/errors.d.ts +5 -0
  77. package/dist/redis/errors.d.ts.map +1 -0
  78. package/dist/redis/errors.js +5 -0
  79. package/dist/redis/errors.js.map +1 -0
  80. package/dist/redis/types.d.ts +135 -0
  81. package/dist/redis/types.d.ts.map +1 -0
  82. package/dist/redis/types.js +2 -0
  83. package/dist/redis/types.js.map +1 -0
  84. package/dist/redis/wrapper.d.ts +88 -0
  85. package/dist/redis/wrapper.d.ts.map +1 -0
  86. package/dist/redis/wrapper.js +206 -0
  87. package/dist/redis/wrapper.js.map +1 -0
  88. package/dist/session/config.d.ts +47 -0
  89. package/dist/session/config.d.ts.map +1 -0
  90. package/dist/session/config.js +101 -0
  91. package/dist/session/config.js.map +1 -0
  92. package/dist/session/cookie.d.ts +16 -0
  93. package/dist/session/cookie.d.ts.map +1 -0
  94. package/dist/session/cookie.js +28 -0
  95. package/dist/session/cookie.js.map +1 -0
  96. package/dist/session/errors.d.ts +56 -0
  97. package/dist/session/errors.d.ts.map +1 -0
  98. package/dist/session/errors.js +58 -0
  99. package/dist/session/errors.js.map +1 -0
  100. package/dist/session/factory.d.ts +21 -0
  101. package/dist/session/factory.d.ts.map +1 -0
  102. package/dist/session/factory.js +30 -0
  103. package/dist/session/factory.js.map +1 -0
  104. package/dist/session/health.d.ts +12 -0
  105. package/dist/session/health.d.ts.map +1 -0
  106. package/dist/session/health.js +23 -0
  107. package/dist/session/health.js.map +1 -0
  108. package/dist/session/keys.d.ts +23 -0
  109. package/dist/session/keys.d.ts.map +1 -0
  110. package/dist/session/keys.js +27 -0
  111. package/dist/session/keys.js.map +1 -0
  112. package/dist/session/manager.d.ts +34 -0
  113. package/dist/session/manager.d.ts.map +1 -0
  114. package/dist/session/manager.js +31 -0
  115. package/dist/session/manager.js.map +1 -0
  116. package/dist/session/metrics.d.ts +11 -0
  117. package/dist/session/metrics.d.ts.map +1 -0
  118. package/dist/session/metrics.js +10 -0
  119. package/dist/session/metrics.js.map +1 -0
  120. package/dist/session/repository.d.ts +49 -0
  121. package/dist/session/repository.d.ts.map +1 -0
  122. package/dist/session/repository.js +203 -0
  123. package/dist/session/repository.js.map +1 -0
  124. package/dist/session/revocation.d.ts +22 -0
  125. package/dist/session/revocation.d.ts.map +1 -0
  126. package/dist/session/revocation.js +41 -0
  127. package/dist/session/revocation.js.map +1 -0
  128. package/dist/session/script-sources.d.ts +11 -0
  129. package/dist/session/script-sources.d.ts.map +1 -0
  130. package/dist/session/script-sources.js +140 -0
  131. package/dist/session/script-sources.js.map +1 -0
  132. package/dist/session/scripts.d.ts +15 -0
  133. package/dist/session/scripts.d.ts.map +1 -0
  134. package/dist/session/scripts.js +41 -0
  135. package/dist/session/scripts.js.map +1 -0
  136. package/dist/session/serializer.d.ts +12 -0
  137. package/dist/session/serializer.d.ts.map +1 -0
  138. package/dist/session/serializer.js +77 -0
  139. package/dist/session/serializer.js.map +1 -0
  140. package/dist/session/service.d.ts +48 -0
  141. package/dist/session/service.d.ts.map +1 -0
  142. package/dist/session/service.js +235 -0
  143. package/dist/session/service.js.map +1 -0
  144. package/dist/session/token.d.ts +16 -0
  145. package/dist/session/token.d.ts.map +1 -0
  146. package/dist/session/token.js +32 -0
  147. package/dist/session/token.js.map +1 -0
  148. package/dist/session/types.d.ts +134 -0
  149. package/dist/session/types.d.ts.map +1 -0
  150. package/dist/session/types.js +2 -0
  151. package/dist/session/types.js.map +1 -0
  152. package/dist/streams/config.d.ts +12 -0
  153. package/dist/streams/config.d.ts.map +1 -0
  154. package/dist/streams/config.js +6 -0
  155. package/dist/streams/config.js.map +1 -0
  156. package/dist/streams/streams.d.ts +24 -0
  157. package/dist/streams/streams.d.ts.map +1 -0
  158. package/dist/streams/streams.js +55 -0
  159. package/dist/streams/streams.js.map +1 -0
  160. package/dist/streams/types.d.ts +32 -0
  161. package/dist/streams/types.d.ts.map +1 -0
  162. package/dist/streams/types.js +2 -0
  163. package/dist/streams/types.js.map +1 -0
  164. package/docs/ACCEPTANCE-REPORT.md +70 -0
  165. package/docs/ARCHITECTURE.md +61 -0
  166. package/docs/CAPACITY.md +33 -0
  167. package/docs/DEPLOYMENT.md +22 -0
  168. package/docs/README-API.md +15 -0
  169. package/docs/STATE-MACHINE.md +38 -0
  170. package/docs/TESTING.md +37 -0
  171. package/docs/THREAT-MODEL.md +23 -0
  172. package/docs/TYPE-SAFETY.md +34 -0
  173. package/docs/modules/cache/README.md +7 -0
  174. package/docs/modules/cache/usage.md +156 -0
  175. package/docs/modules/lock/README.md +7 -0
  176. package/docs/modules/lock/usage.md +105 -0
  177. package/docs/modules/pubsub/README.md +7 -0
  178. package/docs/modules/pubsub/usage.md +106 -0
  179. package/docs/modules/rate-limit/README.md +7 -0
  180. package/docs/modules/rate-limit/usage.md +100 -0
  181. package/docs/modules/sessions/README.md +7 -0
  182. package/docs/modules/sessions/usage.md +262 -0
  183. package/docs/modules/streams/README.md +7 -0
  184. package/docs/modules/streams/usage.md +141 -0
  185. package/package.json +50 -60
  186. package/src/scripts/cleanup-index.lua +4 -0
  187. package/src/scripts/conditional-update.lua +21 -0
  188. package/src/scripts/consume-session.lua +21 -0
  189. package/src/scripts/create-session.lua +28 -0
  190. package/src/scripts/delete.lua +2 -0
  191. package/src/scripts/destroy-user.lua +13 -0
  192. package/src/scripts/enforce-limit.lua +17 -0
  193. package/src/scripts/revoke-session.lua +13 -0
  194. package/src/scripts/rotate.lua +24 -0
  195. package/src/scripts/touch-session.lua +28 -0
  196. package/src/scripts/update-session.lua +18 -0
  197. package/dist/cache.d.ts +0 -796
  198. package/dist/cache.js +0 -1120
  199. package/dist/client.d.ts +0 -284
  200. package/dist/client.js +0 -1114
  201. package/dist/cluster-slot.d.ts +0 -4
  202. package/dist/cluster-slot.js +0 -31
  203. package/dist/cluster.d.ts +0 -79
  204. package/dist/cluster.js +0 -156
  205. package/dist/errors.d.ts +0 -30
  206. package/dist/errors.js +0 -63
  207. package/dist/health.d.ts +0 -180
  208. package/dist/health.js +0 -239
  209. package/dist/lock.d.ts +0 -248
  210. package/dist/lock.js +0 -397
  211. package/dist/logger.d.ts +0 -12
  212. package/dist/logger.js +0 -40
  213. package/dist/pubsub.d.ts +0 -423
  214. package/dist/pubsub.js +0 -537
  215. package/dist/ratelimiter.d.ts +0 -441
  216. package/dist/ratelimiter.js +0 -539
  217. package/dist/session/index.d.ts +0 -23
  218. package/dist/session/index.js +0 -16
  219. package/dist/session/revocation-store.d.ts +0 -176
  220. package/dist/session/revocation-store.js +0 -318
  221. package/dist/session/scripts/cleanup-index.lua +0 -21
  222. package/dist/session/scripts/conditional-update-encrypted.lua +0 -60
  223. package/dist/session/scripts/conditional-update.lua +0 -63
  224. package/dist/session/scripts/create.lua +0 -83
  225. package/dist/session/scripts/delete-by-user.lua +0 -29
  226. package/dist/session/scripts/delete.lua +0 -15
  227. package/dist/session/scripts/enforce-limit.lua +0 -38
  228. package/dist/session/scripts/revoke.lua +0 -61
  229. package/dist/session/scripts/rotate-encrypted.lua +0 -110
  230. package/dist/session/scripts/rotate.lua +0 -122
  231. package/dist/session/scripts/touch-encrypted.lua +0 -89
  232. package/dist/session/scripts/touch.lua +0 -72
  233. package/dist/session/scripts/validate.lua +0 -90
  234. package/dist/session/session-circuit-breaker.d.ts +0 -42
  235. package/dist/session/session-circuit-breaker.js +0 -129
  236. package/dist/session/session-config.d.ts +0 -335
  237. package/dist/session/session-config.js +0 -162
  238. package/dist/session/session-cookie.d.ts +0 -72
  239. package/dist/session/session-cookie.js +0 -101
  240. package/dist/session/session-encryption.d.ts +0 -87
  241. package/dist/session/session-encryption.js +0 -139
  242. package/dist/session/session-errors.d.ts +0 -85
  243. package/dist/session/session-errors.js +0 -145
  244. package/dist/session/session-health.d.ts +0 -38
  245. package/dist/session/session-health.js +0 -60
  246. package/dist/session/session-keys.d.ts +0 -51
  247. package/dist/session/session-keys.js +0 -113
  248. package/dist/session/session-manager.d.ts +0 -73
  249. package/dist/session/session-manager.js +0 -94
  250. package/dist/session/session-metrics.d.ts +0 -33
  251. package/dist/session/session-metrics.js +0 -112
  252. package/dist/session/session-repository.d.ts +0 -161
  253. package/dist/session/session-repository.js +0 -683
  254. package/dist/session/session-scripts.d.ts +0 -36
  255. package/dist/session/session-scripts.js +0 -130
  256. package/dist/session/session-serializer.d.ts +0 -42
  257. package/dist/session/session-serializer.js +0 -248
  258. package/dist/session/session-service.d.ts +0 -104
  259. package/dist/session/session-service.js +0 -611
  260. package/dist/session/session-token.d.ts +0 -38
  261. package/dist/session/session-token.js +0 -86
  262. package/dist/session/session-types.d.ts +0 -253
  263. package/dist/session/session-types.js +0 -16
  264. package/dist/types.d.ts +0 -924
  265. package/dist/types.js +0 -151
  266. package/dist/utils/deepmerge.d.ts +0 -9
  267. package/dist/utils/deepmerge.js +0 -61
package/dist/types.d.ts DELETED
@@ -1,924 +0,0 @@
1
- import type { Redis as RedisType } from "ioredis";
2
- import { z } from "zod";
3
- import type { SessionManagerOptions } from "./session/session-manager.js";
4
- /**
5
- * Information about a distributed lock.
6
- */
7
- export type LockInfo = {
8
- /** Whether the lock is currently held. */
9
- locked: boolean;
10
- /** Remaining TTL in seconds (when held and TTL set). */
11
- ttl?: number;
12
- /** Unique owner id of the lock. */
13
- lockId?: string;
14
- };
15
- /**
16
- * Options for the distributed lock.
17
- */
18
- export type DistributedLockOptions = {
19
- /** Lock TTL in milliseconds. Default: `30000`. */
20
- ttl?: number;
21
- /** Number of acquisition attempts. Default: `3`. */
22
- retryCount?: number;
23
- /** Base delay between retries in ms (grows exponentially). Default: `200`. */
24
- retryDelay?: number;
25
- };
26
- export declare const DistributedLockOptionsSchema: z.ZodObject<{
27
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
28
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
29
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
30
- }, z.core.$strip>;
31
- export type DistributedLockInputOptions = z.input<typeof DistributedLockOptionsSchema>;
32
- export type CacheOptions = {
33
- /**
34
- * TTL in seconds.
35
- *
36
- * Falls back to the cache's `defaultTTL`.
37
- */
38
- ttl?: number;
39
- /**
40
- * Enable/disable compression.
41
- *
42
- * Default: true.
43
- */
44
- compress?: boolean;
45
- /**
46
- * Namespace prefix.
47
- */
48
- namespace?: string;
49
- };
50
- export declare const CacheOptionsSchema: z.ZodObject<{
51
- defaultTTL: z.ZodDefault<z.ZodNumber>;
52
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
53
- namespace: z.ZodDefault<z.ZodString>;
54
- }, z.core.$strip>;
55
- export type CacheInputConfig = z.input<typeof CacheOptionsSchema>;
56
- export type CacheStats = {
57
- namespace: string;
58
- connectionStatus: ConnectionStatus;
59
- };
60
- export declare const RateLimitAlgorithmSchema: z.ZodEnum<{
61
- fixed: "fixed";
62
- sliding: "sliding";
63
- }>;
64
- export declare const RateLimitOptionsSchema: z.ZodObject<{
65
- limit: z.ZodDefault<z.ZodNumber>;
66
- duration: z.ZodDefault<z.ZodNumber>;
67
- algorithm: z.ZodDefault<z.ZodEnum<{
68
- fixed: "fixed";
69
- sliding: "sliding";
70
- }>>;
71
- namespace: z.ZodDefault<z.ZodString>;
72
- }, z.core.$strip>;
73
- /**
74
- * User-supplied rate-limit configuration.
75
- *
76
- * Defaults have not necessarily been materialized yet.
77
- */
78
- export type RateLimitOptionsInput = z.input<typeof RateLimitOptionsSchema>;
79
- /**
80
- * Fully normalized rate-limit configuration.
81
- *
82
- * All properties are guaranteed to exist after parsing.
83
- */
84
- export type RateLimitOptions = z.output<typeof RateLimitOptionsSchema>;
85
- export declare const RedisModeSchema: z.ZodEnum<{
86
- standalone: "standalone";
87
- sentinel: "sentinel";
88
- cluster: "cluster";
89
- }>;
90
- export type RedisMode = z.infer<typeof RedisModeSchema>;
91
- export declare const RedisNodeSchema: z.ZodObject<{
92
- host: z.ZodString;
93
- port: z.ZodNumber;
94
- }, z.core.$strict>;
95
- export type RedisNode = z.output<typeof RedisNodeSchema>;
96
- export declare const RedisTlsOptionsSchema: z.ZodObject<{
97
- ca: z.ZodOptional<z.ZodString>;
98
- cert: z.ZodOptional<z.ZodString>;
99
- key: z.ZodOptional<z.ZodString>;
100
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
101
- }, z.core.$strict>;
102
- export type RedisTlsOptionsInput = z.input<typeof RedisTlsOptionsSchema>;
103
- export type RedisTlsOptions = z.output<typeof RedisTlsOptionsSchema>;
104
- export declare const SessionOptionsSchema: z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>;
105
- export type SessionOptionsInput = z.input<typeof SessionOptionsSchema>;
106
- export type SessionOptions = z.output<typeof SessionOptionsSchema>;
107
- /**
108
- * Configuration shared by all Redis topologies.
109
- *
110
- * IMPORTANT:
111
- * - This schema describes the user-facing input.
112
- * - `.default()` makes the property optional on input while guaranteeing
113
- * the value exists on output.
114
- */
115
- export declare const BaseRedisConfigSchema: z.ZodObject<{
116
- password: z.ZodOptional<z.ZodString>;
117
- username: z.ZodOptional<z.ZodString>;
118
- database: z.ZodDefault<z.ZodNumber>;
119
- tls: z.ZodDefault<z.ZodBoolean>;
120
- tlsOptions: z.ZodOptional<z.ZodObject<{
121
- ca: z.ZodOptional<z.ZodString>;
122
- cert: z.ZodOptional<z.ZodString>;
123
- key: z.ZodOptional<z.ZodString>;
124
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
125
- }, z.core.$strict>>;
126
- maxRetries: z.ZodDefault<z.ZodNumber>;
127
- retryDelay: z.ZodDefault<z.ZodNumber>;
128
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
129
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
130
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
131
- lockOptions: z.ZodOptional<z.ZodObject<{
132
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
133
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
134
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
135
- }, z.core.$strip>>;
136
- cacheOptions: z.ZodOptional<z.ZodObject<{
137
- defaultTTL: z.ZodDefault<z.ZodNumber>;
138
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
139
- namespace: z.ZodDefault<z.ZodString>;
140
- }, z.core.$strip>>;
141
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
142
- rateLimit: z.ZodOptional<z.ZodObject<{
143
- limit: z.ZodDefault<z.ZodNumber>;
144
- duration: z.ZodDefault<z.ZodNumber>;
145
- algorithm: z.ZodDefault<z.ZodEnum<{
146
- fixed: "fixed";
147
- sliding: "sliding";
148
- }>>;
149
- namespace: z.ZodDefault<z.ZodString>;
150
- }, z.core.$strip>>;
151
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
152
- }, z.core.$strict>;
153
- export type RedisCommonConfigInput = z.input<typeof BaseRedisConfigSchema>;
154
- export type RedisCommonConfig = z.output<typeof BaseRedisConfigSchema>;
155
- /**
156
- * Standalone Redis configuration.
157
- *
158
- * `mode` is optional on input because standalone is the default topology.
159
- */
160
- export declare const StandaloneRedisConfigSchema: z.ZodObject<{
161
- password: z.ZodOptional<z.ZodString>;
162
- username: z.ZodOptional<z.ZodString>;
163
- database: z.ZodDefault<z.ZodNumber>;
164
- tls: z.ZodDefault<z.ZodBoolean>;
165
- tlsOptions: z.ZodOptional<z.ZodObject<{
166
- ca: z.ZodOptional<z.ZodString>;
167
- cert: z.ZodOptional<z.ZodString>;
168
- key: z.ZodOptional<z.ZodString>;
169
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
170
- }, z.core.$strict>>;
171
- maxRetries: z.ZodDefault<z.ZodNumber>;
172
- retryDelay: z.ZodDefault<z.ZodNumber>;
173
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
174
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
175
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
176
- lockOptions: z.ZodOptional<z.ZodObject<{
177
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
178
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
179
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
180
- }, z.core.$strip>>;
181
- cacheOptions: z.ZodOptional<z.ZodObject<{
182
- defaultTTL: z.ZodDefault<z.ZodNumber>;
183
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
184
- namespace: z.ZodDefault<z.ZodString>;
185
- }, z.core.$strip>>;
186
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
187
- rateLimit: z.ZodOptional<z.ZodObject<{
188
- limit: z.ZodDefault<z.ZodNumber>;
189
- duration: z.ZodDefault<z.ZodNumber>;
190
- algorithm: z.ZodDefault<z.ZodEnum<{
191
- fixed: "fixed";
192
- sliding: "sliding";
193
- }>>;
194
- namespace: z.ZodDefault<z.ZodString>;
195
- }, z.core.$strip>>;
196
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
197
- mode: z.ZodOptional<z.ZodLiteral<"standalone">>;
198
- host: z.ZodDefault<z.ZodString>;
199
- port: z.ZodDefault<z.ZodNumber>;
200
- url: z.ZodOptional<z.ZodURL>;
201
- }, z.core.$strict>;
202
- export type StandaloneRedisConfigInput = z.input<typeof StandaloneRedisConfigSchema>;
203
- export type StandaloneRedisConfig = Omit<z.output<typeof StandaloneRedisConfigSchema>, "mode"> & {
204
- mode: "standalone";
205
- };
206
- export declare const SentinelRedisConfigSchema: z.ZodObject<{
207
- password: z.ZodOptional<z.ZodString>;
208
- username: z.ZodOptional<z.ZodString>;
209
- database: z.ZodDefault<z.ZodNumber>;
210
- tls: z.ZodDefault<z.ZodBoolean>;
211
- tlsOptions: z.ZodOptional<z.ZodObject<{
212
- ca: z.ZodOptional<z.ZodString>;
213
- cert: z.ZodOptional<z.ZodString>;
214
- key: z.ZodOptional<z.ZodString>;
215
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
216
- }, z.core.$strict>>;
217
- maxRetries: z.ZodDefault<z.ZodNumber>;
218
- retryDelay: z.ZodDefault<z.ZodNumber>;
219
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
220
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
221
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
222
- lockOptions: z.ZodOptional<z.ZodObject<{
223
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
224
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
225
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
226
- }, z.core.$strip>>;
227
- cacheOptions: z.ZodOptional<z.ZodObject<{
228
- defaultTTL: z.ZodDefault<z.ZodNumber>;
229
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
230
- namespace: z.ZodDefault<z.ZodString>;
231
- }, z.core.$strip>>;
232
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
233
- rateLimit: z.ZodOptional<z.ZodObject<{
234
- limit: z.ZodDefault<z.ZodNumber>;
235
- duration: z.ZodDefault<z.ZodNumber>;
236
- algorithm: z.ZodDefault<z.ZodEnum<{
237
- fixed: "fixed";
238
- sliding: "sliding";
239
- }>>;
240
- namespace: z.ZodDefault<z.ZodString>;
241
- }, z.core.$strip>>;
242
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
243
- mode: z.ZodLiteral<"sentinel">;
244
- sentinelNodes: z.ZodArray<z.ZodObject<{
245
- host: z.ZodString;
246
- port: z.ZodNumber;
247
- }, z.core.$strict>>;
248
- sentinelMasterName: z.ZodString;
249
- }, z.core.$strict>;
250
- export type SentinelRedisConfigInput = z.input<typeof SentinelRedisConfigSchema>;
251
- export type SentinelRedisConfig = z.output<typeof SentinelRedisConfigSchema>;
252
- /**
253
- * Redis Cluster only supports database 0.
254
- */
255
- export declare const ClusterRedisConfigSchema: z.ZodObject<{
256
- password: z.ZodOptional<z.ZodString>;
257
- username: z.ZodOptional<z.ZodString>;
258
- tls: z.ZodDefault<z.ZodBoolean>;
259
- tlsOptions: z.ZodOptional<z.ZodObject<{
260
- ca: z.ZodOptional<z.ZodString>;
261
- cert: z.ZodOptional<z.ZodString>;
262
- key: z.ZodOptional<z.ZodString>;
263
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
264
- }, z.core.$strict>>;
265
- maxRetries: z.ZodDefault<z.ZodNumber>;
266
- retryDelay: z.ZodDefault<z.ZodNumber>;
267
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
268
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
269
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
270
- lockOptions: z.ZodOptional<z.ZodObject<{
271
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
272
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
273
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
274
- }, z.core.$strip>>;
275
- cacheOptions: z.ZodOptional<z.ZodObject<{
276
- defaultTTL: z.ZodDefault<z.ZodNumber>;
277
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
278
- namespace: z.ZodDefault<z.ZodString>;
279
- }, z.core.$strip>>;
280
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
281
- rateLimit: z.ZodOptional<z.ZodObject<{
282
- limit: z.ZodDefault<z.ZodNumber>;
283
- duration: z.ZodDefault<z.ZodNumber>;
284
- algorithm: z.ZodDefault<z.ZodEnum<{
285
- fixed: "fixed";
286
- sliding: "sliding";
287
- }>>;
288
- namespace: z.ZodDefault<z.ZodString>;
289
- }, z.core.$strip>>;
290
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
291
- mode: z.ZodLiteral<"cluster">;
292
- clusterNodes: z.ZodArray<z.ZodObject<{
293
- host: z.ZodString;
294
- port: z.ZodNumber;
295
- }, z.core.$strict>>;
296
- database: z.ZodDefault<z.ZodLiteral<0>>;
297
- }, z.core.$strict>;
298
- export type ClusterRedisConfigInput = z.input<typeof ClusterRedisConfigSchema>;
299
- export type ClusterRedisConfig = z.output<typeof ClusterRedisConfigSchema>;
300
- /**
301
- * Raw configuration union.
302
- *
303
- * This is intentionally a normal union rather than a discriminated union
304
- * because standalone allows `mode` to be omitted.
305
- */
306
- export declare const RedisConfigInputSchema: z.ZodUnion<readonly [z.ZodObject<{
307
- password: z.ZodOptional<z.ZodString>;
308
- username: z.ZodOptional<z.ZodString>;
309
- database: z.ZodDefault<z.ZodNumber>;
310
- tls: z.ZodDefault<z.ZodBoolean>;
311
- tlsOptions: z.ZodOptional<z.ZodObject<{
312
- ca: z.ZodOptional<z.ZodString>;
313
- cert: z.ZodOptional<z.ZodString>;
314
- key: z.ZodOptional<z.ZodString>;
315
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
316
- }, z.core.$strict>>;
317
- maxRetries: z.ZodDefault<z.ZodNumber>;
318
- retryDelay: z.ZodDefault<z.ZodNumber>;
319
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
320
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
321
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
322
- lockOptions: z.ZodOptional<z.ZodObject<{
323
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
324
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
325
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
326
- }, z.core.$strip>>;
327
- cacheOptions: z.ZodOptional<z.ZodObject<{
328
- defaultTTL: z.ZodDefault<z.ZodNumber>;
329
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
330
- namespace: z.ZodDefault<z.ZodString>;
331
- }, z.core.$strip>>;
332
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
333
- rateLimit: z.ZodOptional<z.ZodObject<{
334
- limit: z.ZodDefault<z.ZodNumber>;
335
- duration: z.ZodDefault<z.ZodNumber>;
336
- algorithm: z.ZodDefault<z.ZodEnum<{
337
- fixed: "fixed";
338
- sliding: "sliding";
339
- }>>;
340
- namespace: z.ZodDefault<z.ZodString>;
341
- }, z.core.$strip>>;
342
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
343
- mode: z.ZodOptional<z.ZodLiteral<"standalone">>;
344
- host: z.ZodDefault<z.ZodString>;
345
- port: z.ZodDefault<z.ZodNumber>;
346
- url: z.ZodOptional<z.ZodURL>;
347
- }, z.core.$strict>, z.ZodObject<{
348
- password: z.ZodOptional<z.ZodString>;
349
- username: z.ZodOptional<z.ZodString>;
350
- database: z.ZodDefault<z.ZodNumber>;
351
- tls: z.ZodDefault<z.ZodBoolean>;
352
- tlsOptions: z.ZodOptional<z.ZodObject<{
353
- ca: z.ZodOptional<z.ZodString>;
354
- cert: z.ZodOptional<z.ZodString>;
355
- key: z.ZodOptional<z.ZodString>;
356
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
357
- }, z.core.$strict>>;
358
- maxRetries: z.ZodDefault<z.ZodNumber>;
359
- retryDelay: z.ZodDefault<z.ZodNumber>;
360
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
361
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
362
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
363
- lockOptions: z.ZodOptional<z.ZodObject<{
364
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
365
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
366
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
367
- }, z.core.$strip>>;
368
- cacheOptions: z.ZodOptional<z.ZodObject<{
369
- defaultTTL: z.ZodDefault<z.ZodNumber>;
370
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
371
- namespace: z.ZodDefault<z.ZodString>;
372
- }, z.core.$strip>>;
373
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
374
- rateLimit: z.ZodOptional<z.ZodObject<{
375
- limit: z.ZodDefault<z.ZodNumber>;
376
- duration: z.ZodDefault<z.ZodNumber>;
377
- algorithm: z.ZodDefault<z.ZodEnum<{
378
- fixed: "fixed";
379
- sliding: "sliding";
380
- }>>;
381
- namespace: z.ZodDefault<z.ZodString>;
382
- }, z.core.$strip>>;
383
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
384
- mode: z.ZodLiteral<"sentinel">;
385
- sentinelNodes: z.ZodArray<z.ZodObject<{
386
- host: z.ZodString;
387
- port: z.ZodNumber;
388
- }, z.core.$strict>>;
389
- sentinelMasterName: z.ZodString;
390
- }, z.core.$strict>, z.ZodObject<{
391
- password: z.ZodOptional<z.ZodString>;
392
- username: z.ZodOptional<z.ZodString>;
393
- tls: z.ZodDefault<z.ZodBoolean>;
394
- tlsOptions: z.ZodOptional<z.ZodObject<{
395
- ca: z.ZodOptional<z.ZodString>;
396
- cert: z.ZodOptional<z.ZodString>;
397
- key: z.ZodOptional<z.ZodString>;
398
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
399
- }, z.core.$strict>>;
400
- maxRetries: z.ZodDefault<z.ZodNumber>;
401
- retryDelay: z.ZodDefault<z.ZodNumber>;
402
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
403
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
404
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
405
- lockOptions: z.ZodOptional<z.ZodObject<{
406
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
407
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
408
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
409
- }, z.core.$strip>>;
410
- cacheOptions: z.ZodOptional<z.ZodObject<{
411
- defaultTTL: z.ZodDefault<z.ZodNumber>;
412
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
413
- namespace: z.ZodDefault<z.ZodString>;
414
- }, z.core.$strip>>;
415
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
416
- rateLimit: z.ZodOptional<z.ZodObject<{
417
- limit: z.ZodDefault<z.ZodNumber>;
418
- duration: z.ZodDefault<z.ZodNumber>;
419
- algorithm: z.ZodDefault<z.ZodEnum<{
420
- fixed: "fixed";
421
- sliding: "sliding";
422
- }>>;
423
- namespace: z.ZodDefault<z.ZodString>;
424
- }, z.core.$strip>>;
425
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
426
- mode: z.ZodLiteral<"cluster">;
427
- clusterNodes: z.ZodArray<z.ZodObject<{
428
- host: z.ZodString;
429
- port: z.ZodNumber;
430
- }, z.core.$strict>>;
431
- database: z.ZodDefault<z.ZodLiteral<0>>;
432
- }, z.core.$strict>]>;
433
- /**
434
- * User-facing configuration.
435
- *
436
- * This represents what callers are allowed to provide.
437
- */
438
- export type RedisConfigInput = z.input<typeof RedisConfigInputSchema>;
439
- /**
440
- * Normalized configuration.
441
- *
442
- * After parsing:
443
- *
444
- * - standalone.mode === "standalone"
445
- * - sentinel.mode === "sentinel"
446
- * - cluster.mode === "cluster"
447
- * - defaults have been materialized
448
- */
449
- export declare const RedisConfigSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
450
- password: z.ZodOptional<z.ZodString>;
451
- username: z.ZodOptional<z.ZodString>;
452
- database: z.ZodDefault<z.ZodNumber>;
453
- tls: z.ZodDefault<z.ZodBoolean>;
454
- tlsOptions: z.ZodOptional<z.ZodObject<{
455
- ca: z.ZodOptional<z.ZodString>;
456
- cert: z.ZodOptional<z.ZodString>;
457
- key: z.ZodOptional<z.ZodString>;
458
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
459
- }, z.core.$strict>>;
460
- maxRetries: z.ZodDefault<z.ZodNumber>;
461
- retryDelay: z.ZodDefault<z.ZodNumber>;
462
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
463
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
464
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
465
- lockOptions: z.ZodOptional<z.ZodObject<{
466
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
467
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
468
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
469
- }, z.core.$strip>>;
470
- cacheOptions: z.ZodOptional<z.ZodObject<{
471
- defaultTTL: z.ZodDefault<z.ZodNumber>;
472
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
473
- namespace: z.ZodDefault<z.ZodString>;
474
- }, z.core.$strip>>;
475
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
476
- rateLimit: z.ZodOptional<z.ZodObject<{
477
- limit: z.ZodDefault<z.ZodNumber>;
478
- duration: z.ZodDefault<z.ZodNumber>;
479
- algorithm: z.ZodDefault<z.ZodEnum<{
480
- fixed: "fixed";
481
- sliding: "sliding";
482
- }>>;
483
- namespace: z.ZodDefault<z.ZodString>;
484
- }, z.core.$strip>>;
485
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
486
- mode: z.ZodOptional<z.ZodLiteral<"standalone">>;
487
- host: z.ZodDefault<z.ZodString>;
488
- port: z.ZodDefault<z.ZodNumber>;
489
- url: z.ZodOptional<z.ZodURL>;
490
- }, z.core.$strict>, z.ZodObject<{
491
- password: z.ZodOptional<z.ZodString>;
492
- username: z.ZodOptional<z.ZodString>;
493
- database: z.ZodDefault<z.ZodNumber>;
494
- tls: z.ZodDefault<z.ZodBoolean>;
495
- tlsOptions: z.ZodOptional<z.ZodObject<{
496
- ca: z.ZodOptional<z.ZodString>;
497
- cert: z.ZodOptional<z.ZodString>;
498
- key: z.ZodOptional<z.ZodString>;
499
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
500
- }, z.core.$strict>>;
501
- maxRetries: z.ZodDefault<z.ZodNumber>;
502
- retryDelay: z.ZodDefault<z.ZodNumber>;
503
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
504
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
505
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
506
- lockOptions: z.ZodOptional<z.ZodObject<{
507
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
508
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
509
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
510
- }, z.core.$strip>>;
511
- cacheOptions: z.ZodOptional<z.ZodObject<{
512
- defaultTTL: z.ZodDefault<z.ZodNumber>;
513
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
514
- namespace: z.ZodDefault<z.ZodString>;
515
- }, z.core.$strip>>;
516
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
517
- rateLimit: z.ZodOptional<z.ZodObject<{
518
- limit: z.ZodDefault<z.ZodNumber>;
519
- duration: z.ZodDefault<z.ZodNumber>;
520
- algorithm: z.ZodDefault<z.ZodEnum<{
521
- fixed: "fixed";
522
- sliding: "sliding";
523
- }>>;
524
- namespace: z.ZodDefault<z.ZodString>;
525
- }, z.core.$strip>>;
526
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
527
- mode: z.ZodLiteral<"sentinel">;
528
- sentinelNodes: z.ZodArray<z.ZodObject<{
529
- host: z.ZodString;
530
- port: z.ZodNumber;
531
- }, z.core.$strict>>;
532
- sentinelMasterName: z.ZodString;
533
- }, z.core.$strict>, z.ZodObject<{
534
- password: z.ZodOptional<z.ZodString>;
535
- username: z.ZodOptional<z.ZodString>;
536
- tls: z.ZodDefault<z.ZodBoolean>;
537
- tlsOptions: z.ZodOptional<z.ZodObject<{
538
- ca: z.ZodOptional<z.ZodString>;
539
- cert: z.ZodOptional<z.ZodString>;
540
- key: z.ZodOptional<z.ZodString>;
541
- rejectUnauthorized: z.ZodDefault<z.ZodBoolean>;
542
- }, z.core.$strict>>;
543
- maxRetries: z.ZodDefault<z.ZodNumber>;
544
- retryDelay: z.ZodDefault<z.ZodNumber>;
545
- connectionTimeout: z.ZodDefault<z.ZodNumber>;
546
- maxFanOutConcurrency: z.ZodDefault<z.ZodNumber>;
547
- maxBatchSize: z.ZodDefault<z.ZodNumber>;
548
- lockOptions: z.ZodOptional<z.ZodObject<{
549
- ttl: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
550
- retryCount: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
551
- retryDelay: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
552
- }, z.core.$strip>>;
553
- cacheOptions: z.ZodOptional<z.ZodObject<{
554
- defaultTTL: z.ZodDefault<z.ZodNumber>;
555
- compressionThreshold: z.ZodDefault<z.ZodNumber>;
556
- namespace: z.ZodDefault<z.ZodString>;
557
- }, z.core.$strip>>;
558
- slowCommandThreshold: z.ZodDefault<z.ZodNumber>;
559
- rateLimit: z.ZodOptional<z.ZodObject<{
560
- limit: z.ZodDefault<z.ZodNumber>;
561
- duration: z.ZodDefault<z.ZodNumber>;
562
- algorithm: z.ZodDefault<z.ZodEnum<{
563
- fixed: "fixed";
564
- sliding: "sliding";
565
- }>>;
566
- namespace: z.ZodDefault<z.ZodString>;
567
- }, z.core.$strip>>;
568
- sessionOptions: z.ZodOptional<z.ZodCustom<Partial<SessionManagerOptions>, Partial<SessionManagerOptions>>>;
569
- mode: z.ZodLiteral<"cluster">;
570
- clusterNodes: z.ZodArray<z.ZodObject<{
571
- host: z.ZodString;
572
- port: z.ZodNumber;
573
- }, z.core.$strict>>;
574
- database: z.ZodDefault<z.ZodLiteral<0>>;
575
- }, z.core.$strict>]>, z.ZodTransform<{
576
- database: number;
577
- tls: boolean;
578
- maxRetries: number;
579
- retryDelay: number;
580
- connectionTimeout: number;
581
- maxFanOutConcurrency: number;
582
- maxBatchSize: number;
583
- slowCommandThreshold: number;
584
- mode: "sentinel";
585
- sentinelNodes: {
586
- host: string;
587
- port: number;
588
- }[];
589
- sentinelMasterName: string;
590
- password?: string | undefined;
591
- username?: string | undefined;
592
- tlsOptions?: {
593
- rejectUnauthorized: boolean;
594
- ca?: string | undefined;
595
- cert?: string | undefined;
596
- key?: string | undefined;
597
- } | undefined;
598
- lockOptions?: {
599
- ttl: number;
600
- retryCount: number;
601
- retryDelay: number;
602
- } | undefined;
603
- cacheOptions?: {
604
- defaultTTL: number;
605
- compressionThreshold: number;
606
- namespace: string;
607
- } | undefined;
608
- rateLimit?: {
609
- limit: number;
610
- duration: number;
611
- algorithm: "fixed" | "sliding";
612
- namespace: string;
613
- } | undefined;
614
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
615
- } | {
616
- tls: boolean;
617
- maxRetries: number;
618
- retryDelay: number;
619
- connectionTimeout: number;
620
- maxFanOutConcurrency: number;
621
- maxBatchSize: number;
622
- slowCommandThreshold: number;
623
- mode: "cluster";
624
- clusterNodes: {
625
- host: string;
626
- port: number;
627
- }[];
628
- database: 0;
629
- password?: string | undefined;
630
- username?: string | undefined;
631
- tlsOptions?: {
632
- rejectUnauthorized: boolean;
633
- ca?: string | undefined;
634
- cert?: string | undefined;
635
- key?: string | undefined;
636
- } | undefined;
637
- lockOptions?: {
638
- ttl: number;
639
- retryCount: number;
640
- retryDelay: number;
641
- } | undefined;
642
- cacheOptions?: {
643
- defaultTTL: number;
644
- compressionThreshold: number;
645
- namespace: string;
646
- } | undefined;
647
- rateLimit?: {
648
- limit: number;
649
- duration: number;
650
- algorithm: "fixed" | "sliding";
651
- namespace: string;
652
- } | undefined;
653
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
654
- } | {
655
- mode: "standalone";
656
- database: number;
657
- tls: boolean;
658
- maxRetries: number;
659
- retryDelay: number;
660
- connectionTimeout: number;
661
- maxFanOutConcurrency: number;
662
- maxBatchSize: number;
663
- slowCommandThreshold: number;
664
- host: string;
665
- port: number;
666
- password?: string | undefined;
667
- username?: string | undefined;
668
- tlsOptions?: {
669
- rejectUnauthorized: boolean;
670
- ca?: string | undefined;
671
- cert?: string | undefined;
672
- key?: string | undefined;
673
- } | undefined;
674
- lockOptions?: {
675
- ttl: number;
676
- retryCount: number;
677
- retryDelay: number;
678
- } | undefined;
679
- cacheOptions?: {
680
- defaultTTL: number;
681
- compressionThreshold: number;
682
- namespace: string;
683
- } | undefined;
684
- rateLimit?: {
685
- limit: number;
686
- duration: number;
687
- algorithm: "fixed" | "sliding";
688
- namespace: string;
689
- } | undefined;
690
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
691
- url?: string | undefined;
692
- }, {
693
- database: number;
694
- tls: boolean;
695
- maxRetries: number;
696
- retryDelay: number;
697
- connectionTimeout: number;
698
- maxFanOutConcurrency: number;
699
- maxBatchSize: number;
700
- slowCommandThreshold: number;
701
- host: string;
702
- port: number;
703
- password?: string | undefined;
704
- username?: string | undefined;
705
- tlsOptions?: {
706
- rejectUnauthorized: boolean;
707
- ca?: string | undefined;
708
- cert?: string | undefined;
709
- key?: string | undefined;
710
- } | undefined;
711
- lockOptions?: {
712
- ttl: number;
713
- retryCount: number;
714
- retryDelay: number;
715
- } | undefined;
716
- cacheOptions?: {
717
- defaultTTL: number;
718
- compressionThreshold: number;
719
- namespace: string;
720
- } | undefined;
721
- rateLimit?: {
722
- limit: number;
723
- duration: number;
724
- algorithm: "fixed" | "sliding";
725
- namespace: string;
726
- } | undefined;
727
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
728
- mode?: "standalone" | undefined;
729
- url?: string | undefined;
730
- } | {
731
- database: number;
732
- tls: boolean;
733
- maxRetries: number;
734
- retryDelay: number;
735
- connectionTimeout: number;
736
- maxFanOutConcurrency: number;
737
- maxBatchSize: number;
738
- slowCommandThreshold: number;
739
- mode: "sentinel";
740
- sentinelNodes: {
741
- host: string;
742
- port: number;
743
- }[];
744
- sentinelMasterName: string;
745
- password?: string | undefined;
746
- username?: string | undefined;
747
- tlsOptions?: {
748
- rejectUnauthorized: boolean;
749
- ca?: string | undefined;
750
- cert?: string | undefined;
751
- key?: string | undefined;
752
- } | undefined;
753
- lockOptions?: {
754
- ttl: number;
755
- retryCount: number;
756
- retryDelay: number;
757
- } | undefined;
758
- cacheOptions?: {
759
- defaultTTL: number;
760
- compressionThreshold: number;
761
- namespace: string;
762
- } | undefined;
763
- rateLimit?: {
764
- limit: number;
765
- duration: number;
766
- algorithm: "fixed" | "sliding";
767
- namespace: string;
768
- } | undefined;
769
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
770
- } | {
771
- tls: boolean;
772
- maxRetries: number;
773
- retryDelay: number;
774
- connectionTimeout: number;
775
- maxFanOutConcurrency: number;
776
- maxBatchSize: number;
777
- slowCommandThreshold: number;
778
- mode: "cluster";
779
- clusterNodes: {
780
- host: string;
781
- port: number;
782
- }[];
783
- database: 0;
784
- password?: string | undefined;
785
- username?: string | undefined;
786
- tlsOptions?: {
787
- rejectUnauthorized: boolean;
788
- ca?: string | undefined;
789
- cert?: string | undefined;
790
- key?: string | undefined;
791
- } | undefined;
792
- lockOptions?: {
793
- ttl: number;
794
- retryCount: number;
795
- retryDelay: number;
796
- } | undefined;
797
- cacheOptions?: {
798
- defaultTTL: number;
799
- compressionThreshold: number;
800
- namespace: string;
801
- } | undefined;
802
- rateLimit?: {
803
- limit: number;
804
- duration: number;
805
- algorithm: "fixed" | "sliding";
806
- namespace: string;
807
- } | undefined;
808
- sessionOptions?: Partial<SessionManagerOptions> | undefined;
809
- }>>;
810
- export type RedisConfig = z.output<typeof RedisConfigSchema>;
811
- export type RedisConfigForMode<M extends RedisMode> = M extends "cluster" ? ClusterRedisConfig : M extends "sentinel" ? SentinelRedisConfig : StandaloneRedisConfig;
812
- export type HealthStatus = {
813
- healthy: boolean;
814
- status: "healthy" | "degraded" | "unhealthy";
815
- latency: number;
816
- timestamp: Date;
817
- details: {
818
- ping: boolean;
819
- connections?: number;
820
- memory?: string;
821
- };
822
- };
823
- export type PubSubMessage<T = unknown> = {
824
- channel: string;
825
- message: T;
826
- };
827
- export type PubSubStats = {
828
- subscriptions: number;
829
- patternSubscriptions: number;
830
- connected: boolean;
831
- };
832
- export type PubSubEventMap = {
833
- message: {
834
- channel: string;
835
- message: string;
836
- };
837
- pmessage: {
838
- pattern: string;
839
- channel: string;
840
- message: string;
841
- };
842
- subscribe: {
843
- channel: string;
844
- count: number;
845
- };
846
- unsubscribe: {
847
- channel: string;
848
- count: number;
849
- };
850
- psubscribe: {
851
- pattern: string;
852
- count: number;
853
- };
854
- punsubscribe: {
855
- pattern: string;
856
- count: number;
857
- };
858
- error: Error;
859
- };
860
- export type ClusterSlotNode = {
861
- host: string;
862
- port: number;
863
- nodeId?: string;
864
- };
865
- export type ClusterSlotRange = {
866
- start: number;
867
- end: number;
868
- master: ClusterSlotNode;
869
- replicas: ClusterSlotNode[];
870
- };
871
- export type ClusterInfo = {
872
- mode: RedisMode;
873
- status: "ready" | "connecting" | "error";
874
- nodeCount?: number;
875
- slotCount?: number;
876
- nodes?: Array<{
877
- host: string;
878
- port: number;
879
- role?: string;
880
- }>;
881
- host?: string;
882
- port?: number;
883
- error?: string;
884
- };
885
- export type ConnectionState = "disconnected" | "connecting" | "connected" | "error" | "closed";
886
- export type ConnectionStatus = {
887
- state: ConnectionState;
888
- connected: boolean;
889
- ready: boolean;
890
- lastError?: Error;
891
- reconnectAttempts: number;
892
- uptime: number;
893
- };
894
- export type RedisEventMap = {
895
- connect: void;
896
- ready: void;
897
- close: void;
898
- reconnecting: {
899
- attempt: number;
900
- delay: number;
901
- };
902
- error: Error;
903
- end: void;
904
- status: ConnectionStatus;
905
- nodeAdded: {
906
- node: RedisType;
907
- };
908
- nodeRemoved: {
909
- node: RedisType;
910
- };
911
- nodeError: {
912
- node: RedisType;
913
- error: Error;
914
- };
915
- moved: {
916
- key: string;
917
- target: string;
918
- };
919
- ask: {
920
- key: string;
921
- target: string;
922
- };
923
- };
924
- export type Redis = RedisType;