effect 4.0.0-beta.4 → 4.0.0-beta.41

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 (1235) 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 +82 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +87 -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 +1225 -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 +93 -48
  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.d.ts.map +1 -1
  151. package/dist/ManagedRuntime.js +21 -9
  152. package/dist/ManagedRuntime.js.map +1 -1
  153. package/dist/Metric.d.ts +4 -6
  154. package/dist/Metric.d.ts.map +1 -1
  155. package/dist/Metric.js +3 -5
  156. package/dist/Metric.js.map +1 -1
  157. package/dist/MutableHashMap.d.ts +7 -0
  158. package/dist/MutableHashMap.d.ts.map +1 -1
  159. package/dist/MutableHashMap.js +8 -0
  160. package/dist/MutableHashMap.js.map +1 -1
  161. package/dist/MutableHashSet.d.ts +7 -0
  162. package/dist/MutableHashSet.d.ts.map +1 -1
  163. package/dist/MutableHashSet.js +8 -0
  164. package/dist/MutableHashSet.js.map +1 -1
  165. package/dist/Newtype.d.ts +291 -0
  166. package/dist/Newtype.d.ts.map +1 -0
  167. package/dist/Newtype.js +161 -0
  168. package/dist/Newtype.js.map +1 -0
  169. package/dist/Number.d.ts +74 -18
  170. package/dist/Number.d.ts.map +1 -1
  171. package/dist/Number.js +34 -15
  172. package/dist/Number.js.map +1 -1
  173. package/dist/Optic.d.ts +947 -18
  174. package/dist/Optic.d.ts.map +1 -1
  175. package/dist/Optic.js +454 -5
  176. package/dist/Optic.js.map +1 -1
  177. package/dist/Option.d.ts +25 -16
  178. package/dist/Option.d.ts.map +1 -1
  179. package/dist/Option.js +15 -9
  180. package/dist/Option.js.map +1 -1
  181. package/dist/Order.d.ts +6 -1
  182. package/dist/Order.d.ts.map +1 -1
  183. package/dist/Order.js +19 -14
  184. package/dist/Order.js.map +1 -1
  185. package/dist/PartitionedSemaphore.d.ts +146 -15
  186. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  187. package/dist/PartitionedSemaphore.js +174 -61
  188. package/dist/PartitionedSemaphore.js.map +1 -1
  189. package/dist/Pipeable.d.ts +17 -0
  190. package/dist/Pipeable.d.ts.map +1 -1
  191. package/dist/Pipeable.js +19 -1
  192. package/dist/Pipeable.js.map +1 -1
  193. package/dist/PlatformError.d.ts +10 -9
  194. package/dist/PlatformError.d.ts.map +1 -1
  195. package/dist/PlatformError.js +2 -2
  196. package/dist/PlatformError.js.map +1 -1
  197. package/dist/Pool.d.ts +6 -4
  198. package/dist/Pool.d.ts.map +1 -1
  199. package/dist/Pool.js +7 -5
  200. package/dist/Pool.js.map +1 -1
  201. package/dist/PubSub.d.ts +8 -6
  202. package/dist/PubSub.d.ts.map +1 -1
  203. package/dist/PubSub.js +18 -10
  204. package/dist/PubSub.js.map +1 -1
  205. package/dist/Pull.d.ts.map +1 -1
  206. package/dist/Pull.js +1 -1
  207. package/dist/Pull.js.map +1 -1
  208. package/dist/Queue.d.ts +9 -6
  209. package/dist/Queue.d.ts.map +1 -1
  210. package/dist/Queue.js +7 -5
  211. package/dist/Queue.js.map +1 -1
  212. package/dist/Random.d.ts +35 -1
  213. package/dist/Random.d.ts.map +1 -1
  214. package/dist/Random.js +46 -12
  215. package/dist/Random.js.map +1 -1
  216. package/dist/RcMap.d.ts +2 -2
  217. package/dist/RcMap.d.ts.map +1 -1
  218. package/dist/RcMap.js +1 -1
  219. package/dist/RcMap.js.map +1 -1
  220. package/dist/RcRef.d.ts +1 -1
  221. package/dist/RcRef.d.ts.map +1 -1
  222. package/dist/Record.d.ts +63 -160
  223. package/dist/Record.d.ts.map +1 -1
  224. package/dist/Record.js +37 -56
  225. package/dist/Record.js.map +1 -1
  226. package/dist/Reducer.d.ts +166 -7
  227. package/dist/Reducer.d.ts.map +1 -1
  228. package/dist/Reducer.js +135 -1
  229. package/dist/Reducer.js.map +1 -1
  230. package/dist/References.d.ts +242 -226
  231. package/dist/References.d.ts.map +1 -1
  232. package/dist/References.js +240 -247
  233. package/dist/References.js.map +1 -1
  234. package/dist/Request.d.ts +1 -1
  235. package/dist/Request.d.ts.map +1 -1
  236. package/dist/Request.js +2 -1
  237. package/dist/Request.js.map +1 -1
  238. package/dist/RequestResolver.d.ts +25 -45
  239. package/dist/RequestResolver.d.ts.map +1 -1
  240. package/dist/RequestResolver.js +10 -30
  241. package/dist/RequestResolver.js.map +1 -1
  242. package/dist/Resource.d.ts.map +1 -1
  243. package/dist/Resource.js +2 -1
  244. package/dist/Resource.js.map +1 -1
  245. package/dist/Result.d.ts +1 -1
  246. package/dist/Result.d.ts.map +1 -1
  247. package/dist/Result.js +1 -2
  248. package/dist/Result.js.map +1 -1
  249. package/dist/Runtime.d.ts +66 -0
  250. package/dist/Runtime.d.ts.map +1 -1
  251. package/dist/Runtime.js +79 -6
  252. package/dist/Runtime.js.map +1 -1
  253. package/dist/Schedule.d.ts +174 -291
  254. package/dist/Schedule.d.ts.map +1 -1
  255. package/dist/Schedule.js +160 -134
  256. package/dist/Schedule.js.map +1 -1
  257. package/dist/Scheduler.d.ts +34 -123
  258. package/dist/Scheduler.d.ts.map +1 -1
  259. package/dist/Scheduler.js +31 -123
  260. package/dist/Scheduler.js.map +1 -1
  261. package/dist/Schema.d.ts +2722 -247
  262. package/dist/Schema.d.ts.map +1 -1
  263. package/dist/Schema.js +1947 -224
  264. package/dist/Schema.js.map +1 -1
  265. package/dist/SchemaAST.d.ts +7 -2
  266. package/dist/SchemaAST.d.ts.map +1 -1
  267. package/dist/SchemaAST.js +131 -25
  268. package/dist/SchemaAST.js.map +1 -1
  269. package/dist/SchemaGetter.d.ts +5 -5
  270. package/dist/SchemaGetter.d.ts.map +1 -1
  271. package/dist/SchemaGetter.js +18 -18
  272. package/dist/SchemaGetter.js.map +1 -1
  273. package/dist/SchemaParser.d.ts +44 -54
  274. package/dist/SchemaParser.d.ts.map +1 -1
  275. package/dist/SchemaParser.js +55 -2
  276. package/dist/SchemaParser.js.map +1 -1
  277. package/dist/SchemaRepresentation.d.ts +46 -45
  278. package/dist/SchemaRepresentation.d.ts.map +1 -1
  279. package/dist/SchemaRepresentation.js +49 -24
  280. package/dist/SchemaRepresentation.js.map +1 -1
  281. package/dist/SchemaTransformation.d.ts +107 -3
  282. package/dist/SchemaTransformation.d.ts.map +1 -1
  283. package/dist/SchemaTransformation.js +173 -13
  284. package/dist/SchemaTransformation.js.map +1 -1
  285. package/dist/ScopedCache.d.ts +2 -2
  286. package/dist/ScopedCache.d.ts.map +1 -1
  287. package/dist/ScopedCache.js +1 -1
  288. package/dist/ScopedCache.js.map +1 -1
  289. package/dist/Semaphore.d.ts +307 -0
  290. package/dist/Semaphore.d.ts.map +1 -0
  291. package/dist/Semaphore.js +222 -0
  292. package/dist/Semaphore.js.map +1 -0
  293. package/dist/ServiceMap.d.ts +76 -52
  294. package/dist/ServiceMap.d.ts.map +1 -1
  295. package/dist/ServiceMap.js +45 -29
  296. package/dist/ServiceMap.js.map +1 -1
  297. package/dist/Sink.d.ts +18 -15
  298. package/dist/Sink.d.ts.map +1 -1
  299. package/dist/Sink.js +53 -6
  300. package/dist/Sink.js.map +1 -1
  301. package/dist/Stdio.d.ts +16 -4
  302. package/dist/Stdio.d.ts.map +1 -1
  303. package/dist/Stdio.js +18 -0
  304. package/dist/Stdio.js.map +1 -1
  305. package/dist/Stream.d.ts +284 -431
  306. package/dist/Stream.d.ts.map +1 -1
  307. package/dist/Stream.js +189 -88
  308. package/dist/Stream.js.map +1 -1
  309. package/dist/String.d.ts +114 -47
  310. package/dist/String.d.ts.map +1 -1
  311. package/dist/String.js +29 -47
  312. package/dist/String.js.map +1 -1
  313. package/dist/Struct.d.ts +23 -7
  314. package/dist/Struct.d.ts.map +1 -1
  315. package/dist/Struct.js +22 -0
  316. package/dist/Struct.js.map +1 -1
  317. package/dist/SubscriptionRef.d.ts +3 -3
  318. package/dist/SubscriptionRef.d.ts.map +1 -1
  319. package/dist/SubscriptionRef.js +85 -117
  320. package/dist/SubscriptionRef.js.map +1 -1
  321. package/dist/SynchronizedRef.d.ts +2 -1
  322. package/dist/SynchronizedRef.d.ts.map +1 -1
  323. package/dist/SynchronizedRef.js +2 -1
  324. package/dist/SynchronizedRef.js.map +1 -1
  325. package/dist/Terminal.d.ts +2 -1
  326. package/dist/Terminal.d.ts.map +1 -1
  327. package/dist/Terminal.js.map +1 -1
  328. package/dist/Tracer.d.ts +5 -4
  329. package/dist/Tracer.d.ts.map +1 -1
  330. package/dist/Tracer.js +2 -1
  331. package/dist/Tracer.js.map +1 -1
  332. package/dist/Trie.d.ts +44 -31
  333. package/dist/Trie.d.ts.map +1 -1
  334. package/dist/Trie.js +13 -9
  335. package/dist/Trie.js.map +1 -1
  336. package/dist/TxChunk.d.ts +37 -37
  337. package/dist/TxChunk.d.ts.map +1 -1
  338. package/dist/TxChunk.js +3 -3
  339. package/dist/TxChunk.js.map +1 -1
  340. package/dist/TxDeferred.d.ts +328 -0
  341. package/dist/TxDeferred.d.ts.map +1 -0
  342. package/dist/TxDeferred.js +197 -0
  343. package/dist/TxDeferred.js.map +1 -0
  344. package/dist/TxHashMap.d.ts +159 -140
  345. package/dist/TxHashMap.d.ts.map +1 -1
  346. package/dist/TxHashMap.js +51 -44
  347. package/dist/TxHashMap.js.map +1 -1
  348. package/dist/TxHashSet.d.ts +36 -36
  349. package/dist/TxHashSet.d.ts.map +1 -1
  350. package/dist/TxHashSet.js +16 -15
  351. package/dist/TxHashSet.js.map +1 -1
  352. package/dist/TxPriorityQueue.d.ts +609 -0
  353. package/dist/TxPriorityQueue.d.ts.map +1 -0
  354. package/dist/TxPriorityQueue.js +416 -0
  355. package/dist/TxPriorityQueue.js.map +1 -0
  356. package/dist/TxPubSub.d.ts +585 -0
  357. package/dist/TxPubSub.d.ts.map +1 -0
  358. package/dist/TxPubSub.js +521 -0
  359. package/dist/TxPubSub.js.map +1 -0
  360. package/dist/TxQueue.d.ts +32 -32
  361. package/dist/TxQueue.d.ts.map +1 -1
  362. package/dist/TxQueue.js +26 -26
  363. package/dist/TxQueue.js.map +1 -1
  364. package/dist/TxReentrantLock.d.ts +523 -0
  365. package/dist/TxReentrantLock.d.ts.map +1 -0
  366. package/dist/TxReentrantLock.js +504 -0
  367. package/dist/TxReentrantLock.js.map +1 -0
  368. package/dist/TxRef.d.ts +34 -34
  369. package/dist/TxRef.d.ts.map +1 -1
  370. package/dist/TxRef.js +21 -14
  371. package/dist/TxRef.js.map +1 -1
  372. package/dist/TxSemaphore.d.ts +170 -10
  373. package/dist/TxSemaphore.d.ts.map +1 -1
  374. package/dist/TxSemaphore.js +23 -8
  375. package/dist/TxSemaphore.js.map +1 -1
  376. package/dist/TxSubscriptionRef.d.ts +508 -0
  377. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  378. package/dist/TxSubscriptionRef.js +293 -0
  379. package/dist/TxSubscriptionRef.js.map +1 -0
  380. package/dist/Types.d.ts +80 -23
  381. package/dist/Types.d.ts.map +1 -1
  382. package/dist/Utils.d.ts +137 -65
  383. package/dist/Utils.d.ts.map +1 -1
  384. package/dist/Utils.js +38 -66
  385. package/dist/Utils.js.map +1 -1
  386. package/dist/index.d.ts +806 -55
  387. package/dist/index.d.ts.map +1 -1
  388. package/dist/index.js +806 -55
  389. package/dist/index.js.map +1 -1
  390. package/dist/internal/core.js +11 -3
  391. package/dist/internal/core.js.map +1 -1
  392. package/dist/internal/dateTime.js +77 -71
  393. package/dist/internal/dateTime.js.map +1 -1
  394. package/dist/internal/effect.js +284 -201
  395. package/dist/internal/effect.js.map +1 -1
  396. package/dist/internal/hashMap.js +7 -5
  397. package/dist/internal/hashMap.js.map +1 -1
  398. package/dist/internal/option.js +6 -0
  399. package/dist/internal/option.js.map +1 -1
  400. package/dist/internal/random.d.ts +2 -0
  401. package/dist/internal/random.d.ts.map +1 -0
  402. package/dist/internal/random.js +13 -0
  403. package/dist/internal/random.js.map +1 -0
  404. package/dist/internal/rcRef.js +3 -2
  405. package/dist/internal/rcRef.js.map +1 -1
  406. package/dist/internal/references.d.ts +2 -0
  407. package/dist/internal/references.d.ts.map +1 -0
  408. package/dist/internal/references.js +51 -0
  409. package/dist/internal/references.js.map +1 -0
  410. package/dist/internal/request.js +2 -2
  411. package/dist/internal/request.js.map +1 -1
  412. package/dist/internal/schema/annotations.js +2 -0
  413. package/dist/internal/schema/annotations.js.map +1 -1
  414. package/dist/internal/schema/representation.js +75 -106
  415. package/dist/internal/schema/representation.js.map +1 -1
  416. package/dist/internal/schema/schema.js +1 -0
  417. package/dist/internal/schema/schema.js.map +1 -1
  418. package/dist/internal/schema/to-codec.js +7 -10
  419. package/dist/internal/schema/to-codec.js.map +1 -1
  420. package/dist/internal/trie.js +8 -7
  421. package/dist/internal/trie.js.map +1 -1
  422. package/dist/testing/TestClock.d.ts +8 -7
  423. package/dist/testing/TestClock.d.ts.map +1 -1
  424. package/dist/testing/TestClock.js +6 -4
  425. package/dist/testing/TestClock.js.map +1 -1
  426. package/dist/testing/TestSchema.d.ts +266 -32
  427. package/dist/testing/TestSchema.d.ts.map +1 -1
  428. package/dist/testing/TestSchema.js +296 -23
  429. package/dist/testing/TestSchema.js.map +1 -1
  430. package/dist/testing/index.d.ts +64 -1
  431. package/dist/testing/index.d.ts.map +1 -1
  432. package/dist/testing/index.js +64 -1
  433. package/dist/testing/index.js.map +1 -1
  434. package/dist/unstable/ai/AiError.d.ts +136 -54
  435. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  436. package/dist/unstable/ai/AiError.js +28 -23
  437. package/dist/unstable/ai/AiError.js.map +1 -1
  438. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  439. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  440. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  441. package/dist/unstable/ai/Chat.d.ts +35 -7
  442. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  443. package/dist/unstable/ai/Chat.js +38 -44
  444. package/dist/unstable/ai/Chat.js.map +1 -1
  445. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  446. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  447. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  448. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  449. package/dist/unstable/ai/LanguageModel.d.ts +117 -47
  450. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  451. package/dist/unstable/ai/LanguageModel.js +258 -59
  452. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  453. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  454. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  455. package/dist/unstable/ai/McpSchema.js +57 -12
  456. package/dist/unstable/ai/McpSchema.js.map +1 -1
  457. package/dist/unstable/ai/McpServer.d.ts +66 -13
  458. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  459. package/dist/unstable/ai/McpServer.js +193 -51
  460. package/dist/unstable/ai/McpServer.js.map +1 -1
  461. package/dist/unstable/ai/Model.d.ts +25 -7
  462. package/dist/unstable/ai/Model.d.ts.map +1 -1
  463. package/dist/unstable/ai/Model.js +22 -6
  464. package/dist/unstable/ai/Model.js.map +1 -1
  465. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  466. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  467. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  468. package/dist/unstable/ai/Prompt.d.ts +20 -20
  469. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.d.ts +26 -26
  471. package/dist/unstable/ai/Response.d.ts.map +1 -1
  472. package/dist/unstable/ai/Response.js +1 -1
  473. package/dist/unstable/ai/Response.js.map +1 -1
  474. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  475. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  476. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  477. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  478. package/dist/unstable/ai/Tool.d.ts +34 -4
  479. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  480. package/dist/unstable/ai/Tool.js +28 -10
  481. package/dist/unstable/ai/Tool.js.map +1 -1
  482. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  483. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  484. package/dist/unstable/ai/Toolkit.js +4 -11
  485. package/dist/unstable/ai/Toolkit.js.map +1 -1
  486. package/dist/unstable/ai/index.d.ts +22 -1
  487. package/dist/unstable/ai/index.d.ts.map +1 -1
  488. package/dist/unstable/ai/index.js +22 -1
  489. package/dist/unstable/ai/index.js.map +1 -1
  490. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  491. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  492. package/dist/unstable/cli/Argument.d.ts +2 -4
  493. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  494. package/dist/unstable/cli/Argument.js +1 -3
  495. package/dist/unstable/cli/Argument.js.map +1 -1
  496. package/dist/unstable/cli/CliError.d.ts +27 -60
  497. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  498. package/dist/unstable/cli/CliError.js +25 -57
  499. package/dist/unstable/cli/CliError.js.map +1 -1
  500. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  501. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  502. package/dist/unstable/cli/CliOutput.js +65 -10
  503. package/dist/unstable/cli/CliOutput.js.map +1 -1
  504. package/dist/unstable/cli/Command.d.ts +371 -58
  505. package/dist/unstable/cli/Command.d.ts.map +1 -1
  506. package/dist/unstable/cli/Command.js +328 -67
  507. package/dist/unstable/cli/Command.js.map +1 -1
  508. package/dist/unstable/cli/Completions.d.ts +16 -0
  509. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  510. package/dist/unstable/cli/Completions.js +23 -0
  511. package/dist/unstable/cli/Completions.js.map +1 -0
  512. package/dist/unstable/cli/Flag.d.ts +2 -2
  513. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  514. package/dist/unstable/cli/Flag.js +1 -1
  515. package/dist/unstable/cli/Flag.js.map +1 -1
  516. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  517. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  518. package/dist/unstable/cli/GlobalFlag.js +118 -0
  519. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  520. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  521. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.d.ts +4 -4
  523. package/dist/unstable/cli/Param.d.ts.map +1 -1
  524. package/dist/unstable/cli/Param.js +7 -7
  525. package/dist/unstable/cli/Param.js.map +1 -1
  526. package/dist/unstable/cli/Primitive.d.ts +2 -2
  527. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  528. package/dist/unstable/cli/Primitive.js +1 -1
  529. package/dist/unstable/cli/Primitive.js.map +1 -1
  530. package/dist/unstable/cli/Prompt.js +259 -85
  531. package/dist/unstable/cli/Prompt.js.map +1 -1
  532. package/dist/unstable/cli/index.d.ts +8 -0
  533. package/dist/unstable/cli/index.d.ts.map +1 -1
  534. package/dist/unstable/cli/index.js +8 -0
  535. package/dist/unstable/cli/index.js.map +1 -1
  536. package/dist/unstable/cli/internal/command.d.ts +40 -14
  537. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  538. package/dist/unstable/cli/internal/command.js +72 -46
  539. package/dist/unstable/cli/internal/command.js.map +1 -1
  540. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  541. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  542. package/dist/unstable/cli/internal/config.js +42 -0
  543. package/dist/unstable/cli/internal/config.js.map +1 -1
  544. package/dist/unstable/cli/internal/help.d.ts +33 -0
  545. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  546. package/dist/unstable/cli/internal/help.js +125 -0
  547. package/dist/unstable/cli/internal/help.js.map +1 -0
  548. package/dist/unstable/cli/internal/parser.js +61 -43
  549. package/dist/unstable/cli/internal/parser.js.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  551. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  552. package/dist/unstable/cluster/ClusterCron.js +1 -1
  553. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  554. package/dist/unstable/cluster/ClusterSchema.d.ts +18 -0
  555. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  556. package/dist/unstable/cluster/ClusterSchema.js +21 -1
  557. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  558. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  559. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  560. package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -29
  561. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  562. package/dist/unstable/cluster/DeliverAt.js +1 -1
  563. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  564. package/dist/unstable/cluster/Entity.d.ts +10 -8
  565. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  566. package/dist/unstable/cluster/Entity.js +8 -7
  567. package/dist/unstable/cluster/Entity.js.map +1 -1
  568. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  569. package/dist/unstable/cluster/EntityAddress.js +1 -1
  570. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  571. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  572. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  574. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  575. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  576. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  577. package/dist/unstable/cluster/Message.d.ts +18 -15
  578. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  579. package/dist/unstable/cluster/Message.js +15 -7
  580. package/dist/unstable/cluster/Message.js.map +1 -1
  581. package/dist/unstable/cluster/MessageStorage.d.ts +33 -10
  582. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  583. package/dist/unstable/cluster/MessageStorage.js +36 -20
  584. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  585. package/dist/unstable/cluster/Reply.d.ts +8 -7
  586. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  587. package/dist/unstable/cluster/Reply.js +4 -3
  588. package/dist/unstable/cluster/Reply.js.map +1 -1
  589. package/dist/unstable/cluster/Runner.d.ts +1 -1
  590. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  591. package/dist/unstable/cluster/Runner.js +1 -1
  592. package/dist/unstable/cluster/Runner.js.map +1 -1
  593. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  594. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  595. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  596. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  597. package/dist/unstable/cluster/RunnerServer.js +9 -8
  598. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  599. package/dist/unstable/cluster/Runners.d.ts +2 -1
  600. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Runners.js +11 -9
  602. package/dist/unstable/cluster/Runners.js.map +1 -1
  603. package/dist/unstable/cluster/ShardId.js +3 -3
  604. package/dist/unstable/cluster/ShardId.js.map +1 -1
  605. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  606. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  607. package/dist/unstable/cluster/Sharding.js +51 -39
  608. package/dist/unstable/cluster/Sharding.js.map +1 -1
  609. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  610. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  611. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  612. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  613. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  614. package/dist/unstable/cluster/SqlMessageStorage.js +25 -19
  615. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  616. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  617. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  618. package/dist/unstable/cluster/internal/entityManager.js +24 -18
  619. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  620. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  621. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  622. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  623. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  624. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  625. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  626. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  627. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  628. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  629. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  630. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  631. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  632. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  633. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  634. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  635. package/dist/unstable/encoding/Sse.d.ts +4 -4
  636. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  637. package/dist/unstable/encoding/Sse.js +1 -1
  638. package/dist/unstable/encoding/Sse.js.map +1 -1
  639. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  640. package/dist/unstable/eventlog/EventJournal.js +2 -2
  641. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  642. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  643. package/dist/unstable/eventlog/EventLog.js +3 -2
  644. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  645. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  646. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  647. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  648. package/dist/unstable/http/Cookies.d.ts +52 -7
  649. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  650. package/dist/unstable/http/Cookies.js +27 -6
  651. package/dist/unstable/http/Cookies.js.map +1 -1
  652. package/dist/unstable/http/Etag.d.ts.map +1 -1
  653. package/dist/unstable/http/Etag.js +5 -1
  654. package/dist/unstable/http/Etag.js.map +1 -1
  655. package/dist/unstable/http/Headers.d.ts +19 -2
  656. package/dist/unstable/http/Headers.d.ts.map +1 -1
  657. package/dist/unstable/http/Headers.js +40 -11
  658. package/dist/unstable/http/Headers.js.map +1 -1
  659. package/dist/unstable/http/HttpBody.d.ts +1 -1
  660. package/dist/unstable/http/HttpClient.d.ts +117 -15
  661. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  662. package/dist/unstable/http/HttpClient.js +191 -13
  663. package/dist/unstable/http/HttpClient.js.map +1 -1
  664. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  665. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  666. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  667. package/dist/unstable/http/HttpClientRequest.js +131 -21
  668. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  669. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  670. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  671. package/dist/unstable/http/HttpClientResponse.js +6 -1
  672. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  673. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  674. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  675. package/dist/unstable/http/HttpEffect.js +46 -54
  676. package/dist/unstable/http/HttpEffect.js.map +1 -1
  677. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  678. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  679. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  680. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  681. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  682. package/dist/unstable/http/HttpMethod.js +3 -3
  683. package/dist/unstable/http/HttpMethod.js.map +1 -1
  684. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  685. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  686. package/dist/unstable/http/HttpMiddleware.js +24 -32
  687. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  688. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  689. package/dist/unstable/http/HttpPlatform.js +3 -2
  690. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  691. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  692. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  693. package/dist/unstable/http/HttpRouter.js +7 -7
  694. package/dist/unstable/http/HttpRouter.js.map +1 -1
  695. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  696. package/dist/unstable/http/HttpServer.js +2 -2
  697. package/dist/unstable/http/HttpServer.js.map +1 -1
  698. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  699. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  700. package/dist/unstable/http/HttpServerError.js +39 -45
  701. package/dist/unstable/http/HttpServerError.js.map +1 -1
  702. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  703. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  704. package/dist/unstable/http/HttpServerRequest.js +301 -7
  705. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  706. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  707. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  708. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  709. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  710. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  711. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  712. package/dist/unstable/http/HttpServerResponse.js +236 -1
  713. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  714. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  715. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  716. package/dist/unstable/http/HttpStaticServer.js +353 -0
  717. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  718. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  719. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  720. package/dist/unstable/http/HttpTraceContext.js +27 -15
  721. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  722. package/dist/unstable/http/Multipart.d.ts +3 -3
  723. package/dist/unstable/http/Url.d.ts +604 -0
  724. package/dist/unstable/http/Url.d.ts.map +1 -0
  725. package/dist/unstable/http/Url.js +256 -0
  726. package/dist/unstable/http/Url.js.map +1 -0
  727. package/dist/unstable/http/UrlParams.d.ts +19 -10
  728. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  729. package/dist/unstable/http/UrlParams.js +6 -7
  730. package/dist/unstable/http/UrlParams.js.map +1 -1
  731. package/dist/unstable/http/index.d.ts +8 -0
  732. package/dist/unstable/http/index.d.ts.map +1 -1
  733. package/dist/unstable/http/index.js +8 -0
  734. package/dist/unstable/http/index.js.map +1 -1
  735. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  736. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  737. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  738. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  739. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  740. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  741. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  743. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  745. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  747. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  749. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  751. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  753. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  755. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  756. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  757. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  758. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  759. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  760. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  762. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  763. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  764. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  765. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  766. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  767. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -3
  769. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  771. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  772. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  773. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  774. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  775. package/dist/unstable/httpapi/OpenApi.d.ts +1 -0
  776. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  777. package/dist/unstable/httpapi/OpenApi.js +34 -26
  778. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  779. package/dist/unstable/observability/Otlp.d.ts +12 -12
  780. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  781. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  782. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  783. package/dist/unstable/observability/OtlpExporter.js +3 -3
  784. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  785. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  786. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  787. package/dist/unstable/observability/OtlpLogger.js +7 -4
  788. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  789. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  790. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  791. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  792. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  793. package/dist/unstable/observability/OtlpTracer.js +7 -3
  794. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  795. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  796. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  797. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  798. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  799. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  800. package/dist/unstable/persistence/Persistable.js +1 -1
  801. package/dist/unstable/persistence/Persistable.js.map +1 -1
  802. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  803. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  804. package/dist/unstable/persistence/PersistedCache.js +2 -1
  805. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  806. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  807. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  808. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  809. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  810. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  811. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  812. package/dist/unstable/persistence/Persistence.js +2 -2
  813. package/dist/unstable/persistence/Persistence.js.map +1 -1
  814. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  815. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  816. package/dist/unstable/persistence/RateLimiter.js +1 -1
  817. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  818. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  819. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  820. package/dist/unstable/process/ChildProcess.js +1 -65
  821. package/dist/unstable/process/ChildProcess.js.map +1 -1
  822. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  823. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  824. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  825. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  826. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  827. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  828. package/dist/unstable/reactivity/Atom.js +108 -25
  829. package/dist/unstable/reactivity/Atom.js.map +1 -1
  830. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  831. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  832. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  833. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  834. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  835. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  836. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  837. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  838. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  839. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  840. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  841. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  842. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  843. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  844. package/dist/unstable/reactivity/Hydration.js +76 -0
  845. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  846. package/dist/unstable/reactivity/index.d.ts +4 -0
  847. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  848. package/dist/unstable/reactivity/index.js +4 -0
  849. package/dist/unstable/reactivity/index.js.map +1 -1
  850. package/dist/unstable/rpc/Rpc.d.ts +6 -5
  851. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  852. package/dist/unstable/rpc/Rpc.js +4 -3
  853. package/dist/unstable/rpc/Rpc.js.map +1 -1
  854. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  855. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcClient.js +53 -43
  857. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  858. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  859. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  860. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  861. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  862. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  863. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  864. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  865. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcSchema.js +17 -2
  867. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  868. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  869. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  870. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  871. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  872. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  873. package/dist/unstable/rpc/RpcServer.js +20 -19
  874. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  875. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  876. package/dist/unstable/rpc/Utils.js +3 -2
  877. package/dist/unstable/rpc/Utils.js.map +1 -1
  878. package/dist/unstable/schema/Model.d.ts +22 -1
  879. package/dist/unstable/schema/Model.d.ts.map +1 -1
  880. package/dist/unstable/schema/Model.js +15 -0
  881. package/dist/unstable/schema/Model.js.map +1 -1
  882. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  883. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  884. package/dist/unstable/schema/VariantSchema.js +6 -6
  885. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  886. package/dist/unstable/socket/Socket.d.ts +6 -5
  887. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  888. package/dist/unstable/socket/Socket.js +12 -9
  889. package/dist/unstable/socket/Socket.js.map +1 -1
  890. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  891. package/dist/unstable/sql/Migrator.d.ts +1 -1
  892. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  893. package/dist/unstable/sql/Migrator.js +2 -2
  894. package/dist/unstable/sql/Migrator.js.map +1 -1
  895. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  896. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  897. package/dist/unstable/sql/SqlClient.js +1 -1
  898. package/dist/unstable/sql/SqlClient.js.map +1 -1
  899. package/dist/unstable/sql/SqlError.d.ts +237 -17
  900. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlError.js +260 -4
  902. package/dist/unstable/sql/SqlError.js.map +1 -1
  903. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  904. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlModel.js +3 -3
  906. package/dist/unstable/sql/SqlModel.js.map +1 -1
  907. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  908. package/dist/unstable/sql/SqlResolver.js +17 -8
  909. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  910. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  911. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  912. package/dist/unstable/sql/SqlSchema.js +17 -7
  913. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  914. package/dist/unstable/sql/Statement.js +0 -1
  915. package/dist/unstable/sql/Statement.js.map +1 -1
  916. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  917. package/dist/unstable/workers/Worker.js +2 -1
  918. package/dist/unstable/workers/Worker.js.map +1 -1
  919. package/dist/unstable/workflow/Activity.d.ts +5 -0
  920. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  921. package/dist/unstable/workflow/Activity.js +13 -0
  922. package/dist/unstable/workflow/Activity.js.map +1 -1
  923. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  924. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  925. package/dist/unstable/workflow/DurableClock.js +3 -3
  926. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  927. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  928. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  929. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  930. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  931. package/dist/unstable/workflow/Workflow.js +1 -1
  932. package/dist/unstable/workflow/Workflow.js.map +1 -1
  933. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  934. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  935. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  936. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  937. package/package.json +2 -2
  938. package/src/Array.ts +304 -447
  939. package/src/BigDecimal.ts +117 -66
  940. package/src/BigInt.ts +49 -41
  941. package/src/Brand.ts +1 -1
  942. package/src/Cache.ts +9 -8
  943. package/src/Cause.ts +37 -2
  944. package/src/Channel.ts +582 -154
  945. package/src/Chunk.ts +149 -331
  946. package/src/Combiner.ts +280 -13
  947. package/src/Config.ts +195 -25
  948. package/src/Cron.ts +155 -63
  949. package/src/Data.ts +539 -376
  950. package/src/DateTime.ts +75 -256
  951. package/src/Deferred.ts +8 -6
  952. package/src/Duration.ts +122 -66
  953. package/src/Effect.ts +1484 -1157
  954. package/src/Encoding.ts +879 -0
  955. package/src/Equal.ts +278 -111
  956. package/src/Equivalence.ts +114 -52
  957. package/src/ErrorReporter.ts +458 -0
  958. package/src/Exit.ts +24 -12
  959. package/src/Fiber.ts +12 -3
  960. package/src/FiberHandle.ts +10 -9
  961. package/src/FiberMap.ts +22 -22
  962. package/src/FileSystem.ts +34 -31
  963. package/src/Filter.ts +52 -63
  964. package/src/Formatter.ts +253 -51
  965. package/src/Function.ts +2 -10
  966. package/src/Graph.ts +131 -117
  967. package/src/HashMap.ts +26 -19
  968. package/src/Iterable.ts +117 -63
  969. package/src/JsonSchema.ts +383 -10
  970. package/src/Latch.ts +194 -0
  971. package/src/Layer.ts +394 -160
  972. package/src/LayerMap.ts +11 -9
  973. package/src/LogLevel.ts +37 -0
  974. package/src/Logger.ts +33 -100
  975. package/src/ManagedRuntime.ts +35 -22
  976. package/src/Metric.ts +6 -8
  977. package/src/MutableHashMap.ts +9 -0
  978. package/src/MutableHashSet.ts +9 -0
  979. package/src/Newtype.ts +308 -0
  980. package/src/Number.ts +85 -26
  981. package/src/Optic.ts +948 -19
  982. package/src/Option.ts +34 -24
  983. package/src/Order.ts +39 -32
  984. package/src/PartitionedSemaphore.ts +288 -56
  985. package/src/Pipeable.ts +32 -1
  986. package/src/PlatformError.ts +5 -5
  987. package/src/Pool.ts +13 -11
  988. package/src/PubSub.ts +30 -20
  989. package/src/Pull.ts +1 -1
  990. package/src/Queue.ts +11 -9
  991. package/src/Random.ts +51 -14
  992. package/src/RcMap.ts +5 -5
  993. package/src/RcRef.ts +1 -1
  994. package/src/Record.ts +94 -199
  995. package/src/Reducer.ts +166 -7
  996. package/src/References.ts +283 -287
  997. package/src/Request.ts +3 -2
  998. package/src/RequestResolver.ts +29 -49
  999. package/src/Resource.ts +2 -1
  1000. package/src/Result.ts +2 -4
  1001. package/src/Runtime.ts +102 -6
  1002. package/src/Schedule.ts +458 -449
  1003. package/src/Scheduler.ts +49 -126
  1004. package/src/Schema.ts +3298 -392
  1005. package/src/SchemaAST.ts +172 -33
  1006. package/src/SchemaGetter.ts +19 -21
  1007. package/src/SchemaParser.ts +92 -27
  1008. package/src/SchemaRepresentation.ts +51 -26
  1009. package/src/SchemaTransformation.ts +198 -13
  1010. package/src/ScopedCache.ts +3 -3
  1011. package/src/Semaphore.ts +444 -0
  1012. package/src/ServiceMap.ts +144 -97
  1013. package/src/Sink.ts +83 -28
  1014. package/src/Stdio.ts +27 -4
  1015. package/src/Stream.ts +687 -617
  1016. package/src/String.ts +122 -69
  1017. package/src/Struct.ts +33 -7
  1018. package/src/SubscriptionRef.ts +101 -120
  1019. package/src/SynchronizedRef.ts +3 -2
  1020. package/src/Terminal.ts +2 -1
  1021. package/src/Tracer.ts +6 -5
  1022. package/src/Trie.ts +44 -31
  1023. package/src/TxChunk.ts +72 -53
  1024. package/src/TxDeferred.ts +394 -0
  1025. package/src/TxHashMap.ts +409 -343
  1026. package/src/TxHashSet.ts +113 -118
  1027. package/src/TxPriorityQueue.ts +766 -0
  1028. package/src/TxPubSub.ts +789 -0
  1029. package/src/TxQueue.ts +241 -251
  1030. package/src/TxReentrantLock.ts +753 -0
  1031. package/src/TxRef.ts +50 -38
  1032. package/src/TxSemaphore.ts +217 -44
  1033. package/src/TxSubscriptionRef.ts +639 -0
  1034. package/src/Types.ts +73 -19
  1035. package/src/Utils.ts +137 -111
  1036. package/src/index.ts +816 -56
  1037. package/src/internal/core.ts +12 -5
  1038. package/src/internal/dateTime.ts +91 -96
  1039. package/src/internal/effect.ts +844 -432
  1040. package/src/internal/hashMap.ts +12 -10
  1041. package/src/internal/option.ts +7 -0
  1042. package/src/internal/random.ts +20 -0
  1043. package/src/internal/rcRef.ts +4 -3
  1044. package/src/internal/references.ts +72 -0
  1045. package/src/internal/request.ts +2 -2
  1046. package/src/internal/schema/annotations.ts +2 -0
  1047. package/src/internal/schema/representation.ts +73 -94
  1048. package/src/internal/schema/schema.ts +1 -0
  1049. package/src/internal/schema/to-codec.ts +7 -17
  1050. package/src/internal/trie.ts +21 -15
  1051. package/src/testing/TestClock.ts +13 -11
  1052. package/src/testing/TestSchema.ts +332 -35
  1053. package/src/testing/index.ts +64 -1
  1054. package/src/unstable/ai/AiError.ts +111 -54
  1055. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1056. package/src/unstable/ai/Chat.ts +134 -85
  1057. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1058. package/src/unstable/ai/LanguageModel.ts +683 -253
  1059. package/src/unstable/ai/McpSchema.ts +73 -13
  1060. package/src/unstable/ai/McpServer.ts +271 -61
  1061. package/src/unstable/ai/Model.ts +40 -9
  1062. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1063. package/src/unstable/ai/Prompt.ts +37 -37
  1064. package/src/unstable/ai/Response.ts +25 -25
  1065. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1066. package/src/unstable/ai/Tool.ts +42 -16
  1067. package/src/unstable/ai/Toolkit.ts +5 -14
  1068. package/src/unstable/ai/index.ts +24 -1
  1069. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1070. package/src/unstable/cli/Argument.ts +2 -4
  1071. package/src/unstable/cli/CliError.ts +47 -59
  1072. package/src/unstable/cli/CliOutput.ts +85 -13
  1073. package/src/unstable/cli/Command.ts +801 -192
  1074. package/src/unstable/cli/Completions.ts +36 -0
  1075. package/src/unstable/cli/Flag.ts +2 -2
  1076. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1077. package/src/unstable/cli/HelpDoc.ts +91 -11
  1078. package/src/unstable/cli/Param.ts +15 -11
  1079. package/src/unstable/cli/Primitive.ts +2 -2
  1080. package/src/unstable/cli/Prompt.ts +265 -101
  1081. package/src/unstable/cli/index.ts +10 -0
  1082. package/src/unstable/cli/internal/command.ts +109 -63
  1083. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1084. package/src/unstable/cli/internal/config.ts +49 -0
  1085. package/src/unstable/cli/internal/help.ts +171 -0
  1086. package/src/unstable/cli/internal/parser.ts +71 -63
  1087. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1088. package/src/unstable/cluster/ClusterSchema.ts +29 -1
  1089. package/src/unstable/cluster/ClusterWorkflowEngine.ts +62 -37
  1090. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1091. package/src/unstable/cluster/Entity.ts +25 -22
  1092. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1093. package/src/unstable/cluster/EntityResource.ts +4 -4
  1094. package/src/unstable/cluster/Envelope.ts +1 -1
  1095. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1096. package/src/unstable/cluster/Message.ts +28 -15
  1097. package/src/unstable/cluster/MessageStorage.ts +66 -36
  1098. package/src/unstable/cluster/Reply.ts +7 -4
  1099. package/src/unstable/cluster/Runner.ts +1 -1
  1100. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1101. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1102. package/src/unstable/cluster/Runners.ts +14 -12
  1103. package/src/unstable/cluster/ShardId.ts +2 -2
  1104. package/src/unstable/cluster/Sharding.ts +66 -49
  1105. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1106. package/src/unstable/cluster/SqlMessageStorage.ts +31 -19
  1107. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1108. package/src/unstable/cluster/internal/entityManager.ts +50 -34
  1109. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1110. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1111. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1112. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1113. package/src/unstable/encoding/Ndjson.ts +17 -17
  1114. package/src/unstable/encoding/Sse.ts +3 -5
  1115. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1116. package/src/unstable/eventlog/EventLog.ts +3 -2
  1117. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1118. package/src/unstable/http/Cookies.ts +94 -11
  1119. package/src/unstable/http/Etag.ts +5 -3
  1120. package/src/unstable/http/Headers.ts +68 -18
  1121. package/src/unstable/http/HttpClient.ts +376 -34
  1122. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1123. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1124. package/src/unstable/http/HttpEffect.ts +54 -68
  1125. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1126. package/src/unstable/http/HttpMethod.ts +16 -4
  1127. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1128. package/src/unstable/http/HttpPlatform.ts +3 -2
  1129. package/src/unstable/http/HttpRouter.ts +9 -9
  1130. package/src/unstable/http/HttpServer.ts +3 -9
  1131. package/src/unstable/http/HttpServerError.ts +45 -47
  1132. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1133. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1134. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1135. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1136. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1137. package/src/unstable/http/Multipart.ts +2 -2
  1138. package/src/unstable/http/Url.ts +650 -0
  1139. package/src/unstable/http/UrlParams.ts +31 -19
  1140. package/src/unstable/http/index.ts +10 -0
  1141. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1142. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1143. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1144. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1145. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1146. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1147. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1148. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1149. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1150. package/src/unstable/httpapi/HttpApiSchema.ts +21 -3
  1151. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1152. package/src/unstable/httpapi/OpenApi.ts +44 -29
  1153. package/src/unstable/observability/Otlp.ts +12 -12
  1154. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1155. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1156. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1157. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1158. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1159. package/src/unstable/persistence/Persistable.ts +3 -3
  1160. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1161. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1162. package/src/unstable/persistence/Persistence.ts +3 -3
  1163. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1164. package/src/unstable/process/ChildProcess.ts +6 -208
  1165. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1166. package/src/unstable/reactivity/Atom.ts +212 -54
  1167. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1168. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1169. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1170. package/src/unstable/reactivity/Hydration.ts +112 -0
  1171. package/src/unstable/reactivity/index.ts +5 -0
  1172. package/src/unstable/rpc/Rpc.ts +12 -12
  1173. package/src/unstable/rpc/RpcClient.ts +67 -96
  1174. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1175. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1176. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1177. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1178. package/src/unstable/rpc/RpcServer.ts +31 -35
  1179. package/src/unstable/rpc/Utils.ts +3 -2
  1180. package/src/unstable/schema/Model.ts +31 -0
  1181. package/src/unstable/schema/VariantSchema.ts +10 -10
  1182. package/src/unstable/socket/Socket.ts +31 -27
  1183. package/src/unstable/sql/Migrator.ts +7 -5
  1184. package/src/unstable/sql/SqlClient.ts +6 -4
  1185. package/src/unstable/sql/SqlError.ts +365 -11
  1186. package/src/unstable/sql/SqlModel.ts +5 -5
  1187. package/src/unstable/sql/SqlResolver.ts +17 -7
  1188. package/src/unstable/sql/SqlSchema.ts +42 -26
  1189. package/src/unstable/sql/Statement.ts +0 -1
  1190. package/src/unstable/workers/Worker.ts +2 -1
  1191. package/src/unstable/workflow/Activity.ts +23 -0
  1192. package/src/unstable/workflow/DurableClock.ts +8 -8
  1193. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1194. package/src/unstable/workflow/Workflow.ts +7 -3
  1195. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1196. package/dist/NullOr.d.ts +0 -149
  1197. package/dist/NullOr.d.ts.map +0 -1
  1198. package/dist/NullOr.js +0 -152
  1199. package/dist/NullOr.js.map +0 -1
  1200. package/dist/encoding/Base64.d.ts +0 -67
  1201. package/dist/encoding/Base64.d.ts.map +0 -1
  1202. package/dist/encoding/Base64.js +0 -146
  1203. package/dist/encoding/Base64.js.map +0 -1
  1204. package/dist/encoding/Base64Url.d.ts +0 -60
  1205. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1206. package/dist/encoding/Base64Url.js +0 -89
  1207. package/dist/encoding/Base64Url.js.map +0 -1
  1208. package/dist/encoding/EncodingError.d.ts +0 -31
  1209. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1210. package/dist/encoding/EncodingError.js +0 -22
  1211. package/dist/encoding/EncodingError.js.map +0 -1
  1212. package/dist/encoding/Hex.d.ts +0 -61
  1213. package/dist/encoding/Hex.d.ts.map +0 -1
  1214. package/dist/encoding/Hex.js +0 -115
  1215. package/dist/encoding/Hex.js.map +0 -1
  1216. package/dist/encoding/index.d.ts +0 -26
  1217. package/dist/encoding/index.d.ts.map +0 -1
  1218. package/dist/encoding/index.js +0 -27
  1219. package/dist/encoding/index.js.map +0 -1
  1220. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1221. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1222. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1223. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1224. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1225. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1226. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1227. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1228. package/src/NullOr.ts +0 -204
  1229. package/src/encoding/Base64.ts +0 -366
  1230. package/src/encoding/Base64Url.ts +0 -104
  1231. package/src/encoding/EncodingError.ts +0 -35
  1232. package/src/encoding/Hex.ts +0 -390
  1233. package/src/encoding/index.ts +0 -31
  1234. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1235. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/Array.ts CHANGED
