effect 4.0.0-beta.4 → 4.0.0-beta.40

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 (1222) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +46 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +35 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +2 -2
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +6 -5
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +33 -2
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +19 -0
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +130 -35
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +96 -45
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Combiner.d.ts +280 -13
  34. package/dist/Combiner.d.ts.map +1 -1
  35. package/dist/Combiner.js +198 -7
  36. package/dist/Combiner.js.map +1 -1
  37. package/dist/Config.d.ts +169 -9
  38. package/dist/Config.d.ts.map +1 -1
  39. package/dist/Config.js +69 -11
  40. package/dist/Config.js.map +1 -1
  41. package/dist/ConfigProvider.d.ts +1 -1
  42. package/dist/Cron.d.ts +11 -7
  43. package/dist/Cron.d.ts.map +1 -1
  44. package/dist/Cron.js +120 -63
  45. package/dist/Cron.js.map +1 -1
  46. package/dist/Data.d.ts +535 -366
  47. package/dist/Data.d.ts.map +1 -1
  48. package/dist/Data.js +132 -79
  49. package/dist/Data.js.map +1 -1
  50. package/dist/DateTime.d.ts +72 -253
  51. package/dist/DateTime.d.ts.map +1 -1
  52. package/dist/DateTime.js +15 -60
  53. package/dist/DateTime.js.map +1 -1
  54. package/dist/Deferred.d.ts +7 -5
  55. package/dist/Deferred.d.ts.map +1 -1
  56. package/dist/Deferred.js +7 -5
  57. package/dist/Deferred.js.map +1 -1
  58. package/dist/Duration.d.ts +62 -32
  59. package/dist/Duration.d.ts.map +1 -1
  60. package/dist/Duration.js +108 -78
  61. package/dist/Duration.js.map +1 -1
  62. package/dist/Effect.d.ts +1224 -951
  63. package/dist/Effect.d.ts.map +1 -1
  64. package/dist/Effect.js +398 -338
  65. package/dist/Effect.js.map +1 -1
  66. package/dist/Encoding.d.ts +194 -0
  67. package/dist/Encoding.d.ts.map +1 -0
  68. package/dist/Encoding.js +352 -0
  69. package/dist/Encoding.js.map +1 -0
  70. package/dist/Equal.d.ts +276 -109
  71. package/dist/Equal.d.ts.map +1 -1
  72. package/dist/Equal.js +124 -48
  73. package/dist/Equal.js.map +1 -1
  74. package/dist/Equivalence.d.ts +60 -3
  75. package/dist/Equivalence.d.ts.map +1 -1
  76. package/dist/Equivalence.js +70 -13
  77. package/dist/Equivalence.js.map +1 -1
  78. package/dist/ErrorReporter.d.ts +374 -0
  79. package/dist/ErrorReporter.d.ts.map +1 -0
  80. package/dist/ErrorReporter.js +245 -0
  81. package/dist/ErrorReporter.js.map +1 -0
  82. package/dist/Exit.d.ts +24 -12
  83. package/dist/Exit.d.ts.map +1 -1
  84. package/dist/Exit.js +8 -4
  85. package/dist/Exit.js.map +1 -1
  86. package/dist/Fiber.d.ts +5 -3
  87. package/dist/Fiber.d.ts.map +1 -1
  88. package/dist/Fiber.js.map +1 -1
  89. package/dist/FiberHandle.d.ts +9 -8
  90. package/dist/FiberHandle.d.ts.map +1 -1
  91. package/dist/FiberHandle.js +8 -7
  92. package/dist/FiberHandle.js.map +1 -1
  93. package/dist/FiberMap.d.ts +20 -19
  94. package/dist/FiberMap.d.ts.map +1 -1
  95. package/dist/FiberMap.js +6 -6
  96. package/dist/FiberMap.js.map +1 -1
  97. package/dist/FileSystem.d.ts +18 -17
  98. package/dist/FileSystem.d.ts.map +1 -1
  99. package/dist/FileSystem.js +17 -13
  100. package/dist/FileSystem.js.map +1 -1
  101. package/dist/Filter.d.ts +34 -38
  102. package/dist/Filter.d.ts.map +1 -1
  103. package/dist/Filter.js +15 -13
  104. package/dist/Filter.js.map +1 -1
  105. package/dist/Formatter.d.ts +131 -47
  106. package/dist/Formatter.d.ts.map +1 -1
  107. package/dist/Formatter.js +229 -51
  108. package/dist/Formatter.js.map +1 -1
  109. package/dist/Function.d.ts +1 -9
  110. package/dist/Function.d.ts.map +1 -1
  111. package/dist/Function.js +2 -10
  112. package/dist/Function.js.map +1 -1
  113. package/dist/Graph.d.ts +65 -65
  114. package/dist/Graph.d.ts.map +1 -1
  115. package/dist/Graph.js +60 -62
  116. package/dist/Graph.js.map +1 -1
  117. package/dist/HashMap.d.ts +26 -19
  118. package/dist/HashMap.d.ts.map +1 -1
  119. package/dist/HashMap.js +7 -5
  120. package/dist/HashMap.js.map +1 -1
  121. package/dist/Iterable.d.ts +50 -50
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +106 -34
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonSchema.d.ts +299 -10
  126. package/dist/JsonSchema.d.ts.map +1 -1
  127. package/dist/JsonSchema.js +323 -4
  128. package/dist/JsonSchema.js.map +1 -1
  129. package/dist/Latch.d.ts +175 -0
  130. package/dist/Latch.d.ts.map +1 -0
  131. package/dist/Latch.js +130 -0
  132. package/dist/Latch.js.map +1 -0
  133. package/dist/Layer.d.ts +306 -129
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +92 -47
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +9 -8
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +3 -3
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LogLevel.d.ts +32 -0
  142. package/dist/LogLevel.d.ts.map +1 -1
  143. package/dist/LogLevel.js +28 -100
  144. package/dist/LogLevel.js.map +1 -1
  145. package/dist/Logger.d.ts +29 -95
  146. package/dist/Logger.d.ts.map +1 -1
  147. package/dist/Logger.js +2 -3
  148. package/dist/Logger.js.map +1 -1
  149. package/dist/ManagedRuntime.d.ts +2 -2
  150. package/dist/ManagedRuntime.js +2 -2
  151. package/dist/Metric.d.ts +4 -6
  152. package/dist/Metric.d.ts.map +1 -1
  153. package/dist/Metric.js +3 -5
  154. package/dist/Metric.js.map +1 -1
  155. package/dist/MutableHashMap.d.ts +7 -0
  156. package/dist/MutableHashMap.d.ts.map +1 -1
  157. package/dist/MutableHashMap.js +8 -0
  158. package/dist/MutableHashMap.js.map +1 -1
  159. package/dist/MutableHashSet.d.ts +7 -0
  160. package/dist/MutableHashSet.d.ts.map +1 -1
  161. package/dist/MutableHashSet.js +8 -0
  162. package/dist/MutableHashSet.js.map +1 -1
  163. package/dist/Newtype.d.ts +291 -0
  164. package/dist/Newtype.d.ts.map +1 -0
  165. package/dist/Newtype.js +161 -0
  166. package/dist/Newtype.js.map +1 -0
  167. package/dist/Number.d.ts +74 -18
  168. package/dist/Number.d.ts.map +1 -1
  169. package/dist/Number.js +34 -15
  170. package/dist/Number.js.map +1 -1
  171. package/dist/Optic.d.ts +947 -18
  172. package/dist/Optic.d.ts.map +1 -1
  173. package/dist/Optic.js +454 -5
  174. package/dist/Optic.js.map +1 -1
  175. package/dist/Option.d.ts +25 -16
  176. package/dist/Option.d.ts.map +1 -1
  177. package/dist/Option.js +15 -9
  178. package/dist/Option.js.map +1 -1
  179. package/dist/Order.d.ts +6 -1
  180. package/dist/Order.d.ts.map +1 -1
  181. package/dist/Order.js +19 -14
  182. package/dist/Order.js.map +1 -1
  183. package/dist/PartitionedSemaphore.d.ts +146 -15
  184. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  185. package/dist/PartitionedSemaphore.js +174 -61
  186. package/dist/PartitionedSemaphore.js.map +1 -1
  187. package/dist/Pipeable.d.ts +17 -0
  188. package/dist/Pipeable.d.ts.map +1 -1
  189. package/dist/Pipeable.js +19 -1
  190. package/dist/Pipeable.js.map +1 -1
  191. package/dist/PlatformError.d.ts +10 -9
  192. package/dist/PlatformError.d.ts.map +1 -1
  193. package/dist/PlatformError.js +2 -2
  194. package/dist/PlatformError.js.map +1 -1
  195. package/dist/Pool.d.ts +6 -4
  196. package/dist/Pool.d.ts.map +1 -1
  197. package/dist/Pool.js +7 -5
  198. package/dist/Pool.js.map +1 -1
  199. package/dist/PubSub.d.ts +8 -6
  200. package/dist/PubSub.d.ts.map +1 -1
  201. package/dist/PubSub.js +18 -10
  202. package/dist/PubSub.js.map +1 -1
  203. package/dist/Pull.d.ts.map +1 -1
  204. package/dist/Pull.js +1 -1
  205. package/dist/Pull.js.map +1 -1
  206. package/dist/Queue.d.ts +9 -6
  207. package/dist/Queue.d.ts.map +1 -1
  208. package/dist/Queue.js +7 -5
  209. package/dist/Queue.js.map +1 -1
  210. package/dist/Random.d.ts +35 -1
  211. package/dist/Random.d.ts.map +1 -1
  212. package/dist/Random.js +46 -12
  213. package/dist/Random.js.map +1 -1
  214. package/dist/RcMap.d.ts +2 -2
  215. package/dist/RcMap.d.ts.map +1 -1
  216. package/dist/RcMap.js +1 -1
  217. package/dist/RcMap.js.map +1 -1
  218. package/dist/RcRef.d.ts +1 -1
  219. package/dist/RcRef.d.ts.map +1 -1
  220. package/dist/Record.d.ts +63 -160
  221. package/dist/Record.d.ts.map +1 -1
  222. package/dist/Record.js +37 -56
  223. package/dist/Record.js.map +1 -1
  224. package/dist/Reducer.d.ts +166 -7
  225. package/dist/Reducer.d.ts.map +1 -1
  226. package/dist/Reducer.js +135 -1
  227. package/dist/Reducer.js.map +1 -1
  228. package/dist/References.d.ts +242 -226
  229. package/dist/References.d.ts.map +1 -1
  230. package/dist/References.js +240 -247
  231. package/dist/References.js.map +1 -1
  232. package/dist/Request.d.ts +1 -1
  233. package/dist/Request.d.ts.map +1 -1
  234. package/dist/Request.js +2 -1
  235. package/dist/Request.js.map +1 -1
  236. package/dist/RequestResolver.d.ts +25 -45
  237. package/dist/RequestResolver.d.ts.map +1 -1
  238. package/dist/RequestResolver.js +10 -30
  239. package/dist/RequestResolver.js.map +1 -1
  240. package/dist/Resource.d.ts.map +1 -1
  241. package/dist/Resource.js +2 -1
  242. package/dist/Resource.js.map +1 -1
  243. package/dist/Result.d.ts +1 -1
  244. package/dist/Result.d.ts.map +1 -1
  245. package/dist/Result.js +1 -2
  246. package/dist/Result.js.map +1 -1
  247. package/dist/Runtime.d.ts +66 -0
  248. package/dist/Runtime.d.ts.map +1 -1
  249. package/dist/Runtime.js +79 -6
  250. package/dist/Runtime.js.map +1 -1
  251. package/dist/Schedule.d.ts +174 -291
  252. package/dist/Schedule.d.ts.map +1 -1
  253. package/dist/Schedule.js +160 -134
  254. package/dist/Schedule.js.map +1 -1
  255. package/dist/Scheduler.d.ts +34 -123
  256. package/dist/Scheduler.d.ts.map +1 -1
  257. package/dist/Scheduler.js +31 -123
  258. package/dist/Scheduler.js.map +1 -1
  259. package/dist/Schema.d.ts +2722 -247
  260. package/dist/Schema.d.ts.map +1 -1
  261. package/dist/Schema.js +1947 -224
  262. package/dist/Schema.js.map +1 -1
  263. package/dist/SchemaAST.d.ts +7 -2
  264. package/dist/SchemaAST.d.ts.map +1 -1
  265. package/dist/SchemaAST.js +131 -25
  266. package/dist/SchemaAST.js.map +1 -1
  267. package/dist/SchemaGetter.d.ts +5 -5
  268. package/dist/SchemaGetter.d.ts.map +1 -1
  269. package/dist/SchemaGetter.js +18 -18
  270. package/dist/SchemaGetter.js.map +1 -1
  271. package/dist/SchemaParser.d.ts +44 -54
  272. package/dist/SchemaParser.d.ts.map +1 -1
  273. package/dist/SchemaParser.js +55 -2
  274. package/dist/SchemaParser.js.map +1 -1
  275. package/dist/SchemaRepresentation.d.ts +46 -45
  276. package/dist/SchemaRepresentation.d.ts.map +1 -1
  277. package/dist/SchemaRepresentation.js +49 -24
  278. package/dist/SchemaRepresentation.js.map +1 -1
  279. package/dist/SchemaTransformation.d.ts +107 -3
  280. package/dist/SchemaTransformation.d.ts.map +1 -1
  281. package/dist/SchemaTransformation.js +173 -13
  282. package/dist/SchemaTransformation.js.map +1 -1
  283. package/dist/ScopedCache.d.ts +2 -2
  284. package/dist/ScopedCache.d.ts.map +1 -1
  285. package/dist/ScopedCache.js +1 -1
  286. package/dist/ScopedCache.js.map +1 -1
  287. package/dist/Semaphore.d.ts +307 -0
  288. package/dist/Semaphore.d.ts.map +1 -0
  289. package/dist/Semaphore.js +222 -0
  290. package/dist/Semaphore.js.map +1 -0
  291. package/dist/ServiceMap.d.ts +67 -31
  292. package/dist/ServiceMap.d.ts.map +1 -1
  293. package/dist/ServiceMap.js +39 -24
  294. package/dist/ServiceMap.js.map +1 -1
  295. package/dist/Sink.d.ts +18 -15
  296. package/dist/Sink.d.ts.map +1 -1
  297. package/dist/Sink.js +53 -6
  298. package/dist/Sink.js.map +1 -1
  299. package/dist/Stdio.d.ts +16 -4
  300. package/dist/Stdio.d.ts.map +1 -1
  301. package/dist/Stdio.js +18 -0
  302. package/dist/Stdio.js.map +1 -1
  303. package/dist/Stream.d.ts +284 -431
  304. package/dist/Stream.d.ts.map +1 -1
  305. package/dist/Stream.js +189 -88
  306. package/dist/Stream.js.map +1 -1
  307. package/dist/String.d.ts +114 -47
  308. package/dist/String.d.ts.map +1 -1
  309. package/dist/String.js +29 -47
  310. package/dist/String.js.map +1 -1
  311. package/dist/Struct.d.ts +23 -7
  312. package/dist/Struct.d.ts.map +1 -1
  313. package/dist/Struct.js +22 -0
  314. package/dist/Struct.js.map +1 -1
  315. package/dist/SubscriptionRef.d.ts +3 -3
  316. package/dist/SubscriptionRef.d.ts.map +1 -1
  317. package/dist/SubscriptionRef.js +85 -117
  318. package/dist/SubscriptionRef.js.map +1 -1
  319. package/dist/SynchronizedRef.d.ts +2 -1
  320. package/dist/SynchronizedRef.d.ts.map +1 -1
  321. package/dist/SynchronizedRef.js +2 -1
  322. package/dist/SynchronizedRef.js.map +1 -1
  323. package/dist/Terminal.d.ts +2 -1
  324. package/dist/Terminal.d.ts.map +1 -1
  325. package/dist/Terminal.js.map +1 -1
  326. package/dist/Tracer.d.ts +5 -4
  327. package/dist/Tracer.d.ts.map +1 -1
  328. package/dist/Tracer.js +2 -1
  329. package/dist/Tracer.js.map +1 -1
  330. package/dist/Trie.d.ts +44 -31
  331. package/dist/Trie.d.ts.map +1 -1
  332. package/dist/Trie.js +13 -9
  333. package/dist/Trie.js.map +1 -1
  334. package/dist/TxChunk.d.ts +37 -37
  335. package/dist/TxChunk.d.ts.map +1 -1
  336. package/dist/TxChunk.js +3 -3
  337. package/dist/TxChunk.js.map +1 -1
  338. package/dist/TxDeferred.d.ts +328 -0
  339. package/dist/TxDeferred.d.ts.map +1 -0
  340. package/dist/TxDeferred.js +197 -0
  341. package/dist/TxDeferred.js.map +1 -0
  342. package/dist/TxHashMap.d.ts +159 -140
  343. package/dist/TxHashMap.d.ts.map +1 -1
  344. package/dist/TxHashMap.js +51 -44
  345. package/dist/TxHashMap.js.map +1 -1
  346. package/dist/TxHashSet.d.ts +36 -36
  347. package/dist/TxHashSet.d.ts.map +1 -1
  348. package/dist/TxHashSet.js +16 -15
  349. package/dist/TxHashSet.js.map +1 -1
  350. package/dist/TxPriorityQueue.d.ts +609 -0
  351. package/dist/TxPriorityQueue.d.ts.map +1 -0
  352. package/dist/TxPriorityQueue.js +416 -0
  353. package/dist/TxPriorityQueue.js.map +1 -0
  354. package/dist/TxPubSub.d.ts +585 -0
  355. package/dist/TxPubSub.d.ts.map +1 -0
  356. package/dist/TxPubSub.js +521 -0
  357. package/dist/TxPubSub.js.map +1 -0
  358. package/dist/TxQueue.d.ts +32 -32
  359. package/dist/TxQueue.d.ts.map +1 -1
  360. package/dist/TxQueue.js +26 -26
  361. package/dist/TxQueue.js.map +1 -1
  362. package/dist/TxReentrantLock.d.ts +523 -0
  363. package/dist/TxReentrantLock.d.ts.map +1 -0
  364. package/dist/TxReentrantLock.js +504 -0
  365. package/dist/TxReentrantLock.js.map +1 -0
  366. package/dist/TxRef.d.ts +34 -34
  367. package/dist/TxRef.d.ts.map +1 -1
  368. package/dist/TxRef.js +21 -14
  369. package/dist/TxRef.js.map +1 -1
  370. package/dist/TxSemaphore.d.ts +170 -10
  371. package/dist/TxSemaphore.d.ts.map +1 -1
  372. package/dist/TxSemaphore.js +23 -8
  373. package/dist/TxSemaphore.js.map +1 -1
  374. package/dist/TxSubscriptionRef.d.ts +508 -0
  375. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  376. package/dist/TxSubscriptionRef.js +293 -0
  377. package/dist/TxSubscriptionRef.js.map +1 -0
  378. package/dist/Types.d.ts +80 -23
  379. package/dist/Types.d.ts.map +1 -1
  380. package/dist/Utils.d.ts +137 -65
  381. package/dist/Utils.d.ts.map +1 -1
  382. package/dist/Utils.js +38 -66
  383. package/dist/Utils.js.map +1 -1
  384. package/dist/index.d.ts +804 -53
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +804 -53
  387. package/dist/index.js.map +1 -1
  388. package/dist/internal/core.js +11 -3
  389. package/dist/internal/core.js.map +1 -1
  390. package/dist/internal/dateTime.js +77 -71
  391. package/dist/internal/dateTime.js.map +1 -1
  392. package/dist/internal/effect.js +281 -201
  393. package/dist/internal/effect.js.map +1 -1
  394. package/dist/internal/hashMap.js +7 -5
  395. package/dist/internal/hashMap.js.map +1 -1
  396. package/dist/internal/option.js +6 -0
  397. package/dist/internal/option.js.map +1 -1
  398. package/dist/internal/random.d.ts +2 -0
  399. package/dist/internal/random.d.ts.map +1 -0
  400. package/dist/internal/random.js +13 -0
  401. package/dist/internal/random.js.map +1 -0
  402. package/dist/internal/rcRef.js +3 -2
  403. package/dist/internal/rcRef.js.map +1 -1
  404. package/dist/internal/references.d.ts +2 -0
  405. package/dist/internal/references.d.ts.map +1 -0
  406. package/dist/internal/references.js +51 -0
  407. package/dist/internal/references.js.map +1 -0
  408. package/dist/internal/request.js +2 -2
  409. package/dist/internal/request.js.map +1 -1
  410. package/dist/internal/schema/annotations.js +2 -0
  411. package/dist/internal/schema/annotations.js.map +1 -1
  412. package/dist/internal/schema/representation.js +47 -106
  413. package/dist/internal/schema/representation.js.map +1 -1
  414. package/dist/internal/schema/schema.js +1 -0
  415. package/dist/internal/schema/schema.js.map +1 -1
  416. package/dist/internal/schema/to-codec.js +7 -10
  417. package/dist/internal/schema/to-codec.js.map +1 -1
  418. package/dist/internal/trie.js +8 -7
  419. package/dist/internal/trie.js.map +1 -1
  420. package/dist/testing/TestClock.d.ts +8 -7
  421. package/dist/testing/TestClock.d.ts.map +1 -1
  422. package/dist/testing/TestClock.js +6 -4
  423. package/dist/testing/TestClock.js.map +1 -1
  424. package/dist/testing/TestSchema.d.ts +266 -32
  425. package/dist/testing/TestSchema.d.ts.map +1 -1
  426. package/dist/testing/TestSchema.js +296 -23
  427. package/dist/testing/TestSchema.js.map +1 -1
  428. package/dist/testing/index.d.ts +64 -1
  429. package/dist/testing/index.d.ts.map +1 -1
  430. package/dist/testing/index.js +64 -1
  431. package/dist/testing/index.js.map +1 -1
  432. package/dist/unstable/ai/AiError.d.ts +136 -54
  433. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  434. package/dist/unstable/ai/AiError.js +28 -23
  435. package/dist/unstable/ai/AiError.js.map +1 -1
  436. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  437. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  438. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  439. package/dist/unstable/ai/Chat.d.ts +7 -8
  440. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  441. package/dist/unstable/ai/Chat.js +38 -44
  442. package/dist/unstable/ai/Chat.js.map +1 -1
  443. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  444. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  445. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  446. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  447. package/dist/unstable/ai/LanguageModel.d.ts +53 -45
  448. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  449. package/dist/unstable/ai/LanguageModel.js +265 -143
  450. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  451. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  452. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  453. package/dist/unstable/ai/McpSchema.js +57 -12
  454. package/dist/unstable/ai/McpSchema.js.map +1 -1
  455. package/dist/unstable/ai/McpServer.d.ts +66 -13
  456. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  457. package/dist/unstable/ai/McpServer.js +193 -51
  458. package/dist/unstable/ai/McpServer.js.map +1 -1
  459. package/dist/unstable/ai/Model.d.ts +25 -7
  460. package/dist/unstable/ai/Model.d.ts.map +1 -1
  461. package/dist/unstable/ai/Model.js +22 -6
  462. package/dist/unstable/ai/Model.js.map +1 -1
  463. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  464. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  465. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  466. package/dist/unstable/ai/Prompt.d.ts +20 -20
  467. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  468. package/dist/unstable/ai/Response.d.ts +26 -26
  469. package/dist/unstable/ai/Response.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.js +1 -1
  471. package/dist/unstable/ai/Response.js.map +1 -1
  472. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  473. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  474. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  475. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  476. package/dist/unstable/ai/Tool.d.ts +34 -4
  477. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  478. package/dist/unstable/ai/Tool.js +28 -10
  479. package/dist/unstable/ai/Tool.js.map +1 -1
  480. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  481. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  482. package/dist/unstable/ai/Toolkit.js +4 -11
  483. package/dist/unstable/ai/Toolkit.js.map +1 -1
  484. package/dist/unstable/ai/index.d.ts +22 -1
  485. package/dist/unstable/ai/index.d.ts.map +1 -1
  486. package/dist/unstable/ai/index.js +22 -1
  487. package/dist/unstable/ai/index.js.map +1 -1
  488. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  489. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  490. package/dist/unstable/cli/Argument.d.ts +2 -4
  491. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  492. package/dist/unstable/cli/Argument.js +1 -3
  493. package/dist/unstable/cli/Argument.js.map +1 -1
  494. package/dist/unstable/cli/CliError.d.ts +27 -60
  495. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  496. package/dist/unstable/cli/CliError.js +25 -57
  497. package/dist/unstable/cli/CliError.js.map +1 -1
  498. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  499. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  500. package/dist/unstable/cli/CliOutput.js +65 -10
  501. package/dist/unstable/cli/CliOutput.js.map +1 -1
  502. package/dist/unstable/cli/Command.d.ts +371 -58
  503. package/dist/unstable/cli/Command.d.ts.map +1 -1
  504. package/dist/unstable/cli/Command.js +328 -67
  505. package/dist/unstable/cli/Command.js.map +1 -1
  506. package/dist/unstable/cli/Completions.d.ts +16 -0
  507. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  508. package/dist/unstable/cli/Completions.js +23 -0
  509. package/dist/unstable/cli/Completions.js.map +1 -0
  510. package/dist/unstable/cli/Flag.d.ts +2 -2
  511. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  512. package/dist/unstable/cli/Flag.js +1 -1
  513. package/dist/unstable/cli/Flag.js.map +1 -1
  514. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  515. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  516. package/dist/unstable/cli/GlobalFlag.js +118 -0
  517. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  518. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  519. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  520. package/dist/unstable/cli/Param.d.ts +4 -4
  521. package/dist/unstable/cli/Param.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.js +7 -7
  523. package/dist/unstable/cli/Param.js.map +1 -1
  524. package/dist/unstable/cli/Primitive.d.ts +2 -2
  525. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  526. package/dist/unstable/cli/Primitive.js +1 -1
  527. package/dist/unstable/cli/Primitive.js.map +1 -1
  528. package/dist/unstable/cli/Prompt.js +258 -84
  529. package/dist/unstable/cli/Prompt.js.map +1 -1
  530. package/dist/unstable/cli/index.d.ts +8 -0
  531. package/dist/unstable/cli/index.d.ts.map +1 -1
  532. package/dist/unstable/cli/index.js +8 -0
  533. package/dist/unstable/cli/index.js.map +1 -1
  534. package/dist/unstable/cli/internal/command.d.ts +40 -14
  535. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  536. package/dist/unstable/cli/internal/command.js +72 -46
  537. package/dist/unstable/cli/internal/command.js.map +1 -1
  538. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  539. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  540. package/dist/unstable/cli/internal/config.js +42 -0
  541. package/dist/unstable/cli/internal/config.js.map +1 -1
  542. package/dist/unstable/cli/internal/help.d.ts +33 -0
  543. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  544. package/dist/unstable/cli/internal/help.js +125 -0
  545. package/dist/unstable/cli/internal/help.js.map +1 -0
  546. package/dist/unstable/cli/internal/parser.js +61 -43
  547. package/dist/unstable/cli/internal/parser.js.map +1 -1
  548. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  549. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.js +1 -1
  551. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  552. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  553. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  554. package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
  555. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  556. package/dist/unstable/cluster/DeliverAt.js +1 -1
  557. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  558. package/dist/unstable/cluster/Entity.d.ts +10 -8
  559. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  560. package/dist/unstable/cluster/Entity.js +7 -7
  561. package/dist/unstable/cluster/Entity.js.map +1 -1
  562. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  563. package/dist/unstable/cluster/EntityAddress.js +1 -1
  564. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  565. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  566. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  567. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  568. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  569. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  570. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  571. package/dist/unstable/cluster/Message.d.ts +14 -13
  572. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Message.js +3 -2
  574. package/dist/unstable/cluster/Message.js.map +1 -1
  575. package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
  576. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  577. package/dist/unstable/cluster/MessageStorage.js +14 -13
  578. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  579. package/dist/unstable/cluster/Reply.d.ts +8 -7
  580. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  581. package/dist/unstable/cluster/Reply.js +4 -3
  582. package/dist/unstable/cluster/Reply.js.map +1 -1
  583. package/dist/unstable/cluster/Runner.d.ts +1 -1
  584. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  585. package/dist/unstable/cluster/Runner.js +1 -1
  586. package/dist/unstable/cluster/Runner.js.map +1 -1
  587. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  588. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  589. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  590. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  591. package/dist/unstable/cluster/RunnerServer.js +9 -8
  592. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  593. package/dist/unstable/cluster/Runners.d.ts +2 -1
  594. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  595. package/dist/unstable/cluster/Runners.js +11 -9
  596. package/dist/unstable/cluster/Runners.js.map +1 -1
  597. package/dist/unstable/cluster/ShardId.js +3 -3
  598. package/dist/unstable/cluster/ShardId.js.map +1 -1
  599. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  600. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Sharding.js +28 -20
  602. package/dist/unstable/cluster/Sharding.js.map +1 -1
  603. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  604. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  605. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  606. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  607. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  608. package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
  609. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  610. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  611. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  612. package/dist/unstable/cluster/internal/entityManager.js +14 -14
  613. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  614. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  615. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  616. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  617. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  618. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  619. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  620. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  621. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  622. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  623. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  624. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  625. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  626. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  627. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  628. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  629. package/dist/unstable/encoding/Sse.d.ts +4 -4
  630. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  631. package/dist/unstable/encoding/Sse.js +1 -1
  632. package/dist/unstable/encoding/Sse.js.map +1 -1
  633. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  634. package/dist/unstable/eventlog/EventJournal.js +2 -2
  635. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  636. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  637. package/dist/unstable/eventlog/EventLog.js +3 -2
  638. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  639. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  640. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  641. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  642. package/dist/unstable/http/Cookies.d.ts +52 -7
  643. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  644. package/dist/unstable/http/Cookies.js +27 -6
  645. package/dist/unstable/http/Cookies.js.map +1 -1
  646. package/dist/unstable/http/Etag.d.ts.map +1 -1
  647. package/dist/unstable/http/Etag.js +5 -1
  648. package/dist/unstable/http/Etag.js.map +1 -1
  649. package/dist/unstable/http/Headers.d.ts +19 -2
  650. package/dist/unstable/http/Headers.d.ts.map +1 -1
  651. package/dist/unstable/http/Headers.js +40 -11
  652. package/dist/unstable/http/Headers.js.map +1 -1
  653. package/dist/unstable/http/HttpBody.d.ts +1 -1
  654. package/dist/unstable/http/HttpClient.d.ts +117 -15
  655. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  656. package/dist/unstable/http/HttpClient.js +191 -13
  657. package/dist/unstable/http/HttpClient.js.map +1 -1
  658. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  659. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  660. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  661. package/dist/unstable/http/HttpClientRequest.js +131 -21
  662. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  663. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  664. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  665. package/dist/unstable/http/HttpClientResponse.js +6 -1
  666. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  667. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  668. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  669. package/dist/unstable/http/HttpEffect.js +46 -54
  670. package/dist/unstable/http/HttpEffect.js.map +1 -1
  671. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  672. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  673. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  674. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  675. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  676. package/dist/unstable/http/HttpMethod.js +3 -3
  677. package/dist/unstable/http/HttpMethod.js.map +1 -1
  678. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  679. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  680. package/dist/unstable/http/HttpMiddleware.js +24 -32
  681. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  682. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  683. package/dist/unstable/http/HttpPlatform.js +3 -2
  684. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  685. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  686. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  687. package/dist/unstable/http/HttpRouter.js +7 -7
  688. package/dist/unstable/http/HttpRouter.js.map +1 -1
  689. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  690. package/dist/unstable/http/HttpServer.js +2 -2
  691. package/dist/unstable/http/HttpServer.js.map +1 -1
  692. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  693. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  694. package/dist/unstable/http/HttpServerError.js +39 -45
  695. package/dist/unstable/http/HttpServerError.js.map +1 -1
  696. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  697. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  698. package/dist/unstable/http/HttpServerRequest.js +301 -7
  699. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  700. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  701. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  702. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  703. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  704. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  705. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  706. package/dist/unstable/http/HttpServerResponse.js +236 -1
  707. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  708. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  709. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  710. package/dist/unstable/http/HttpStaticServer.js +353 -0
  711. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  712. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  713. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  714. package/dist/unstable/http/HttpTraceContext.js +27 -15
  715. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  716. package/dist/unstable/http/Multipart.d.ts +3 -3
  717. package/dist/unstable/http/Url.d.ts +604 -0
  718. package/dist/unstable/http/Url.d.ts.map +1 -0
  719. package/dist/unstable/http/Url.js +256 -0
  720. package/dist/unstable/http/Url.js.map +1 -0
  721. package/dist/unstable/http/UrlParams.d.ts +19 -10
  722. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  723. package/dist/unstable/http/UrlParams.js +6 -7
  724. package/dist/unstable/http/UrlParams.js.map +1 -1
  725. package/dist/unstable/http/index.d.ts +8 -0
  726. package/dist/unstable/http/index.d.ts.map +1 -1
  727. package/dist/unstable/http/index.js +8 -0
  728. package/dist/unstable/http/index.js.map +1 -1
  729. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  730. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  731. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  732. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  733. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  734. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  735. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  736. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  737. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  738. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  739. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  740. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  741. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  743. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  745. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  747. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  749. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  751. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  753. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  755. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  756. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  757. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  758. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  759. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  760. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  762. package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
  763. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  764. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  765. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  766. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  767. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  769. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/OpenApi.js +34 -26
  771. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  772. package/dist/unstable/observability/Otlp.d.ts +12 -12
  773. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  774. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  775. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  776. package/dist/unstable/observability/OtlpExporter.js +3 -3
  777. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  778. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  779. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  780. package/dist/unstable/observability/OtlpLogger.js +7 -4
  781. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  782. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  783. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  784. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  785. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  786. package/dist/unstable/observability/OtlpTracer.js +7 -3
  787. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  788. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  789. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  790. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  791. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  792. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  793. package/dist/unstable/persistence/Persistable.js +1 -1
  794. package/dist/unstable/persistence/Persistable.js.map +1 -1
  795. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  796. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  797. package/dist/unstable/persistence/PersistedCache.js +2 -1
  798. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  799. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  800. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  801. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  802. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  803. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  804. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  805. package/dist/unstable/persistence/Persistence.js +2 -2
  806. package/dist/unstable/persistence/Persistence.js.map +1 -1
  807. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  808. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  809. package/dist/unstable/persistence/RateLimiter.js +1 -1
  810. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  811. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  812. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  813. package/dist/unstable/process/ChildProcess.js +1 -65
  814. package/dist/unstable/process/ChildProcess.js.map +1 -1
  815. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  816. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  817. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  818. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  819. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  820. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  821. package/dist/unstable/reactivity/Atom.js +108 -25
  822. package/dist/unstable/reactivity/Atom.js.map +1 -1
  823. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  824. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  825. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  826. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  827. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  828. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  829. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  830. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  831. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  832. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  833. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  834. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  835. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  836. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  837. package/dist/unstable/reactivity/Hydration.js +76 -0
  838. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  839. package/dist/unstable/reactivity/index.d.ts +4 -0
  840. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  841. package/dist/unstable/reactivity/index.js +4 -0
  842. package/dist/unstable/reactivity/index.js.map +1 -1
  843. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  844. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  845. package/dist/unstable/rpc/Rpc.js +4 -3
  846. package/dist/unstable/rpc/Rpc.js.map +1 -1
  847. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  848. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  849. package/dist/unstable/rpc/RpcClient.js +10 -17
  850. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  851. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  852. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  853. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  854. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  855. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  857. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  858. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  859. package/dist/unstable/rpc/RpcSchema.js +17 -2
  860. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  861. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  862. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  863. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  864. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  865. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcServer.js +20 -19
  867. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  868. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  869. package/dist/unstable/rpc/Utils.js +3 -2
  870. package/dist/unstable/rpc/Utils.js.map +1 -1
  871. package/dist/unstable/schema/Model.d.ts +22 -1
  872. package/dist/unstable/schema/Model.d.ts.map +1 -1
  873. package/dist/unstable/schema/Model.js +15 -0
  874. package/dist/unstable/schema/Model.js.map +1 -1
  875. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  876. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  877. package/dist/unstable/schema/VariantSchema.js +6 -6
  878. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  879. package/dist/unstable/socket/Socket.d.ts +6 -5
  880. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  881. package/dist/unstable/socket/Socket.js +12 -9
  882. package/dist/unstable/socket/Socket.js.map +1 -1
  883. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  884. package/dist/unstable/sql/Migrator.d.ts +1 -1
  885. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  886. package/dist/unstable/sql/Migrator.js +2 -2
  887. package/dist/unstable/sql/Migrator.js.map +1 -1
  888. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  889. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  890. package/dist/unstable/sql/SqlClient.js +1 -1
  891. package/dist/unstable/sql/SqlClient.js.map +1 -1
  892. package/dist/unstable/sql/SqlError.d.ts +237 -17
  893. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  894. package/dist/unstable/sql/SqlError.js +260 -4
  895. package/dist/unstable/sql/SqlError.js.map +1 -1
  896. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  897. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  898. package/dist/unstable/sql/SqlModel.js +3 -3
  899. package/dist/unstable/sql/SqlModel.js.map +1 -1
  900. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlResolver.js +17 -8
  902. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  903. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  904. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlSchema.js +17 -7
  906. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  907. package/dist/unstable/sql/Statement.js +0 -1
  908. package/dist/unstable/sql/Statement.js.map +1 -1
  909. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  910. package/dist/unstable/workers/Worker.js +2 -1
  911. package/dist/unstable/workers/Worker.js.map +1 -1
  912. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  913. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  914. package/dist/unstable/workflow/DurableClock.js +3 -3
  915. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  916. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  917. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  918. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  919. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  920. package/dist/unstable/workflow/Workflow.js +1 -1
  921. package/dist/unstable/workflow/Workflow.js.map +1 -1
  922. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  923. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  924. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  925. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  926. package/package.json +2 -2
  927. package/src/Array.ts +304 -447
  928. package/src/BigDecimal.ts +63 -66
  929. package/src/BigInt.ts +49 -41
  930. package/src/Brand.ts +1 -1
  931. package/src/Cache.ts +9 -8
  932. package/src/Cause.ts +37 -2
  933. package/src/Channel.ts +582 -154
  934. package/src/Chunk.ts +149 -331
  935. package/src/Combiner.ts +280 -13
  936. package/src/Config.ts +195 -25
  937. package/src/Cron.ts +155 -63
  938. package/src/Data.ts +539 -376
  939. package/src/DateTime.ts +75 -256
  940. package/src/Deferred.ts +8 -6
  941. package/src/Duration.ts +122 -66
  942. package/src/Effect.ts +1483 -1157
  943. package/src/Encoding.ts +879 -0
  944. package/src/Equal.ts +278 -111
  945. package/src/Equivalence.ts +114 -52
  946. package/src/ErrorReporter.ts +458 -0
  947. package/src/Exit.ts +24 -12
  948. package/src/Fiber.ts +12 -3
  949. package/src/FiberHandle.ts +10 -9
  950. package/src/FiberMap.ts +22 -22
  951. package/src/FileSystem.ts +34 -31
  952. package/src/Filter.ts +52 -63
  953. package/src/Formatter.ts +253 -51
  954. package/src/Function.ts +2 -10
  955. package/src/Graph.ts +131 -117
  956. package/src/HashMap.ts +26 -19
  957. package/src/Iterable.ts +117 -63
  958. package/src/JsonSchema.ts +383 -10
  959. package/src/Latch.ts +194 -0
  960. package/src/Layer.ts +393 -159
  961. package/src/LayerMap.ts +11 -9
  962. package/src/LogLevel.ts +37 -0
  963. package/src/Logger.ts +33 -100
  964. package/src/ManagedRuntime.ts +2 -2
  965. package/src/Metric.ts +6 -8
  966. package/src/MutableHashMap.ts +9 -0
  967. package/src/MutableHashSet.ts +9 -0
  968. package/src/Newtype.ts +308 -0
  969. package/src/Number.ts +85 -26
  970. package/src/Optic.ts +948 -19
  971. package/src/Option.ts +34 -24
  972. package/src/Order.ts +39 -32
  973. package/src/PartitionedSemaphore.ts +288 -56
  974. package/src/Pipeable.ts +32 -1
  975. package/src/PlatformError.ts +5 -5
  976. package/src/Pool.ts +13 -11
  977. package/src/PubSub.ts +30 -20
  978. package/src/Pull.ts +1 -1
  979. package/src/Queue.ts +11 -9
  980. package/src/Random.ts +51 -14
  981. package/src/RcMap.ts +5 -5
  982. package/src/RcRef.ts +1 -1
  983. package/src/Record.ts +94 -199
  984. package/src/Reducer.ts +166 -7
  985. package/src/References.ts +283 -287
  986. package/src/Request.ts +3 -2
  987. package/src/RequestResolver.ts +29 -49
  988. package/src/Resource.ts +2 -1
  989. package/src/Result.ts +2 -4
  990. package/src/Runtime.ts +102 -6
  991. package/src/Schedule.ts +458 -449
  992. package/src/Scheduler.ts +49 -126
  993. package/src/Schema.ts +3298 -392
  994. package/src/SchemaAST.ts +172 -33
  995. package/src/SchemaGetter.ts +19 -21
  996. package/src/SchemaParser.ts +92 -27
  997. package/src/SchemaRepresentation.ts +51 -26
  998. package/src/SchemaTransformation.ts +198 -13
  999. package/src/ScopedCache.ts +3 -3
  1000. package/src/Semaphore.ts +444 -0
  1001. package/src/ServiceMap.ts +133 -71
  1002. package/src/Sink.ts +83 -28
  1003. package/src/Stdio.ts +27 -4
  1004. package/src/Stream.ts +687 -617
  1005. package/src/String.ts +122 -69
  1006. package/src/Struct.ts +33 -7
  1007. package/src/SubscriptionRef.ts +101 -120
  1008. package/src/SynchronizedRef.ts +3 -2
  1009. package/src/Terminal.ts +2 -1
  1010. package/src/Tracer.ts +6 -5
  1011. package/src/Trie.ts +44 -31
  1012. package/src/TxChunk.ts +72 -53
  1013. package/src/TxDeferred.ts +394 -0
  1014. package/src/TxHashMap.ts +409 -343
  1015. package/src/TxHashSet.ts +113 -118
  1016. package/src/TxPriorityQueue.ts +766 -0
  1017. package/src/TxPubSub.ts +789 -0
  1018. package/src/TxQueue.ts +241 -251
  1019. package/src/TxReentrantLock.ts +753 -0
  1020. package/src/TxRef.ts +50 -38
  1021. package/src/TxSemaphore.ts +217 -44
  1022. package/src/TxSubscriptionRef.ts +639 -0
  1023. package/src/Types.ts +73 -19
  1024. package/src/Utils.ts +137 -111
  1025. package/src/index.ts +814 -54
  1026. package/src/internal/core.ts +12 -5
  1027. package/src/internal/dateTime.ts +91 -96
  1028. package/src/internal/effect.ts +841 -432
  1029. package/src/internal/hashMap.ts +12 -10
  1030. package/src/internal/option.ts +7 -0
  1031. package/src/internal/random.ts +20 -0
  1032. package/src/internal/rcRef.ts +4 -3
  1033. package/src/internal/references.ts +72 -0
  1034. package/src/internal/request.ts +2 -2
  1035. package/src/internal/schema/annotations.ts +2 -0
  1036. package/src/internal/schema/representation.ts +45 -94
  1037. package/src/internal/schema/schema.ts +1 -0
  1038. package/src/internal/schema/to-codec.ts +7 -17
  1039. package/src/internal/trie.ts +21 -15
  1040. package/src/testing/TestClock.ts +13 -11
  1041. package/src/testing/TestSchema.ts +332 -35
  1042. package/src/testing/index.ts +64 -1
  1043. package/src/unstable/ai/AiError.ts +111 -54
  1044. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1045. package/src/unstable/ai/Chat.ts +62 -74
  1046. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1047. package/src/unstable/ai/LanguageModel.ts +544 -230
  1048. package/src/unstable/ai/McpSchema.ts +73 -13
  1049. package/src/unstable/ai/McpServer.ts +271 -61
  1050. package/src/unstable/ai/Model.ts +40 -9
  1051. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1052. package/src/unstable/ai/Prompt.ts +37 -37
  1053. package/src/unstable/ai/Response.ts +25 -25
  1054. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1055. package/src/unstable/ai/Tool.ts +42 -16
  1056. package/src/unstable/ai/Toolkit.ts +5 -14
  1057. package/src/unstable/ai/index.ts +24 -1
  1058. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1059. package/src/unstable/cli/Argument.ts +2 -4
  1060. package/src/unstable/cli/CliError.ts +47 -59
  1061. package/src/unstable/cli/CliOutput.ts +85 -13
  1062. package/src/unstable/cli/Command.ts +801 -192
  1063. package/src/unstable/cli/Completions.ts +36 -0
  1064. package/src/unstable/cli/Flag.ts +2 -2
  1065. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1066. package/src/unstable/cli/HelpDoc.ts +91 -11
  1067. package/src/unstable/cli/Param.ts +15 -11
  1068. package/src/unstable/cli/Primitive.ts +2 -2
  1069. package/src/unstable/cli/Prompt.ts +262 -100
  1070. package/src/unstable/cli/index.ts +10 -0
  1071. package/src/unstable/cli/internal/command.ts +109 -63
  1072. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1073. package/src/unstable/cli/internal/config.ts +49 -0
  1074. package/src/unstable/cli/internal/help.ts +171 -0
  1075. package/src/unstable/cli/internal/parser.ts +71 -63
  1076. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1077. package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
  1078. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1079. package/src/unstable/cluster/Entity.ts +24 -22
  1080. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1081. package/src/unstable/cluster/EntityResource.ts +4 -4
  1082. package/src/unstable/cluster/Envelope.ts +1 -1
  1083. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1084. package/src/unstable/cluster/Message.ts +6 -5
  1085. package/src/unstable/cluster/MessageStorage.ts +29 -30
  1086. package/src/unstable/cluster/Reply.ts +7 -4
  1087. package/src/unstable/cluster/Runner.ts +1 -1
  1088. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1089. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1090. package/src/unstable/cluster/Runners.ts +14 -12
  1091. package/src/unstable/cluster/ShardId.ts +2 -2
  1092. package/src/unstable/cluster/Sharding.ts +36 -27
  1093. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1094. package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
  1095. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1096. package/src/unstable/cluster/internal/entityManager.ts +36 -29
  1097. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1098. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1099. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1100. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1101. package/src/unstable/encoding/Ndjson.ts +17 -17
  1102. package/src/unstable/encoding/Sse.ts +3 -5
  1103. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1104. package/src/unstable/eventlog/EventLog.ts +3 -2
  1105. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1106. package/src/unstable/http/Cookies.ts +94 -11
  1107. package/src/unstable/http/Etag.ts +5 -3
  1108. package/src/unstable/http/Headers.ts +68 -18
  1109. package/src/unstable/http/HttpClient.ts +376 -34
  1110. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1111. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1112. package/src/unstable/http/HttpEffect.ts +54 -68
  1113. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1114. package/src/unstable/http/HttpMethod.ts +16 -4
  1115. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1116. package/src/unstable/http/HttpPlatform.ts +3 -2
  1117. package/src/unstable/http/HttpRouter.ts +9 -9
  1118. package/src/unstable/http/HttpServer.ts +3 -9
  1119. package/src/unstable/http/HttpServerError.ts +45 -47
  1120. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1121. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1122. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1123. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1124. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1125. package/src/unstable/http/Multipart.ts +2 -2
  1126. package/src/unstable/http/Url.ts +650 -0
  1127. package/src/unstable/http/UrlParams.ts +31 -19
  1128. package/src/unstable/http/index.ts +10 -0
  1129. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1130. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1131. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1132. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1133. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1134. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1135. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1136. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1137. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1138. package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
  1139. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1140. package/src/unstable/httpapi/OpenApi.ts +43 -29
  1141. package/src/unstable/observability/Otlp.ts +12 -12
  1142. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1143. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1144. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1145. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1146. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1147. package/src/unstable/persistence/Persistable.ts +3 -3
  1148. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1149. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1150. package/src/unstable/persistence/Persistence.ts +3 -3
  1151. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1152. package/src/unstable/process/ChildProcess.ts +6 -208
  1153. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1154. package/src/unstable/reactivity/Atom.ts +212 -54
  1155. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1156. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1157. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1158. package/src/unstable/reactivity/Hydration.ts +112 -0
  1159. package/src/unstable/reactivity/index.ts +5 -0
  1160. package/src/unstable/rpc/Rpc.ts +11 -12
  1161. package/src/unstable/rpc/RpcClient.ts +22 -63
  1162. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1163. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1164. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1165. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1166. package/src/unstable/rpc/RpcServer.ts +31 -35
  1167. package/src/unstable/rpc/Utils.ts +3 -2
  1168. package/src/unstable/schema/Model.ts +31 -0
  1169. package/src/unstable/schema/VariantSchema.ts +10 -10
  1170. package/src/unstable/socket/Socket.ts +31 -27
  1171. package/src/unstable/sql/Migrator.ts +7 -5
  1172. package/src/unstable/sql/SqlClient.ts +6 -4
  1173. package/src/unstable/sql/SqlError.ts +365 -11
  1174. package/src/unstable/sql/SqlModel.ts +5 -5
  1175. package/src/unstable/sql/SqlResolver.ts +17 -7
  1176. package/src/unstable/sql/SqlSchema.ts +42 -26
  1177. package/src/unstable/sql/Statement.ts +0 -1
  1178. package/src/unstable/workers/Worker.ts +2 -1
  1179. package/src/unstable/workflow/DurableClock.ts +8 -8
  1180. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1181. package/src/unstable/workflow/Workflow.ts +7 -3
  1182. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1183. package/dist/NullOr.d.ts +0 -149
  1184. package/dist/NullOr.d.ts.map +0 -1
  1185. package/dist/NullOr.js +0 -152
  1186. package/dist/NullOr.js.map +0 -1
  1187. package/dist/encoding/Base64.d.ts +0 -67
  1188. package/dist/encoding/Base64.d.ts.map +0 -1
  1189. package/dist/encoding/Base64.js +0 -146
  1190. package/dist/encoding/Base64.js.map +0 -1
  1191. package/dist/encoding/Base64Url.d.ts +0 -60
  1192. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1193. package/dist/encoding/Base64Url.js +0 -89
  1194. package/dist/encoding/Base64Url.js.map +0 -1
  1195. package/dist/encoding/EncodingError.d.ts +0 -31
  1196. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1197. package/dist/encoding/EncodingError.js +0 -22
  1198. package/dist/encoding/EncodingError.js.map +0 -1
  1199. package/dist/encoding/Hex.d.ts +0 -61
  1200. package/dist/encoding/Hex.d.ts.map +0 -1
  1201. package/dist/encoding/Hex.js +0 -115
  1202. package/dist/encoding/Hex.js.map +0 -1
  1203. package/dist/encoding/index.d.ts +0 -26
  1204. package/dist/encoding/index.d.ts.map +0 -1
  1205. package/dist/encoding/index.js +0 -27
  1206. package/dist/encoding/index.js.map +0 -1
  1207. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1208. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1209. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1210. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1211. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1212. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1213. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1214. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1215. package/src/NullOr.ts +0 -204
  1216. package/src/encoding/Base64.ts +0 -366
  1217. package/src/encoding/Base64Url.ts +0 -104
  1218. package/src/encoding/EncodingError.ts +0 -35
  1219. package/src/encoding/Hex.ts +0 -390
  1220. package/src/encoding/index.ts +0 -31
  1221. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1222. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/TxHashMap.ts CHANGED
