effect 4.0.0-beta.101 → 4.0.0-beta.103

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 (1580) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +462 -412
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +541 -449
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +226 -174
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +339 -267
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +122 -87
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +18 -24
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2897 -3342
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1383 -1580
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +109 -75
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +230 -307
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +46 -103
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +300 -239
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +207 -452
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +16 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +10 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +202 -645
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +190 -292
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +213 -393
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  265. package/dist/PartitionedSemaphore.js +1 -4
  266. package/dist/PartitionedSemaphore.js.map +1 -1
  267. package/dist/Path.d.ts +38 -41
  268. package/dist/Path.d.ts.map +1 -1
  269. package/dist/Path.js +3 -4
  270. package/dist/Path.js.map +1 -1
  271. package/dist/Pipeable.d.ts +6 -5
  272. package/dist/Pipeable.d.ts.map +1 -1
  273. package/dist/Pipeable.js +2 -2
  274. package/dist/Pipeable.js.map +1 -1
  275. package/dist/PlatformError.d.ts +4 -4
  276. package/dist/PlatformError.js +3 -3
  277. package/dist/PlatformError.js.map +1 -1
  278. package/dist/Pool.d.ts +4 -2
  279. package/dist/Pool.d.ts.map +1 -1
  280. package/dist/Pool.js +4 -2
  281. package/dist/Pool.js.map +1 -1
  282. package/dist/Predicate.d.ts +200 -181
  283. package/dist/Predicate.d.ts.map +1 -1
  284. package/dist/Predicate.js +100 -108
  285. package/dist/Predicate.js.map +1 -1
  286. package/dist/PrimaryKey.d.ts +7 -7
  287. package/dist/PrimaryKey.js +5 -5
  288. package/dist/PrimaryKey.js.map +1 -1
  289. package/dist/PubSub.d.ts +425 -494
  290. package/dist/PubSub.d.ts.map +1 -1
  291. package/dist/PubSub.js +373 -362
  292. package/dist/PubSub.js.map +1 -1
  293. package/dist/Pull.d.ts +24 -18
  294. package/dist/Pull.d.ts.map +1 -1
  295. package/dist/Pull.js +11 -9
  296. package/dist/Pull.js.map +1 -1
  297. package/dist/Queue.d.ts +200 -159
  298. package/dist/Queue.d.ts.map +1 -1
  299. package/dist/Queue.js +162 -132
  300. package/dist/Queue.js.map +1 -1
  301. package/dist/Random.d.ts +49 -74
  302. package/dist/Random.d.ts.map +1 -1
  303. package/dist/Random.js +35 -54
  304. package/dist/Random.js.map +1 -1
  305. package/dist/RcMap.d.ts +121 -63
  306. package/dist/RcMap.d.ts.map +1 -1
  307. package/dist/RcMap.js +42 -21
  308. package/dist/RcMap.js.map +1 -1
  309. package/dist/RcRef.d.ts +24 -13
  310. package/dist/RcRef.d.ts.map +1 -1
  311. package/dist/RcRef.js +15 -9
  312. package/dist/RcRef.js.map +1 -1
  313. package/dist/Record.d.ts +361 -466
  314. package/dist/Record.d.ts.map +1 -1
  315. package/dist/Record.js +163 -216
  316. package/dist/Record.js.map +1 -1
  317. package/dist/Redactable.d.ts +6 -2
  318. package/dist/Redactable.d.ts.map +1 -1
  319. package/dist/Redactable.js +7 -2
  320. package/dist/Redactable.js.map +1 -1
  321. package/dist/Redacted.d.ts +25 -25
  322. package/dist/Redacted.d.ts.map +1 -1
  323. package/dist/Redacted.js +19 -20
  324. package/dist/Redacted.js.map +1 -1
  325. package/dist/Reducer.d.ts +8 -15
  326. package/dist/Reducer.d.ts.map +1 -1
  327. package/dist/Reducer.js +6 -12
  328. package/dist/Reducer.js.map +1 -1
  329. package/dist/Ref.d.ts +95 -165
  330. package/dist/Ref.d.ts.map +1 -1
  331. package/dist/Ref.js +75 -122
  332. package/dist/Ref.js.map +1 -1
  333. package/dist/References.d.ts +102 -213
  334. package/dist/References.d.ts.map +1 -1
  335. package/dist/References.js +102 -213
  336. package/dist/References.js.map +1 -1
  337. package/dist/RegExp.d.ts +10 -14
  338. package/dist/RegExp.d.ts.map +1 -1
  339. package/dist/RegExp.js +10 -14
  340. package/dist/RegExp.js.map +1 -1
  341. package/dist/Request.d.ts +31 -21
  342. package/dist/Request.d.ts.map +1 -1
  343. package/dist/Request.js +25 -19
  344. package/dist/Request.js.map +1 -1
  345. package/dist/RequestResolver.d.ts +201 -90
  346. package/dist/RequestResolver.d.ts.map +1 -1
  347. package/dist/RequestResolver.js +87 -41
  348. package/dist/RequestResolver.js.map +1 -1
  349. package/dist/Resource.js.map +1 -1
  350. package/dist/Result.d.ts +302 -470
  351. package/dist/Result.d.ts.map +1 -1
  352. package/dist/Result.js +135 -218
  353. package/dist/Result.js.map +1 -1
  354. package/dist/Runtime.d.ts +50 -75
  355. package/dist/Runtime.d.ts.map +1 -1
  356. package/dist/Runtime.js +39 -60
  357. package/dist/Runtime.js.map +1 -1
  358. package/dist/Schedule.d.ts +290 -1636
  359. package/dist/Schedule.d.ts.map +1 -1
  360. package/dist/Schedule.js +162 -803
  361. package/dist/Schedule.js.map +1 -1
  362. package/dist/Scheduler.d.ts +5 -5
  363. package/dist/Scheduler.d.ts.map +1 -1
  364. package/dist/Scheduler.js +18 -6
  365. package/dist/Scheduler.js.map +1 -1
  366. package/dist/Schema.d.ts +1835 -1060
  367. package/dist/Schema.d.ts.map +1 -1
  368. package/dist/Schema.js +2708 -1050
  369. package/dist/Schema.js.map +1 -1
  370. package/dist/SchemaAST.d.ts +29 -52
  371. package/dist/SchemaAST.d.ts.map +1 -1
  372. package/dist/SchemaAST.js +537 -391
  373. package/dist/SchemaAST.js.map +1 -1
  374. package/dist/SchemaError.d.ts +7 -6
  375. package/dist/SchemaError.d.ts.map +1 -1
  376. package/dist/SchemaError.js +8 -7
  377. package/dist/SchemaError.js.map +1 -1
  378. package/dist/SchemaGetter.d.ts +230 -185
  379. package/dist/SchemaGetter.d.ts.map +1 -1
  380. package/dist/SchemaGetter.js +252 -209
  381. package/dist/SchemaGetter.js.map +1 -1
  382. package/dist/SchemaIssue.d.ts +62 -190
  383. package/dist/SchemaIssue.d.ts.map +1 -1
  384. package/dist/SchemaIssue.js +74 -266
  385. package/dist/SchemaIssue.js.map +1 -1
  386. package/dist/SchemaParser.d.ts +2 -2
  387. package/dist/SchemaParser.d.ts.map +1 -1
  388. package/dist/SchemaParser.js +123 -86
  389. package/dist/SchemaParser.js.map +1 -1
  390. package/dist/SchemaRepresentation.d.ts +398 -1513
  391. package/dist/SchemaRepresentation.d.ts.map +1 -1
  392. package/dist/SchemaRepresentation.js +290 -2854
  393. package/dist/SchemaRepresentation.js.map +1 -1
  394. package/dist/SchemaTransformation.d.ts +116 -76
  395. package/dist/SchemaTransformation.d.ts.map +1 -1
  396. package/dist/SchemaTransformation.js +123 -88
  397. package/dist/SchemaTransformation.js.map +1 -1
  398. package/dist/Scope.d.ts +123 -151
  399. package/dist/Scope.d.ts.map +1 -1
  400. package/dist/Scope.js +72 -92
  401. package/dist/Scope.js.map +1 -1
  402. package/dist/ScopedCache.js.map +1 -1
  403. package/dist/ScopedRef.d.ts +3 -3
  404. package/dist/ScopedRef.js +2 -2
  405. package/dist/ScopedRef.js.map +1 -1
  406. package/dist/Semaphore.d.ts +101 -13
  407. package/dist/Semaphore.d.ts.map +1 -1
  408. package/dist/Semaphore.js +78 -39
  409. package/dist/Semaphore.js.map +1 -1
  410. package/dist/Sink.d.ts +117 -107
  411. package/dist/Sink.d.ts.map +1 -1
  412. package/dist/Sink.js +107 -100
  413. package/dist/Sink.js.map +1 -1
  414. package/dist/Stdio.d.ts +1 -1
  415. package/dist/Stdio.js.map +1 -1
  416. package/dist/Stream.d.ts +2430 -2958
  417. package/dist/Stream.d.ts.map +1 -1
  418. package/dist/Stream.js +1124 -1397
  419. package/dist/Stream.js.map +1 -1
  420. package/dist/String.d.ts +262 -308
  421. package/dist/String.d.ts.map +1 -1
  422. package/dist/String.js +184 -215
  423. package/dist/String.js.map +1 -1
  424. package/dist/Struct.d.ts +109 -114
  425. package/dist/Struct.d.ts.map +1 -1
  426. package/dist/Struct.js +46 -54
  427. package/dist/Struct.js.map +1 -1
  428. package/dist/SubscriptionRef.d.ts +282 -250
  429. package/dist/SubscriptionRef.d.ts.map +1 -1
  430. package/dist/SubscriptionRef.js +104 -92
  431. package/dist/SubscriptionRef.js.map +1 -1
  432. package/dist/Symbol.d.ts +3 -3
  433. package/dist/Symbol.js +3 -3
  434. package/dist/Symbol.js.map +1 -1
  435. package/dist/SynchronizedRef.js.map +1 -1
  436. package/dist/Take.js.map +1 -1
  437. package/dist/Terminal.d.ts +2 -2
  438. package/dist/Terminal.js +1 -1
  439. package/dist/Terminal.js.map +1 -1
  440. package/dist/Tracer.d.ts +100 -54
  441. package/dist/Tracer.d.ts.map +1 -1
  442. package/dist/Tracer.js +41 -24
  443. package/dist/Tracer.js.map +1 -1
  444. package/dist/Trie.d.ts +287 -679
  445. package/dist/Trie.d.ts.map +1 -1
  446. package/dist/Trie.js +109 -251
  447. package/dist/Trie.js.map +1 -1
  448. package/dist/Tuple.d.ts +92 -127
  449. package/dist/Tuple.d.ts.map +1 -1
  450. package/dist/Tuple.js +42 -57
  451. package/dist/Tuple.js.map +1 -1
  452. package/dist/TxChunk.d.ts +201 -121
  453. package/dist/TxChunk.d.ts.map +1 -1
  454. package/dist/TxChunk.js +85 -56
  455. package/dist/TxChunk.js.map +1 -1
  456. package/dist/TxDeferred.d.ts +62 -46
  457. package/dist/TxDeferred.d.ts.map +1 -1
  458. package/dist/TxDeferred.js +30 -22
  459. package/dist/TxDeferred.js.map +1 -1
  460. package/dist/TxHashMap.d.ts +631 -779
  461. package/dist/TxHashMap.d.ts.map +1 -1
  462. package/dist/TxHashMap.js +268 -330
  463. package/dist/TxHashMap.js.map +1 -1
  464. package/dist/TxHashSet.d.ts +297 -236
  465. package/dist/TxHashSet.d.ts.map +1 -1
  466. package/dist/TxHashSet.js +130 -100
  467. package/dist/TxHashSet.js.map +1 -1
  468. package/dist/TxPriorityQueue.d.ts +126 -95
  469. package/dist/TxPriorityQueue.d.ts.map +1 -1
  470. package/dist/TxPriorityQueue.js +74 -56
  471. package/dist/TxPriorityQueue.js.map +1 -1
  472. package/dist/TxPubSub.d.ts +101 -88
  473. package/dist/TxPubSub.d.ts.map +1 -1
  474. package/dist/TxPubSub.js +87 -66
  475. package/dist/TxPubSub.js.map +1 -1
  476. package/dist/TxQueue.d.ts +200 -180
  477. package/dist/TxQueue.d.ts.map +1 -1
  478. package/dist/TxQueue.js +160 -136
  479. package/dist/TxQueue.js.map +1 -1
  480. package/dist/TxReentrantLock.d.ts +97 -66
  481. package/dist/TxReentrantLock.d.ts.map +1 -1
  482. package/dist/TxReentrantLock.js +67 -45
  483. package/dist/TxReentrantLock.js.map +1 -1
  484. package/dist/TxRef.d.ts +51 -32
  485. package/dist/TxRef.d.ts.map +1 -1
  486. package/dist/TxRef.js +23 -15
  487. package/dist/TxRef.js.map +1 -1
  488. package/dist/TxSemaphore.d.ts +129 -95
  489. package/dist/TxSemaphore.d.ts.map +1 -1
  490. package/dist/TxSemaphore.js +85 -70
  491. package/dist/TxSemaphore.js.map +1 -1
  492. package/dist/TxSubscriptionRef.d.ts +97 -70
  493. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  494. package/dist/TxSubscriptionRef.js +44 -34
  495. package/dist/TxSubscriptionRef.js.map +1 -1
  496. package/dist/Types.d.ts +127 -70
  497. package/dist/Types.d.ts.map +1 -1
  498. package/dist/UndefinedOr.js.map +1 -1
  499. package/dist/Unify.d.ts +45 -65
  500. package/dist/Unify.d.ts.map +1 -1
  501. package/dist/Unify.js +6 -9
  502. package/dist/Unify.js.map +1 -1
  503. package/dist/Utils.d.ts +23 -16
  504. package/dist/Utils.d.ts.map +1 -1
  505. package/dist/Utils.js +3 -7
  506. package/dist/Utils.js.map +1 -1
  507. package/dist/index.d.ts +0 -4
  508. package/dist/index.d.ts.map +1 -1
  509. package/dist/index.js +0 -4
  510. package/dist/index.js.map +1 -1
  511. package/dist/internal/array.js.map +1 -1
  512. package/dist/internal/core.js +3 -2
  513. package/dist/internal/core.js.map +1 -1
  514. package/dist/internal/dateTime.js +4 -0
  515. package/dist/internal/dateTime.js.map +1 -1
  516. package/dist/internal/doNotation.js.map +1 -1
  517. package/dist/internal/effect.js +141 -61
  518. package/dist/internal/effect.js.map +1 -1
  519. package/dist/internal/equal.js.map +1 -1
  520. package/dist/internal/errors.js.map +1 -1
  521. package/dist/internal/executionPlan.js.map +1 -1
  522. package/dist/internal/hashMap.js.map +1 -1
  523. package/dist/internal/hashSet.js.map +1 -1
  524. package/dist/internal/layer.js.map +1 -1
  525. package/dist/internal/matcher.js +1 -1
  526. package/dist/internal/matcher.js.map +1 -1
  527. package/dist/internal/metric.js.map +1 -1
  528. package/dist/internal/option.js.map +1 -1
  529. package/dist/internal/persistence.d.ts +2 -0
  530. package/dist/internal/persistence.d.ts.map +1 -0
  531. package/dist/internal/persistence.js +3 -0
  532. package/dist/internal/persistence.js.map +1 -0
  533. package/dist/internal/random.js.map +1 -1
  534. package/dist/internal/rcRef.js.map +1 -1
  535. package/dist/internal/record.d.ts +0 -3
  536. package/dist/internal/record.d.ts.map +1 -1
  537. package/dist/internal/record.js +10 -5
  538. package/dist/internal/record.js.map +1 -1
  539. package/dist/internal/redacted.js.map +1 -1
  540. package/dist/internal/references.js +3 -4
  541. package/dist/internal/references.js.map +1 -1
  542. package/dist/internal/request.js.map +1 -1
  543. package/dist/internal/result.js.map +1 -1
  544. package/dist/internal/schedule.js.map +1 -1
  545. package/dist/internal/schema/annotations.js +12 -0
  546. package/dist/internal/schema/annotations.js.map +1 -1
  547. package/dist/internal/schema/cause.js.map +1 -1
  548. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  549. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  550. package/dist/internal/schema/fromJsonSchemaDocument.js +745 -0
  551. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  552. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  553. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  554. package/dist/internal/schema/fromRepresentation.js +245 -0
  555. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  556. package/dist/internal/schema/parser.d.ts +14 -0
  557. package/dist/internal/schema/parser.d.ts.map +1 -0
  558. package/dist/internal/schema/parser.js +13 -0
  559. package/dist/internal/schema/parser.js.map +1 -0
  560. package/dist/internal/schema/schema.js +28 -40
  561. package/dist/internal/schema/schema.js.map +1 -1
  562. package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
  563. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  564. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
  565. package/dist/internal/schema/toArbitrary.js.map +1 -0
  566. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  567. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  568. package/dist/internal/schema/toCodeDocument.js +438 -0
  569. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  570. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  571. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  572. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  573. package/dist/internal/schema/toEquivalence.js.map +1 -0
  574. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  575. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  576. package/dist/internal/schema/toJsonSchemaDocument.js +508 -0
  577. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  578. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  579. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  580. package/dist/internal/schema/toRepresentation.js +349 -0
  581. package/dist/internal/schema/toRepresentation.js.map +1 -0
  582. package/dist/internal/stackTraceLimit.js +3 -6
  583. package/dist/internal/stackTraceLimit.js.map +1 -1
  584. package/dist/internal/stream.js.map +1 -1
  585. package/dist/internal/tracer.js.map +1 -1
  586. package/dist/internal/trie.js +13 -9
  587. package/dist/internal/trie.js.map +1 -1
  588. package/dist/testing/FastCheck.d.ts +8 -7
  589. package/dist/testing/FastCheck.d.ts.map +1 -1
  590. package/dist/testing/FastCheck.js +8 -7
  591. package/dist/testing/FastCheck.js.map +1 -1
  592. package/dist/testing/TestClock.d.ts +57 -28
  593. package/dist/testing/TestClock.d.ts.map +1 -1
  594. package/dist/testing/TestClock.js +54 -19
  595. package/dist/testing/TestClock.js.map +1 -1
  596. package/dist/testing/TestConsole.d.ts +32 -31
  597. package/dist/testing/TestConsole.d.ts.map +1 -1
  598. package/dist/testing/TestConsole.js +24 -22
  599. package/dist/testing/TestConsole.js.map +1 -1
  600. package/dist/testing/TestSchema.d.ts +29 -29
  601. package/dist/testing/TestSchema.js +25 -25
  602. package/dist/testing/TestSchema.js.map +1 -1
  603. package/dist/testing/index.js.map +1 -1
  604. package/dist/unstable/ai/AiError.d.ts +121 -144
  605. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  606. package/dist/unstable/ai/AiError.js +99 -121
  607. package/dist/unstable/ai/AiError.js.map +1 -1
  608. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
  609. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  610. package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
  611. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  612. package/dist/unstable/ai/Chat.d.ts +132 -97
  613. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  614. package/dist/unstable/ai/Chat.js +55 -51
  615. package/dist/unstable/ai/Chat.js.map +1 -1
  616. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  617. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  618. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  619. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  620. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  621. package/dist/unstable/ai/IdGenerator.js +26 -21
  622. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  623. package/dist/unstable/ai/LanguageModel.d.ts +111 -68
  624. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  625. package/dist/unstable/ai/LanguageModel.js +123 -81
  626. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  627. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  628. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  629. package/dist/unstable/ai/McpProtocol.js +20 -0
  630. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  631. package/dist/unstable/ai/McpSchema.d.ts +316 -250
  632. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  633. package/dist/unstable/ai/McpSchema.js +71 -63
  634. package/dist/unstable/ai/McpSchema.js.map +1 -1
  635. package/dist/unstable/ai/McpServer.d.ts +71 -62
  636. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  637. package/dist/unstable/ai/McpServer.js +765 -245
  638. package/dist/unstable/ai/McpServer.js.map +1 -1
  639. package/dist/unstable/ai/Model.d.ts +8 -19
  640. package/dist/unstable/ai/Model.d.ts.map +1 -1
  641. package/dist/unstable/ai/Model.js +9 -20
  642. package/dist/unstable/ai/Model.js.map +1 -1
  643. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
  644. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  645. package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
  646. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  647. package/dist/unstable/ai/Prompt.d.ts +112 -38
  648. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  649. package/dist/unstable/ai/Prompt.js +53 -17
  650. package/dist/unstable/ai/Prompt.js.map +1 -1
  651. package/dist/unstable/ai/Response.d.ts +47 -33
  652. package/dist/unstable/ai/Response.d.ts.map +1 -1
  653. package/dist/unstable/ai/Response.js +23 -18
  654. package/dist/unstable/ai/Response.js.map +1 -1
  655. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  656. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  657. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  658. package/dist/unstable/ai/Telemetry.js +18 -7
  659. package/dist/unstable/ai/Telemetry.js.map +1 -1
  660. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  661. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  662. package/dist/unstable/ai/Tokenizer.js +10 -2
  663. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  664. package/dist/unstable/ai/Tool.d.ts +63 -44
  665. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  666. package/dist/unstable/ai/Tool.js +59 -42
  667. package/dist/unstable/ai/Tool.js.map +1 -1
  668. package/dist/unstable/ai/Toolkit.d.ts +35 -9
  669. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  670. package/dist/unstable/ai/Toolkit.js +32 -14
  671. package/dist/unstable/ai/Toolkit.js.map +1 -1
  672. package/dist/unstable/ai/index.d.ts +4 -0
  673. package/dist/unstable/ai/index.d.ts.map +1 -1
  674. package/dist/unstable/ai/index.js +4 -0
  675. package/dist/unstable/ai/index.js.map +1 -1
  676. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  677. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  678. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  679. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  680. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  681. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  682. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  683. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  684. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  685. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  686. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  687. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  688. package/dist/unstable/ai/internal/structured-output.js +315 -0
  689. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  690. package/dist/unstable/cli/Argument.d.ts +273 -69
  691. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  692. package/dist/unstable/cli/Argument.js +111 -33
  693. package/dist/unstable/cli/Argument.js.map +1 -1
  694. package/dist/unstable/cli/CliConfig.js.map +1 -1
  695. package/dist/unstable/cli/CliError.d.ts +105 -74
  696. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  697. package/dist/unstable/cli/CliError.js +98 -63
  698. package/dist/unstable/cli/CliError.js.map +1 -1
  699. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  700. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  701. package/dist/unstable/cli/CliOutput.js +26 -42
  702. package/dist/unstable/cli/CliOutput.js.map +1 -1
  703. package/dist/unstable/cli/Command.d.ts +705 -107
  704. package/dist/unstable/cli/Command.d.ts.map +1 -1
  705. package/dist/unstable/cli/Command.js +252 -47
  706. package/dist/unstable/cli/Command.js.map +1 -1
  707. package/dist/unstable/cli/Completions.js.map +1 -1
  708. package/dist/unstable/cli/Flag.d.ts +418 -138
  709. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  710. package/dist/unstable/cli/Flag.js +197 -71
  711. package/dist/unstable/cli/Flag.js.map +1 -1
  712. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  713. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  714. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  715. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  716. package/dist/unstable/cli/Param.d.ts +292 -78
  717. package/dist/unstable/cli/Param.d.ts.map +1 -1
  718. package/dist/unstable/cli/Param.js +131 -49
  719. package/dist/unstable/cli/Param.js.map +1 -1
  720. package/dist/unstable/cli/Primitive.d.ts +370 -149
  721. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  722. package/dist/unstable/cli/Primitive.js +345 -137
  723. package/dist/unstable/cli/Primitive.js.map +1 -1
  724. package/dist/unstable/cli/Prompt.d.ts +23 -14
  725. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  726. package/dist/unstable/cli/Prompt.js +23 -14
  727. package/dist/unstable/cli/Prompt.js.map +1 -1
  728. package/dist/unstable/cli/index.js.map +1 -1
  729. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  730. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  731. package/dist/unstable/cli/internal/command.d.ts +3 -1
  732. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  733. package/dist/unstable/cli/internal/command.js +11 -4
  734. package/dist/unstable/cli/internal/command.js.map +1 -1
  735. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  736. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  737. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  738. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  739. package/dist/unstable/cli/internal/config.d.ts +0 -48
  740. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  741. package/dist/unstable/cli/internal/config.js +8 -10
  742. package/dist/unstable/cli/internal/config.js.map +1 -1
  743. package/dist/unstable/cli/internal/help.js.map +1 -1
  744. package/dist/unstable/cli/internal/lexer.js +17 -7
  745. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  746. package/dist/unstable/cli/internal/parser.js +2 -2
  747. package/dist/unstable/cli/internal/parser.js.map +1 -1
  748. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  749. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  750. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  751. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  752. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  753. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  754. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  755. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  756. package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
  757. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  758. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  759. package/dist/unstable/cluster/Entity.d.ts +10 -10
  760. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  761. package/dist/unstable/cluster/Entity.js +9 -9
  762. package/dist/unstable/cluster/Entity.js.map +1 -1
  763. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  764. package/dist/unstable/cluster/EntityId.js.map +1 -1
  765. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  766. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  767. package/dist/unstable/cluster/EntityProxy.js +4 -2
  768. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  769. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  770. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  771. package/dist/unstable/cluster/EntityResource.js +2 -2
  772. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  773. package/dist/unstable/cluster/EntityType.js.map +1 -1
  774. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  775. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  776. package/dist/unstable/cluster/Envelope.js +5 -4
  777. package/dist/unstable/cluster/Envelope.js.map +1 -1
  778. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  779. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  780. package/dist/unstable/cluster/HttpRunner.js +6 -4
  781. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  782. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  783. package/dist/unstable/cluster/MachineId.js.map +1 -1
  784. package/dist/unstable/cluster/Message.d.ts +9 -9
  785. package/dist/unstable/cluster/Message.js +6 -6
  786. package/dist/unstable/cluster/Message.js.map +1 -1
  787. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  788. package/dist/unstable/cluster/MessageStorage.js +5 -5
  789. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  790. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  791. package/dist/unstable/cluster/Reply.js +5 -5
  792. package/dist/unstable/cluster/Reply.js.map +1 -1
  793. package/dist/unstable/cluster/Runner.d.ts +1 -1
  794. package/dist/unstable/cluster/Runner.js +1 -1
  795. package/dist/unstable/cluster/Runner.js.map +1 -1
  796. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  797. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  798. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  799. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  800. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  801. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  802. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  803. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  804. package/dist/unstable/cluster/RunnerServer.js +16 -16
  805. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  806. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  807. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  808. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  809. package/dist/unstable/cluster/Runners.d.ts +6 -6
  810. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  811. package/dist/unstable/cluster/Runners.js +19 -10
  812. package/dist/unstable/cluster/Runners.js.map +1 -1
  813. package/dist/unstable/cluster/ShardId.js +1 -1
  814. package/dist/unstable/cluster/ShardId.js.map +1 -1
  815. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  816. package/dist/unstable/cluster/Sharding.js +128 -26
  817. package/dist/unstable/cluster/Sharding.js.map +1 -1
  818. package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
  819. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  820. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  821. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  822. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  823. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  824. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  825. package/dist/unstable/cluster/SingleRunner.js +2 -1
  826. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  827. package/dist/unstable/cluster/Singleton.js.map +1 -1
  828. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  829. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  830. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  831. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  832. package/dist/unstable/cluster/Snowflake.js +8 -8
  833. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  834. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  835. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  836. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  837. package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
  838. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  839. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  840. package/dist/unstable/cluster/SqlRunnerStorage.js +127 -65
  841. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  842. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  843. package/dist/unstable/cluster/index.js.map +1 -1
  844. package/dist/unstable/cluster/internal/entityManager.js +24 -12
  845. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  846. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  847. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  848. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  849. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  850. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  851. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  852. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  853. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  854. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  855. package/dist/unstable/devtools/DevTools.js.map +1 -1
  856. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  857. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  858. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  859. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  860. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  861. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  862. package/dist/unstable/devtools/index.js.map +1 -1
  863. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  864. package/dist/unstable/encoding/Msgpack.js +6 -8
  865. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  866. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  867. package/dist/unstable/encoding/Sse.d.ts +72 -8
  868. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  869. package/dist/unstable/encoding/Sse.js +58 -8
  870. package/dist/unstable/encoding/Sse.js.map +1 -1
  871. package/dist/unstable/encoding/index.js.map +1 -1
  872. package/dist/unstable/eventlog/Event.d.ts +20 -20
  873. package/dist/unstable/eventlog/Event.js.map +1 -1
  874. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  875. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  876. package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
  877. package/dist/unstable/eventlog/EventJournal.js +14 -14
  878. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  879. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  880. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  881. package/dist/unstable/eventlog/EventLog.js +18 -14
  882. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  883. package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
  884. package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
  885. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  886. package/dist/unstable/eventlog/EventLogMessage.d.ts +6 -6
  887. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  888. package/dist/unstable/eventlog/EventLogMessage.js +9 -4
  889. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  890. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  891. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  892. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  893. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  894. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  895. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  896. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  897. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  898. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  899. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  900. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  901. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  902. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  903. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  904. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  905. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  906. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  907. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  908. package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
  909. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  910. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  911. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  912. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  913. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  914. package/dist/unstable/eventlog/index.js.map +1 -1
  915. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  916. package/dist/unstable/http/Cookies.d.ts +2 -2
  917. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  918. package/dist/unstable/http/Cookies.js +54 -40
  919. package/dist/unstable/http/Cookies.js.map +1 -1
  920. package/dist/unstable/http/Etag.d.ts +1 -1
  921. package/dist/unstable/http/Etag.js +1 -1
  922. package/dist/unstable/http/Etag.js.map +1 -1
  923. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  924. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  925. package/dist/unstable/http/Headers.d.ts +2 -2
  926. package/dist/unstable/http/Headers.js +10 -10
  927. package/dist/unstable/http/Headers.js.map +1 -1
  928. package/dist/unstable/http/HttpBody.d.ts +5 -3
  929. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  930. package/dist/unstable/http/HttpBody.js +11 -5
  931. package/dist/unstable/http/HttpBody.js.map +1 -1
  932. package/dist/unstable/http/HttpClient.d.ts +51 -44
  933. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  934. package/dist/unstable/http/HttpClient.js +46 -17
  935. package/dist/unstable/http/HttpClient.js.map +1 -1
  936. package/dist/unstable/http/HttpClientError.js.map +1 -1
  937. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  938. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  939. package/dist/unstable/http/HttpClientRequest.js +16 -0
  940. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  941. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  942. package/dist/unstable/http/HttpClientResponse.js +2 -2
  943. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  944. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  945. package/dist/unstable/http/HttpEffect.js +3 -3
  946. package/dist/unstable/http/HttpEffect.js.map +1 -1
  947. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  948. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  949. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  950. package/dist/unstable/http/HttpMethod.js +6 -9
  951. package/dist/unstable/http/HttpMethod.js.map +1 -1
  952. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  953. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  954. package/dist/unstable/http/HttpMiddleware.js +164 -39
  955. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  956. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  957. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  958. package/dist/unstable/http/HttpPlatform.js +32 -0
  959. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  960. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  961. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  962. package/dist/unstable/http/HttpRouter.js +78 -79
  963. package/dist/unstable/http/HttpRouter.js.map +1 -1
  964. package/dist/unstable/http/HttpServer.d.ts +13 -13
  965. package/dist/unstable/http/HttpServer.js +6 -6
  966. package/dist/unstable/http/HttpServer.js.map +1 -1
  967. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  968. package/dist/unstable/http/HttpServerError.js +2 -2
  969. package/dist/unstable/http/HttpServerError.js.map +1 -1
  970. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  971. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  972. package/dist/unstable/http/HttpServerRequest.js +9 -8
  973. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  974. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  975. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  976. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  977. package/dist/unstable/http/HttpServerResponse.js +10 -0
  978. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  979. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  980. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  981. package/dist/unstable/http/HttpStaticServer.js +35 -7
  982. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  983. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  984. package/dist/unstable/http/Multipart.d.ts +6 -6
  985. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  986. package/dist/unstable/http/Multipart.js +22 -20
  987. package/dist/unstable/http/Multipart.js.map +1 -1
  988. package/dist/unstable/http/Template.js +1 -1
  989. package/dist/unstable/http/Template.js.map +1 -1
  990. package/dist/unstable/http/Url.d.ts +33 -63
  991. package/dist/unstable/http/Url.d.ts.map +1 -1
  992. package/dist/unstable/http/Url.js +14 -28
  993. package/dist/unstable/http/Url.js.map +1 -1
  994. package/dist/unstable/http/UrlParams.d.ts +10 -18
  995. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  996. package/dist/unstable/http/UrlParams.js +26 -31
  997. package/dist/unstable/http/UrlParams.js.map +1 -1
  998. package/dist/unstable/http/index.js.map +1 -1
  999. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1000. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1001. package/dist/unstable/http/internal/compression.js +155 -0
  1002. package/dist/unstable/http/internal/compression.js.map +1 -0
  1003. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1004. package/dist/unstable/httpapi/HttpApi.js +3 -3
  1005. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1006. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1007. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1008. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  1009. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1010. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1011. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1012. package/dist/unstable/httpapi/HttpApiClient.js +16 -18
  1013. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1014. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  1015. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1016. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  1017. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  1018. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1019. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1020. package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
  1021. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1022. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1023. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1024. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1025. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1026. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1027. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1028. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1029. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  1030. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  1031. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1032. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1033. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1034. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1035. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  1036. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1037. package/dist/unstable/httpapi/OpenApi.js +50 -37
  1038. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1039. package/dist/unstable/httpapi/index.js.map +1 -1
  1040. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1041. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1042. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1043. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1044. package/dist/unstable/observability/Otlp.js.map +1 -1
  1045. package/dist/unstable/observability/OtlpExporter.d.ts +70 -1
  1046. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1047. package/dist/unstable/observability/OtlpExporter.js +84 -6
  1048. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1049. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  1050. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1051. package/dist/unstable/observability/OtlpLogger.js +2 -2
  1052. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1053. package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
  1054. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1055. package/dist/unstable/observability/OtlpMetrics.js +5 -2
  1056. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1057. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1058. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1059. package/dist/unstable/observability/OtlpResource.js +21 -12
  1060. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1061. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1062. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  1063. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  1064. package/dist/unstable/observability/OtlpTracer.js +2 -2
  1065. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1066. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1067. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1068. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1069. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1070. package/dist/unstable/observability/index.js.map +1 -1
  1071. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1072. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1073. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1074. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1075. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1076. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1077. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1078. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1079. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1080. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1081. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  1082. package/dist/unstable/persistence/Persistable.js +2 -1
  1083. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1084. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1085. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1086. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1087. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1088. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1089. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1090. package/dist/unstable/persistence/Persistence.js +91 -15
  1091. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1092. package/dist/unstable/persistence/RateLimiter.d.ts +28 -17
  1093. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1094. package/dist/unstable/persistence/RateLimiter.js +26 -15
  1095. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1096. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1097. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  1098. package/dist/unstable/persistence/Redis.js +3 -3
  1099. package/dist/unstable/persistence/Redis.js.map +1 -1
  1100. package/dist/unstable/persistence/index.js.map +1 -1
  1101. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1102. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1103. package/dist/unstable/process/ChildProcess.js +14 -5
  1104. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1105. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1106. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1107. package/dist/unstable/process/ChildProcessSpawner.js +4 -2
  1108. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1109. package/dist/unstable/process/index.js.map +1 -1
  1110. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1111. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1112. package/dist/unstable/reactivity/AsyncResult.js +14 -13
  1113. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1114. package/dist/unstable/reactivity/Atom.d.ts +105 -19
  1115. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1116. package/dist/unstable/reactivity/Atom.js +44 -12
  1117. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1118. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1119. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1120. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1121. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1122. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1123. package/dist/unstable/reactivity/AtomRegistry.js +25 -4
  1124. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1125. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1126. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1127. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1128. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1129. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1130. package/dist/unstable/reactivity/Hydration.js +1 -1
  1131. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1132. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1133. package/dist/unstable/reactivity/index.js.map +1 -1
  1134. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1135. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1136. package/dist/unstable/rpc/Rpc.js +4 -2
  1137. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1138. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1139. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1140. package/dist/unstable/rpc/RpcClient.js +14 -12
  1141. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1142. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1143. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1144. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1145. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1146. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1147. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1148. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1149. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1150. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1151. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1152. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1153. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1154. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1155. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1156. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1157. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1158. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1159. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1160. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1161. package/dist/unstable/rpc/RpcServer.js +17 -13
  1162. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1163. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1164. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1165. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1166. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1167. package/dist/unstable/rpc/Utils.js.map +1 -1
  1168. package/dist/unstable/rpc/index.js.map +1 -1
  1169. package/dist/unstable/schema/Model.d.ts +52 -50
  1170. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1171. package/dist/unstable/schema/Model.js +35 -33
  1172. package/dist/unstable/schema/Model.js.map +1 -1
  1173. package/dist/unstable/schema/VariantSchema.d.ts +6 -7
  1174. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1175. package/dist/unstable/schema/VariantSchema.js +15 -12
  1176. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1177. package/dist/unstable/schema/index.js.map +1 -1
  1178. package/dist/unstable/socket/Socket.d.ts +12 -4
  1179. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1180. package/dist/unstable/socket/Socket.js +10 -5
  1181. package/dist/unstable/socket/Socket.js.map +1 -1
  1182. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1183. package/dist/unstable/socket/index.js.map +1 -1
  1184. package/dist/unstable/sql/Migrator.js.map +1 -1
  1185. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1186. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1187. package/dist/unstable/sql/SqlClient.js +2 -2
  1188. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1189. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1190. package/dist/unstable/sql/SqlError.d.ts +2 -2
  1191. package/dist/unstable/sql/SqlError.js +2 -2
  1192. package/dist/unstable/sql/SqlError.js.map +1 -1
  1193. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1194. package/dist/unstable/sql/SqlModel.js +2 -2
  1195. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1196. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1197. package/dist/unstable/sql/SqlResolver.js +2 -2
  1198. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1199. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1200. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1201. package/dist/unstable/sql/Statement.d.ts +6 -6
  1202. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1203. package/dist/unstable/sql/Statement.js +22 -21
  1204. package/dist/unstable/sql/Statement.js.map +1 -1
  1205. package/dist/unstable/sql/index.js.map +1 -1
  1206. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1207. package/dist/unstable/workers/Transferable.js +1 -1
  1208. package/dist/unstable/workers/Transferable.js.map +1 -1
  1209. package/dist/unstable/workers/Worker.d.ts +2 -2
  1210. package/dist/unstable/workers/Worker.js +2 -2
  1211. package/dist/unstable/workers/Worker.js.map +1 -1
  1212. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1213. package/dist/unstable/workers/WorkerError.js +6 -6
  1214. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1215. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1216. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1217. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1218. package/dist/unstable/workers/index.js.map +1 -1
  1219. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1220. package/dist/unstable/workflow/Activity.js +2 -2
  1221. package/dist/unstable/workflow/Activity.js.map +1 -1
  1222. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1223. package/dist/unstable/workflow/DurableClock.js +1 -1
  1224. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1225. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1226. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1227. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1228. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1229. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1230. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1231. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1232. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1233. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1234. package/dist/unstable/workflow/Workflow.js +13 -14
  1235. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1236. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1237. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1238. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1239. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1240. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1241. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1242. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1243. package/dist/unstable/workflow/index.js.map +1 -1
  1244. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1245. package/package.json +5 -6
  1246. package/src/Array.ts +1068 -1070
  1247. package/src/BigDecimal.ts +433 -756
  1248. package/src/BigInt.ts +213 -269
  1249. package/src/Boolean.ts +146 -188
  1250. package/src/Cache.ts +409 -255
  1251. package/src/Cause.ts +167 -277
  1252. package/src/Channel.ts +923 -830
  1253. package/src/ChannelSchema.ts +1 -1
  1254. package/src/Chunk.ts +841 -1181
  1255. package/src/Clock.ts +181 -49
  1256. package/src/Combiner.ts +20 -33
  1257. package/src/Config.ts +618 -334
  1258. package/src/ConfigProvider.ts +221 -127
  1259. package/src/Console.ts +289 -39
  1260. package/src/Context.ts +319 -378
  1261. package/src/Cron.ts +68 -77
  1262. package/src/Crypto.ts +13 -15
  1263. package/src/Data.ts +63 -82
  1264. package/src/DateTime.ts +564 -660
  1265. package/src/Deferred.ts +253 -256
  1266. package/src/Duration.ts +216 -308
  1267. package/src/Effect.ts +2958 -3390
  1268. package/src/Encoding.ts +22 -40
  1269. package/src/Equal.ts +49 -39
  1270. package/src/Equivalence.ts +103 -105
  1271. package/src/ErrorReporter.ts +51 -27
  1272. package/src/ExecutionPlan.ts +13 -55
  1273. package/src/Exit.ts +116 -192
  1274. package/src/Fiber.ts +81 -148
  1275. package/src/FiberHandle.ts +155 -107
  1276. package/src/FiberMap.ts +225 -174
  1277. package/src/FiberSet.ts +124 -82
  1278. package/src/FileSystem.ts +155 -263
  1279. package/src/Filter.ts +61 -33
  1280. package/src/Formatter.ts +54 -56
  1281. package/src/Function.ts +76 -145
  1282. package/src/Graph.ts +416 -770
  1283. package/src/HKT.ts +12 -6
  1284. package/src/Hash.ts +52 -83
  1285. package/src/HashMap.ts +319 -411
  1286. package/src/HashRing.ts +1 -0
  1287. package/src/HashSet.ts +177 -284
  1288. package/src/Inspectable.ts +12 -12
  1289. package/src/Iterable.ts +622 -787
  1290. package/src/JsonPatch.ts +60 -113
  1291. package/src/JsonPointer.ts +8 -8
  1292. package/src/JsonSchema.ts +405 -249
  1293. package/src/Latch.ts +23 -35
  1294. package/src/Layer.ts +359 -260
  1295. package/src/LayerMap.ts +49 -29
  1296. package/src/LayerRef.ts +6 -2
  1297. package/src/LogLevel.ts +114 -214
  1298. package/src/Logger.ts +347 -699
  1299. package/src/ManagedRuntime.ts +20 -5
  1300. package/src/Match.ts +217 -252
  1301. package/src/Metric.ts +520 -1092
  1302. package/src/MutableHashMap.ts +218 -255
  1303. package/src/MutableHashSet.ts +84 -89
  1304. package/src/MutableList.ts +73 -370
  1305. package/src/MutableRef.ts +420 -243
  1306. package/src/Newtype.ts +21 -14
  1307. package/src/NonEmptyIterable.ts +7 -137
  1308. package/src/Number.ts +196 -233
  1309. package/src/Optic.ts +246 -385
  1310. package/src/Option.ts +449 -813
  1311. package/src/Order.ts +109 -109
  1312. package/src/Ordering.ts +20 -23
  1313. package/src/PartitionedSemaphore.ts +1 -4
  1314. package/src/Path.ts +38 -41
  1315. package/src/Pipeable.ts +6 -5
  1316. package/src/PlatformError.ts +4 -4
  1317. package/src/Pool.ts +4 -2
  1318. package/src/Predicate.ts +200 -181
  1319. package/src/PrimaryKey.ts +7 -7
  1320. package/src/PubSub.ts +526 -552
  1321. package/src/Pull.ts +24 -18
  1322. package/src/Queue.ts +200 -159
  1323. package/src/Random.ts +49 -74
  1324. package/src/RcMap.ts +121 -63
  1325. package/src/RcRef.ts +24 -13
  1326. package/src/Record.ts +387 -487
  1327. package/src/Redactable.ts +10 -3
  1328. package/src/Redacted.ts +25 -25
  1329. package/src/Reducer.ts +8 -15
  1330. package/src/Ref.ts +221 -361
  1331. package/src/References.ts +102 -214
  1332. package/src/RegExp.ts +10 -14
  1333. package/src/Request.ts +36 -28
  1334. package/src/RequestResolver.ts +202 -91
  1335. package/src/Result.ts +314 -485
  1336. package/src/Runtime.ts +50 -75
  1337. package/src/Schedule.ts +308 -1734
  1338. package/src/Scheduler.ts +20 -7
  1339. package/src/Schema.ts +3156 -1634
  1340. package/src/SchemaAST.ts +676 -489
  1341. package/src/SchemaError.ts +8 -7
  1342. package/src/SchemaGetter.ts +277 -218
  1343. package/src/SchemaIssue.ts +90 -276
  1344. package/src/SchemaParser.ts +179 -116
  1345. package/src/SchemaRepresentation.ts +698 -3417
  1346. package/src/SchemaTransformation.ts +132 -91
  1347. package/src/Scope.ts +123 -151
  1348. package/src/ScopedRef.ts +4 -4
  1349. package/src/Semaphore.ts +157 -54
  1350. package/src/Sink.ts +128 -113
  1351. package/src/Stdio.ts +1 -1
  1352. package/src/Stream.ts +2665 -3142
  1353. package/src/String.ts +275 -312
  1354. package/src/Struct.ts +114 -118
  1355. package/src/SubscriptionRef.ts +284 -252
  1356. package/src/Symbol.ts +3 -3
  1357. package/src/Terminal.ts +2 -2
  1358. package/src/Tracer.ts +102 -55
  1359. package/src/Trie.ts +287 -679
  1360. package/src/Tuple.ts +92 -127
  1361. package/src/TxChunk.ts +201 -121
  1362. package/src/TxDeferred.ts +62 -46
  1363. package/src/TxHashMap.ts +645 -799
  1364. package/src/TxHashSet.ts +443 -356
  1365. package/src/TxPriorityQueue.ts +130 -98
  1366. package/src/TxPubSub.ts +107 -80
  1367. package/src/TxQueue.ts +214 -183
  1368. package/src/TxReentrantLock.ts +97 -66
  1369. package/src/TxRef.ts +51 -32
  1370. package/src/TxSemaphore.ts +129 -95
  1371. package/src/TxSubscriptionRef.ts +97 -70
  1372. package/src/Types.ts +127 -70
  1373. package/src/Unify.ts +45 -65
  1374. package/src/Utils.ts +23 -16
  1375. package/src/index.ts +0 -5
  1376. package/src/internal/core.ts +5 -4
  1377. package/src/internal/dateTime.ts +6 -0
  1378. package/src/internal/effect.ts +160 -79
  1379. package/src/internal/matcher.ts +1 -1
  1380. package/src/internal/persistence.ts +2 -0
  1381. package/src/internal/record.ts +11 -7
  1382. package/src/internal/references.ts +3 -7
  1383. package/src/internal/schema/annotations.ts +44 -0
  1384. package/src/internal/schema/fromJsonSchemaDocument.ts +959 -0
  1385. package/src/internal/schema/fromRepresentation.ts +339 -0
  1386. package/src/internal/schema/parser.ts +22 -0
  1387. package/src/internal/schema/schema.ts +45 -46
  1388. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
  1389. package/src/internal/schema/toCodeDocument.ts +572 -0
  1390. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  1391. package/src/internal/schema/toJsonSchemaDocument.ts +529 -0
  1392. package/src/internal/schema/toRepresentation.ts +386 -0
  1393. package/src/internal/stackTraceLimit.ts +3 -7
  1394. package/src/internal/trie.ts +10 -11
  1395. package/src/testing/FastCheck.ts +8 -7
  1396. package/src/testing/TestClock.ts +73 -31
  1397. package/src/testing/TestConsole.ts +32 -31
  1398. package/src/testing/TestSchema.ts +29 -29
  1399. package/src/unstable/ai/AiError.ts +100 -122
  1400. package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
  1401. package/src/unstable/ai/Chat.ts +132 -97
  1402. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  1403. package/src/unstable/ai/IdGenerator.ts +32 -28
  1404. package/src/unstable/ai/LanguageModel.ts +137 -95
  1405. package/src/unstable/ai/McpProtocol.ts +48 -0
  1406. package/src/unstable/ai/McpSchema.ts +75 -65
  1407. package/src/unstable/ai/McpServer.ts +1045 -303
  1408. package/src/unstable/ai/Model.ts +9 -20
  1409. package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
  1410. package/src/unstable/ai/Prompt.ts +145 -43
  1411. package/src/unstable/ai/Response.ts +52 -38
  1412. package/src/unstable/ai/Telemetry.ts +46 -13
  1413. package/src/unstable/ai/Tokenizer.ts +14 -3
  1414. package/src/unstable/ai/Tool.ts +81 -48
  1415. package/src/unstable/ai/Toolkit.ts +45 -15
  1416. package/src/unstable/ai/index.ts +5 -0
  1417. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  1418. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1419. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1420. package/src/unstable/ai/internal/structured-output.ts +453 -0
  1421. package/src/unstable/cli/Argument.ts +273 -69
  1422. package/src/unstable/cli/CliError.ts +116 -77
  1423. package/src/unstable/cli/CliOutput.ts +44 -58
  1424. package/src/unstable/cli/Command.ts +709 -111
  1425. package/src/unstable/cli/Flag.ts +418 -138
  1426. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1427. package/src/unstable/cli/HelpDoc.ts +12 -4
  1428. package/src/unstable/cli/Param.ts +295 -81
  1429. package/src/unstable/cli/Primitive.ts +371 -150
  1430. package/src/unstable/cli/Prompt.ts +28 -14
  1431. package/src/unstable/cli/internal/command.ts +13 -5
  1432. package/src/unstable/cli/internal/config.ts +8 -10
  1433. package/src/unstable/cli/internal/lexer.ts +8 -2
  1434. package/src/unstable/cli/internal/parser.ts +2 -2
  1435. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1436. package/src/unstable/cluster/ClusterWorkflowEngine.ts +8 -4
  1437. package/src/unstable/cluster/Entity.ts +16 -17
  1438. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1439. package/src/unstable/cluster/EntityResource.ts +2 -2
  1440. package/src/unstable/cluster/Envelope.ts +5 -4
  1441. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1442. package/src/unstable/cluster/Message.ts +9 -9
  1443. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1444. package/src/unstable/cluster/Reply.ts +5 -7
  1445. package/src/unstable/cluster/Runner.ts +1 -1
  1446. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1447. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1448. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1449. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1450. package/src/unstable/cluster/Runners.ts +23 -12
  1451. package/src/unstable/cluster/ShardId.ts +1 -1
  1452. package/src/unstable/cluster/Sharding.ts +168 -42
  1453. package/src/unstable/cluster/ShardingConfig.ts +8 -4
  1454. package/src/unstable/cluster/SingleRunner.ts +4 -2
  1455. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1456. package/src/unstable/cluster/Snowflake.ts +8 -8
  1457. package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
  1458. package/src/unstable/cluster/SqlRunnerStorage.ts +205 -119
  1459. package/src/unstable/cluster/internal/entityManager.ts +42 -25
  1460. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  1461. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  1462. package/src/unstable/encoding/Msgpack.ts +6 -8
  1463. package/src/unstable/encoding/Sse.ts +98 -16
  1464. package/src/unstable/eventlog/Event.ts +20 -20
  1465. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1466. package/src/unstable/eventlog/EventJournal.ts +16 -16
  1467. package/src/unstable/eventlog/EventLog.ts +24 -14
  1468. package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
  1469. package/src/unstable/eventlog/EventLogMessage.ts +12 -5
  1470. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1471. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1472. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1473. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1474. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1475. package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
  1476. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  1477. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  1478. package/src/unstable/http/Cookies.ts +64 -45
  1479. package/src/unstable/http/Etag.ts +1 -1
  1480. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1481. package/src/unstable/http/Headers.ts +10 -10
  1482. package/src/unstable/http/HttpBody.ts +20 -5
  1483. package/src/unstable/http/HttpClient.ts +83 -55
  1484. package/src/unstable/http/HttpClientRequest.ts +59 -0
  1485. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1486. package/src/unstable/http/HttpEffect.ts +8 -8
  1487. package/src/unstable/http/HttpMethod.ts +6 -9
  1488. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1489. package/src/unstable/http/HttpPlatform.ts +95 -0
  1490. package/src/unstable/http/HttpRouter.ts +102 -98
  1491. package/src/unstable/http/HttpServer.ts +13 -13
  1492. package/src/unstable/http/HttpServerError.ts +2 -2
  1493. package/src/unstable/http/HttpServerRequest.ts +9 -8
  1494. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1495. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1496. package/src/unstable/http/Multipart.ts +22 -19
  1497. package/src/unstable/http/Template.ts +1 -1
  1498. package/src/unstable/http/Url.ts +33 -63
  1499. package/src/unstable/http/UrlParams.ts +27 -32
  1500. package/src/unstable/http/internal/compression.ts +196 -0
  1501. package/src/unstable/httpapi/HttpApi.ts +3 -3
  1502. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1503. package/src/unstable/httpapi/HttpApiClient.ts +19 -19
  1504. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1505. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1506. package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
  1507. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1508. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1509. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1510. package/src/unstable/httpapi/OpenApi.ts +65 -41
  1511. package/src/unstable/observability/OtlpExporter.ts +126 -10
  1512. package/src/unstable/observability/OtlpLogger.ts +5 -5
  1513. package/src/unstable/observability/OtlpMetrics.ts +12 -5
  1514. package/src/unstable/observability/OtlpResource.ts +26 -17
  1515. package/src/unstable/observability/OtlpTracer.ts +8 -4
  1516. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1517. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1518. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1519. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1520. package/src/unstable/persistence/Persistable.ts +11 -10
  1521. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1522. package/src/unstable/persistence/Persistence.ts +126 -19
  1523. package/src/unstable/persistence/RateLimiter.ts +28 -17
  1524. package/src/unstable/persistence/Redis.ts +4 -4
  1525. package/src/unstable/process/ChildProcess.ts +64 -21
  1526. package/src/unstable/process/ChildProcessSpawner.ts +22 -11
  1527. package/src/unstable/reactivity/AsyncResult.ts +16 -16
  1528. package/src/unstable/reactivity/Atom.ts +117 -22
  1529. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1530. package/src/unstable/reactivity/AtomRegistry.ts +25 -4
  1531. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1532. package/src/unstable/reactivity/Hydration.ts +1 -1
  1533. package/src/unstable/rpc/Rpc.ts +35 -33
  1534. package/src/unstable/rpc/RpcClient.ts +18 -16
  1535. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1536. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1537. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1538. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1539. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1540. package/src/unstable/rpc/RpcServer.ts +18 -15
  1541. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1542. package/src/unstable/schema/Model.ts +52 -50
  1543. package/src/unstable/schema/VariantSchema.ts +19 -29
  1544. package/src/unstable/socket/Socket.ts +18 -5
  1545. package/src/unstable/sql/SqlClient.ts +5 -6
  1546. package/src/unstable/sql/SqlError.ts +2 -2
  1547. package/src/unstable/sql/SqlModel.ts +2 -2
  1548. package/src/unstable/sql/SqlResolver.ts +5 -5
  1549. package/src/unstable/sql/Statement.ts +31 -29
  1550. package/src/unstable/workers/Transferable.ts +1 -1
  1551. package/src/unstable/workers/Worker.ts +2 -2
  1552. package/src/unstable/workers/WorkerError.ts +7 -7
  1553. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1554. package/src/unstable/workflow/Activity.ts +2 -2
  1555. package/src/unstable/workflow/DurableClock.ts +1 -1
  1556. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1557. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1558. package/src/unstable/workflow/Workflow.ts +23 -23
  1559. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1560. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1561. package/dist/SchemaUtils.d.ts +0 -28
  1562. package/dist/SchemaUtils.d.ts.map +0 -1
  1563. package/dist/SchemaUtils.js +0 -45
  1564. package/dist/SchemaUtils.js.map +0 -1
  1565. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  1566. package/dist/internal/schema/arbitrary.js.map +0 -1
  1567. package/dist/internal/schema/equivalence.d.ts +0 -2
  1568. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  1569. package/dist/internal/schema/equivalence.js.map +0 -1
  1570. package/dist/internal/schema/representation.d.ts +0 -2
  1571. package/dist/internal/schema/representation.d.ts.map +0 -1
  1572. package/dist/internal/schema/representation.js +0 -865
  1573. package/dist/internal/schema/representation.js.map +0 -1
  1574. package/dist/internal/version.d.ts +0 -3
  1575. package/dist/internal/version.d.ts.map +0 -1
  1576. package/dist/internal/version.js +0 -2
  1577. package/dist/internal/version.js.map +0 -1
  1578. package/src/SchemaUtils.ts +0 -51
  1579. package/src/internal/schema/representation.ts +0 -795
  1580. package/src/internal/version.ts +0 -2