@@ -85,7 +85,6 @@
85
85
  */
86
86
  import * as Equal from "./Equal.ts"
87
87
  import * as Equivalence from "./Equivalence.ts"
88
- import * as Filter from "./Filter.ts"
89
88
  import type { LazyArg } from "./Function.ts"
90
89
  import { dual, identity } from "./Function.ts"
91
90
  import type { TypeLambda } from "./HKT.ts"
@@ -1768,18 +1767,18 @@ export const last = <A>(self: ReadonlyArray<A>): Option.Option<A> =>
1768
1767
  export const lastNonEmpty = <A>(self: NonEmptyReadonlyArray<A>): A => self[self.length - 1]
1769
1768
 
1770
1769
  /**
1771
- * Returns all elements except the first, or `undefined` if the array is empty.
1770
+ * Returns all elements except the first, wrapped in an `Option`.
1772
1771
  *
1773
1772
  * - Allocates a new array via `slice(1)`.
1774
- * - Returns `undefined` (not `Option`) for empty inputs.
1773
+ * - Returns `Option.none()` for empty inputs.
1775
1774
  *
1776
1775
  * **Example** (Getting the tail)
1777
1776
  *
1778
1777
  * ```ts
1779
1778
  * import { Array } from "effect"
1780
1779
  *
1781
- * console.log(Array.tail([1, 2, 3, 4])) // [2, 3, 4]
1782
- * console.log(Array.tail([])) // undefined
1780
+ * console.log(Array.tail([1, 2, 3, 4])) // Option.some([2, 3, 4])
1781
+ * console.log(Array.tail([])) // Option.none()
1783
1782
  * ```
1784
1783
  *
1785
1784
  * @see {@link tailNonEmpty} — when the array is known non-empty
@@ -1788,9 +1787,9 @@ export const lastNonEmpty = <A>(self: NonEmptyReadonlyArray<A>): A => self[self.
1788
1787
  * @category getters
1789
1788
  * @since 2.0.0
1790
1789
  */