@@ -11,6 +11,8 @@ import { NodeInspectSymbol, toJson } from "./Inspectable.ts"
11
11
  import * as Option from "./Option.ts"
12
12
  import type { Pipeable } from "./Pipeable.ts"
13
13
  import { pipeArguments } from "./Pipeable.ts"
14
+ import { hasProperty } from "./Predicate.ts"
15
+ import type { Result } from "./Result.ts"
14
16
  import * as TxRef from "./TxRef.ts"
15
17
 
16
18
  const TypeId = "~effect/transactions/TxHashMap"
@@ -41,7 +43,7 @@ const TxHashMapProto = {
41
43
  *
42
44
  * @example
43
45
  * ```ts
44
- * import { Effect, Option, TxHashMap } from "effect"
46
+ * import { Effect, TxHashMap } from "effect"
45
47
  *
46
48
  * const program = Effect.gen(function*() {
47
49
  * // Create a transactional hash map
@@ -53,10 +55,10 @@ const TxHashMapProto = {
53
55
  * console.log(user) // Option.some("Alice")
54
56
  *
55
57
  * // Multi-step atomic operations
56
- * yield* Effect.atomic(
58
+ * yield* Effect.transaction(
57
59
  * Effect.gen(function*() {
58
60
  * const currentUser = yield* TxHashMap.get(txMap, "user1")
59
- * if (Option.isSome(currentUser)) {
61
+ * if (currentUser._tag === "Some") {
60
62
  * yield* TxHashMap.set(txMap, "user1", currentUser.value + "_updated")
61
63
  * yield* TxHashMap.remove(txMap, "user2")
62
64
  * }
@@ -236,7 +238,7 @@ export declare namespace TxHashMap {
236
238
  * @since 2.0.0
237
239
  * @category constructors
238
240
  */
239
- export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
241
+ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
240
242
  Effect.gen(function*() {
241
243
  const ref = yield* TxRef.make(HashMap.empty<K, V>())
242
244
  return Object.assign(Object.create(TxHashMapProto), { ref })
@@ -273,7 +275,9 @@ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
273
275
  * @since 2.0.0
274
276
  * @category constructors
275
277
  */
276
- export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<TxHashMap<K, V>> =>
278
+ export const make = <K, V>(
279
+ ...entries: Array<readonly [K, V]>
280
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
277
281
  Effect.gen(function*() {
278
282
  const hashMap = HashMap.make(...entries)
279
283
  const ref = yield* TxRef.make(hashMap)
@@ -314,7 +318,9 @@ export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<Tx
314
318
  * @since 2.0.0
315
319
  * @category constructors
316
320
  */
317
- export const fromIterable = <K, V>(entries: Iterable<readonly [K, V]>): Effect.Effect<TxHashMap<K, V>> =>
321
+ export const fromIterable = <K, V>(
322
+ entries: Iterable<readonly [K, V]>
323
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
318
324
  Effect.gen(function*() {
319
325
  const hashMap = HashMap.fromIterable(entries)
320
326
  const ref = yield* TxRef.make(hashMap)
@@ -343,7 +349,7 @@ export const fromIterable = <K, V>(entries: Iterable<readonly [K, V]>): Effect.E
343
349
  *
344
350
  * // Use with pipe syntax for type-safe access
345
351
  * const bobRole = yield* TxHashMap.get(userMap, "bob")
346
- * if (Option.isSome(bobRole)) {
352
+ * if (bobRole._tag === "Some") {
347
353
  * console.log(bobRole.value.role) // "user"
348
354
  * }
349
355
  * })
@@ -375,7 +381,7 @@ export const get: {
375
381
  *
376
382
  * // Use with pipe syntax for type-safe access
377
383
  * const bobRole = yield* TxHashMap.get(userMap, "bob")
378
- * if (Option.isSome(bobRole)) {
384
+ * if (bobRole._tag === "Some") {
379
385
  * console.log(bobRole.value.role) // "user"
380
386
  * }
381
387
  * })
@@ -384,7 +390,7 @@ export const get: {
384
390
  * @since 2.0.0
385
391
  * @category combinators
386
392
  */
387
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
393
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
388
394
  /**
389
395
  * Safely lookup the value for the specified key in the TxHashMap.
390
396
  *
@@ -407,7 +413,7 @@ export const get: {
407
413
  *
408
414
  * // Use with pipe syntax for type-safe access
409
415
  * const bobRole = yield* TxHashMap.get(userMap, "bob")
410
- * if (Option.isSome(bobRole)) {
416
+ * if (bobRole._tag === "Some") {
411
417
  * console.log(bobRole.value.role) // "user"
412
418
  * }
413
419
  * })
@@ -416,10 +422,10 @@ export const get: {
416
422
  * @since 2.0.0
417
423
  * @category combinators
418
424
  */
419
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>>
425
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
420
426
  } = dual(
421
427
  2,
422
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>> =>
428
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
423
429
  Effect.gen(function*() {
424
430
  const map = yield* TxRef.get(self.ref)
425
431
  return HashMap.get(map, key)
@@ -495,7 +501,7 @@ export const set: {
495
501
  * @since 2.0.0
496
502
  * @category combinators
497
503
  */
498
- <K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void>
504
+ <K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
499
505
  /**
500
506
  * Sets the value for the specified key in the TxHashMap.
501
507
  *
@@ -530,10 +536,10 @@ export const set: {
530
536
  * @since 2.0.0
531
537
  * @category combinators
532
538
  */
533
- <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void>
539
+ <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction>
534
540
  } = dual(
535
541
  3,
536
- <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void> =>
542
+ <K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction> =>
537
543
  TxRef.update(self.ref, (map) => HashMap.set(map, key, value))
538
544
  )
539
545
 
@@ -598,7 +604,7 @@ export const has: {
598
604
  * @since 2.0.0
599
605
  * @category combinators
600
606
  */
601
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
607
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
602
608
  /**
603
609
  * Checks if the specified key exists in the TxHashMap.
604
610
  *
@@ -629,10 +635,10 @@ export const has: {
629
635
  * @since 2.0.0
630
636
  * @category combinators
631
637
  */
632
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
638
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
633
639
  } = dual(
634
640
  2,
635
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
641
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
636
642
  Effect.gen(function*() {
637
643
  const map = yield* TxRef.get(self.ref)
638
644
  return HashMap.has(map, key)
@@ -714,7 +720,7 @@ export const remove: {
714
720
  * @since 2.0.0
715
721
  * @category combinators
716
722
  */
717
- <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
723
+ <K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
718
724
  /**
719
725
  * Removes the specified key from the TxHashMap.
720
726
  *
@@ -752,20 +758,18 @@ export const remove: {
752
758
  * @since 2.0.0
753
759
  * @category combinators
754
760
  */
755
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
761
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
756
762
  } = dual(
757
763
  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
- )
764
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
765
+ Effect.gen(function*() {
766
+ const currentMap = yield* TxRef.get(self.ref)
767
+ const existed = HashMap.has(currentMap, key)
768
+ if (existed) {
769
+ yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
770
+ }
771
+ return existed
772
+ })
769
773
  )
770
774
 
771
775
  /**
@@ -804,7 +808,8 @@ export const remove: {
804
808
  * @since 2.0.0
805
809
  * @category combinators
806
810
  */
807
- export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef.set(self.ref, HashMap.empty<K, V>())
811
+ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void, never, Effect.Transaction> =>
812
+ TxRef.set(self.ref, HashMap.empty<K, V>())
808
813
 
809
814
  /**
810
815
  * Returns the number of entries in the TxHashMap.
@@ -838,7 +843,7 @@ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef
838
843
  * @since 2.0.0
839
844
  * @category combinators
840
845
  */
841
- export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
846
+ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number, never, Effect.Transaction> =>
842
847
  Effect.gen(function*() {
843
848
  const map = yield* TxRef.get(self.ref)
844
849
  return HashMap.size(map)
@@ -872,7 +877,7 @@ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
872
877
  * @since 2.0.0
873
878
  * @category combinators
874
879
  */
875
- export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
880
+ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
876
881
  Effect.gen(function*() {
877
882
  const map = yield* TxRef.get(self.ref)
878
883
  return HashMap.isEmpty(map)
@@ -901,7 +906,7 @@ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
901
906
  * @since 2.0.0
902
907
  * @category combinators
903
908
  */
904
- export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
909
+ export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
905
910
  Effect.map(isEmpty(self), (empty) => !empty)
906
911
 
907
912
  /**
@@ -991,7 +996,7 @@ export const modify: {
991
996
  * @since 2.0.0
992
997
  * @category combinators
993
998
  */
994
- <K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
999
+ <K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
995
1000
  /**
996
1001
  * Updates the value for the specified key if it exists.
997
1002
  *
@@ -1035,22 +1040,24 @@ export const modify: {
1035
1040
  * @since 2.0.0
1036
1041
  * @category combinators
1037
1042
  */
1038
- <K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>>
1043
+ <K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1039
1044
  } = dual(
1040
1045
  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
- )
1046
+ <K, V>(
1047
+ self: TxHashMap<K, V>,
1048
+ key: K,
1049
+ f: (value: V) => V
1050
+ ): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
1051
+ Effect.gen(function*() {
1052
+ const currentMap = yield* TxRef.get(self.ref)
1053
+ const currentValue = HashMap.get(currentMap, key)
1054
+ if (Option.isSome(currentValue)) {
1055
+ const newValue = f(currentValue.value)
1056
+ yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue))
1057
+ return currentValue
1058
+ }
1059
+ return Option.none()
1060
+ })
1054
1061
  )
1055
1062
 
1056
1063
  /**
@@ -1062,7 +1069,7 @@ export const modify: {
1062
1069
  *
1063
1070
  * @example
1064
1071
  * ```ts
1065
- * import { Effect, Option, TxHashMap } from "effect"
1072
+ * import { Effect, TxHashMap } from "effect"
1066
1073
  *
1067
1074
  * const program = Effect.gen(function*() {
1068
1075
  * const storage = yield* TxHashMap.make<string, string | number>([
@@ -1070,26 +1077,32 @@ export const modify: {
1070
1077
  * "content1"
1071
1078
  * ], ["access_count", 0])
1072
1079
  *
1073
- * // Increment counter or initialize to 1
1074
- * const updateFn = (opt: Option.Option<string | number>) =>
1075
- * Option.isSome(opt) && typeof opt.value === "number"
1076
- * ? Option.some(opt.value + 1)
1077
- * : Option.some(1)
1078
- *
1079
1080
  * // Increment existing counter
1080
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1081
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1082
+ * current._tag === "Some" && typeof current.value === "number"
1083
+ * ? { ...current, value: current.value + 1 }
1084
+ * : current
1085
+ * )
1081
1086
  * const count1 = yield* TxHashMap.get(storage, "access_count")
1082
1087
  * console.log(count1) // Option.some(1)
1083
1088
  *
1084
1089
  * // Increment existing counter again
1085
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1090
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1091
+ * current._tag === "Some" && typeof current.value === "number"
1092
+ * ? { ...current, value: current.value + 1 }
1093
+ * : current
1094
+ * )
1086
1095
  * const count2 = yield* TxHashMap.get(storage, "access_count")
1087
1096
  * console.log(count2) // Option.some(2)
1088
1097
  *
1089
- * // Remove by returning None
1090
- * yield* TxHashMap.modifyAt(storage, "file1.txt", () => Option.none())
1091
- * const hasFile = yield* TxHashMap.has(storage, "file1.txt")
1092
- * console.log(hasFile) // false
1098
+ * // Update an existing string entry
1099
+ * yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
1100
+ * current._tag === "Some" && typeof current.value === "string"
1101
+ * ? { ...current, value: `${current.value}.bak` }
1102
+ * : current
1103
+ * )
1104
+ * const backup = yield* TxHashMap.get(storage, "file1.txt")
1105
+ * console.log(backup) // Option.some("content1.bak")
1093
1106
  * })
