@hotmeshio/hotmesh 0.4.0 → 0.4.2

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 (284) hide show
  1. package/README.md +39 -14
  2. package/build/modules/enums.d.ts +110 -0
  3. package/build/modules/enums.js +134 -0
  4. package/build/modules/errors.d.ts +124 -0
  5. package/build/modules/errors.js +191 -0
  6. package/build/modules/key.d.ts +66 -0
  7. package/build/modules/key.js +190 -0
  8. package/build/modules/storage.d.ts +3 -0
  9. package/build/modules/storage.js +5 -0
  10. package/build/modules/utils.d.ts +119 -0
  11. package/build/modules/utils.js +374 -0
  12. package/build/package.json +1 -1
  13. package/build/services/activities/activity.d.ts +104 -0
  14. package/build/services/activities/activity.js +549 -0
  15. package/build/services/activities/await.d.ts +12 -0
  16. package/build/services/activities/await.js +114 -0
  17. package/build/services/activities/cycle.d.ts +19 -0
  18. package/build/services/activities/cycle.js +112 -0
  19. package/build/services/activities/hook.d.ts +27 -0
  20. package/build/services/activities/hook.js +168 -0
  21. package/build/services/activities/index.d.ts +19 -0
  22. package/build/services/activities/index.js +20 -0
  23. package/build/services/activities/interrupt.d.ts +16 -0
  24. package/build/services/activities/interrupt.js +158 -0
  25. package/build/services/activities/signal.d.ts +20 -0
  26. package/build/services/activities/signal.js +134 -0
  27. package/build/services/activities/trigger.d.ts +37 -0
  28. package/build/services/activities/trigger.js +246 -0
  29. package/build/services/activities/worker.d.ts +12 -0
  30. package/build/services/activities/worker.js +106 -0
  31. package/build/services/collator/index.d.ts +111 -0
  32. package/build/services/collator/index.js +293 -0
  33. package/build/services/compiler/deployer.d.ts +40 -0
  34. package/build/services/compiler/deployer.js +488 -0
  35. package/build/services/compiler/index.d.ts +32 -0
  36. package/build/services/compiler/index.js +112 -0
  37. package/build/services/compiler/validator.d.ts +34 -0
  38. package/build/services/compiler/validator.js +147 -0
  39. package/build/services/connector/factory.d.ts +22 -0
  40. package/build/services/connector/factory.js +99 -0
  41. package/build/services/connector/index.d.ts +30 -0
  42. package/build/services/connector/index.js +54 -0
  43. package/build/services/connector/providers/ioredis.d.ts +9 -0
  44. package/build/services/connector/providers/ioredis.js +26 -0
  45. package/build/services/connector/providers/nats.d.ts +9 -0
  46. package/build/services/connector/providers/nats.js +34 -0
  47. package/build/services/connector/providers/postgres.d.ts +20 -0
  48. package/build/services/connector/providers/postgres.js +102 -0
  49. package/build/services/connector/providers/redis.d.ts +9 -0
  50. package/build/services/connector/providers/redis.js +38 -0
  51. package/build/services/engine/index.d.ts +264 -0
  52. package/build/services/engine/index.js +761 -0
  53. package/build/services/exporter/index.d.ts +44 -0
  54. package/build/services/exporter/index.js +126 -0
  55. package/build/services/hotmesh/index.d.ts +483 -0
  56. package/build/services/hotmesh/index.js +622 -0
  57. package/build/services/logger/index.d.ts +16 -0
  58. package/build/services/logger/index.js +54 -0
  59. package/build/services/mapper/index.d.ts +28 -0
  60. package/build/services/mapper/index.js +81 -0
  61. package/build/services/memflow/client.d.ts +108 -0
  62. package/build/services/memflow/client.js +372 -0
  63. package/build/services/memflow/connection.d.ts +23 -0
  64. package/build/services/memflow/connection.js +33 -0
  65. package/build/services/memflow/context.d.ts +143 -0
  66. package/build/services/memflow/context.js +299 -0
  67. package/build/services/memflow/exporter.d.ts +51 -0
  68. package/build/services/memflow/exporter.js +215 -0
  69. package/build/services/memflow/handle.d.ts +90 -0
  70. package/build/services/memflow/handle.js +176 -0
  71. package/build/services/memflow/index.d.ts +116 -0
  72. package/build/services/memflow/index.js +122 -0
  73. package/build/services/memflow/schemas/factory.d.ts +29 -0
  74. package/build/services/memflow/schemas/factory.js +2492 -0
  75. package/build/services/memflow/search.d.ts +142 -0
  76. package/build/services/memflow/search.js +320 -0
  77. package/build/services/memflow/worker.d.ts +124 -0
  78. package/build/services/memflow/worker.js +514 -0
  79. package/build/services/memflow/workflow/all.d.ts +7 -0
  80. package/build/services/memflow/workflow/all.js +15 -0
  81. package/build/services/memflow/workflow/common.d.ts +20 -0
  82. package/build/services/memflow/workflow/common.js +47 -0
  83. package/build/services/memflow/workflow/context.d.ts +6 -0
  84. package/build/services/memflow/workflow/context.js +45 -0
  85. package/build/services/memflow/workflow/contextMethods.d.ts +14 -0
  86. package/build/services/memflow/workflow/contextMethods.js +33 -0
  87. package/build/services/memflow/workflow/didRun.d.ts +7 -0
  88. package/build/services/memflow/workflow/didRun.js +22 -0
  89. package/build/services/memflow/workflow/emit.d.ts +11 -0
  90. package/build/services/memflow/workflow/emit.js +29 -0
  91. package/build/services/memflow/workflow/enrich.d.ts +9 -0
  92. package/build/services/memflow/workflow/enrich.js +17 -0
  93. package/build/services/memflow/workflow/execChild.d.ts +18 -0
  94. package/build/services/memflow/workflow/execChild.js +102 -0
  95. package/build/services/memflow/workflow/execHook.d.ts +65 -0
  96. package/build/services/memflow/workflow/execHook.js +73 -0
  97. package/build/services/memflow/workflow/hook.d.ts +9 -0
  98. package/build/services/memflow/workflow/hook.js +56 -0
  99. package/build/services/memflow/workflow/index.d.ts +74 -0
  100. package/build/services/memflow/workflow/index.js +87 -0
  101. package/build/services/memflow/workflow/interrupt.d.ts +9 -0
  102. package/build/services/memflow/workflow/interrupt.js +24 -0
  103. package/build/services/memflow/workflow/isSideEffectAllowed.d.ts +10 -0
  104. package/build/services/memflow/workflow/isSideEffectAllowed.js +33 -0
  105. package/build/services/memflow/workflow/proxyActivities.d.ts +20 -0
  106. package/build/services/memflow/workflow/proxyActivities.js +97 -0
  107. package/build/services/memflow/workflow/random.d.ts +6 -0
  108. package/build/services/memflow/workflow/random.js +16 -0
  109. package/build/services/memflow/workflow/searchMethods.d.ts +6 -0
  110. package/build/services/memflow/workflow/searchMethods.js +25 -0
  111. package/build/services/memflow/workflow/signal.d.ts +29 -0
  112. package/build/services/memflow/workflow/signal.js +50 -0
  113. package/build/services/memflow/workflow/sleepFor.d.ts +24 -0
  114. package/build/services/memflow/workflow/sleepFor.js +51 -0
  115. package/build/services/memflow/workflow/trace.d.ts +14 -0
  116. package/build/services/memflow/workflow/trace.js +33 -0
  117. package/build/services/memflow/workflow/waitFor.d.ts +29 -0
  118. package/build/services/memflow/workflow/waitFor.js +56 -0
  119. package/build/services/meshcall/index.d.ts +194 -0
  120. package/build/services/meshcall/index.js +452 -0
  121. package/build/services/meshcall/schemas/factory.d.ts +9 -0
  122. package/build/services/meshcall/schemas/factory.js +189 -0
  123. package/build/services/meshdata/index.d.ts +795 -0
  124. package/build/services/meshdata/index.js +1235 -0
  125. package/build/services/meshos/index.d.ts +293 -0
  126. package/build/services/meshos/index.js +547 -0
  127. package/build/services/pipe/functions/array.d.ts +17 -0
  128. package/build/services/pipe/functions/array.js +74 -0
  129. package/build/services/pipe/functions/bitwise.d.ts +9 -0
  130. package/build/services/pipe/functions/bitwise.js +24 -0
  131. package/build/services/pipe/functions/conditional.d.ts +13 -0
  132. package/build/services/pipe/functions/conditional.js +36 -0
  133. package/build/services/pipe/functions/cron.d.ts +12 -0
  134. package/build/services/pipe/functions/cron.js +40 -0
  135. package/build/services/pipe/functions/date.d.ts +58 -0
  136. package/build/services/pipe/functions/date.js +171 -0
  137. package/build/services/pipe/functions/index.d.ts +29 -0
  138. package/build/services/pipe/functions/index.js +30 -0
  139. package/build/services/pipe/functions/json.d.ts +5 -0
  140. package/build/services/pipe/functions/json.js +12 -0
  141. package/build/services/pipe/functions/logical.d.ts +5 -0
  142. package/build/services/pipe/functions/logical.js +12 -0
  143. package/build/services/pipe/functions/math.d.ts +42 -0
  144. package/build/services/pipe/functions/math.js +184 -0
  145. package/build/services/pipe/functions/number.d.ts +21 -0
  146. package/build/services/pipe/functions/number.js +60 -0
  147. package/build/services/pipe/functions/object.d.ts +25 -0
  148. package/build/services/pipe/functions/object.js +81 -0
  149. package/build/services/pipe/functions/string.d.ts +23 -0
  150. package/build/services/pipe/functions/string.js +69 -0
  151. package/build/services/pipe/functions/symbol.d.ts +12 -0
  152. package/build/services/pipe/functions/symbol.js +33 -0
  153. package/build/services/pipe/functions/unary.d.ts +7 -0
  154. package/build/services/pipe/functions/unary.js +18 -0
  155. package/build/services/pipe/index.d.ts +48 -0
  156. package/build/services/pipe/index.js +242 -0
  157. package/build/services/quorum/index.d.ts +90 -0
  158. package/build/services/quorum/index.js +263 -0
  159. package/build/services/reporter/index.d.ts +50 -0
  160. package/build/services/reporter/index.js +348 -0
  161. package/build/services/router/config/index.d.ts +11 -0
  162. package/build/services/router/config/index.js +36 -0
  163. package/build/services/router/consumption/index.d.ts +34 -0
  164. package/build/services/router/consumption/index.js +395 -0
  165. package/build/services/router/error-handling/index.d.ts +8 -0
  166. package/build/services/router/error-handling/index.js +98 -0
  167. package/build/services/router/index.d.ts +57 -0
  168. package/build/services/router/index.js +121 -0
  169. package/build/services/router/lifecycle/index.d.ts +27 -0
  170. package/build/services/router/lifecycle/index.js +80 -0
  171. package/build/services/router/telemetry/index.d.ts +11 -0
  172. package/build/services/router/telemetry/index.js +32 -0
  173. package/build/services/router/throttling/index.d.ts +23 -0
  174. package/build/services/router/throttling/index.js +76 -0
  175. package/build/services/search/factory.d.ts +7 -0
  176. package/build/services/search/factory.js +24 -0
  177. package/build/services/search/index.d.ts +23 -0
  178. package/build/services/search/index.js +10 -0
  179. package/build/services/search/providers/postgres/postgres.d.ts +25 -0
  180. package/build/services/search/providers/postgres/postgres.js +149 -0
  181. package/build/services/search/providers/redis/ioredis.d.ts +19 -0
  182. package/build/services/search/providers/redis/ioredis.js +121 -0
  183. package/build/services/search/providers/redis/redis.d.ts +19 -0
  184. package/build/services/search/providers/redis/redis.js +134 -0
  185. package/build/services/serializer/index.d.ts +42 -0
  186. package/build/services/serializer/index.js +282 -0
  187. package/build/services/store/cache.d.ts +67 -0
  188. package/build/services/store/cache.js +128 -0
  189. package/build/services/store/factory.d.ts +8 -0
  190. package/build/services/store/factory.js +24 -0
  191. package/build/services/store/index.d.ts +89 -0
  192. package/build/services/store/index.js +9 -0
  193. package/build/services/store/providers/postgres/kvsql.d.ts +168 -0
  194. package/build/services/store/providers/postgres/kvsql.js +198 -0
  195. package/build/services/store/providers/postgres/kvtables.d.ts +20 -0
  196. package/build/services/store/providers/postgres/kvtables.js +441 -0
  197. package/build/services/store/providers/postgres/kvtransaction.d.ts +36 -0
  198. package/build/services/store/providers/postgres/kvtransaction.js +248 -0
  199. package/build/services/store/providers/postgres/kvtypes/hash.d.ts +60 -0
  200. package/build/services/store/providers/postgres/kvtypes/hash.js +1287 -0
  201. package/build/services/store/providers/postgres/kvtypes/list.d.ts +33 -0
  202. package/build/services/store/providers/postgres/kvtypes/list.js +194 -0
  203. package/build/services/store/providers/postgres/kvtypes/string.d.ts +20 -0
  204. package/build/services/store/providers/postgres/kvtypes/string.js +115 -0
  205. package/build/services/store/providers/postgres/kvtypes/zset.d.ts +41 -0
  206. package/build/services/store/providers/postgres/kvtypes/zset.js +214 -0
  207. package/build/services/store/providers/postgres/postgres.d.ts +178 -0
  208. package/build/services/store/providers/postgres/postgres.js +1244 -0
  209. package/build/services/store/providers/redis/_base.d.ts +137 -0
  210. package/build/services/store/providers/redis/_base.js +980 -0
  211. package/build/services/store/providers/redis/ioredis.d.ts +20 -0
  212. package/build/services/store/providers/redis/ioredis.js +180 -0
  213. package/build/services/store/providers/redis/redis.d.ts +18 -0
  214. package/build/services/store/providers/redis/redis.js +199 -0
  215. package/build/services/store/providers/store-initializable.d.ts +5 -0
  216. package/build/services/store/providers/store-initializable.js +2 -0
  217. package/build/services/stream/factory.d.ts +8 -0
  218. package/build/services/stream/factory.js +37 -0
  219. package/build/services/stream/index.d.ts +69 -0
  220. package/build/services/stream/index.js +11 -0
  221. package/build/services/stream/providers/nats/nats.d.ts +60 -0
  222. package/build/services/stream/providers/nats/nats.js +225 -0
  223. package/build/services/stream/providers/postgres/kvtables.d.ts +3 -0
  224. package/build/services/stream/providers/postgres/kvtables.js +146 -0
  225. package/build/services/stream/providers/postgres/postgres.d.ts +107 -0
  226. package/build/services/stream/providers/postgres/postgres.js +519 -0
  227. package/build/services/stream/providers/redis/ioredis.d.ts +61 -0
  228. package/build/services/stream/providers/redis/ioredis.js +272 -0
  229. package/build/services/stream/providers/redis/redis.d.ts +61 -0
  230. package/build/services/stream/providers/redis/redis.js +305 -0
  231. package/build/services/stream/providers/stream-initializable.d.ts +4 -0
  232. package/build/services/stream/providers/stream-initializable.js +2 -0
  233. package/build/services/sub/factory.d.ts +7 -0
  234. package/build/services/sub/factory.js +29 -0
  235. package/build/services/sub/index.d.ts +22 -0
  236. package/build/services/sub/index.js +10 -0
  237. package/build/services/sub/providers/nats/nats.d.ts +19 -0
  238. package/build/services/sub/providers/nats/nats.js +105 -0
  239. package/build/services/sub/providers/postgres/postgres.d.ts +19 -0
  240. package/build/services/sub/providers/postgres/postgres.js +92 -0
  241. package/build/services/sub/providers/redis/ioredis.d.ts +17 -0
  242. package/build/services/sub/providers/redis/ioredis.js +81 -0
  243. package/build/services/sub/providers/redis/redis.d.ts +17 -0
  244. package/build/services/sub/providers/redis/redis.js +72 -0
  245. package/build/services/task/index.d.ts +48 -0
  246. package/build/services/task/index.js +253 -0
  247. package/build/services/telemetry/index.d.ts +52 -0
  248. package/build/services/telemetry/index.js +306 -0
  249. package/build/services/worker/index.d.ts +77 -0
  250. package/build/services/worker/index.js +197 -0
  251. package/package.json +1 -1
  252. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  253. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  254. package/typedoc.json +0 -47
  255. package/types/activity.ts +0 -268
  256. package/types/app.ts +0 -20
  257. package/types/async.ts +0 -6
  258. package/types/cache.ts +0 -1
  259. package/types/collator.ts +0 -9
  260. package/types/error.ts +0 -56
  261. package/types/exporter.ts +0 -102
  262. package/types/hook.ts +0 -44
  263. package/types/hotmesh.ts +0 -314
  264. package/types/index.ts +0 -306
  265. package/types/job.ts +0 -233
  266. package/types/logger.ts +0 -8
  267. package/types/manifest.ts +0 -70
  268. package/types/map.ts +0 -5
  269. package/types/memflow.ts +0 -645
  270. package/types/meshcall.ts +0 -235
  271. package/types/meshdata.ts +0 -278
  272. package/types/ms.d.ts +0 -7
  273. package/types/nats.ts +0 -270
  274. package/types/pipe.ts +0 -90
  275. package/types/postgres.ts +0 -114
  276. package/types/provider.ts +0 -161
  277. package/types/quorum.ts +0 -167
  278. package/types/redis.ts +0 -404
  279. package/types/serializer.ts +0 -40
  280. package/types/stats.ts +0 -117
  281. package/types/stream.ts +0 -231
  282. package/types/task.ts +0 -7
  283. package/types/telemetry.ts +0 -16
  284. package/types/transition.ts +0 -20