1791
- export function tail<A>(self: Iterable<A>): Array<A> | undefined {
1790
+ export function tail<A>(self: Iterable<A>): Option.Option<Array<A>> {
1792
1791
  const as = fromIterable(self)
1793
- return isReadonlyArrayNonEmpty(as) ? tailNonEmpty(as) : undefined
1792
+ return isReadonlyArrayNonEmpty(as) ? Option.some(tailNonEmpty(as)) : Option.none()
1794
1793
  }
1795
1794
 
1796
1795
  /**
@@ -1813,18 +1812,18 @@ export function tail<A>(self: Iterable<A>): Array<A> | undefined {
1813
1812
  export const tailNonEmpty = <A>(self: NonEmptyReadonlyArray<A>): Array<A> => self.slice(1)
1814
1813
 
1815
1814
  /**
1816
- * Returns all elements except the last, or `undefined` if the array is empty.
1815
+ * Returns all elements except the last, wrapped in an `Option`.
1817
1816
  *
1818
1817
  * - Allocates a new array via `slice(0, -1)`.
1819
- * - Returns `undefined` (not `Option`) for empty inputs.
1818
+ * - Returns `Option.none()` for empty inputs.
1820
1819
  *
1821
1820
  * **Example** (Getting init)
1822
1821
  *
1823
1822
  * ```ts
1824
1823
  * import { Array } from "effect"
1825
1824
  *
1826
- * console.log(Array.init([1, 2, 3, 4])) // [1, 2, 3]
1827
- * console.log(Array.init([])) // undefined
1825
+ * console.log(Array.init([1, 2, 3, 4])) // Option.some([1, 2, 3])
1826
+ * console.log(Array.init([])) // Option.none()
1828
1827
  * ```
1829
1828
  *
1830
1829
  * @see {@link initNonEmpty} — when the array is known non-empty
@@ -1833,9 +1832,9 @@ export const tailNonEmpty = <A>(self: NonEmptyReadonlyArray<A>): Array<A> => sel
1833
1832
  * @category getters
1834
1833
  * @since 2.0.0
1835
1834
  */
1836
- export function init<A>(self: Iterable<A>): Array<A> | undefined {
1835
+ export function init<A>(self: Iterable<A>): Option.Option<Array<A>> {
1837
1836
  const as = fromIterable(self)
1838
- return isReadonlyArrayNonEmpty(as) ? initNonEmpty(as) : undefined
1837
+ return isReadonlyArrayNonEmpty(as) ? Option.some(initNonEmpty(as)) : Option.none()
1839
1838
  }
1840
1839
 
1841
1840
  /**
@@ -2088,7 +2087,7 @@ export const takeWhile: {
2088
2087
  * @category getters
2089
2088
  * @since 2.0.0
2090
2089
  */
2091
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X>): (self: Iterable<A>) => Array<B>
2090
+ <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
2092
2091
  /**
2093
2092
  * Takes elements from the start while the predicate holds, stopping at the
2094
2093
  * first element that fails.
@@ -2111,59 +2110,61 @@ export const takeWhile: {
2111
2110
  * @category getters
2112
2111
  * @since 2.0.0
2113
2112
  */
2114
- <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
2113
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
2114
+ } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A> => {
2115
+ let i = 0
2116
+ const out: Array<A> = []
2117
+ for (const a of self) {
2118
+ if (!predicate(a, i)) {
2119
+ break
2120
+ }
2121
+ out.push(a)
2122
+ i++
2123
+ }
2124
+ return out
2125
+ })
2126
+
2127
+ /**
2128
+ * Takes elements from the start while a `Filter` succeeds, collecting transformed values.
2129
+ *
2130
+ * - The filter receives `(element, index)`.
2131
+ * - Stops at the first filter failure.
2132
+ *
2133
+ * @category getters
2134
+ * @since 4.0.0
2135
+ */
2136
+ export const takeWhileFilter: {
2115
2137
  /**
2116
- * Takes elements from the start while the predicate holds, stopping at the
2117
- * first element that fails.
2118
- *
2119
- * - Supports refinements for type narrowing.
2120
- * - The predicate receives `(element, index)`.
2121
- *
2122
- * **Example** (Taking while condition holds)
2123
- *
2124
- * ```ts
2125
- * import { Array } from "effect"
2138
+ * Takes elements from the start while a `Filter` succeeds, collecting transformed values.
2126
2139
  *
2127
- * console.log(Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4)) // [1, 3, 2]
2128
- * ```
2129
- *
2130
- * @see {@link take} — take a fixed count
2131
- * @see {@link dropWhile} — drop while predicate holds
2132
- * @see {@link span} — split into matching prefix + rest
2140
+ * - The filter receives `(element, index)`.
2141
+ * - Stops at the first filter failure.
2133
2142
  *
2134
2143
  * @category getters
2135
- * @since 2.0.0
2144
+ * @since 4.0.0
2136
2145
  */
2137
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
2146
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<B>
2138
2147
  /**
2139
- * Takes elements from the start while the predicate holds, stopping at the
2140
- * first element that fails.
2148
+ * Takes elements from the start while a `Filter` succeeds, collecting transformed values.
2141
2149
  *
2142
- * - Supports refinements for type narrowing.
2143
- * - The predicate receives `(element, index)`.
2144
- *
2145
- * **Example** (Taking while condition holds)
2146
- *
2147
- * ```ts
2148
- * import { Array } from "effect"
2149
- *
2150
- * console.log(Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4)) // [1, 3, 2]
2151
- * ```
2152
- *
2153
- * @see {@link take} — take a fixed count
2154
- * @see {@link dropWhile} — drop while predicate holds
2155
- * @see {@link span} — split into matching prefix + rest
2150
+ * - The filter receives `(element, index)`.
2151
+ * - Stops at the first filter failure.
2156
2152
  *
2157
2153
  * @category getters
2158
- * @since 2.0.0
2154
+ * @since 4.0.0
2159
2155
  */
2160
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X>): Array<B>
2161
- } = dual(2, <A>(self: Iterable<A>, f: Filter.Filter<A, any, any> | ((a: A, i: number) => boolean)): Array<any> => {
2156
+ <A, B, X>(
2157
+ self: Iterable<A>,
2158
+ f: (input: NoInfer<A>, i: number) => Result.Result<B, X>
2159
+ ): Array<B>
2160
+ } = dual(2, <A, B, X>(self: Iterable<A>, f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): Array<B> => {
2162
2161
  let i = 0
2163
- const out: Array<any> = []
2162
+ const out: Array<B> = []
2164
2163
  for (const a of self) {
2165
- const result = Filter.apply(f as any, a, i)
2166
- if (Result.isFailure(result)) break
2164
+ const result = f(a, i)
2165
+ if (Result.isFailure(result)) {
2166
+ break
2167
+ }
2167
2168
  out.push(result.success)
2168
2169
  i++
2169
2170
  }
@@ -2504,54 +2505,58 @@ export const dropWhile: {
2504
2505
  * @category getters
2505
2506
  * @since 2.0.0
2506
2507
  */
2507
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X>): (self: Iterable<A>) => Array<A>
2508
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
2509
+ } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A> => {
2510
+ const input = fromIterable(self)
2511
+ let i = 0
2512
+ while (i < input.length) {
2513
+ if (!predicate(input[i], i)) {
2514
+ break
2515
+ }
2516
+ i++
2517
+ }
2518
+ return input.slice(i)
2519
+ })
2520
+
2521
+ /**
2522
+ * Drops elements from the start while a `Filter` succeeds.
2523
+ *
2524
+ * - The filter receives `(element, index)`.
2525
+ * - Returns the remaining original elements after the first filter failure.
2526
+ *
2527
+ * @category getters
2528
+ * @since 4.0.0
2529
+ */
2530
+ export const dropWhileFilter: {
2508
2531
  /**
2509
- * Drops elements from the start while the predicate holds, returning the rest.
2532
+ * Drops elements from the start while a `Filter` succeeds.
2510
2533
  *
2511
- * - The predicate receives `(element, index)`.
2512
- *
2513
- * **Example** (Dropping while condition holds)
2514
- *
2515
- * ```ts
2516
- * import { Array } from "effect"
2517
- *
2518
- * console.log(Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4)) // [4, 5]
2519
- * ```
2520
- *
2521
- * @see {@link takeWhile} — keep the matching prefix instead
2522
- * @see {@link drop} — drop a fixed count
2534
+ * - The filter receives `(element, index)`.
2535
+ * - Returns the remaining original elements after the first filter failure.
2523
2536
  *
2524
2537
  * @category getters
2525
- * @since 2.0.0
2538
+ * @since 4.0.0
2526
2539
  */
2527
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
2540
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<A>
2528
2541
  /**
2529
- * Drops elements from the start while the predicate holds, returning the rest.
2530
- *
2531
- * - The predicate receives `(element, index)`.
2532
- *
2533
- * **Example** (Dropping while condition holds)
2534
- *
2535
- * ```ts
2536
- * import { Array } from "effect"
2537
- *
2538
- * console.log(Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4)) // [4, 5]
2539
- * ```
2542
+ * Drops elements from the start while a `Filter` succeeds.
2540
2543
  *
2541
- * @see {@link takeWhile} keep the matching prefix instead
2542
- * @see {@link drop} drop a fixed count
2544
+ * - The filter receives `(element, index)`.
2545
+ * - Returns the remaining original elements after the first filter failure.
2543
2546
  *
2544
2547
  * @category getters
2545
- * @since 2.0.0
2548
+ * @since 4.0.0
2546
2549
  */
2547
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X>): Array<A>
2550
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<A>
2548
2551
  } = dual(
2549
2552
  2,
2550
- <A>(self: Iterable<A>, f: Filter.Filter<A, any, any> | ((a: A, i: number) => boolean)): Array<A> => {
2553
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<A> => {
2551
2554
  const input = fromIterable(self)
2552
2555
  let i = 0
2553
- for (const a of input) {
2554
- if (Result.isFailure(Filter.apply(f as any, a, i))) break
2556
+ while (i < input.length) {
2557
+ if (Result.isFailure(f(input[i], i))) {
2558
+ break
2559
+ }
2555
2560
  i++
2556
2561
  }
2557
2562
  return input.slice(i)
@@ -2559,15 +2564,15 @@ export const dropWhile: {
2559
2564
  )
2560
2565
 
2561
2566
  /**
2562
- * Returns the index of the first element matching the predicate, or `undefined`
2563
- * if none match.
2567
+ * Returns the index of the first element matching the predicate, wrapped in an
2568
+ * `Option`.
2564
2569
  *
2565
2570
  * **Example** (Finding an index)
2566
2571
  *
2567
2572
  * ```ts
2568
2573
  * import { Array } from "effect"
2569
2574
  *
2570
- * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // 2
2575
+ * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // Option.some(2)
2571
2576
  * ```
2572
2577
  *
2573
2578
  * @see {@link findLastIndex} — search from the end
@@ -2578,15 +2583,15 @@ export const dropWhile: {
2578
2583
  */
2579
2584
  export const findFirstIndex: {
2580
2585
  /**
2581
- * Returns the index of the first element matching the predicate, or `undefined`
2582
- * if none match.
2586
+ * Returns the index of the first element matching the predicate, wrapped in an
2587
+ * `Option`.
2583
2588
  *
2584
2589
  * **Example** (Finding an index)
2585
2590
  *
2586
2591
  * ```ts
2587
2592
  * import { Array } from "effect"
2588
2593
  *
2589
- * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // 2
2594
+ * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // Option.some(2)
2590
2595
  * ```
2591
2596
  *
2592
2597
  * @see {@link findLastIndex} — search from the end
@@ -2595,17 +2600,17 @@ export const findFirstIndex: {
2595
2600
  * @category elements
2596
2601
  * @since 2.0.0
2597
2602
  */
2598
- <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => number | undefined
2603
+ <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option.Option<number>
2599
2604
  /**
2600
- * Returns the index of the first element matching the predicate, or `undefined`
2601
- * if none match.
2605
+ * Returns the index of the first element matching the predicate, wrapped in an
2606
+ * `Option`.
2602
2607
  *
2603
2608
  * **Example** (Finding an index)
2604
2609
  *
2605
2610
  * ```ts
2606
2611
  * import { Array } from "effect"
2607
2612
  *
2608
- * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // 2
2613
+ * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // Option.some(2)
2609
2614
  * ```
2610
2615
  *
2611
2616
  * @see {@link findLastIndex} — search from the end
@@ -2614,27 +2619,28 @@ export const findFirstIndex: {
2614
2619
  * @category elements
2615
2620
  * @since 2.0.0
2616
2621
  */
2617
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): number | undefined
2618
- } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): number | undefined => {
2622
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<number>
2623
+ } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<number> => {
2619
2624
  let i = 0
2620
2625
  for (const a of self) {
2621
2626
  if (predicate(a, i)) {
2622
- return i
2627
+ return Option.some(i)
2623
2628
  }
2624
2629
  i++
2625
2630
  }
2631
+ return Option.none()
2626
2632
  })
2627
2633
 
2628
2634
  /**
2629
- * Returns the index of the last element matching the predicate, or `undefined`
2630
- * if none match.
2635
+ * Returns the index of the last element matching the predicate, wrapped in an
2636
+ * `Option`.
2631
2637
  *
2632
2638
  * **Example** (Finding the last matching index)
2633
2639
  *
2634
2640
  * ```ts
2635
2641
  * import { Array } from "effect"
2636
2642
  *
2637
- * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // 1
2643
+ * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // Option.some(1)
2638
2644
  * ```
2639
2645
  *
2640
2646
  * @see {@link findFirstIndex} — search from the start
@@ -2645,15 +2651,15 @@ export const findFirstIndex: {
2645
2651
  */
2646
2652
  export const findLastIndex: {
2647
2653
  /**
2648
- * Returns the index of the last element matching the predicate, or `undefined`
2649
- * if none match.
2654
+ * Returns the index of the last element matching the predicate, wrapped in an
2655
+ * `Option`.
2650
2656
  *
2651
2657
  * **Example** (Finding the last matching index)
2652
2658
  *
2653
2659
  * ```ts
2654
2660
  * import { Array } from "effect"
2655
2661
  *
2656
- * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // 1
2662
+ * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // Option.some(1)
2657
2663
  * ```
2658
2664
  *
2659
2665
  * @see {@link findFirstIndex} — search from the start
@@ -2662,17 +2668,17 @@ export const findLastIndex: {
2662
2668
  * @category elements
2663
2669
  * @since 2.0.0
2664
2670
  */
2665
- <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => number | undefined
2671
+ <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option.Option<number>
2666
2672
  /**
2667
- * Returns the index of the last element matching the predicate, or `undefined`
2668
- * if none match.
2673
+ * Returns the index of the last element matching the predicate, wrapped in an
2674
+ * `Option`.
2669
2675
  *
2670
2676
  * **Example** (Finding the last matching index)
2671
2677
  *
2672
2678
  * ```ts
2673
2679
  * import { Array } from "effect"
2674
2680
  *
2675
- * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // 1
2681
+ * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // Option.some(1)
2676
2682
  * ```
2677
2683
  *
2678
2684
  * @see {@link findFirstIndex} — search from the start
@@ -2681,14 +2687,15 @@ export const findLastIndex: {
2681
2687
  * @category elements
2682
2688
  * @since 2.0.0
2683
2689
  */
2684
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): number | undefined
2685
- } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): number | undefined => {
2690
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<number>
2691
+ } = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<number> => {
2686
2692
  const input = fromIterable(self)
2687
2693
  for (let i = input.length - 1; i >= 0; i--) {
2688
2694
  if (predicate(input[i], i)) {
2689
- return i
2695
+ return Option.some(i)
2690
2696
  }
2691
2697
  }
2698
+ return Option.none()
2692
2699
  })
