@effect/cluster 0.0.0-snapshot-d33d8b050b8e3c87dcde9587083e6c1cf733f72b

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 (375) hide show
  1. package/AtLeastOnce/package.json +6 -0
  2. package/AtLeastOnceStorage/package.json +6 -0
  3. package/Broadcaster/package.json +6 -0
  4. package/LICENSE +21 -0
  5. package/ManagerConfig/package.json +6 -0
  6. package/Message/package.json +6 -0
  7. package/MessageState/package.json +6 -0
  8. package/Messenger/package.json +6 -0
  9. package/Pod/package.json +6 -0
  10. package/PodAddress/package.json +6 -0
  11. package/Pods/package.json +6 -0
  12. package/PodsHealth/package.json +6 -0
  13. package/PoisonPill/package.json +6 -0
  14. package/README.md +3 -0
  15. package/RecipientAddress/package.json +6 -0
  16. package/RecipientBehaviour/package.json +6 -0
  17. package/RecipientBehaviourContext/package.json +6 -0
  18. package/RecipientType/package.json +6 -0
  19. package/Serialization/package.json +6 -0
  20. package/SerializedEnvelope/package.json +6 -0
  21. package/SerializedMessage/package.json +6 -0
  22. package/ShardId/package.json +6 -0
  23. package/ShardManager/package.json +6 -0
  24. package/ShardManagerClient/package.json +6 -0
  25. package/Sharding/package.json +6 -0
  26. package/ShardingConfig/package.json +6 -0
  27. package/ShardingEvent/package.json +6 -0
  28. package/ShardingException/package.json +6 -0
  29. package/ShardingRegistrationEvent/package.json +6 -0
  30. package/Storage/package.json +6 -0
  31. package/dist/cjs/AtLeastOnce.js +43 -0
  32. package/dist/cjs/AtLeastOnce.js.map +1 -0
  33. package/dist/cjs/AtLeastOnceStorage.js +48 -0
  34. package/dist/cjs/AtLeastOnceStorage.js.map +1 -0
  35. package/dist/cjs/Broadcaster.js +6 -0
  36. package/dist/cjs/Broadcaster.js.map +1 -0
  37. package/dist/cjs/ManagerConfig.js +57 -0
  38. package/dist/cjs/ManagerConfig.js.map +1 -0
  39. package/dist/cjs/Message.js +64 -0
  40. package/dist/cjs/Message.js.map +1 -0
  41. package/dist/cjs/MessageState.js +78 -0
  42. package/dist/cjs/MessageState.js.map +1 -0
  43. package/dist/cjs/Messenger.js +6 -0
  44. package/dist/cjs/Messenger.js.map +1 -0
  45. package/dist/cjs/Pod.js +101 -0
  46. package/dist/cjs/Pod.js.map +1 -0
  47. package/dist/cjs/PodAddress.js +100 -0
  48. package/dist/cjs/PodAddress.js.map +1 -0
  49. package/dist/cjs/Pods.js +58 -0
  50. package/dist/cjs/Pods.js.map +1 -0
  51. package/dist/cjs/PodsHealth.js +64 -0
  52. package/dist/cjs/PodsHealth.js.map +1 -0
  53. package/dist/cjs/PoisonPill.js +101 -0
  54. package/dist/cjs/PoisonPill.js.map +1 -0
  55. package/dist/cjs/RecipientAddress.js +102 -0
  56. package/dist/cjs/RecipientAddress.js.map +1 -0
  57. package/dist/cjs/RecipientBehaviour.js +61 -0
  58. package/dist/cjs/RecipientBehaviour.js.map +1 -0
  59. package/dist/cjs/RecipientBehaviourContext.js +87 -0
  60. package/dist/cjs/RecipientBehaviourContext.js.map +1 -0
  61. package/dist/cjs/RecipientType.js +142 -0
  62. package/dist/cjs/RecipientType.js.map +1 -0
  63. package/dist/cjs/Serialization.js +55 -0
  64. package/dist/cjs/Serialization.js.map +1 -0
  65. package/dist/cjs/SerializedEnvelope.js +111 -0
  66. package/dist/cjs/SerializedEnvelope.js.map +1 -0
  67. package/dist/cjs/SerializedMessage.js +87 -0
  68. package/dist/cjs/SerializedMessage.js.map +1 -0
  69. package/dist/cjs/ShardId.js +89 -0
  70. package/dist/cjs/ShardId.js.map +1 -0
  71. package/dist/cjs/ShardManager.js +48 -0
  72. package/dist/cjs/ShardManager.js.map +1 -0
  73. package/dist/cjs/ShardManagerClient.js +53 -0
  74. package/dist/cjs/ShardManagerClient.js.map +1 -0
  75. package/dist/cjs/Sharding.js +129 -0
  76. package/dist/cjs/Sharding.js.map +1 -0
  77. package/dist/cjs/ShardingConfig.js +64 -0
  78. package/dist/cjs/ShardingConfig.js.map +1 -0
  79. package/dist/cjs/ShardingEvent.js +72 -0
  80. package/dist/cjs/ShardingEvent.js.map +1 -0
  81. package/dist/cjs/ShardingException.js +130 -0
  82. package/dist/cjs/ShardingException.js.map +1 -0
  83. package/dist/cjs/ShardingRegistrationEvent.js +44 -0
  84. package/dist/cjs/ShardingRegistrationEvent.js.map +1 -0
  85. package/dist/cjs/Storage.js +63 -0
  86. package/dist/cjs/Storage.js.map +1 -0
  87. package/dist/cjs/index.js +88 -0
  88. package/dist/cjs/index.js.map +1 -0
  89. package/dist/cjs/internal/atLeastOnce.js +58 -0
  90. package/dist/cjs/internal/atLeastOnce.js.map +1 -0
  91. package/dist/cjs/internal/atLeastOnceStorage.js +186 -0
  92. package/dist/cjs/internal/atLeastOnceStorage.js.map +1 -0
  93. package/dist/cjs/internal/entityManager.js +191 -0
  94. package/dist/cjs/internal/entityManager.js.map +1 -0
  95. package/dist/cjs/internal/entityState.js +70 -0
  96. package/dist/cjs/internal/entityState.js.map +1 -0
  97. package/dist/cjs/internal/managerConfig.js +69 -0
  98. package/dist/cjs/internal/managerConfig.js.map +1 -0
  99. package/dist/cjs/internal/message.js +68 -0
  100. package/dist/cjs/internal/message.js.map +1 -0
  101. package/dist/cjs/internal/messageState.js +102 -0
  102. package/dist/cjs/internal/messageState.js.map +1 -0
  103. package/dist/cjs/internal/podWithMetadata.js +77 -0
  104. package/dist/cjs/internal/podWithMetadata.js.map +1 -0
  105. package/dist/cjs/internal/pods.js +58 -0
  106. package/dist/cjs/internal/pods.js.map +1 -0
  107. package/dist/cjs/internal/podsHealth.js +63 -0
  108. package/dist/cjs/internal/podsHealth.js.map +1 -0
  109. package/dist/cjs/internal/recipientBehaviour.js +75 -0
  110. package/dist/cjs/internal/recipientBehaviour.js.map +1 -0
  111. package/dist/cjs/internal/recipientBehaviourContext.js +59 -0
  112. package/dist/cjs/internal/recipientBehaviourContext.js.map +1 -0
  113. package/dist/cjs/internal/serialization.js +72 -0
  114. package/dist/cjs/internal/serialization.js.map +1 -0
  115. package/dist/cjs/internal/shardManager.js +291 -0
  116. package/dist/cjs/internal/shardManager.js.map +1 -0
  117. package/dist/cjs/internal/shardManagerClient.js +71 -0
  118. package/dist/cjs/internal/shardManagerClient.js.map +1 -0
  119. package/dist/cjs/internal/shardManagerState.js +67 -0
  120. package/dist/cjs/internal/shardManagerState.js.map +1 -0
  121. package/dist/cjs/internal/sharding.js +329 -0
  122. package/dist/cjs/internal/sharding.js.map +1 -0
  123. package/dist/cjs/internal/shardingConfig.js +79 -0
  124. package/dist/cjs/internal/shardingConfig.js.map +1 -0
  125. package/dist/cjs/internal/storage.js +75 -0
  126. package/dist/cjs/internal/storage.js.map +1 -0
  127. package/dist/cjs/internal/utils.js +92 -0
  128. package/dist/cjs/internal/utils.js.map +1 -0
  129. package/dist/dts/AtLeastOnce.d.ts +20 -0
  130. package/dist/dts/AtLeastOnce.d.ts.map +1 -0
  131. package/dist/dts/AtLeastOnceStorage.d.ts +75 -0
  132. package/dist/dts/AtLeastOnceStorage.d.ts.map +1 -0
  133. package/dist/dts/Broadcaster.d.ts +32 -0
  134. package/dist/dts/Broadcaster.d.ts.map +1 -0
  135. package/dist/dts/ManagerConfig.d.ts +61 -0
  136. package/dist/dts/ManagerConfig.d.ts.map +1 -0
  137. package/dist/dts/Message.d.ts +106 -0
  138. package/dist/dts/Message.d.ts.map +1 -0
  139. package/dist/dts/MessageState.d.ts +107 -0
  140. package/dist/dts/MessageState.d.ts.map +1 -0
  141. package/dist/dts/Messenger.d.ts +32 -0
  142. package/dist/dts/Messenger.d.ts.map +1 -0
  143. package/dist/dts/Pod.d.ts +81 -0
  144. package/dist/dts/Pod.d.ts.map +1 -0
  145. package/dist/dts/PodAddress.d.ts +80 -0
  146. package/dist/dts/PodAddress.d.ts.map +1 -0
  147. package/dist/dts/Pods.d.ts +78 -0
  148. package/dist/dts/Pods.d.ts.map +1 -0
  149. package/dist/dts/PodsHealth.d.ts +66 -0
  150. package/dist/dts/PodsHealth.d.ts.map +1 -0
  151. package/dist/dts/PoisonPill.d.ts +78 -0
  152. package/dist/dts/PoisonPill.d.ts.map +1 -0
  153. package/dist/dts/RecipientAddress.d.ts +57 -0
  154. package/dist/dts/RecipientAddress.d.ts.map +1 -0
  155. package/dist/dts/RecipientBehaviour.d.ts +72 -0
  156. package/dist/dts/RecipientBehaviour.d.ts.map +1 -0
  157. package/dist/dts/RecipientBehaviourContext.d.ts +83 -0
  158. package/dist/dts/RecipientBehaviourContext.d.ts.map +1 -0
  159. package/dist/dts/RecipientType.d.ts +96 -0
  160. package/dist/dts/RecipientType.d.ts.map +1 -0
  161. package/dist/dts/Serialization.d.ts +58 -0
  162. package/dist/dts/Serialization.d.ts.map +1 -0
  163. package/dist/dts/SerializedEnvelope.d.ts +87 -0
  164. package/dist/dts/SerializedEnvelope.d.ts.map +1 -0
  165. package/dist/dts/SerializedMessage.d.ts +66 -0
  166. package/dist/dts/SerializedMessage.d.ts.map +1 -0
  167. package/dist/dts/ShardId.d.ts +70 -0
  168. package/dist/dts/ShardId.d.ts.map +1 -0
  169. package/dist/dts/ShardManager.d.ts +44 -0
  170. package/dist/dts/ShardManager.d.ts.map +1 -0
  171. package/dist/dts/ShardManagerClient.d.ts +50 -0
  172. package/dist/dts/ShardManagerClient.d.ts.map +1 -0
  173. package/dist/dts/Sharding.d.ts +146 -0
  174. package/dist/dts/Sharding.d.ts.map +1 -0
  175. package/dist/dts/ShardingConfig.d.ts +69 -0
  176. package/dist/dts/ShardingConfig.d.ts.map +1 -0
  177. package/dist/dts/ShardingEvent.d.ts +90 -0
  178. package/dist/dts/ShardingEvent.d.ts.map +1 -0
  179. package/dist/dts/ShardingException.d.ts +125 -0
  180. package/dist/dts/ShardingException.d.ts.map +1 -0
  181. package/dist/dts/ShardingRegistrationEvent.d.ts +44 -0
  182. package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -0
  183. package/dist/dts/Storage.d.ts +78 -0
  184. package/dist/dts/Storage.d.ts.map +1 -0
  185. package/dist/dts/index.d.ts +113 -0
  186. package/dist/dts/index.d.ts.map +1 -0
  187. package/dist/dts/internal/atLeastOnce.d.ts +2 -0
  188. package/dist/dts/internal/atLeastOnce.d.ts.map +1 -0
  189. package/dist/dts/internal/atLeastOnceStorage.d.ts +2 -0
  190. package/dist/dts/internal/atLeastOnceStorage.d.ts.map +1 -0
  191. package/dist/dts/internal/entityManager.d.ts +2 -0
  192. package/dist/dts/internal/entityManager.d.ts.map +1 -0
  193. package/dist/dts/internal/entityState.d.ts +21 -0
  194. package/dist/dts/internal/entityState.d.ts.map +1 -0
  195. package/dist/dts/internal/managerConfig.d.ts +2 -0
  196. package/dist/dts/internal/managerConfig.d.ts.map +1 -0
  197. package/dist/dts/internal/message.d.ts +9 -0
  198. package/dist/dts/internal/message.d.ts.map +1 -0
  199. package/dist/dts/internal/messageState.d.ts +2 -0
  200. package/dist/dts/internal/messageState.d.ts.map +1 -0
  201. package/dist/dts/internal/podWithMetadata.d.ts +2 -0
  202. package/dist/dts/internal/podWithMetadata.d.ts.map +1 -0
  203. package/dist/dts/internal/pods.d.ts +2 -0
  204. package/dist/dts/internal/pods.d.ts.map +1 -0
  205. package/dist/dts/internal/podsHealth.d.ts +2 -0
  206. package/dist/dts/internal/podsHealth.d.ts.map +1 -0
  207. package/dist/dts/internal/recipientBehaviour.d.ts +2 -0
  208. package/dist/dts/internal/recipientBehaviour.d.ts.map +1 -0
  209. package/dist/dts/internal/recipientBehaviourContext.d.ts +2 -0
  210. package/dist/dts/internal/recipientBehaviourContext.d.ts.map +1 -0
  211. package/dist/dts/internal/serialization.d.ts +2 -0
  212. package/dist/dts/internal/serialization.d.ts.map +1 -0
  213. package/dist/dts/internal/shardManager.d.ts +12 -0
  214. package/dist/dts/internal/shardManager.d.ts.map +1 -0
  215. package/dist/dts/internal/shardManagerClient.d.ts +2 -0
  216. package/dist/dts/internal/shardManagerClient.d.ts.map +1 -0
  217. package/dist/dts/internal/shardManagerState.d.ts +26 -0
  218. package/dist/dts/internal/shardManagerState.d.ts.map +1 -0
  219. package/dist/dts/internal/sharding.d.ts +2 -0
  220. package/dist/dts/internal/sharding.d.ts.map +1 -0
  221. package/dist/dts/internal/shardingConfig.d.ts +2 -0
  222. package/dist/dts/internal/shardingConfig.d.ts.map +1 -0
  223. package/dist/dts/internal/storage.d.ts +2 -0
  224. package/dist/dts/internal/storage.d.ts.map +1 -0
  225. package/dist/dts/internal/utils.d.ts +2 -0
  226. package/dist/dts/internal/utils.d.ts.map +1 -0
  227. package/dist/esm/AtLeastOnce.js +12 -0
  228. package/dist/esm/AtLeastOnce.js.map +1 -0
  229. package/dist/esm/AtLeastOnceStorage.js +17 -0
  230. package/dist/esm/AtLeastOnceStorage.js.map +1 -0
  231. package/dist/esm/Broadcaster.js +2 -0
  232. package/dist/esm/Broadcaster.js.map +1 -0
  233. package/dist/esm/ManagerConfig.js +26 -0
  234. package/dist/esm/ManagerConfig.js.map +1 -0
  235. package/dist/esm/Message.js +33 -0
  236. package/dist/esm/Message.js.map +1 -0
  237. package/dist/esm/MessageState.js +47 -0
  238. package/dist/esm/MessageState.js.map +1 -0
  239. package/dist/esm/Messenger.js +2 -0
  240. package/dist/esm/Messenger.js.map +1 -0
  241. package/dist/esm/Pod.js +65 -0
  242. package/dist/esm/Pod.js.map +1 -0
  243. package/dist/esm/PodAddress.js +64 -0
  244. package/dist/esm/PodAddress.js.map +1 -0
  245. package/dist/esm/Pods.js +27 -0
  246. package/dist/esm/Pods.js.map +1 -0
  247. package/dist/esm/PodsHealth.js +33 -0
  248. package/dist/esm/PodsHealth.js.map +1 -0
  249. package/dist/esm/PoisonPill.js +65 -0
  250. package/dist/esm/PoisonPill.js.map +1 -0
  251. package/dist/esm/RecipientAddress.js +67 -0
  252. package/dist/esm/RecipientAddress.js.map +1 -0
  253. package/dist/esm/RecipientBehaviour.js +30 -0
  254. package/dist/esm/RecipientBehaviour.js.map +1 -0
  255. package/dist/esm/RecipientBehaviourContext.js +56 -0
  256. package/dist/esm/RecipientBehaviourContext.js.map +1 -0
  257. package/dist/esm/RecipientType.js +105 -0
  258. package/dist/esm/RecipientType.js.map +1 -0
  259. package/dist/esm/Serialization.js +24 -0
  260. package/dist/esm/Serialization.js.map +1 -0
  261. package/dist/esm/SerializedEnvelope.js +75 -0
  262. package/dist/esm/SerializedEnvelope.js.map +1 -0
  263. package/dist/esm/SerializedMessage.js +51 -0
  264. package/dist/esm/SerializedMessage.js.map +1 -0
  265. package/dist/esm/ShardId.js +54 -0
  266. package/dist/esm/ShardId.js.map +1 -0
  267. package/dist/esm/ShardManager.js +17 -0
  268. package/dist/esm/ShardManager.js.map +1 -0
  269. package/dist/esm/ShardManagerClient.js +22 -0
  270. package/dist/esm/ShardManagerClient.js.map +1 -0
  271. package/dist/esm/Sharding.js +98 -0
  272. package/dist/esm/Sharding.js.map +1 -0
  273. package/dist/esm/ShardingConfig.js +33 -0
  274. package/dist/esm/ShardingConfig.js.map +1 -0
  275. package/dist/esm/ShardingEvent.js +62 -0
  276. package/dist/esm/ShardingEvent.js.map +1 -0
  277. package/dist/esm/ShardingException.js +91 -0
  278. package/dist/esm/ShardingException.js.map +1 -0
  279. package/dist/esm/ShardingRegistrationEvent.js +36 -0
  280. package/dist/esm/ShardingRegistrationEvent.js.map +1 -0
  281. package/dist/esm/Storage.js +32 -0
  282. package/dist/esm/Storage.js.map +1 -0
  283. package/dist/esm/index.js +113 -0
  284. package/dist/esm/index.js.map +1 -0
  285. package/dist/esm/internal/atLeastOnce.js +26 -0
  286. package/dist/esm/internal/atLeastOnce.js.map +1 -0
  287. package/dist/esm/internal/atLeastOnceStorage.js +154 -0
  288. package/dist/esm/internal/atLeastOnceStorage.js.map +1 -0
  289. package/dist/esm/internal/entityManager.js +159 -0
  290. package/dist/esm/internal/entityManager.js.map +1 -0
  291. package/dist/esm/internal/entityState.js +35 -0
  292. package/dist/esm/internal/entityState.js.map +1 -0
  293. package/dist/esm/internal/managerConfig.js +38 -0
  294. package/dist/esm/internal/managerConfig.js.map +1 -0
  295. package/dist/esm/internal/message.js +32 -0
  296. package/dist/esm/internal/message.js.map +1 -0
  297. package/dist/esm/internal/messageState.js +66 -0
  298. package/dist/esm/internal/messageState.js.map +1 -0
  299. package/dist/esm/internal/podWithMetadata.js +41 -0
  300. package/dist/esm/internal/podWithMetadata.js.map +1 -0
  301. package/dist/esm/internal/pods.js +25 -0
  302. package/dist/esm/internal/pods.js.map +1 -0
  303. package/dist/esm/internal/podsHealth.js +30 -0
  304. package/dist/esm/internal/podsHealth.js.map +1 -0
  305. package/dist/esm/internal/recipientBehaviour.js +42 -0
  306. package/dist/esm/internal/recipientBehaviour.js.map +1 -0
  307. package/dist/esm/internal/recipientBehaviourContext.js +26 -0
  308. package/dist/esm/internal/recipientBehaviourContext.js.map +1 -0
  309. package/dist/esm/internal/serialization.js +39 -0
  310. package/dist/esm/internal/serialization.js.map +1 -0
  311. package/dist/esm/internal/shardManager.js +256 -0
  312. package/dist/esm/internal/shardManager.js.map +1 -0
  313. package/dist/esm/internal/shardManagerClient.js +38 -0
  314. package/dist/esm/internal/shardManagerClient.js.map +1 -0
  315. package/dist/esm/internal/shardManagerState.js +36 -0
  316. package/dist/esm/internal/shardManagerState.js.map +1 -0
  317. package/dist/esm/internal/sharding.js +288 -0
  318. package/dist/esm/internal/sharding.js.map +1 -0
  319. package/dist/esm/internal/shardingConfig.js +47 -0
  320. package/dist/esm/internal/shardingConfig.js.map +1 -0
  321. package/dist/esm/internal/storage.js +42 -0
  322. package/dist/esm/internal/storage.js.map +1 -0
  323. package/dist/esm/internal/utils.js +56 -0
  324. package/dist/esm/internal/utils.js.map +1 -0
  325. package/dist/esm/package.json +4 -0
  326. package/package.json +259 -0
  327. package/src/AtLeastOnce.ts +28 -0
  328. package/src/AtLeastOnceStorage.ts +96 -0
  329. package/src/Broadcaster.ts +48 -0
  330. package/src/ManagerConfig.ts +67 -0
  331. package/src/Message.ts +132 -0
  332. package/src/MessageState.ts +126 -0
  333. package/src/Messenger.ts +40 -0
  334. package/src/Pod.ts +95 -0
  335. package/src/PodAddress.ts +94 -0
  336. package/src/Pods.ts +100 -0
  337. package/src/PodsHealth.ts +74 -0
  338. package/src/PoisonPill.ts +105 -0
  339. package/src/RecipientAddress.ts +72 -0
  340. package/src/RecipientBehaviour.ts +108 -0
  341. package/src/RecipientBehaviourContext.ts +101 -0
  342. package/src/RecipientType.ts +134 -0
  343. package/src/Serialization.ts +72 -0
  344. package/src/SerializedEnvelope.ts +109 -0
  345. package/src/SerializedMessage.ts +82 -0
  346. package/src/ShardId.ts +79 -0
  347. package/src/ShardManager.ts +53 -0
  348. package/src/ShardManagerClient.ts +57 -0
  349. package/src/Sharding.ts +214 -0
  350. package/src/ShardingConfig.ts +76 -0
  351. package/src/ShardingEvent.ts +121 -0
  352. package/src/ShardingException.ts +151 -0
  353. package/src/ShardingRegistrationEvent.ts +62 -0
  354. package/src/Storage.ts +92 -0
  355. package/src/index.ts +139 -0
  356. package/src/internal/atLeastOnce.ts +59 -0
  357. package/src/internal/atLeastOnceStorage.ts +218 -0
  358. package/src/internal/entityManager.ts +404 -0
  359. package/src/internal/entityState.ts +64 -0
  360. package/src/internal/managerConfig.ts +84 -0
  361. package/src/internal/message.ts +64 -0
  362. package/src/internal/messageState.ts +98 -0
  363. package/src/internal/podWithMetadata.ts +72 -0
  364. package/src/internal/pods.ts +29 -0
  365. package/src/internal/podsHealth.ts +39 -0
  366. package/src/internal/recipientBehaviour.ts +133 -0
  367. package/src/internal/recipientBehaviourContext.ts +70 -0
  368. package/src/internal/serialization.ts +59 -0
  369. package/src/internal/shardManager.ts +593 -0
  370. package/src/internal/shardManagerClient.ts +49 -0
  371. package/src/internal/shardManagerState.ts +80 -0
  372. package/src/internal/sharding.ts +793 -0
  373. package/src/internal/shardingConfig.ts +97 -0
  374. package/src/internal/storage.ts +60 -0
  375. package/src/internal/utils.ts +54 -0