1094
1107
  * ```
1095
1108
  *
@@ -1106,7 +1119,7 @@ export const modifyAt: {
1106
1119
  *
1107
1120
  * @example
1108
1121
  * ```ts
1109
- * import { Effect, Option, TxHashMap } from "effect"
1122
+ * import { Effect, TxHashMap } from "effect"
1110
1123
  *
1111
1124
  * const program = Effect.gen(function*() {
1112
1125
  * const storage = yield* TxHashMap.make<string, string | number>([
@@ -1114,33 +1127,39 @@ export const modifyAt: {
1114
1127
  * "content1"
1115
1128
  * ], ["access_count", 0])
1116
1129
  *
1117
- * // Increment counter or initialize to 1
1118
- * const updateFn = (opt: Option.Option<string | number>) =>
1119
- * Option.isSome(opt) && typeof opt.value === "number"
1120
- * ? Option.some(opt.value + 1)
1121
- * : Option.some(1)
1122
- *
1123
1130
  * // Increment existing counter
1124
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1131
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1132
+ * current._tag === "Some" && typeof current.value === "number"
1133
+ * ? { ...current, value: current.value + 1 }
1134
+ * : current
1135
+ * )
1125
1136
  * const count1 = yield* TxHashMap.get(storage, "access_count")
1126
1137
  * console.log(count1) // Option.some(1)
1127
1138
  *
1128
1139
  * // Increment existing counter again
1129
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1140
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1141
+ * current._tag === "Some" && typeof current.value === "number"
1142
+ * ? { ...current, value: current.value + 1 }
1143
+ * : current
1144
+ * )
1130
1145
  * const count2 = yield* TxHashMap.get(storage, "access_count")
1131
1146
  * console.log(count2) // Option.some(2)
1132
1147
  *
1133
- * // Remove by returning None
1134
- * yield* TxHashMap.modifyAt(storage, "file1.txt", () => Option.none())
1135
- * const hasFile = yield* TxHashMap.has(storage, "file1.txt")
1136
- * console.log(hasFile) // false
1148
+ * // Update an existing string entry
1149
+ * yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
1150
+ * current._tag === "Some" && typeof current.value === "string"
1151
+ * ? { ...current, value: `${current.value}.bak` }
1152
+ * : current
1153
+ * )
1154
+ * const backup = yield* TxHashMap.get(storage, "file1.txt")
1155
+ * console.log(backup) // Option.some("content1.bak")
1137
1156
  * })