2693
2700
 
2694
2701
  /**
@@ -2863,14 +2870,14 @@ export const findFirst: {
2863
2870
 
2864
2871
  /**
2865
2872
  * Returns a tuple `[element, index]` of the first element matching a
2866
- * predicate, or `undefined` if none match.
2873
+ * predicate, wrapped in an `Option`.
2867
2874
  *
2868
2875
  * **Example** (Finding element with its index)
2869
2876
  *
2870
2877
  * ```ts
2871
2878
  * import { Array } from "effect"
2872
2879
  *
2873
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2880
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2874
2881
  * ```
2875
2882
  *
2876
2883
  * @see {@link findFirst} — get only the element
@@ -2882,14 +2889,14 @@ export const findFirst: {
2882
2889
  export const findFirstWithIndex: {
2883
2890
  /**
2884
2891
  * Returns a tuple `[element, index]` of the first element matching a
2885
- * predicate, or `undefined` if none match.
2892
+ * predicate, wrapped in an `Option`.
2886
2893
  *
2887
2894
  * **Example** (Finding element with its index)
2888
2895
  *
2889
2896
  * ```ts
2890
2897
  * import { Array } from "effect"
2891
2898
  *
2892
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2899
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2893
2900
  * ```
2894
2901
  *
2895
2902
  * @see {@link findFirst} — get only the element
@@ -2898,17 +2905,17 @@ export const findFirstWithIndex: {
2898
2905
  * @category elements
2899
2906
  * @since 3.17.0
2900
2907
  */