package/dist/Array.js CHANGED
@@ -12,8 +12,10 @@
12
12
  import * as Equal from "./Equal.js";
13
13
  import * as Equivalence from "./Equivalence.js";
14
14
  import { dual, identity } from "./Function.js";
15
+ import * as Hash from "./Hash.js";
15
16
  import * as internalArray from "./internal/array.js";
16
17
  import * as internalDoNotation from "./internal/doNotation.js";
18
+ import * as InternalRecord from "./internal/record.js";
17
19
  import * as moduleIterable from "./Iterable.js";
18
20
  import * as Option from "./Option.js";
19
21
  import * as Order from "./Order.js";
@@ -31,11 +33,10 @@ import * as Tuple from "./Tuple.js";
31
33
  *
32
34
  * **Example** (Accessing the Array constructor)
33
35
  *
34
- * ```ts
36
+ * ```ts import.meta.vitest
35
37
  * import { Array } from "effect"
36
38
  *
37
- * const arr = new Array.Array(3)
38
- * console.log(arr) // [undefined, undefined, undefined]
39
+ * Array.Array === globalThis.Array // => true
39
40
  * ```
40
41
  *
41
42
  * @category constructors
@@ -56,11 +57,10 @@ export const Array = globalThis.Array;
56
57
  *
57
58
  * **Example** (Creating an array from values)
58
59
  *
59
- * ```ts
60
+ * ```ts import.meta.vitest
60
61
  * import { Array } from "effect"
61
62
  *
62
- * const result = Array.make(1, 2, 3)
63
- * console.log(result) // [1, 2, 3]
63
+ * Array.make(1, 2, 3) // => [1, 2, 3]
64
64
  * ```