1138
1157
  * ```
1139
1158
  *
1140
1159
  * @since 2.0.0
1141
1160
  * @category combinators
1142
1161
  */
1143
- <K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1162
+ <K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1144
1163
  /**
1145
1164
  * Updates the value for the specified key using an Option-based update function.
1146
1165
  *
@@ -1150,7 +1169,7 @@ export const modifyAt: {
1150
1169
  *
1151
1170
  * @example
1152
1171
  * ```ts
1153
- * import { Effect, Option, TxHashMap } from "effect"
1172
+ * import { Effect, TxHashMap } from "effect"
1154
1173
  *
1155
1174
  * const program = Effect.gen(function*() {
1156
1175
  * const storage = yield* TxHashMap.make<string, string | number>([
@@ -1158,26 +1177,32 @@ export const modifyAt: {
1158
1177
  * "content1"
1159
1178
  * ], ["access_count", 0])
1160
1179
  *
1161
- * // Increment counter or initialize to 1
1162
- * const updateFn = (opt: Option.Option<string | number>) =>
1163
- * Option.isSome(opt) && typeof opt.value === "number"
1164
- * ? Option.some(opt.value + 1)
1165
- * : Option.some(1)
1166
- *
1167
1180
  * // Increment existing counter
1168
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1181
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1182
+ * current._tag === "Some" && typeof current.value === "number"
1183
+ * ? { ...current, value: current.value + 1 }
1184
+ * : current
1185
+ * )
1169
1186
  * const count1 = yield* TxHashMap.get(storage, "access_count")
1170
1187
  * console.log(count1) // Option.some(1)
1171
1188
  *
1172
1189
  * // Increment existing counter again
1173
- * yield* TxHashMap.modifyAt(storage, "access_count", updateFn)
1190
+ * yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
1191
+ * current._tag === "Some" && typeof current.value === "number"
1192
+ * ? { ...current, value: current.value + 1 }
1193
+ * : current
1194
+ * )
1174
1195
  * const count2 = yield* TxHashMap.get(storage, "access_count")
1175
1196
  * console.log(count2) // Option.some(2)
1176
1197
  *
1177
- * // Remove by returning None
1178
- * yield* TxHashMap.modifyAt(storage, "file1.txt", () => Option.none())
1179
- * const hasFile = yield* TxHashMap.has(storage, "file1.txt")
1180
- * console.log(hasFile) // false
1198
+ * // Update an existing string entry
1199
+ * yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
1200
+ * current._tag === "Some" && typeof current.value === "string"
1201
+ * ? { ...current, value: `${current.value}.bak` }
1202
+ * : current
1203
+ * )
1204
+ * const backup = yield* TxHashMap.get(storage, "file1.txt")
1205
+ * console.log(backup) // Option.some("content1.bak")
1181
1206
  * })