2901
- <A, B>(f: (a: NoInfer<A>, i: number) => Option.Option<B>): (self: Iterable<A>) => [B, number] | undefined
2908
+ <A, B>(f: (a: NoInfer<A>, i: number) => Option.Option<B>): (self: Iterable<A>) => Option.Option<[B, number]>
2902
2909
  /**
2903
2910
  * Returns a tuple `[element, index]` of the first element matching a
2904
- * predicate, or `undefined` if none match.
2911
+ * predicate, wrapped in an `Option`.
2905
2912
  *
2906
2913
  * **Example** (Finding element with its index)
2907
2914
  *
2908
2915
  * ```ts
2909
2916
  * import { Array } from "effect"
2910
2917
  *
2911
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2918
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2912
2919
  * ```
2913
2920
  *
2914
2921
  * @see {@link findFirst} — get only the element
@@ -2917,17 +2924,17 @@ export const findFirstWithIndex: {
2917
2924
  * @category elements
2918
2925
  * @since 3.17.0
2919
2926
  */
2920
- <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => [B, number] | undefined
2927
+ <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Option.Option<[B, number]>
2921
2928
  /**
2922
2929
  * Returns a tuple `[element, index]` of the first element matching a
2923
- * predicate, or `undefined` if none match.
2930
+ * predicate, wrapped in an `Option`.
2924
2931
  *
2925
2932
  * **Example** (Finding element with its index)
2926
2933
  *
2927
2934
  * ```ts
2928
2935
  * import { Array } from "effect"
2929
2936
  *
2930
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2937
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2931
2938
  * ```
2932
2939
  *
2933
2940
  * @see {@link findFirst} — get only the element
@@ -2936,17 +2943,17 @@ export const findFirstWithIndex: {
2936
2943
  * @category elements
2937
2944
  * @since 3.17.0
2938
2945
  */
