effect 4.0.0-beta.2 → 4.0.0-beta.21

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 (881) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts +2 -2
  6. package/dist/Cache.d.ts.map +1 -1
  7. package/dist/Cache.js +6 -5
  8. package/dist/Cache.js.map +1 -1
  9. package/dist/Cause.d.ts +1 -1
  10. package/dist/Cause.d.ts.map +1 -1
  11. package/dist/Channel.d.ts +116 -30
  12. package/dist/Channel.d.ts.map +1 -1
  13. package/dist/Channel.js +82 -37
  14. package/dist/Channel.js.map +1 -1
  15. package/dist/Chunk.d.ts +54 -247
  16. package/dist/Chunk.d.ts.map +1 -1
  17. package/dist/Chunk.js +36 -67
  18. package/dist/Chunk.js.map +1 -1
  19. package/dist/Combiner.d.ts +280 -13
  20. package/dist/Combiner.d.ts.map +1 -1
  21. package/dist/Combiner.js +198 -7
  22. package/dist/Combiner.js.map +1 -1
  23. package/dist/Config.d.ts +165 -9
  24. package/dist/Config.d.ts.map +1 -1
  25. package/dist/Config.js +62 -7
  26. package/dist/Config.js.map +1 -1
  27. package/dist/ConfigProvider.d.ts +1 -1
  28. package/dist/Cron.d.ts +1 -1
  29. package/dist/Data.d.ts +534 -365
  30. package/dist/Data.d.ts.map +1 -1
  31. package/dist/Data.js +132 -79
  32. package/dist/Data.js.map +1 -1
  33. package/dist/DateTime.d.ts +23 -161
  34. package/dist/DateTime.d.ts.map +1 -1
  35. package/dist/DateTime.js +6 -51
  36. package/dist/DateTime.js.map +1 -1
  37. package/dist/Duration.d.ts +12 -12
  38. package/dist/Duration.d.ts.map +1 -1
  39. package/dist/Duration.js +12 -12
  40. package/dist/Duration.js.map +1 -1
  41. package/dist/Effect.d.ts +829 -692
  42. package/dist/Effect.d.ts.map +1 -1
  43. package/dist/Effect.js +263 -251
  44. package/dist/Effect.js.map +1 -1
  45. package/dist/Encoding.d.ts +194 -0
  46. package/dist/Encoding.d.ts.map +1 -0
  47. package/dist/Encoding.js +352 -0
  48. package/dist/Encoding.js.map +1 -0
  49. package/dist/Equal.d.ts +276 -109
  50. package/dist/Equal.d.ts.map +1 -1
  51. package/dist/Equal.js +124 -48
  52. package/dist/Equal.js.map +1 -1
  53. package/dist/ErrorReporter.d.ts +376 -0
  54. package/dist/ErrorReporter.d.ts.map +1 -0
  55. package/dist/ErrorReporter.js +246 -0
  56. package/dist/ErrorReporter.js.map +1 -0
  57. package/dist/Fiber.d.ts +2 -2
  58. package/dist/Fiber.d.ts.map +1 -1
  59. package/dist/Fiber.js.map +1 -1
  60. package/dist/FileSystem.d.ts +1 -1
  61. package/dist/FileSystem.d.ts.map +1 -1
  62. package/dist/FileSystem.js +5 -5
  63. package/dist/FileSystem.js.map +1 -1
  64. package/dist/Filter.d.ts +30 -34
  65. package/dist/Filter.d.ts.map +1 -1
  66. package/dist/Filter.js +15 -13
  67. package/dist/Filter.js.map +1 -1
  68. package/dist/Formatter.d.ts +131 -47
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +229 -51
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts +1 -1
  73. package/dist/Graph.d.ts.map +1 -1
  74. package/dist/Graph.js +5 -8
  75. package/dist/Graph.js.map +1 -1
  76. package/dist/HashMap.d.ts +15 -14
  77. package/dist/HashMap.d.ts.map +1 -1
  78. package/dist/HashMap.js +4 -4
  79. package/dist/HashMap.js.map +1 -1
  80. package/dist/Iterable.d.ts +40 -39
  81. package/dist/Iterable.d.ts.map +1 -1
  82. package/dist/Iterable.js +94 -22
  83. package/dist/Iterable.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +299 -10
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +323 -4
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Latch.d.ts +109 -0
  89. package/dist/Latch.d.ts.map +1 -0
  90. package/dist/Latch.js +72 -0
  91. package/dist/Latch.js.map +1 -0
  92. package/dist/Layer.d.ts +9 -9
  93. package/dist/Layer.d.ts.map +1 -1
  94. package/dist/Layer.js.map +1 -1
  95. package/dist/LayerMap.d.ts +4 -4
  96. package/dist/LayerMap.d.ts.map +1 -1
  97. package/dist/LogLevel.d.ts +32 -0
  98. package/dist/LogLevel.d.ts.map +1 -1
  99. package/dist/LogLevel.js +28 -100
  100. package/dist/LogLevel.js.map +1 -1
  101. package/dist/Logger.d.ts +29 -95
  102. package/dist/Logger.d.ts.map +1 -1
  103. package/dist/Logger.js +2 -3
  104. package/dist/Logger.js.map +1 -1
  105. package/dist/ManagedRuntime.d.ts +1 -1
  106. package/dist/ManagedRuntime.js +1 -1
  107. package/dist/Metric.d.ts +2 -2
  108. package/dist/Metric.d.ts.map +1 -1
  109. package/dist/Metric.js +1 -1
  110. package/dist/Metric.js.map +1 -1
  111. package/dist/Optic.d.ts +947 -18
  112. package/dist/Optic.d.ts.map +1 -1
  113. package/dist/Optic.js +454 -5
  114. package/dist/Optic.js.map +1 -1
  115. package/dist/Option.d.ts +22 -15
  116. package/dist/Option.d.ts.map +1 -1
  117. package/dist/Option.js +14 -7
  118. package/dist/Option.js.map +1 -1
  119. package/dist/Pipeable.d.ts +17 -0
  120. package/dist/Pipeable.d.ts.map +1 -1
  121. package/dist/Pipeable.js +19 -1
  122. package/dist/Pipeable.js.map +1 -1
  123. package/dist/PlatformError.d.ts +10 -9
  124. package/dist/PlatformError.d.ts.map +1 -1
  125. package/dist/PlatformError.js +2 -2
  126. package/dist/PlatformError.js.map +1 -1
  127. package/dist/Pool.d.ts +6 -4
  128. package/dist/Pool.d.ts.map +1 -1
  129. package/dist/Pool.js +7 -5
  130. package/dist/Pool.js.map +1 -1
  131. package/dist/PubSub.d.ts +3 -2
  132. package/dist/PubSub.d.ts.map +1 -1
  133. package/dist/PubSub.js +3 -2
  134. package/dist/PubSub.js.map +1 -1
  135. package/dist/Pull.d.ts.map +1 -1
  136. package/dist/Pull.js +1 -1
  137. package/dist/Pull.js.map +1 -1
  138. package/dist/Queue.d.ts.map +1 -1
  139. package/dist/Queue.js +0 -1
  140. package/dist/Queue.js.map +1 -1
  141. package/dist/Random.d.ts +35 -1
  142. package/dist/Random.d.ts.map +1 -1
  143. package/dist/Random.js +46 -12
  144. package/dist/Random.js.map +1 -1
  145. package/dist/RcMap.d.ts +2 -2
  146. package/dist/RcMap.d.ts.map +1 -1
  147. package/dist/RcMap.js +1 -1
  148. package/dist/RcMap.js.map +1 -1
  149. package/dist/RcRef.d.ts +1 -1
  150. package/dist/RcRef.d.ts.map +1 -1
  151. package/dist/Record.d.ts +24 -120
  152. package/dist/Record.d.ts.map +1 -1
  153. package/dist/Record.js +21 -41
  154. package/dist/Record.js.map +1 -1
  155. package/dist/Reducer.d.ts +166 -7
  156. package/dist/Reducer.d.ts.map +1 -1
  157. package/dist/Reducer.js +135 -1
  158. package/dist/Reducer.js.map +1 -1
  159. package/dist/References.d.ts +3 -3
  160. package/dist/References.d.ts.map +1 -1
  161. package/dist/Request.d.ts +1 -1
  162. package/dist/Request.d.ts.map +1 -1
  163. package/dist/Request.js +2 -1
  164. package/dist/Request.js.map +1 -1
  165. package/dist/RequestResolver.d.ts +6 -26
  166. package/dist/RequestResolver.d.ts.map +1 -1
  167. package/dist/RequestResolver.js +0 -20
  168. package/dist/RequestResolver.js.map +1 -1
  169. package/dist/Result.d.ts +12 -0
  170. package/dist/Result.d.ts.map +1 -1
  171. package/dist/Result.js +12 -0
  172. package/dist/Result.js.map +1 -1
  173. package/dist/Schedule.d.ts +47 -20
  174. package/dist/Schedule.d.ts.map +1 -1
  175. package/dist/Schedule.js +94 -34
  176. package/dist/Schedule.js.map +1 -1
  177. package/dist/Schema.d.ts +266 -50
  178. package/dist/Schema.d.ts.map +1 -1
  179. package/dist/Schema.js +426 -74
  180. package/dist/Schema.js.map +1 -1
  181. package/dist/SchemaAST.d.ts.map +1 -1
  182. package/dist/SchemaAST.js +7 -6
  183. package/dist/SchemaAST.js.map +1 -1
  184. package/dist/SchemaGetter.d.ts +2 -2
  185. package/dist/SchemaGetter.d.ts.map +1 -1
  186. package/dist/SchemaGetter.js +12 -14
  187. package/dist/SchemaGetter.js.map +1 -1
  188. package/dist/SchemaParser.d.ts +5 -0
  189. package/dist/SchemaParser.d.ts.map +1 -1
  190. package/dist/SchemaParser.js +10 -0
  191. package/dist/SchemaParser.js.map +1 -1
  192. package/dist/SchemaRepresentation.d.ts +44 -43
  193. package/dist/SchemaRepresentation.d.ts.map +1 -1
  194. package/dist/SchemaRepresentation.js +43 -24
  195. package/dist/SchemaRepresentation.js.map +1 -1
  196. package/dist/SchemaTransformation.d.ts +107 -3
  197. package/dist/SchemaTransformation.d.ts.map +1 -1
  198. package/dist/SchemaTransformation.js +159 -4
  199. package/dist/SchemaTransformation.js.map +1 -1
  200. package/dist/ScopedCache.d.ts +2 -2
  201. package/dist/ScopedCache.d.ts.map +1 -1
  202. package/dist/ScopedCache.js +1 -1
  203. package/dist/ScopedCache.js.map +1 -1
  204. package/dist/Semaphore.d.ts +211 -0
  205. package/dist/Semaphore.d.ts.map +1 -0
  206. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  207. package/dist/Semaphore.js.map +1 -0
  208. package/dist/ServiceMap.d.ts +39 -30
  209. package/dist/ServiceMap.d.ts.map +1 -1
  210. package/dist/ServiceMap.js +3 -3
  211. package/dist/ServiceMap.js.map +1 -1
  212. package/dist/Sink.d.ts +13 -13
  213. package/dist/Sink.d.ts.map +1 -1
  214. package/dist/Sink.js +53 -6
  215. package/dist/Sink.js.map +1 -1
  216. package/dist/Stream.d.ts +235 -423
  217. package/dist/Stream.d.ts.map +1 -1
  218. package/dist/Stream.js +124 -77
  219. package/dist/Stream.js.map +1 -1
  220. package/dist/Struct.d.ts +16 -0
  221. package/dist/Struct.d.ts.map +1 -1
  222. package/dist/Struct.js +22 -0
  223. package/dist/Struct.js.map +1 -1
  224. package/dist/SubscriptionRef.d.ts +2 -1
  225. package/dist/SubscriptionRef.d.ts.map +1 -1
  226. package/dist/SubscriptionRef.js +2 -1
  227. package/dist/SubscriptionRef.js.map +1 -1
  228. package/dist/SynchronizedRef.d.ts +2 -1
  229. package/dist/SynchronizedRef.d.ts.map +1 -1
  230. package/dist/SynchronizedRef.js +2 -1
  231. package/dist/SynchronizedRef.js.map +1 -1
  232. package/dist/Trie.d.ts +18 -17
  233. package/dist/Trie.d.ts.map +1 -1
  234. package/dist/Trie.js +5 -5
  235. package/dist/Trie.js.map +1 -1
  236. package/dist/TxChunk.d.ts +37 -37
  237. package/dist/TxChunk.d.ts.map +1 -1
  238. package/dist/TxChunk.js +3 -3
  239. package/dist/TxChunk.js.map +1 -1
  240. package/dist/TxDeferred.d.ts +328 -0
  241. package/dist/TxDeferred.d.ts.map +1 -0
  242. package/dist/TxDeferred.js +196 -0
  243. package/dist/TxDeferred.js.map +1 -0
  244. package/dist/TxHashMap.d.ts +84 -83
  245. package/dist/TxHashMap.d.ts.map +1 -1
  246. package/dist/TxHashMap.js +24 -24
  247. package/dist/TxHashMap.js.map +1 -1
  248. package/dist/TxHashSet.d.ts +35 -35
  249. package/dist/TxHashSet.d.ts.map +1 -1
  250. package/dist/TxHashSet.js +14 -14
  251. package/dist/TxHashSet.js.map +1 -1
  252. package/dist/TxPriorityQueue.d.ts +609 -0
  253. package/dist/TxPriorityQueue.d.ts.map +1 -0
  254. package/dist/TxPriorityQueue.js +415 -0
  255. package/dist/TxPriorityQueue.js.map +1 -0
  256. package/dist/TxPubSub.d.ts +585 -0
  257. package/dist/TxPubSub.d.ts.map +1 -0
  258. package/dist/TxPubSub.js +521 -0
  259. package/dist/TxPubSub.js.map +1 -0
  260. package/dist/TxQueue.d.ts +32 -32
  261. package/dist/TxQueue.d.ts.map +1 -1
  262. package/dist/TxQueue.js +26 -26
  263. package/dist/TxQueue.js.map +1 -1
  264. package/dist/TxReentrantLock.d.ts +523 -0
  265. package/dist/TxReentrantLock.d.ts.map +1 -0
  266. package/dist/TxReentrantLock.js +504 -0
  267. package/dist/TxReentrantLock.js.map +1 -0
  268. package/dist/TxRef.d.ts +34 -34
  269. package/dist/TxRef.d.ts.map +1 -1
  270. package/dist/TxRef.js +21 -14
  271. package/dist/TxRef.js.map +1 -1
  272. package/dist/TxSemaphore.d.ts +8 -8
  273. package/dist/TxSemaphore.d.ts.map +1 -1
  274. package/dist/TxSemaphore.js +7 -7
  275. package/dist/TxSemaphore.js.map +1 -1
  276. package/dist/TxSubscriptionRef.d.ts +508 -0
  277. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  278. package/dist/TxSubscriptionRef.js +293 -0
  279. package/dist/TxSubscriptionRef.js.map +1 -0
  280. package/dist/Types.d.ts +84 -6
  281. package/dist/Types.d.ts.map +1 -1
  282. package/dist/index.d.ts +591 -20
  283. package/dist/index.d.ts.map +1 -1
  284. package/dist/index.js +591 -20
  285. package/dist/index.js.map +1 -1
  286. package/dist/internal/core.js +11 -3
  287. package/dist/internal/core.js.map +1 -1
  288. package/dist/internal/dateTime.js +3 -11
  289. package/dist/internal/dateTime.js.map +1 -1
  290. package/dist/internal/effect.js +263 -99
  291. package/dist/internal/effect.js.map +1 -1
  292. package/dist/internal/hashMap.js +5 -4
  293. package/dist/internal/hashMap.js.map +1 -1
  294. package/dist/internal/random.d.ts +2 -0
  295. package/dist/internal/random.d.ts.map +1 -0
  296. package/dist/internal/random.js +13 -0
  297. package/dist/internal/random.js.map +1 -0
  298. package/dist/internal/rcRef.js +3 -2
  299. package/dist/internal/rcRef.js.map +1 -1
  300. package/dist/internal/request.js +2 -2
  301. package/dist/internal/request.js.map +1 -1
  302. package/dist/internal/schema/annotations.js +2 -0
  303. package/dist/internal/schema/annotations.js.map +1 -1
  304. package/dist/internal/schema/schema.js +1 -0
  305. package/dist/internal/schema/schema.js.map +1 -1
  306. package/dist/internal/trie.js +5 -4
  307. package/dist/internal/trie.js.map +1 -1
  308. package/dist/testing/TestClock.d.ts +7 -6
  309. package/dist/testing/TestClock.d.ts.map +1 -1
  310. package/dist/testing/TestClock.js +6 -4
  311. package/dist/testing/TestClock.js.map +1 -1
  312. package/dist/testing/TestSchema.d.ts +8 -8
  313. package/dist/testing/TestSchema.d.ts.map +1 -1
  314. package/dist/testing/TestSchema.js.map +1 -1
  315. package/dist/unstable/ai/AiError.d.ts +128 -48
  316. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  317. package/dist/unstable/ai/AiError.js +11 -12
  318. package/dist/unstable/ai/AiError.js.map +1 -1
  319. package/dist/unstable/ai/Chat.d.ts +3 -3
  320. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  321. package/dist/unstable/ai/Chat.js +4 -3
  322. package/dist/unstable/ai/Chat.js.map +1 -1
  323. package/dist/unstable/ai/LanguageModel.d.ts +4 -2
  324. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  325. package/dist/unstable/ai/LanguageModel.js +86 -14
  326. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  327. package/dist/unstable/ai/McpSchema.d.ts +163 -87
  328. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  329. package/dist/unstable/ai/McpSchema.js +49 -12
  330. package/dist/unstable/ai/McpSchema.js.map +1 -1
  331. package/dist/unstable/ai/McpServer.d.ts +1 -1
  332. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  333. package/dist/unstable/ai/McpServer.js +35 -7
  334. package/dist/unstable/ai/McpServer.js.map +1 -1
  335. package/dist/unstable/ai/Model.d.ts +25 -7
  336. package/dist/unstable/ai/Model.d.ts.map +1 -1
  337. package/dist/unstable/ai/Model.js +22 -6
  338. package/dist/unstable/ai/Model.js.map +1 -1
  339. package/dist/unstable/ai/Prompt.d.ts +20 -20
  340. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  341. package/dist/unstable/ai/Response.d.ts +26 -26
  342. package/dist/unstable/ai/Response.d.ts.map +1 -1
  343. package/dist/unstable/ai/Response.js +1 -1
  344. package/dist/unstable/ai/Response.js.map +1 -1
  345. package/dist/unstable/ai/Tool.d.ts +19 -3
  346. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  347. package/dist/unstable/ai/Tool.js +14 -9
  348. package/dist/unstable/ai/Tool.js.map +1 -1
  349. package/dist/unstable/ai/index.d.ts +1 -1
  350. package/dist/unstable/ai/index.js +1 -1
  351. package/dist/unstable/cli/CliError.d.ts +5 -5
  352. package/dist/unstable/cli/CliOutput.js +59 -6
  353. package/dist/unstable/cli/CliOutput.js.map +1 -1
  354. package/dist/unstable/cli/Command.d.ts +276 -19
  355. package/dist/unstable/cli/Command.d.ts.map +1 -1
  356. package/dist/unstable/cli/Command.js +234 -36
  357. package/dist/unstable/cli/Command.js.map +1 -1
  358. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  359. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  360. package/dist/unstable/cli/GlobalFlag.js +118 -0
  361. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  362. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  363. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  364. package/dist/unstable/cli/index.d.ts +4 -0
  365. package/dist/unstable/cli/index.d.ts.map +1 -1
  366. package/dist/unstable/cli/index.js +4 -0
  367. package/dist/unstable/cli/index.js.map +1 -1
  368. package/dist/unstable/cli/internal/command.d.ts +17 -8
  369. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  370. package/dist/unstable/cli/internal/command.js +32 -23
  371. package/dist/unstable/cli/internal/command.js.map +1 -1
  372. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  373. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  374. package/dist/unstable/cli/internal/help.d.ts +33 -0
  375. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  376. package/dist/unstable/cli/internal/help.js +107 -0
  377. package/dist/unstable/cli/internal/help.js.map +1 -0
  378. package/dist/unstable/cli/internal/parser.js +29 -36
  379. package/dist/unstable/cli/internal/parser.js.map +1 -1
  380. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  381. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  382. package/dist/unstable/cluster/ClusterCron.js +1 -1
  383. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  384. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  385. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  386. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  387. package/dist/unstable/cluster/Entity.d.ts +7 -6
  388. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  389. package/dist/unstable/cluster/Entity.js.map +1 -1
  390. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  391. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  392. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  393. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  394. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  395. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  396. package/dist/unstable/cluster/Message.d.ts +10 -10
  397. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  398. package/dist/unstable/cluster/MessageStorage.js +2 -1
  399. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  400. package/dist/unstable/cluster/Reply.d.ts +6 -6
  401. package/dist/unstable/cluster/Runner.d.ts +1 -1
  402. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  403. package/dist/unstable/cluster/Runners.js +4 -3
  404. package/dist/unstable/cluster/Runners.js.map +1 -1
  405. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  406. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  407. package/dist/unstable/cluster/Sharding.js +9 -7
  408. package/dist/unstable/cluster/Sharding.js.map +1 -1
  409. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  410. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  411. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  412. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  413. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  414. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  415. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  416. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  417. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  418. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  419. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  420. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  421. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  422. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  423. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  424. package/dist/unstable/encoding/Sse.d.ts +4 -4
  425. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  426. package/dist/unstable/encoding/Sse.js +1 -1
  427. package/dist/unstable/encoding/Sse.js.map +1 -1
  428. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  429. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/unstable/eventlog/EventLog.js +2 -1
  431. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  432. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  433. package/dist/unstable/http/Cookies.d.ts +3 -3
  434. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  435. package/dist/unstable/http/Cookies.js +2 -2
  436. package/dist/unstable/http/Cookies.js.map +1 -1
  437. package/dist/unstable/http/Headers.d.ts.map +1 -1
  438. package/dist/unstable/http/Headers.js +27 -10
  439. package/dist/unstable/http/Headers.js.map +1 -1
  440. package/dist/unstable/http/HttpBody.d.ts +17 -2
  441. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpBody.js +28 -1
  443. package/dist/unstable/http/HttpBody.js.map +1 -1
  444. package/dist/unstable/http/HttpClient.d.ts +37 -13
  445. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpClient.js +4 -4
  447. package/dist/unstable/http/HttpClient.js.map +1 -1
  448. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  449. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  450. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  451. package/dist/unstable/http/HttpClientRequest.js +15 -3
  452. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  453. package/dist/unstable/http/HttpEffect.d.ts +3 -8
  454. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  455. package/dist/unstable/http/HttpEffect.js +42 -56
  456. package/dist/unstable/http/HttpEffect.js.map +1 -1
  457. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  458. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  459. package/dist/unstable/http/HttpMethod.js +3 -3
  460. package/dist/unstable/http/HttpMethod.js.map +1 -1
  461. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  462. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  463. package/dist/unstable/http/HttpMiddleware.js +8 -17
  464. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  465. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  466. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  467. package/dist/unstable/http/HttpServerError.js +37 -44
  468. package/dist/unstable/http/HttpServerError.js.map +1 -1
  469. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  470. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  471. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  472. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  473. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  474. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  475. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  476. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  477. package/dist/unstable/http/HttpServerResponse.js +3 -1
  478. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  479. package/dist/unstable/http/Multipart.d.ts +3 -3
  480. package/dist/unstable/http/UrlParams.d.ts +14 -6
  481. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  482. package/dist/unstable/http/UrlParams.js +1 -1
  483. package/dist/unstable/http/UrlParams.js.map +1 -1
  484. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  485. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  486. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  487. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  488. package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
  489. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  490. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  491. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  492. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  493. package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
  494. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  495. package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
  496. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  497. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  498. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  499. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
  500. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  501. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  502. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  503. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  504. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  505. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  506. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  507. package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
  508. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  509. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  510. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  511. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  512. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  513. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  514. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  515. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  516. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  517. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  518. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  519. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  520. package/dist/unstable/httpapi/OpenApi.js +32 -21
  521. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  522. package/dist/unstable/observability/Otlp.d.ts +12 -12
  523. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  524. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  525. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  526. package/dist/unstable/observability/OtlpExporter.js +1 -1
  527. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  528. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  529. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  530. package/dist/unstable/observability/OtlpLogger.js +7 -4
  531. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  532. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  533. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  534. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  535. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  536. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  537. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  538. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  539. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  540. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  541. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  542. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  543. package/dist/unstable/persistence/PersistedCache.js +2 -1
  544. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  545. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  546. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  547. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  548. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  549. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  550. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  551. package/dist/unstable/persistence/Persistence.js +2 -2
  552. package/dist/unstable/persistence/Persistence.js.map +1 -1
  553. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  554. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  555. package/dist/unstable/persistence/RateLimiter.js +1 -1
  556. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  557. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  558. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  559. package/dist/unstable/process/ChildProcess.js +1 -65
  560. package/dist/unstable/process/ChildProcess.js.map +1 -1
  561. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  562. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  563. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  564. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  565. package/dist/unstable/reactivity/Atom.d.ts +10 -10
  566. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  567. package/dist/unstable/reactivity/Atom.js +16 -13
  568. package/dist/unstable/reactivity/Atom.js.map +1 -1
  569. package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
  570. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  571. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  572. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  573. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  574. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  575. package/dist/unstable/reactivity/AtomRegistry.js +24 -7
  576. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  577. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  578. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  579. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  580. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  581. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  582. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  583. package/dist/unstable/reactivity/Hydration.js +76 -0
  584. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  585. package/dist/unstable/reactivity/index.d.ts +4 -0
  586. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  587. package/dist/unstable/reactivity/index.js +4 -0
  588. package/dist/unstable/reactivity/index.js.map +1 -1
  589. package/dist/unstable/rpc/Rpc.d.ts +4 -4
  590. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Rpc.js.map +1 -1
  592. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  593. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  594. package/dist/unstable/rpc/RpcClient.js +6 -13
  595. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  596. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  597. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  598. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  599. package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
  600. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  601. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  602. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  603. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  604. package/dist/unstable/rpc/RpcSchema.js +14 -0
  605. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  606. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  607. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  608. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  609. package/dist/unstable/rpc/RpcServer.d.ts +0 -7
  610. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  611. package/dist/unstable/rpc/RpcServer.js +15 -15
  612. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  613. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  614. package/dist/unstable/rpc/Utils.js +2 -1
  615. package/dist/unstable/rpc/Utils.js.map +1 -1
  616. package/dist/unstable/schema/Model.d.ts +1 -1
  617. package/dist/unstable/schema/Model.d.ts.map +1 -1
  618. package/dist/unstable/schema/VariantSchema.d.ts +3 -3
  619. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  620. package/dist/unstable/schema/VariantSchema.js +3 -3
  621. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  622. package/dist/unstable/socket/Socket.d.ts +4 -4
  623. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  624. package/dist/unstable/socket/Socket.js +6 -5
  625. package/dist/unstable/socket/Socket.js.map +1 -1
  626. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  627. package/dist/unstable/sql/Migrator.d.ts +1 -1
  628. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  629. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  630. package/dist/unstable/sql/SqlError.d.ts +14 -14
  631. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  632. package/dist/unstable/sql/SqlError.js +9 -3
  633. package/dist/unstable/sql/SqlError.js.map +1 -1
  634. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  635. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  636. package/dist/unstable/sql/SqlModel.js +3 -3
  637. package/dist/unstable/sql/SqlModel.js.map +1 -1
  638. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  639. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  640. package/dist/unstable/sql/SqlSchema.js +17 -7
  641. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  642. package/dist/unstable/sql/Statement.js +0 -1
  643. package/dist/unstable/sql/Statement.js.map +1 -1
  644. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  645. package/dist/unstable/workers/Worker.js +2 -1
  646. package/dist/unstable/workers/Worker.js.map +1 -1
  647. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  648. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  649. package/dist/unstable/workflow/DurableClock.js +3 -3
  650. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  651. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  652. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  653. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  654. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  655. package/dist/unstable/workflow/Workflow.js +1 -1
  656. package/dist/unstable/workflow/Workflow.js.map +1 -1
  657. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  658. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  660. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  661. package/package.json +2 -2
  662. package/src/Array.ts +190 -342
  663. package/src/Cache.ts +9 -8
  664. package/src/Cause.ts +1 -1
  665. package/src/Channel.ts +554 -138
  666. package/src/Chunk.ts +81 -268
  667. package/src/Combiner.ts +280 -13
  668. package/src/Config.ts +183 -21
  669. package/src/Data.ts +538 -374
  670. package/src/DateTime.ts +24 -164
  671. package/src/Duration.ts +15 -15
  672. package/src/Effect.ts +991 -800
  673. package/src/Encoding.ts +879 -0
  674. package/src/Equal.ts +278 -111
  675. package/src/ErrorReporter.ts +459 -0
  676. package/src/Fiber.ts +9 -2
  677. package/src/FileSystem.ts +7 -8
  678. package/src/Filter.ts +48 -58
  679. package/src/Formatter.ts +253 -51
  680. package/src/Graph.ts +24 -11
  681. package/src/HashMap.ts +15 -14
  682. package/src/Iterable.ts +105 -50
  683. package/src/JsonSchema.ts +383 -10
  684. package/src/Latch.ts +112 -0
  685. package/src/Layer.ts +11 -15
  686. package/src/LayerMap.ts +5 -5
  687. package/src/LogLevel.ts +37 -0
  688. package/src/Logger.ts +33 -100
  689. package/src/ManagedRuntime.ts +1 -1
  690. package/src/Metric.ts +4 -4
  691. package/src/Optic.ts +948 -19
  692. package/src/Option.ts +30 -20
  693. package/src/Pipeable.ts +32 -1
  694. package/src/PlatformError.ts +5 -5
  695. package/src/Pool.ts +13 -11
  696. package/src/PubSub.ts +10 -9
  697. package/src/Pull.ts +1 -1
  698. package/src/Queue.ts +0 -1
  699. package/src/Random.ts +51 -14
  700. package/src/RcMap.ts +5 -5
  701. package/src/RcRef.ts +1 -1
  702. package/src/Record.ts +43 -152
  703. package/src/Reducer.ts +166 -7
  704. package/src/References.ts +4 -4
  705. package/src/Request.ts +3 -2
  706. package/src/RequestResolver.ts +9 -29
  707. package/src/Result.ts +13 -0
  708. package/src/Schedule.ts +318 -160
  709. package/src/Schema.ts +661 -116
  710. package/src/SchemaAST.ts +7 -6
  711. package/src/SchemaGetter.ts +12 -14
  712. package/src/SchemaParser.ts +11 -0
  713. package/src/SchemaRepresentation.ts +43 -24
  714. package/src/SchemaTransformation.ts +189 -4
  715. package/src/ScopedCache.ts +3 -3
  716. package/src/Semaphore.ts +356 -0
  717. package/src/ServiceMap.ts +47 -38
  718. package/src/Sink.ts +78 -26
  719. package/src/Stream.ts +566 -601
  720. package/src/Struct.ts +26 -0
  721. package/src/SubscriptionRef.ts +3 -2
  722. package/src/SynchronizedRef.ts +3 -2
  723. package/src/Trie.ts +18 -17
  724. package/src/TxChunk.ts +72 -53
  725. package/src/TxDeferred.ts +394 -0
  726. package/src/TxHashMap.ts +332 -285
  727. package/src/TxHashSet.ts +111 -116
  728. package/src/TxPriorityQueue.ts +767 -0
  729. package/src/TxPubSub.ts +789 -0
  730. package/src/TxQueue.ts +241 -251
  731. package/src/TxReentrantLock.ts +753 -0
  732. package/src/TxRef.ts +50 -38
  733. package/src/TxSemaphore.ts +29 -32
  734. package/src/TxSubscriptionRef.ts +639 -0
  735. package/src/Types.ts +78 -2
  736. package/src/index.ts +600 -21
  737. package/src/internal/core.ts +12 -5
  738. package/src/internal/dateTime.ts +9 -30
  739. package/src/internal/effect.ts +744 -265
  740. package/src/internal/hashMap.ts +9 -7
  741. package/src/internal/random.ts +20 -0
  742. package/src/internal/rcRef.ts +4 -3
  743. package/src/internal/request.ts +2 -2
  744. package/src/internal/schema/annotations.ts +2 -0
  745. package/src/internal/schema/schema.ts +1 -0
  746. package/src/internal/trie.ts +16 -9
  747. package/src/testing/TestClock.ts +13 -11
  748. package/src/testing/TestSchema.ts +10 -10
  749. package/src/unstable/ai/AiError.ts +97 -44
  750. package/src/unstable/ai/Chat.ts +12 -11
  751. package/src/unstable/ai/LanguageModel.ts +129 -25
  752. package/src/unstable/ai/McpSchema.ts +59 -13
  753. package/src/unstable/ai/McpServer.ts +48 -9
  754. package/src/unstable/ai/Model.ts +40 -9
  755. package/src/unstable/ai/Prompt.ts +37 -37
  756. package/src/unstable/ai/Response.ts +25 -25
  757. package/src/unstable/ai/Tool.ts +19 -13
  758. package/src/unstable/ai/index.ts +1 -1
  759. package/src/unstable/cli/CliOutput.ts +75 -6
  760. package/src/unstable/cli/Command.ts +501 -60
  761. package/src/unstable/cli/GlobalFlag.ts +243 -0
  762. package/src/unstable/cli/HelpDoc.ts +80 -2
  763. package/src/unstable/cli/index.ts +5 -0
  764. package/src/unstable/cli/internal/command.ts +50 -34
  765. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  766. package/src/unstable/cli/internal/help.ts +146 -0
  767. package/src/unstable/cli/internal/parser.ts +33 -54
  768. package/src/unstable/cluster/ClusterCron.ts +2 -2
  769. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  770. package/src/unstable/cluster/Entity.ts +11 -10
  771. package/src/unstable/cluster/EntityResource.ts +4 -4
  772. package/src/unstable/cluster/Envelope.ts +1 -1
  773. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  774. package/src/unstable/cluster/MessageStorage.ts +3 -5
  775. package/src/unstable/cluster/Runners.ts +6 -5
  776. package/src/unstable/cluster/Sharding.ts +12 -10
  777. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  778. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  779. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  780. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  781. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  782. package/src/unstable/encoding/Sse.ts +3 -5
  783. package/src/unstable/eventlog/EventLog.ts +2 -1
  784. package/src/unstable/http/Cookies.ts +3 -3
  785. package/src/unstable/http/Headers.ts +28 -13
  786. package/src/unstable/http/HttpBody.ts +42 -1
  787. package/src/unstable/http/HttpClient.ts +58 -23
  788. package/src/unstable/http/HttpClientRequest.ts +38 -13
  789. package/src/unstable/http/HttpEffect.ts +46 -68
  790. package/src/unstable/http/HttpMethod.ts +16 -4
  791. package/src/unstable/http/HttpMiddleware.ts +9 -24
  792. package/src/unstable/http/HttpServerError.ts +42 -45
  793. package/src/unstable/http/HttpServerRequest.ts +1 -1
  794. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  795. package/src/unstable/http/HttpServerResponse.ts +4 -2
  796. package/src/unstable/http/Multipart.ts +2 -2
  797. package/src/unstable/http/UrlParams.ts +20 -5
  798. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  799. package/src/unstable/httpapi/HttpApi.ts +5 -5
  800. package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
  801. package/src/unstable/httpapi/HttpApiClient.ts +14 -6
  802. package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
  803. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  804. package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
  805. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  806. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  807. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  808. package/src/unstable/httpapi/OpenApi.ts +41 -23
  809. package/src/unstable/observability/Otlp.ts +12 -12
  810. package/src/unstable/observability/OtlpExporter.ts +3 -3
  811. package/src/unstable/observability/OtlpLogger.ts +13 -9
  812. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  813. package/src/unstable/observability/OtlpTracer.ts +4 -4
  814. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  815. package/src/unstable/persistence/Persistable.ts +2 -2
  816. package/src/unstable/persistence/PersistedCache.ts +20 -9
  817. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  818. package/src/unstable/persistence/Persistence.ts +3 -3
  819. package/src/unstable/persistence/RateLimiter.ts +4 -4
  820. package/src/unstable/process/ChildProcess.ts +6 -208
  821. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  822. package/src/unstable/reactivity/Atom.ts +27 -25
  823. package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
  824. package/src/unstable/reactivity/AtomRegistry.ts +31 -7
  825. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  826. package/src/unstable/reactivity/Hydration.ts +112 -0
  827. package/src/unstable/reactivity/index.ts +5 -0
  828. package/src/unstable/rpc/Rpc.ts +6 -6
  829. package/src/unstable/rpc/RpcClient.ts +12 -54
  830. package/src/unstable/rpc/RpcGroup.ts +4 -4
  831. package/src/unstable/rpc/RpcMiddleware.ts +3 -3
  832. package/src/unstable/rpc/RpcSchema.ts +17 -0
  833. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  834. package/src/unstable/rpc/RpcServer.ts +21 -30
  835. package/src/unstable/rpc/Utils.ts +2 -1
  836. package/src/unstable/schema/VariantSchema.ts +6 -6
  837. package/src/unstable/socket/Socket.ts +16 -17
  838. package/src/unstable/sql/SqlClient.ts +1 -1
  839. package/src/unstable/sql/SqlError.ts +11 -9
  840. package/src/unstable/sql/SqlModel.ts +5 -5
  841. package/src/unstable/sql/SqlSchema.ts +41 -25
  842. package/src/unstable/sql/Statement.ts +0 -1
  843. package/src/unstable/workers/Worker.ts +2 -1
  844. package/src/unstable/workflow/DurableClock.ts +8 -8
  845. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  846. package/src/unstable/workflow/Workflow.ts +6 -2
  847. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  848. package/dist/PartitionedSemaphore.d.ts +0 -52
  849. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  850. package/dist/PartitionedSemaphore.js.map +0 -1
  851. package/dist/encoding/Base64.d.ts +0 -67
  852. package/dist/encoding/Base64.d.ts.map +0 -1
  853. package/dist/encoding/Base64.js +0 -146
  854. package/dist/encoding/Base64.js.map +0 -1
  855. package/dist/encoding/Base64Url.d.ts +0 -60
  856. package/dist/encoding/Base64Url.d.ts.map +0 -1
  857. package/dist/encoding/Base64Url.js +0 -89
  858. package/dist/encoding/Base64Url.js.map +0 -1
  859. package/dist/encoding/EncodingError.d.ts +0 -31
  860. package/dist/encoding/EncodingError.d.ts.map +0 -1
  861. package/dist/encoding/EncodingError.js +0 -22
  862. package/dist/encoding/EncodingError.js.map +0 -1
  863. package/dist/encoding/Hex.d.ts +0 -61
  864. package/dist/encoding/Hex.d.ts.map +0 -1
  865. package/dist/encoding/Hex.js +0 -115
  866. package/dist/encoding/Hex.js.map +0 -1
  867. package/dist/encoding/index.d.ts +0 -26
  868. package/dist/encoding/index.d.ts.map +0 -1
  869. package/dist/encoding/index.js +0 -27
  870. package/dist/encoding/index.js.map +0 -1
  871. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  872. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  873. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  874. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  875. package/src/PartitionedSemaphore.ts +0 -182
  876. package/src/encoding/Base64.ts +0 -366
  877. package/src/encoding/Base64Url.ts +0 -104
  878. package/src/encoding/EncodingError.ts +0 -35
  879. package/src/encoding/Hex.ts +0 -390
  880. package/src/encoding/index.ts +0 -31
  881. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/TxHashMap.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import * as Effect from "./Effect.ts"
