@hotmeshio/hotmesh 0.0.8 → 0.0.10

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 (362) hide show
  1. package/LICENSE +4 -7
  2. package/README.md +82 -85
  3. package/build/{cjs/modules → modules}/key.d.ts +2 -2
  4. package/build/{cjs/modules → modules}/key.js +3 -3
  5. package/build/{esm/package.json → package.json} +4 -11
  6. package/build/{cjs/services → services}/durable/native.js +2 -3
  7. package/build/{esm/services → services}/durable/worker.d.ts +1 -3
  8. package/build/{cjs/services → services}/durable/worker.js +9 -33
  9. package/build/{cjs/services → services}/durable/workflow.js +6 -1
  10. package/build/{cjs/services → services}/hotmesh/index.js +1 -1
  11. package/build/{cjs/services → services}/store/index.js +2 -2
  12. package/build/{cjs/services → services}/stream/clients/ioredis.js +1 -1
  13. package/build/{cjs/services → services}/stream/clients/redis.js +1 -1
  14. package/build/{cjs/services → services}/sub/clients/ioredis.js +1 -1
  15. package/build/{cjs/services → services}/sub/clients/redis.js +1 -1
  16. package/build/{cjs/types → types}/durable.d.ts +5 -7
  17. package/modules/key.ts +2 -2
  18. package/package.json +4 -11
  19. package/services/durable/native.ts +2 -3
  20. package/services/durable/worker.ts +9 -10
  21. package/services/durable/workflow.ts +7 -1
  22. package/services/hotmesh/index.ts +2 -2
  23. package/services/store/index.ts +3 -3
  24. package/services/stream/clients/ioredis.ts +2 -2
  25. package/services/stream/clients/redis.ts +2 -2
  26. package/services/sub/clients/ioredis.ts +2 -2
  27. package/services/sub/clients/redis.ts +2 -2
  28. package/types/durable.ts +5 -5
  29. package/build/cjs/package.json +0 -82
  30. package/build/cjs/services/durable/worker.d.ts +0 -38
  31. package/build/esm/index.d.ts +0 -4
  32. package/build/esm/index.js +0 -3
  33. package/build/esm/modules/errors.d.ts +0 -28
  34. package/build/esm/modules/errors.js +0 -41
  35. package/build/esm/modules/key.d.ts +0 -75
  36. package/build/esm/modules/key.js +0 -111
  37. package/build/esm/modules/utils.d.ts +0 -34
  38. package/build/esm/modules/utils.js +0 -154
  39. package/build/esm/services/activities/activity.d.ts +0 -67
  40. package/build/esm/services/activities/activity.js +0 -486
  41. package/build/esm/services/activities/await.d.ts +0 -16
  42. package/build/esm/services/activities/await.js +0 -140
  43. package/build/esm/services/activities/cycle.d.ts +0 -19
  44. package/build/esm/services/activities/cycle.js +0 -74
  45. package/build/esm/services/activities/emit.d.ts +0 -9
  46. package/build/esm/services/activities/emit.js +0 -10
  47. package/build/esm/services/activities/index.d.ts +0 -17
  48. package/build/esm/services/activities/index.js +0 -16
  49. package/build/esm/services/activities/iterate.d.ts +0 -9
  50. package/build/esm/services/activities/iterate.js +0 -10
  51. package/build/esm/services/activities/trigger.d.ts +0 -22
  52. package/build/esm/services/activities/trigger.js +0 -158
  53. package/build/esm/services/activities/worker.d.ts +0 -11
  54. package/build/esm/services/activities/worker.js +0 -70
  55. package/build/esm/services/collator/index.d.ts +0 -73
  56. package/build/esm/services/collator/index.js +0 -221
  57. package/build/esm/services/compiler/deployer.d.ts +0 -36
  58. package/build/esm/services/compiler/deployer.js +0 -423
  59. package/build/esm/services/compiler/index.d.ts +0 -30
  60. package/build/esm/services/compiler/index.js +0 -82
  61. package/build/esm/services/compiler/validator.d.ts +0 -32
  62. package/build/esm/services/compiler/validator.js +0 -131
  63. package/build/esm/services/connector/clients/ioredis.d.ts +0 -13
  64. package/build/esm/services/connector/clients/ioredis.js +0 -47
  65. package/build/esm/services/connector/clients/redis.d.ts +0 -13
  66. package/build/esm/services/connector/clients/redis.js +0 -59
  67. package/build/esm/services/connector/index.d.ts +0 -5
  68. package/build/esm/services/connector/index.js +0 -27
  69. package/build/esm/services/dimension/index.d.ts +0 -29
  70. package/build/esm/services/dimension/index.js +0 -32
  71. package/build/esm/services/durable/asyncLocalStorage.d.ts +0 -3
  72. package/build/esm/services/durable/asyncLocalStorage.js +0 -2
  73. package/build/esm/services/durable/client.d.ts +0 -15
  74. package/build/esm/services/durable/client.js +0 -114
  75. package/build/esm/services/durable/connection.d.ts +0 -4
  76. package/build/esm/services/durable/connection.js +0 -47
  77. package/build/esm/services/durable/factory.d.ts +0 -3
  78. package/build/esm/services/durable/factory.js +0 -135
  79. package/build/esm/services/durable/handle.d.ts +0 -8
  80. package/build/esm/services/durable/handle.js +0 -34
  81. package/build/esm/services/durable/index.d.ts +0 -57
  82. package/build/esm/services/durable/index.js +0 -55
  83. package/build/esm/services/durable/native.d.ts +0 -4
  84. package/build/esm/services/durable/native.js +0 -43
  85. package/build/esm/services/durable/worker.js +0 -267
  86. package/build/esm/services/durable/workflow.d.ts +0 -6
  87. package/build/esm/services/durable/workflow.js +0 -132
  88. package/build/esm/services/engine/index.d.ts +0 -82
  89. package/build/esm/services/engine/index.js +0 -522
  90. package/build/esm/services/hotmesh/index.d.ts +0 -45
  91. package/build/esm/services/hotmesh/index.js +0 -131
  92. package/build/esm/services/logger/index.d.ts +0 -17
  93. package/build/esm/services/logger/index.js +0 -70
  94. package/build/esm/services/mapper/index.d.ts +0 -24
  95. package/build/esm/services/mapper/index.js +0 -72
  96. package/build/esm/services/pipe/functions/array.d.ts +0 -24
  97. package/build/esm/services/pipe/functions/array.js +0 -66
  98. package/build/esm/services/pipe/functions/bitwise.d.ts +0 -9
  99. package/build/esm/services/pipe/functions/bitwise.js +0 -21
  100. package/build/esm/services/pipe/functions/conditional.d.ts +0 -10
  101. package/build/esm/services/pipe/functions/conditional.js +0 -24
  102. package/build/esm/services/pipe/functions/date.d.ts +0 -57
  103. package/build/esm/services/pipe/functions/date.js +0 -164
  104. package/build/esm/services/pipe/functions/index.d.ts +0 -25
  105. package/build/esm/services/pipe/functions/index.js +0 -24
  106. package/build/esm/services/pipe/functions/json.d.ts +0 -5
  107. package/build/esm/services/pipe/functions/json.js +0 -9
  108. package/build/esm/services/pipe/functions/math.d.ts +0 -38
  109. package/build/esm/services/pipe/functions/math.js +0 -108
  110. package/build/esm/services/pipe/functions/number.d.ts +0 -25
  111. package/build/esm/services/pipe/functions/number.js +0 -130
  112. package/build/esm/services/pipe/functions/object.d.ts +0 -22
  113. package/build/esm/services/pipe/functions/object.js +0 -60
  114. package/build/esm/services/pipe/functions/string.d.ts +0 -23
  115. package/build/esm/services/pipe/functions/string.js +0 -66
  116. package/build/esm/services/pipe/functions/symbol.d.ts +0 -12
  117. package/build/esm/services/pipe/functions/symbol.js +0 -30
  118. package/build/esm/services/pipe/functions/unary.d.ts +0 -7
  119. package/build/esm/services/pipe/functions/unary.js +0 -15
  120. package/build/esm/services/pipe/index.d.ts +0 -30
  121. package/build/esm/services/pipe/index.js +0 -122
  122. package/build/esm/services/quorum/index.d.ts +0 -34
  123. package/build/esm/services/quorum/index.js +0 -144
  124. package/build/esm/services/reporter/index.d.ts +0 -47
  125. package/build/esm/services/reporter/index.js +0 -327
  126. package/build/esm/services/serializer/index.d.ts +0 -41
  127. package/build/esm/services/serializer/index.js +0 -251
  128. package/build/esm/services/signaler/store.d.ts +0 -15
  129. package/build/esm/services/signaler/store.js +0 -50
  130. package/build/esm/services/signaler/stream.d.ts +0 -43
  131. package/build/esm/services/signaler/stream.js +0 -314
  132. package/build/esm/services/store/cache.d.ts +0 -66
  133. package/build/esm/services/store/cache.js +0 -124
  134. package/build/esm/services/store/clients/ioredis.d.ts +0 -27
  135. package/build/esm/services/store/clients/ioredis.js +0 -93
  136. package/build/esm/services/store/clients/redis.d.ts +0 -29
  137. package/build/esm/services/store/clients/redis.js +0 -140
  138. package/build/esm/services/store/index.d.ts +0 -88
  139. package/build/esm/services/store/index.js +0 -623
  140. package/build/esm/services/stream/clients/ioredis.d.ts +0 -23
  141. package/build/esm/services/stream/clients/ioredis.js +0 -112
  142. package/build/esm/services/stream/clients/redis.d.ts +0 -23
  143. package/build/esm/services/stream/clients/redis.js +0 -116
  144. package/build/esm/services/stream/index.d.ts +0 -21
  145. package/build/esm/services/stream/index.js +0 -6
  146. package/build/esm/services/sub/clients/ioredis.d.ts +0 -20
  147. package/build/esm/services/sub/clients/ioredis.js +0 -69
  148. package/build/esm/services/sub/clients/redis.d.ts +0 -20
  149. package/build/esm/services/sub/clients/redis.js +0 -60
  150. package/build/esm/services/sub/index.d.ts +0 -18
  151. package/build/esm/services/sub/index.js +0 -6
  152. package/build/esm/services/task/index.d.ts +0 -18
  153. package/build/esm/services/task/index.js +0 -70
  154. package/build/esm/services/telemetry/index.d.ts +0 -49
  155. package/build/esm/services/telemetry/index.js +0 -217
  156. package/build/esm/services/worker/index.d.ts +0 -30
  157. package/build/esm/services/worker/index.js +0 -102
  158. package/build/esm/types/activity.d.ts +0 -92
  159. package/build/esm/types/activity.js +0 -1
  160. package/build/esm/types/app.d.ts +0 -16
  161. package/build/esm/types/app.js +0 -1
  162. package/build/esm/types/async.d.ts +0 -5
  163. package/build/esm/types/async.js +0 -1
  164. package/build/esm/types/cache.d.ts +0 -1
  165. package/build/esm/types/cache.js +0 -1
  166. package/build/esm/types/collator.d.ts +0 -8
  167. package/build/esm/types/collator.js +0 -8
  168. package/build/esm/types/durable.d.ts +0 -59
  169. package/build/esm/types/durable.js +0 -1
  170. package/build/esm/types/hook.d.ts +0 -31
  171. package/build/esm/types/hook.js +0 -6
  172. package/build/esm/types/hotmesh.d.ts +0 -82
  173. package/build/esm/types/hotmesh.js +0 -1
  174. package/build/esm/types/index.d.ts +0 -20
  175. package/build/esm/types/index.js +0 -5
  176. package/build/esm/types/ioredisclient.d.ts +0 -5
  177. package/build/esm/types/ioredisclient.js +0 -2
  178. package/build/esm/types/job.d.ts +0 -50
  179. package/build/esm/types/job.js +0 -1
  180. package/build/esm/types/logger.d.ts +0 -6
  181. package/build/esm/types/logger.js +0 -1
  182. package/build/esm/types/map.d.ts +0 -4
  183. package/build/esm/types/map.js +0 -1
  184. package/build/esm/types/pipe.d.ts +0 -4
  185. package/build/esm/types/pipe.js +0 -1
  186. package/build/esm/types/quorum.d.ts +0 -46
  187. package/build/esm/types/quorum.js +0 -1
  188. package/build/esm/types/redis.d.ts +0 -8
  189. package/build/esm/types/redis.js +0 -1
  190. package/build/esm/types/redisclient.d.ts +0 -25
  191. package/build/esm/types/redisclient.js +0 -1
  192. package/build/esm/types/serializer.d.ts +0 -33
  193. package/build/esm/types/serializer.js +0 -1
  194. package/build/esm/types/stats.d.ts +0 -83
  195. package/build/esm/types/stats.js +0 -1
  196. package/build/esm/types/stream.d.ts +0 -67
  197. package/build/esm/types/stream.js +0 -22
  198. package/build/esm/types/telemetry.d.ts +0 -1
  199. package/build/esm/types/telemetry.js +0 -1
  200. package/build/esm/types/transition.d.ts +0 -17
  201. package/build/esm/types/transition.js +0 -1
  202. package/tsconfig.cjs.json +0 -8
  203. package/tsconfig.esm.json +0 -9
  204. /package/build/{cjs/index.d.ts → index.d.ts} +0 -0
  205. /package/build/{cjs/index.js → index.js} +0 -0
  206. /package/build/{cjs/modules → modules}/errors.d.ts +0 -0
  207. /package/build/{cjs/modules → modules}/errors.js +0 -0
  208. /package/build/{cjs/modules → modules}/utils.d.ts +0 -0
  209. /package/build/{cjs/modules → modules}/utils.js +0 -0
  210. /package/build/{cjs/services → services}/activities/activity.d.ts +0 -0
  211. /package/build/{cjs/services → services}/activities/activity.js +0 -0
  212. /package/build/{cjs/services → services}/activities/await.d.ts +0 -0
  213. /package/build/{cjs/services → services}/activities/await.js +0 -0
  214. /package/build/{cjs/services → services}/activities/cycle.d.ts +0 -0
  215. /package/build/{cjs/services → services}/activities/cycle.js +0 -0
  216. /package/build/{cjs/services → services}/activities/emit.d.ts +0 -0
  217. /package/build/{cjs/services → services}/activities/emit.js +0 -0
  218. /package/build/{cjs/services → services}/activities/index.d.ts +0 -0
  219. /package/build/{cjs/services → services}/activities/index.js +0 -0
  220. /package/build/{cjs/services → services}/activities/iterate.d.ts +0 -0
  221. /package/build/{cjs/services → services}/activities/iterate.js +0 -0
  222. /package/build/{cjs/services → services}/activities/trigger.d.ts +0 -0
  223. /package/build/{cjs/services → services}/activities/trigger.js +0 -0
  224. /package/build/{cjs/services → services}/activities/worker.d.ts +0 -0
  225. /package/build/{cjs/services → services}/activities/worker.js +0 -0
  226. /package/build/{cjs/services → services}/collator/index.d.ts +0 -0
  227. /package/build/{cjs/services → services}/collator/index.js +0 -0
  228. /package/build/{cjs/services → services}/compiler/deployer.d.ts +0 -0
  229. /package/build/{cjs/services → services}/compiler/deployer.js +0 -0
  230. /package/build/{cjs/services → services}/compiler/index.d.ts +0 -0
  231. /package/build/{cjs/services → services}/compiler/index.js +0 -0
  232. /package/build/{cjs/services → services}/compiler/validator.d.ts +0 -0
  233. /package/build/{cjs/services → services}/compiler/validator.js +0 -0
  234. /package/build/{cjs/services → services}/connector/clients/ioredis.d.ts +0 -0
  235. /package/build/{cjs/services → services}/connector/clients/ioredis.js +0 -0
  236. /package/build/{cjs/services → services}/connector/clients/redis.d.ts +0 -0
  237. /package/build/{cjs/services → services}/connector/clients/redis.js +0 -0
  238. /package/build/{cjs/services → services}/connector/index.d.ts +0 -0
  239. /package/build/{cjs/services → services}/connector/index.js +0 -0
  240. /package/build/{cjs/services → services}/dimension/index.d.ts +0 -0
  241. /package/build/{cjs/services → services}/dimension/index.js +0 -0
  242. /package/build/{cjs/services → services}/durable/asyncLocalStorage.d.ts +0 -0
  243. /package/build/{cjs/services → services}/durable/asyncLocalStorage.js +0 -0
  244. /package/build/{cjs/services → services}/durable/client.d.ts +0 -0
  245. /package/build/{cjs/services → services}/durable/client.js +0 -0
  246. /package/build/{cjs/services → services}/durable/connection.d.ts +0 -0
  247. /package/build/{cjs/services → services}/durable/connection.js +0 -0
  248. /package/build/{cjs/services → services}/durable/factory.d.ts +0 -0
  249. /package/build/{cjs/services → services}/durable/factory.js +0 -0
  250. /package/build/{cjs/services → services}/durable/handle.d.ts +0 -0
  251. /package/build/{cjs/services → services}/durable/handle.js +0 -0
  252. /package/build/{cjs/services → services}/durable/index.d.ts +0 -0
  253. /package/build/{cjs/services → services}/durable/index.js +0 -0
  254. /package/build/{cjs/services → services}/durable/native.d.ts +0 -0
  255. /package/build/{cjs/services → services}/durable/workflow.d.ts +0 -0
  256. /package/build/{cjs/services → services}/engine/index.d.ts +0 -0
  257. /package/build/{cjs/services → services}/engine/index.js +0 -0
  258. /package/build/{cjs/services → services}/hotmesh/index.d.ts +0 -0
  259. /package/build/{cjs/services → services}/logger/index.d.ts +0 -0
  260. /package/build/{cjs/services → services}/logger/index.js +0 -0
  261. /package/build/{cjs/services → services}/mapper/index.d.ts +0 -0
  262. /package/build/{cjs/services → services}/mapper/index.js +0 -0
  263. /package/build/{cjs/services → services}/pipe/functions/array.d.ts +0 -0
  264. /package/build/{cjs/services → services}/pipe/functions/array.js +0 -0
  265. /package/build/{cjs/services → services}/pipe/functions/bitwise.d.ts +0 -0
  266. /package/build/{cjs/services → services}/pipe/functions/bitwise.js +0 -0
  267. /package/build/{cjs/services → services}/pipe/functions/conditional.d.ts +0 -0
  268. /package/build/{cjs/services → services}/pipe/functions/conditional.js +0 -0
  269. /package/build/{cjs/services → services}/pipe/functions/date.d.ts +0 -0
  270. /package/build/{cjs/services → services}/pipe/functions/date.js +0 -0
  271. /package/build/{cjs/services → services}/pipe/functions/index.d.ts +0 -0
  272. /package/build/{cjs/services → services}/pipe/functions/index.js +0 -0
  273. /package/build/{cjs/services → services}/pipe/functions/json.d.ts +0 -0
  274. /package/build/{cjs/services → services}/pipe/functions/json.js +0 -0
  275. /package/build/{cjs/services → services}/pipe/functions/math.d.ts +0 -0
  276. /package/build/{cjs/services → services}/pipe/functions/math.js +0 -0
  277. /package/build/{cjs/services → services}/pipe/functions/number.d.ts +0 -0
  278. /package/build/{cjs/services → services}/pipe/functions/number.js +0 -0
  279. /package/build/{cjs/services → services}/pipe/functions/object.d.ts +0 -0
  280. /package/build/{cjs/services → services}/pipe/functions/object.js +0 -0
  281. /package/build/{cjs/services → services}/pipe/functions/string.d.ts +0 -0
  282. /package/build/{cjs/services → services}/pipe/functions/string.js +0 -0
  283. /package/build/{cjs/services → services}/pipe/functions/symbol.d.ts +0 -0
  284. /package/build/{cjs/services → services}/pipe/functions/symbol.js +0 -0
  285. /package/build/{cjs/services → services}/pipe/functions/unary.d.ts +0 -0
  286. /package/build/{cjs/services → services}/pipe/functions/unary.js +0 -0
  287. /package/build/{cjs/services → services}/pipe/index.d.ts +0 -0
  288. /package/build/{cjs/services → services}/pipe/index.js +0 -0
  289. /package/build/{cjs/services → services}/quorum/index.d.ts +0 -0
  290. /package/build/{cjs/services → services}/quorum/index.js +0 -0
  291. /package/build/{cjs/services → services}/reporter/index.d.ts +0 -0
  292. /package/build/{cjs/services → services}/reporter/index.js +0 -0
  293. /package/build/{cjs/services → services}/serializer/index.d.ts +0 -0
  294. /package/build/{cjs/services → services}/serializer/index.js +0 -0
  295. /package/build/{cjs/services → services}/signaler/store.d.ts +0 -0
  296. /package/build/{cjs/services → services}/signaler/store.js +0 -0
  297. /package/build/{cjs/services → services}/signaler/stream.d.ts +0 -0
  298. /package/build/{cjs/services → services}/signaler/stream.js +0 -0
  299. /package/build/{cjs/services → services}/store/cache.d.ts +0 -0
  300. /package/build/{cjs/services → services}/store/cache.js +0 -0
  301. /package/build/{cjs/services → services}/store/clients/ioredis.d.ts +0 -0
  302. /package/build/{cjs/services → services}/store/clients/ioredis.js +0 -0
  303. /package/build/{cjs/services → services}/store/clients/redis.d.ts +0 -0
  304. /package/build/{cjs/services → services}/store/clients/redis.js +0 -0
  305. /package/build/{cjs/services → services}/store/index.d.ts +0 -0
  306. /package/build/{cjs/services → services}/stream/clients/ioredis.d.ts +0 -0
  307. /package/build/{cjs/services → services}/stream/clients/redis.d.ts +0 -0
  308. /package/build/{cjs/services → services}/stream/index.d.ts +0 -0
  309. /package/build/{cjs/services → services}/stream/index.js +0 -0
  310. /package/build/{cjs/services → services}/sub/clients/ioredis.d.ts +0 -0
  311. /package/build/{cjs/services → services}/sub/clients/redis.d.ts +0 -0
  312. /package/build/{cjs/services → services}/sub/index.d.ts +0 -0
  313. /package/build/{cjs/services → services}/sub/index.js +0 -0
  314. /package/build/{cjs/services → services}/task/index.d.ts +0 -0
  315. /package/build/{cjs/services → services}/task/index.js +0 -0
  316. /package/build/{cjs/services → services}/telemetry/index.d.ts +0 -0
  317. /package/build/{cjs/services → services}/telemetry/index.js +0 -0
  318. /package/build/{cjs/services → services}/worker/index.d.ts +0 -0
  319. /package/build/{cjs/services → services}/worker/index.js +0 -0
  320. /package/build/{cjs/types → types}/activity.d.ts +0 -0
  321. /package/build/{cjs/types → types}/activity.js +0 -0
  322. /package/build/{cjs/types → types}/app.d.ts +0 -0
  323. /package/build/{cjs/types → types}/app.js +0 -0
  324. /package/build/{cjs/types → types}/async.d.ts +0 -0
  325. /package/build/{cjs/types → types}/async.js +0 -0
  326. /package/build/{cjs/types → types}/cache.d.ts +0 -0
  327. /package/build/{cjs/types → types}/cache.js +0 -0
  328. /package/build/{cjs/types → types}/collator.d.ts +0 -0
  329. /package/build/{cjs/types → types}/collator.js +0 -0
  330. /package/build/{cjs/types → types}/durable.js +0 -0
  331. /package/build/{cjs/types → types}/hook.d.ts +0 -0
  332. /package/build/{cjs/types → types}/hook.js +0 -0
  333. /package/build/{cjs/types → types}/hotmesh.d.ts +0 -0
  334. /package/build/{cjs/types → types}/hotmesh.js +0 -0
  335. /package/build/{cjs/types → types}/index.d.ts +0 -0
  336. /package/build/{cjs/types → types}/index.js +0 -0
  337. /package/build/{cjs/types → types}/ioredisclient.d.ts +0 -0
  338. /package/build/{cjs/types → types}/ioredisclient.js +0 -0
  339. /package/build/{cjs/types → types}/job.d.ts +0 -0
  340. /package/build/{cjs/types → types}/job.js +0 -0
  341. /package/build/{cjs/types → types}/logger.d.ts +0 -0
  342. /package/build/{cjs/types → types}/logger.js +0 -0
  343. /package/build/{cjs/types → types}/map.d.ts +0 -0
  344. /package/build/{cjs/types → types}/map.js +0 -0
  345. /package/build/{cjs/types → types}/pipe.d.ts +0 -0
  346. /package/build/{cjs/types → types}/pipe.js +0 -0
  347. /package/build/{cjs/types → types}/quorum.d.ts +0 -0
  348. /package/build/{cjs/types → types}/quorum.js +0 -0
  349. /package/build/{cjs/types → types}/redis.d.ts +0 -0
  350. /package/build/{cjs/types → types}/redis.js +0 -0
  351. /package/build/{cjs/types → types}/redisclient.d.ts +0 -0
  352. /package/build/{cjs/types → types}/redisclient.js +0 -0
  353. /package/build/{cjs/types → types}/serializer.d.ts +0 -0
  354. /package/build/{cjs/types → types}/serializer.js +0 -0
  355. /package/build/{cjs/types → types}/stats.d.ts +0 -0
  356. /package/build/{cjs/types → types}/stats.js +0 -0
  357. /package/build/{cjs/types → types}/stream.d.ts +0 -0
  358. /package/build/{cjs/types → types}/stream.js +0 -0
  359. /package/build/{cjs/types → types}/telemetry.d.ts +0 -0
  360. /package/build/{cjs/types → types}/telemetry.js +0 -0
  361. /package/build/{cjs/types → types}/transition.d.ts +0 -0
  362. /package/build/{cjs/types → types}/transition.js +0 -0