65
65
  *
66
66
  * @see {@link of} — create a single-element array
@@ -83,11 +83,10 @@ export const make = (...elements) => elements;
83
83
  *
84
84
  * **Example** (Allocating a fixed-size array)
85
85
  *
86
- * ```ts
86
+ * ```ts import.meta.vitest
87
87
  * import { Array } from "effect"
88
88
  *
89
- * const result = Array.allocate<number>(3)
90
- * console.log(result.length) // 3
89
+ * Array.allocate<number>(3).length // => 3
91
90
  * ```
92
91
  *
93
92
  * @see {@link makeBy} — create an array by computing each element
@@ -111,11 +110,10 @@ export const allocate = n => new Array(n);
111
110
  *
112
111
  * **Example** (Generating values from indices)
113
112
  *
114
- * ```ts
113
+ * ```ts import.meta.vitest
115
114
  * import { Array } from "effect"
116
115
  *
117
- * const result = Array.makeBy(5, (n) => n * 2)
118
- * console.log(result) // [0, 2, 4, 6, 8]
116
+ * Array.makeBy(5, (n) => n * 2) // => [0, 2, 4, 6, 8]
119
117
  * ```
120
118
  *
121
119
  * @see {@link range} — create a range of integers
@@ -146,11 +144,10 @@ export const makeBy = /*#__PURE__*/dual(2, (n, f) => {
146
144
  *
147
145
  * **Example** (Creating a range)
148
146
  *
149
- * ```ts
147
+ * ```ts import.meta.vitest
150
148
  * import { Array } from "effect"
151
149
  *
152
- * const result = Array.range(1, 3)
153
- * console.log(result) // [1, 2, 3]
150
+ * Array.range(1, 3) // => [1, 2, 3]
154
151
  * ```
155
152
  *
156
153
  * @see {@link makeBy} — generate values from a function
@@ -174,11 +171,10 @@ export const range = (start, end) => start <= end ? makeBy(end - start + 1, i =>
174
171
  *
175
172
  * **Example** (Repeating a value)
176
173
  *
177
- * ```ts
174
+ * ```ts import.meta.vitest
178
175
  * import { Array } from "effect"
179
176
  *
180
- * const result = Array.replicate("a", 3)
181
- * console.log(result) // ["a", "a", "a"]
177
+ * Array.replicate("a", 3) // => ["a", "a", "a"]
182
178
  * ```
183
179
  *
184
180
  * @see {@link makeBy} — vary values based on index
@@ -202,11 +198,10 @@ export const replicate = /*#__PURE__*/dual(2, (a, n) => makeBy(n, () => a));
202
198
  *
203
199
  * **Example** (Converting a Set to an array)
204
200
  *
205
- * ```ts
201
+ * ```ts import.meta.vitest
206
202
  * import { Array } from "effect"
207
203
  *
208
- * const result = Array.fromIterable(new Set([1, 2, 3]))
209
- * console.log(result) // [1, 2, 3]
204
+ * Array.fromIterable(new Set([1, 2, 3])) // => [1, 2, 3]
210
205
  * ```
211
206
  *
212
207
  * @see {@link ensure} — wrap a single value or return an existing array
@@ -232,11 +227,11 @@ export const fromIterable = collection => Array.isArray(collection) ? collection
232
227
  *
233
228
  * **Example** (Normalizing input)
234
229
  *
235
- * ```ts
230
+ * ```ts import.meta.vitest
236
231
  * import { Array } from "effect"
237
232
  *
238
- * console.log(Array.ensure("a")) // ["a"]
239
- * console.log(Array.ensure(["a", "b", "c"])) // ["a", "b", "c"]
233
+ * Array.ensure("a") // => ["a"]
234
+ * Array.ensure(["a", "b", "c"]) // => ["a", "b", "c"]
240
235
  * ```
241
236
  *
242
237
  * @see {@link of} — always wrap in a single-element array
@@ -261,11 +256,10 @@ export const ensure = self => Array.isArray(self) ? self : [self];
261
256
  *
262
257
  * **Example** (Converting a record to entries)
263
258
  *
264
- * ```ts
259
+ * ```ts import.meta.vitest
265
260
  * import { Array } from "effect"
266
261
  *
267
- * const result = Array.fromRecord({ a: 1, b: 2, c: 3 })
268
- * console.log(result) // [["a", 1], ["b", 2], ["c", 3]]
262
+ * Array.fromRecord({ a: 1, b: 2, c: 3 }) // => [["a", 1], ["b", 2], ["c", 3]]
269
263
  * ```
270
264
  *
271
265
  * @see {@link Record.toEntries} the equivalent function from the Record module
@@ -284,11 +278,11 @@ export const fromRecord = Record.toEntries;
284
278
  *
285
279
  * **Example** (Converting an Option to an array)
286
280
  *
287
- * ```ts
281
+ * ```ts import.meta.vitest
288
282
  * import { Array, Option } from "effect"
289
283
  *
290
- * console.log(Array.fromOption(Option.some(1))) // [1]
291
- * console.log(Array.fromOption(Option.none())) // []
284
+ * Array.fromOption(Option.some(1)) // => [1]
285
+ * Array.fromOption(Option.none()) // => []
292
286
  * ```
293
287
  *
294
288
  * @see {@link getSomes} — extract `Some` values from an array of Options
@@ -311,15 +305,16 @@ export const fromOption = Option.toArray;
311
305
  *
312
306
  * **Example** (Branching on emptiness)
313
307
  *
314
- * ```ts
308
+ * ```ts import.meta.vitest
315
309
  * import { Array } from "effect"
316
310
  *
317
311
  * const describe = Array.match({
318
312
  * onEmpty: () => "empty",
319
313
  * onNonEmpty: ([head, ...tail]) => `head: ${head}, tail: ${tail.length}`
320
314
  * })
321
- * console.log(describe([])) // "empty"
322
- * console.log(describe([1, 2, 3])) // "head: 1, tail: 2"
315
+ *
316
+ * describe([]) // => "empty"
317
+ * describe([1, 2, 3]) // => "head: 1, tail: 2"
323
318
  * ```
324
319
  *
325
320
  * @see {@link matchLeft} — destructures into head + tail
@@ -347,15 +342,16 @@ export const match = /*#__PURE__*/dual(2, (self, {
347
342
  *
348
343
  * **Example** (Destructuring head and tail)
349
344
  *
350
- * ```ts
345
+ * ```ts import.meta.vitest
351
346
  * import { Array } from "effect"
352
347
  *
353
348
  * const matchLeft = Array.matchLeft({
354
349
  * onEmpty: () => "empty",
355
350
  * onNonEmpty: (head, tail) => `head: ${head}, tail: ${tail.length}`
356
351
  * })
357
- * console.log(matchLeft([])) // "empty"
358
- * console.log(matchLeft([1, 2, 3])) // "head: 1, tail: 2"
352
+ *
353
+ * matchLeft([]) // => "empty"
354
+ * matchLeft([1, 2, 3]) // => "head: 1, tail: 2"
359
355
  * ```
360
356
  *
361
357
  * @see {@link match} — receives the full non-empty array
@@ -383,15 +379,16 @@ export const matchLeft = /*#__PURE__*/dual(2, (self, {
383
379
  *
384
380
  * **Example** (Destructuring init and last)
385
381
  *
386
- * ```ts
382
+ * ```ts import.meta.vitest
387
383
  * import { Array } from "effect"
388
384
  *
389
385
  * const matchRight = Array.matchRight({
390
386
  * onEmpty: () => "empty",
391
387
  * onNonEmpty: (init, last) => `init: ${init.length}, last: ${last}`
392
388
  * })
393
- * console.log(matchRight([])) // "empty"
394
- * console.log(matchRight([1, 2, 3])) // "init: 2, last: 3"
389
+ *
390
+ * matchRight([]) // => "empty"
391
+ * matchRight([1, 2, 3]) // => "init: 2, last: 3"
395
392
  * ```
396
393
  *
397
394
  * @see {@link match} — receives the full non-empty array
@@ -414,11 +411,10 @@ export const matchRight = /*#__PURE__*/dual(2, (self, {
414
411
  *
415
412
  * **Example** (Prepending an element)
416
413
  *
417
- * ```ts
414
+ * ```ts import.meta.vitest
418
415
  * import { Array } from "effect"
419
416
  *
420
- * const result = Array.prepend([2, 3, 4], 1)
421
- * console.log(result) // [1, 2, 3, 4]
417
+ * Array.prepend([2, 3, 4], 1) // => [1, 2, 3, 4]
422
418
  * ```
423
419
  *
424
420
  * @see {@link append} — add to the end
@@ -441,11 +437,10 @@ export const prepend = /*#__PURE__*/dual(2, (self, head) => [head, ...self]);
441
437
  *
442
438
  * **Example** (Prepending multiple elements)
443
439
  *
444
- * ```ts
440
+ * ```ts import.meta.vitest
445
441
  * import { Array } from "effect"
446
442
  *
447
- * const result = Array.prependAll([2, 3], [0, 1])
448
- * console.log(result) // [0, 1, 2, 3]
443
+ * Array.prependAll([2, 3], [0, 1]) // => [0, 1, 2, 3]
449
444
  * ```
450
445
  *
451
446
  * @see {@link prepend} — add a single element to the front
@@ -465,11 +460,10 @@ export const prependAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(that
465
460
  *
466
461
  * **Example** (Appending an element)
467
462
  *
468
- * ```ts
463
+ * ```ts import.meta.vitest
469
464
  * import { Array } from "effect"
470
465
  *
471
- * const result = Array.append([1, 2, 3], 4)
472
- * console.log(result) // [1, 2, 3, 4]
466
+ * Array.append([1, 2, 3], 4) // => [1, 2, 3, 4]
473
467
  * ```
474
468
  *
475
469
  * @see {@link prepend} — add to the front
@@ -493,11 +487,10 @@ export const append = /*#__PURE__*/dual(2, (self, last) => [...self, last]);
493
487
  *
494
488
  * **Example** (Concatenating arrays)
495
489
  *
496
- * ```ts
490
+ * ```ts import.meta.vitest
497
491
  * import { Array } from "effect"
498
492
  *
499
- * const result = Array.appendAll([1, 2], [3, 4])
500
- * console.log(result) // [1, 2, 3, 4]
493
+ * Array.appendAll([1, 2], [3, 4]) // => [1, 2, 3, 4]
501
494
  * ```
502
495
  *
503
496
  * @see {@link append} — add a single element to the end
@@ -522,11 +515,10 @@ export const appendAll = /*#__PURE__*/dual(2, (self, that) => fromIterable(self)
522
515
  *
523
516
  * **Example** (Running totals)
524
517
  *
525
- * ```ts
518
+ * ```ts import.meta.vitest
526
519
  * import { Array } from "effect"
527
520
  *
528
- * const result = Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value)
529
- * console.log(result) // [0, 1, 3, 6, 10]
521
+ * Array.scan([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [0, 1, 3, 6, 10]
530
522
  * ```
531
523
  *
532
524
  * @see {@link scanRight} — right-to-left scan
@@ -559,11 +551,10 @@ export const scan = /*#__PURE__*/dual(3, (self, b, f) => {
559
551
  *
560
552
  * **Example** (Scanning running totals in reverse)
561
553
  *
562
- * ```ts
554
+ * ```ts import.meta.vitest
563
555
  * import { Array } from "effect"
564
556
  *
565
- * const result = Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value)
566
- * console.log(result) // [10, 9, 7, 4, 0]
557
+ * Array.scanRight([1, 2, 3, 4], 0, (acc, value) => acc + value) // => [10, 9, 7, 4, 0]
567
558
  * ```
568
559
  *
569
560
  * @see {@link scan} — left-to-right scan
@@ -595,11 +586,11 @@ export const scanRight = /*#__PURE__*/dual(3, (self, b, f) => {
595
586
  *
596
587
  * **Example** (Type-guarding an unknown value)
597
588
  *
598
- * ```ts
589
+ * ```ts import.meta.vitest
599
590
  * import { Array } from "effect"
600
591
  *
601
- * console.log(Array.isArray(null)) // false
602
- * console.log(Array.isArray([1, 2, 3])) // true
592
+ * Array.isArray(null) // => false
593
+ * Array.isArray([1, 2, 3]) // => true
603
594
  * ```
604
595
  *
605
596
  * @see {@link isArrayEmpty} — check for an empty array
@@ -614,11 +605,11 @@ export const isArray = Array.isArray;
614
605
  *
615
606
  * **Example** (Checking for an empty array)
616
607
  *
617
- * ```ts
608
+ * ```ts import.meta.vitest
618
609
  * import { Array } from "effect"
619
610
  *
620
- * console.log(Array.isArrayEmpty([])) // true
621
- * console.log(Array.isArrayEmpty([1, 2, 3])) // false
611
+ * Array.isArrayEmpty([]) // => true
612
+ * Array.isArrayEmpty([1, 2, 3]) // => false
622
613
  * ```
623
614
  *
624
615
  * @see {@link isReadonlyArrayEmpty} — readonly variant
@@ -633,11 +624,11 @@ export const isArrayEmpty = self => self.length === 0;
633
624
  *
634
625
  * **Example** (Checking for an empty readonly array)
635
626
  *
636
- * ```ts
627
+ * ```ts import.meta.vitest
637
628
  * import { Array } from "effect"
638
629
  *
639
- * console.log(Array.isReadonlyArrayEmpty([])) // true
640
- * console.log(Array.isReadonlyArrayEmpty([1, 2, 3])) // false
630
+ * Array.isReadonlyArrayEmpty([]) // => true
631
+ * Array.isReadonlyArrayEmpty([1, 2, 3]) // => false
641
632
  * ```
642
633
  *
643
634
  * @see {@link isArrayEmpty} — mutable variant
@@ -658,11 +649,11 @@ export const isReadonlyArrayEmpty = isArrayEmpty;
658
649
  *
659
650
  * **Example** (Checking for a non-empty array)
660
651
  *
661
- * ```ts
652
+ * ```ts import.meta.vitest
662
653
  * import { Array } from "effect"
663
654
  *
664
- * console.log(Array.isArrayNonEmpty([])) // false
665
- * console.log(Array.isArrayNonEmpty([1, 2, 3])) // true
655
+ * Array.isArrayNonEmpty([]) // => false
656
+ * Array.isArrayNonEmpty([1, 2, 3]) // => true
666
657
  * ```
667
658
  *
668
659
  * @see {@link isReadonlyArrayNonEmpty} — readonly variant
@@ -683,11 +674,11 @@ export const isArrayNonEmpty = internalArray.isArrayNonEmpty;
683
674
  *
684
675
  * **Example** (Checking for a non-empty readonly array)
685
676
  *
686
- * ```ts
677
+ * ```ts import.meta.vitest
687
678
  * import { Array } from "effect"
688
679
  *
689
- * console.log(Array.isReadonlyArrayNonEmpty([])) // false
690
- * console.log(Array.isReadonlyArrayNonEmpty([1, 2, 3])) // true
680
+ * Array.isReadonlyArrayNonEmpty([]) // => false
681
+ * Array.isReadonlyArrayNonEmpty([1, 2, 3]) // => true
691
682
  * ```
692
683
  *
693
684
  * @see {@link isArrayNonEmpty} — mutable variant
@@ -706,10 +697,10 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
706
697
  *
707
698
  * **Example** (Getting the length)
708
699
  *
709
- * ```ts
700
+ * ```ts import.meta.vitest
710
701
  * import { Array } from "effect"
711
702
  *
712
- * console.log(Array.length([1, 2, 3])) // 3
703
+ * Array.length([1, 2, 3]) // => 3
713
704
  * ```
714
705
  *
715
706
  * @category getters
@@ -718,7 +709,7 @@ export const isReadonlyArrayNonEmpty = internalArray.isArrayNonEmpty;
718
709
  export const length = self => self.length;
719
710
  /** @internal */
720
711
  export function isOutOfBounds(i, as) {
721
- return i < 0 || i >= as.length;
712
+ return !Number.isFinite(i) || i < 0 || i >= as.length;
722
713
  }
723
714
  const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
724
715
  /**
@@ -736,11 +727,11 @@ const clamp = (i, as) => Math.floor(Math.min(Math.max(0, i), as.length));
736
727
  *
737
728
  * **Example** (Accessing indexes safely)
738
729
  *
739
- * ```ts
740
- * import { Array } from "effect"
730
+ * ```ts import.meta.vitest
731
+ * import { Array, Option } from "effect"
741
732
  *
742
- * console.log(Array.get([1, 2, 3], 1)) // Some(2)
743
- * console.log(Array.get([1, 2, 3], 10)) // None
733
+ * Array.get([1, 2, 3], 1) // => Option.some(2)
734
+ * Array.get([1, 2, 3], 10) // => Option.none()
744
735
  * ```
745
736
  *
746
737
  * @see {@link getUnsafe} for indexed access that throws when the index is out of bounds
@@ -769,10 +760,10 @@ export const get = /*#__PURE__*/dual(2, (self, index) => {
769
760
  *
770
761
  * **Example** (Accessing indexes unsafely)
771
762
  *
772
- * ```ts
763
+ * ```ts import.meta.vitest
773
764
  * import { Array } from "effect"
774
765
  *
775
- * console.log(Array.getUnsafe([1, 2, 3], 1)) // 2
766
+ * Array.getUnsafe([1, 2, 3], 1) // => 2
776
767
  * // Array.getUnsafe([1, 2, 3], 10) // throws Error
777
768
  * ```
778
769
  *
@@ -802,11 +793,10 @@ export const getUnsafe = /*#__PURE__*/dual(2, (self, index) => {
802
793
  *
803
794
  * **Example** (Destructuring head and tail)
804
795
  *
805
- * ```ts
796
+ * ```ts import.meta.vitest
806
797
  * import { Array } from "effect"
807
798
  *
808
- * const result = Array.unprepend([1, 2, 3, 4])
809
- * console.log(result) // [1, [2, 3, 4]]
799
+ * Array.unprepend([1, 2, 3, 4]) // => [1, [2, 3, 4]]
810
800
  * ```
811
801
  *
812
802
  * @see {@link unappend} for splitting a non-empty array into init and last
@@ -832,11 +822,10 @@ export const unprepend = self => [headNonEmpty(self), tailNonEmpty(self)];
832
822
  *
833
823
  * **Example** (Destructuring init and last)
834
824
  *
835
- * ```ts
825
+ * ```ts import.meta.vitest
836
826
  * import { Array } from "effect"
837
827
  *
838
- * const result = Array.unappend([1, 2, 3, 4])
839
- * console.log(result) // [[1, 2, 3], 4]
828
+ * Array.unappend([1, 2, 3, 4]) // => [[1, 2, 3], 4]
840
829
  * ```
841
830
  *
842
831
  * @see {@link unprepend} for splitting a non-empty array into head and tail
@@ -857,11 +846,11 @@ export const unappend = self => [initNonEmpty(self), lastNonEmpty(self)];
857
846
  *
858
847
  * **Example** (Getting the first element)
859
848
  *
860
- * ```ts
861
- * import { Array } from "effect"
849
+ * ```ts import.meta.vitest
850
+ * import { Array, Option } from "effect"
862
851
  *
863
- * console.log(Array.head([1, 2, 3])) // Some(1)
864
- * console.log(Array.head([])) // None
852
+ * Array.head([1, 2, 3]) // => Option.some(1)
853
+ * Array.head([]) // => Option.none()
865
854
  * ```
866
855
  *
867
856
  * @see {@link headNonEmpty} — direct access when array is known non-empty
@@ -882,10 +871,10 @@ export const head = /*#__PURE__*/get(0);
882
871
  *
883
872
  * **Example** (Getting the head of a non-empty array)
884
873
  *
885
- * ```ts
874
+ * ```ts import.meta.vitest
886
875
  * import { Array } from "effect"
887
876
  *
888
- * console.log(Array.headNonEmpty([1, 2, 3, 4])) // 1
877
+ * Array.headNonEmpty([1, 2, 3, 4]) // => 1
889
878
  * ```
890
879
  *
891
880
  * @see {@link head} — safe version for possibly-empty arrays
@@ -904,11 +893,11 @@ export const headNonEmpty = /*#__PURE__*/getUnsafe(0);
904
893
  *
905
894
  * **Example** (Getting the last element)
906
895
  *
907
- * ```ts
908
- * import { Array } from "effect"
896
+ * ```ts import.meta.vitest
897
+ * import { Array, Option } from "effect"
909
898
  *
910
- * console.log(Array.last([1, 2, 3])) // Some(3)
911
- * console.log(Array.last([])) // None
899
+ * Array.last([1, 2, 3]) // => Option.some(3)
900
+ * Array.last([]) // => Option.none()
912
901
  * ```
913
902
  *
914
903
  * @see {@link lastNonEmpty} — direct access when array is known non-empty
@@ -929,10 +918,10 @@ export const last = self => isReadonlyArrayNonEmpty(self) ? Option.some(lastNonE
929
918
  *
930
919
  * **Example** (Getting the last of a non-empty array)
931
920
  *
932
- * ```ts
921
+ * ```ts import.meta.vitest
933
922
  * import { Array } from "effect"
934
923
  *
935
- * console.log(Array.lastNonEmpty([1, 2, 3, 4])) // 4
924
+ * Array.lastNonEmpty([1, 2, 3, 4]) // => 4
936
925
  * ```
937
926
  *
938
927
  * @see {@link last} — safe version for possibly-empty arrays
@@ -954,11 +943,11 @@ export const lastNonEmpty = self => self[self.length - 1];
954
943
  *
955
944
  * **Example** (Getting the tail)
956
945
  *
957
- * ```ts
958
- * import { Array } from "effect"
946
+ * ```ts import.meta.vitest
947
+ * import { Array, Option } from "effect"
959
948
  *
960
- * console.log(Array.tail([1, 2, 3, 4])) // Option.some([2, 3, 4])
961
- * console.log(Array.tail([])) // Option.none()
949
+ * Array.tail([1, 2, 3, 4]) // => Option.some([2, 3, 4])
950
+ * Array.tail([]) // => Option.none()
962
951
  * ```
963
952
  *
964
953
  * @see {@link tailNonEmpty} — when the array is known non-empty
@@ -980,10 +969,10 @@ export function tail(self) {
980
969
  *
981
970
  * **Example** (Getting the tail of a non-empty array)
982
971
  *
983
- * ```ts
972
+ * ```ts import.meta.vitest
984
973
  * import { Array } from "effect"
985
974
  *
986
- * console.log(Array.tailNonEmpty([1, 2, 3, 4])) // [2, 3, 4]
975
+ * Array.tailNonEmpty([1, 2, 3, 4]) // => [2, 3, 4]
987
976
  * ```
988
977
  *
989
978
  * @see {@link tail} — safe version for possibly-empty arrays
@@ -1007,11 +996,11 @@ export const tailNonEmpty = self => self.slice(1);
1007
996
  *
1008
997
  * **Example** (Getting init)
1009
998
  *
1010
- * ```ts
1011
- * import { Array } from "effect"
999
+ * ```ts import.meta.vitest
1000
+ * import { Array, Option } from "effect"
1012
1001
  *
1013
- * console.log(Array.init([1, 2, 3, 4])) // Option.some([1, 2, 3])
1014
- * console.log(Array.init([])) // Option.none()
1002
+ * Array.init([1, 2, 3, 4]) // => Option.some([1, 2, 3])
1003
+ * Array.init([]) // => Option.none()
1015
1004
  * ```
1016
1005
  *
1017
1006
  * @see {@link initNonEmpty} — when the array is known non-empty
@@ -1033,10 +1022,10 @@ export function init(self) {
1033
1022
  *
1034
1023
  * **Example** (Getting init of a non-empty array)
1035
1024
  *
1036
- * ```ts
1025
+ * ```ts import.meta.vitest
1037
1026
  * import { Array } from "effect"
1038
1027
  *
1039
- * console.log(Array.initNonEmpty([1, 2, 3, 4])) // [1, 2, 3]
1028
+ * Array.initNonEmpty([1, 2, 3, 4]) // => [1, 2, 3]
1040
1029
  * ```
1041
1030
  *
1042
1031
  * @see {@link init} — safe version for possibly-empty arrays
@@ -1059,10 +1048,10 @@ export const initNonEmpty = self => self.slice(0, -1);
1059
1048
  *
1060
1049
  * **Example** (Taking from the start)
1061
1050
  *
1062
- * ```ts
1051
+ * ```ts import.meta.vitest
1063
1052
  * import { Array } from "effect"
1064
1053
  *
1065
- * console.log(Array.take([1, 2, 3, 4, 5], 3)) // [1, 2, 3]
1054
+ * Array.take([1, 2, 3, 4, 5], 3) // => [1, 2, 3]
1066
1055
  * ```
1067
1056
  *
1068
1057
  * @see {@link takeRight} for keeping elements from the end
@@ -1089,10 +1078,10 @@ export const take = /*#__PURE__*/dual(2, (self, n) => {
1089
1078
  *
1090
1079
  * **Example** (Taking from the end)
1091
1080
  *
1092
- * ```ts
1081
+ * ```ts import.meta.vitest
1093
1082
  * import { Array } from "effect"
1094
1083
  *
1095
- * console.log(Array.takeRight([1, 2, 3, 4, 5], 3)) // [3, 4, 5]
1084
+ * Array.takeRight([1, 2, 3, 4, 5], 3) // => [3, 4, 5]
1096
1085
  * ```
1097
1086
  *
1098
1087
  * @see {@link take} — keep from the start
@@ -1122,10 +1111,10 @@ export const takeRight = /*#__PURE__*/dual(2, (self, n) => {
1122
1111
  *
1123
1112
  * **Example** (Taking while condition holds)
1124
1113
  *
1125
- * ```ts
1114
+ * ```ts import.meta.vitest
1126
1115
  * import { Array } from "effect"
1127
1116
  *
1128
- * console.log(Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4)) // [1, 3, 2]
1117
+ * Array.takeWhile([1, 3, 2, 4, 1, 2], (x) => x < 4) // => [1, 3, 2]
1129
1118
  * ```
1130
1119
  *
1131
1120
  * @see {@link take} for keeping a fixed number of leading elements
@@ -1206,10 +1195,10 @@ const spanIndex = (self, predicate) => {
1206
1195
  *
1207
1196
  * **Example** (Splitting at predicate boundary)
1208
1197
  *
1209
- * ```ts
1198
+ * ```ts import.meta.vitest
1210
1199
  * import { Array } from "effect"
1211
1200
  *
1212
- * console.log(Array.span([1, 3, 2, 4, 5], (x) => x % 2 === 1)) // [[1, 3], [2, 4, 5]]
1201
+ * Array.span([1, 3, 2, 4, 5], (x) => x % 2 === 1) // => [[1, 3], [2, 4, 5]]
1213
1202
  * ```
1214
1203
  *
1215
1204
  * @see {@link takeWhile} for keeping only the matching prefix
@@ -1238,10 +1227,10 @@ export const span = /*#__PURE__*/dual(2, (self, predicate) => {
1238
1227
  *
1239
1228
  * **Example** (Dropping from the start)
1240
1229
  *
1241
- * ```ts
1230
+ * ```ts import.meta.vitest
1242
1231
  * import { Array } from "effect"
1243
1232
  *
1244
- * console.log(Array.drop([1, 2, 3, 4, 5], 2)) // [3, 4, 5]
1233
+ * Array.drop([1, 2, 3, 4, 5], 2) // => [3, 4, 5]
1245
1234
  * ```
1246
1235
  *
1247
1236
  * @see {@link dropRight} for removing a fixed number of elements from the end
@@ -1268,10 +1257,10 @@ export const drop = /*#__PURE__*/dual(2, (self, n) => {
1268
1257
  *
1269
1258
  * **Example** (Dropping from the end)
1270
1259
  *
1271
- * ```ts
1260
+ * ```ts import.meta.vitest
1272
1261
  * import { Array } from "effect"
1273
1262
  *
1274
- * console.log(Array.dropRight([1, 2, 3, 4, 5], 2)) // [1, 2, 3]
1263
+ * Array.dropRight([1, 2, 3, 4, 5], 2) // => [1, 2, 3]
1275
1264
  * ```
1276
1265
  *
1277
1266
  * @see {@link drop} — remove from the start
@@ -1297,10 +1286,10 @@ export const dropRight = /*#__PURE__*/dual(2, (self, n) => {
1297
1286
  *
1298
1287
  * **Example** (Dropping while condition holds)
1299
1288
  *
1300
- * ```ts
1289
+ * ```ts import.meta.vitest
1301
1290
  * import { Array } from "effect"
1302
1291
  *
1303
- * console.log(Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4)) // [4, 5]
1292
+ * Array.dropWhile([1, 2, 3, 4, 5], (x) => x < 4) // => [4, 5]
1304
1293
  * ```
1305
1294
  *
1306
1295
  * @see {@link takeWhile} — keep the matching prefix instead
@@ -1361,16 +1350,16 @@ export const dropWhileFilter = /*#__PURE__*/dual(2, (self, f) => {
1361
1350
  *
1362
1351
  * **Example** (Finding an index)
1363
1352
  *
1364
- * ```ts
1365
- * import { Array } from "effect"
1353
+ * ```ts import.meta.vitest
1354
+ * import { Array, Option } from "effect"
1366
1355
  *
1367
- * console.log(Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5)) // Option.some(2)
1356
+ * Array.findFirstIndex([5, 3, 8, 9], (x) => x > 5) // => Option.some(2)
1368
1357
  * ```
1369
1358
  *
1370
1359
  * @see {@link findLastIndex} — search from the end
1371
1360
  * @see {@link findFirst} — get the element itself
1372
1361
  *
1373
- * @category elements
1362
+ * @category searching
1374
1363
  * @since 2.0.0
1375
1364
  */
1376
1365
  export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
@@ -1393,16 +1382,16 @@ export const findFirstIndex = /*#__PURE__*/dual(2, (self, predicate) => {
1393
1382
  *
1394
1383
  * **Example** (Finding the last matching index)
1395
1384
  *
1396
- * ```ts
1397
- * import { Array } from "effect"
1385
+ * ```ts import.meta.vitest
1386
+ * import { Array, Option } from "effect"
1398
1387
  *
1399
- * console.log(Array.findLastIndex([1, 3, 8, 9], (x) => x < 5)) // Option.some(1)
1388
+ * Array.findLastIndex([1, 3, 8, 9], (x) => x < 5) // => Option.some(1)
1400
1389
  * ```
1401
1390
  *
1402
1391
  * @see {@link findFirstIndex} — search from the start
1403
1392
  * @see {@link findLast} — get the element itself
1404
1393
  *
1405
- * @category elements
1394
+ * @category searching
1406
1395
  * @since 2.0.0
1407
1396
  */
1408
1397
  export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
@@ -1431,17 +1420,17 @@ export const findLastIndex = /*#__PURE__*/dual(2, (self, predicate) => {
1431
1420
  *
1432
1421
  * **Example** (Finding the first match)
1433
1422
  *
1434
- * ```ts
1435
- * import { Array } from "effect"
1423
+ * ```ts import.meta.vitest
1424
+ * import { Array, Option } from "effect"
1436
1425
  *
1437
- * console.log(Array.findFirst([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some(4)
1426
+ * Array.findFirst([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some(4)
1438
1427
  * ```
1439
1428
  *
1440
1429
  * @see {@link findLast} — search from the end
1441
1430
  * @see {@link findFirstIndex} — get the index instead
1442
1431
  * @see {@link findFirstWithIndex} — get both element and index
1443
1432
  *
1444
- * @category elements
1433
+ * @category searching
1445
1434
  * @since 2.0.0
1446
1435
  */
1447
1436
  export const findFirst = moduleIterable.findFirst;
@@ -1461,16 +1450,16 @@ export const findFirst = moduleIterable.findFirst;
1461
1450
  *
1462
1451
  * **Example** (Finding element with its index)
1463
1452
  *
1464
- * ```ts
1465
- * import { Array } from "effect"
1453
+ * ```ts import.meta.vitest
1454
+ * import { Array, Option } from "effect"
1466
1455
  *
1467
- * console.log(Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some([4, 3])
1456
+ * Array.findFirstWithIndex([1, 2, 3, 4, 5], (x) => x > 3) // => Option.some([4, 3])
1468
1457
  * ```
1469
1458
  *
1470
1459
  * @see {@link findFirst} — get only the element
1471
1460
  * @see {@link findFirstIndex} — get only the index
1472
1461
  *
1473
- * @category elements
1462
+ * @category searching
1474
1463
  * @since 3.17.0
1475
1464
  */
1476
1465
  export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
@@ -1505,16 +1494,16 @@ export const findFirstWithIndex = /*#__PURE__*/dual(2, (self, f) => {
1505
1494
  *
1506
1495
  * **Example** (Finding the last match)
1507
1496
  *
1508
- * ```ts
1509
- * import { Array } from "effect"
1497
+ * ```ts import.meta.vitest
1498
+ * import { Array, Option } from "effect"
1510
1499
  *
1511
- * console.log(Array.findLast([1, 2, 3, 4, 5], (n) => n % 2 === 0)) // Option.some(4)
1500
+ * Array.findLast([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => Option.some(4)
1512
1501
  * ```
1513
1502
  *
1514
1503
  * @see {@link findFirst} — search from the start
1515
1504
  * @see {@link findLastIndex} — get the index instead
1516
1505
  *
1517
- * @category elements
1506
+ * @category searching
1518
1507
  * @since 2.0.0
1519
1508
  */
1520
1509
  export const findLast = /*#__PURE__*/dual(2, (self, f) => {
@@ -1548,24 +1537,25 @@ export const findLast = /*#__PURE__*/dual(2, (self, f) => {
1548
1537
  *
1549
1538
  * **Example** (Inserting at an index)
1550
1539
  *
1551
- * ```ts
1552
- * import { Array } from "effect"
1540
+ * ```ts import.meta.vitest
1541
+ * import { Array, Option } from "effect"
1553
1542
  *
1554
- * console.log(Array.insertAt(["a", "b", "c", "e"], 3, "d")) // Option.some(["a", "b", "c", "d", "e"])
1543
+ * Array.insertAt(["a", "b", "c", "e"], 3, "d") // => Option.some(["a", "b", "c", "d", "e"])
1555
1544
  * ```
1556
1545
  *
1557
1546
  * @see {@link replace} — replace an existing element
1558
1547
  * @see {@link modify} — transform an element at an index
1559
1548
  *
1560
- * @category elements
1549
+ * @category transforming
1561
1550
  * @since 2.0.0
1562
1551
  */
1563
1552
  export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
1564
1553
  const out = Array.from(self); // copy because `splice` mutates the array
1565
- if (i < 0 || i > out.length) {
1554
+ const index = Math.floor(i);
1555
+ if (index !== out.length && isOutOfBounds(index, out)) {
1566
1556
  return Option.none();
1567
1557
  }
1568
- out.splice(i, 0, b);
1558
+ out.splice(index, 0, b);
1569
1559
  return Option.some(out);
1570
1560
  });
1571
1561
  /**
@@ -1582,16 +1572,16 @@ export const insertAt = /*#__PURE__*/dual(3, (self, i, b) => {
1582
1572
  *
1583
1573
  * **Example** (Replacing an element)
1584
1574
  *
1585
- * ```ts
1586
- * import { Array } from "effect"
1575
+ * ```ts import.meta.vitest
1576
+ * import { Array, Option } from "effect"
1587
1577
  *
1588
- * console.log(Array.replace([1, 2, 3], 1, 4)) // Option.some([1, 4, 3])
1578
+ * Array.replace([1, 2, 3], 1, 4) // => Option.some([1, 4, 3])
1589
1579
  * ```
1590
1580
  *
1591
1581
  * @see {@link modify} — transform an element with a function
1592
1582
  * @see {@link insertAt} — insert without removing
1593
1583
  *
1594
- * @category elements
1584
+ * @category transforming
1595
1585
  * @since 2.0.0
1596
1586
  */
1597
1587
  export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () => b));
@@ -1610,28 +1600,32 @@ export const replace = /*#__PURE__*/dual(3, (self, i, b) => modify(self, i, () =
1610
1600
  *
1611
1601
  * **Example** (Modifying an element)
1612
1602
  *
1613
- * ```ts
1614
- * import { Array } from "effect"
1603
+ * ```ts import.meta.vitest
1604
+ * import { Array, Option } from "effect"
1605
+ *
1606
+ * const values = [1, 2, 3, 4]
1607
+ * const double = (n: number) => n * 2
1615
1608
  *
1616
- * console.log(Array.modify([1, 2, 3, 4], 2, (n) => n * 2)) // Option.some([1, 2, 6, 4])
1617
- * console.log(Array.modify([1, 2, 3, 4], 5, (n) => n * 2)) // Option.none()
1609
+ * Array.modify(values, 2, double) // => Option.some([1, 2, 6, 4])
1610
+ * Array.modify(values, 5, double) // => Option.none()
1618
1611
  * ```
1619
1612
  *
1620
1613
  * @see {@link replace} — set a fixed value at an index
1621
1614
  * @see {@link modifyHeadNonEmpty} — modify the first element
1622
1615
  * @see {@link modifyLastNonEmpty} — modify the last element
1623
1616
  *
1624
- * @category elements
1617
+ * @category transforming
1625
1618
  * @since 2.0.0
1626
1619
  */
1627
1620
  export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
1628
1621
  const arr = Array.from(self);
1629
- if (isOutOfBounds(i, arr)) {
1622
+ const index = Math.floor(i);
1623
+ if (isOutOfBounds(index, arr)) {
1630
1624
  return Option.none();
1631
1625
  }
1632
1626
  const out = arr;
1633
- const b = f(arr[i]);
1634
- out[i] = b;
1627
+ const b = f(arr[index]);
1628
+ out[index] = b;
1635
1629
  return Option.some(out);
1636
1630
  });
1637
1631
  /**
@@ -1645,25 +1639,26 @@ export const modify = /*#__PURE__*/dual(3, (self, i, f) => {
1645
1639
  *
1646
1640
  * **Example** (Removing an element)
1647
1641
  *
1648
- * ```ts
1642
+ * ```ts import.meta.vitest
1649
1643
  * import { Array } from "effect"
1650
1644
  *
1651
- * console.log(Array.remove([1, 2, 3, 4], 2)) // [1, 2, 4]
1652
- * console.log(Array.remove([1, 2, 3, 4], 5)) // [1, 2, 3, 4]
1645
+ * Array.remove([1, 2, 3, 4], 2) // => [1, 2, 4]
1646
+ * Array.remove([1, 2, 3, 4], 5) // => [1, 2, 3, 4]
1653
1647
  * ```
1654
1648
  *
1655
1649
  * @see {@link insertAt} — insert an element
1656
1650
  * @see {@link filter} — remove elements by predicate
1657
1651
  *
1658
- * @category elements
1652
+ * @category transforming
1659
1653
  * @since 2.0.0
1660
1654
  */
1661
1655
  export const remove = /*#__PURE__*/dual(2, (self, i) => {
1662
1656
  const out = Array.from(self);
1663
- if (isOutOfBounds(i, out)) {
1657
+ const index = Math.floor(i);
1658
+ if (isOutOfBounds(index, out)) {
1664
1659
  return out;
1665
1660
  }
1666
- out.splice(i, 1);
1661
+ out.splice(index, 1);
1667
1662
  return out;
1668
1663
  });
1669
1664
  /**
@@ -1680,13 +1675,13 @@ export const remove = /*#__PURE__*/dual(2, (self, i) => {
1680
1675
  *
1681
1676
  * **Example** (Reversing an array)
1682
1677
  *
1683
- * ```ts
1678
+ * ```ts import.meta.vitest
1684
1679
  * import { Array } from "effect"
1685
1680
  *
1686
- * console.log(Array.reverse([1, 2, 3, 4])) // [4, 3, 2, 1]
1681
+ * Array.reverse([1, 2, 3, 4]) // => [4, 3, 2, 1]
1687
1682
  * ```
1688
1683
  *
1689
- * @category elements
1684
+ * @category transforming
1690
1685
  * @since 2.0.0
1691
1686
  */
1692
1687
  export const reverse = self => Array.from(self).reverse();
@@ -1704,10 +1699,10 @@ export const reverse = self => Array.from(self).reverse();
1704
1699
  *
1705
1700
  * **Example** (Sorting numbers)
1706
1701
  *
1707
- * ```ts
1702
+ * ```ts import.meta.vitest
1708
1703
  * import { Array, Order } from "effect"
1709
1704
  *
1710
- * console.log(Array.sort([3, 1, 4, 1, 5], Order.Number)) // [1, 1, 3, 4, 5]
1705
+ * Array.sort([3, 1, 4, 1, 5], Order.Number) // => [1, 1, 3, 4, 5]
1711
1706
  * ```
1712
1707
  *
1713
1708
  * @see {@link sortWith} — sort by a mapping function
@@ -1736,17 +1731,16 @@ export const sort = /*#__PURE__*/dual(2, (self, O) => {
1736
1731
  *
1737
1732
  * **Example** (Sorting strings by length)
1738
1733
  *
1739
- * ```ts
1734
+ * ```ts import.meta.vitest
1740
1735
  * import { Array, Order } from "effect"
1741
1736
  *
1742
- * console.log(Array.sortWith(["aaa", "b", "cc"], (s) => s.length, Order.Number))
1743
- * // ["b", "cc", "aaa"]
1737
+ * Array.sortWith(["aaa", "b", "cc"], (s) => s.length, Order.Number) // => ["b", "cc", "aaa"]
1744
1738
  * ```
1745
1739
  *
1746
1740
  * @see {@link sort} for sorting with an `Order` that compares the elements directly
1747
1741
  * @see {@link sortBy} for sorting with multiple `Order`s applied in sequence
1748
1742
  *
1749
- * @category elements
1743
+ * @category sorting
1750
1744
  * @since 2.0.0
1751
1745
  */
1752
1746
  export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self).map(a => [a, f(a)]).sort(([, a], [, b]) => order(a, b)).map(([_]) => _));
@@ -1766,7 +1760,7 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
1766
1760
  *
1767
1761
  * **Example** (Sorting by multiple keys)
1768
1762
  *
1769
- * ```ts
1763
+ * ```ts import.meta.vitest
1770
1764
  * import { Array, Order, pipe } from "effect"
1771
1765
  *
1772
1766
  * const users = [
@@ -1775,15 +1769,15 @@ export const sortWith = /*#__PURE__*/dual(3, (self, f, order) => Array.from(self
1775
1769
  * { name: "Charlie", age: 30 }
1776
1770
  * ]
1777
1771
  *
1778
- * const result = pipe(
1772
+ * const sortedUsers = pipe(
1779
1773
  * users,
1780
1774
  * Array.sortBy(
1781
1775
  * Order.mapInput(Order.Number, (user: (typeof users)[number]) => user.age),
1782
1776
  * Order.mapInput(Order.String, (user: (typeof users)[number]) => user.name)
1783
1777
  * )
1784
1778
  * )
1785
- * console.log(result)
1786
- * // [{ name: "Bob", age: 25 }, { name: "Alice", age: 30 }, { name: "Charlie", age: 30 }]
1779
+ *
1780
+ * sortedUsers.map((user) => user.name).join(",") // => "Bob,Alice,Charlie"
1787
1781
  * ```
1788
1782
  *
1789
1783
  * @see {@link sort} — sort by a single `Order`
@@ -1816,10 +1810,10 @@ export const sortBy = (...orders) => {
1816
1810
  *
1817
1811
  * **Example** (Zipping two arrays)
1818
1812
  *
1819
- * ```ts
1813
+ * ```ts import.meta.vitest
1820
1814
  * import { Array } from "effect"
1821
1815
  *
1822
- * console.log(Array.zip([1, 2, 3], ["a", "b"])) // [[1, "a"], [2, "b"]]
1816
+ * Array.zip([1, 2, 3], ["a", "b"]) // => [[1, "a"], [2, "b"]]
1823
1817
  * ```
1824
1818
  *
1825
1819
  * @see {@link zipWith} — zip with a combiner function
@@ -1840,10 +1834,10 @@ export const zip = /*#__PURE__*/dual(2, (self, that) => zipWith(self, that, Tupl
1840
1834
  *
1841
1835
  * **Example** (Zipping with addition)
1842
1836
  *
1843
- * ```ts
1837
+ * ```ts import.meta.vitest
1844
1838
  * import { Array } from "effect"
1845
1839
  *
1846
- * console.log(Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b)) // [5, 7, 9]
1840
+ * Array.zipWith([1, 2, 3], [4, 5, 6], (a, b) => a + b) // => [5, 7, 9]
1847
1841
  * ```
1848
1842
  *
1849
1843
  * @see {@link zip} — zip into tuples
@@ -1869,10 +1863,10 @@ export const zipWith = /*#__PURE__*/dual(3, (self, that, f) => {
1869
1863
  *
1870
1864
  * **Example** (Unzipping pairs)
1871
1865
  *
1872
- * ```ts
1866
+ * ```ts import.meta.vitest
1873
1867
  * import { Array } from "effect"
1874
1868
  *
1875
- * console.log(Array.unzip([[1, "a"], [2, "b"], [3, "c"]])) // [[1, 2, 3], ["a", "b", "c"]]
1869
+ * Array.unzip([[1, "a"], [2, "b"], [3, "c"]]) // => [[1, 2, 3], ["a", "b", "c"]]
1876
1870
  * ```
1877
1871
  *
1878
1872
  * @see {@link zip} — combine two arrays into pairs
@@ -1907,15 +1901,15 @@ export const unzip = self => {
1907
1901
  *
1908
1902
  * **Example** (Interspersing a separator)
1909
1903
  *
1910
- * ```ts
1904
+ * ```ts import.meta.vitest
1911
1905
  * import { Array } from "effect"
1912
1906
  *
1913
- * console.log(Array.intersperse([1, 2, 3], 0)) // [1, 0, 2, 0, 3]
1907
+ * Array.intersperse([1, 2, 3], 0) // => [1, 0, 2, 0, 3]
1914
1908
  * ```
1915
1909
  *
1916
1910
  * @see {@link join} — intersperse and join into a string
1917
1911
  *
1918
- * @category elements
1912
+ * @category transforming
1919
1913
  * @since 2.0.0
1920
1914
  */
1921
1915
  export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
@@ -1943,16 +1937,16 @@ export const intersperse = /*#__PURE__*/dual(2, (self, middle) => {
1943
1937
  *
1944
1938
  * **Example** (Modifying the head)
1945
1939
  *
1946
- * ```ts
1940
+ * ```ts import.meta.vitest
1947
1941
  * import { Array } from "effect"
1948
1942
  *
1949
- * console.log(Array.modifyHeadNonEmpty([1, 2, 3], (n) => n * 10)) // [10, 2, 3]
1943
+ * Array.modifyHeadNonEmpty([1, 2, 3], (n) => n * 10) // => [10, 2, 3]
1950
1944
  * ```
1951
1945
  *
1952
1946
  * @see {@link setHeadNonEmpty} — replace with a fixed value
1953
1947
  * @see {@link modifyLastNonEmpty} — modify the last element
1954
1948
  *
1955
- * @category elements
1949
+ * @category transforming
1956
1950
  * @since 4.0.0
1957
1951
  */
1958
1952
  export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEmpty(self)), ...tailNonEmpty(self)]);
@@ -1966,16 +1960,16 @@ export const modifyHeadNonEmpty = /*#__PURE__*/dual(2, (self, f) => [f(headNonEm
1966
1960
  *
1967
1961
  * **Example** (Setting the head)
1968
1962
  *
1969
- * ```ts
1963
+ * ```ts import.meta.vitest
1970
1964
  * import { Array } from "effect"
1971
1965
  *
1972
- * console.log(Array.setHeadNonEmpty([1, 2, 3], 10)) // [10, 2, 3]
1966
+ * Array.setHeadNonEmpty([1, 2, 3], 10) // => [10, 2, 3]
1973
1967
  * ```
1974
1968
  *
1975
1969
  * @see {@link modifyHeadNonEmpty} — transform the head with a function
1976
1970
  * @see {@link setLastNonEmpty} — replace the last element
1977
1971
  *
1978
- * @category elements
1972
+ * @category transforming
1979
1973
  * @since 4.0.0
1980
1974
  */
1981
1975
  export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEmpty(self, () => b));
@@ -1990,16 +1984,16 @@ export const setHeadNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyHeadNonEm
1990
1984
  *
1991
1985
  * **Example** (Modifying the last element)
1992
1986
  *
1993
- * ```ts
1987
+ * ```ts import.meta.vitest
1994
1988
  * import { Array } from "effect"
1995
1989
  *
1996
- * console.log(Array.modifyLastNonEmpty([1, 2, 3], (n) => n * 2)) // [1, 2, 6]
1990
+ * Array.modifyLastNonEmpty([1, 2, 3], (n) => n * 2) // => [1, 2, 6]
1997
1991
  * ```
1998
1992
  *
1999
1993
  * @see {@link setLastNonEmpty} — replace with a fixed value
2000
1994
  * @see {@link modifyHeadNonEmpty} — modify the first element
2001
1995
  *
2002
- * @category elements
1996
+ * @category transforming
2003
1997
  * @since 4.0.0
2004
1998
  */
2005
1999
  export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initNonEmpty(self), f(lastNonEmpty(self))));
@@ -2013,16 +2007,16 @@ export const modifyLastNonEmpty = /*#__PURE__*/dual(2, (self, f) => append(initN
2013
2007
  *
2014
2008
  * **Example** (Setting the last element)
2015
2009
  *
2016
- * ```ts
2010
+ * ```ts import.meta.vitest
2017
2011
  * import { Array } from "effect"
2018
2012
  *
2019
- * console.log(Array.setLastNonEmpty([1, 2, 3], 4)) // [1, 2, 4]
2013
+ * Array.setLastNonEmpty([1, 2, 3], 4) // => [1, 2, 4]
2020
2014
  * ```
2021
2015
  *
2022
2016
  * @see {@link modifyLastNonEmpty} — transform the last element with a function
2023
2017
  * @see {@link setHeadNonEmpty} — replace the first element
2024
2018
  *
2025
- * @category elements
2019
+ * @category transforming
2026
2020
  * @since 4.0.0
2027
2021
  */
2028
2022
  export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEmpty(self, () => b));
@@ -2043,16 +2037,16 @@ export const setLastNonEmpty = /*#__PURE__*/dual(2, (self, b) => modifyLastNonEm
2043
2037
  *
2044
2038
  * **Example** (Rotating elements)
2045
2039
  *
2046
- * ```ts
2040
+ * ```ts import.meta.vitest
2047
2041
  * import { Array } from "effect"
2048
2042
  *
2049
- * console.log(Array.rotate(["a", "b", "c", "d"], 2)) // ["c", "d", "a", "b"]
2043
+ * Array.rotate(["a", "b", "c", "d"], 2) // => ["c", "d", "a", "b"]
2050
2044
  * ```
2051
2045
  *
2052
2046
  * @see {@link take} for taking a fixed number of elements from the start
2053
2047
  * @see {@link drop} for dropping a fixed number of elements from the start
2054
2048
  *
2055
- * @category elements
2049
+ * @category transforming
2056
2050
  * @since 2.0.0
2057
2051
  */
2058
2052
  export const rotate = /*#__PURE__*/dual(2, (self, n) => {
@@ -2082,16 +2076,17 @@ export const rotate = /*#__PURE__*/dual(2, (self, n) => {
2082
2076
  *
2083
2077
  * **Example** (Checking with custom equality)
2084
2078
  *
2085
- * ```ts
2079
+ * ```ts import.meta.vitest
2086
2080
  * import { Array, pipe } from "effect"
2087
2081
  *
2088
2082
  * const containsNumber = Array.containsWith((a: number, b: number) => a === b)
2089
- * console.log(pipe([1, 2, 3, 4], containsNumber(3))) // true
2083
+ *
2084
+ * pipe([1, 2, 3, 4], containsNumber(3)) // => true
2090
2085
  * ```
2091
2086
  *
2092
2087
  * @see {@link contains} for the `Equal.equivalence()` variant
2093
2088
  *
2094
- * @category elements
2089
+ * @category predicates
2095
2090
  * @since 2.0.0
2096
2091
  */
2097
2092
  export const containsWith = isEquivalent => dual(2, (self, a) => {
@@ -2113,15 +2108,15 @@ export const containsWith = isEquivalent => dual(2, (self, a) => {
2113
2108
  *
2114
2109
  * **Example** (Checking membership)
2115
2110
  *
2116
- * ```ts
2111
+ * ```ts import.meta.vitest
2117
2112
  * import { Array, pipe } from "effect"
2118
2113
  *
2119
- * console.log(pipe(["a", "b", "c", "d"], Array.contains("c"))) // true
2114
+ * pipe(["a", "b", "c", "d"], Array.contains("c")) // => true
2120
2115
  * ```
2121
2116
  *
2122
2117
  * @see {@link containsWith} — use custom equality
2123
2118
  *
2124
- * @category elements
2119
+ * @category predicates
2125
2120
  * @since 2.0.0
2126
2121
  */
2127
2122
  export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalence());
@@ -2141,20 +2136,16 @@ export const contains = /*#__PURE__*/containsWith(/*#__PURE__*/Equal.asEquivalen
2141
2136
  *
2142
2137
  * **Example** (Chopping an array)
2143
2138
  *
2144
- * ```ts
2139
+ * ```ts import.meta.vitest
2145
2140
  * import { Array } from "effect"
2146
2141
  *
2147
- * const result = Array.chop(
2148
- * [1, 2, 3, 4, 5],
2149
- * (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]
2150
- * )
2151
- * console.log(result) // [2, 4, 6, 8, 10]
2142
+ * Array.chop([1, 2, 3, 4, 5], (as): [number, Array<number>] => [as[0] * 2, as.slice(1)]) // => [2, 4, 6, 8, 10]
2152
2143
  * ```
2153
2144
  *
2154
2145
  * @see {@link chunksOf} — split into fixed-size chunks
2155
2146
  * @see {@link splitAt} — split at an index
2156
2147
  *
2157
- * @category elements
2148
+ * @category splitting
2158
2149
  * @since 2.0.0
2159
2150
  */
2160
2151
  export const chop = /*#__PURE__*/dual(2, (self, f) => {
@@ -2186,10 +2177,10 @@ export const chop = /*#__PURE__*/dual(2, (self, f) => {
2186
2177
  *
2187
2178
  * **Example** (Splitting at an index)
2188
2179
  *
2189
- * ```ts
2180
+ * ```ts import.meta.vitest
2190
2181
  * import { Array } from "effect"
2191
2182
  *
2192
- * console.log(Array.splitAt([1, 2, 3, 4, 5], 3)) // [[1, 2, 3], [4, 5]]
2183
+ * Array.splitAt([1, 2, 3, 4, 5], 3) // => [[1, 2, 3], [4, 5]]
2193
2184
  * ```
2194
2185
  *
2195
2186
  * @see {@link splitAtNonEmpty} — for non-empty arrays
@@ -2220,11 +2211,10 @@ export const splitAt = /*#__PURE__*/dual(2, (self, n) => {
2220
2211
  *
2221
2212
  * **Example** (Splitting a non-empty array)
2222
2213
  *
2223
- * ```ts
2214
+ * ```ts import.meta.vitest
2224
2215
  * import { Array } from "effect"
2225
2216
  *
2226
- * console.log(Array.splitAtNonEmpty(["a", "b", "c", "d", "e"], 3))
2227
- * // [["a", "b", "c"], ["d", "e"]]
2217
+ * Array.splitAtNonEmpty(["a", "b", "c", "d", "e"], 3) // => [["a", "b", "c"], ["d", "e"]]
2228
2218
  * ```
2229
2219
  *
2230
2220
  * @see {@link splitAt} — for possibly-empty arrays
@@ -2249,10 +2239,10 @@ export const splitAtNonEmpty = /*#__PURE__*/dual(2, (self, n) => {
2249
2239
  *
2250
2240
  * **Example** (Splitting into groups)
2251
2241
  *
2252
- * ```ts
2242
+ * ```ts import.meta.vitest
2253
2243
  * import { Array } from "effect"
2254
2244
  *
2255
- * console.log(Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3)) // [[1, 2, 3], [4, 5, 6], [7, 8]]
2245
+ * Array.split([1, 2, 3, 4, 5, 6, 7, 8], 3) // => [[1, 2, 3], [4, 5, 6], [7, 8]]
2256
2246
  * ```
2257
2247
  *
2258
2248
  * @see {@link chunksOf} — split into fixed-size chunks
@@ -2275,10 +2265,10 @@ export const split = /*#__PURE__*/dual(2, (self, n) => {
2275
2265
  *
2276
2266
  * **Example** (Splitting at a condition)
2277
2267
  *
2278
- * ```ts
2268
+ * ```ts import.meta.vitest
2279
2269
  * import { Array } from "effect"
2280
2270
  *
2281
- * console.log(Array.splitWhere([1, 2, 3, 4, 5], (n) => n > 3)) // [[1, 2, 3], [4, 5]]
2271
+ * Array.splitWhere([1, 2, 3, 4, 5], (n) => n > 3) // => [[1, 2, 3], [4, 5]]
2282
2272
  * ```
2283
2273
  *
2284
2274
  * @see {@link span} — splits at the first element that fails the predicate
@@ -2303,18 +2293,19 @@ export const splitWhere = /*#__PURE__*/dual(2, (self, predicate) => span(self, (
2303
2293
  *
2304
2294
  * **Example** (Copying an array)
2305
2295
  *
2306
- * ```ts
2296
+ * ```ts import.meta.vitest
2307
2297
  * import { Array } from "effect"
2308
2298
  *
2309
2299
  * const original = [1, 2, 3]
2310
2300
  * const copied = Array.copy(original)
2311
- * console.log(copied) // [1, 2, 3]
2312
- * console.log(original === copied) // false
2301
+ *
2302
+ * copied // => [1, 2, 3]
2303
+ * original === copied // => false
2313
2304
  * ```
2314
2305
  *
2315
2306
  * @see {@link fromIterable} — returns the same reference for arrays
2316
2307
  *
2317
- * @category elements
2308
+ * @category transforming
2318
2309
  * @since 2.0.0
2319
2310
  */
2320
2311
  export const copy = self => self.slice();
@@ -2332,16 +2323,16 @@ export const copy = self => self.slice();
2332
2323
  *
2333
2324
  * **Example** (Padding an array)
2334
2325
  *
2335
- * ```ts
2326
+ * ```ts import.meta.vitest
2336
2327
  * import { Array } from "effect"
2337
2328
  *
2338
- * console.log(Array.pad([1, 2, 3], 6, 0)) // [1, 2, 3, 0, 0, 0]
2329
+ * Array.pad([1, 2, 3], 6, 0) // => [1, 2, 3, 0, 0, 0]
2339
2330
  * ```
2340
2331
  *
2341
2332
  * @see {@link take} — truncate without padding
2342
2333
  * @see {@link replicate} — create an array of a single repeated value
2343
2334
  *
2344
- * @category elements
2335
+ * @category transforming
2345
2336
  * @since 3.8.4
2346
2337
  */
2347
2338
  export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
@@ -2366,10 +2357,10 @@ export const pad = /*#__PURE__*/dual(3, (self, n, fill) => {
2366
2357
  *
2367
2358
  * **Example** (Chunking an array)
2368
2359
  *
2369
- * ```ts
2360
+ * ```ts import.meta.vitest
2370
2361
  * import { Array } from "effect"
2371
2362
  *
2372
- * console.log(Array.chunksOf([1, 2, 3, 4, 5], 2)) // [[1, 2], [3, 4], [5]]
2363
+ * Array.chunksOf([1, 2, 3, 4, 5], 2) // => [[1, 2], [3, 4], [5]]
2373
2364
  * ```
2374
2365
  *
2375
2366
  * @see {@link split} — split into a given number of groups
@@ -2399,11 +2390,13 @@ export const chunksOf = /*#__PURE__*/dual(2, (self, n) => {
2399
2390
  *
2400
2391
  * **Example** (Creating sliding windows)
2401
2392
  *
2402
- * ```ts
2393
+ * ```ts import.meta.vitest
2403
2394
  * import { Array } from "effect"
2404
2395
  *
2405
- * console.log(Array.window([1, 2, 3, 4, 5], 3)) // [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
2406
- * console.log(Array.window([1, 2, 3, 4, 5], 6)) // []
2396
+ * const values = [1, 2, 3, 4, 5]
2397
+ *
2398
+ * Array.window(values, 3) // => [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
2399
+ * Array.window(values, 6) // => []
2407
2400
  * ```
2408
2401
  *
2409
2402
  * @see {@link chunksOf} — non-overlapping chunks
@@ -2435,11 +2428,13 @@ export const window = /*#__PURE__*/dual(2, (self, n) => {
2435
2428
  *
2436
2429
  * **Example** (Grouping consecutive equal elements)
2437
2430
  *
2438
- * ```ts
2431
+ * ```ts import.meta.vitest
2439
2432
  * import { Array } from "effect"
2440
2433
  *
2441
- * console.log(Array.groupWith(["a", "a", "b", "b", "b", "c", "a"], (x, y) => x === y))
2442
- * // [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
2434
+ * Array.groupWith(
2435
+ * ["a", "a", "b", "b", "b", "c", "a"],
2436
+ * (x, y) => x === y
2437
+ * ) // => [["a", "a"], ["b", "b", "b"], ["c"], ["a"]]
2443
2438
  * ```
2444
2439
  *
2445
2440
  * @see {@link group} for grouping adjacent elements with `Equal.equivalence()`
@@ -2476,10 +2471,10 @@ export const groupWith = /*#__PURE__*/dual(2, (self, isEquivalent) => chop(self,
2476
2471
  *
2477
2472
  * **Example** (Grouping adjacent equal elements)
2478
2473
  *
2479
- * ```ts
2474
+ * ```ts import.meta.vitest
2480
2475
  * import { Array } from "effect"
2481
2476
  *
2482
- * console.log(Array.group([1, 1, 2, 2, 2, 3, 1])) // [[1, 1], [2, 2, 2], [3], [1]]
2477
+ * Array.group([1, 1, 2, 2, 2, 3, 1]) // => [[1, 1], [2, 2, 2], [3], [1]]
2483
2478
  * ```
2484
2479
  *
2485
2480
  * @see {@link groupWith} — use custom equality
@@ -2504,7 +2499,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
2504
2499
  *
2505
2500
  * **Example** (Grouping by a property)
2506
2501
  *
2507
- * ```ts
2502
+ * ```ts import.meta.vitest
2508
2503
  * import { Array } from "effect"
2509
2504
  *
2510
2505
  * const people = [
@@ -2513,9 +2508,7 @@ export const group = /*#__PURE__*/groupWith(/*#__PURE__*/Equal.asEquivalence());
2513
2508
  * { name: "Charlie", group: "A" }
2514
2509
  * ]
2515
2510
  *
2516
- * const result = Array.groupBy(people, (person) => person.group)
2517
- * console.log(result)
2518
- * // { A: [{ name: "Alice", group: "A" }, { name: "Charlie", group: "A" }], B: [{ name: "Bob", group: "B" }] }
2511
+ * Object.keys(Array.groupBy(people, (person) => person.group)).join(",") // => "A,B"
2519
2512
  * ```
2520
2513
  *
2521
2514
  * @see {@link group} — group adjacent equal elements
@@ -2531,11 +2524,46 @@ export const groupBy = /*#__PURE__*/dual(2, (self, f) => {
2531
2524
  if (Object.hasOwn(out, k)) {
2532
2525
  out[k].push(a);
2533
2526
  } else {
2534
- out[k] = [a];
2527
+ InternalRecord.assignProperty(out, k, [a]);
2535
2528
  }
2536
2529
  }
2537
2530
  return out;
2538
2531
  });
2532
+ const hashBucketsAdd = (buckets, value) => {
2533
+ const hash = Hash.hash(value);
2534
+ const bucket = buckets.get(hash);
2535
+ if (bucket === undefined) {
2536
+ buckets.set(hash, [value]);
2537
+ return true;
2538
+ }
2539
+ // Hash collisions still require an Effect equality check.
2540
+ for (const previous of bucket) {
2541
+ if (Equal.equals(previous, value)) {
2542
+ return false;
2543
+ }
2544
+ }
2545
+ bucket.push(value);
2546
+ return true;
2547
+ };
2548
+ const makeHashBuckets = values => {
2549
+ const buckets = new Map();
2550
+ for (const value of values) {
2551
+ hashBucketsAdd(buckets, value);
2552
+ }
2553
+ return buckets;
2554
+ };
2555
+ const hashBucketsHas = (buckets, value) => {
2556
+ const bucket = buckets.get(Hash.hash(value));
2557
+ if (bucket === undefined) {
2558
+ return false;
2559
+ }
2560
+ for (const candidate of bucket) {
2561
+ if (Equal.equals(candidate, value)) {
2562
+ return true;
2563
+ }
2564
+ }
2565
+ return false;
2566
+ };
2539
2567
  /**
2540
2568
  * Computes the union of two arrays using a custom equivalence, removing
2541
2569
  * duplicates.
@@ -2547,17 +2575,17 @@ export const groupBy = /*#__PURE__*/dual(2, (self, f) => {
2547
2575
  *
2548
2576
  * **Example** (Computing unions with custom equality)
2549
2577
  *
2550
- * ```ts
2578
+ * ```ts import.meta.vitest
2551
2579
  * import { Array } from "effect"
2552
2580
  *
2553
- * console.log(Array.unionWith([1, 2], [2, 3], (a, b) => a === b)) // [1, 2, 3]
2581
+ * Array.unionWith([1, 2], [2, 3], (a, b) => a === b) // => [1, 2, 3]
2554
2582
  * ```
2555
2583
  *
2556
2584
  * @see {@link union} for the `Equal.equivalence()` variant
2557
2585
  * @see {@link intersectionWith} for keeping elements present in both arrays
2558
2586
  * @see {@link differenceWith} for keeping elements present only in the first array
2559
2587
  *
2560
- * @category elements
2588
+ * @category set operations
2561
2589
  * @since 2.0.0
2562
2590
  */
2563
2591
  export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
@@ -2578,20 +2606,27 @@ export const unionWith = /*#__PURE__*/dual(3, (self, that, isEquivalent) => {
2578
2606
  *
2579
2607
  * **Example** (Computing array unions)
2580
2608
  *
2581
- * ```ts
2609
+ * ```ts import.meta.vitest
2582
2610
  * import { Array } from "effect"
2583
2611
  *
2584
- * console.log(Array.union([1, 2], [2, 3])) // [1, 2, 3]
2612
+ * Array.union([1, 2], [2, 3]) // => [1, 2, 3]
2585
2613
  * ```
2586
2614
  *
2587
2615
  * @see {@link unionWith} — use custom equality
2588
2616
  * @see {@link intersection} — elements in both arrays
2589
2617
  * @see {@link difference} — elements only in the first array
2590
2618
  *
2591
- * @category elements
2619
+ * @category set operations
2592
2620
  * @since 2.0.0
2593
2621
  */
2594
- export const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that, Equal.asEquivalence()));
2622
+ export const union = /*#__PURE__*/dual(2, (self, that) => {
2623
+ const a = fromIterable(self);
2624
+ const b = fromIterable(that);
2625
+ if (isReadonlyArrayNonEmpty(a)) {
2626
+ return isReadonlyArrayNonEmpty(b) ? dedupe(appendAll(a, b)) : a;
2627
+ }
2628
+ return b;
2629
+ });
2595
2630
  /**
2596
2631
  * Computes the intersection of two arrays using a custom equivalence. Order is
2597
2632
  * determined by the first array.
@@ -2603,20 +2638,21 @@ export const union = /*#__PURE__*/dual(2, (self, that) => unionWith(self, that,
2603
2638
  *
2604
2639
  * **Example** (Computing intersections with custom equality)
2605
2640
  *
2606
- * ```ts
2641
+ * ```ts import.meta.vitest
2607
2642
  * import { Array } from "effect"
2608
2643
  *
2609
2644
  * const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]
2610
2645
  * const array2 = [{ id: 3 }, { id: 4 }, { id: 1 }]
2611
2646
  * const isEquivalent = (a: { id: number }, b: { id: number }) => a.id === b.id
2612
- * console.log(Array.intersectionWith(isEquivalent)(array2)(array1)) // [{ id: 1 }, { id: 3 }]
2647
+ *
2648
+ * Array.intersectionWith(isEquivalent)(array2)(array1) // => [{ id: 1 }, { id: 3 }]
2613
2649
  * ```
2614
2650
  *
2615
2651
  * @see {@link intersection} for the `Equal.equivalence()` variant
2616
2652
  * @see {@link unionWith} for keeping values from either array with custom equality
2617
2653
  * @see {@link differenceWith} for keeping values only from the first array with custom equality
2618
2654
  *
2619
- * @category elements
2655
+ * @category set operations
2620
2656
  * @since 2.0.0
2621
2657
  */
2622
2658
  export const intersectionWith = isEquivalent => {
@@ -2637,20 +2673,28 @@ export const intersectionWith = isEquivalent => {
2637
2673
  *
2638
2674
  * **Example** (Computing array intersections)
2639
2675
  *
2640
- * ```ts
2676
+ * ```ts import.meta.vitest
2641
2677
  * import { Array } from "effect"
2642
2678
  *
2643
- * console.log(Array.intersection([1, 2, 3], [3, 4, 1])) // [1, 3]
2679
+ * Array.intersection([1, 2, 3], [3, 4, 1]) // => [1, 3]
2644
2680
  * ```
2645
2681
  *
2646
2682
  * @see {@link intersectionWith} — use custom equality
2647
2683
  * @see {@link union} — elements in either array
2648
2684
  * @see {@link difference} — elements only in the first array
2649
2685
  *
2650
- * @category elements
2686
+ * @category set operations
2651
2687
  * @since 2.0.0
2652
2688
  */
2653
- export const intersection = /*#__PURE__*/intersectionWith(/*#__PURE__*/Equal.asEquivalence());
2689
+ export const intersection = /*#__PURE__*/dual(2, (self, that) => {
2690
+ const thatArray = fromIterable(that);
2691
+ const selfArray = fromIterable(self);
2692
+ if (selfArray.length === 0 || thatArray.length === 0) {
2693
+ return [];
2694
+ }
2695
+ const buckets = makeHashBuckets(thatArray);
2696
+ return selfArray.filter(value => hashBucketsHas(buckets, value));
2697
+ });
2654
2698
  /**
2655
2699
  * Computes elements in the first array that are not in the second, using a
2656
2700
  * custom equivalence.
@@ -2662,18 +2706,17 @@ export const intersection = /*#__PURE__*/intersectionWith(/*#__PURE__*/Equal.asE
2662
2706
  *
2663
2707
  * **Example** (Computing differences with custom equality)
2664
2708
  *
2665
- * ```ts
2709
+ * ```ts import.meta.vitest
2666
2710
  * import { Array } from "effect"
2667
2711
  *
2668
- * const diff = Array.differenceWith<number>((a, b) => a === b)([1, 2, 3], [2, 3, 4])
2669
- * console.log(diff) // [1]
2712
+ * Array.differenceWith<number>((a, b) => a === b)([1, 2, 3], [2, 3, 4]) // => [1]
2670
2713
  * ```
2671
2714
  *
2672
2715
  * @see {@link difference} for the `Equal.equivalence()` variant
2673
2716
  * @see {@link unionWith} for keeping values from either array with custom equality
2674
2717
  * @see {@link intersectionWith} for keeping values present in both arrays with custom equality
2675
2718
  *
2676
- * @category elements
2719
+ * @category set operations
2677
2720
  * @since 2.0.0
2678
2721
  */
2679
2722
  export const differenceWith = isEquivalent => {
@@ -2694,20 +2737,31 @@ export const differenceWith = isEquivalent => {
2694
2737
  *
2695
2738
  * **Example** (Computing array differences)
2696
2739
  *
2697
- * ```ts
2740
+ * ```ts import.meta.vitest
2698
2741
  * import { Array } from "effect"
2699
2742
  *
2700
- * console.log(Array.difference([1, 2, 3], [2, 3, 4])) // [1]
2743
+ * Array.difference([1, 2, 3], [2, 3, 4]) // => [1]
2701
2744
  * ```
2702
2745
  *
2703
2746
  * @see {@link differenceWith} — use custom equality
2704
2747
  * @see {@link union} — elements in either array
2705
2748
  * @see {@link intersection} — elements in both arrays
2706
2749
  *
2707
- * @category elements
2750
+ * @category set operations
2708
2751
  * @since 2.0.0
2709
2752
  */
2710
- export const difference = /*#__PURE__*/differenceWith(/*#__PURE__*/Equal.asEquivalence());
2753
+ export const difference = /*#__PURE__*/dual(2, (self, that) => {
2754
+ const thatArray = fromIterable(that);
2755
+ const selfArray = fromIterable(self);
2756
+ if (selfArray.length === 0) {
2757
+ return [];
2758
+ }
2759
+ if (thatArray.length === 0) {
2760
+ return selfArray.filter(() => true);
2761
+ }
2762
+ const buckets = makeHashBuckets(thatArray);
2763
+ return selfArray.filter(value => !hashBucketsHas(buckets, value));
2764
+ });
2711
2765
  /**
2712
2766
  * Creates an empty array.
2713
2767
  *
@@ -2717,11 +2771,10 @@ export const difference = /*#__PURE__*/differenceWith(/*#__PURE__*/Equal.asEquiv
2717
2771
  *
2718
2772
  * **Example** (Creating an empty array)
2719
2773
  *
2720
- * ```ts
2774
+ * ```ts import.meta.vitest
2721
2775
  * import { Array } from "effect"
2722
2776
  *
2723
- * const result = Array.empty<number>()
2724
- * console.log(result) // []
2777
+ * Array.empty<number>() // => []
2725
2778
  * ```
2726
2779
  *
2727
2780
  * @see {@link of} — create a single-element array
@@ -2736,10 +2789,10 @@ export const empty = () => [];
2736
2789
  *
2737
2790
  * **Example** (Creating a single-element array)
2738
2791
  *
2739
- * ```ts
2792
+ * ```ts import.meta.vitest
2740
2793
  * import { Array } from "effect"
2741
2794
  *
2742
- * console.log(Array.of(1)) // [1]
2795
+ * Array.of(1) // => [1]
2743
2796
  * ```
2744
2797
  *
2745
2798
  * @see {@link make} — create from multiple values
@@ -2763,10 +2816,10 @@ export const of = a => [a];
2763
2816
  *
2764
2817
  * **Example** (Doubling values)
2765
2818
  *
2766
- * ```ts
2819
+ * ```ts import.meta.vitest
2767
2820
  * import { Array } from "effect"
2768
2821
  *
2769
- * console.log(Array.map([1, 2, 3], (x) => x * 2)) // [2, 4, 6]
2822
+ * Array.map([1, 2, 3], (x) => x * 2) // => [2, 4, 6]
2770
2823
  * ```
2771
2824
  *
2772
2825
  * @see {@link flatMap} — map and flatten
@@ -2790,10 +2843,10 @@ export const map = /*#__PURE__*/dual(2, (self, f) => self.map(f));
2790
2843
  *
2791
2844
  * **Example** (Flat mapping an array)
2792
2845
  *
2793
- * ```ts
2846
+ * ```ts import.meta.vitest
2794
2847
  * import { Array } from "effect"
2795
2848
  *
2796
- * console.log(Array.flatMap([1, 2, 3], (x) => [x, x * 2])) // [1, 2, 2, 4, 3, 6]
2849
+ * Array.flatMap([1, 2, 3], (x) => [x, x * 2]) // => [1, 2, 2, 4, 3, 6]
2797
2850
  * ```
2798
2851
  *
2799
2852
  * @see {@link map} — transform without flattening
@@ -2825,10 +2878,10 @@ export const flatMap = /*#__PURE__*/dual(2, (self, f) => {
2825
2878
  *
2826
2879
  * **Example** (Flattening nested arrays)
2827
2880
  *
2828
- * ```ts
2881
+ * ```ts import.meta.vitest
2829
2882
  * import { Array } from "effect"
2830
2883
  *
2831
- * console.log(Array.flatten([[1, 2], [], [3, 4], [], [5, 6]])) // [1, 2, 3, 4, 5, 6]
2884
+ * Array.flatten([[1, 2], [], [3, 4], [], [5, 6]]) // => [1, 2, 3, 4, 5, 6]
2832
2885
  * ```
2833
2886
  *
2834
2887
  * @see {@link flatMap} — map then flatten in one step
@@ -2847,10 +2900,10 @@ export const flatten = /*#__PURE__*/flatMap(identity);
2847
2900
  *
2848
2901
  * **Example** (Extracting Some values)
2849
2902
  *
2850
- * ```ts
2903
+ * ```ts import.meta.vitest
2851
2904
  * import { Array, Option } from "effect"
2852
2905
  *
2853
- * console.log(Array.getSomes([Option.some(1), Option.none(), Option.some(2)])) // [1, 2]
2906
+ * Array.getSomes([Option.some(1), Option.none(), Option.some(2)]) // => [1, 2]
2854
2907
  * ```
2855
2908
  *
2856
2909
  * @see {@link fromOption} — convert a single Option
@@ -2879,11 +2932,10 @@ export const getSomes = self => {
2879
2932
  *
2880
2933
  * **Example** (Extracting failures)
2881
2934
  *
2882
- * ```ts
2935
+ * ```ts import.meta.vitest
2883
2936
  * import { Array, Result } from "effect"
2884
2937
  *
2885
- * console.log(Array.getFailures([Result.succeed(1), Result.fail("err"), Result.succeed(2)]))
2886
- * // ["err"]
2938
+ * Array.getFailures([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => ["err"]
2887
2939
  * ```
2888
2940
  *
2889
2941
  * @see {@link getSuccesses} — extract success values
@@ -2912,11 +2964,10 @@ export const getFailures = self => {
2912
2964
  *
2913
2965
  * **Example** (Extracting successes)
2914
2966
  *
2915
- * ```ts
2967
+ * ```ts import.meta.vitest
2916
2968
  * import { Array, Result } from "effect"
2917
2969
  *
2918
- * console.log(Array.getSuccesses([Result.succeed(1), Result.fail("err"), Result.succeed(2)]))
2919
- * // [1, 2]
2970
+ * Array.getSuccesses([Result.succeed(1), Result.fail("err"), Result.succeed(2)]) // => [1, 2]
2920
2971
  * ```
2921
2972
  *
2922
2973
  * @see {@link getFailures} — extract failure values
@@ -2948,11 +2999,10 @@ export const getSuccesses = self => {
2948
2999
  *
2949
3000
  * **Example** (Filtering and transforming)
2950
3001
  *
2951
- * ```ts
3002
+ * ```ts import.meta.vitest
2952
3003
  * import { Array, Result } from "effect"
2953
3004
  *
2954
- * console.log(Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid))
2955
- * // [20, 40]
3005
+ * Array.filterMap([1, 2, 3, 4], (n) => n % 2 === 0 ? Result.succeed(n * 10) : Result.failVoid) // => [20, 40]
2956
3006
  * ```
2957
3007
  *
2958
3008
  * @see {@link filter} — keep original elements matching a predicate
@@ -2987,10 +3037,10 @@ export const filterMap = /*#__PURE__*/dual(2, (self, f) => {
2987
3037
  *
2988
3038
  * **Example** (Filtering even numbers)
2989
3039
  *
2990
- * ```ts
3040
+ * ```ts import.meta.vitest
2991
3041
  * import { Array } from "effect"
2992
3042
  *
2993
- * console.log(Array.filter([1, 2, 3, 4], (x) => x % 2 === 0)) // [2, 4]
3043
+ * Array.filter([1, 2, 3, 4], (x) => x % 2 === 0) // => [2, 4]
2994
3044
  * ```
2995
3045
  *
2996
3046
  * @see {@link partition} — split into matching and non-matching
@@ -3023,13 +3073,12 @@ export const filter = /*#__PURE__*/dual(2, (self, predicate) => {
3023
3073
  *
3024
3074
  * **Example** (Partitioning with a filter)
3025
3075
  *
3026
- * ```ts
3076
+ * ```ts import.meta.vitest
3027
3077
  * import { Array, Result } from "effect"
3028
3078
  *
3029
- * console.log(Array.partition([1, -2, 3], (n, i) =>
3079
+ * Array.partition([1, -2, 3], (n, i) =>
3030
3080
  * n > 0 ? Result.succeed(n + i) : Result.fail(`negative:${n}`)
3031
- * ))
3032
- * // [["negative:-2"], [1, 5]]
3081
+ * ) // => [["negative:-2"], [1, 5]]
3033
3082
  * ```
3034
3083
  *
3035
3084
  * @see {@link filter} — keep only matching elements
@@ -3067,14 +3116,10 @@ export const partition = /*#__PURE__*/dual(2, (self, f) => {
3067
3116
  *
3068
3117
  * **Example** (Separating Results)
3069
3118
  *
3070
- * ```ts
3119
+ * ```ts import.meta.vitest
3071
3120
  * import { Array, Result } from "effect"
3072
3121
  *
3073
- * const [failures, successes] = Array.separate([
3074
- * Result.succeed(1), Result.fail("error"), Result.succeed(2)
3075
- * ])
3076
- * console.log(failures) // ["error"]
3077
- * console.log(successes) // [1, 2]
3122
+ * Array.separate([Result.succeed(1), Result.fail("error"), Result.succeed(2)]) // => [["error"], [1, 2]]
3078
3123
  * ```
3079
3124
  *
3080
3125
  * @see {@link getFailures} — extract only failures
@@ -3098,10 +3143,10 @@ export const separate = /*#__PURE__*/partition(identity);
3098
3143
  *
3099
3144
  * **Example** (Summing an array)
3100
3145
  *
3101
- * ```ts
3146
+ * ```ts import.meta.vitest
3102
3147
  * import { Array } from "effect"
3103
3148
  *
3104
- * console.log(Array.reduce([1, 2, 3], 0, (acc, n) => acc + n)) // 6
3149
+ * Array.reduce([1, 2, 3], 0, (acc, n) => acc + n) // => 6
3105
3150
  * ```
3106
3151
  *
3107
3152
  * @see {@link reduceRight} — fold from right to left
@@ -3124,10 +3169,10 @@ export const reduce = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(self).re
3124
3169
  *
3125
3170
  * **Example** (Folding from right to left)
3126
3171
  *
3127
- * ```ts
3172
+ * ```ts import.meta.vitest
3128
3173
  * import { Array } from "effect"
3129
3174
  *
3130
- * console.log(Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n)) // 6
3175
+ * Array.reduceRight([1, 2, 3], 0, (acc, n) => acc + n) // => 6
3131
3176
  * ```
3132
3177
  *
3133
3178
  * @see {@link reduce} — fold from left to right
@@ -3143,13 +3188,13 @@ export const reduceRight = /*#__PURE__*/dual(3, (self, b, f) => fromIterable(sel
3143
3188
  *
3144
3189
  * **Example** (Wrapping values conditionally)
3145
3190
  *
3146
- * ```ts
3191
+ * ```ts import.meta.vitest
3147
3192
  * import { Array } from "effect"
3148
3193
  *
3149
- * const isEven = (n: number) => n % 2 === 0
3150
- * const to = Array.liftPredicate(isEven)
3151
- * console.log(to(1)) // []
3152
- * console.log(to(2)) // [2]
3194
+ * const fromEven = Array.liftPredicate((n: number) => n % 2 === 0)
3195
+ *
3196
+ * fromEven(1) // => []
3197
+ * fromEven(2) // => [2]
3153
3198
  * ```
3154
3199
  *
3155
3200
  * @see {@link liftOption} — lift an Option-returning function
@@ -3169,15 +3214,16 @@ export const liftPredicate = predicate => b => predicate(b) ? [b] : [];
3169
3214
  *
3170
3215
  * **Example** (Lifting an Option function)
3171
3216
  *
3172
- * ```ts
3217
+ * ```ts import.meta.vitest
3173
3218
  * import { Array, Option } from "effect"
3174
3219
  *
3175
3220
  * const parseNumber = Array.liftOption((s: string) => {
3176
3221
  * const n = Number(s)
3177
3222
  * return isNaN(n) ? Option.none() : Option.some(n)
3178
3223
  * })
3179
- * console.log(parseNumber("123")) // [123]
3180
- * console.log(parseNumber("abc")) // []
3224
+ *
3225
+ * parseNumber("123") // => [123]
3226
+ * parseNumber("abc") // => []
3181
3227
  * ```
3182
3228
  *
3183
3229
  * @see {@link liftPredicate} — lift a boolean predicate
@@ -3197,12 +3243,12 @@ export const liftOption = f => (...a) => fromOption(f(...a));
3197
3243
  *
3198
3244
  * **Example** (Converting nullable values to an array)
3199
3245
  *
3200
- * ```ts
3246
+ * ```ts import.meta.vitest
3201
3247
  * import { Array } from "effect"
3202
3248
  *
3203
- * console.log(Array.fromNullishOr(1)) // [1]
3204
- * console.log(Array.fromNullishOr(null)) // []
3205
- * console.log(Array.fromNullishOr(undefined)) // []
3249
+ * Array.fromNullishOr(1) // => [1]
3250
+ * Array.fromNullishOr(null) // => []
3251
+ * Array.fromNullishOr(undefined) // => []
3206
3252
  * ```
3207
3253
  *
3208
3254
  * @see {@link liftNullishOr} — lift a nullable-returning function
@@ -3218,15 +3264,16 @@ export const fromNullishOr = a => a == null ? empty() : [a];
3218
3264
  *
3219
3265
  * **Example** (Lifting a nullable function)
3220
3266
  *
3221
- * ```ts
3267
+ * ```ts import.meta.vitest
3222
3268
  * import { Array } from "effect"
3223
3269
  *
3224
3270
  * const parseNumber = Array.liftNullishOr((s: string) => {
3225
3271
  * const n = Number(s)
3226
3272
  * return isNaN(n) ? null : n
3227
3273
  * })
3228
- * console.log(parseNumber("123")) // [123]
3229
- * console.log(parseNumber("abc")) // []
3274
+ *
3275
+ * parseNumber("123") // => [123]
3276
+ * parseNumber("abc") // => []
3230
3277
  * ```
3231
3278
  *
3232
3279
  * @see {@link fromNullishOr} — convert a single nullable value
@@ -3247,11 +3294,10 @@ export const liftNullishOr = f => (...a) => fromNullishOr(f(...a));
3247
3294
  *
3248
3295
  * **Example** (Flat mapping with nullable values)
3249
3296
  *
3250
- * ```ts
3297
+ * ```ts import.meta.vitest
3251
3298
  * import { Array } from "effect"
3252
3299
  *
3253
- * console.log(Array.flatMapNullishOr([1, 2, 3], (n) => (n % 2 === 0 ? null : n)))
3254
- * // [1, 3]
3300
+ * Array.flatMapNullishOr([1, 2, 3], (n) => (n % 2 === 0 ? null : n)) // => [1, 3]
3255
3301
  * ```
3256
3302
  *
3257
3303
  * @see {@link flatMap} for mapping each element to an array and flattening
@@ -3272,7 +3318,7 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
3272
3318
  *
3273
3319
  * **Example** (Lifting a Result function)
3274
3320
  *
3275
- * ```ts
3321
+ * ```ts import.meta.vitest
3276
3322
  * import { Array, Result } from "effect"
3277
3323
  *
3278
3324
  * const parseNumber = (s: string): Result.Result<number, Error> =>
@@ -3281,8 +3327,9 @@ export const flatMapNullishOr = /*#__PURE__*/dual(2, (self, f) => flatMap(self,
3281
3327
  * : Result.succeed(Number(s))
3282
3328
  *
3283
3329
  * const liftedParseNumber = Array.liftResult(parseNumber)
3284
- * console.log(liftedParseNumber("42")) // [42]
3285
- * console.log(liftedParseNumber("not a number")) // []
3330
+ *
3331
+ * liftedParseNumber("42") // => [42]
3332
+ * liftedParseNumber("not a number") // => []
3286
3333
  * ```
3287
3334
  *
3288
3335
  * @see {@link liftOption} — lift an Option-returning function
@@ -3306,16 +3353,16 @@ export const liftResult = f => (...a) => {
3306
3353
  *
3307
3354
  * **Example** (Testing all elements)
3308
3355
  *
3309
- * ```ts
3356
+ * ```ts import.meta.vitest
3310
3357
  * import { Array } from "effect"
3311
3358
  *
3312
- * console.log(Array.every([2, 4, 6], (x) => x % 2 === 0)) // true
3313
- * console.log(Array.every([2, 3, 6], (x) => x % 2 === 0)) // false
3359
+ * Array.every([2, 4, 6], (x) => x % 2 === 0) // => true
3360
+ * Array.every([2, 3, 6], (x) => x % 2 === 0) // => false
3314
3361
  * ```
3315
3362
  *
3316
3363
  * @see {@link some} — test if any element matches
3317
3364
  *
3318
- * @category elements
3365
+ * @category guards
3319
3366
  * @since 2.0.0
3320
3367
  */
3321
3368
  export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refinement));
@@ -3325,17 +3372,17 @@ export const every = /*#__PURE__*/dual(2, (self, refinement) => self.every(refin
3325
3372
  *
3326
3373
  * **Example** (Testing for any match)
3327
3374
  *
3328
- * ```ts
3375
+ * ```ts import.meta.vitest
3329
3376
  * import { Array } from "effect"
3330
3377
  *
3331
- * console.log(Array.some([1, 3, 4], (x) => x % 2 === 0)) // true
3332
- * console.log(Array.some([1, 3, 5], (x) => x % 2 === 0)) // false
3378
+ * Array.some([1, 3, 4], (x) => x % 2 === 0) // => true
3379
+ * Array.some([1, 3, 5], (x) => x % 2 === 0) // => false
3333
3380
  * ```
3334
3381
  *
3335
3382
  * @see {@link every} — test if all elements match
3336
3383
  * @see {@link contains} — test for a specific value
3337
3384
  *
3338
- * @category elements
3385
+ * @category guards
3339
3386
  * @since 2.0.0
3340
3387
  */
3341
3388
  export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicate));
@@ -3354,10 +3401,10 @@ export const some = /*#__PURE__*/dual(2, (self, predicate) => self.some(predicat
3354
3401
  *
3355
3402
  * **Example** (Computing suffix lengths)
3356
3403
  *
3357
- * ```ts
3404
+ * ```ts import.meta.vitest
3358
3405
  * import { Array } from "effect"
3359
3406
  *
3360
- * console.log(Array.extend([1, 2, 3], (as) => as.length)) // [3, 2, 1]
3407
+ * Array.extend([1, 2, 3], (as) => as.length) // => [3, 2, 1]
3361
3408
  * ```
3362
3409
  *
3363
3410
  * @see {@link scan} for keeping intermediate accumulator values during a fold
@@ -3372,16 +3419,16 @@ export const extend = /*#__PURE__*/dual(2, (self, f) => self.map((_, i, as) => f
3372
3419
  *
3373
3420
  * **Example** (Finding the minimum)
3374
3421
  *
3375
- * ```ts
3422
+ * ```ts import.meta.vitest
3376
3423
  * import { Array, Order } from "effect"
3377
3424
  *
3378
- * console.log(Array.min([3, 1, 2], Order.Number)) // 1
3425
+ * Array.min([3, 1, 2], Order.Number) // => 1
3379
3426
  * ```
3380
3427
  *
3381
3428
  * @see {@link max} — find the maximum
3382
3429
  * @see {@link sort} — sort the entire array
3383
3430
  *
3384
- * @category elements
3431
+ * @category getters
3385
3432
  * @since 2.0.0
3386
3433
  */
3387
3434
  export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
@@ -3391,16 +3438,16 @@ export const min = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.min(O)));
3391
3438
  *
3392
3439
  * **Example** (Finding the maximum)
3393
3440
  *
3394
- * ```ts
3441
+ * ```ts import.meta.vitest
3395
3442
  * import { Array, Order } from "effect"
3396
3443
  *
3397
- * console.log(Array.max([3, 1, 2], Order.Number)) // 3
3444
+ * Array.max([3, 1, 2], Order.Number) // => 3
3398
3445
  * ```
3399
3446
  *
3400
3447
  * @see {@link min} — find the minimum
3401
3448
  * @see {@link sort} — sort the entire array
3402
3449
  *
3403
- * @category elements
3450
+ * @category getters
3404
3451
  * @since 2.0.0
3405
3452
  */
3406
3453
  export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
@@ -3411,11 +3458,10 @@ export const max = /*#__PURE__*/dual(2, (self, O) => self.reduce(Order.max(O)));
3411
3458
  *
3412
3459
  * **Example** (Generating a sequence)
3413
3460
  *
3414
- * ```ts
3461
+ * ```ts import.meta.vitest
3415
3462
  * import { Array, Option } from "effect"
3416
3463
  *
3417
- * console.log(Array.unfold(1, (n) => n <= 5 ? Option.some([n, n + 1]) : Option.none()))
3418
- * // [1, 2, 3, 4, 5]
3464
+ * Array.unfold(1, (n) => n <= 5 ? Option.some([n, n + 1]) : Option.none()) // => [1, 2, 3, 4, 5]
3419
3465
  * ```
3420
3466
  *
3421
3467
  * @see {@link makeBy} — generate from index
@@ -3445,11 +3491,12 @@ export const unfold = (b, f) => {
3445
3491
  *
3446
3492
  * **Example** (Comparing arrays)
3447
3493
  *
3448
- * ```ts
3494
+ * ```ts import.meta.vitest
3449
3495
  * import { Array, Order } from "effect"
3450
3496
  *
3451
3497
  * const arrayOrder = Array.makeOrder(Order.Number)
3452
- * console.log(arrayOrder([1, 2], [1, 3])) // -1
3498
+ *
3499
+ * arrayOrder([1, 2], [1, 3]) // => -1
3453
3500
  * ```
3454
3501
  *
3455
3502
  * @see {@link makeEquivalence} — create an equivalence for arrays
@@ -3465,11 +3512,12 @@ export const makeOrder = Order.Array;
3465
3512
  *
3466
3513
  * **Example** (Comparing arrays for equality)
3467
3514
  *
3468
- * ```ts
3515
+ * ```ts import.meta.vitest
3469
3516
  * import { Array } from "effect"
3470
3517
  *
3471
3518
  * const eq = Array.makeEquivalence<number>((a, b) => a === b)
3472
- * console.log(eq([1, 2, 3], [1, 2, 3])) // true
3519
+ *
3520
+ * eq([1, 2, 3], [1, 2, 3]) // => true
3473
3521
  * ```
3474
3522
  *
3475
3523
  * @see {@link makeOrder} — create an ordering for arrays
@@ -3488,15 +3536,18 @@ export const makeEquivalence = Equivalence.Array;
3488
3536
  *
3489
3537
  * **Example** (Iterating with side-effects)
3490
3538
  *
3491
- * ```ts
3539
+ * ```ts import.meta.vitest
3492
3540
  * import { Array } from "effect"
3493
3541
  *
3494
- * Array.forEach([1, 2, 3], (n) => console.log(n)) // 1, 2, 3
3542
+ * const visited: Array<number> = []
3543
+ * Array.forEach([1, 2, 3], (n) => visited.push(n))
3544
+ *
3545
+ * visited // => [1, 2, 3]
3495
3546
  * ```
3496
3547
  *
3497
3548
  * @see {@link map} for transforming each element into a new array
3498
3549
  *
3499
- * @category elements
3550
+ * @category traversing
3500
3551
  * @since 2.0.0
3501
3552
  */
3502
3553
  export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forEach((a, i) => f(a, i)));
@@ -3511,16 +3562,16 @@ export const forEach = /*#__PURE__*/dual(2, (self, f) => fromIterable(self).forE
3511
3562
  *
3512
3563
  * **Example** (Deduplicating with custom equality)
3513
3564
  *
3514
- * ```ts
3565
+ * ```ts import.meta.vitest
3515
3566
  * import { Array } from "effect"
3516
3567
  *
3517
- * console.log(Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b)) // [1, 2, 3]
3568
+ * Array.dedupeWith([1, 2, 2, 3, 3, 3], (a, b) => a === b) // => [1, 2, 3]
3518
3569
  * ```
3519
3570
  *
3520
3571
  * @see {@link dedupe} — uses default equality
3521
3572
  * @see {@link dedupeAdjacentWith} — only dedupes consecutive elements
3522
3573
  *
3523
- * @category elements
3574
+ * @category deduplication
3524
3575
  * @since 2.0.0
3525
3576
  */
3526
3577
  export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
@@ -3548,19 +3599,32 @@ export const dedupeWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
3548
3599
  *
3549
3600
  * **Example** (Removing duplicates)
3550
3601
  *
3551
- * ```ts
3602
+ * ```ts import.meta.vitest
3552
3603
  * import { Array } from "effect"
3553
3604
  *
3554
- * console.log(Array.dedupe([1, 2, 1, 3, 2, 4])) // [1, 2, 3, 4]
3605
+ * Array.dedupe([1, 2, 1, 3, 2, 4]) // => [1, 2, 3, 4]
3555
3606
  * ```
3556
3607
  *
3557
3608
  * @see {@link dedupeWith} — use custom equality
3558
3609
  * @see {@link dedupeAdjacent} — only dedupes consecutive elements
3559
3610
  *
3560
- * @category elements
3611
+ * @category deduplication
3561
3612
  * @since 2.0.0
3562
3613
  */
3563
- export const dedupe = self => dedupeWith(self, Equal.asEquivalence());
3614
+ export const dedupe = self => {
3615
+ const input = fromIterable(self);
3616
+ if (input.length < 2) {
3617
+ return [...input];
3618
+ }
3619
+ const buckets = new Map();
3620
+ const out = [];
3621
+ for (const value of input) {
3622
+ if (hashBucketsAdd(buckets, value)) {
3623
+ out.push(value);
3624
+ }
3625
+ }
3626
+ return out;
3627
+ };
3564
3628
  /**
3565
3629
  * Removes consecutive duplicate elements using a custom equivalence.
3566
3630
  *
@@ -3576,17 +3640,16 @@ export const dedupe = self => dedupeWith(self, Equal.asEquivalence());
3576
3640
  *
3577
3641
  * **Example** (Deduplicating adjacent elements)
3578
3642
  *
3579
- * ```ts
3643
+ * ```ts import.meta.vitest
3580
3644
  * import { Array } from "effect"
3581
3645
  *
3582
- * console.log(Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b))
3583
- * // [1, 2, 3]
3646
+ * Array.dedupeAdjacentWith([1, 1, 2, 2, 3, 3], (a, b) => a === b) // => [1, 2, 3]
3584
3647
  * ```
3585
3648
  *
3586
3649
  * @see {@link dedupeAdjacent} — uses default equality
3587
3650
  * @see {@link dedupeWith} — dedupes all duplicates, not just adjacent
3588
3651
  *
3589
- * @category elements
3652
+ * @category deduplication
3590
3653
  * @since 2.0.0
3591
3654
  */
3592
3655
  export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
@@ -3610,16 +3673,16 @@ export const dedupeAdjacentWith = /*#__PURE__*/dual(2, (self, isEquivalent) => {
3610
3673
  *
3611
3674
  * **Example** (Removing adjacent duplicates)
3612
3675
  *
3613
- * ```ts
3676
+ * ```ts import.meta.vitest
3614
3677
  * import { Array } from "effect"
3615
3678
  *
3616
- * console.log(Array.dedupeAdjacent([1, 1, 2, 2, 3, 3])) // [1, 2, 3]
3679
+ * Array.dedupeAdjacent([1, 1, 2, 2, 3, 3]) // => [1, 2, 3]
3617
3680
  * ```
3618
3681
  *
3619
3682
  * @see {@link dedupeAdjacentWith} — use custom equality
3620
3683
  * @see {@link dedupe} — remove all duplicates
3621
3684
  *
3622
- * @category elements
3685
+ * @category deduplication
3623
3686
  * @since 2.0.0
3624
3687
  */
3625
3688
  export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal.asEquivalence());
@@ -3628,10 +3691,10 @@ export const dedupeAdjacent = /*#__PURE__*/dedupeAdjacentWith(/*#__PURE__*/Equal
3628
3691
  *
3629
3692
  * **Example** (Joining strings)
3630
3693
  *
3631
- * ```ts
3694
+ * ```ts import.meta.vitest
3632
3695
  * import { Array } from "effect"
3633
3696
  *
3634
- * console.log(Array.join(["a", "b", "c"], "-")) // "a-b-c"
3697
+ * Array.join(["a", "b", "c"], "-") // => "a-b-c"
3635
3698
  * ```
3636
3699
  *
3637
3700
  * @see {@link intersperse} — insert separator elements without joining
@@ -3657,11 +3720,10 @@ export const join = /*#__PURE__*/dual(2, (self, sep) => fromIterable(self).join(
3657
3720
  *
3658
3721
  * **Example** (Running sum alongside mapped values)
3659
3722
  *
3660
- * ```ts
3723
+ * ```ts import.meta.vitest
3661
3724
  * import { Array } from "effect"
3662
3725
  *
3663
- * const result = Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n])
3664
- * console.log(result) // [6, [1, 3, 6]]
3726
+ * Array.mapAccum([1, 2, 3], 0, (acc, n) => [acc + n, acc + n]) // => [6, [1, 3, 6]]
3665
3727
  * ```
3666
3728
  *
3667
3729
  * @see {@link scan} — when you only need the accumulated results (not the final state)
@@ -3698,16 +3760,15 @@ export const mapAccum = /*#__PURE__*/dual(3, (self, s, f) => {
3698
3760
  *
3699
3761
  * **Example** (Combining numbers and letters)
3700
3762
  *
3701
- * ```ts
3763
+ * ```ts import.meta.vitest
3702
3764
  * import { Array } from "effect"
3703
3765
  *
3704
- * const result = Array.cartesianWith([1, 2], ["a", "b"], (a, b) => `${a}-${b}`)
3705
- * console.log(result) // ["1-a", "1-b", "2-a", "2-b"]
3766
+ * Array.cartesianWith([1, 2], ["a", "b"], (a, b) => `${a}-${b}`) // => ["1-a", "1-b", "2-a", "2-b"]
3706
3767
  * ```
3707
3768
  *
3708
3769
  * @see {@link cartesian} for returning tuples instead of applying a combiner
3709
3770
  *
3710
- * @category elements
3771
+ * @category combining
3711
3772
  * @since 2.0.0
3712
3773
  */
3713
3774
  export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(self, a => map(that, b => f(a, b))));
@@ -3725,16 +3786,15 @@ export const cartesianWith = /*#__PURE__*/dual(3, (self, that, f) => flatMap(sel
3725
3786
  *
3726
3787
  * **Example** (Generating all pairs from two arrays)
3727
3788
  *
3728
- * ```ts
3789
+ * ```ts import.meta.vitest
3729
3790
  * import { Array } from "effect"
3730
3791
  *
3731
- * const result = Array.cartesian([1, 2], ["a", "b"])
3732
- * console.log(result) // [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
3792
+ * Array.cartesian([1, 2], ["a", "b"]) // => [[1, "a"], [1, "b"], [2, "a"], [2, "b"]]
3733
3793
  * ```
3734
3794
  *
3735
3795
  * @see {@link cartesianWith} — apply a combiner to each pair
3736
3796
  *
3737
- * @category elements
3797
+ * @category combining
3738
3798
  * @since 2.0.0
3739
3799
  */
3740
3800
  export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self, that, (a, b) => [a, b]));
@@ -3757,24 +3817,23 @@ export const cartesian = /*#__PURE__*/dual(2, (self, that) => cartesianWith(self
3757
3817
  *
3758
3818
  * **Example** (Building array comprehensions with do notation)
3759
3819
  *
3760
- * ```ts
3820
+ * ```ts import.meta.vitest
3761
3821
  * import { Array, pipe } from "effect"
3762
3822
  *
3763
- * const result = pipe(
3823
+ * pipe(
3764
3824
  * Array.Do,
3765
3825
  * Array.bind("x", () => [1, 3, 5]),
3766
3826
  * Array.bind("y", () => [2, 4, 6]),
3767
3827
  * Array.filter(({ x, y }) => x < y),
3768
3828
  * Array.map(({ x, y }) => [x, y] as const)
3769
- * )
3770
- * console.log(result) // [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
3829
+ * ) // => [[1, 2], [1, 4], [1, 6], [3, 4], [3, 6], [5, 6]]
3771
3830
  * ```
3772
3831
  *
3773
3832
  * @see {@link bind} — introduce an array variable into the scope
3774
3833
  * @see {@link bindTo} — start a pipeline by naming the first array
3775
3834
  * @see {@link let_ let} — introduce a plain computed value
3776
3835
  *
3777
- * @category do notation
3836
+ * @category constructors
3778
3837
  * @since 3.2.0
3779
3838
  */
3780
3839
  export const Do = /*#__PURE__*/of({});
@@ -3794,23 +3853,21 @@ export const Do = /*#__PURE__*/of({});
3794
3853
  *
3795
3854
  * **Example** (Binding two arrays)
3796
3855
  *
3797
- * ```ts
3856
+ * ```ts import.meta.vitest
3798
3857
  * import { Array, pipe } from "effect"
3799
3858
  *
3800
- * const result = pipe(
3859
+ * pipe(
3801
3860
  * Array.Do,
3802
3861
  * Array.bind("x", () => [1, 2]),
3803
3862
  * Array.bind("y", () => ["a", "b"])
3804
- * )
3805
- * console.log(result)
3806
- * // [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
3863
+ * ) // => [{ x: 1, y: "a" }, { x: 1, y: "b" }, { x: 2, y: "a" }, { x: 2, y: "b" }]
3807
3864
  * ```
3808
3865
  *
3809
3866
  * @see {@link Do} — start a do-notation pipeline
3810
3867
  * @see {@link bindTo} — name the first array in a pipeline
3811
3868
  * @see {@link let_ let} — add a plain computed value
3812
3869
  *
3813
- * @category do notation
3870
+ * @category sequencing
3814
3871
  * @since 3.2.0
3815
3872
  */
3816
3873
  export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
@@ -3829,20 +3886,16 @@ export const bind = /*#__PURE__*/internalDoNotation.bind(map, flatMap);
3829
3886
  *
3830
3887
  * **Example** (Naming an existing array)
3831
3888
  *
3832
- * ```ts
3833
- * import { Array, pipe } from "effect"
3889
+ * ```ts import.meta.vitest
3890
+ * import { Array } from "effect"
3834
3891
  *
3835
- * const result = pipe(
3836
- * [1, 2, 3],
3837
- * Array.bindTo("x")
3838
- * )
3839
- * console.log(result) // [{ x: 1 }, { x: 2 }, { x: 3 }]
3892
+ * Array.bindTo([1, 2, 3], "x") // => [{ x: 1 }, { x: 2 }, { x: 3 }]
3840
3893
  * ```
3841
3894
  *
3842
3895
  * @see {@link Do} — start with an empty scope
3843
3896
  * @see {@link bind} — add another array variable to the scope
3844
3897
  *
3845
- * @category do notation
3898
+ * @category mapping
3846
3899
  * @since 3.2.0
3847
3900
  */
3848
3901
  export const bindTo = /*#__PURE__*/internalDoNotation.bindTo(map);
@@ -3864,22 +3917,20 @@ export {
3864
3917
  *
3865
3918
  * **Example** (Adding a computed value)
3866
3919
  *
3867
- * ```ts
3920
+ * ```ts import.meta.vitest
3868
3921
  * import { Array, pipe } from "effect"
3869
3922
  *
3870
- * const result = pipe(
3923
+ * pipe(
3871
3924
  * Array.Do,
3872
3925
  * Array.bind("x", () => [1, 2, 3]),
3873
3926
  * Array.let("doubled", ({ x }) => x * 2)
3874
- * )
3875
- * console.log(result)
3876
- * // [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
3927
+ * ) // => [{ x: 1, doubled: 2 }, { x: 2, doubled: 4 }, { x: 3, doubled: 6 }]
3877
3928
  * ```
3878
3929
  *
3879
3930
  * @see {@link Do} — start a do-notation pipeline
3880
3931
  * @see {@link bind} — introduce an array variable (produces cartesian product)
3881
3932
  *
3882
- * @category do notation
3933
+ * @category mapping
3883
3934
  * @since 3.2.0
3884
3935
  */
3885
3936
  let_ as let };
@@ -3921,11 +3972,10 @@ export function makeReducerConcat() {
3921
3972
  *
3922
3973
  * **Example** (Counting even numbers)
3923
3974
  *
3924
- * ```ts
3975
+ * ```ts import.meta.vitest
3925
3976
  * import { Array } from "effect"
3926
3977
  *
3927
- * const result = Array.countBy([1, 2, 3, 4, 5], (n) => n % 2 === 0)
3928
- * console.log(result) // 2
3978
+ * Array.countBy([1, 2, 3, 4, 5], (n) => n % 2 === 0) // => 2
3929
3979
  * ```
3930
3980
  *
3931
3981
  * @see {@link filter} — when you need the matching elements, not just the count