6
+ import type * as Filter from "./Filter.ts"
6
7
  import { format } from "./Formatter.ts"
7
8
  import { dual } from "./Function.ts"
8
9
  import * as HashMap from "./HashMap.ts"
@@ -53,7 +54,7 @@ const TxHashMapProto = {
53
54
  * console.log(user) // Option.some("Alice")
54
55
  *
55
56
  * // Multi-step atomic operations
56
- * yield* Effect.atomic(
57
+ * yield* Effect.transaction(
57
58
  * Effect.gen(function*() {
58
59
  * const currentUser = yield* TxHashMap.get(txMap, "user1")
59
60
  * if (Option.isSome(currentUser)) {
@@ -236,7 +237,7 @@ export declare namespace TxHashMap {
236
237
  * @since 2.0.0
237
238
  * @category constructors
238
239
  */
239
- export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
240
+ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
240
241
  Effect.gen(function*() {
241
242
  const ref = yield* TxRef.make(HashMap.empty<K, V>())
242
243
  return Object.assign(Object.create(TxHashMapProto), { ref })
@@ -273,7 +274,9 @@ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
273
274
  * @since 2.0.0
274
275
  * @category constructors
275
276
  */
276
- export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<TxHashMap<K, V>> =>
277
+ export const make = <K, V>(
278
+ ...entries: Array<readonly [K, V]>
279
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
277
280
  Effect.gen(function*() {
278
281
  const hashMap = HashMap.make(...entries)
279
282
  const ref = yield* TxRef.make(hashMap)
@@ -314,7 +317,9 @@ export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<Tx
314
317
  * @since 2.0.0
315
318
  * @category constructors
316
319
  */
317
- export const fromIterable = <K, V>(entries: Iterable<readonly [K, V]>): Effect.Effect<TxHashMap<K, V>> =>
320
+ export const fromIterable = <K, V>(
321
+ entries: Iterable<readonly [K, V]>
322
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
318
323
  Effect.gen(function*() {
319
324
  const hashMap = HashMap.fromIterable(entries)
320
325
  const ref = yield* TxRef.make(hashMap)
@@ -384,7 +389,7 @@ export const get: {
384
389
  * @since 2.0.0
385
390
  * @category combinators
386
391
  */
387
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
392
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
388
393
  /**
389
394
  * Safely lookup the value for the specified key in the TxHashMap.
390
395
  *
@@ -416,10 +421,10 @@ export const get: {
416
421
  * @since 2.0.0
417
422
  * @category combinators
418
423
  */
419
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>>
424
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
420
425
  } = dual(
421
426
  2,
422
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>> =>
427
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
423
428
  Effect.gen(function*() {
424
429
  const map = yield* TxRef.get(self.ref)
425
430
  return HashMap.get(map, key)
@@ -495,7 +500,7 @@ export const set: {
495
500
  * @since 2.0.0
496
501
  * @category combinators
497
502
  */
498
- <K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void>
503
+ <K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
499
504
  /**
500
505
  * Sets the value for the specified key in the TxHashMap.
501
506
  *
@@ -530,10 +535,10 @@ export const set: {
530
535
  * @since 2.0.0
531
536
  * @category combinators
532
537
  */
533
- <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void>
538
+ <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction>
534
539
  } = dual(
535
540
  3,
536
- <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void> =>
541
+ <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction> =>
537
542
  TxRef.update(self.ref, (map) => HashMap.set(map, key, value))
538
543
  )
539
544
 
@@ -598,7 +603,7 @@ export const has: {
598
603
  * @since 2.0.0
599
604
  * @category combinators
600
605
  */
601
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
606
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
602
607
  /**
603
608
  * Checks if the specified key exists in the TxHashMap.
604
609
  *
@@ -629,10 +634,10 @@ export const has: {
629
634
  * @since 2.0.0
630
635
  * @category combinators
631
636
  */
632
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
637
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
633
638
  } = dual(
634
639
  2,
635
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
640
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
636
641
  Effect.gen(function*() {
637
642
  const map = yield* TxRef.get(self.ref)
638
643
  return HashMap.has(map, key)
@@ -714,7 +719,7 @@ export const remove: {
714
719
  * @since 2.0.0
715
720
  * @category combinators
716
721
  */
717
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
722
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
718
723
  /**
719
724
  * Removes the specified key from the TxHashMap.
720
725
  *
@@ -752,20 +757,18 @@ export const remove: {
752
757
  * @since 2.0.0
753
758
  * @category combinators
754
759
  */
755
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
760
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
756
761
  } = dual(
757
762
  2,
758
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
759
- Effect.atomic(
760
- Effect.gen(function*() {
761
- const currentMap = yield* TxRef.get(self.ref)
762
- const existed = HashMap.has(currentMap, key)
763
- if (existed) {
764
- yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
765
- }
766
- return existed
767
- })
768
- )
763
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
764
+ Effect.gen(function*() {
765
+ const currentMap = yield* TxRef.get(self.ref)
766
+ const existed = HashMap.has(currentMap, key)
767
+ if (existed) {
768
+ yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
769
+ }
770
+ return existed
771
+ })
769
772
  )
770
773
 
771
774
  /**
@@ -804,7 +807,8 @@ export const remove: {
804
807
  * @since 2.0.0
805
808
  * @category combinators
806
809
  */
807
- export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef.set(self.ref, HashMap.empty<K, V>())
810
+ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void, never, Effect.Transaction> =>
811
+ TxRef.set(self.ref, HashMap.empty<K, V>())
808
812
 
809
813
  /**
810
814
  * Returns the number of entries in the TxHashMap.
@@ -838,7 +842,7 @@ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef
838
842
  * @since 2.0.0
839
843
  * @category combinators
840
844
  */
841
- export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
845
+ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number, never, Effect.Transaction> =>
842
846
  Effect.gen(function*() {
843
847
  const map = yield* TxRef.get(self.ref)
844
848
  return HashMap.size(map)
@@ -872,7 +876,7 @@ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
872
876
  * @since 2.0.0
873
877
  * @category combinators
874
878
  */
875
- export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
879
+ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
876
880
  Effect.gen(function*() {
877
881
  const map = yield* TxRef.get(self.ref)
878
882
  return HashMap.isEmpty(map)
@@ -901,7 +905,7 @@ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
901
905
  * @since 2.0.0
902
906
  * @category combinators
903
907
  */
904
- export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
908
+ export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
905
909
  Effect.map(isEmpty(self), (empty) => !empty)
906
910
 
907
911
  /**
@@ -991,7 +995,7 @@ export const modify: {
991
995
  * @since 2.0.0
992
996
  * @category combinators
993
997
  */
994
- <K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
998
+ <K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
995
999
  /**
996
1000
  * Updates the value for the specified key if it exists.
997
1001
  *
@@ -1035,22 +1039,24 @@ export const modify: {
1035
1039
  * @since 2.0.0
1036
1040
  * @category combinators
1037
1041
  */
1038
- <K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>>
1042
+ <K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1039
1043
  } = dual(
1040
1044
  3,
1041
- <K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>> =>
1042
- Effect.atomic(
1043
- Effect.gen(function*() {
1044
- const currentMap = yield* TxRef.get(self.ref)
1045
- const currentValue = HashMap.get(currentMap, key)
1046
- if (Option.isSome(currentValue)) {
1047
- const newValue = f(currentValue.value)
1048
- yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue))
1049
- return currentValue
1050
- }
1051
- return Option.none()
1052
- })
1053
- )
1045
+ <K, V>(
1046
+ self: TxHashMap<K, V>,
1047
+ key: K,
1048
+ f: (value: V) => V
1049
+ ): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
1050
+ Effect.gen(function*() {
1051
+ const currentMap = yield* TxRef.get(self.ref)
1052
+ const currentValue = HashMap.get(currentMap, key)
1053
+ if (Option.isSome(currentValue)) {
1054
+ const newValue = f(currentValue.value)
1055
+ yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue))
1056
+ return currentValue
1057
+ }
1058
+ return Option.none()
1059
+ })
1054
1060
  )
1055
1061
 
1056
1062
  /**
@@ -1140,7 +1146,7 @@ export const modifyAt: {
1140
1146
  * @since 2.0.0
1141
1147
  * @category combinators
1142
1148
  */
1143
- <K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1149
+ <K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1144
1150
  /**
1145
1151
  * Updates the value for the specified key using an Option-based update function.
1146
1152
  *
@@ -1188,23 +1194,25 @@ export const modifyAt: {
1188
1194
  self: TxHashMap<K, V>,
1189
1195
  key: K,
1190
1196
  f: (value: Option.Option<V>) => Option.Option<V>
1191
- ): Effect.Effect<void>
1197
+ ): Effect.Effect<void, never, Effect.Transaction>
1192
1198
  } = dual(
1193
1199
  3,
1194
- <K, V>(self: TxHashMap<K, V>, key: K, f: (value: Option.Option<V>) => Option.Option<V>): Effect.Effect<void> =>
1195
- Effect.atomic(
1196
- Effect.gen(function*() {
1197
- const currentMap = yield* TxRef.get(self.ref)
1198
- const currentValue = HashMap.get(currentMap, key)
1199
- const newValue = f(currentValue)
1200
+ <K, V>(
1201
+ self: TxHashMap<K, V>,
1202
+ key: K,
1203
+ f: (value: Option.Option<V>) => Option.Option<V>
1204
+ ): Effect.Effect<void, never, Effect.Transaction> =>
1205
+ Effect.gen(function*() {
1206
+ const currentMap = yield* TxRef.get(self.ref)
1207
+ const currentValue = HashMap.get(currentMap, key)
1208
+ const newValue = f(currentValue)
1200
1209
 
1201
- if (Option.isSome(newValue)) {
1202
- yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue.value))
1203
- } else if (Option.isSome(currentValue)) {
1204
- yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
1205
- }
1206
- })
1207
- )
1210
+ if (Option.isSome(newValue)) {
1211
+ yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue.value))
1212
+ } else if (Option.isSome(currentValue)) {
1213
+ yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
1214
+ }
1215
+ })
1208
1216
  )
1209
1217
 
1210
1218
  /**
@@ -1237,7 +1245,7 @@ export const modifyAt: {
1237
1245
  * @since 2.0.0
1238
1246
  * @category combinators
1239
1247
  */
1240
- export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
1248
+ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>, never, Effect.Transaction> =>
1241
1249
  Effect.gen(function*() {
1242
1250
  const map = yield* TxRef.get(self.ref)
1243
1251
  return Array.from(HashMap.keys(map))
@@ -1274,7 +1282,7 @@ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
1274
1282
  * @since 2.0.0
1275
1283
  * @category combinators
1276
1284
  */
1277
- export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
1285
+ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
1278
1286
  Effect.gen(function*() {
1279
1287
  const map = yield* TxRef.get(self.ref)
1280
1288
  return HashMap.toValues(map)
@@ -1311,7 +1319,9 @@ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
1311
1319
  * @since 2.0.0
1312
1320
  * @category combinators
1313
1321
  */
1314
- export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readonly [K, V]>> =>
1322
+ export const entries = <K, V>(
1323
+ self: TxHashMap<K, V>
1324
+ ): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> =>
1315
1325
  Effect.gen(function*() {
1316
1326
  const map = yield* TxRef.get(self.ref)
1317
1327
  return HashMap.toEntries(map)
@@ -1351,7 +1361,9 @@ export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readon
1351
1361
  * @since 2.0.0
1352
1362
  * @category combinators
1353
1363
  */
1354
- export const snapshot = <K, V>(self: TxHashMap<K, V>): Effect.Effect<HashMap.HashMap<K, V>> => TxRef.get(self.ref)
1364
+ export const snapshot = <K, V>(
1365
+ self: TxHashMap<K, V>
1366
+ ): Effect.Effect<HashMap.HashMap<K, V>, never, Effect.Transaction> => TxRef.get(self.ref)
1355
1367
 
1356
1368
  /**
1357
1369
  * Merges another HashMap into this TxHashMap. If both maps contain the same key,
@@ -1448,7 +1460,7 @@ export const union: {
1448
1460
  * @since 2.0.0
1449
1461
  * @category combinators
1450
1462
  */
1451
- <K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1463
+ <K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1452
1464
  /**
1453
1465
  * Merges another HashMap into this TxHashMap. If both maps contain the same key,
1454
1466
  * the value from the other map will be used.
@@ -1496,11 +1508,13 @@ export const union: {
1496
1508
  * @since 2.0.0
1497
1509
  * @category combinators
1498
1510
  */
1499
- <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void>
1511
+ <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void, never, Effect.Transaction>
1500
1512
  } = dual(
1501
1513
  2,
1502
- <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void> =>
1503
- TxRef.update(self.ref, (map) => HashMap.union(map, other))
1514
+ <K1 extends K, K, V1 extends V, V>(
1515
+ self: TxHashMap<K, V>,
1516
+ other: HashMap.HashMap<K1, V1>
1517
+ ): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.union(map, other))
1504
1518
  )
1505
1519
 
1506
1520
  /**
@@ -1588,7 +1602,7 @@ export const removeMany: {
1588
1602
  * @since 2.0.0
1589
1603
  * @category combinators
1590
1604
  */
1591
- <K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void>
1605
+ <K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1592
1606
  /**
1593
1607
  * Removes multiple keys from the TxHashMap.
1594
1608
  *
@@ -1631,10 +1645,10 @@ export const removeMany: {
1631
1645
  * @since 2.0.0
1632
1646
  * @category combinators
1633
1647
  */
1634
- <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void>
1648
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction>
1635
1649
  } = dual(
1636
1650
  2,
1637
- <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void> =>
1651
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction> =>
1638
1652
  TxRef.update(self.ref, (map) => HashMap.removeMany(map, keys))
1639
1653
  )
1640
1654
 
@@ -1753,7 +1767,7 @@ export const setMany: {
1753
1767
  * @since 2.0.0
1754
1768
  * @category combinators
1755
1769
  */
1756
- <K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1770
+ <K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1757
1771
  /**
1758
1772
  * Sets multiple key-value pairs in the TxHashMap.
1759
1773
  *
@@ -1811,13 +1825,13 @@ export const setMany: {
1811
1825
  * @since 2.0.0
1812
1826
  * @category combinators
1813
1827
  */
1814
- <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void>
1828
+ <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void, never, Effect.Transaction>
1815
1829
  } = dual(
1816
1830
  2,
1817
1831
  <K1 extends K, K, V1 extends V, V>(
1818
1832
  self: TxHashMap<K, V>,
1819
1833
  entries: Iterable<readonly [K1, V1]>
1820
- ): Effect.Effect<void> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
1834
+ ): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
1821
1835
  )
1822
1836
 
1823
1837
  /**
@@ -1926,7 +1940,7 @@ export const getHash: {
1926
1940
  * @since 2.0.0
1927
1941
  * @category combinators
1928
1942
  */
1929
- <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
1943
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1930
1944
  /**
1931
1945
  * Lookup the value for the specified key in the TxHashMap using a custom hash.
1932
1946
  * This can provide performance benefits when the hash is precomputed.
@@ -1963,10 +1977,14 @@ export const getHash: {
1963
1977
  * @since 2.0.0
1964
1978
  * @category combinators
1965
1979
  */
1966
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>>
1980
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1967
1981
  } = dual(
1968
1982
  3,
1969
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>> =>
1983
+ <K1 extends K, K, V>(
1984
+ self: TxHashMap<K, V>,
1985
+ key: K1,
1986
+ hash: number
1987
+ ): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
1970
1988
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.getHash(map, key, hash)))
1971
1989
  )
1972
1990
 
@@ -2061,7 +2079,7 @@ export const hasHash: {
2061
2079
  * @since 2.0.0
2062
2080
  * @category combinators
2063
2081
  */
2064
- <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
2082
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
2065
2083
  /**
2066
2084
  * Checks if the specified key has an entry in the TxHashMap using a custom hash.
2067
2085
  * This can provide performance benefits when the hash is precomputed.
@@ -2107,10 +2125,14 @@ export const hasHash: {
2107
2125
  * @since 2.0.0
2108
2126
  * @category combinators
2109
2127
  */
2110
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean>
2128
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean, never, Effect.Transaction>
2111
2129
  } = dual(
2112
2130
  3,
2113
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean> =>
2131
+ <K1 extends K, K, V>(
2132
+ self: TxHashMap<K, V>,
2133
+ key: K1,
2134
+ hash: number
2135
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
2114
2136
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasHash(map, key, hash)))
2115
2137
  )
2116
2138
 
@@ -2205,7 +2227,7 @@ export const map: {
2205
2227
  * @since 2.0.0
2206
2228
  * @category combinators
2207
2229
  */
2208
- <A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
2230
+ <A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2209
2231
  /**
2210
2232
  * Transforms all values in the TxHashMap using the provided function, preserving keys.
2211
2233
  *
@@ -2251,17 +2273,18 @@ export const map: {
2251
2273
  * @since 2.0.0
2252
2274
  * @category combinators
2253
2275
  */
2254
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>>
2276
+ <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2255
2277
  } = dual(
2256
2278
  2,
2257
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>> =>
2258
- Effect.atomic(
2259
- Effect.gen(function*() {
2260
- const currentMap = yield* TxRef.get(self.ref)
2261
- const mappedMap = HashMap.map(currentMap, f)
2262
- return yield* fromHashMap(mappedMap)
2263
- })
2264
- )
2279
+ <K, V, A>(
2280
+ self: TxHashMap<K, V>,
2281
+ f: (value: V, key: K) => A
2282
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
2283
+ Effect.gen(function*() {
2284
+ const currentMap = yield* TxRef.get(self.ref)
2285
+ const mappedMap = HashMap.map(currentMap, f)
2286
+ return yield* fromHashMap(mappedMap)
2287
+ })
2265
2288
  )
2266
2289
 
2267
2290
  /**
@@ -2361,7 +2384,7 @@ export const filter: {
2361
2384
  * @since 2.0.0
2362
2385
  * @category combinators
2363
2386
  */
2364
- <K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B>>
2387
+ <K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
2365
2388
  /**
2366
2389
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2367
2390
  *
@@ -2410,7 +2433,7 @@ export const filter: {
2410
2433
  * @since 2.0.0
2411
2434
  * @category combinators
2412
2435
  */
2413
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>>
2436
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
2414
2437
  /**
2415
2438
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2416
2439
  *
@@ -2459,7 +2482,7 @@ export const filter: {
2459
2482
  * @since 2.0.0
2460
2483
  * @category combinators
2461
2484
  */
2462
- <K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B>>
2485
+ <K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
2463
2486
  /**
2464
2487
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2465
2488
  *
@@ -2508,17 +2531,18 @@ export const filter: {
2508
2531
  * @since 2.0.0
2509
2532
  * @category combinators
2510
2533
  */
2511
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>>
2534
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
2512
2535
  } = dual(
2513
2536
  2,
2514
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>> =>
2515
- Effect.atomic(
2516
- Effect.gen(function*() {
2517
- const currentMap = yield* TxRef.get(self.ref)
2518
- const filteredMap = HashMap.filter(currentMap, predicate)
2519
- return yield* fromHashMap(filteredMap)
2520
- })
2521
- )
2537
+ <K, V>(
2538
+ self: TxHashMap<K, V>,
2539
+ predicate: (value: V, key: K) => boolean
2540
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
2541
+ Effect.gen(function*() {
2542
+ const currentMap = yield* TxRef.get(self.ref)
2543
+ const filteredMap = HashMap.filter(currentMap, predicate)
2544
+ return yield* fromHashMap(filteredMap)
2545
+ })
2522
2546
  )
2523
2547
 
2524
2548
  /**
@@ -2630,7 +2654,7 @@ export const reduce: {
2630
2654
  * @since 2.0.0
2631
2655
  * @category combinators
2632
2656
  */
2633
- <A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A>
2657
+ <A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A, never, Effect.Transaction>
2634
2658
  /**
2635
2659
  * Reduces the TxHashMap entries to a single value by applying a reducer function.
2636
2660
  * Iterates over all key-value pairs and accumulates them into a final result.
@@ -2685,23 +2709,27 @@ export const reduce: {
2685
2709
  * @since 2.0.0
2686
2710
  * @category combinators
2687
2711
  */
2688
- <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A>
2712
+ <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A, never, Effect.Transaction>
2689
2713
  } = dual(
2690
2714
  3,
2691
- <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A> =>
2715
+ <K, V, A>(
2716
+ self: TxHashMap<K, V>,
2717
+ zero: A,
2718
+ f: (accumulator: A, value: V, key: K) => A
2719
+ ): Effect.Effect<A, never, Effect.Transaction> =>
2692
2720
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.reduce(map, zero, f)))
2693
2721
  )
2694
2722
 
2695
2723
  /**
2696
- * Combines filtering and mapping in a single operation. Applies a function that returns
2697
- * an Option to each entry, keeping only the Some values and transforming them.
2724
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2725
+ * entry, keeping only successful results and transforming them.
2698
2726
  *
2699
2727
  * **Return behavior**: This function returns a new TxHashMap reference containing
2700
- * only the transformed entries that returned Some values. The original TxHashMap is not modified.
2728
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2701
2729
  *
2702
2730
  * @example
2703
2731
  * ```ts
2704
- * import { Effect, Option, TxHashMap } from "effect"
2732
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2705
2733
  *
2706
2734
  * const program = Effect.gen(function*() {
2707
2735
  * // Create a mixed data map
@@ -2716,10 +2744,10 @@ export const reduce: {
2716
2744
  * const activeAdminAges = yield* TxHashMap.filterMap(
2717
2745
  * userData,
2718
2746
  * (user, username) => {
2719
- * if (!user.active || user.role !== "admin") return Option.none()
2747
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2720
2748
  * const age = parseInt(user.age)
2721
- * if (isNaN(age)) return Option.none()
2722
- * return Option.some({
2749
+ * if (isNaN(age)) return Result.failVoid
2750
+ * return Result.succeed({
2723
2751
  * username,
2724
2752
  * age,
2725
2753
  * seniority: age > 27 ? "senior" : "junior"
@@ -2737,7 +2765,7 @@ export const reduce: {
2737
2765
  * const validAges = yield* userData.pipe(
2738
2766
  * TxHashMap.filterMap((user) => {
2739
2767
  * const age = parseInt(user.age)
2740
- * return isNaN(age) ? Option.none() : Option.some(age)
2768
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2741
2769
  * })
2742
2770
  * )
2743
2771
  *
@@ -2751,15 +2779,15 @@ export const reduce: {
2751
2779
  */
2752
2780
  export const filterMap: {
2753
2781
  /**
2754
- * Combines filtering and mapping in a single operation. Applies a function that returns
2755
- * an Option to each entry, keeping only the Some values and transforming them.
2782
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2783
+ * entry, keeping only successful results and transforming them.
2756
2784
  *
2757
2785
  * **Return behavior**: This function returns a new TxHashMap reference containing
2758
- * only the transformed entries that returned Some values. The original TxHashMap is not modified.
2786
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2759
2787
  *
2760
2788
  * @example
2761
2789
  * ```ts
2762
- * import { Effect, Option, TxHashMap } from "effect"
2790
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2763
2791
  *
2764
2792
  * const program = Effect.gen(function*() {
2765
2793
  * // Create a mixed data map
@@ -2774,10 +2802,10 @@ export const filterMap: {
2774
2802
  * const activeAdminAges = yield* TxHashMap.filterMap(
2775
2803
  * userData,
2776
2804
  * (user, username) => {
2777
- * if (!user.active || user.role !== "admin") return Option.none()
2805
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2778
2806
  * const age = parseInt(user.age)
2779
- * if (isNaN(age)) return Option.none()
2780
- * return Option.some({
2807
+ * if (isNaN(age)) return Result.failVoid
2808
+ * return Result.succeed({
2781
2809
  * username,
2782
2810
  * age,
2783
2811
  * seniority: age > 27 ? "senior" : "junior"
@@ -2795,7 +2823,7 @@ export const filterMap: {
2795
2823
  * const validAges = yield* userData.pipe(
2796
2824
  * TxHashMap.filterMap((user) => {
2797
2825
  * const age = parseInt(user.age)
2798
- * return isNaN(age) ? Option.none() : Option.some(age)
2826
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2799
2827
  * })
2800
2828
  * )
2801
2829
  *
@@ -2807,17 +2835,17 @@ export const filterMap: {
2807
2835
  * @since 2.0.0
2808
2836
  * @category combinators
2809
2837
  */
2810
- <A, V, K>(f: (value: V, key: K) => Option.Option<A>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
2838
+ <V, K, A, X>(f: Filter.Filter<V, A, X, [key: K]>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2811
2839
  /**
2812
- * Combines filtering and mapping in a single operation. Applies a function that returns
2813
- * an Option to each entry, keeping only the Some values and transforming them.
2840
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2841
+ * entry, keeping only successful results and transforming them.
2814
2842
  *
2815
2843
  * **Return behavior**: This function returns a new TxHashMap reference containing
2816
- * only the transformed entries that returned Some values. The original TxHashMap is not modified.
2844
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2817
2845
  *
2818
2846
  * @example
2819
2847
  * ```ts
2820
- * import { Effect, Option, TxHashMap } from "effect"
2848
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2821
2849
  *
2822
2850
  * const program = Effect.gen(function*() {
2823
2851
  * // Create a mixed data map
@@ -2832,10 +2860,10 @@ export const filterMap: {
2832
2860
  * const activeAdminAges = yield* TxHashMap.filterMap(
2833
2861
  * userData,
2834
2862
  * (user, username) => {
2835
- * if (!user.active || user.role !== "admin") return Option.none()
2863
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2836
2864
  * const age = parseInt(user.age)
2837
- * if (isNaN(age)) return Option.none()
2838
- * return Option.some({
2865
+ * if (isNaN(age)) return Result.failVoid
2866
+ * return Result.succeed({
2839
2867
  * username,
2840
2868
  * age,
2841
2869
  * seniority: age > 27 ? "senior" : "junior"
@@ -2853,7 +2881,7 @@ export const filterMap: {
2853
2881
  * const validAges = yield* userData.pipe(
2854
2882
  * TxHashMap.filterMap((user) => {
2855
2883
  * const age = parseInt(user.age)
2856
- * return isNaN(age) ? Option.none() : Option.some(age)
2884
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2857
2885
  * })
2858
2886
  * )
2859
2887
  *
@@ -2865,17 +2893,18 @@ export const filterMap: {
2865
2893
  * @since 2.0.0
2866
2894
  * @category combinators
2867
2895
  */
2868
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => Option.Option<A>): Effect.Effect<TxHashMap<K, A>>
2896
+ <K, V, A, X>(self: TxHashMap<K, V>, f: Filter.Filter<V, A, X, [key: K]>): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2869
2897
  } = dual(
2870
2898
  2,
2871
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => Option.Option<A>): Effect.Effect<TxHashMap<K, A>> =>
2872
- Effect.atomic(
2873
- Effect.gen(function*() {
2874
- const currentMap = yield* TxRef.get(self.ref)
2875
- const filteredMap = HashMap.filterMap(currentMap, f)
2876
- return yield* fromHashMap(filteredMap)
2877
- })
2878
- )
2899
+ <K, V, A, X>(
2900
+ self: TxHashMap<K, V>,
2901
+ f: Filter.Filter<V, A, X, [key: K]>
2902
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
2903
+ Effect.gen(function*() {
2904
+ const currentMap = yield* TxRef.get(self.ref)
2905
+ const filteredMap = HashMap.filterMap(currentMap, f)
2906
+ return yield* fromHashMap(filteredMap)
2907
+ })
2879
2908
  )
2880
2909
 
2881
2910
  /**
@@ -2959,7 +2988,7 @@ export const hasBy: {
2959
2988
  * @since 2.0.0
2960
2989
  * @category combinators
2961
2990
  */
2962
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
2991
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
2963
2992
  /**
2964
2993
  * Checks if any entry in the TxHashMap matches the given predicate.
2965
2994
  *
@@ -3000,10 +3029,13 @@ export const hasBy: {
3000
3029
  * @since 2.0.0
3001
3030
  * @category combinators
3002
3031
  */
3003
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3032
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3004
3033
  } = dual(
3005
3034
  2,
3006
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3035
+ <K, V>(
3036
+ self: TxHashMap<K, V>,
3037
+ predicate: (value: V, key: K) => boolean
3038
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3007
3039
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasBy(map, predicate)))
3008
3040
  )
3009
3041
 
@@ -3092,7 +3124,7 @@ export const findFirst: {
3092
3124
  * @since 2.0.0
3093
3125
  * @category combinators
3094
3126
  */
3095
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V] | undefined>
3127
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V] | undefined, never, Effect.Transaction>
3096
3128
  /**
3097
3129
  * Finds the first entry in the TxHashMap that matches the given predicate.
3098
3130
  * Returns the key-value pair as a tuple wrapped in an Option.
@@ -3135,10 +3167,13 @@ export const findFirst: {
3135
3167
  * @since 2.0.0
3136
3168
  * @category combinators
3137
3169
  */
3138
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined>
3170
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined, never, Effect.Transaction>
3139
3171
  } = dual(
3140
3172
  2,
3141
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined> =>
3173
+ <K, V>(
3174
+ self: TxHashMap<K, V>,
3175
+ predicate: (value: V, key: K) => boolean
3176
+ ): Effect.Effect<[K, V] | undefined, never, Effect.Transaction> =>
3142
3177
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.findFirst(map, predicate)))
3143
3178
  )
3144
3179
 
@@ -3223,7 +3258,7 @@ export const some: {
3223
3258
  * @since 2.0.0
3224
3259
  * @category combinators
3225
3260
  */
3226
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
3261
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
3227
3262
  /**
3228
3263
  * Checks if at least one entry in the TxHashMap satisfies the given predicate.
3229
3264
  *
@@ -3264,10 +3299,13 @@ export const some: {
3264
3299
  * @since 2.0.0
3265
3300
  * @category combinators
3266
3301
  */
3267
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3302
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3268
3303
  } = dual(
3269
3304
  2,
3270
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3305
+ <K, V>(
3306
+ self: TxHashMap<K, V>,
3307
+ predicate: (value: V, key: K) => boolean
3308
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3271
3309
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.some(map, predicate)))
3272
3310
  )
3273
3311
 
@@ -3352,7 +3390,7 @@ export const every: {
3352
3390
  * @since 2.0.0
3353
3391
  * @category combinators
3354
3392
  */
3355
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
3393
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
3356
3394
  /**
3357
3395
  * Checks if all entries in the TxHashMap satisfy the given predicate.
3358
3396
  *
@@ -3393,10 +3431,13 @@ export const every: {
3393
3431
  * @since 2.0.0
3394
3432
  * @category combinators
3395
3433
  */
3396
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3434
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3397
3435
  } = dual(
3398
3436
  2,
3399
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3437
+ <K, V>(
3438
+ self: TxHashMap<K, V>,
3439
+ predicate: (value: V, key: K) => boolean
3440
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3400
3441
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.every(map, predicate)))
3401
3442
  )
3402
3443
 
@@ -3483,7 +3524,7 @@ export const forEach: {
3483
3524
  * @since 2.0.0
3484
3525
  * @category combinators
3485
3526
  */
3486
- <V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R>
3527
+ <V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R | Effect.Transaction>
3487
3528
  /**
3488
3529
  * Executes a side-effect function for each entry in the TxHashMap.
3489
3530
  * The function receives the value and key as parameters and can perform effects.
@@ -3525,10 +3566,13 @@ export const forEach: {
3525
3566
  * @since 2.0.0
3526
3567
  * @category combinators
3527
3568
  */
3528
- <K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R>
3569
+ <K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R | Effect.Transaction>
3529
3570
  } = dual(
3530
3571
  2,
3531
- <K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R> =>
3572
+ <K, V, R, E>(
3573
+ self: TxHashMap<K, V>,
3574
+ f: (value: V, key: K) => Effect.Effect<void, E, R>
3575
+ ): Effect.Effect<void, E, R | Effect.Transaction> =>
3532
3576
  Effect.gen(function*() {
3533
3577
  const currentMap = yield* TxRef.get(self.ref)
3534
3578
  const entries = HashMap.toEntries(currentMap)
@@ -3639,7 +3683,9 @@ export const flatMap: {
3639
3683
  * @since 2.0.0
3640
3684
  * @category combinators
3641
3685
  */
3642
- <A, V, K>(f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
3686
+ <A, V, K>(
3687
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3688
+ ): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3643
3689
  /**
3644
3690
  * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3645
3691
  * then flattening the results. Useful for complex transformations that require creating new maps.
@@ -3693,131 +3739,129 @@ export const flatMap: {
3693
3739
  */
3694
3740
  <K, V, A>(
3695
3741
  self: TxHashMap<K, V>,
3696
- f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>>
3697
- ): Effect.Effect<TxHashMap<K, A>>
3742
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3743
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3698
3744
  } = dual(
3699
3745
  2,
3700
3746
  <K, V, A>(
3701
3747
  self: TxHashMap<K, V>,
3702
- f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>>
3703
- ): Effect.Effect<TxHashMap<K, A>> =>
3704
- Effect.atomic(
3705
- Effect.gen(function*() {
3706
- const currentMap = yield* TxRef.get(self.ref)
3707
- const result = yield* empty</**
3708
- * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3709
- * then flattening the results. Useful for complex transformations that require creating new maps.
3710
- *
3711
- * **Return behavior**: This function returns a new TxHashMap reference with the
3712
- * flattened results. The original TxHashMap is not modified.
3713
- *
3714
- * @example
3715
- * ```ts
3716
- * import { Effect, TxHashMap } from "effect"
3717
- *
3718
- * const program = Effect.gen(function*() {
3719
- * // Create a department-employee map
3720
- * const departments = yield* TxHashMap.make(
3721
- * ["engineering", ["alice", "bob"]],
3722
- * ["marketing", ["charlie", "diana"]]
3723
- * )
3724
- *
3725
- * // Expand each department into individual employee entries with metadata
3726
- * const employeeDetails = yield* TxHashMap.flatMap(
3727
- * departments,
3728
- * (employees, department) =>
3729
- * Effect.gen(function*() {
3730
- * const employeeMap = yield* TxHashMap.empty<
3731
- * string,
3732
- * { department: string; role: string }
3733
- * >()
3734
- * for (let i = 0; i < employees.length; i++) {
3735
- * const employee = employees[i]
3736
- * const role = i === 0 ? "lead" : "member"
3737
- * yield* TxHashMap.set(employeeMap, employee, { department, role })
3738
- * }
3739
- * return employeeMap
3740
- * })
3741
- * )
3742
- *
3743
- * // Check the flattened result
3744
- * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3745
- * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3746
- *
3747
- * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3748
- * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3749
- *
3750
- * const size = yield* TxHashMap.size(employeeDetails)
3751
- * console.log(size) // 4 (all employees)
3752
- * })
3753
- * ```
3754
- *
3755
- * @since 2.0.0
3756
- * @category combinators
3757
- */
3758
- K, /**
3759
- * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3760
- * then flattening the results. Useful for complex transformations that require creating new maps.
3761
- *
3762
- * **Return behavior**: This function returns a new TxHashMap reference with the
3763
- * flattened results. The original TxHashMap is not modified.
3764
- *
3765
- * @example
3766
- * ```ts
3767
- * import { Effect, TxHashMap } from "effect"
3768
- *
3769
- * const program = Effect.gen(function*() {
3770
- * // Create a department-employee map
3771
- * const departments = yield* TxHashMap.make(
3772
- * ["engineering", ["alice", "bob"]],
3773
- * ["marketing", ["charlie", "diana"]]
3774
- * )
3775
- *
3776
- * // Expand each department into individual employee entries with metadata
3777
- * const employeeDetails = yield* TxHashMap.flatMap(
3778
- * departments,
3779
- * (employees, department) =>
3780
- * Effect.gen(function*() {
3781
- * const employeeMap = yield* TxHashMap.empty<
3782
- * string,
3783
- * { department: string; role: string }
3784
- * >()
3785
- * for (let i = 0; i < employees.length; i++) {
3786
- * const employee = employees[i]
3787
- * const role = i === 0 ? "lead" : "member"
3788
- * yield* TxHashMap.set(employeeMap, employee, { department, role })
3789
- * }
3790
- * return employeeMap
3791
- * })
3792
- * )
3793
- *
3794
- * // Check the flattened result
3795
- * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3796
- * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3797
- *
3798
- * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3799
- * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3800
- *
3801
- * const size = yield* TxHashMap.size(employeeDetails)
3802
- * console.log(size) // 4 (all employees)
3803
- * })
3804
- * ```
3805
- *
3806
- * @since 2.0.0
3807
- * @category combinators
3808
- */
3809
- A>()
3748
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3749
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
3750
+ Effect.gen(function*() {
3751
+ const currentMap = yield* TxRef.get(self.ref)
3752
+ const result = yield* empty</**
3753
+ * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3754
+ * then flattening the results. Useful for complex transformations that require creating new maps.
3755
+ *
3756
+ * **Return behavior**: This function returns a new TxHashMap reference with the
3757
+ * flattened results. The original TxHashMap is not modified.
3758
+ *
3759
+ * @example
3760
+ * ```ts
3761
+ * import { Effect, TxHashMap } from "effect"
3762
+ *
3763
+ * const program = Effect.gen(function*() {
3764
+ * // Create a department-employee map
3765
+ * const departments = yield* TxHashMap.make(
3766
+ * ["engineering", ["alice", "bob"]],
3767
+ * ["marketing", ["charlie", "diana"]]
3768
+ * )
3769
+ *
3770
+ * // Expand each department into individual employee entries with metadata
3771
+ * const employeeDetails = yield* TxHashMap.flatMap(
3772
+ * departments,
3773
+ * (employees, department) =>
3774
+ * Effect.gen(function*() {
3775
+ * const employeeMap = yield* TxHashMap.empty<
3776
+ * string,
3777
+ * { department: string; role: string }
3778
+ * >()
3779
+ * for (let i = 0; i < employees.length; i++) {
3780
+ * const employee = employees[i]
3781
+ * const role = i === 0 ? "lead" : "member"
3782
+ * yield* TxHashMap.set(employeeMap, employee, { department, role })
3783
+ * }
3784
+ * return employeeMap
3785
+ * })
3786
+ * )
3787
+ *
3788
+ * // Check the flattened result
3789
+ * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3790
+ * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3791
+ *
3792
+ * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3793
+ * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3794
+ *
3795
+ * const size = yield* TxHashMap.size(employeeDetails)
3796
+ * console.log(size) // 4 (all employees)
3797
+ * })
3798
+ * ```
3799
+ *
3800
+ * @since 2.0.0
3801
+ * @category combinators
3802
+ */
3803
+ K, /**
3804
+ * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3805
+ * then flattening the results. Useful for complex transformations that require creating new maps.
3806
+ *
3807
+ * **Return behavior**: This function returns a new TxHashMap reference with the
3808
+ * flattened results. The original TxHashMap is not modified.
3809
+ *
3810
+ * @example
3811
+ * ```ts
3812
+ * import { Effect, TxHashMap } from "effect"
3813
+ *
3814
+ * const program = Effect.gen(function*() {
3815
+ * // Create a department-employee map
3816
+ * const departments = yield* TxHashMap.make(
3817
+ * ["engineering", ["alice", "bob"]],
3818
+ * ["marketing", ["charlie", "diana"]]
3819
+ * )
3820
+ *
3821
+ * // Expand each department into individual employee entries with metadata
3822
+ * const employeeDetails = yield* TxHashMap.flatMap(
3823
+ * departments,
3824
+ * (employees, department) =>
3825
+ * Effect.gen(function*() {
3826
+ * const employeeMap = yield* TxHashMap.empty<
3827
+ * string,
3828
+ * { department: string; role: string }
3829
+ * >()
3830
+ * for (let i = 0; i < employees.length; i++) {
3831
+ * const employee = employees[i]
3832
+ * const role = i === 0 ? "lead" : "member"
3833
+ * yield* TxHashMap.set(employeeMap, employee, { department, role })
3834
+ * }
3835
+ * return employeeMap
3836
+ * })
3837
+ * )
3838
+ *
3839
+ * // Check the flattened result
3840
+ * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3841
+ * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3842
+ *
3843
+ * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3844
+ * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3845
+ *
3846
+ * const size = yield* TxHashMap.size(employeeDetails)
3847
+ * console.log(size) // 4 (all employees)
3848
+ * })
3849
+ * ```
3850
+ *
3851
+ * @since 2.0.0
3852
+ * @category combinators
3853
+ */
3854
+ A>()
3810
3855
 
3811
- const mapEntries = HashMap.toEntries(currentMap)
3812
- for (const [key, value] of mapEntries) {
3813
- const newMap = yield* f(value, key)
3814
- const newEntries = yield* entries(newMap)
3815
- yield* setMany(result, newEntries)
3816
- }
3856
+ const mapEntries = HashMap.toEntries(currentMap)
3857
+ for (const [key, value] of mapEntries) {
3858
+ const newMap = yield* f(value, key)
3859
+ const newEntries = yield* entries(newMap)
3860
+ yield* setMany(result, newEntries)
3861
+ }
3817
3862
 
3818
- return result
3819
- })
3820
- )
3863
+ return result
3864
+ })
3821
3865
  )
3822
3866
 
3823
3867
  /**
@@ -3865,14 +3909,14 @@ export const flatMap: {
3865
3909
  * @since 2.0.0
3866
3910
  * @category combinators
3867
3911
  */
3868
- export const compact = <K, A>(self: TxHashMap<K, Option.Option<A>>): Effect.Effect<TxHashMap<K, A>> =>
3869
- Effect.atomic(
3870
- Effect.gen(function*() {
3871
- const currentMap = yield* TxRef.get(self.ref)
3872
- const compactedMap = HashMap.compact(currentMap)
3873
- return yield* fromHashMap(compactedMap)
3874
- })
3875
- )
3912
+ export const compact = <K, A>(
3913
+ self: TxHashMap<K, Option.Option<A>>
3914
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
3915
+ Effect.gen(function*() {
3916
+ const currentMap = yield* TxRef.get(self.ref)
3917
+ const compactedMap = HashMap.compact(currentMap)
3918
+ return yield* fromHashMap(compactedMap)
3919
+ })
3876
3920
 
3877
3921
  /**
3878
3922
  * Returns an array of all key-value pairs in the TxHashMap.
@@ -3908,7 +3952,9 @@ export const compact = <K, A>(self: TxHashMap<K, Option.Option<A>>): Effect.Effe
3908
3952
  * @since 2.0.0
3909
3953
  * @category combinators
3910
3954
  */
3911
- export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readonly [K, V]>> => entries(self)
3955
+ export const toEntries = <K, V>(
3956
+ self: TxHashMap<K, V>
3957
+ ): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> => entries(self)
3912
3958
 
3913
3959
  /**
3914
3960
  * Returns an array of all values in the TxHashMap.
@@ -3946,12 +3992,13 @@ export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<read
3946
3992
  * @since 2.0.0
3947
3993
  * @category combinators
3948
3994
  */
3949
- export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> => values(self)
3995
+ export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
3996
+ values(self)
3950
3997
 
3951
3998
  /**
3952
3999
  * Helper function to create a TxHashMap from an existing HashMap
3953
4000
  */
3954
- const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>> =>
4001
+ const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
3955
4002
  Effect.gen(function*() {
3956
4003
  const ref = yield* TxRef.make(hashMap)
3957
4004
  return Object.assign(Object.create(TxHashMapProto), { ref })