@@ -1,327 +0,0 @@
1
- import { Pipe } from '../pipe';
2
- class ReporterService {
3
- constructor(appVersion, store, logger) {
4
- this.appVersion = appVersion;
5
- this.logger = logger;
6
- this.store = store;
7
- }
8
- async getStats(options) {
9
- this.logger.debug('reporter-getstats-started', options);
10
- const { key, granularity, range, end, start } = options;
11
- this.validateOptions(options);
12
- const dateTimeSets = this.generateDateTimeSets(granularity, range, end, start);
13
- const redisKeys = dateTimeSets.map((dateTime) => this.buildRedisKey(key, dateTime));
14
- const rawData = await this.store.getJobStats(redisKeys);
15
- const [count, aggregatedData] = this.aggregateData(rawData);
16
- const statsResponse = this.buildStatsResponse(rawData, redisKeys, aggregatedData, count, options);
17
- return statsResponse;
18
- }
19
- validateOptions(options) {
20
- const { start, end, range } = options;
21
- if (start && end && range || !start && !end && !range) {
22
- throw new Error('Invalid combination of start, end, and range values. Provide either start+end, end+range, or start+range.');
23
- }
24
- }
25
- generateDateTimeSets(granularity, range, end, start) {
26
- if (!range) {
27
- //pluck just a single value when no range provided
28
- range = '0m';
29
- }
30
- const granularitiesInMinutes = {
31
- '5m': 5,
32
- '10m': 10,
33
- '15m': 15,
34
- '30m': 30,
35
- '1h': 60,
36
- };
37
- const granularityMinutes = granularitiesInMinutes[granularity];
38
- if (!granularityMinutes) {
39
- throw new Error('Invalid granularity value.');
40
- }
41
- const rangeMinutes = this.convertRangeToMinutes(range);
42
- if (rangeMinutes === null) {
43
- throw new Error('Invalid range value.');
44
- }
45
- // If start is provided, use it. Otherwise, calculate it from the end time and range.
46
- let startTime;
47
- let endTime;
48
- if (start) {
49
- startTime = new Date(start);
50
- endTime = new Date(startTime.getTime() + rangeMinutes * 60 * 1000);
51
- }
52
- else {
53
- endTime = end === 'NOW' ? new Date() : new Date(end);
54
- startTime = new Date(endTime.getTime() - rangeMinutes * 60 * 1000);
55
- }
56
- // Round the start time to the nearest granularity unit
57
- startTime.setUTCMinutes(Math.floor(startTime.getUTCMinutes() / granularityMinutes) * granularityMinutes);
58
- const dateTimeSets = [];
59
- for (let time = startTime; time <= endTime; time.setUTCMinutes(time.getUTCMinutes() + granularityMinutes)) {
60
- const formattedTime = [
61
- time.getUTCFullYear(),
62
- String(time.getUTCMonth() + 1).padStart(2, '0'),
63
- String(time.getUTCDate()).padStart(2, '0'),
64
- String(time.getUTCHours()).padStart(2, '0'),
65
- String(time.getUTCMinutes()).padStart(2, '0'),
66
- ].join('');
67
- dateTimeSets.push(formattedTime);
68
- }
69
- return dateTimeSets;
70
- }
71
- convertRangeToMinutes(range) {
72
- const timeUnit = range.slice(-1);
73
- const value = parseInt(range.slice(0, -1), 10);
74
- if (isNaN(value)) {
75
- return null;
76
- }
77
- switch (timeUnit) {
78
- case 'm':
79
- return value;
80
- case 'h':
81
- return value * 60;
82
- case 'd':
83
- return value * 60 * 24;
84
- default:
85
- return null;
86
- }
87
- }
88
- buildRedisKey(key, dateTime, subTarget = '') {
89
- return `hmsh:${this.appVersion.id}:s:${key}:${dateTime}${subTarget ? ':' + subTarget : ''}`;
90
- }
91
- aggregateData(rawData) {
92
- const aggregatedData = {};
93
- let count = 0;
94
- Object.entries(rawData).forEach(([_, data]) => {
95
- for (const key in data) {
96
- if (key.startsWith('count:')) {
97
- const target = key.slice('count:'.length);
98
- if (!aggregatedData[target]) {
99
- aggregatedData[target] = 0;
100
- }
101
- aggregatedData[target] += data[key];
102
- }
103
- else if (key === 'count') {
104
- count += data[key];
105
- }
106
- }
107
- });
108
- return [count, aggregatedData];
109
- }
110
- buildStatsResponse(rawData, redisKeys, aggregatedData, count, options) {
111
- const measures = [];
112
- const measureKeys = Object.keys(aggregatedData).filter((key) => key !== "count");
113
- let segments = undefined;
114
- if (options.sparse !== true) {
115
- segments = this.handleSegments(rawData, redisKeys);
116
- }
117
- measureKeys.forEach((key) => {
118
- const measure = {
119
- target: key,
120
- type: "count",
121
- value: aggregatedData[key],
122
- };
123
- measures.push(measure);
124
- });
125
- const response = {
126
- key: options.key,
127
- granularity: options.granularity,
128
- range: options.range,
129
- end: options.end,
130
- count,
131
- measures: measures,
132
- };
133
- if (segments) {
134
- response.segments = segments;
135
- }
136
- return response;
137
- }
138
- handleSegments(data, hashKeys) {
139
- const segments = [];
140
- hashKeys.forEach((hashKey, index) => {
141
- const segmentData = [];
142
- data[hashKey] && Object.entries(data[hashKey]).forEach(([key, value]) => {
143
- if (key.startsWith('count:')) {
144
- const target = key.slice('count:'.length);
145
- segmentData.push({ target, type: 'count', value });
146
- }
147
- });
148
- const isoTimestamp = this.isoTimestampFromKeyTimestamp(hashKey);
149
- const count = data[hashKey] ? data[hashKey].count : 0;
150
- segments.push({ count, time: isoTimestamp, measures: segmentData });
151
- });
152
- return segments;
153
- }
154
- isoTimestampFromKeyTimestamp(hashKey) {
155
- const keyTimestamp = hashKey.slice(-12);
156
- const year = keyTimestamp.slice(0, 4);
157
- const month = keyTimestamp.slice(4, 6);
158
- const day = keyTimestamp.slice(6, 8);
159
- const hour = keyTimestamp.slice(8, 10);
160
- const minute = keyTimestamp.slice(10, 12);
161
- return `${year}-${month}-${day}T${hour}:${minute}Z`;
162
- }
163
- async getIds(options, facets, idRange = [0, -1]) {
164
- if (!facets.length) {
165
- const stats = await this.getStats(options);
166
- facets = this.getUniqueFacets(stats);
167
- }
168
- const { key, granularity, range, end, start } = options;
169
- this.validateOptions(options);
170
- let redisKeys = [];
171
- facets.forEach((facet) => {
172
- const dateTimeSets = this.generateDateTimeSets(granularity, range, end, start);
173
- redisKeys = redisKeys.concat(dateTimeSets.map((dateTime) => this.buildRedisKey(key, dateTime, `index:${facet}`)));
174
- });
175
- const idsData = await this.store.getJobIds(redisKeys, idRange);
176
- const idsResponse = this.buildIdsResponse(idsData, options, facets);
177
- return idsResponse;
178
- }
179
- buildIdsResponse(idsData, options, facets) {
180
- const countsByFacet = {};
181
- const measureKeys = Object.keys(idsData);
182
- measureKeys.forEach((key) => {
183
- const target = this.getTargetForKey(key);
184
- const count = idsData[key].length;
185
- if (countsByFacet[target]) {
186
- countsByFacet[target] += count;
187
- }
188
- else {
189
- countsByFacet[target] = count;
190
- }
191
- });
192
- const counts = Object.entries(countsByFacet).map(([facet, count]) => ({ facet, count }));
193
- const response = {
194
- key: options.key,
195
- facets,
196
- granularity: options.granularity,
197
- range: options.range,
198
- start: options.start,
199
- counts,
200
- segments: this.buildTimeSegments(idsData),
201
- };
202
- return response;
203
- }
204
- buildTimeSegments(idsData) {
205
- const measureKeys = Object.keys(idsData);
206
- const timeSegments = {};
207
- measureKeys.forEach((key) => {
208
- const measure = {
209
- type: 'ids',
210
- target: this.getTargetForKey(key),
211
- time: this.isoTimestampFromKeyTimestamp(this.getTargetForTime(key)),
212
- count: idsData[key].length,
213
- ids: idsData[key],
214
- };
215
- if (timeSegments[measure.time]) {
216
- timeSegments[measure.time].push(measure);
217
- }
218
- else {
219
- timeSegments[measure.time] = [measure];
220
- }
221
- });
222
- const segments = Object.entries(timeSegments).map(([time, measures]) => ({
223
- time,
224
- measures,
225
- }));
226
- return segments;
227
- }
228
- getUniqueFacets(data) {
229
- const targets = data.measures.map(measure => measure.target);
230
- return Array.from(new Set(targets));
231
- }
232
- getTargetForKey(key) {
233
- return key.split(':index:')[1];
234
- }
235
- getTargetForTime(key) {
236
- return key.split(':index:')[0];
237
- }
238
- async getWorkItems(options, facets) {
239
- if (!facets.length) {
240
- const stats = await this.getStats(options);
241
- facets = this.getUniqueFacets(stats);
242
- }
243
- const { key, granularity, range, end, start } = options;
244
- this.validateOptions(options);
245
- let redisKeys = [];
246
- facets.forEach((facet) => {
247
- const dateTimeSets = this.generateDateTimeSets(granularity, range, end, start);
248
- redisKeys = redisKeys.concat(dateTimeSets.map((dateTime) => this.buildRedisKey(key, dateTime, `index:${facet}`)));
249
- });
250
- const idsData = await this.store.getJobIds(redisKeys, [0, 1]);
251
- const workerLists = this.buildWorkerLists(idsData);
252
- return workerLists;
253
- }
254
- buildWorkerLists(idsData) {
255
- const workerLists = [];
256
- for (const key in idsData) {
257
- if (idsData[key].length) {
258
- workerLists.push(key);
259
- }
260
- }
261
- return workerLists;
262
- }
263
- /**
264
- * called by `trigger` activity to generate the stats that should
265
- * be saved to the database. doesn't actually save the stats, but
266
- * just generates the info that should be saved
267
- */
268
- resolveTriggerStatistics({ stats: statsConfig }, context) {
269
- const stats = {
270
- general: [],
271
- index: [],
272
- median: []
273
- };
274
- stats.general.push({ metric: 'count', target: 'count', value: 1 });
275
- for (const measure of statsConfig.measures) {
276
- const metric = this.resolveMetric({ metric: measure.measure, target: measure.target }, context);
277
- if (this.isGeneralMetric(measure.measure)) {
278
- stats.general.push(metric);
279
- }
280
- else if (this.isMedianMetric(measure.measure)) {
281
- stats.median.push(metric);
282
- }
283
- else if (this.isIndexMetric(measure.measure)) {
284
- stats.index.push(metric);
285
- }
286
- }
287
- return stats;
288
- }
289
- isGeneralMetric(metric) {
290
- return metric === 'sum' || metric === 'avg' || metric === 'count';
291
- }
292
- isMedianMetric(metric) {
293
- return metric === 'mdn';
294
- }
295
- isIndexMetric(metric) {
296
- return metric === 'index';
297
- }
298
- resolveMetric({ metric, target }, context) {
299
- const pipe = new Pipe([[target]], context);
300
- const resolvedValue = pipe.process().toString();
301
- const resolvedTarget = this.resolveTarget(metric, target, resolvedValue);
302
- if (metric === 'index') {
303
- return { metric, target: resolvedTarget, value: context.metadata.jid };
304
- }
305
- else if (metric === 'count') {
306
- return { metric, target: resolvedTarget, value: 1 };
307
- }
308
- return { metric, target: resolvedTarget, value: resolvedValue };
309
- }
310
- isCardinalMetric(metric) {
311
- return metric === 'index' || metric === 'count';
312
- }
313
- resolveTarget(metric, target, resolvedValue) {
314
- const trimmed = target.substring(1, target.length - 1);
315
- const trimmedTarget = trimmed.split('.').slice(3).join('/');
316
- let resolvedTarget;
317
- if (this.isCardinalMetric(metric)) {
318
- resolvedTarget = `${metric}:${trimmedTarget}:${resolvedValue}`;
319
- }
320
- else {
321
- resolvedTarget = `${metric}:${trimmedTarget}`;
322
- }
323
- return resolvedTarget;
324
- }
325
- }
326
- ReporterService.DEFAULT_GRANULARITY = '5m';
327
- export { ReporterService };
@@ -1,41 +0,0 @@
1
- import { Consumes } from '../../types/activity';
2
- import { StringStringType, StringAnyType, SymbolMap, SymbolMaps, SymbolSets, Symbols } from '../../types/serializer';
3
- export declare const MDATA_SYMBOLS: {
4
- SLOTS: number;
5
- ACTIVITY: {
6
- KEYS: string[];
7
- };
8
- ACTIVITY_UPDATE: {
9
- KEYS: string[];
10
- };
11
- JOB: {
12
- KEYS: string[];
13
- };
14
- JOB_UPDATE: {
15
- KEYS: string[];
16
- };
17
- };
18
- export declare class SerializerService {
19
- dIds: StringStringType;
20
- symKeys: SymbolMaps;
21
- symReverseKeys: SymbolMaps;
22
- symValMaps: SymbolMap;
23
- symValReverseMaps: SymbolMap;
24
- constructor();
25
- abbreviate(consumes: Consumes, symbolNames: string[], fields?: string[]): string[];
26
- resolveDimensionalIndex(path: string): string;
27
- isJobPath(path: string): boolean;
28
- resetSymbols(symKeys: SymbolSets, symVals: Symbols, dIds: StringStringType): void;
29
- getReverseKeyMap(keyMap: SymbolMap, id?: string): SymbolMap;
30
- getReverseValueMap(valueMap: SymbolMap): SymbolMap;
31
- static filterSymVals(startIndex: number, maxIndex: number, existingSymbolValues: Symbols, proposedValues: Set<string>): Symbols;
32
- compress(document: StringStringType, ids: string[]): StringStringType;
33
- decompress(document: StringStringType, ids: string[]): StringStringType;
34
- stringify(document: Record<string, any>): StringStringType;
35
- parse(document: StringStringType): any;
36
- toString(value: any): string | undefined;
37
- fromString(value: string | undefined): any;
38
- package(multiDimensionalDocument: StringAnyType, ids: string[]): StringStringType;
39
- unpackage(document: StringStringType, ids: string[]): StringAnyType;
40
- export(): SymbolSets;
41
- }
@@ -1,251 +0,0 @@
1
- import { getSymVal } from '../../modules/utils';
2
- const dateReg = /^"\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?"$/;
3
- export const MDATA_SYMBOLS = {
4
- SLOTS: 26,
5
- ACTIVITY: {
6
- KEYS: ['aid', 'dad', 'as', 'atp', 'stp', 'ac', 'au', 'err', 'l1s', 'l2s']
7
- },
8
- ACTIVITY_UPDATE: {
9
- KEYS: ['au', 'err', 'l2s']
10
- },
11
- JOB: {
12
- KEYS: ['ngn', 'tpc', 'pj', 'pd', 'pa', 'key', 'app', 'vrs', 'jid', 'aid', 'ts', 'jc', 'ju', 'js', 'err', 'trc']
13
- },
14
- JOB_UPDATE: {
15
- KEYS: ['ju', 'err']
16
- }
17
- };
18
- export class SerializerService {
19
- constructor() {
20
- this.resetSymbols({}, {}, {});
21
- }
22
- abbreviate(consumes, symbolNames, fields = []) {
23
- for (const symbolName of symbolNames) {
24
- const symbolSet = this.symKeys.get(symbolName);
25
- const symbolPaths = consumes[symbolName];
26
- for (const symbolPath of symbolPaths) {
27
- const abbreviation = symbolSet.get(symbolPath);
28
- if (abbreviation) {
29
- const dimensionalIndex = this.resolveDimensionalIndex(symbolPath);
30
- fields.push(`${abbreviation}${dimensionalIndex}`);
31
- }
32
- else {
33
- fields.push(symbolPath);
34
- }
35
- }
36
- }
37
- return fields;
38
- }
39
- resolveDimensionalIndex(path) {
40
- if (this.isJobPath(path)) {
41
- return '';
42
- }
43
- else {
44
- const [activityId] = path.split('/');
45
- if (activityId in this.dIds) {
46
- return this.dIds[activityId];
47
- }
48
- else if ('$ADJACENT' in this.dIds) {
49
- //else=> pre-authorizing adjacent activity entry
50
- return this.dIds['$ADJACENT'];
51
- }
52
- return ',0';
53
- }
54
- }
55
- isJobPath(path) {
56
- return path.startsWith('data/') || path.startsWith('metadata/');
57
- }
58
- resetSymbols(symKeys, symVals, dIds) {
59
- this.symKeys = new Map();
60
- this.symReverseKeys = new Map();
61
- for (const id in symKeys) {
62
- this.symKeys.set(id, new Map(Object.entries(symKeys[id])));
63
- }
64
- this.symValMaps = new Map(Object.entries(symVals));
65
- this.symValReverseMaps = this.getReverseValueMap(this.symValMaps);
66
- this.dIds = dIds;
67
- }
68
- getReverseKeyMap(keyMap, id) {
69
- let map = this.symReverseKeys.get(id);
70
- if (!map) {
71
- map = new Map();
72
- for (let [key, val] of keyMap.entries()) {
73
- map.set(val, key);
74
- }
75
- this.symReverseKeys.set(id, map);
76
- }
77
- return map;
78
- }
79
- getReverseValueMap(valueMap) {
80
- const map = new Map();
81
- for (let [key, val] of valueMap.entries()) {
82
- map.set(val, key);
83
- }
84
- return map;
85
- }
86
- static filterSymVals(startIndex, maxIndex, existingSymbolValues, proposedValues) {
87
- let newSymbolValues = {};
88
- let currentSymbolValues = { ...existingSymbolValues };
89
- let currentValuesSet = new Set(Object.values(currentSymbolValues));
90
- for (let value of proposedValues) {
91
- if (!currentValuesSet.has(value)) {
92
- if (startIndex > maxIndex) {
93
- return newSymbolValues;
94
- }
95
- const symbol = getSymVal(startIndex);
96
- startIndex++;
97
- newSymbolValues[symbol] = value;
98
- currentValuesSet.add(value);
99
- }
100
- }
101
- return newSymbolValues;
102
- }
103
- compress(document, ids) {
104
- if (this.symKeys.size === 0) {
105
- return document;
106
- }
107
- let source = { ...document };
108
- let result = {};
109
- const compressWithMap = (abbreviationMap, id) => {
110
- for (let key in source) {
111
- if (key.startsWith(`${id}/`) || (id.startsWith('$') && ['data', 'metadata'].includes(key.split('/')[0]))) {
112
- const dimensionalIndex = this.resolveDimensionalIndex(key);
113
- let shortKey = abbreviationMap.get(key) || key;
114
- const shortDimensionalKey = `${shortKey}${dimensionalIndex}`;
115
- result[shortDimensionalKey] = source[key];
116
- }
117
- }
118
- };
119
- for (let id of ids) {
120
- const abbreviationMap = this.symKeys.get(id);
121
- if (abbreviationMap) {
122
- compressWithMap(abbreviationMap, id);
123
- }
124
- }
125
- return result;
126
- }
127
- decompress(document, ids) {
128
- if (this.symKeys.size === 0) {
129
- return document;
130
- }
131
- let result = { ...document };
132
- const inflateWithMap = (abbreviationMap, id) => {
133
- const reversedAbbreviationMap = this.getReverseKeyMap(abbreviationMap, id);
134
- for (let key in result) {
135
- //strip dimensional index from key
136
- const shortKey = key.split(',')[0];
137
- let longKey = reversedAbbreviationMap.get(shortKey);
138
- if (longKey) {
139
- result[longKey] = result[key];
140
- delete result[key];
141
- }
142
- }
143
- };
144
- for (let id of ids) {
145
- const abbreviationMap = this.symKeys.get(id);
146
- if (abbreviationMap) {
147
- inflateWithMap(abbreviationMap, id);
148
- }
149
- }
150
- return result;
151
- }
152
- //stringify: convert a multi-dimensional document to a 2-d hash
153
- stringify(document) {
154
- let result = {};
155
- for (let key in document) {
156
- let value = this.toString(document[key]);
157
- if (value) {
158
- if (/^:*[a-zA-Z]{2}$/.test(value)) {
159
- value = ':' + value;
160
- }
161
- else if (this.symValReverseMaps.has(value)) {
162
- value = this.symValReverseMaps.get(value);
163
- }
164
- result[key] = value;
165
- }
166
- }
167
- return result;
168
- }
169
- //parse: convert a 2-d hash to a multi-dimensional document
170
- parse(document) {
171
- let result = {};
172
- for (let [key, value] of Object.entries(document)) {
173
- if (value === undefined || value === null)
174
- continue;
175
- if (/^:+[a-zA-Z]{2}$/.test(value)) {
176
- result[key] = value.slice(1);
177
- }
178
- else {
179
- if (value?.length === 2 && this.symValMaps.has(value)) {
180
- value = this.symValMaps.get(value);
181
- }
182
- result[key] = this.fromString(value);
183
- }
184
- }
185
- return result;
186
- }
187
- toString(value) {
188
- switch (typeof value) {
189
- case 'string':
190
- break;
191
- case 'boolean':
192
- value = value ? '/t' : '/f';
193
- break;
194
- case 'number':
195
- value = '/d' + value.toString();
196
- break;
197
- case 'undefined':
198
- return undefined;
199
- case 'object':
200
- if (value === null) {
201
- value = '/n';
202
- }
203
- else {
204
- value = '/s' + JSON.stringify(value);
205
- }
206
- break;
207
- }
208
- return value;
209
- }
210
- fromString(value) {
211
- if (typeof value !== 'string')
212
- return undefined;
213
- const prefix = value.slice(0, 2);
214
- const rest = value.slice(2);
215
- switch (prefix) {
216
- case '/t': // boolean true
217
- return true;
218
- case '/f': // boolean false
219
- return false;
220
- case '/d': // number
221
- return Number(rest);
222
- case '/n': // null
223
- return null;
224
- case '/s': // object (JSON string)
225
- if (dateReg.exec(rest)) {
226
- return new Date(JSON.parse(rest));
227
- }
228
- return JSON.parse(rest);
229
- default: // string
230
- return value;
231
- }
232
- }
233
- package(multiDimensionalDocument, ids) {
234
- const flatDocument = this.stringify(multiDimensionalDocument);
235
- return this.compress(flatDocument, ids);
236
- }
237
- unpackage(document, ids) {
238
- const multiDimensionalDocument = this.decompress(document, ids);
239
- return this.parse(multiDimensionalDocument);
240
- }
241
- export() {
242
- const obj = {};
243
- for (const [id, map] of this.symKeys.entries()) {
244
- obj[id] = {};
245
- for (const [key, value] of map.entries()) {
246
- obj[id][key] = value;
247
- }
248
- }
249
- return obj;
250
- }
251
- }
@@ -1,15 +0,0 @@
1
- import { ILogger } from '../logger';
2
- import { StoreService } from '../store';
3
- import { HookRule } from '../../types/hook';
4
- import { JobState } from '../../types/job';
5
- import { RedisClient, RedisMulti } from '../../types/redis';
6
- declare class StoreSignaler {
7
- store: StoreService<RedisClient, RedisMulti>;
8
- logger: ILogger;
9
- constructor(store: StoreService<RedisClient, RedisMulti>, logger: ILogger);
10
- getHookRule(topic: string): Promise<HookRule | undefined>;
11
- registerWebHook(topic: string, context: JobState, multi?: RedisMulti): Promise<string>;
12
- processWebHookSignal(topic: string, data: Record<string, unknown>): Promise<string>;
13
- deleteWebHookSignal(topic: string, data: Record<string, unknown>): Promise<number>;
14
- }
15
- export { StoreSignaler };
@@ -1,50 +0,0 @@
1
- class StoreSignaler {
2
- constructor(store, logger) {
3
- this.store = store;
4
- this.logger = logger;
5
- }
6
- async getHookRule(topic) {
7
- const rules = await this.store.getHookRules();
8
- return rules?.[topic]?.[0];
9
- }
10
- async registerWebHook(topic, context, multi) {
11
- const hookRule = await this.getHookRule(topic);
12
- if (hookRule) {
13
- const jobId = context.metadata.jid;
14
- const hook = {
15
- topic,
16
- resolved: jobId,
17
- jobId,
18
- };
19
- await this.store.setHookSignal(hook, multi);
20
- return jobId;
21
- }
22
- else {
23
- throw new Error('signaler.registerWebHook:error: hook rule not found');
24
- }
25
- }
26
- async processWebHookSignal(topic, data) {
27
- const hookRule = await this.getHookRule(topic);
28
- if (hookRule) {
29
- //todo: use the rule to generate `resolved`
30
- const resolved = data.id;
31
- const jobId = await this.store.getHookSignal(topic, resolved);
32
- return jobId;
33
- }
34
- else {
35
- throw new Error('signaler.process:error: hook rule not found');
36
- }
37
- }
38
- async deleteWebHookSignal(topic, data) {
39
- const hookRule = await this.getHookRule(topic);
40
- if (hookRule) {
41
- //todo: use the rule to generate `resolved`
42
- const resolved = data.id;
43
- return await this.store.deleteHookSignal(topic, resolved);
44
- }
45
- else {
46
- throw new Error('signaler.process:error: hook rule not found');
47
- }
48
- }
49
- }
50
- export { StoreSignaler };