2939
- <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => [A, number] | undefined
2946
+ <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option.Option<[A, number]>
2940
2947
  /**
2941
2948
  * Returns a tuple `[element, index]` of the first element matching a
2942
- * predicate, or `undefined` if none match.
2949
+ * predicate, wrapped in an `Option`.
2943
2950
  *
2944
2951
  * **Example** (Finding element with its index)
2945
2952
  *
2946
2953
  * ```ts
2947
2954
  * import { Array } from "effect"
2948
2955
  *
2949
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2956
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2950
2957
  * ```
2951
2958
  *
2952
2959
  * @see {@link findFirst} — get only the element
@@ -2955,17 +2962,17 @@ export const findFirstWithIndex: {
2955
2962
  * @category elements
2956
2963
  * @since 3.17.0
2957
2964
  */
2958
- <A, B>(self: Iterable<A>, f: (a: A, i: number) => Option.Option<B>): [B, number] | undefined
2965
+ <A, B>(self: Iterable<A>, f: (a: A, i: number) => Option.Option<B>): Option.Option<[B, number]>
2959
2966
  /**
2960
2967
  * Returns a tuple `[element, index]` of the first element matching a
2961
- * predicate, or `undefined` if none match.
2968
+ * predicate, wrapped in an `Option`.
2962
2969
  *
2963
2970
  * **Example** (Finding element with its index)
2964
2971
  *
2965
2972
  * ```ts
2966
2973
  * import { Array } from "effect"
2967
2974
  *
2968
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2975
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2969
2976
  * ```
2970
2977
  *
2971
2978
  * @see {@link findFirst} — get only the element
@@ -2974,17 +2981,17 @@ export const findFirstWithIndex: {
2974
2981
  * @category elements
2975
2982
  * @since 3.17.0
2976
2983
  */
2977
- <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): [B, number] | undefined
2984
+ <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Option.Option<[B, number]>
2978
2985
  /**
2979
2986
  * Returns a tuple `[element, index]` of the first element matching a
2980
- * predicate, or `undefined` if none match.
2987
+ * predicate, wrapped in an `Option`.
2981
2988
  *
2982
2989
  * **Example** (Finding element with its index)
2983
2990
  *
2984
2991
  * ```ts
2985
2992
  * import { Array } from "effect"
2986
2993
  *
2987
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // [4, 3]
2994
+ * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
2988
2995
  * ```
2989
2996
  *
2990
2997
  * @see {@link findFirst} — get only the element
@@ -2993,27 +3000,28 @@ export const findFirstWithIndex: {
2993
3000
  * @category elements
2994
3001
  * @since 3.17.0
2995
3002
  */
2996
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): [A, number] | undefined
3003
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<[A, number]>
2997
3004
  } = dual(
2998
3005
  2,
2999
3006
  <A>(
3000
3007
  self: Iterable<A>,
3001
3008
  f: ((a: A, i: number) => boolean) | ((a: A, i: number) => Option.Option<A>)
3002
- ): [A, number] | undefined => {
3009
+ ): Option.Option<[A, number]> => {
3003
3010
  let i = 0
3004
3011
  for (const a of self) {
3005
3012
  const o = f(a, i)
3006
3013
  if (typeof o === "boolean") {
3007
3014
  if (o) {
3008
- return [a, i]
3015
+ return Option.some([a, i])
3009
3016
  }
3010
3017
  } else {
3011
3018
  if (Option.isSome(o)) {
3012
- return [o.value, i]
3019
+ return Option.some([o.value, i])
3013
3020
  }
3014
3021
  }
3015
3022
  i++
3016
3023
  }
3024
+ return Option.none()
3017
3025
  }
3018
3026
  )
3019
3027
 
@@ -3196,8 +3204,8 @@ export const findLast: {
3196
3204
  )
3197
3205
 
3198
3206
  /**
3199
- * Inserts an element at the specified index, returning a new `NonEmptyArray`,
3200
- * or `undefined` if the index is out of bounds.
3207
+ * Inserts an element at the specified index, returning a new `NonEmptyArray`
3208
+ * wrapped in an `Option`.
3201
3209
  *
3202
3210
  * - Valid indices: `0` to `length` (inclusive — inserting at `length` appends).
3203
3211
  * - Does not mutate the input.
@@ -3207,7 +3215,7 @@ export const findLast: {
3207
3215
  * ```ts
3208
3216
  * import { Array } from "effect"
3209
3217
  *
3210
- * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // ["a", "b", "c", "d", "e"]
3218
+ * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // Option.some(["a", "b", "c", "d", "e"])
3211
3219
  * ```
3212
3220
  *
3213
3221
  * @see {@link replace} — replace an existing element
@@ -3218,8 +3226,8 @@ export const findLast: {
3218
3226
  */
3219
3227
  export const insertAt: {
3220
3228
  /**
3221
- * Inserts an element at the specified index, returning a new `NonEmptyArray`,
3222
- * or `undefined` if the index is out of bounds.
3229
+ * Inserts an element at the specified index, returning a new `NonEmptyArray`
3230
+ * wrapped in an `Option`.
3223
3231
  *
3224
3232
  * - Valid indices: `0` to `length` (inclusive — inserting at `length` appends).
3225
3233
  * - Does not mutate the input.
@@ -3229,7 +3237,7 @@ export const insertAt: {
3229
3237
  * ```ts
3230
3238
  * import { Array } from "effect"
3231
3239
  *
3232
- * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // ["a", "b", "c", "d", "e"]
3240
+ * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // Option.some(["a", "b", "c", "d", "e"])
3233
3241
  * ```
3234
3242
  *
3235
3243
  * @see {@link replace} — replace an existing element
@@ -3238,10 +3246,10 @@ export const insertAt: {
3238
3246
  * @category elements
3239
3247
  * @since 2.0.0
3240
3248
  */
3241
- <B>(i: number, b: B): <A>(self: Iterable<A>) => NonEmptyArray<A | B> | undefined
3249
+ <B>(i: number, b: B): <A>(self: Iterable<A>) => Option.Option<NonEmptyArray<A | B>>
3242
3250
  /**
3243
- * Inserts an element at the specified index, returning a new `NonEmptyArray`,
3244
- * or `undefined` if the index is out of bounds.
3251
+ * Inserts an element at the specified index, returning a new `NonEmptyArray`
3252
+ * wrapped in an `Option`.
3245
3253
  *
3246
3254
  * - Valid indices: `0` to `length` (inclusive — inserting at `length` appends).
3247
3255
  * - Does not mutate the input.
@@ -3251,7 +3259,7 @@ export const insertAt: {
3251
3259
  * ```ts
3252
3260
  * import { Array } from "effect"
3253
3261
  *
3254
- * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // ["a", "b", "c", "d", "e"]
3262
+ * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // Option.some(["a", "b", "c", "d", "e"])
3255
3263
  * ```
3256
3264
  *
3257
3265
  * @see {@link replace} — replace an existing element
@@ -3260,19 +3268,19 @@ export const insertAt: {
3260
3268
  * @category elements
3261
3269
  * @since 2.0.0
3262
3270
  */
3263
- <A, B>(self: Iterable<A>, i: number, b: B): NonEmptyArray<A | B> | undefined
3264
- } = dual(3, <A, B>(self: Iterable<A>, i: number, b: B): NonEmptyArray<A | B> | undefined => {
3271
+ <A, B>(self: Iterable<A>, i: number, b: B): Option.Option<NonEmptyArray<A | B>>
3272
+ } = dual(3, <A, B>(self: Iterable<A>, i: number, b: B): Option.Option<NonEmptyArray<A | B>> => {
3265
3273
  const out: Array<A | B> = Array.from(self) // copy because `splice` mutates the array
3266
3274
  if (i < 0 || i > out.length) {
3267
- return undefined
3275
+ return Option.none()
3268
3276
  }
3269
3277
  out.splice(i, 0, b)
3270
- return out as any
3278
+ return Option.some(out as any)
3271
3279
  })
3272
3280
 
3273
3281
  /**
3274
3282
  * Replaces the element at the specified index with a new value, returning a new
3275
- * array, or `undefined` if the index is out of bounds.
3283
+ * array, wrapped in an `Option`.
3276
3284
  *
3277
3285
  * - Does not mutate the input.
3278
3286
  *
@@ -3281,7 +3289,7 @@ export const insertAt: {
3281
3289
  * ```ts
3282
3290
  * import { Array } from "effect"
3283
3291
  *
3284
- * console.log(Array.replace([1, 2, 3], 1, 4)) // [1, 4, 3]
3292
+ * console.log(Array.replace([1, 2, 3], 1, 4)) // Option.some([1, 4, 3])
3285
3293
  * ```
3286
3294
  *
3287
3295
  * @see {@link modify} — transform an element with a function
@@ -3293,7 +3301,7 @@ export const insertAt: {
3293
3301
  export const replace: {
3294
3302
  /**
3295
3303
  * Replaces the element at the specified index with a new value, returning a new
3296
- * array, or `undefined` if the index is out of bounds.
3304
+ * array, wrapped in an `Option`.
3297
3305
  *
3298
3306
  * - Does not mutate the input.
3299
3307
  *
@@ -3302,7 +3310,7 @@ export const replace: {
3302
3310
  * ```ts
3303
3311
  * import { Array } from "effect"
3304
3312
  *
3305
- * console.log(Array.replace([1, 2, 3], 1, 4)) // [1, 4, 3]
3313
+ * console.log(Array.replace([1, 2, 3], 1, 4)) // Option.some([1, 4, 3])
3306
3314
  * ```
3307
3315
  *
3308
3316
  * @see {@link modify} — transform an element with a function
@@ -3313,10 +3321,10 @@ export const replace: {
3313
3321
  */
3314
3322
  <B>(i: number, b: B): <A, S extends Iterable<A> = Iterable<A>>(
3315
3323
  self: S
3316
- ) => ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B> | undefined
3324
+ ) => Option.Option<ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B>>
3317
3325
  /**
3318
3326
  * Replaces the element at the specified index with a new value, returning a new
3319
- * array, or `undefined` if the index is out of bounds.
3327
+ * array, wrapped in an `Option`.
3320
3328
  *
3321
3329
  * - Does not mutate the input.
3322
3330
  *
@@ -3325,7 +3333,7 @@ export const replace: {
3325
3333
  * ```ts
3326
3334
  * import { Array } from "effect"
3327
3335
  *
3328
- * console.log(Array.replace([1, 2, 3], 1, 4)) // [1, 4, 3]
3336
+ * console.log(Array.replace([1, 2, 3], 1, 4)) // Option.some([1, 4, 3])
3329
3337
  * ```
3330
3338
  *
3331
3339
  * @see {@link modify} — transform an element with a function
@@ -3334,15 +3342,15 @@ export const replace: {
3334
3342
  * @category elements
3335
3343
  * @since 2.0.0
3336
3344
  */
3337
- <A, B, S extends Iterable<A> = Iterable<A>>(self: S, i: number, b: B): ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B> | undefined
3345
+ <A, B, S extends Iterable<A> = Iterable<A>>(self: S, i: number, b: B): Option.Option<ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B>>
3338
3346
  } = dual(
3339
3347
  3,
3340
- <A, B>(self: Iterable<A>, i: number, b: B): Array<A | B> | undefined => modify(self, i, () => b)
3348
+ <A, B>(self: Iterable<A>, i: number, b: B): Option.Option<Array<A | B>> => modify(self, i, () => b)
3341
3349
  )