package/types/quorum.ts DELETED
@@ -1,167 +0,0 @@
1
- import { JobOutput } from './job';
2
- import { StringAnyType } from './serializer';
3
-
4
- interface CPULoad {
5
- [cpu: string]: string;
6
- }
7
-
8
- interface NetworkStat {
9
- iface: string;
10
- operstate: string;
11
- rx_bytes: number;
12
- rx_dropped: number;
13
- rx_errors: number;
14
- tx_bytes: number;
15
- tx_dropped: number;
16
- tx_errors: number;
17
- rx_sec: number;
18
- tx_sec: number;
19
- ms: number;
20
- }
21
-
22
- /** reveals: memory, cpu, network */
23
- export interface SystemHealth {
24
- TotalMemoryGB: string;
25
- FreeMemoryGB: string;
26
- UsedMemoryGB: string;
27
- CPULoad: CPULoad[];
28
- NetworkStats: NetworkStat[];
29
- }
30
-
31
- export type ThrottleOptions = {
32
- /** target an engine OR worker by GUID */
33
- guid?: string;
34
- /** target a worker quorum */
35
- topic?: string;
36
- /** entity/noun */
37
- entity?: string;
38
- /** in milliseconds; set to -1 for indefinite throttle */
39
- throttle: number;
40
- /** namespace */
41
- namespace?: string;
42
- };
43
-
44
- export interface QuorumProfile {
45
- namespace: string;
46
- app_id: string;
47
- engine_id: string;
48
- entity?: string;
49
- worker_topic?: string;
50
- stream?: string;
51
- stream_depth?: number;
52
- counts?: Record<string, number>;
53
- inited?: string;
54
- timestamp?: string;
55
- throttle?: number;
56
- reclaimDelay?: number;
57
- reclaimCount?: number;
58
- system?: SystemHealth;
59
- signature?: string; //stringified function
60
- }
61
-
62
- interface QuorumMessageBase {
63
- entity?: string;
64
- guid?: string;
65
- topic?: string;
66
- type?: string;
67
- }
68
-
69
- // Messages extending QuorumMessageBase
70
- export interface PingMessage extends QuorumMessageBase {
71
- type: 'ping';
72
- originator: string; //guid
73
- details?: boolean; //if true, all endpoints will include their profile
74
- }
75
-
76
- export interface WorkMessage extends QuorumMessageBase {
77
- type: 'work';
78
- originator: string; //guid
79
- }
80
-
81
- export interface CronMessage extends QuorumMessageBase {
82
- type: 'cron';
83
- originator: string; //guid
84
- }
85
-
86
- export interface PongMessage extends QuorumMessageBase {
87
- type: 'pong';
88
- guid: string; //call initiator
89
- originator: string; //clone of originator guid passed in ping
90
- entity?: string; //optional entity
91
- profile?: QuorumProfile; //contains details about the engine/worker
92
- }
93
-
94
- export interface ActivateMessage extends QuorumMessageBase {
95
- type: 'activate';
96
- cache_mode: 'nocache' | 'cache';
97
- until_version: string;
98
- }
99
-
100
- export interface UserMessage extends QuorumMessageBase {
101
- type: 'user';
102
- topic: string;
103
- message: StringAnyType;
104
- }
105
-
106
- export interface JobMessage extends QuorumMessageBase {
107
- type: 'job';
108
- entity?: string;
109
- topic: string; //this comes from the 'publishes' field in the YAML
110
- job: JobOutput;
111
- }
112
-
113
- export interface ThrottleMessage extends QuorumMessageBase {
114
- type: 'throttle';
115
- guid?: string; //target engine AND workers with this guid
116
- entity?: string;
117
- topic?: string; //target worker(s) matching this topic (pass null to only target the engine, pass undefined to target engine and workers)
118
- throttle: number; //0-n; millis
119
- }
120
-
121
- export interface RollCallMessage extends QuorumMessageBase {
122
- type: 'rollcall';
123
- guid?: string; //target the engine quorum
124
- entity?: string;
125
- topic?: string | null; //target a worker if string; suppress if `null`;
126
- interval: number; //every 'n' seconds
127
- max?: number; //max broadcasts
128
- signature?: boolean; //include bound worker function in broadcast
129
- }
130
-
131
- export interface JobMessageCallback {
132
- (topic: string, message: JobOutput): void;
133
- }
134
-
135
- export interface SubscriptionCallback {
136
- (topic: string, message: Record<string, any>): void;
137
- }
138
-
139
- export interface QuorumMessageCallback {
140
- (topic: string, message: QuorumMessage): void;
141
- }
142
-
143
- export type RollCallOptions = {
144
- delay?: number;
145
- namespace?: string;
146
- };
147
-
148
- export type SubscriptionOptions = {
149
- namespace?: string;
150
- };
151
-
152
- /**
153
- * The types in this file are used to define those messages that are sent
154
- * to hotmesh client instances when a new version is about to be activated.
155
- * These messages serve to coordinate the cache invalidation and switch-over
156
- * to the new version without any downtime and a coordinating parent server.
157
- */
158
- export type QuorumMessage =
159
- | PingMessage
160
- | PongMessage
161
- | ActivateMessage
162
- | WorkMessage
163
- | JobMessage
164
- | ThrottleMessage
165
- | RollCallMessage
166
- | CronMessage
167
- | UserMessage;
package/types/redis.ts DELETED
@@ -1,404 +0,0 @@
1
- import {
2
- ProviderClient,
3
- ProviderConfig,
4
- ProviderTransaction,
5
- } from './provider';
6
- import { StringStringType } from './serializer';
7
- import { ReclaimedMessageType } from './stream';
8
-
9
- /**
10
- * Redis types
11
- */
12
- interface ConnectionOptions {
13
- //[key: string]: any;
14
- host?: string;
15
- port?: number;
16
- path?: string; // Creates unix socket connection to path. If this option is specified, host and port are ignored.
17
- socket?: any; // Establish secure connection on a given socket rather than creating a new socket
18
- NPNProtocols?: string[] | Buffer[]; // Defaults to []
19
- ALPNProtocols?: string[] | Buffer[]; // Defaults to []
20
- servername?: string; // SNI TLS Extension
21
- checkServerIdentity?: (servername: string, cert: Buffer) => Error | undefined;
22
- session?: Buffer;
23
- minDHSize?: number;
24
- secureContext?: any; // If not provided, the entire ConnectionOptions object will be passed to tls.createSecureContext()
25
- secureProtocol?: string; // The SSL method to use, e.g., SSLv3_method
26
- ciphers?: string;
27
- honorCipherOrder?: boolean;
28
- requestCert?: boolean;
29
- rejectUnauthorized?: boolean;
30
- maxVersion?: 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1';
31
- minVersion?: 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1';
32
- }
33
-
34
- interface RedisRedisClientOptions {
35
- url?: string;
36
- socket?: {
37
- host?: string;
38
- port?: number;
39
- tls?: boolean;
40
- servername?: string;
41
- //[key: string]: any;
42
- };
43
- username?: string;
44
- password?: string;
45
- database?: number;
46
- name?: string;
47
- readonly?: boolean;
48
- legacyMode?: boolean;
49
- commandsQueueMaxLength?: number;
50
- disableOfflineQueue?: boolean;
51
- connectTimeout?: number;
52
- autoResubscribe?: boolean;
53
- autoResendUnfulfilledCommands?: boolean;
54
- lazyConnect?: boolean;
55
- tls?: boolean | ConnectionOptions;
56
- enableReadyCheck?: boolean;
57
- keepAlive?: number;
58
- family?: 'IPv4' | 'IPv6';
59
- keyPrefix?: string;
60
- retry?: {
61
- maxReconnectionAttempts?: number;
62
- initialReconnectionDelay?: number;
63
- reconnectionBackoffFactor?: number;
64
- totalReconnectionTimeout?: number;
65
- maxRetryCount?: number;
66
- };
67
- stringNumbers?: boolean;
68
- }
69
-
70
- interface RedisRedisMultiType extends ProviderTransaction {
71
- sendCommand(command: string, ...args: string[]): Promise<any>;
72
- exec: () => Promise<unknown[]>;
73
-
74
- DEL(key: string): this;
75
- EXISTS(key: string): this;
76
- EXPIRE(key: string, seconds: number): this;
77
- HDEL(key: string, fields: string[] | string): this;
78
- HGET(key: string, itemId: string): this;
79
- HGETALL(key: string): this;
80
- HINCRBYFLOAT(key: string, itemId: string, value: number): this;
81
- HMPUSH(key: string, values: Record<string, string>): this;
82
- RPUSH(key: string, items: string[]): this;
83
- HMGET(key: string, itemIds: string[]): this;
84
- HSET(key: string, values: Record<string, string>): this;
85
- LPUSH(key: string, items: string[]): this;
86
- LRANGE(key: string, start: number, end: number): this;
87
- RPUSH(key: string, items: string[]): this;
88
- SET(key: string, value: string): this;
89
- XADD(key: string, id: string, fields: any): this;
90
- XACK(key: string, group: string, id: string): this;
91
- XACK(key: string, group: string, ...ids: string[]): this;
92
- XDEL(key: string, id: string): this;
93
- XDEL(key: string, ...ids: string[]): this;
94
- XCLAIM(
95
- key: string,
96
- group: string,
97
- consumer: string,
98
- minIdleTime: number,
99
- id: string,
100
- ...args: string[]
101
- ): this;
102
- XLEN(key: string): this;
103
- XGROUP(
104
- command: 'CREATE' | string,
105
- key: string,
106
- groupName: string,
107
- id: string,
108
- mkStream?: 'MKSTREAM',
109
- ): this;
110
- XPENDING(
111
- key: string,
112
- group: string,
113
- start?: string,
114
- end?: string,
115
- count?: number,
116
- consumer?: string,
117
- ): this;
118
- ZADD(
119
- key: string,
120
- values: { score: string; value: string },
121
- opts?: { NX: boolean },
122
- ): this;
123
- ZRANGE_WITHSCORES(key: string, start: number, end: number): this;
124
- ZRANK(key: string, member: string): this;
125
- ZSCORE(key: string, value: string): this;
126
- }
127
-
128
- interface RedisRedisClientType extends ProviderClient {
129
- multi(): Partial<RedisRedisMultiType>;
130
- connect(): Promise<void>;
131
- sendCommand(args: any[]): Promise<any>;
132
- exec(): Promise<unknown[]>;
133
- flushDb(): Promise<string>;
134
- quit(): Promise<string>;
135
- disconnect(): void;
136
- duplicate(): RedisRedisClientType;
137
- on(event: string, callback: (...args: any[]) => void): void;
138
- publish(channel: string, message: string): Promise<number>;
139
- pSubscribe(
140
- pattern: string,
141
- callback: (channel: string, message: string) => void,
142
- ): Promise<void>;
143
- pUnsubscribe(pattern: string): Promise<void>;
144
- subscribe(
145
- channel: string,
146
- callback: (channel: string, message: string) => void,
147
- ): Promise<void>;
148
- unsubscribe(channel: string): Promise<void>;
149
- punsubscribe(channel: string): void;
150
- get(key: string): Promise<string | null>;
151
- set(key: string, value: string): Promise<string>;
152
-
153
- DEL(key: string): Promise<number>;
154
- EXISTS(key: string): Promise<number>;
155
- HDEL(key: string, fields: string[] | string): Promise<number>;
156
- HGET(key: string, itemId: string): Promise<string | null>;
157
- HGETALL(key: string): Promise<StringStringType>;
158
- HINCRBYFLOAT(key: string, itemId: string, value: number): Promise<number>;
159
- HMGET(key: string, itemIds: string[]): Promise<string[]>;
160
- HSET(key: string, values: Record<string, string>): Promise<number>;
161
- LPUSH(key: string, items: string[]): Promise<number>;
162
- LRANGE(key: string, start: number, end: number): Promise<string[]>;
163
- RPUSH(key: string, items: string[]): Promise<number>;
164
- SET(key: string, value: string): Promise<string>;
165
- XADD(key: string, id: string, fields: any): Promise<string>;
166
- XACK(key: string, group: string, ...ids: string[]): Promise<number>;
167
- XACK(key: string, group: string, id: string): Promise<number>;
168
- XCLAIM(
169
- key: string,
170
- group: string,
171
- consumer: string,
172
- minIdleTime: number,
173
- id: string,
174
- ...args: string[]
175
- ): Promise<ReclaimedMessageType>;
176
- XDEL(key: string, id: string): Promise<number>;
177
- XDEL(key: string, ...ids: string[]): Promise<number>;
178
- xGroupDestroy(key: string, groupName: string): Promise<boolean>;
179
- XINFO(command: 'GROUPS' | string, key: string): Promise<unknown>;
180
- XINFO_GROUPS(key: string): Promise<unknown>;
181
- XLEN(key: string): Promise<number>;
182
- XPENDING(
183
- key: string,
184
- group: string,
185
- start?: string,
186
- end?: string,
187
- count?: number,
188
- consumer?: string,
189
- ): this;
190
- ZADD(
191
- key: string,
192
- values: { score: string; value: string },
193
- opts?: { NX: boolean },
194
- ): Promise<number>;
195
- ZRANGE_WITHSCORES(
196
- key: string,
197
- start: number,
198
- end: number,
199
- ): Promise<{ score: number; value: string }>;
200
- ZRANK(key: string, member: string): Promise<number>;
201
- ZSCORE(key: string, value: string): Promise<number>;
202
- }
203
-
204
- interface RedisRedisClassType {
205
- createClient(options: RedisRedisClientOptions): Partial<RedisRedisClientType>;
206
- }
207
-
208
- /**
209
- * IORedis types
210
- */
211
- interface IORedisClientOptions {
212
- port?: number;
213
- host?: string;
214
- family?: 'IPv4' | 'IPv6';
215
- path?: string;
216
- keepAlive?: number;
217
- noDelay?: boolean;
218
- connectionName?: string;
219
- db?: number;
220
- password?: string;
221
- username?: string;
222
- sentinels?: Array<{ host: string; port: number }>;
223
- name?: string;
224
- readOnly?: boolean;
225
- keyPrefix?: string;
226
- reconnectOnError?: (err: Error) => boolean;
227
- }
228
-
229
- interface IORedisClient extends ProviderClient {
230
- multi(): IORedisMultiType;
231
- exec(): Promise<unknown[]>;
232
- sendCommand(args: any[]): Promise<any>;
233
- call(command: string, ...args: any[]): Promise<any>;
234
- quit(): Promise<string>;
235
- flushdb(): Promise<string>;
236
-
237
- publish(channel: string, message: string): Promise<number>;
238
- psubscribe(
239
- pattern: string,
240
- callback: (channel: string, message: string) => void,
241
- ): Promise<void>;
242
- punsubscribe(pattern: string): Promise<number>;
243
- subscribe(
244
- channel: string,
245
- callback: (channel: string, message: string) => void,
246
- ): Promise<void>;
247
- unsubscribe(channel: string): Promise<number>;
248
- punsubscribe(channel: string): Promise<number>;
249
-
250
- xadd(key: string, id: string, fields: any, message?: string): Promise<string>;
251
- xack(key: string, group: string, id: string): Promise<number>;
252
- xack(key: string, group: string, ...ids: string[]): Promise<number>;
253
- xdel(key: string, id: string): Promise<number>;
254
- xdel(key: string, ...ids: string[]): Promise<number>;
255
- xlen(key: string): Promise<number>;
256
- xpending(
257
- key: string,
258
- group: string,
259
- start?: string,
260
- end?: string,
261
- count?: number,
262
- consumer?: string,
263
- ): Promise<
264
- | [string, string, number, [string, number][]][]
265
- | [string, string, number, number]
266
- | unknown[]
267
- >;
268
- xclaim(
269
- key: string,
270
- group: string,
271
- consumer: string,
272
- minIdleTime: number,
273
- id: string,
274
- ...args: string[]
275
- ): Promise<ReclaimedMessageType>;
276
- xinfo(command: 'GROUPS' | string, key: string): Promise<unknown>;
277
- xrange(key: string, start: string, end: string): Promise<string[][]>;
278
- xreadgroup(
279
- command: 'GROUP',
280
- groupName: string,
281
- consumerName: string,
282
- blockOption: string,
283
- blockTime: number,
284
- streamsOption: string,
285
- streamName: string,
286
- key: string,
287
- ): Promise<string[][]>;
288
- del(key: string): Promise<number>;
289
- exists(key: string): Promise<number>;
290
- get(key: string): Promise<string | null>;
291
- hdel(key: string, ...fields: string[]): Promise<number>;
292
- hget(key: string, itemId: string): Promise<string | null>;
293
- hgetall(key: string): Promise<StringStringType>;
294
- hincrbyfloat(key: string, itemId: string, value: number): Promise<number>;
295
- hmget(key: string, itemIds: string[]): Promise<string[]>;
296
- hset(key: string, values: Record<string, string>): Promise<number>;
297
- lpush(key: string, ...args: string[]): Promise<number>;
298
- lrange(key: string, start: number, end: number): Promise<string[]>;
299
- on(event: string, callback: (...args: any[]) => void): void;
300
- rpush(key: string, ...args: string[]): Promise<number>;
301
- set(key: string, value: string): Promise<string>;
302
- zadd(...args: Array<string | number>): Promise<number>;
303
- zrange(
304
- key: string,
305
- start: number,
306
- end: number,
307
- withScores?: 'WITHSCORES',
308
- ): Promise<string[]>;
309
- zrank(key: string, member: string): Promise<number>;
310
- zscore(key: string, value: string): Promise<number>;
311
- xgroup(
312
- command: 'CREATE' | 'DESTROY' | string,
313
- key: string,
314
- groupName: string,
315
- id?: string,
316
- mkStream?: 'MKSTREAM',
317
- ): Promise<string | number>;
318
- }
319
-
320
- type IORedisClassType = new (
321
- options: IORedisClientOptions,
322
- ...args: any[]
323
- ) => IORedisClient;
324
- interface IORedisMultiType extends ProviderTransaction {
325
- xadd(key: string, id: string, fields: any, message?: string): this;
326
- xack(key: string, group: string, id: string): this;
327
- xack(key: string, group: string, ...ids: string[]): this;
328
- xdel(key: string, id: string): this;
329
- xdel(key: string, ...ids: string[]): this;
330
- xlen(key: string): this;
331
- xpending(
332
- key: string,
333
- group: string,
334
- start?: string,
335
- end?: string,
336
- count?: number,
337
- consumer?: string,
338
- ): this;
339
- xclaim(
340
- key: string,
341
- group: string,
342
- consumer: string,
343
- minIdleTime: number,
344
- id: string,
345
- ...args: string[]
346
- ): this;
347
- del(key: string): this;
348
- expire(key: string, seconds: number): this;
349
- hdel(key: string, itemId: string): this;
350
- hget(key: string, itemId: string): this;
351
- hgetall(key: string): this;
352
- hincrbyfloat(key: string, itemId: string, value: number): this;
353
- hmget(key: string, itemIds: string[]): this;
354
- hset(key: string, values: Record<string, string>): this;
355
- lrange(key: string, start: number, end: number): this;
356
- rpush(key: string, value: string): this;
357
- zadd(...args: Array<string | number>): this;
358
- xgroup(
359
- command: 'CREATE',
360
- key: string,
361
- groupName: string,
362
- id: string,
363
- mkStream?: 'MKSTREAM',
364
- ): this;
365
-
366
- sendCommand(command: string[]): Promise<any>;
367
- exec: () => Promise<unknown[]>;
368
- }
369
-
370
- type RedisClass = RedisRedisClassType | IORedisClassType;
371
- type RedisClient = RedisRedisClientType | IORedisClient;
372
- type RedisOptions = RedisRedisClientOptions | IORedisClientOptions;
373
- type RedisMulti = RedisRedisMultiType | IORedisMultiType;
374
-
375
- function isRedisClient(client: RedisClient): client is RedisRedisClientType {
376
- return 'sendCommand' in client;
377
- }
378
-
379
- function isIORedisClient(client: RedisClient): client is IORedisClient {
380
- return 'pipeline' in client;
381
- }
382
-
383
- interface RedisConfig extends ProviderConfig {
384
- class: Partial<RedisClass>;
385
- options: Partial<RedisOptions>;
386
- }
387
-
388
- export {
389
- RedisClass,
390
- RedisConfig,
391
- RedisRedisClientType,
392
- RedisRedisClientOptions,
393
- RedisRedisClassType,
394
- IORedisClient as IORedisClientType,
395
- RedisClient,
396
- RedisMulti,
397
- RedisRedisMultiType,
398
- IORedisClientOptions,
399
- IORedisClassType,
400
- IORedisMultiType,
401
- RedisOptions,
402
- isRedisClient,
403
- isIORedisClient,
404
- };
@@ -1,40 +0,0 @@
1
- export interface JSONSchema {
2
- type?: string;
3
- enum?: string[];
4
- examples?: any[];
5
- properties?: { [key: string]: JSONSchema };
6
- items?: JSONSchema;
7
- description?: string;
8
- 'x-train'?: boolean; //extension property to mark item `values` as not being trainable (ssn, dob, guids are examples of fields that should never have their `values` trained)
9
- }
10
-
11
- export type SymbolRanges = {
12
- //keyname is <ns>:<app>:symbols:
13
- [key: string]: number; //eg: {"$": 0, "a1": 26, "a2" 39, "$metadata_cursor": 39, "$data_cursor": 2704} (job ($) holds range 0-26; every other activity has a number that increments by 13; up to 200+ unique activities may be modeled; the :cursor fields are used by the sytem to track the next reserved tranche using hincrby
14
- };
15
-
16
- export type Symbols = {
17
- //keyname is <ns>:<app>:symbols:<aid> (where aid can be $ for job or a1, a2, etc. for activities)
18
- [key: string]: string; //eg: {"operation/name": "26", "a2" 39, ":cursor": 39} (job holds range 0-26; every other activity has a number that increments by 13; up to 200 activity ranges may be listed; one field called $count is used by the sytem to track the next reserved tranche using hincrby; job always seeds with 26
19
- };
20
-
21
- export type SymbolSets = {
22
- [key: string]: {
23
- [key: string]: string;
24
- };
25
- };
26
-
27
- export type StringStringType = {
28
- [key: string]: string;
29
- };
30
-
31
- export type StringAnyType = {
32
- [key: string]: any;
33
- };
34
-
35
- export type StringScalarType = {
36
- [key: string]: boolean | number | string;
37
- };
38
-
39
- export type SymbolMap = Map<string, string>;
40
- export type SymbolMaps = Map<string, SymbolMap>;