@@ -0,0 +1,159 @@
1
+ import * as Clock from "effect/Clock";
2
+ import * as Duration from "effect/Duration";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Exit from "effect/Exit";
5
+ import * as Fiber from "effect/Fiber";
6
+ import { pipe } from "effect/Function";
7
+ import * as HashMap from "effect/HashMap";
8
+ import * as HashSet from "effect/HashSet";
9
+ import * as Option from "effect/Option";
10
+ import * as Scope from "effect/Scope";
11
+ import * as RefSynchronized from "effect/SynchronizedRef";
12
+ import * as Message from "../Message.js";
13
+ import * as MessageState from "../MessageState.js";
14
+ import * as RecipientBehaviourContext from "../RecipientBehaviourContext.js";
15
+ import * as ShardingException from "../ShardingException.js";
16
+ import * as EntityState from "./entityState.js";
17
+ /** @internal */
18
+ const EntityManagerSymbolKey = "@effect/cluster/EntityManager";
19
+ /** @internal */
20
+ export const EntityManagerTypeId = /*#__PURE__*/Symbol.for(EntityManagerSymbolKey);
21
+ /** @internal */
22
+ export function make(recipientType, recipientBehaviour, sharding, config, serialization, options = {}) {
23
+ return Effect.gen(function* (_) {
24
+ const entityMaxIdle = options.entityMaxIdleTime || Option.none();
25
+ const env = yield* _(Effect.context());
26
+ const entityStates = yield* _(RefSynchronized.make(HashMap.empty()));
27
+ function startExpirationFiber(recipientAddress) {
28
+ const maxIdleMillis = pipe(entityMaxIdle, Option.getOrElse(() => config.entityMaxIdleTime), Duration.toMillis);
29
+ function sleep(duration) {
30
+ return pipe(Effect.Do, Effect.zipLeft(Clock.sleep(Duration.millis(duration))), Effect.bind("cdt", () => Clock.currentTimeMillis), Effect.bind("map", () => RefSynchronized.get(entityStates)), Effect.let("lastReceivedAt", ({
31
+ map
32
+ }) => pipe(HashMap.get(map, recipientAddress), Option.map(_ => _.lastReceivedAt), Option.getOrElse(() => 0))), Effect.let("remaining", ({
33
+ cdt,
34
+ lastReceivedAt
35
+ }) => maxIdleMillis - cdt + lastReceivedAt), Effect.tap(_ => _.remaining > 0 ? sleep(_.remaining) : Effect.void));
36
+ }
37
+ return pipe(sleep(maxIdleMillis), Effect.zipRight(forkEntityTermination(recipientAddress)), Effect.asVoid, Effect.interruptible, Effect.annotateLogs("entityId", recipientAddress), Effect.annotateLogs("recipientType", recipientType.name), Effect.forkDaemon);
38
+ }
39
+ /**
40
+ * Performs proper termination of the entity, interrupting the expiration timer, closing the scope and failing pending replies
41
+ */
42
+ function terminateEntity(recipientAddress) {
43
+ return pipe(
44
+ // get the things to cleanup
45
+ RefSynchronized.get(entityStates), Effect.map(HashMap.get(recipientAddress)), Effect.flatMap(Option.match({
46
+ // there is no entity state to cleanup
47
+ onNone: () => Effect.void,
48
+ // found it!
49
+ onSome: entityState => pipe(
50
+ // interrupt the expiration timer
51
+ Fiber.interrupt(entityState.expirationFiber),
52
+ // close the scope of the entity,
53
+ Effect.ensuring(Scope.close(entityState.executionScope, Exit.void)),
54
+ // remove the entry from the map
55
+ Effect.ensuring(RefSynchronized.update(entityStates, HashMap.remove(recipientAddress))),
56
+ // log error if happens
57
+ Effect.catchAllCause(Effect.logError), Effect.asVoid, Effect.annotateLogs("entityId", recipientAddress.entityId), Effect.annotateLogs("recipientType", recipientAddress.recipientTypeName))
58
+ })));
59
+ }
60
+ /**
61
+ * Begins entity termination (if needed) and return the fiber to wait for completed termination (if any)
62
+ */
63
+ function forkEntityTermination(recipientAddress) {
64
+ return RefSynchronized.modifyEffect(entityStates, entityStatesMap => pipe(HashMap.get(entityStatesMap, recipientAddress), Option.match({
65
+ // if no entry is found, the entity has succefully shut down
66
+ onNone: () => Effect.succeed([Option.none(), entityStatesMap]),
67
+ // there is an entry, so we should begin termination
68
+ onSome: entityState => pipe(entityState.terminationFiber, Option.match({
69
+ // termination has already begun, keep everything as-is
70
+ onSome: () => Effect.succeed([entityState.terminationFiber, entityStatesMap]),
71
+ // begin to terminate the queue
72
+ onNone: () => pipe(terminateEntity(recipientAddress), Effect.forkDaemon, Effect.map(terminationFiber => [Option.some(terminationFiber), HashMap.modify(entityStatesMap, recipientAddress, EntityState.withTerminationFiber(terminationFiber))]))
73
+ }))
74
+ })));
75
+ }
76
+ function getOrCreateEntityState(recipientAddress) {
77
+ return RefSynchronized.modifyEffect(entityStates, map => pipe(HashMap.get(map, recipientAddress), Option.match({
78
+ onSome: entityState => pipe(entityState.terminationFiber, Option.match({
79
+ // offer exists, delay the interruption fiber and return the offer
80
+ onNone: () => pipe(Clock.currentTimeMillis, Effect.map(cdt => [Option.some(entityState), HashMap.modify(map, recipientAddress, EntityState.withLastReceivedAd(cdt))])),
81
+ // the queue is shutting down, stash and retry
82
+ onSome: () => Effect.succeed([Option.none(), map])
83
+ })),
84
+ onNone: () => Effect.flatMap(sharding.isShuttingDown, isGoingDown => {
85
+ if (isGoingDown) {
86
+ // don't start any fiber while sharding is shutting down
87
+ return Effect.fail(new ShardingException.EntityNotManagedByThisPodException({
88
+ recipientAddress
89
+ }));
90
+ } else {
91
+ // offer doesn't exist, create a new one
92
+ return Effect.gen(function* (_) {
93
+ const executionScope = yield* _(Scope.make());
94
+ const expirationFiber = yield* _(startExpirationFiber(recipientAddress));
95
+ const cdt = yield* _(Clock.currentTimeMillis);
96
+ const forkShutdown = pipe(forkEntityTermination(recipientAddress), Effect.asVoid);
97
+ const shardId = sharding.getShardId(recipientAddress);
98
+ const sendAndGetState = yield* _(pipe(recipientBehaviour, Effect.map(offer => envelope => pipe(serialization.decode(recipientType.schema, envelope.body), Effect.flatMap(message => pipe(offer(message), Effect.flatMap(_ => MessageState.mapEffect(_, value => serialization.encode(Message.exitSchema(message), value))))))), Scope.extend(executionScope), Effect.provideService(RecipientBehaviourContext.RecipientBehaviourContext, RecipientBehaviourContext.make({
99
+ recipientAddress,
100
+ shardId,
101
+ recipientType: recipientType,
102
+ forkShutdown
103
+ })), Effect.provide(env)));
104
+ const entityState = EntityState.make({
105
+ sendAndGetState,
106
+ expirationFiber,
107
+ executionScope,
108
+ terminationFiber: Option.none(),
109
+ lastReceivedAt: cdt
110
+ });
111
+ return [Option.some(entityState), HashMap.set(map, recipientAddress, entityState)];
112
+ });
113
+ }
114
+ })
115
+ })));
116
+ }
117
+ function sendAndGetState(envelope) {
118
+ return pipe(Effect.Do, Effect.tap(() => {
119
+ // first, verify that this entity should be handled by this pod
120
+ if (recipientType._tag === "EntityType") {
121
+ return Effect.asVoid(Effect.unlessEffect(Effect.fail(new ShardingException.EntityNotManagedByThisPodException({
122
+ recipientAddress: envelope.recipientAddress
123
+ })), sharding.isEntityOnLocalShards(envelope.recipientAddress)));
124
+ } else if (recipientType._tag === "TopicType") {
125
+ return Effect.void;
126
+ }
127
+ return Effect.die("Unhandled recipientType");
128
+ }), Effect.bind("maybeEntityState", () => getOrCreateEntityState(envelope.recipientAddress)), Effect.flatMap(_ => pipe(_.maybeEntityState, Option.match({
129
+ onNone: () => pipe(Effect.sleep(Duration.millis(100)), Effect.flatMap(() => sendAndGetState(envelope))),
130
+ onSome: entityState => {
131
+ return entityState.sendAndGetState(envelope);
132
+ }
133
+ }))));
134
+ }
135
+ const terminateAllEntities = pipe(RefSynchronized.get(entityStates), Effect.map(HashMap.keySet), Effect.flatMap(terminateEntities));
136
+ function terminateEntities(entitiesToTerminate) {
137
+ return pipe(entitiesToTerminate, Effect.forEach(recipientAddress => pipe(forkEntityTermination(recipientAddress), Effect.flatMap(_ => Option.match(_, {
138
+ onNone: () => Effect.void,
139
+ onSome: terminationFiber => pipe(Fiber.await(terminationFiber), Effect.timeout(config.entityTerminationTimeout), Effect.match({
140
+ onFailure: () => Effect.logError(`Entity ${recipientAddress} termination is taking more than expected entityTerminationTimeout (${Duration.toMillis(config.entityTerminationTimeout)}ms).`),
141
+ onSuccess: () => Effect.logDebug(`Entity ${recipientAddress} cleaned up.`)
142
+ }), Effect.asVoid)
143
+ }))), {
144
+ concurrency: "inherit"
145
+ }), Effect.asVoid);
146
+ }
147
+ function terminateEntitiesOnShards(shards) {
148
+ return pipe(RefSynchronized.modify(entityStates, entities => [HashMap.filter(entities, (_, recipientAddress) => HashSet.has(shards, sharding.getShardId(recipientAddress))), entities]), Effect.map(HashMap.keySet), Effect.flatMap(terminateEntities));
149
+ }
150
+ const self = {
151
+ [EntityManagerTypeId]: EntityManagerTypeId,
152
+ sendAndGetState,
153
+ terminateAllEntities,
154
+ terminateEntitiesOnShards
155
+ };
156
+ return self;
157
+ });
158
+ }
159
+ //# sourceMappingURL=entityManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityManager.js","names":["Clock","Duration","Effect","Exit","Fiber","pipe","HashMap","HashSet","Option","Scope","RefSynchronized","Message","MessageState","RecipientBehaviourContext","ShardingException","EntityState","EntityManagerSymbolKey","EntityManagerTypeId","Symbol","for","make","recipientType","recipientBehaviour","sharding","config","serialization","options","gen","_","entityMaxIdle","entityMaxIdleTime","none","env","context","entityStates","empty","startExpirationFiber","recipientAddress","maxIdleMillis","getOrElse","toMillis","sleep","duration","Do","zipLeft","millis","bind","currentTimeMillis","get","let","map","lastReceivedAt","cdt","tap","remaining","void","zipRight","forkEntityTermination","asVoid","interruptible","annotateLogs","name","forkDaemon","terminateEntity","flatMap","match","onNone","onSome","entityState","interrupt","expirationFiber","ensuring","close","executionScope","update","remove","catchAllCause","logError","entityId","recipientTypeName","modifyEffect","entityStatesMap","succeed","terminationFiber","some","modify","withTerminationFiber","getOrCreateEntityState","withLastReceivedAd","isShuttingDown","isGoingDown","fail","EntityNotManagedByThisPodException","forkShutdown","shardId","getShardId","sendAndGetState","offer","envelope","decode","schema","body","message","mapEffect","value","encode","exitSchema","extend","provideService","provide","set","_tag","unlessEffect","isEntityOnLocalShards","die","maybeEntityState","terminateAllEntities","keySet","terminateEntities","entitiesToTerminate","forEach","await","timeout","entityTerminationTimeout","onFailure","onSuccess","logDebug","concurrency","terminateEntitiesOnShards","shards","entities","filter","has","self"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import * as Data from "effect/Data";
2
+ import * as Option from "effect/Option";
3
+ /** @internal */
4
+ const EntityStateSymbolKey = "@effect/cluster/EntityState";
5
+ /** @internal */
6
+ export const EntityStateTypeId = /*#__PURE__*/Symbol.for(EntityStateSymbolKey);
7
+ /** @internal */
8
+ export function make(data) {
9
+ return Data.struct({
10
+ [EntityStateTypeId]: EntityStateTypeId,
11
+ ...data
12
+ });
13
+ }
14
+ /** @internal */
15
+ export function withTerminationFiber(terminationFiber) {
16
+ return entityState => ({
17
+ ...entityState,
18
+ terminationFiber: Option.some(terminationFiber)
19
+ });
20
+ }
21
+ /** @internal */
22
+ export function withExpirationFiber(expirationFiber) {
23
+ return entityState => ({
24
+ ...entityState,
25
+ expirationFiber
26
+ });
27
+ }
28
+ /** @internal */
29
+ export function withLastReceivedAd(lastReceivedAt) {
30
+ return entityState => ({
31
+ ...entityState,
32
+ lastReceivedAt
33
+ });
34
+ }
35
+ //# sourceMappingURL=entityState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityState.js","names":["Data","Option","EntityStateSymbolKey","EntityStateTypeId","Symbol","for","make","data","struct","withTerminationFiber","terminationFiber","entityState","some","withExpirationFiber","expirationFiber","withLastReceivedAd","lastReceivedAt"],"sources":["../../../src/internal/entityState.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,aAAa;AAGnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAOvC;AACA,MAAMC,oBAAoB,GAAG,6BAA6B;AAE1D;AACA,OAAO,MAAMC,iBAAiB,gBAAGC,MAAM,CAACC,GAAG,CAACH,oBAAoB,CAAC;AAuBjE;AACA,OAAM,SAAUI,IAAIA,CAClBC,IAA0C;EAE1C,OAAOP,IAAI,CAACQ,MAAM,CAAC;IAAE,CAACL,iBAAiB,GAAGA,iBAAiB;IAAE,GAAGI;EAAI,CAAE,CAAC;AACzE;AAEA;AACA,OAAM,SAAUE,oBAAoBA,CAClCC,gBAAiD;EAEjD,OAAQC,WAAW,KAAM;IAAE,GAAGA,WAAW;IAAED,gBAAgB,EAAET,MAAM,CAACW,IAAI,CAACF,gBAAgB;EAAC,CAAE,CAAC;AAC/F;AAEA;AACA,OAAM,SAAUG,mBAAmBA,CACjCC,eAAgD;EAEhD,OAAQH,WAAW,KAAM;IAAE,GAAGA,WAAW;IAAEG;EAAe,CAAE,CAAC;AAC/D;AAEA;AACA,OAAM,SAAUC,kBAAkBA,CAChCC,cAAsB;EAEtB,OAAQL,WAAW,KAAM;IAAE,GAAGA,WAAW;IAAEK;EAAc,CAAE,CAAC;AAC9D","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
3
+ import * as Duration from "effect/Duration";
4
+ import { pipe } from "effect/Function";
5
+ import * as Layer from "effect/Layer";
6
+ /** @internal */
7
+ const ManagerConfigSymbolKey = "@effect/cluster/ManagerConfig";
8
+ /** @internal */
9
+ export const ManagerConfigTypeId = /*#__PURE__*/Symbol.for(ManagerConfigSymbolKey);
10
+ /** @internal */
11
+ export const managerConfigTag = /*#__PURE__*/Context.GenericTag(ManagerConfigSymbolKey);
12
+ /** @internal */
13
+ const defaultValues = {
14
+ numberOfShards: 300,
15
+ apiPort: 8080,
16
+ rebalanceInterval: /*#__PURE__*/Duration.seconds(20),
17
+ rebalanceRetryInterval: /*#__PURE__*/Duration.seconds(10),
18
+ pingTimeout: /*#__PURE__*/Duration.seconds(3),
19
+ persistRetryInterval: /*#__PURE__*/Duration.seconds(3),
20
+ persistRetryCount: 100,
21
+ rebalanceRate: 2 / 100
22
+ };
23
+ /** @internal */
24
+ export const defaults = /*#__PURE__*/Layer.succeed(managerConfigTag, defaultValues);
25
+ /** @internal */
26
+ const config = /*#__PURE__*/Config.all({
27
+ numberOfShards: /*#__PURE__*/pipe( /*#__PURE__*/Config.number("NUMBER_OF_SHARDS"), /*#__PURE__*/Config.withDefault(defaultValues.numberOfShards), /*#__PURE__*/Config.withDescription("Number of shards")),
28
+ apiPort: /*#__PURE__*/pipe( /*#__PURE__*/Config.integer("API_PORT"), /*#__PURE__*/Config.withDefault(defaultValues.apiPort), /*#__PURE__*/Config.withDescription("API port")),
29
+ rebalanceInterval: /*#__PURE__*/pipe( /*#__PURE__*/Config.map( /*#__PURE__*/Config.number("REBALANCE_INTERVAL"), Duration.millis), /*#__PURE__*/Config.withDefault(defaultValues.rebalanceInterval), /*#__PURE__*/Config.withDescription("Interval of rebalance")),
30
+ rebalanceRetryInterval: /*#__PURE__*/pipe( /*#__PURE__*/Config.map( /*#__PURE__*/Config.number("REBALANCE_RETRY_INTERVAL"), Duration.millis), /*#__PURE__*/Config.withDefault(defaultValues.rebalanceRetryInterval), /*#__PURE__*/Config.withDescription("Retry interval of rebalance")),
31
+ pingTimeout: /*#__PURE__*/pipe( /*#__PURE__*/Config.map( /*#__PURE__*/Config.number("PING_TIMEOUT"), Duration.millis), /*#__PURE__*/Config.withDefault(defaultValues.pingTimeout), /*#__PURE__*/Config.withDescription("Ping timeout")),
32
+ persistRetryInterval: /*#__PURE__*/pipe( /*#__PURE__*/Config.map( /*#__PURE__*/Config.number("PERSIST_RETRY_INTERVAL"), Duration.millis), /*#__PURE__*/Config.withDefault(defaultValues.persistRetryInterval), /*#__PURE__*/Config.withDescription("Persist retry interval")),
33
+ persistRetryCount: /*#__PURE__*/pipe( /*#__PURE__*/Config.number("PERSIST_RETRY_COUNT"), /*#__PURE__*/Config.withDefault(defaultValues.persistRetryCount), /*#__PURE__*/Config.withDescription("Persist retry count")),
34
+ rebalanceRate: /*#__PURE__*/pipe( /*#__PURE__*/Config.number("REBALANCE_RATE"), /*#__PURE__*/Config.withDefault(defaultValues.rebalanceRate), /*#__PURE__*/Config.withDescription("Rebalance rate"))
35
+ });
36
+ /** @internal */
37
+ export const fromConfig = /*#__PURE__*/Layer.effect(managerConfigTag, config);
38
+ //# sourceMappingURL=managerConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managerConfig.js","names":["Config","Context","Duration","pipe","Layer","ManagerConfigSymbolKey","ManagerConfigTypeId","Symbol","for","managerConfigTag","GenericTag","defaultValues","numberOfShards","apiPort","rebalanceInterval","seconds","rebalanceRetryInterval","pingTimeout","persistRetryInterval","persistRetryCount","rebalanceRate","defaults","succeed","config","all","number","withDefault","withDescription","integer","map","millis","fromConfig","effect"],"sources":["../../../src/internal/managerConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import * as Serializable from "@effect/schema/Serializable";
3
+ import * as PrimaryKey from "effect/PrimaryKey";
4
+ /** @internal */
5
+ export function isMessageWithResult(value) {
6
+ return typeof value === "object" && value !== null && Serializable.symbolResult in value;
7
+ }
8
+ /** @internal */
9
+ export function exitSchema(message) {
10
+ return Serializable.exitSchema(message);
11
+ }
12
+ /** @internal */
13
+ export function successSchema(message) {
14
+ return Serializable.successSchema(message);
15
+ }
16
+ /** @internal */
17
+ export function failureSchema(message) {
18
+ return Serializable.failureSchema(message);
19
+ }
20
+ /**
21
+ * @since 1.0.0
22
+ * @category schemas
23
+ */
24
+ export const TaggedMessage_ = () => (tag, failure, success, fields, messageToId) => {
25
+ return class extends Schema.TaggedRequest()(tag, failure, success, fields) {
26
+ constructor(props, disableValidation) {
27
+ super(props, disableValidation);
28
+ this[PrimaryKey.symbol] = () => messageToId(this);
29
+ }
30
+ };
31
+ };
32
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","names":["Schema","Serializable","PrimaryKey","isMessageWithResult","value","symbolResult","exitSchema","message","successSchema","failureSchema","TaggedMessage_","tag","failure","success","fields","messageToId","TaggedRequest","constructor","props","disableValidation","symbol"],"sources":["../../../src/internal/message.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,YAAY,MAAM,6BAA6B;AAC3D,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAI/C;AACA,OAAM,SAAUC,mBAAmBA,CAACC,KAAc;EAChD,OACE,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAC3CH,YAAY,CAACI,YAAY,IAAID,KAAK;AAEtC;AAEA;AACA,OAAM,SAAUE,UAAUA,CACxBC,OAAU;EAEV,OAAON,YAAY,CAACK,UAAU,CAACC,OAAc,CAAQ;AACvD;AAEA;AACA,OAAM,SAAUC,aAAaA,CAC3BD,OAAU;EAEV,OAAON,YAAY,CAACO,aAAa,CAACD,OAAc,CAAQ;AAC1D;AAEA;AACA,OAAM,SAAUE,aAAaA,CAC3BF,OAAU;EAEV,OAAON,YAAY,CAACQ,aAAa,CAACF,OAAc,CAAQ;AAC1D;AAEA;;;;AAIA,OAAO,MAAMG,cAAc,GAAGA,CAAA,KAC9B,CACEC,GAAQ,EACRC,OAAoC,EACpCC,OAAoC,EACpCC,MAAc,EACdC,WAA+D,KAW7D;EACF,OAAO,cAAef,MAAM,CAACgB,aAAa,EAAM,CAACL,GAAG,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,CAAS;IACrFG,YAAYC,KAAU,EAAEC,iBAA2B;MACjD,KAAK,CAACD,KAAK,EAAEC,iBAAiB,CAAC;MAC7B,IAAY,CAACjB,UAAU,CAACkB,MAAM,CAAC,GAAG,MAAML,WAAW,CAAC,IAAW,CAAC;IACpE;GACM;AACV,CAAC","ignoreList":[]}
@@ -0,0 +1,66 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import * as Effect from "effect/Effect";
3
+ import { pipe } from "effect/Function";
4
+ /** @internal */
5
+ const MessageStateSymbolKey = "@effect/cluster/MessageState";
6
+ /** @internal */
7
+ export const MessageStateTypeId = /*#__PURE__*/Symbol.for(MessageStateSymbolKey);
8
+ /** @internal */
9
+ export function isMessageState(value) {
10
+ return typeof value === "object" && value !== null && MessageStateTypeId in value;
11
+ }
12
+ /** @internal */
13
+ export const Acknowledged = {
14
+ [MessageStateTypeId]: MessageStateTypeId,
15
+ _tag: "@effect/cluster/MessageState/Acknowledged"
16
+ };
17
+ /** @internal */
18
+ export function Processed(result) {
19
+ return {
20
+ [MessageStateTypeId]: MessageStateTypeId,
21
+ _tag: "@effect/cluster/MessageState/Processed",
22
+ result
23
+ };
24
+ }
25
+ /** @internal */
26
+ export function match(cases) {
27
+ return value => {
28
+ switch (value._tag) {
29
+ case "@effect/cluster/MessageState/Acknowledged":
30
+ return cases.onAcknowledged(value);
31
+ case "@effect/cluster/MessageState/Processed":
32
+ return cases.onProcessed(value);
33
+ }
34
+ };
35
+ }
36
+ /** @internal */
37
+ export function mapEffect(value, fn) {
38
+ return pipe(value, match({
39
+ onAcknowledged: Effect.succeed,
40
+ onProcessed: _ => Effect.map(fn(_.result), _ => Processed(_))
41
+ }));
42
+ }
43
+ /** @internal */
44
+ export function schema(result) {
45
+ return Schema.Union(Schema.rename(Schema.Struct({
46
+ [MessageStateSymbolKey]: Schema.compose(Schema.compose(Schema.Literal(MessageStateSymbolKey), Schema.Symbol, {
47
+ strict: false
48
+ }), Schema.UniqueSymbolFromSelf(MessageStateTypeId), {
49
+ strict: false
50
+ }),
51
+ _tag: Schema.Literal("@effect/cluster/MessageState/Acknowledged")
52
+ }), {
53
+ [MessageStateSymbolKey]: MessageStateTypeId
54
+ }), Schema.rename(Schema.Struct({
55
+ [MessageStateSymbolKey]: Schema.compose(Schema.compose(Schema.Literal(MessageStateSymbolKey), Schema.Symbol, {
56
+ strict: false
57
+ }), Schema.UniqueSymbolFromSelf(MessageStateTypeId), {
58
+ strict: false
59
+ }),
60
+ _tag: Schema.Literal("@effect/cluster/MessageState/Processed"),
61
+ result
62
+ }), {
63
+ [MessageStateSymbolKey]: MessageStateTypeId
64
+ }));
65
+ }
66
+ //# sourceMappingURL=messageState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageState.js","names":["Schema","Effect","pipe","MessageStateSymbolKey","MessageStateTypeId","Symbol","for","isMessageState","value","Acknowledged","_tag","Processed","result","match","cases","onAcknowledged","onProcessed","mapEffect","fn","succeed","_","map","schema","Union","rename","Struct","compose","Literal","strict","UniqueSymbolFromSelf"],"sources":["../../../src/internal/messageState.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,uBAAuB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAGtC;AACA,MAAMC,qBAAqB,GAAG,8BAA8B;AAE5D;AACA,OAAO,MAAMC,kBAAkB,gBAAoCC,MAAM,CAACC,GAAG,CAC3EH,qBAAqB,CACa;AAEpC;AACA,OAAM,SAAUI,cAAcA,CAACC,KAAc;EAC3C,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAIJ,kBAAkB,IAAII,KAAK;AACnF;AAEA;AACA,OAAO,MAAMC,YAAY,GAA0C;EACjE,CAACL,kBAAkB,GAAGA,kBAAkB;EACxCM,IAAI,EAAE;CACP;AAED;AACA,OAAM,SAAUC,SAASA,CAAIC,MAAS;EACpC,OAAQ;IACN,CAACR,kBAAkB,GAAGA,kBAAkB;IACxCM,IAAI,EAAE,wCAAwC;IAC9CE;GACD;AACH;AAEA;AACA,OAAM,SAAUC,KAAKA,CACnBC,KAGC;EAED,OAAQN,KAAmC,IAAI;IAC7C,QAAQA,KAAK,CAACE,IAAI;MAChB,KAAK,2CAA2C;QAC9C,OAAOI,KAAK,CAACC,cAAc,CAACP,KAAK,CAAC;MACpC,KAAK,wCAAwC;QAC3C,OAAOM,KAAK,CAACE,WAAW,CAACR,KAAK,CAAC;IACnC;EACF,CAAC;AACH;AAEA;AACA,OAAM,SAAUS,SAASA,CACvBT,KAAmC,EACnCU,EAAwC;EAExC,OAAOhB,IAAI,CACTM,KAAK,EACLK,KAAK,CAAC;IACJE,cAAc,EAAEd,MAAM,CAACkB,OAAO;IAC9BH,WAAW,EAAGI,CAAC,IACbnB,MAAM,CAACoB,GAAG,CAACH,EAAE,CAACE,CAAC,CAACR,MAAM,CAAC,EAAGQ,CAAC,IAAKT,SAAS,CAACS,CAAC,CAAC;GAC/C,CAAC,CACH;AACH;AAEA;AACA,OAAM,SAAUE,MAAMA,CACpBV,MAA2B;EAK3B,OAAOZ,MAAM,CAACuB,KAAK,CACjBvB,MAAM,CAACwB,MAAM,CACXxB,MAAM,CAACyB,MAAM,CAAC;IACZ,CAACtB,qBAAqB,GAAGH,MAAM,CAAC0B,OAAO,CACrC1B,MAAM,CAAC0B,OAAO,CAAC1B,MAAM,CAAC2B,OAAO,CAACxB,qBAAqB,CAAC,EAAEH,MAAM,CAACK,MAAM,EAAE;MAAEuB,MAAM,EAAE;IAAK,CAAE,CAAC,EACvF5B,MAAM,CAAC6B,oBAAoB,CAACzB,kBAAkB,CAAC,EAC/C;MAAEwB,MAAM,EAAE;IAAK,CAAE,CAClB;IACDlB,IAAI,EAAEV,MAAM,CAAC2B,OAAO,CAAC,2CAA2C;GACjE,CAAC,EACF;IAAE,CAACxB,qBAAqB,GAAGC;EAAkB,CAAE,CAChD,EACDJ,MAAM,CAACwB,MAAM,CACXxB,MAAM,CAACyB,MAAM,CAAC;IACZ,CAACtB,qBAAqB,GAAGH,MAAM,CAAC0B,OAAO,CACrC1B,MAAM,CAAC0B,OAAO,CAAC1B,MAAM,CAAC2B,OAAO,CAACxB,qBAAqB,CAAC,EAAEH,MAAM,CAACK,MAAM,EAAE;MAAEuB,MAAM,EAAE;IAAK,CAAE,CAAC,EACvF5B,MAAM,CAAC6B,oBAAoB,CAACzB,kBAAkB,CAAC,EAC/C;MAAEwB,MAAM,EAAE;IAAK,CAAE,CAClB;IACDlB,IAAI,EAAEV,MAAM,CAAC2B,OAAO,CAAC,wCAAwC,CAAC;IAC9Df;GACD,CAAC,EACF;IAAE,CAACT,qBAAqB,GAAGC;EAAkB,CAAE,CAChD,CACF;AACH","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import * as Data from "effect/Data";
2
+ import { pipe } from "effect/Function";
3
+ import * as List from "effect/List";
4
+ import * as Option from "effect/Option";
5
+ /** @internal */
6
+ const PodWithMetadataSymbolKey = "@effect/cluster/PodWithMetadata";
7
+ /** @internal */
8
+ export const PodWithMetadataTypeId = /*#__PURE__*/Symbol.for(PodWithMetadataSymbolKey);
9
+ /** @internal */
10
+ export class PodWithMetadata extends Data.Class {}
11
+ /** @internal */
12
+ export function make(pod, registered) {
13
+ return new PodWithMetadata({
14
+ [PodWithMetadataTypeId]: PodWithMetadataTypeId,
15
+ pod,
16
+ registered
17
+ });
18
+ }
19
+ /** @internal */
20
+ export function isPodWithMetadata(value) {
21
+ return typeof value === "object" && value !== null && PodWithMetadataTypeId in value && value[PodWithMetadataTypeId] === PodWithMetadataTypeId;
22
+ }
23
+ /** @internal */
24
+ export function extractVersion(pod) {
25
+ return pipe(List.fromIterable(pod.pod.version.split(".")), List.map(_ => parseInt(_, 10)));
26
+ }
27
+ /** @internal */
28
+ export function compareVersion(a, b) {
29
+ let restA = a;
30
+ let restB = b;
31
+ while (List.size(restA) > 0 || List.size(restB) > 0) {
32
+ const numA = pipe(List.head(restA), Option.getOrElse(() => 0));
33
+ const numB = pipe(List.head(restB), Option.getOrElse(() => 0));
34
+ if (numA < numB) return -1;
35
+ if (numB > numA) return 1;
36
+ restA = pipe(List.tail(restA), Option.getOrElse(() => List.empty()));
37
+ restB = pipe(List.tail(restB), Option.getOrElse(() => List.empty()));
38
+ }
39
+ return 0;
40
+ }
41
+ //# sourceMappingURL=podWithMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"podWithMetadata.js","names":["Data","pipe","List","Option","PodWithMetadataSymbolKey","PodWithMetadataTypeId","Symbol","for","PodWithMetadata","Class","make","pod","registered","isPodWithMetadata","value","extractVersion","fromIterable","version","split","map","_","parseInt","compareVersion","a","b","restA","restB","size","numA","head","getOrElse","numB","tail","empty"],"sources":["../../../src/internal/podWithMetadata.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,aAAa;AACnC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC;AACA,MAAMC,wBAAwB,GAAG,iCAAiC;AAElE;AACA,OAAO,MAAMC,qBAAqB,gBAAGC,MAAM,CAACC,GAAG,CAACH,wBAAwB,CAAC;AAKzE;AACA,OAAM,MAAOI,eAAgB,SAAQR,IAAI,CAACS,KAIxC;AAEF;AACA,OAAM,SAAUC,IAAIA,CAACC,GAAY,EAAEC,UAAkB;EACnD,OAAO,IAAIJ,eAAe,CAAC;IAAE,CAACH,qBAAqB,GAAGA,qBAAqB;IAAEM,GAAG;IAAEC;EAAU,CAAE,CAAC;AACjG;AAEA;AACA,OAAM,SAAUC,iBAAiBA,CAACC,KAAc;EAC9C,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACdT,qBAAqB,IAAIS,KAAK,IAC9BA,KAAK,CAACT,qBAAqB,CAAC,KAAKA,qBAAqB;AAE1D;AAEA;AACA,OAAM,SAAUU,cAAcA,CAACJ,GAAoB;EACjD,OAAOV,IAAI,CACTC,IAAI,CAACc,YAAY,CAACL,GAAG,CAACA,GAAG,CAACM,OAAO,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC7ChB,IAAI,CAACiB,GAAG,CAAEC,CAAC,IAAKC,QAAQ,CAACD,CAAC,EAAE,EAAE,CAAC,CAAC,CACjC;AACH;AAEA;AACA,OAAM,SAAUE,cAAcA,CAACC,CAAoB,EAAEC,CAAoB;EACvE,IAAIC,KAAK,GAAGF,CAAC;EACb,IAAIG,KAAK,GAAGF,CAAC;EACb,OAAOtB,IAAI,CAACyB,IAAI,CAACF,KAAK,CAAC,GAAG,CAAC,IAAIvB,IAAI,CAACyB,IAAI,CAACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACnD,MAAME,IAAI,GAAG3B,IAAI,CACfC,IAAI,CAAC2B,IAAI,CAACJ,KAAK,CAAC,EAChBtB,MAAM,CAAC2B,SAAS,CAAC,MAAM,CAAC,CAAC,CAC1B;IACD,MAAMC,IAAI,GAAG9B,IAAI,CACfC,IAAI,CAAC2B,IAAI,CAACH,KAAK,CAAC,EAChBvB,MAAM,CAAC2B,SAAS,CAAC,MAAM,CAAC,CAAC,CAC1B;IAED,IAAIF,IAAI,GAAGG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1B,IAAIA,IAAI,GAAGH,IAAI,EAAE,OAAO,CAAC;IACzBH,KAAK,GAAGxB,IAAI,CACVC,IAAI,CAAC8B,IAAI,CAACP,KAAK,CAAC,EAChBtB,MAAM,CAAC2B,SAAS,CAAC,MAAM5B,IAAI,CAAC+B,KAAK,EAAE,CAAC,CACrC;IACDP,KAAK,GAAGzB,IAAI,CACVC,IAAI,CAAC8B,IAAI,CAACN,KAAK,CAAC,EAChBvB,MAAM,CAAC2B,SAAS,CAAC,MAAM5B,IAAI,CAAC+B,KAAK,EAAE,CAAC,CACrC;EACH;EACA,OAAO,CAAC;AACV","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ /** @internal */
5
+ const PodsSymbolKey = "@effect/cluster/Pods";
6
+ /** @internal */
7
+ export const PodsTypeId = /*#__PURE__*/Symbol.for(PodsSymbolKey);
8
+ /** @internal */
9
+ export const podsTag = /*#__PURE__*/Context.GenericTag(PodsSymbolKey);
10
+ /** @internal */
11
+ export function make(args) {
12
+ return {
13
+ [PodsTypeId]: PodsTypeId,
14
+ ...args
15
+ };
16
+ }
17
+ /** @internal */
18
+ export const noop = /*#__PURE__*/Layer.succeed(podsTag, {
19
+ [PodsTypeId]: PodsTypeId,
20
+ assignShards: () => Effect.void,
21
+ unassignShards: () => Effect.void,
22
+ ping: () => Effect.void,
23
+ sendAndGetState: () => Effect.never
24
+ });
25
+ //# sourceMappingURL=pods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pods.js","names":["Context","Effect","Layer","PodsSymbolKey","PodsTypeId","Symbol","for","podsTag","GenericTag","make","args","noop","succeed","assignShards","void","unassignShards","ping","sendAndGetState","never"],"sources":["../../../src/internal/pods.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC;AACA,MAAMC,aAAa,GAAG,sBAAsB;AAE5C;AACA,OAAO,MAAMC,UAAU,gBAAoBC,MAAM,CAACC,GAAG,CAACH,aAAa,CAAoB;AAEvF;AACA,OAAO,MAAMI,OAAO,gBAAGP,OAAO,CAACQ,UAAU,CAAYL,aAAa,CAAC;AAEnE;AACA,OAAM,SAAUM,IAAIA,CAClBC,IAAsC;EAEtC,OAAO;IAAE,CAACN,UAAU,GAAGA,UAAU;IAAE,GAAGM;EAAI,CAAE;AAC9C;AAEA;AACA,OAAO,MAAMC,IAAI,gBAAGT,KAAK,CAACU,OAAO,CAACL,OAAO,EAAE;EACzC,CAACH,UAAU,GAAGA,UAAU;EACxBS,YAAY,EAAEA,CAAA,KAAMZ,MAAM,CAACa,IAAI;EAC/BC,cAAc,EAAEA,CAAA,KAAMd,MAAM,CAACa,IAAI;EACjCE,IAAI,EAAEA,CAAA,KAAMf,MAAM,CAACa,IAAI;EACvBG,eAAe,EAAEA,CAAA,KAAMhB,MAAM,CAACiB;CAC/B,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import { pipe } from "effect/Function";
5
+ import * as Layer from "effect/Layer";
6
+ import * as Option from "effect/Option";
7
+ import * as Pods from "../Pods.js";
8
+ /** @internal */
9
+ const PodsHealthSymbolKey = "@effect/cluster/PodsHealth";
10
+ /** @internal */
11
+ export const PodsHealthTypeId = /*#__PURE__*/Symbol.for(PodsHealthSymbolKey);
12
+ /** @internal */
13
+ export const podsHealthTag = /*#__PURE__*/Context.GenericTag(PodsHealthSymbolKey);
14
+ /** @internal */
15
+ export function make(args) {
16
+ return Data.struct({
17
+ [PodsHealthTypeId]: PodsHealthTypeId,
18
+ ...args
19
+ });
20
+ }
21
+ /** @internal */
22
+ export const noop = /*#__PURE__*/Layer.succeed(podsHealthTag, {
23
+ [PodsHealthTypeId]: PodsHealthTypeId,
24
+ isAlive: () => Effect.succeed(true)
25
+ });
26
+ /** @internal */
27
+ export const local = /*#__PURE__*/Layer.effect(podsHealthTag, /*#__PURE__*/Effect.map(Pods.Pods, podApi => make({
28
+ isAlive: address => pipe(podApi.ping(address), Effect.option, Effect.map(Option.isSome))
29
+ })));
30
+ //# sourceMappingURL=podsHealth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"podsHealth.js","names":["Context","Data","Effect","pipe","Layer","Option","Pods","PodsHealthSymbolKey","PodsHealthTypeId","Symbol","for","podsHealthTag","GenericTag","make","args","struct","noop","succeed","isAlive","local","effect","map","podApi","address","ping","option","isSome"],"sources":["../../../src/internal/podsHealth.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,YAAY;AAGlC;AACA,MAAMC,mBAAmB,GAAG,4BAA4B;AAExD;AACA,OAAO,MAAMC,gBAAgB,gBAAgCC,MAAM,CAACC,GAAG,CACrEH,mBAAmB,CACW;AAEhC;AACA,OAAO,MAAMI,aAAa,gBAAGX,OAAO,CAACY,UAAU,CAAwBL,mBAAmB,CAAC;AAE3F;AACA,OAAM,SAAUM,IAAIA,CAACC,IAA8D;EACjF,OAAOb,IAAI,CAACc,MAAM,CAAC;IAAE,CAACP,gBAAgB,GAAGA,gBAAgB;IAAE,GAAGM;EAAI,CAAE,CAAC;AACvE;AAEA;AACA,OAAO,MAAME,IAAI,gBAAGZ,KAAK,CAACa,OAAO,CAACN,aAAa,EAAE;EAC/C,CAACH,gBAAgB,GAAGA,gBAAgB;EACpCU,OAAO,EAAEA,CAAA,KAAMhB,MAAM,CAACe,OAAO,CAAC,IAAI;CACnC,CAAC;AAEF;AACA,OAAO,MAAME,KAAK,gBAAGf,KAAK,CAACgB,MAAM,CAC/BT,aAAa,eACbT,MAAM,CAACmB,GAAG,CAACf,IAAI,CAACA,IAAI,EAAGgB,MAAM,IAC3BT,IAAI,CAAC;EACHK,OAAO,EAAGK,OAAO,IAAKpB,IAAI,CAACmB,MAAM,CAACE,IAAI,CAACD,OAAO,CAAC,EAAErB,MAAM,CAACuB,MAAM,EAAEvB,MAAM,CAACmB,GAAG,CAAChB,MAAM,CAACqB,MAAM,CAAC;CAC1F,CAAC,CAAC,CACN","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import * as Deferred from "effect/Deferred";
2
+ import * as Effect from "effect/Effect";
3
+ import { pipe } from "effect/Function";
4
+ import * as HashMap from "effect/HashMap";
5
+ import * as Option from "effect/Option";
6
+ import * as PrimaryKey from "effect/PrimaryKey";
7
+ import * as Queue from "effect/Queue";
8
+ import * as Ref from "effect/Ref";
9
+ import * as MessageState from "../MessageState.js";
10
+ import * as PoisonPill from "../PoisonPill.js";
11
+ import * as RecipientBehaviourContext from "../RecipientBehaviourContext.js";
12
+ /** @internal */
13
+ export function fromFunctionEffect(handler) {
14
+ return Effect.flatMap(RecipientBehaviourContext.entityId, entityId => pipe(Effect.context(), Effect.map(context => message => pipe(handler(entityId, message), Effect.provide(context)))));
15
+ }
16
+ /** @internal */
17
+ export function fromFunctionEffectStateful(initialState, handler) {
18
+ return Effect.flatMap(RecipientBehaviourContext.entityId, entityId => pipe(initialState(entityId), Effect.flatMap(Ref.make), Effect.flatMap(stateRef => pipe(Effect.context(), Effect.map(context => message => pipe(handler(entityId, message, stateRef), Effect.provide(context)))))));
19
+ }
20
+ /** @internal */
21
+ export function fromInMemoryQueue(handler) {
22
+ return Effect.gen(function* (_) {
23
+ const entityId = yield* _(RecipientBehaviourContext.entityId);
24
+ const messageStates = yield* _(Ref.make(HashMap.empty()));
25
+ function updateMessageState(message, state) {
26
+ return pipe(Ref.update(messageStates, HashMap.set(PrimaryKey.value(message), state)), Effect.as(state));
27
+ }
28
+ function getMessageState(message) {
29
+ return pipe(Ref.get(messageStates), Effect.map(HashMap.get(PrimaryKey.value(message))));
30
+ }
31
+ function reply(message, reply) {
32
+ return updateMessageState(message, MessageState.Processed(reply));
33
+ }
34
+ return yield* _(pipe(Deferred.make(), Effect.flatMap(shutdownCompleted => pipe(Effect.acquireRelease(Queue.unbounded(), queue => pipe(PoisonPill.make, Effect.flatMap(msg => Queue.offer(queue, msg)), Effect.zipLeft(Deferred.await(shutdownCompleted)), Effect.uninterruptible)), Effect.tap(queue => pipe(Effect.logDebug("Behaviour started."), Effect.zipRight(handler(entityId, queue, reply)), Effect.ensuring(Deferred.succeed(shutdownCompleted, true)), Effect.zipRight(Effect.logDebug("Behaviour exited.")), Effect.annotateLogs("entityId", entityId), Effect.forkDaemon)), Effect.map(queue => message => {
35
+ return pipe(getMessageState(message), Effect.flatMap(Option.match({
36
+ onNone: () => pipe(Queue.offer(queue, message), Effect.zipRight(updateMessageState(message, MessageState.Acknowledged))),
37
+ onSome: state => Effect.succeed(state)
38
+ })));
39
+ }), Effect.annotateLogs("entityId", entityId)))));
40
+ });
41
+ }
42
+ //# sourceMappingURL=recipientBehaviour.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipientBehaviour.js","names":["Deferred","Effect","pipe","HashMap","Option","PrimaryKey","Queue","Ref","MessageState","PoisonPill","RecipientBehaviourContext","fromFunctionEffect","handler","flatMap","entityId","context","map","message","provide","fromFunctionEffectStateful","initialState","make","stateRef","fromInMemoryQueue","gen","_","messageStates","empty","updateMessageState","state","update","set","value","as","getMessageState","get","reply","Processed","shutdownCompleted","acquireRelease","unbounded","queue","msg","offer","zipLeft","await","uninterruptible","tap","logDebug","zipRight","ensuring","succeed","annotateLogs","forkDaemon","match","onNone","Acknowledged","onSome"],"sources":["../../../src/internal/recipientBehaviour.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ /** @internal */
4
+ const RecipientBehaviourContextSymbolKey = "@effect/cluster/RecipientBehaviourContext";
5
+ /** @internal */
6
+ export const RecipientBehaviourContextTypeId = /*#__PURE__*/Symbol.for(RecipientBehaviourContextSymbolKey);
7
+ /** @internal */
8
+ export const recipientBehaviourContextTag = /*#__PURE__*/Context.GenericTag(RecipientBehaviourContextSymbolKey);
9
+ /** @internal */
10
+ export function make(args) {
11
+ return {
12
+ [RecipientBehaviourContextTypeId]: RecipientBehaviourContextTypeId,
13
+ ...args
14
+ };
15
+ }
16
+ /** @internal */
17
+ export const recipientAddress = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.recipientAddress);
18
+ /** @internal */
19
+ export const entityId = /*#__PURE__*/Effect.map(recipientAddress, _ => _.entityId);
20
+ /** @internal */
21
+ export const shardId = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.shardId);
22
+ /** @internal */
23
+ export const recipientType = /*#__PURE__*/Effect.map(recipientBehaviourContextTag, _ => _.recipientType);
24
+ /** @internal */
25
+ export const forkShutdown = /*#__PURE__*/Effect.flatMap(recipientBehaviourContextTag, _ => _.forkShutdown);
26
+ //# sourceMappingURL=recipientBehaviourContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recipientBehaviourContext.js","names":["Context","Effect","RecipientBehaviourContextSymbolKey","RecipientBehaviourContextTypeId","Symbol","for","recipientBehaviourContextTag","GenericTag","make","args","recipientAddress","map","_","entityId","shardId","recipientType","forkShutdown","flatMap"],"sources":["../../../src/internal/recipientBehaviourContext.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAOvC;AACA,MAAMC,kCAAkC,GAAG,2CAA2C;AAEtF;AACA,OAAO,MAAMC,+BAA+B,gBAA8DC,MAAM,CAACC,GAAG,CAClHH,kCAAkC,CAC0B;AAE9D;AACA,OAAO,MAAMI,4BAA4B,gBAAGN,OAAO,CAACO,UAAU,CAC5DL,kCAAkC,CACnC;AAED;AACA,OAAM,SAAUM,IAAIA,CAClBC,IAGC;EAED,OAAQ;IAAE,CAACN,+BAA+B,GAAGA,+BAA+B;IAAE,GAAGM;EAAI,CAAE;AACzF;AAEA;AACA,OAAO,MAAMC,gBAAgB,gBAIzBT,MAAM,CAACU,GAAG,CACZL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACF,gBAAgB,CAC1B;AAED;AACA,OAAO,MAAMG,QAAQ,gBAAsFZ,MAAM,CAACU,GAAG,CACnHD,gBAAgB,EACfE,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAClB;AAED;AACA,OAAO,MAAMC,OAAO,gBAClBb,MAAM,CAACU,GAAG,CACRL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACE,OAAO,CACjB;AAEH;AACA,OAAO,MAAMC,aAAa,gBAItBd,MAAM,CAACU,GAAG,CACZL,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACG,aAAa,CACvB;AAED;AACA,OAAO,MAAMC,YAAY,gBAAoFf,MAAM,CAChHgB,OAAO,CACNX,4BAA4B,EAC3BM,CAAC,IAAKA,CAAC,CAACI,YAAY,CACtB","ignoreList":[]}