3342
3350
 
3343
3351
  /**
3344
3352
  * Applies a function to the element at the specified index, returning a new
3345
- * array, or `undefined` if the index is out of bounds.
3353
+ * array, wrapped in an `Option`.
3346
3354
  *
3347
3355
  * - Does not mutate the input.
3348
3356
  *
@@ -3351,8 +3359,8 @@ export const replace: {
3351
3359
  * ```ts
3352
3360
  * import { Array } from "effect"
3353
3361
  *
3354
- * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // [1, 2, 6, 4]
3355
- * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // undefined
3362
+ * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // Option.some([1, 2, 6, 4])
3363
+ * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // Option.none()
3356
3364
  * ```
3357
3365
  *
3358
3366
  * @see {@link replace} — set a fixed value at an index
@@ -3365,7 +3373,7 @@ export const replace: {
3365
3373
  export const modify: {
3366
3374
  /**
3367
3375
  * Applies a function to the element at the specified index, returning a new
3368
- * array, or `undefined` if the index is out of bounds.
3376
+ * array, wrapped in an `Option`.
3369
3377
  *
3370
3378
  * - Does not mutate the input.
3371
3379
  *
@@ -3374,8 +3382,8 @@ export const modify: {
3374
3382
  * ```ts
3375
3383
  * import { Array } from "effect"
3376
3384
  *
3377
- * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // [1, 2, 6, 4]
3378
- * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // undefined
3385
+ * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // Option.some([1, 2, 6, 4])
3386
+ * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // Option.none()
3379
3387
  * ```
3380
3388
  *
3381
3389
  * @see {@link replace} — set a fixed value at an index
@@ -3385,10 +3393,10 @@ export const modify: {
3385
3393
  * @category elements
3386
3394
  * @since 2.0.0
3387
3395
  */
3388
- <A, B, S extends Iterable<A> = Iterable<A>>(i: number, f: (a: ReadonlyArray.Infer<S>) => B): (self: S) => ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B> | undefined
3396
+ <A, B, S extends Iterable<A> = Iterable<A>>(i: number, f: (a: ReadonlyArray.Infer<S>) => B): (self: S) => Option.Option<ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B>>
3389
3397
  /**
3390
3398
  * Applies a function to the element at the specified index, returning a new
3391
- * array, or `undefined` if the index is out of bounds.
3399
+ * array, wrapped in an `Option`.
3392
3400
  *
3393
3401
  * - Does not mutate the input.
3394
3402
  *
@@ -3397,8 +3405,8 @@ export const modify: {
3397
3405
  * ```ts
3398
3406
  * import { Array } from "effect"
3399
3407
  *
3400
- * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // [1, 2, 6, 4]
3401
- * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // undefined
3408
+ * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // Option.some([1, 2, 6, 4])
3409
+ * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // Option.none()
3402
3410
  * ```
3403
3411
  *
3404
3412
  * @see {@link replace} — set a fixed value at an index
@@ -3408,16 +3416,16 @@ export const modify: {
3408
3416
  * @category elements
3409
3417
  * @since 2.0.0
3410
3418
  */
3411
- <A, B, S extends Iterable<A> = Iterable<A>>(self: S, i: number, f: (a: ReadonlyArray.Infer<S>) => B): ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B> | undefined
3412
- } = dual(3, <A, B>(self: Iterable<A>, i: number, f: (a: A) => B): Array<A | B> | undefined => {
3419
+ <A, B, S extends Iterable<A> = Iterable<A>>(self: S, i: number, f: (a: ReadonlyArray.Infer<S>) => B): Option.Option<ReadonlyArray.With<S, ReadonlyArray.Infer<S> | B>>
3420
+ } = dual(3, <A, B>(self: Iterable<A>, i: number, f: (a: A) => B): Option.Option<Array<A | B>> => {
3413
3421
  const arr = Array.from(self)
3414
3422
  if (isOutOfBounds(i, arr)) {
3415
- return undefined
3423
+ return Option.none()
3416
3424
  }
3417
3425
  const out: Array<A | B> = arr
3418
3426
  const b = f(arr[i])
3419
3427
  out[i] = b
3420
- return out
3428
+ return Option.some(out)
3421
3429
  })
3422
3430
 
3423
3431
  /**
@@ -6272,98 +6280,6 @@ export const flatMap: {
6272
6280
  export const flatten: <const S extends ReadonlyArray<ReadonlyArray<any>>>(self: S) => ReadonlyArray.Flatten<S> =
6273
6281
  flatMap(identity) as any
6274
6282
 
6275
- /**
6276
- * Maps each element to a `Result`, then separates failures and successes into
6277
- * two arrays.
6278
- *
6279
- * - Returns `[failures, successes]`.
6280
- *
6281
- * **Example** (Partitioning by Result)
6282
- *
6283
- * ```ts
6284
- * import { Array, Result } from "effect"
6285
- *
6286
- * const result = Array.partitionMap(
6287
- * [1, 2, 3, 4, 5],
6288
- * (x) => x % 2 === 0 ? Result.succeed(x) : Result.fail(x)
6289
- * )
6290
- * console.log(result) // [[1, 3, 5], [2, 4]]
6291
- * ```
6292
- *
6293
- * @see {@link partition} — partition by predicate
6294
- * @see {@link separate} — partition an array of Results
6295
- *
6296
- * @category filtering
6297
- * @since 2.0.0
6298
- */
6299
- export const partitionMap: {
6300
- /**
6301
- * Maps each element to a `Result`, then separates failures and successes into
6302
- * two arrays.
6303
- *
6304
- * - Returns `[failures, successes]`.
6305
- *
6306
- * **Example** (Partitioning by Result)
6307
- *
6308
- * ```ts
6309
- * import { Array, Result } from "effect"
6310
- *
6311
- * const result = Array.partitionMap(
6312
- * [1, 2, 3, 4, 5],
6313
- * (x) => x % 2 === 0 ? Result.succeed(x) : Result.fail(x)
6314
- * )
6315
- * console.log(result) // [[1, 3, 5], [2, 4]]
6316
- * ```
6317
- *
6318
- * @see {@link partition} — partition by predicate
6319
- * @see {@link separate} — partition an array of Results
6320
- *
6321
- * @category filtering
6322
- * @since 2.0.0
6323
- */
6324
- <A, B, C>(f: (a: A, i: number) => Result.Result<C, B>): (self: Iterable<A>) => [fails: Array<B>, successes: Array<C>]
6325
- /**
6326
- * Maps each element to a `Result`, then separates failures and successes into
6327
- * two arrays.
6328
- *
6329
- * - Returns `[failures, successes]`.
6330
- *
6331
- * **Example** (Partitioning by Result)
6332
- *
6333
- * ```ts
6334
- * import { Array, Result } from "effect"
6335
- *
6336
- * const result = Array.partitionMap(
6337
- * [1, 2, 3, 4, 5],
6338
- * (x) => x % 2 === 0 ? Result.succeed(x) : Result.fail(x)
6339
- * )
6340
- * console.log(result) // [[1, 3, 5], [2, 4]]
6341
- * ```
6342
- *
6343
- * @see {@link partition} — partition by predicate
6344
- * @see {@link separate} — partition an array of Results
6345
- *
6346
- * @category filtering
6347
- * @since 2.0.0
6348
- */
6349
- <A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Result.Result<C, B>): [fails: Array<B>, successes: Array<C>]
6350
- } = dual(
6351
- 2,
6352
- <A, B, C>(self: Iterable<A>, f: (a: A, i: number) => Result.Result<C, B>): [fails: Array<B>, successes: Array<C>] => {
6353
- const failures: Array<B> = []
6354
- const successes: Array<C> = []
6355
- const as = fromIterable(self)
6356
- for (let i = 0; i < as.length; i++) {
6357
- const e = f(as[i], i)
6358
- if (Result.isFailure(e)) {
6359
- failures.push(e.failure)
6360
- } else {
6361
- successes.push(e.success)
6362
- }
6363
- }
6364
- return [failures, successes]
6365
- }
6366
- )
6367
6283
  /**
6368
6284
  * Extracts all `Some` values from an iterable of `Option`s, discarding `None`s.
6369
6285
  *
@@ -6459,65 +6375,100 @@ export const getSuccesses = <T extends Iterable<Result.Result<any, any>>>(
6459
6375
  }
6460
6376
 
6461
6377
  /**
6462
- * Keeps only elements satisfying a predicate (or refinement).
6378
+ * Keeps transformed values for elements where a `Filter` succeeds.
6463
6379
  *
6464
- * - The predicate receives `(element, index)`.
6465
- * - Supports refinements for type narrowing.
6380
+ * - The filter receives `(element, index)`.
6381
+ * - Failures are discarded.
6466
6382
  *
6467
- * **Example** (Filtering even numbers)
6383
+ * **Example** (Filter and transform)
6468
6384
  *
6469
6385
  * ```ts
6470
- * import { Array } from "effect"
6386
+ * import { Array, Result } from "effect"
6471
6387
  *
6472
- * console.log(Array.filter([1, 2, 3, 4], (x) => x % 2 === 0)) // [2, 4]
6388
+ * console.log(Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid))
6389
+ * // [20, 40]
6473
6390
  * ```
6474
6391
  *
6475
- * @see {@link partition} — split into matching and non-matching
6392
+ * @see {@link filter} — keep original elements matching a predicate
6476
6393
  *
6477
6394
  * @category filtering
6478
- * @since 2.0.0
6395
+ * @since 4.0.0
6479
6396
  */