1182
1207
  * ```
1183
1208
  *
@@ -1188,23 +1213,25 @@ export const modifyAt: {
1188
1213
  self: TxHashMap<K, V>,
1189
1214
  key: K,
1190
1215
  f: (value: Option.Option<V>) => Option.Option<V>
1191
- ): Effect.Effect<void>
1216
+ ): Effect.Effect<void, never, Effect.Transaction>
1192
1217
  } = dual(
1193
1218
  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)
1219
+ <K, V>(
1220
+ self: TxHashMap<K, V>,
1221
+ key: K,
1222
+ f: (value: Option.Option<V>) => Option.Option<V>
1223
+ ): Effect.Effect<void, never, Effect.Transaction> =>
1224
+ Effect.gen(function*() {
1225
+ const currentMap = yield* TxRef.get(self.ref)
1226
+ const currentValue = HashMap.get(currentMap, key)
1227
+ const newValue = f(currentValue)
1200
1228
 
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
- )
1229
+ if (Option.isSome(newValue)) {
1230
+ yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue.value))
1231
+ } else if (Option.isSome(currentValue)) {
1232
+ yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
1233
+ }
1234
+ })
1208
1235
  )
1209
1236
 
1210
1237
  /**
@@ -1227,7 +1254,7 @@ export const modifyAt: {
1227
1254
  * // Useful for iteration
1228
1255
  * for (const username of usernames) {
1229
1256
  * const role = yield* TxHashMap.get(userRoles, username)
1230
- * if (Option.isSome(role)) {
1257
+ * if (role._tag === "Some") {
1231
1258
  * console.log(`${username}: ${role.value}`)
1232
1259
  * }
1233
1260
  * }
@@ -1237,7 +1264,7 @@ export const modifyAt: {
1237
1264
  * @since 2.0.0
1238
1265
  * @category combinators
1239
1266
  */
1240
- export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
1267
+ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>, never, Effect.Transaction> =>
1241
1268
  Effect.gen(function*() {
1242
1269
  const map = yield* TxRef.get(self.ref)
1243
1270
  return Array.from(HashMap.keys(map))
@@ -1274,7 +1301,7 @@ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
1274
1301
  * @since 2.0.0
1275
1302
  * @category combinators
1276
1303
  */
1277
- export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
1304
+ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
1278
1305
  Effect.gen(function*() {
1279
1306
  const map = yield* TxRef.get(self.ref)
1280
1307
  return HashMap.toValues(map)
@@ -1311,7 +1338,9 @@ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
1311
1338
  * @since 2.0.0
1312
1339
  * @category combinators
1313
1340
  */
1314
- export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readonly [K, V]>> =>
1341
+ export const entries = <K, V>(
1342
+ self: TxHashMap<K, V>
1343
+ ): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> =>
1315
1344
  Effect.gen(function*() {
1316
1345
  const map = yield* TxRef.get(self.ref)
1317
1346
  return HashMap.toEntries(map)
@@ -1351,7 +1380,9 @@ export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readon
1351
1380
  * @since 2.0.0
1352
1381
  * @category combinators
1353
1382
  */
1354
- export const snapshot = <K, V>(self: TxHashMap<K, V>): Effect.Effect<HashMap.HashMap<K, V>> => TxRef.get(self.ref)
1383
+ export const snapshot = <K, V>(
1384
+ self: TxHashMap<K, V>
1385
+ ): Effect.Effect<HashMap.HashMap<K, V>, never, Effect.Transaction> => TxRef.get(self.ref)
1355
1386
 
1356
1387
  /**
1357
1388
  * Merges another HashMap into this TxHashMap. If both maps contain the same key,
@@ -1448,7 +1479,7 @@ export const union: {
1448
1479
  * @since 2.0.0
1449
1480
  * @category combinators
1450
1481
  */
1451
- <K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1482
+ <K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1452
1483
  /**
1453
1484
  * Merges another HashMap into this TxHashMap. If both maps contain the same key,
1454
1485
  * the value from the other map will be used.
@@ -1496,11 +1527,13 @@ export const union: {
1496
1527
  * @since 2.0.0
1497
1528
  * @category combinators
1498
1529
  */
1499
- <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void>
1530
+ <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void, never, Effect.Transaction>
1500
1531
  } = dual(
1501
1532
  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))
1533
+ <K1 extends K, K, V1 extends V, V>(
1534
+ self: TxHashMap<K, V>,
1535
+ other: HashMap.HashMap<K1, V1>
1536
+ ): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.union(map, other))
1504
1537
  )
1505
1538
 
1506
1539
  /**
@@ -1588,7 +1621,7 @@ export const removeMany: {
1588
1621
  * @since 2.0.0
1589
1622
  * @category combinators
1590
1623
  */
1591
- <K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void>
1624
+ <K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1592
1625
  /**
1593
1626
  * Removes multiple keys from the TxHashMap.
1594
1627
  *
@@ -1631,10 +1664,10 @@ export const removeMany: {
1631
1664
  * @since 2.0.0
1632
1665
  * @category combinators
1633
1666
  */
1634
- <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void>
1667
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction>
1635
1668
  } = dual(
1636
1669
  2,
1637
- <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void> =>
1670
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction> =>
1638
1671
  TxRef.update(self.ref, (map) => HashMap.removeMany(map, keys))
1639
1672
  )
1640
1673
 
@@ -1753,7 +1786,7 @@ export const setMany: {
1753
1786
  * @since 2.0.0
1754
1787
  * @category combinators
1755
1788
  */
1756
- <K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void>
1789
+ <K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
1757
1790
  /**
1758
1791
  * Sets multiple key-value pairs in the TxHashMap.
1759
1792
  *
@@ -1811,13 +1844,13 @@ export const setMany: {
1811
1844
  * @since 2.0.0
1812
1845
  * @category combinators
1813
1846
  */
1814
- <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void>
1847
+ <K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void, never, Effect.Transaction>
1815
1848
  } = dual(
1816
1849
  2,
1817
1850
  <K1 extends K, K, V1 extends V, V>(
1818
1851
  self: TxHashMap<K, V>,
1819
1852
  entries: Iterable<readonly [K1, V1]>
1820
- ): Effect.Effect<void> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
1853
+ ): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
1821
1854
  )
1822
1855
 
1823
1856
  /**
@@ -1850,7 +1883,7 @@ export const setMany: {
1850
1883
  * @category guards
1851
1884
  */
1852
1885
  export const isTxHashMap = <K, V>(value: unknown): value is TxHashMap<K, V> => {
1853
- return typeof value === "object" && value !== null && TypeId in value
1886
+ return hasProperty(value, TypeId)
1854
1887
  }
1855
1888
 
1856
1889
  /**
@@ -1926,7 +1959,7 @@ export const getHash: {
1926
1959
  * @since 2.0.0
1927
1960
  * @category combinators
1928
1961
  */
1929
- <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>>
1962
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1930
1963
  /**
1931
1964
  * Lookup the value for the specified key in the TxHashMap using a custom hash.
1932
1965
  * This can provide performance benefits when the hash is precomputed.
@@ -1963,10 +1996,14 @@ export const getHash: {
1963
1996
  * @since 2.0.0
1964
1997
  * @category combinators
1965
1998
  */
1966
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>>
1999
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
1967
2000
  } = dual(
1968
2001
  3,
1969
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>> =>
2002
+ <K1 extends K, K, V>(
2003
+ self: TxHashMap<K, V>,
2004
+ key: K1,
2005
+ hash: number
2006
+ ): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
1970
2007
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.getHash(map, key, hash)))
1971
2008
  )
1972
2009
 
@@ -2061,7 +2098,7 @@ export const hasHash: {
2061
2098
  * @since 2.0.0
2062
2099
  * @category combinators
2063
2100
  */
2064
- <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
2101
+ <K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
2065
2102
  /**
2066
2103
  * Checks if the specified key has an entry in the TxHashMap using a custom hash.
2067
2104
  * This can provide performance benefits when the hash is precomputed.
@@ -2107,10 +2144,14 @@ export const hasHash: {
2107
2144
  * @since 2.0.0
2108
2145
  * @category combinators
2109
2146
  */
2110
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean>
2147
+ <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean, never, Effect.Transaction>
2111
2148
  } = dual(
2112
2149
  3,
2113
- <K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean> =>
2150
+ <K1 extends K, K, V>(
2151
+ self: TxHashMap<K, V>,
2152
+ key: K1,
2153
+ hash: number
2154
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
2114
2155
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasHash(map, key, hash)))
2115
2156
  )
2116
2157
 
@@ -2205,7 +2246,7 @@ export const map: {
2205
2246
  * @since 2.0.0
2206
2247
  * @category combinators
2207
2248
  */
2208
- <A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
2249
+ <A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2209
2250
  /**
2210
2251
  * Transforms all values in the TxHashMap using the provided function, preserving keys.
2211
2252
  *
@@ -2251,17 +2292,18 @@ export const map: {
2251
2292
  * @since 2.0.0
2252
2293
  * @category combinators
2253
2294
  */
2254
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>>
2295
+ <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2255
2296
  } = dual(
2256
2297
  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
- )
2298
+ <K, V, A>(
2299
+ self: TxHashMap<K, V>,
2300
+ f: (value: V, key: K) => A
2301
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
2302
+ Effect.gen(function*() {
2303
+ const currentMap = yield* TxRef.get(self.ref)
2304
+ const mappedMap = HashMap.map(currentMap, f)
2305
+ return yield* fromHashMap(mappedMap)
2306
+ })
2265
2307
  )
2266
2308
 
2267
2309
  /**
@@ -2361,7 +2403,7 @@ export const filter: {
2361
2403
  * @since 2.0.0
2362
2404
  * @category combinators
2363
2405
  */
2364
- <K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B>>
2406
+ <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
2407
  /**
2366
2408
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2367
2409
  *
@@ -2410,7 +2452,7 @@ export const filter: {
2410
2452
  * @since 2.0.0
2411
2453
  * @category combinators
2412
2454
  */
2413
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>>
2455
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
2414
2456
  /**
2415
2457
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2416
2458
  *
@@ -2459,7 +2501,7 @@ export const filter: {
2459
2501
  * @since 2.0.0
2460
2502
  * @category combinators
2461
2503
  */
2462
- <K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B>>
2504
+ <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
2505
  /**
2464
2506
  * Filters the TxHashMap to keep only entries that satisfy the provided predicate.
2465
2507
  *
@@ -2508,17 +2550,18 @@ export const filter: {
2508
2550
  * @since 2.0.0
2509
2551
  * @category combinators
2510
2552
  */
2511
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>>
2553
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
2512
2554
  } = dual(
2513
2555
  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
- )
2556
+ <K, V>(
2557
+ self: TxHashMap<K, V>,
2558
+ predicate: (value: V, key: K) => boolean
2559
+ ): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
2560
+ Effect.gen(function*() {
2561
+ const currentMap = yield* TxRef.get(self.ref)
2562
+ const filteredMap = HashMap.filter(currentMap, predicate)
2563
+ return yield* fromHashMap(filteredMap)
2564
+ })
2522
2565
  )
2523
2566
 
2524
2567
  /**
@@ -2630,7 +2673,7 @@ export const reduce: {
2630
2673
  * @since 2.0.0
2631
2674
  * @category combinators
2632
2675
  */
2633
- <A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A>
2676
+ <A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A, never, Effect.Transaction>
2634
2677
  /**
2635
2678
  * Reduces the TxHashMap entries to a single value by applying a reducer function.
2636
2679
  * Iterates over all key-value pairs and accumulates them into a final result.
@@ -2685,23 +2728,27 @@ export const reduce: {
2685
2728
  * @since 2.0.0
2686
2729
  * @category combinators
2687
2730
  */
2688
- <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A>
2731
+ <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A, never, Effect.Transaction>
2689
2732
  } = dual(
2690
2733
  3,
2691
- <K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A> =>
2734
+ <K, V, A>(
2735
+ self: TxHashMap<K, V>,
2736
+ zero: A,
2737
+ f: (accumulator: A, value: V, key: K) => A
2738
+ ): Effect.Effect<A, never, Effect.Transaction> =>
2692
2739
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.reduce(map, zero, f)))
2693
2740
  )
2694
2741
 
2695
2742
  /**
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.
2743
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2744
+ * entry, keeping only successful results and transforming them.
2698
2745
  *
2699
2746
  * **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.
2747
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2701
2748
  *
2702
2749
  * @example
2703
2750
  * ```ts
2704
- * import { Effect, Option, TxHashMap } from "effect"
2751
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2705
2752
  *
2706
2753
  * const program = Effect.gen(function*() {
2707
2754
  * // Create a mixed data map
@@ -2716,10 +2763,10 @@ export const reduce: {
2716
2763
  * const activeAdminAges = yield* TxHashMap.filterMap(
2717
2764
  * userData,
2718
2765
  * (user, username) => {
2719
- * if (!user.active || user.role !== "admin") return Option.none()
2766
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2720
2767
  * const age = parseInt(user.age)
2721
- * if (isNaN(age)) return Option.none()
2722
- * return Option.some({
2768
+ * if (isNaN(age)) return Result.failVoid
2769
+ * return Result.succeed({
2723
2770
  * username,
2724
2771
  * age,
2725
2772
  * seniority: age > 27 ? "senior" : "junior"
@@ -2737,7 +2784,7 @@ export const reduce: {
2737
2784
  * const validAges = yield* userData.pipe(
2738
2785
  * TxHashMap.filterMap((user) => {
2739
2786
  * const age = parseInt(user.age)
2740
- * return isNaN(age) ? Option.none() : Option.some(age)
2787
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2741
2788
  * })
2742
2789
  * )
2743
2790
  *
@@ -2751,15 +2798,15 @@ export const reduce: {
2751
2798
  */
2752
2799
  export const filterMap: {
2753
2800
  /**
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.
2801
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2802
+ * entry, keeping only successful results and transforming them.
2756
2803
  *
2757
2804
  * **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.
2805
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2759
2806
  *
2760
2807
  * @example
2761
2808
  * ```ts
2762
- * import { Effect, Option, TxHashMap } from "effect"
2809
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2763
2810
  *
2764
2811
  * const program = Effect.gen(function*() {
2765
2812
  * // Create a mixed data map
@@ -2774,10 +2821,10 @@ export const filterMap: {
2774
2821
  * const activeAdminAges = yield* TxHashMap.filterMap(
2775
2822
  * userData,
2776
2823
  * (user, username) => {
2777
- * if (!user.active || user.role !== "admin") return Option.none()
2824
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2778
2825
  * const age = parseInt(user.age)
2779
- * if (isNaN(age)) return Option.none()
2780
- * return Option.some({
2826
+ * if (isNaN(age)) return Result.failVoid
2827
+ * return Result.succeed({
2781
2828
  * username,
2782
2829
  * age,
2783
2830
  * seniority: age > 27 ? "senior" : "junior"
@@ -2795,7 +2842,7 @@ export const filterMap: {
2795
2842
  * const validAges = yield* userData.pipe(
2796
2843
  * TxHashMap.filterMap((user) => {
2797
2844
  * const age = parseInt(user.age)
2798
- * return isNaN(age) ? Option.none() : Option.some(age)
2845
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2799
2846
  * })
2800
2847
  * )
2801
2848
  *
@@ -2807,17 +2854,17 @@ export const filterMap: {
2807
2854
  * @since 2.0.0
2808
2855
  * @category combinators
2809
2856
  */
2810
- <A, V, K>(f: (value: V, key: K) => Option.Option<A>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
2857
+ <V, K, A, X>(f: (input: V, key: K) => Result<A, X>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2811
2858
  /**
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.
2859
+ * Combines filtering and mapping in a single operation. Applies a filter to each
2860
+ * entry, keeping only successful results and transforming them.
2814
2861
  *
2815
2862
  * **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.
2863
+ * only the transformed entries that succeeded. The original TxHashMap is not modified.
2817
2864
  *
2818
2865
  * @example
2819
2866
  * ```ts
2820
- * import { Effect, Option, TxHashMap } from "effect"
2867
+ * import { Effect, Option, Result, TxHashMap } from "effect"
2821
2868
  *
2822
2869
  * const program = Effect.gen(function*() {
2823
2870
  * // Create a mixed data map
@@ -2832,10 +2879,10 @@ export const filterMap: {
2832
2879
  * const activeAdminAges = yield* TxHashMap.filterMap(
2833
2880
  * userData,
2834
2881
  * (user, username) => {
2835
- * if (!user.active || user.role !== "admin") return Option.none()
2882
+ * if (!user.active || user.role !== "admin") return Result.failVoid
2836
2883
  * const age = parseInt(user.age)
2837
- * if (isNaN(age)) return Option.none()
2838
- * return Option.some({
2884
+ * if (isNaN(age)) return Result.failVoid
2885
+ * return Result.succeed({
2839
2886
  * username,
2840
2887
  * age,
2841
2888
  * seniority: age > 27 ? "senior" : "junior"
@@ -2853,7 +2900,7 @@ export const filterMap: {
2853
2900
  * const validAges = yield* userData.pipe(
2854
2901
  * TxHashMap.filterMap((user) => {
2855
2902
  * const age = parseInt(user.age)
2856
- * return isNaN(age) ? Option.none() : Option.some(age)
2903
+ * return isNaN(age) ? Result.failVoid : Result.succeed(age)
2857
2904
  * })
2858
2905
  * )
2859
2906
  *
@@ -2865,17 +2912,18 @@ export const filterMap: {
2865
2912
  * @since 2.0.0
2866
2913
  * @category combinators
2867
2914
  */
2868
- <K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => Option.Option<A>): Effect.Effect<TxHashMap<K, A>>
2915
+ <K, V, A, X>(self: TxHashMap<K, V>, f: (input: V, key: K) => Result<A, X>): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
2869
2916
  } = dual(
2870
2917
  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
- )
2918
+ <K, V, A, X>(
2919
+ self: TxHashMap<K, V>,
2920
+ f: (input: V, key: K) => Result<A, X>
2921
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
2922
+ Effect.gen(function*() {
2923
+ const currentMap = yield* TxRef.get(self.ref)
2924
+ const filteredMap = HashMap.filterMap(currentMap, f)
2925
+ return yield* fromHashMap(filteredMap)
2926
+ })
2879
2927
  )
2880
2928
 
2881
2929
  /**
@@ -2959,7 +3007,7 @@ export const hasBy: {
2959
3007
  * @since 2.0.0
2960
3008
  * @category combinators
2961
3009
  */
2962
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
3010
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
2963
3011
  /**
2964
3012
  * Checks if any entry in the TxHashMap matches the given predicate.
2965
3013
  *
@@ -3000,10 +3048,13 @@ export const hasBy: {
3000
3048
  * @since 2.0.0
3001
3049
  * @category combinators
3002
3050
  */
3003
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3051
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3004
3052
  } = dual(
3005
3053
  2,
3006
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3054
+ <K, V>(
3055
+ self: TxHashMap<K, V>,
3056
+ predicate: (value: V, key: K) => boolean
3057
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3007
3058
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasBy(map, predicate)))
3008
3059
  )
3009
3060
 
@@ -3029,8 +3080,8 @@ export const hasBy: {
3029
3080
  * (task) => task.priority >= 2 && !task.completed
3030
3081
  * )
3031
3082
  *
3032
- * if (highPriorityTask) {
3033
- * const [taskId, task] = highPriorityTask
3083
+ * if (highPriorityTask._tag === "Some") {
3084
+ * const [taskId, task] = highPriorityTask.value
3034
3085
  * console.log(`Found task: ${taskId}, priority: ${task.priority}`)
3035
3086
  * // "Found task: task3, priority: 2"
3036
3087
  * }
@@ -3040,8 +3091,8 @@ export const hasBy: {
3040
3091
  * TxHashMap.findFirst((task) => task.assignee === "alice")
3041
3092
  * )
3042
3093
  *
3043
- * if (aliceTask) {
3044
- * console.log(`Alice's task: ${aliceTask[0]}`)
3094
+ * if (aliceTask._tag === "Some") {
3095
+ * console.log(`Alice's task: ${aliceTask.value[0]}`)
3045
3096
  * }
3046
3097
  * })
3047
3098
  * ```
@@ -3072,8 +3123,8 @@ export const findFirst: {
3072
3123
  * (task) => task.priority >= 2 && !task.completed
3073
3124
  * )
3074
3125
  *
3075
- * if (highPriorityTask) {
3076
- * const [taskId, task] = highPriorityTask
3126
+ * if (highPriorityTask._tag === "Some") {
3127
+ * const [taskId, task] = highPriorityTask.value
3077
3128
  * console.log(`Found task: ${taskId}, priority: ${task.priority}`)
3078
3129
  * // "Found task: task3, priority: 2"
3079
3130
  * }
@@ -3083,8 +3134,8 @@ export const findFirst: {
3083
3134
  * TxHashMap.findFirst((task) => task.assignee === "alice")
3084
3135
  * )
3085
3136
  *
3086
- * if (aliceTask) {
3087
- * console.log(`Alice's task: ${aliceTask[0]}`)
3137
+ * if (aliceTask._tag === "Some") {
3138
+ * console.log(`Alice's task: ${aliceTask.value[0]}`)
3088
3139
  * }
3089
3140
  * })
3090
3141
  * ```
@@ -3092,7 +3143,7 @@ export const findFirst: {
3092
3143
  * @since 2.0.0
3093
3144
  * @category combinators
3094
3145
  */
3095
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V] | undefined>
3146
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction>
3096
3147
  /**
3097
3148
  * Finds the first entry in the TxHashMap that matches the given predicate.
3098
3149
  * Returns the key-value pair as a tuple wrapped in an Option.
@@ -3115,8 +3166,8 @@ export const findFirst: {
3115
3166
  * (task) => task.priority >= 2 && !task.completed
3116
3167
  * )
3117
3168
  *
3118
- * if (highPriorityTask) {
3119
- * const [taskId, task] = highPriorityTask
3169
+ * if (highPriorityTask._tag === "Some") {
3170
+ * const [taskId, task] = highPriorityTask.value
3120
3171
  * console.log(`Found task: ${taskId}, priority: ${task.priority}`)
3121
3172
  * // "Found task: task3, priority: 2"
3122
3173
  * }
@@ -3126,8 +3177,8 @@ export const findFirst: {
3126
3177
  * TxHashMap.findFirst((task) => task.assignee === "alice")
3127
3178
  * )
3128
3179
  *
3129
- * if (aliceTask) {
3130
- * console.log(`Alice's task: ${aliceTask[0]}`)
3180
+ * if (aliceTask._tag === "Some") {
3181
+ * console.log(`Alice's task: ${aliceTask.value[0]}`)
3131
3182
  * }
3132
3183
  * })
3133
3184
  * ```
@@ -3135,10 +3186,13 @@ export const findFirst: {
3135
3186
  * @since 2.0.0
3136
3187
  * @category combinators
3137
3188
  */
3138
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined>
3189
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction>
3139
3190
  } = dual(
3140
3191
  2,
3141
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V] | undefined> =>
3192
+ <K, V>(
3193
+ self: TxHashMap<K, V>,
3194
+ predicate: (value: V, key: K) => boolean
3195
+ ): Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction> =>
3142
3196
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.findFirst(map, predicate)))
3143
3197
  )
3144
3198
 
@@ -3223,7 +3277,7 @@ export const some: {
3223
3277
  * @since 2.0.0
3224
3278
  * @category combinators
3225
3279
  */
3226
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
3280
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
3227
3281
  /**
3228
3282
  * Checks if at least one entry in the TxHashMap satisfies the given predicate.
3229
3283
  *
@@ -3264,10 +3318,13 @@ export const some: {
3264
3318
  * @since 2.0.0
3265
3319
  * @category combinators
3266
3320
  */
3267
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3321
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3268
3322
  } = dual(
3269
3323
  2,
3270
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3324
+ <K, V>(
3325
+ self: TxHashMap<K, V>,
3326
+ predicate: (value: V, key: K) => boolean
3327
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3271
3328
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.some(map, predicate)))
3272
3329
  )
3273
3330
 
@@ -3352,7 +3409,7 @@ export const every: {
3352
3409
  * @since 2.0.0
3353
3410
  * @category combinators
3354
3411
  */
3355
- <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
3412
+ <K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
3356
3413
  /**
3357
3414
  * Checks if all entries in the TxHashMap satisfy the given predicate.
3358
3415
  *
@@ -3393,10 +3450,13 @@ export const every: {
3393
3450
  * @since 2.0.0
3394
3451
  * @category combinators
3395
3452
  */
3396
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
3453
+ <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
3397
3454
  } = dual(
3398
3455
  2,
3399
- <K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean> =>
3456
+ <K, V>(
3457
+ self: TxHashMap<K, V>,
3458
+ predicate: (value: V, key: K) => boolean
3459
+ ): Effect.Effect<boolean, never, Effect.Transaction> =>
3400
3460
  TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.every(map, predicate)))
3401
3461
  )
3402
3462
 
@@ -3483,7 +3543,7 @@ export const forEach: {
3483
3543
  * @since 2.0.0
3484
3544
  * @category combinators
3485
3545
  */
3486
- <V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R>
3546
+ <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
3547
  /**
3488
3548
  * Executes a side-effect function for each entry in the TxHashMap.
3489
3549
  * The function receives the value and key as parameters and can perform effects.
@@ -3525,10 +3585,13 @@ export const forEach: {
3525
3585
  * @since 2.0.0
3526
3586
  * @category combinators
3527
3587
  */
3528
- <K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R>
3588
+ <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
3589
  } = dual(
3530
3590
  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> =>
3591
+ <K, V, R, E>(
3592
+ self: TxHashMap<K, V>,
3593
+ f: (value: V, key: K) => Effect.Effect<void, E, R>
3594
+ ): Effect.Effect<void, E, R | Effect.Transaction> =>
3532
3595
  Effect.gen(function*() {
3533
3596
  const currentMap = yield* TxRef.get(self.ref)
3534
3597
  const entries = HashMap.toEntries(currentMap)
@@ -3639,7 +3702,9 @@ export const flatMap: {
3639
3702
  * @since 2.0.0
3640
3703
  * @category combinators
3641
3704
  */
3642
- <A, V, K>(f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>>
3705
+ <A, V, K>(
3706
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3707
+ ): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3643
3708
  /**
3644
3709
  * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3645
3710
  * then flattening the results. Useful for complex transformations that require creating new maps.
@@ -3693,131 +3758,129 @@ export const flatMap: {
3693
3758
  */
3694
3759
  <K, V, A>(
3695
3760
  self: TxHashMap<K, V>,
3696
- f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>>
3697
- ): Effect.Effect<TxHashMap<K, A>>
3761
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3762
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3698
3763
  } = dual(
3699
3764
  2,
3700
3765
  <K, V, A>(
3701
3766
  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>()
3767
+ f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
3768
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
3769
+ Effect.gen(function*() {
3770
+ const currentMap = yield* TxRef.get(self.ref)
3771
+ const result = yield* empty</**
3772
+ * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3773
+ * then flattening the results. Useful for complex transformations that require creating new maps.
3774
+ *
3775
+ * **Return behavior**: This function returns a new TxHashMap reference with the
3776
+ * flattened results. The original TxHashMap is not modified.
3777
+ *
3778
+ * @example
3779
+ * ```ts
3780
+ * import { Effect, TxHashMap } from "effect"
3781
+ *
3782
+ * const program = Effect.gen(function*() {
3783
+ * // Create a department-employee map
3784
+ * const departments = yield* TxHashMap.make(
3785
+ * ["engineering", ["alice", "bob"]],
3786
+ * ["marketing", ["charlie", "diana"]]
3787
+ * )
3788
+ *
3789
+ * // Expand each department into individual employee entries with metadata
3790
+ * const employeeDetails = yield* TxHashMap.flatMap(
3791
+ * departments,
3792
+ * (employees, department) =>
3793
+ * Effect.gen(function*() {
3794
+ * const employeeMap = yield* TxHashMap.empty<
3795
+ * string,
3796
+ * { department: string; role: string }
3797
+ * >()
3798
+ * for (let i = 0; i < employees.length; i++) {
3799
+ * const employee = employees[i]
3800
+ * const role = i === 0 ? "lead" : "member"
3801
+ * yield* TxHashMap.set(employeeMap, employee, { department, role })
3802
+ * }
3803
+ * return employeeMap
3804
+ * })
3805
+ * )
3806
+ *
3807
+ * // Check the flattened result
3808
+ * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3809
+ * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3810
+ *
3811
+ * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3812
+ * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3813
+ *
3814
+ * const size = yield* TxHashMap.size(employeeDetails)
3815
+ * console.log(size) // 4 (all employees)
3816
+ * })
3817
+ * ```
3818
+ *
3819
+ * @since 2.0.0
3820
+ * @category combinators
3821
+ */
3822
+ K, /**
3823
+ * Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
3824
+ * then flattening the results. Useful for complex transformations that require creating new maps.
3825
+ *
3826
+ * **Return behavior**: This function returns a new TxHashMap reference with the
3827
+ * flattened results. The original TxHashMap is not modified.
3828
+ *
3829
+ * @example
3830
+ * ```ts
3831
+ * import { Effect, TxHashMap } from "effect"
3832
+ *
3833
+ * const program = Effect.gen(function*() {
3834
+ * // Create a department-employee map
3835
+ * const departments = yield* TxHashMap.make(
3836
+ * ["engineering", ["alice", "bob"]],
3837
+ * ["marketing", ["charlie", "diana"]]
3838
+ * )
3839
+ *
3840
+ * // Expand each department into individual employee entries with metadata
3841
+ * const employeeDetails = yield* TxHashMap.flatMap(
3842
+ * departments,
3843
+ * (employees, department) =>
3844
+ * Effect.gen(function*() {
3845
+ * const employeeMap = yield* TxHashMap.empty<
3846
+ * string,
3847
+ * { department: string; role: string }
3848
+ * >()
3849
+ * for (let i = 0; i < employees.length; i++) {
3850
+ * const employee = employees[i]
3851
+ * const role = i === 0 ? "lead" : "member"
3852
+ * yield* TxHashMap.set(employeeMap, employee, { department, role })
3853
+ * }
3854
+ * return employeeMap
3855
+ * })
3856
+ * )
3857
+ *
3858
+ * // Check the flattened result
3859
+ * const alice = yield* TxHashMap.get(employeeDetails, "alice")
3860
+ * console.log(alice) // Option.some({ department: "engineering", role: "lead" })
3861
+ *
3862
+ * const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
3863
+ * console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
3864
+ *
3865
+ * const size = yield* TxHashMap.size(employeeDetails)
3866
+ * console.log(size) // 4 (all employees)
3867
+ * })
3868
+ * ```
3869
+ *
3870
+ * @since 2.0.0
3871
+ * @category combinators
3872
+ */
3873
+ A>()
3810
3874
 
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
- }
3875
+ const mapEntries = HashMap.toEntries(currentMap)
3876
+ for (const [key, value] of mapEntries) {
3877
+ const newMap = yield* f(value, key)
3878
+ const newEntries = yield* entries(newMap)
3879
+ yield* setMany(result, newEntries)
3880
+ }
3817
3881
 
3818
- return result
3819
- })
3820
- )
3882
+ return result
3883
+ })
3821
3884
  )
3822
3885
 
3823
3886
  /**
@@ -3865,14 +3928,14 @@ export const flatMap: {
3865
3928
  * @since 2.0.0
3866
3929
  * @category combinators
3867
3930
  */
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
- )
3931
+ export const compact = <K, A>(
3932
+ self: TxHashMap<K, Option.Option<A>>
3933
+ ): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
3934
+ Effect.gen(function*() {
3935
+ const currentMap = yield* TxRef.get(self.ref)
3936
+ const compactedMap = HashMap.compact(currentMap)
3937
+ return yield* fromHashMap(compactedMap)
3938
+ })
3876
3939
 
3877
3940
  /**
3878
3941
  * Returns an array of all key-value pairs in the TxHashMap.
@@ -3908,7 +3971,9 @@ export const compact = <K, A>(self: TxHashMap<K, Option.Option<A>>): Effect.Effe
3908
3971
  * @since 2.0.0
3909
3972
  * @category combinators
3910
3973
  */
3911
- export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readonly [K, V]>> => entries(self)
3974
+ export const toEntries = <K, V>(
3975
+ self: TxHashMap<K, V>
3976
+ ): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> => entries(self)
3912
3977
 
3913
3978
  /**
3914
3979
  * Returns an array of all values in the TxHashMap.
@@ -3946,12 +4011,13 @@ export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<read
3946
4011
  * @since 2.0.0
3947
4012
  * @category combinators
3948
4013
  */
3949
- export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> => values(self)
4014
+ export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
4015
+ values(self)
3950
4016
 
3951
4017
  /**
3952
4018
  * Helper function to create a TxHashMap from an existing HashMap
3953
4019
  */
3954
- const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>> =>
4020
+ const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
3955
4021
  Effect.gen(function*() {
3956
4022
  const ref = yield* TxRef.make(hashMap)
3957
4023
  return Object.assign(Object.create(TxHashMapProto), { ref })