6480
- export const filter: {
6397
+ export const filterMap: {
6481
6398
  /**
6482
- * Keeps only elements satisfying a predicate (or refinement).
6399
+ * Keeps transformed values for elements where a `Filter` succeeds.
6483
6400
  *
6484
- * - The predicate receives `(element, index)`.
6485
- * - Supports refinements for type narrowing.
6401
+ * - The filter receives `(element, index)`.
6402
+ * - Failures are discarded.
6486
6403
  *
6487
- * **Example** (Filtering even numbers)
6404
+ * **Example** (Filter and transform)
6488
6405
  *
6489
6406
  * ```ts
6490
- * import { Array } from "effect"
6407
+ * import { Array, Result } from "effect"
6491
6408
  *
6492
- * console.log(Array.filter([1, 2, 3, 4], (x) => x % 2 === 0)) // [2, 4]
6409
+ * console.log(Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid))
6410
+ * // [20, 40]
6493
6411
  * ```
6494
6412
  *
6495
- * @see {@link partition} — split into matching and non-matching
6413
+ * @see {@link filter} — keep original elements matching a predicate
6496
6414
  *
6497
6415
  * @category filtering
6498
- * @since 2.0.0
6416
+ * @since 4.0.0
6499
6417
  */
6500
- <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Array<B>
6418
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<B>
6501
6419
  /**
6502
- * Keeps only elements satisfying a predicate (or refinement).
6420
+ * Keeps transformed values for elements where a `Filter` succeeds.
6503
6421
  *
6504
- * - The predicate receives `(element, index)`.
6505
- * - Supports refinements for type narrowing.
6422
+ * - The filter receives `(element, index)`.
6423
+ * - Failures are discarded.
6506
6424
  *
6507
- * **Example** (Filtering even numbers)
6425
+ * **Example** (Filter and transform)
6508
6426
  *
6509
6427
  * ```ts
6510
- * import { Array } from "effect"
6428
+ * import { Array, Result } from "effect"
6511
6429
  *
6512
- * console.log(Array.filter([1, 2, 3, 4], (x) => x % 2 === 0)) // [2, 4]
6430
+ * console.log(Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid))
6431
+ * // [20, 40]
6513
6432
  * ```
6514
6433
  *
6515
- * @see {@link partition} — split into matching and non-matching
6434
+ * @see {@link filter} — keep original elements matching a predicate
6516
6435
  *
6517
6436
  * @category filtering
6518
- * @since 2.0.0
6437
+ * @since 4.0.0
6519
6438
  */
6520
- <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Array<A>
6439
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<B>
6440
+ } = dual(2, <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<B> => {
6441
+ const as = fromIterable(self)
6442
+ const out: Array<B> = []
6443
+ for (let i = 0; i < as.length; i++) {
6444
+ const result = f(as[i], i)
6445
+ if (Result.isSuccess(result)) {
6446
+ out.push(result.success)
6447
+ }
6448
+ }
6449
+ return out
6450
+ })
6451
+
6452
+ /**
6453
+ * Keeps only elements satisfying a predicate (or refinement).
6454
+ *
6455
+ * - The predicate receives `(element, index)`.
6456
+ * - Supports refinements for type narrowing.
6457
+ *
6458
+ * **Example** (Filtering even numbers)
6459
+ *
6460
+ * ```ts
6461
+ * import { Array } from "effect"
6462
+ *
6463
+ * console.log(Array.filter([1, 2, 3, 4], (x) => x % 2 === 0)) // [2, 4]
6464
+ * ```
6465
+ *
6466
+ * @see {@link partition} — split into matching and non-matching
6467
+ *
6468
+ * @category filtering
6469
+ * @since 2.0.0
6470
+ */
6471
+ export const filter: {
6521
6472
  /**
6522
6473
  * Keeps only elements satisfying a predicate (or refinement).
6523
6474
  *
@@ -6537,7 +6488,7 @@ export const filter: {
6537
6488
  * @category filtering
6538
6489
  * @since 2.0.0
6539
6490
  */
6540
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X>): (self: Iterable<A>) => Array<B>
6491
+ <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Array<B>
6541
6492
  /**
6542
6493
  * Keeps only elements satisfying a predicate (or refinement).
6543
6494
  *
@@ -6557,7 +6508,7 @@ export const filter: {
6557
6508
  * @category filtering
6558
6509
  * @since 2.0.0
6559
6510
  */
6560
- <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
6511
+ <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Array<A>
6561
6512
  /**
6562
6513
  * Keeps only elements satisfying a predicate (or refinement).
6563
6514
  *
@@ -6577,7 +6528,7 @@ export const filter: {
6577
6528
  * @category filtering
6578
6529
  * @since 2.0.0
6579
6530
  */
6580
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
6531
+ <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
6581
6532
  /**
6582
6533
  * Keeps only elements satisfying a predicate (or refinement).
6583
6534
  *
@@ -6597,16 +6548,15 @@ export const filter: {
6597
6548
  * @category filtering
6598
6549
  * @since 2.0.0
6599
6550
  */
6600
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X>): Array<B>
6551
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
6601
6552
  } = dual(
6602
6553
  2,
6603
- <A>(self: Iterable<A>, f: Filter.Filter<A, any, any> | ((a: A, i: number) => boolean)): Array<any> => {
6554
+ <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A> => {
6604
6555
  const as = fromIterable(self)
6605
- const out: Array<any> = []
6556
+ const out: Array<A> = []
6606
6557
  for (let i = 0; i < as.length; i++) {
6607
- const result = Filter.apply(f as any, as[i], i)
6608
- if (!Result.isFailure(result)) {
6609
- out.push(result.success)
6558
+ if (predicate(as[i], i)) {
6559
+ out.push(as[i])
6610
6560
  }
6611
6561
  }
6612
6562
  return out
@@ -6614,190 +6564,93 @@ export const filter: {
6614
6564
  )
6615
6565
 
6616
6566
  /**
6617
- * Splits an iterable into two arrays: elements that fail the predicate and
6618
- * elements that satisfy it.
6567
+ * Splits an iterable using a `Filter` into failures and successes.
6619
6568
  *
6620
6569
  * - Returns `[excluded, satisfying]`.
6621
- * - Supports refinements for type narrowing.
6570
+ * - The filter receives `(element, index)`.
6622
6571
  *
6623
- * **Example** (Partitioning by predicate)
6572
+ * **Example** (Partitioning with a filter)
6624
6573
  *
6625
6574
  * ```ts
6626
- * import { Array } from "effect"
6575
+ * import { Array, Result } from "effect"
6627
6576
  *
6628
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6577
+ * console.log(Array.partition([1, -2, 3], (n, i) =>
6578
+ * n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
6579
+ * ))
6580
+ * // [["negative:-2"], [1, 5]]
6629
6581
  * ```
6630
6582
  *
6631
6583
  * @see {@link filter} — keep only matching elements
6632
6584
  * @see {@link partitionMap} — partition using a Result-returning function
6633
6585
  *
6634
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6635
- *
6636
6586
  * @category filtering
6637
6587
  * @since 2.0.0
6638
6588
  */
6639
6589
  export const partition: {
6640
6590
  /**
6641
- * Splits an iterable into two arrays: elements that fail the predicate and
6642
- * elements that satisfy it.
6591
+ * Splits an iterable using a `Filter` into failures and successes.
6643
6592
  *
6644
6593
  * - Returns `[excluded, satisfying]`.
6645
- * - Supports refinements for type narrowing.
6594
+ * - The filter receives `(element, index)`.
6646
6595
  *
6647
- * **Example** (Partitioning by predicate)
6596
+ * **Example** (Partitioning with a filter)
6648
6597
  *
6649
6598
  * ```ts
6650
- * import { Array } from "effect"
6651
- *
6652
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6653
- * ```
6654
- *
6655
- * @see {@link filter} — keep only matching elements
6656
- * @see {@link partitionMap} — partition using a Result-returning function
6657
- *
6658
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6659
- *
6660
- * @category filtering
6661
- * @since 2.0.0
6662
- */
6663
- <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (
6664
- self: Iterable<A>
6665
- ) => [excluded: Array<Exclude<A, B>>, satisfying: Array<B>]
6666
- /**
6667
- * Splits an iterable into two arrays: elements that fail the predicate and
6668
- * elements that satisfy it.
6669
- *
6670
- * - Returns `[excluded, satisfying]`.
6671
- * - Supports refinements for type narrowing.
6672
- *
6673
- * **Example** (Partitioning by predicate)
6674
- *
6675
- * ```ts
6676
- * import { Array } from "effect"
6677
- *
6678
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6679
- * ```
6680
- *
6681
- * @see {@link filter} — keep only matching elements
6682
- * @see {@link partitionMap} — partition using a Result-returning function
6683
- *
6684
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6685
- *
6686
- * @category filtering
6687
- * @since 2.0.0
6688
- */
6689
- <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => [excluded: Array<A>, satisfying: Array<A>]
6690
- /**
6691
- * Splits an iterable into two arrays: elements that fail the predicate and
6692
- * elements that satisfy it.
6693
- *
6694
- * - Returns `[excluded, satisfying]`.
6695
- * - Supports refinements for type narrowing.
6696
- *
6697
- * **Example** (Partitioning by predicate)
6698
- *
6699
- * ```ts
6700
- * import { Array } from "effect"
6701
- *
6702
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6703
- * ```
6704
- *
6705
- * @see {@link filter} — keep only matching elements
6706
- * @see {@link partitionMap} — partition using a Result-returning function
6707
- *
6708
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6709
- *
6710
- * @category filtering
6711
- * @since 2.0.0
6712
- */
6713
- <A, Pass, Fail>(f: Filter.Filter<A, Pass, Fail>): (self: Iterable<A>) => [excluded: Array<Fail>, satisfying: Array<Pass>]
6714
- /**
6715
- * Splits an iterable into two arrays: elements that fail the predicate and
6716
- * elements that satisfy it.
6717
- *
6718
- * - Returns `[excluded, satisfying]`.
6719
- * - Supports refinements for type narrowing.
6720
- *
6721
- * **Example** (Partitioning by predicate)
6722
- *
6723
- * ```ts
6724
- * import { Array } from "effect"
6725
- *
6726
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6727
- * ```
6728
- *
6729
- * @see {@link filter} — keep only matching elements
6730
- * @see {@link partitionMap} — partition using a Result-returning function
6731
- *
6732
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6733
- *
6734
- * @category filtering
6735
- * @since 2.0.0
6736
- */
6737
- <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): [excluded: Array<Exclude<A, B>>, satisfying: Array<B>]
6738
- /**
6739
- * Splits an iterable into two arrays: elements that fail the predicate and
6740
- * elements that satisfy it.
6741
- *
6742
- * - Returns `[excluded, satisfying]`.
6743
- * - Supports refinements for type narrowing.
6744
- *
6745
- * **Example** (Partitioning by predicate)
6746
- *
6747
- * ```ts
6748
- * import { Array } from "effect"
6599
+ * import { Array, Result } from "effect"
6749
6600
  *
6750
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6601
+ * console.log(Array.partition([1, -2, 3], (n, i) =>
6602
+ * n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
6603
+ * ))
6604
+ * // [["negative:-2"], [1, 5]]
6751
6605
  * ```
6752
6606
  *
6753
6607
  * @see {@link filter} — keep only matching elements
6754
6608
  * @see {@link partitionMap} — partition using a Result-returning function
6755
6609
  *
6756
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6757
- *
6758
6610
  * @category filtering
6759
6611
  * @since 2.0.0
6760
6612
  */
6761
- <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): [excluded: Array<A>, satisfying: Array<A>]
6613
+ <A, Pass, Fail>(f: (input: NoInfer<A>, i: number) => Result.Result<Pass, Fail>): (self: Iterable<A>) => [excluded: Array<Fail>, satisfying: Array<Pass>]
6762
6614
  /**
6763
- * Splits an iterable into two arrays: elements that fail the predicate and
6764
- * elements that satisfy it.
6615
+ * Splits an iterable using a `Filter` into failures and successes.
6765
6616
  *
6766
6617
  * - Returns `[excluded, satisfying]`.
6767
- * - Supports refinements for type narrowing.
6618
+ * - The filter receives `(element, index)`.
6768
6619
  *
6769
- * **Example** (Partitioning by predicate)
6620
+ * **Example** (Partitioning with a filter)
6770
6621
  *
6771
6622
  * ```ts
6772
- * import { Array } from "effect"
6623
+ * import { Array, Result } from "effect"
6773
6624
  *
6774
- * console.log(Array.partition([1, 2, 3, 4], (n) => n % 2 === 0)) // [[1, 3], [2, 4]]
6625
+ * console.log(Array.partition([1, -2, 3], (n, i) =>
6626
+ * n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
6627
+ * ))
6628
+ * // [["negative:-2"], [1, 5]]
6775
6629
  * ```
6776
6630
  *
6777
6631
  * @see {@link filter} — keep only matching elements
6778
6632
  * @see {@link partitionMap} — partition using a Result-returning function
6779
6633
  *
6780
- * Also accepts a `Filter` to split elements with custom pass/fail payloads.
6781
- *
6782
6634
  * @category filtering
6783
6635
  * @since 2.0.0
6784
6636
  */
6785
- <A, Pass, Fail>(self: Iterable<A>, f: Filter.Filter<A, Pass, Fail>): [excluded: Array<Fail>, satisfying: Array<Pass>]
6637
+ <A, Pass, Fail>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<Pass, Fail>): [excluded: Array<Fail>, satisfying: Array<Pass>]
6786
6638
  } = dual(
6787
6639
  2,
6788
- <A>(
6640
+ <A, Pass, Fail>(
6789
6641
  self: Iterable<A>,
6790
- f: Filter.Filter<A, any, any> | ((a: A, i: number) => boolean)
6791
- ): [excluded: Array<any>, satisfying: Array<any>] => {
6792
- const excluded: Array<any> = []
6793
- const satisfying: Array<any> = []
6794
- const as = fromIterable(self)
6795
- for (let i = 0; i < as.length; i++) {
6796
- const result = f(as[i], i)
6797
- if (result === true) satisfying.push(as[i])
6798
- else if (result === false) excluded.push(as[i])
6799
- else if (Result.isSuccess(result)) satisfying.push(result.success)
6800
- else excluded.push(result.failure)
6642
+ f: (input: A, i: number) => Result.Result<Pass, Fail>
6643
+ ): [excluded: Array<Fail>, satisfying: Array<Pass>] => {
6644
+ const excluded: Array<Fail> = []
6645
+ const satisfying: Array<Pass> = []
6646
+ let i = 0
6647
+ for (const a of self) {
6648
+ const result = f(a, i++)
6649
+ if (Result.isSuccess(result)) {
6650
+ satisfying.push(result.success)
6651
+ } else {
6652
+ excluded.push(result.failure)
6653
+ }
6801
6654
  }
6802
6655
  return [excluded, satisfying]
6803
6656
  }
@@ -6831,7 +6684,7 @@ export const separate: <T extends Iterable<Result.Result<any, any>>>(
6831
6684
  ) => [
6832
6685
  failures: Array<Result.Result.Failure<ReadonlyArray.Infer<T>>>,
6833
6686
  successes: Array<Result.Result.Success<ReadonlyArray.Infer<T>>>
6834
- ] = partitionMap(identity)
6687
+ ] = partition(identity)
6835
6688
 
6836
6689
  /**
6837
6690
  * Folds an iterable from left to right into a single value.
@@ -7523,14 +7376,15 @@ export const max: {
7523
7376
 
7524
7377
  /**
7525
7378
  * Builds an array by repeatedly applying a function to a seed value. The
7526
- * function returns `[element, nextSeed]` to continue, or `undefined` to stop.
7379
+ * function returns `Option.some([element, nextSeed])` to continue, or
7380
+ * `Option.none()` to stop.
7527
7381
  *
7528
7382
  * **Example** (Generating a sequence)
7529
7383
  *
7530
7384
  * ```ts
7531
- * import { Array } from "effect"
7385
+ * import { Array, Option } from "effect"
7532
7386
  *
7533
- * console.log(Array.unfold(1, (n) => n <= 5 ? [n, n + 1] : undefined))
7387
+ * console.log(Array.unfold(1, (n) => n <= 5 ? Option.some([n, n + 1]) : Option.none()))
7534
7388
  * // [1, 2, 3, 4, 5]
7535
7389
  * ```
7536
7390
  *
@@ -7540,12 +7394,15 @@ export const max: {
7540
7394
  * @category constructors
7541
7395
  * @since 2.0.0
7542
7396
  */
7543
- export const unfold = <B, A>(b: B, f: (b: B) => readonly [A, B] | undefined): Array<A> => {
7397
+ export const unfold = <B, A>(b: B, f: (b: B) => Option.Option<readonly [A, B]>): Array<A> => {
7544
7398
  const out: Array<A> = []
7545
7399
  let next: B = b
7546
- let o: readonly [A, B] | undefined
7547
- while ((o = f(next))) {
7548
- const [a, b] = o
7400
+ while (true) {
7401
+ const o = f(next)
7402
+ if (Option.isNone(o)) {
7403
+ break
7404
+ }
7405
+ const [a, b] = o.value
7549
7406
  out.push(a)
7550
7407
  next = b
7551
7408
  }