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/src/Record.ts CHANGED
@@ -15,6 +15,7 @@ import * as Equal from "./Equal.ts"
15
15
  import type { Equivalence } from "./Equivalence.ts"
16
16
  import { dual, identity } from "./Function.ts"
17
17
  import type { TypeLambda } from "./HKT.ts"
18
+ import * as InternalRecord from "./internal/record.ts"
18
19
  import * as Option from "./Option.ts"
19
20
  import * as Reducer from "./Reducer.ts"
20
21
  import type { Result } from "./Result.ts"
@@ -27,7 +28,7 @@ import type { NoInfer } from "./Types.ts"
27
28
  *
28
29
  * **Example** (Defining a readonly record type)
29
30
  *
30
- * ```ts
31
+ * ```ts import.meta.vitest
31
32
  * import type { Record } from "effect"
32
33
  *
33
34
  * // Creating a readonly record type
@@ -37,6 +38,7 @@ import type { NoInfer } from "./Types.ts"
37
38
  * name: "John",
38
39
  * age: 30
39
40
  * }
41
+ * user // => { name: "John", age: 30 }
40
42
  * ```
41
43
  *
42
44
  * @category models
@@ -52,7 +54,7 @@ export type ReadonlyRecord<in out K extends string | symbol, out A> = {
52
54
  *
53
55
  * **Example** (Using readonly record helper types)
54
56
  *
55
- * ```ts
57
+ * ```ts import.meta.vitest
56
58
  * import type { Record } from "effect"
57
59
  *
58
60
  * // Using NonLiteralKey to convert literal keys to generic types
@@ -60,6 +62,9 @@ export type ReadonlyRecord<in out K extends string | symbol, out A> = {
60
62
  *
61
63
  * // Using IntersectKeys to find common keys between record types
62
64
  * type CommonKeys = Record.ReadonlyRecord.IntersectKeys<"a" | "b", "b" | "c"> // "b"
65
+ *
66
+ * "key" satisfies GenericKey
67
+ * "b" satisfies CommonKeys
63
68
  * ```
64
69
  *
65
70
  * @since 2.0.0
@@ -76,7 +81,7 @@ export declare namespace ReadonlyRecord {
76
81
  *
77
82
  * **Example** (Converting literal keys to non-literal keys)
78
83
  *
79
- * ```ts
84
+ * ```ts import.meta.vitest
80
85
  * import type { Record } from "effect"
81
86
  *
82
87
  * // For literal string keys, this becomes 'string'
@@ -84,6 +89,10 @@ export declare namespace ReadonlyRecord {
84
89
  *
85
90
  * // For symbol keys, this becomes 'symbol'
86
91
  * type Example2 = Record.ReadonlyRecord.NonLiteralKey<symbol> // symbol
92
+ *
93
+ * const symbol: Example2 = Symbol.for("key")
94
+ * "key" satisfies Example1
95
+ * symbol
87
96
  * ```
88
97
  *
89
98
  * @category models
@@ -98,7 +107,7 @@ export declare namespace ReadonlyRecord {
98
107
  *
99
108
  * **Example** (Intersecting record keys)
100
109
  *
101
- * ```ts
110
+ * ```ts import.meta.vitest
102
111
  * import type { Record } from "effect"
103
112
  *
104
113
  * // Intersection of literal keys
@@ -106,6 +115,9 @@ export declare namespace ReadonlyRecord {
106
115
  *
107
116
  * // Intersection with generic string
108
117
  * type Example2 = Record.ReadonlyRecord.IntersectKeys<string, "a" | "b"> // string
118
+ *
119
+ * "b" satisfies Example1
120
+ * "a" satisfies Example2
109
121
  * ```
110
122
  *
111
123
  * @category models
@@ -122,7 +134,7 @@ export declare namespace ReadonlyRecord {
122
134
  *
123
135
  * **Example** (Applying a readonly record type lambda)
124
136
  *
125
- * ```ts
137
+ * ```ts import.meta.vitest
126
138
  * import type { HKT, Record } from "effect"
127
139
  *
128
140
  * type Settings = HKT.Kind<
@@ -137,9 +149,10 @@ export declare namespace ReadonlyRecord {
137
149
  * port: 3000,
138
150
  * retries: 3
139
151
  * }
152
+ * defaults // => { port: 3000, retries: 3 }
140
153
  * ```
141
154
  *
142
- * @category type lambdas
155
+ * @category utility types
143
156
  * @since 2.0.0
144
157
  */
145
158
  export interface ReadonlyRecordTypeLambda<K extends string = string> extends TypeLambda {
@@ -151,16 +164,15 @@ export interface ReadonlyRecordTypeLambda<K extends string = string> extends Typ
151
164
  *
152
165
  * **Example** (Creating an empty record)
153
166
  *
154
- * ```ts
167
+ * ```ts import.meta.vitest
155
168
  * import { Record } from "effect"
156
169
  *
157
170
  * // Create an empty record
158
171
  * const emptyRecord = Record.empty<string, number>()
159
- * console.log(emptyRecord) // {}
172
+ * emptyRecord // => {}
160
173
  *
161
174
  * // The type ensures type safety for future operations
162
- * const withValue = Record.set(emptyRecord, "count", 42)
163
- * console.log(withValue) // { count: 42 }
175
+ * Record.set(emptyRecord, "count", 42) // => { count: 42 }
164
176
  * ```
165
177
  *
166
178
  * @category constructors
@@ -176,12 +188,11 @@ export const empty = <K extends string | symbol = never, V = never>(): Record<
176
188
  *
177
189
  * **Example** (Checking for an empty record)
178
190
  *
179
- * ```ts
191
+ * ```ts import.meta.vitest
180
192
  * import { Record } from "effect"
181
- * import * as assert from "node:assert"
182
193
  *
183
- * assert.deepStrictEqual(Record.isEmptyRecord({}), true)
184
- * assert.deepStrictEqual(Record.isEmptyRecord({ a: 3 }), false)
194
+ * Record.isEmptyRecord({}) // => true
195
+ * Record.isEmptyRecord({ a: 3 }) // => false
185
196
  * ```
186
197
  *
187
198
  * @category guards
@@ -195,12 +206,11 @@ export const isEmptyRecord = <K extends string, A>(self: Record<K, A>): self is
195
206
  *
196
207
  * **Example** (Checking for an empty readonly record)
197
208
  *
198
- * ```ts
209
+ * ```ts import.meta.vitest
199
210
  * import { Record } from "effect"
200
- * import * as assert from "node:assert"
201
211
  *
202
- * assert.deepStrictEqual(Record.isEmptyReadonlyRecord({}), true)
203
- * assert.deepStrictEqual(Record.isEmptyReadonlyRecord({ a: 3 }), false)
212
+ * Record.isEmptyReadonlyRecord({}) // => true
213
+ * Record.isEmptyReadonlyRecord({ a: 3 }) // => false
204
214
  * ```
205
215
  *
206
216
  * @category guards
@@ -216,16 +226,10 @@ export const isEmptyReadonlyRecord: <K extends string, A>(
216
226
  *
217
227
  * **Example** (Building a record from mapped iterable values)
218
228
  *
219
- * ```ts
229
+ * ```ts import.meta.vitest
220
230
  * import { Record } from "effect"
221
- * import * as assert from "node:assert"
222
- *
223
- * const input = [1, 2, 3, 4]
224
231
  *
225
- * assert.deepStrictEqual(
226
- * Record.fromIterableWith(input, (a) => [String(a), a * 2]),
227
- * { "1": 2, "2": 4, "3": 6, "4": 8 }
228
- * )
232
+ * Record.fromIterableWith([1, 2, 3, 4], (a) => [String(a), a * 2]) // => { "1": 2, "2": 4, "3": 6, "4": 8 }
229
233
  * ```
230
234
  *
231
235
  * @category constructors
@@ -238,16 +242,10 @@ export const fromIterableWith: {
238
242
  *
239
243
  * **Example** (Building a record from mapped iterable values)
240
244
  *
241
- * ```ts
245
+ * ```ts import.meta.vitest
242
246
  * import { Record } from "effect"
243
- * import * as assert from "node:assert"
244
- *
245
- * const input = [1, 2, 3, 4]
246
247
  *
247
- * assert.deepStrictEqual(
248
- * Record.fromIterableWith(input, (a) => [String(a), a * 2]),
249
- * { "1": 2, "2": 4, "3": 6, "4": 8 }
250
- * )
248
+ * Record.fromIterableWith([1, 2, 3, 4], (a) => [String(a), a * 2]) // => { "1": 2, "2": 4, "3": 6, "4": 8 }
251
249
  * ```
252
250
  *
253
251
  * @category constructors
@@ -260,16 +258,10 @@ export const fromIterableWith: {
260
258
  *
261
259
  * **Example** (Building a record from mapped iterable values)
262
260
  *
263
- * ```ts
261
+ * ```ts import.meta.vitest
264
262
  * import { Record } from "effect"
265
- * import * as assert from "node:assert"
266
- *
267
- * const input = [1, 2, 3, 4]
268
263
  *
269
- * assert.deepStrictEqual(
270
- * Record.fromIterableWith(input, (a) => [String(a), a * 2]),
271
- * { "1": 2, "2": 4, "3": 6, "4": 8 }
272
- * )
264
+ * Record.fromIterableWith([1, 2, 3, 4], (a) => [String(a), a * 2]) // => { "1": 2, "2": 4, "3": 6, "4": 8 }
273
265
  * ```
274
266
  *
275
267
  * @category constructors
@@ -285,7 +277,7 @@ export const fromIterableWith: {
285
277
  const out: Record<string, B> = empty()
286
278
  for (const a of self) {
287
279
  const [k, b] = f(a)
288
- out[k] = b
280
+ InternalRecord.assignProperty(out, k, b)
289
281
  }
290
282
  return out
291
283
  }
@@ -296,31 +288,77 @@ export const fromIterableWith: {
296
288
  *
297
289
  * **Example** (Building a record keyed by iterable values)
298
290
  *
299
- * ```ts
291
+ * ```ts import.meta.vitest
300
292
  * import { Record } from "effect"
301
- * import * as assert from "node:assert"
302
293
  *
303
294
  * const users = [
304
295
  * { id: "2", name: "name2" },
305
296
  * { id: "1", name: "name1" }
306
297
  * ]
307
298
  *
308
- * assert.deepStrictEqual(
309
- * Record.fromIterableBy(users, (user) => user.id),
310
- * {
311
- * "2": { id: "2", name: "name2" },
312
- * "1": { id: "1", name: "name1" }
313
- * }
314
- * )
299
+ * Record.fromIterableBy(
300
+ * users,
301
+ * (user) => user.id
302
+ * ) // => { "1": { id: "1", name: "name1" }, "2": { id: "2", name: "name2" } }
315
303
  * ```
316
304
  *
317
305
  * @category constructors
318
306
  * @since 2.0.0
319
307
  */
320
- export const fromIterableBy = <A, K extends string | symbol>(
321
- items: Iterable<A>,
322
- f: (a: A) => K
323
- ): Record<ReadonlyRecord.NonLiteralKey<K>, A> => fromIterableWith(items, (a) => [f(a), a])
308
+ export const fromIterableBy: {
309
+ /**
310
+ * Creates a new record from an iterable, utilizing the provided function to determine the key for each element.
311
+ *
312
+ * **Example** (Building a record keyed by iterable values)
313
+ *
314
+ * ```ts import.meta.vitest
315
+ * import { Record } from "effect"
316
+ *
317
+ * const users = [
318
+ * { id: "2", name: "name2" },
319
+ * { id: "1", name: "name1" }
320
+ * ]
321
+ *
322
+ * Record.fromIterableBy(
323
+ * users,
324
+ * (user) => user.id
325
+ * ) // => { "1": { id: "1", name: "name1" }, "2": { id: "2", name: "name2" } }
326
+ * ```
327
+ *
328
+ * @category constructors
329
+ * @since 2.0.0
330
+ */
331
+ <A, K extends string | symbol>(f: (a: A) => K): (items: Iterable<A>) => Record<ReadonlyRecord.NonLiteralKey<K>, A>
332
+ /**
333
+ * Creates a new record from an iterable, utilizing the provided function to determine the key for each element.
334
+ *
335
+ * **Example** (Building a record keyed by iterable values)
336
+ *
337
+ * ```ts import.meta.vitest
338
+ * import { Record } from "effect"
339
+ *
340
+ * const users = [
341
+ * { id: "2", name: "name2" },
342
+ * { id: "1", name: "name1" }
343
+ * ]
344
+ *
345
+ * Record.fromIterableBy(
346
+ * users,
347
+ * (user) => user.id
348
+ * ) // => { "1": { id: "1", name: "name1" }, "2": { id: "2", name: "name2" } }
349
+ * ```
350
+ *
351
+ * @category constructors
352
+ * @since 2.0.0
353
+ */
354
+ <A, K extends string | symbol>(items: Iterable<A>, f: (a: A) => K): Record<ReadonlyRecord.NonLiteralKey<K>, A>
355
+ } = dual(
356
+ 2,
357
+ <A, K extends string | symbol>(
358
+ items: Iterable<A>,
359
+ f: (a: A) => K
360
+ ): Record<ReadonlyRecord.NonLiteralKey<K>, A> => fromIterableWith(items, (a) => [f(a), a])
361
+ )
324
362
 
325
363
  /**
326
364
  * Builds a record from an iterable of key-value pairs.
@@ -332,13 +370,10 @@ export const fromIterableBy = <A, K extends string | symbol>(
332
370
  *
333
371
  * **Example** (Building a record from entries)
334
372
  *
335
- * ```ts
373
+ * ```ts import.meta.vitest
336
374
  * import { Record } from "effect"
337
- * import * as assert from "node:assert"
338
375
  *
339
- * const input: Array<[string, number]> = [["a", 1], ["b", 2]]
340
- *
341
- * assert.deepStrictEqual(Record.fromEntries(input), { a: 1, b: 2 })
376
+ * Record.fromEntries([["a", 1], ["b", 2]]) // => { a: 1, b: 2 }
342
377
  * ```
343
378
  *
344
379
  * @category constructors
@@ -353,15 +388,11 @@ export const fromEntries: <Entry extends readonly [string | symbol, any]>(
353
388
  *
354
389
  * **Example** (Collecting mapped record values)
355
390
  *
356
- * ```ts
391
+ * ```ts import.meta.vitest
357
392
  * import { Record } from "effect"
358
- * import * as assert from "node:assert"
359
393
  *
360
394
  * const x = { a: 1, b: 2, c: 3 }
361
- * assert.deepStrictEqual(Record.collect(x, (key, n) => [key, n]), [["a", 1], [
362
- * "b",
363
- * 2
364
- * ], ["c", 3]])
395
+ * Record.collect(x, (key, n) => [key, n]) // => [["a", 1], ["b", 2], ["c", 3]]
365
396
  * ```
366
397
  *
367
398
  * @category converting
@@ -373,15 +404,11 @@ export const collect: {
373
404
  *
374
405
  * **Example** (Collecting mapped record values)
375
406
  *
376
- * ```ts
407
+ * ```ts import.meta.vitest
377
408
  * import { Record } from "effect"
378
- * import * as assert from "node:assert"
379
409
  *
380
410
  * const x = { a: 1, b: 2, c: 3 }
381
- * assert.deepStrictEqual(Record.collect(x, (key, n) => [key, n]), [["a", 1], [
382
- * "b",
383
- * 2
384
- * ], ["c", 3]])
411
+ * Record.collect(x, (key, n) => [key, n]) // => [["a", 1], ["b", 2], ["c", 3]]
385
412
  * ```
386
413
  *
387
414
  * @category converting
@@ -393,15 +420,11 @@ export const collect: {
393
420
  *
394
421
  * **Example** (Collecting mapped record values)
395
422
  *
396
- * ```ts
423
+ * ```ts import.meta.vitest
397
424
  * import { Record } from "effect"
398
- * import * as assert from "node:assert"
399
425
  *
400
426
  * const x = { a: 1, b: 2, c: 3 }
401
- * assert.deepStrictEqual(Record.collect(x, (key, n) => [key, n]), [["a", 1], [
402
- * "b",
403
- * 2
404
- * ], ["c", 3]])
427
+ * Record.collect(x, (key, n) => [key, n]) // => [["a", 1], ["b", 2], ["c", 3]]
405
428
  * ```
406
429
  *
407
430
  * @category converting
@@ -424,12 +447,11 @@ export const collect: {
424
447
  *
425
448
  * **Example** (Converting a record to entries)
426
449
  *
427
- * ```ts
450
+ * ```ts import.meta.vitest
428
451
  * import { Record } from "effect"
429
- * import * as assert from "node:assert"
430
452
  *
431
453
  * const x = { a: 1, b: 2, c: 3 }
432
- * assert.deepStrictEqual(Record.toEntries(x), [["a", 1], ["b", 2], ["c", 3]])
454
+ * Record.toEntries(x) // => [["a", 1], ["b", 2], ["c", 3]]
433
455
  * ```
434
456
  *
435
457
  * @category converting
@@ -445,11 +467,10 @@ export const toEntries: <K extends string, A>(self: ReadonlyRecord<K, A>) => Arr
445
467
  *
446
468
  * **Example** (Getting the record size)
447
469
  *
448
- * ```ts
470
+ * ```ts import.meta.vitest
449
471
  * import { Record } from "effect"
450
- * import * as assert from "node:assert"
451
472
  *
452
- * assert.deepStrictEqual(Record.size({ a: "a", b: 1, c: true }), 3)
473
+ * Record.size({ a: "a", b: 1, c: true }) // => 3
453
474
  * ```
454
475
  *
455
476
  * @category getters
@@ -462,15 +483,14 @@ export const size = <K extends string, A>(self: ReadonlyRecord<K, A>): number =>
462
483
  *
463
484
  * **Example** (Checking key membership)
464
485
  *
465
- * ```ts
486
+ * ```ts import.meta.vitest
466
487
  * import { Record } from "effect"
467
- * import * as assert from "node:assert"
468
488
  *
469
- * assert.deepStrictEqual(Record.has({ a: 1, b: 2 }, "a"), true)
470
- * assert.deepStrictEqual(Record.has(Record.empty<string>(), "c"), false)
489
+ * Record.has({ a: 1, b: 2 }, "a") // => true
490
+ * Record.has(Record.empty<string>(), "c") // => false
471
491
  * ```
472
492
  *
473
- * @category guards
493
+ * @category predicates
474
494
  * @since 2.0.0
475
495
  */
476
496
  export const has: {
@@ -479,15 +499,14 @@ export const has: {
479
499
  *
480
500
  * **Example** (Checking key membership)
481
501
  *
482
- * ```ts
502
+ * ```ts import.meta.vitest
483
503
  * import { Record } from "effect"
484
- * import * as assert from "node:assert"
485
504
  *
486
- * assert.deepStrictEqual(Record.has({ a: 1, b: 2 }, "a"), true)
487
- * assert.deepStrictEqual(Record.has(Record.empty<string>(), "c"), false)
505
+ * Record.has({ a: 1, b: 2 }, "a") // => true
506
+ * Record.has(Record.empty<string>(), "c") // => false
488
507
  * ```
489
508
  *
490
- * @category guards
509
+ * @category predicates
491
510
  * @since 2.0.0
492
511
  */
493
512
  <K extends string | symbol>(key: NoInfer<K>): <A>(self: ReadonlyRecord<K, A>) => boolean
@@ -496,15 +515,14 @@ export const has: {
496
515
  *
497
516
  * **Example** (Checking key membership)
498
517
  *
499
- * ```ts
518
+ * ```ts import.meta.vitest
500
519
  * import { Record } from "effect"
501
- * import * as assert from "node:assert"
502
520
  *
503
- * assert.deepStrictEqual(Record.has({ a: 1, b: 2 }, "a"), true)
504
- * assert.deepStrictEqual(Record.has(Record.empty<string>(), "c"), false)
521
+ * Record.has({ a: 1, b: 2 }, "a") // => true
522
+ * Record.has(Record.empty<string>(), "c") // => false
505
523
  * ```
506
524
  *
507
- * @category guards
525
+ * @category predicates
508
526
  * @since 2.0.0
509
527
  */
510
528
  <K extends string | symbol, A>(self: ReadonlyRecord<K, A>, key: NoInfer<K>): boolean
@@ -521,14 +539,13 @@ export const has: {
521
539
  *
522
540
  * **Example** (Getting a value as an Option)
523
541
  *
524
- * ```ts
542
+ * ```ts import.meta.vitest
525
543
  * import { Option, Record as R } from "effect"
526
- * import * as assert from "node:assert"
527
544
  *
528
545
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
529
546
  *
530
- * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
531
- * assert.deepStrictEqual(R.get(person, "email"), Option.none())
547
+ * R.get(person, "name") // => Option.some("John Doe")
548
+ * R.get(person, "email") // => Option.none()
532
549
  * ```
533
550
  *
534
551
  * @category getters
@@ -540,14 +557,13 @@ export const get: {
540
557
  *
541
558
  * **Example** (Getting a value as an Option)
542
559
  *
543
- * ```ts
560
+ * ```ts import.meta.vitest
544
561
  * import { Option, Record as R } from "effect"
545
- * import * as assert from "node:assert"
546
562
  *
547
563
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
548
564
  *
549
- * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
550
- * assert.deepStrictEqual(R.get(person, "email"), Option.none())
565
+ * R.get(person, "name") // => Option.some("John Doe")
566
+ * R.get(person, "email") // => Option.none()
551
567
  * ```
552
568
  *
553
569
  * @category getters
@@ -559,14 +575,13 @@ export const get: {
559
575
  *
560
576
  * **Example** (Getting a value as an Option)
561
577
  *
562
- * ```ts
578
+ * ```ts import.meta.vitest
563
579
  * import { Option, Record as R } from "effect"
564
- * import * as assert from "node:assert"
565
580
  *
566
581
  * const person: Record<string, unknown> = { name: "John Doe", age: 35 }
567
582
  *
568
- * assert.deepStrictEqual(R.get(person, "name"), Option.some("John Doe"))
569
- * assert.deepStrictEqual(R.get(person, "email"), Option.none())
583
+ * R.get(person, "name") // => Option.some("John Doe")
584
+ * R.get(person, "email") // => Option.none()
570
585
  * ```
571
586
  *
572
587
  * @category getters
@@ -576,7 +591,7 @@ export const get: {
576
591
  } = dual(
577
592
  2,
578
593
  <K extends string | symbol, A>(self: ReadonlyRecord<K, A>, key: NoInfer<K>): Option.Option<A> =>
579
- has(self, key) ? Option.some(self[key]) : Option.none()
594
+ Object.hasOwn(self, key) ? Option.some(self[key]) : Option.none()
580
595
  )
581
596
 
582
597
  /**
@@ -585,15 +600,15 @@ export const get: {
585
600
  *
586
601
  * **Example** (Modifying a value at a key)
587
602
  *
588
- * ```ts
589
- * import { Record } from "effect"
603
+ * ```ts import.meta.vitest
604
+ * import { Option, Record } from "effect"
590
605
  *
591
606
  * const f = (x: number) => x * 2
592
607
  *
593
608
  * const input: Record<string, number> = { a: 3 }
594
609
  *
595
- * Record.modify(input, "a", f) // Option.some({ a: 6 })
596
- * Record.modify(input, "b", f) // Option.none()
610
+ * Record.modify(input, "a", f) // => Option.some({ a: 6 })
611
+ * Record.modify(input, "b", f) // => Option.none()
597
612
  * ```
598
613
  *
599
614
  * @category mutations
@@ -606,15 +621,15 @@ export const modify: {
606
621
  *
607
622
  * **Example** (Modifying a value at a key)
608
623
  *
609
- * ```ts
610
- * import { Record } from "effect"
624
+ * ```ts import.meta.vitest
625
+ * import { Option, Record } from "effect"
611
626
  *
612
627
  * const f = (x: number) => x * 2
613
628
  *
614
629
  * const input: Record<string, number> = { a: 3 }
615
630
  *
616
- * Record.modify(input, "a", f) // Option.some({ a: 6 })
617
- * Record.modify(input, "b", f) // Option.none()
631
+ * Record.modify(input, "a", f) // => Option.some({ a: 6 })
632
+ * Record.modify(input, "b", f) // => Option.none()
618
633
  * ```
619
634
  *
620
635
  * @category mutations
@@ -627,15 +642,15 @@ export const modify: {
627
642
  *
628
643
  * **Example** (Modifying a value at a key)
629
644
  *
630
- * ```ts
631
- * import { Record } from "effect"
645
+ * ```ts import.meta.vitest
646
+ * import { Option, Record } from "effect"
632
647
  *
633
648
  * const f = (x: number) => x * 2
634
649
  *
635
650
  * const input: Record<string, number> = { a: 3 }
636
651
  *
637
- * Record.modify(input, "a", f) // Option.some({ a: 6 })
638
- * Record.modify(input, "b", f) // Option.none()
652
+ * Record.modify(input, "a", f) // => Option.some({ a: 6 })
653
+ * Record.modify(input, "b", f) // => Option.none()
639
654
  * ```
640
655
  *
641
656
  * @category mutations
@@ -665,11 +680,11 @@ export const modify: {
665
680
  *
666
681
  * **Example** (Replacing a value at a key)
667
682
  *
668
- * ```ts
669
- * import { Record } from "effect"
683
+ * ```ts import.meta.vitest
684
+ * import { Option, Record } from "effect"
670
685
  *
671
- * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // Option.some({ a: 10, b: 2, c: 3 })
672
- * Record.replace(Record.empty<string>(), "a", 10) // Option.none()
686
+ * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // => Option.some({ a: 10, b: 2, c: 3 })
687
+ * Record.replace(Record.empty<string>(), "a", 10) // => Option.none()
673
688
  * ```
674
689
  *
675
690
  * @category mutations
@@ -687,11 +702,11 @@ export const replace: {
687
702
  *
688
703
  * **Example** (Replacing a value at a key)
689
704
  *
690
- * ```ts
691
- * import { Record } from "effect"
705
+ * ```ts import.meta.vitest
706
+ * import { Option, Record } from "effect"
692
707
  *
693
- * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // Option.some({ a: 10, b: 2, c: 3 })
694
- * Record.replace(Record.empty<string>(), "a", 10) // Option.none()
708
+ * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // => Option.some({ a: 10, b: 2, c: 3 })
709
+ * Record.replace(Record.empty<string>(), "a", 10) // => Option.none()
695
710
  * ```
696
711
  *
697
712
  * @category mutations
@@ -709,11 +724,11 @@ export const replace: {
709
724
  *
710
725
  * **Example** (Replacing a value at a key)
711
726
  *
712
- * ```ts
713
- * import { Record } from "effect"
727
+ * ```ts import.meta.vitest
728
+ * import { Option, Record } from "effect"
714
729
  *
715
- * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // Option.some({ a: 10, b: 2, c: 3 })
716
- * Record.replace(Record.empty<string>(), "a", 10) // Option.none()
730
+ * Record.replace({ a: 1, b: 2, c: 3 }, "a", 10) // => Option.some({ a: 10, b: 2, c: 3 })
731
+ * Record.replace(Record.empty<string>(), "a", 10) // => Option.none()
717
732
  * ```
718
733
  *
719
734
  * @category mutations
@@ -743,11 +758,10 @@ export const replace: {
743
758
  *
744
759
  * **Example** (Removing a key)
745
760
  *
746
- * ```ts
761
+ * ```ts import.meta.vitest
747
762
  * import { Record } from "effect"
748
- * import * as assert from "node:assert"
749
763
  *
750
- * assert.deepStrictEqual(Record.remove({ a: 1, b: 2 }, "a"), { b: 2 })
764
+ * Record.remove({ a: 1, b: 2 }, "a") // => { b: 2 }
751
765
  * ```
752
766
  *
753
767
  * @category mutations
@@ -768,11 +782,10 @@ export const remove: {
768
782
  *
769
783
  * **Example** (Removing a key)
770
784
  *
771
- * ```ts
785
+ * ```ts import.meta.vitest
772
786
  * import { Record } from "effect"
773
- * import * as assert from "node:assert"
774
787
  *
775
- * assert.deepStrictEqual(Record.remove({ a: 1, b: 2 }, "a"), { b: 2 })
788
+ * Record.remove({ a: 1, b: 2 }, "a") // => { b: 2 }
776
789
  * ```
777
790
  *
778
791
  * @category mutations
@@ -793,11 +806,10 @@ export const remove: {
793
806
  *
794
807
  * **Example** (Removing a key)
795
808
  *
796
- * ```ts
809
+ * ```ts import.meta.vitest
797
810
  * import { Record } from "effect"
798
- * import * as assert from "node:assert"
799
811
  *
800
- * assert.deepStrictEqual(Record.remove({ a: 1, b: 2 }, "a"), { b: 2 })
812
+ * Record.remove({ a: 1, b: 2 }, "a") // => { b: 2 }
801
813
  * ```
802
814
  *
803
815
  * @category mutations
@@ -823,13 +835,13 @@ export const remove: {
823
835
  *
824
836
  * **Example** (Popping a value and removing its key)
825
837
  *
826
- * ```ts
827
- * import { Record } from "effect"
838
+ * ```ts import.meta.vitest
839
+ * import { Option, Record } from "effect"
828
840
  *
829
841
  * const input: Record<string, number> = { a: 1, b: 2 }
830
842
  *
831
- * Record.pop(input, "a") // Option.some([1, { b: 2 }])
832
- * Record.pop(input, "c") // Option.none()
843
+ * Record.pop(input, "a") // => Option.some([1, { b: 2 }])
844
+ * Record.pop(input, "c") // => Option.none()
833
845
  * ```
834
846
  *
835
847
  * @category mutations
@@ -843,13 +855,13 @@ export const pop: {
843
855
  *
844
856
  * **Example** (Popping a value and removing its key)
845
857
  *
846
- * ```ts
847
- * import { Record } from "effect"
858
+ * ```ts import.meta.vitest
859
+ * import { Option, Record } from "effect"
848
860
  *
849
861
  * const input: Record<string, number> = { a: 1, b: 2 }
850
862
  *
851
- * Record.pop(input, "a") // Option.some([1, { b: 2 }])
852
- * Record.pop(input, "c") // Option.none()
863
+ * Record.pop(input, "a") // => Option.some([1, { b: 2 }])
864
+ * Record.pop(input, "c") // => Option.none()
853
865
  * ```
854
866
  *
855
867
  * @category mutations
@@ -863,13 +875,13 @@ export const pop: {
863
875
  *
864
876
  * **Example** (Popping a value and removing its key)
865
877
  *
866
- * ```ts
867
- * import { Record } from "effect"
878
+ * ```ts import.meta.vitest
879
+ * import { Option, Record } from "effect"
868
880
  *
869
881
  * const input: Record<string, number> = { a: 1, b: 2 }
870
882
  *
871
- * Record.pop(input, "a") // Option.some([1, { b: 2 }])
872
- * Record.pop(input, "c") // Option.none()
883
+ * Record.pop(input, "a") // => Option.some([1, { b: 2 }])
884
+ * Record.pop(input, "c") // => Option.none()
873
885
  * ```
874
886
  *
875
887
  * @category mutations
@@ -887,17 +899,16 @@ export const pop: {
887
899
  *
888
900
  * **Example** (Mapping record values)
889
901
  *
890
- * ```ts
902
+ * ```ts import.meta.vitest
891
903
  * import { Record } from "effect"
892
- * import * as assert from "node:assert"
893
904
  *
894
905
  * const f = (n: number) => `-${n}`
895
906
  *
896
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, f), { a: "-3", b: "-5" })
907
+ * Record.map({ a: 3, b: 5 }, f) // => { a: "-3", b: "-5" }
897
908
  *
898
909
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
899
910
  *
900
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
911
+ * Record.map({ a: 3, b: 5 }, g) // => { a: "A-3", b: "B-5" }
901
912
  * ```
902
913
  *
903
914
  * @category mapping
@@ -909,17 +920,16 @@ export const map: {
909
920
  *
910
921
  * **Example** (Mapping record values)
911
922
  *
912
- * ```ts
923
+ * ```ts import.meta.vitest
913
924
  * import { Record } from "effect"
914
- * import * as assert from "node:assert"
915
925
  *
916
926
  * const f = (n: number) => `-${n}`
917
927
  *
918
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, f), { a: "-3", b: "-5" })
928
+ * Record.map({ a: 3, b: 5 }, f) // => { a: "-3", b: "-5" }
919
929
  *
920
930
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
921
931
  *
922
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
932
+ * Record.map({ a: 3, b: 5 }, g) // => { a: "A-3", b: "B-5" }
923
933
  * ```
924
934
  *
925
935
  * @category mapping
@@ -931,17 +941,16 @@ export const map: {
931
941
  *
932
942
  * **Example** (Mapping record values)
933
943
  *
934
- * ```ts
944
+ * ```ts import.meta.vitest
935
945
  * import { Record } from "effect"
936
- * import * as assert from "node:assert"
937
946
  *
938
947
  * const f = (n: number) => `-${n}`
939
948
  *
940
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, f), { a: "-3", b: "-5" })
949
+ * Record.map({ a: 3, b: 5 }, f) // => { a: "-3", b: "-5" }
941
950
  *
942
951
  * const g = (n: number, key: string) => `${key.toUpperCase()}-${n}`
943
952
  *
944
- * assert.deepStrictEqual(Record.map({ a: 3, b: 5 }, g), { a: "A-3", b: "B-5" })
953
+ * Record.map({ a: 3, b: 5 }, g) // => { a: "A-3", b: "B-5" }
945
954
  * ```
946
955
  *
947
956
  * @category mapping
@@ -953,7 +962,7 @@ export const map: {
953
962
  <K extends string, A, B>(self: ReadonlyRecord<K, A>, f: (a: A, key: NoInfer<K>) => B): Record<K, B> => {
954
963
  const out: Record<K, B> = { ...self } as any
955
964
  for (const key of keys(self)) {
956
- out[key] = f(self[key], key)
965
+ InternalRecord.assignProperty(out, key, f(self[key], key))
957
966
  }
958
967
  return out
959
968
  }
@@ -964,14 +973,10 @@ export const map: {
964
973
  *
965
974
  * **Example** (Mapping record keys)
966
975
  *
967
- * ```ts
976
+ * ```ts import.meta.vitest
968
977
  * import { Record } from "effect"
969
- * import * as assert from "node:assert"
970
978
  *
971
- * assert.deepStrictEqual(
972
- * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()),
973
- * { A: 3, B: 5 }
974
- * )
979
+ * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()) // => { A: 3, B: 5 }
975
980
  * ```
976
981
  *
977
982
  * @category mapping
@@ -983,14 +988,10 @@ export const mapKeys: {
983
988
  *
984
989
  * **Example** (Mapping record keys)
985
990
  *
986
- * ```ts
991
+ * ```ts import.meta.vitest
987
992
  * import { Record } from "effect"
988
- * import * as assert from "node:assert"
989
993
  *
990
- * assert.deepStrictEqual(
991
- * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()),
992
- * { A: 3, B: 5 }
993
- * )
994
+ * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()) // => { A: 3, B: 5 }
994
995
  * ```
995
996
  *
996
997
  * @category mapping
@@ -1002,14 +1003,10 @@ export const mapKeys: {
1002
1003
  *
1003
1004
  * **Example** (Mapping record keys)
1004
1005
  *
1005
- * ```ts
1006
+ * ```ts import.meta.vitest
1006
1007
  * import { Record } from "effect"
1007
- * import * as assert from "node:assert"
1008
1008
  *
1009
- * assert.deepStrictEqual(
1010
- * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()),
1011
- * { A: 3, B: 5 }
1012
- * )
1009
+ * Record.mapKeys({ a: 3, b: 5 }, (key) => key.toUpperCase()) // => { A: 3, B: 5 }
1013
1010
  * ```
1014
1011
  *
1015
1012
  * @category mapping
@@ -1025,7 +1022,7 @@ export const mapKeys: {
1025
1022
  const out: Record<K2, A> = {} as any
1026
1023
  for (const key of keys(self)) {
1027
1024
  const a = self[key]
1028
- out[f(key, a)] = a
1025
+ InternalRecord.assignProperty(out, f(key, a), a)
1029
1026
  }
1030
1027
  return out
1031
1028
  }
@@ -1036,14 +1033,10 @@ export const mapKeys: {
1036
1033
  *
1037
1034
  * **Example** (Mapping record entries)
1038
1035
  *
1039
- * ```ts
1036
+ * ```ts import.meta.vitest
1040
1037
  * import { Record } from "effect"
1041
- * import * as assert from "node:assert"
1042
1038
  *
1043
- * assert.deepStrictEqual(
1044
- * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]),
1045
- * { A: 4, B: 6 }
1046
- * )
1039
+ * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]) // => { A: 4, B: 6 }
1047
1040
  * ```
1048
1041
  *
1049
1042
  * @category mapping
@@ -1055,14 +1048,10 @@ export const mapEntries: {
1055
1048
  *
1056
1049
  * **Example** (Mapping record entries)
1057
1050
  *
1058
- * ```ts
1051
+ * ```ts import.meta.vitest
1059
1052
  * import { Record } from "effect"
1060
- * import * as assert from "node:assert"
1061
1053
  *
1062
- * assert.deepStrictEqual(
1063
- * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]),
1064
- * { A: 4, B: 6 }
1065
- * )
1054
+ * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]) // => { A: 4, B: 6 }
1066
1055
  * ```
1067
1056
  *
1068
1057
  * @category mapping
@@ -1074,14 +1063,10 @@ export const mapEntries: {
1074
1063
  *
1075
1064
  * **Example** (Mapping record entries)
1076
1065
  *
1077
- * ```ts
1066
+ * ```ts import.meta.vitest
1078
1067
  * import { Record } from "effect"
1079
- * import * as assert from "node:assert"
1080
1068
  *
1081
- * assert.deepStrictEqual(
1082
- * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]),
1083
- * { A: 4, B: 6 }
1084
- * )
1069
+ * Record.mapEntries({ a: 3, b: 5 }, (a, key) => [key.toUpperCase(), a + 1]) // => { A: 4, B: 6 }
1085
1070
  * ```
1086
1071
  *
1087
1072
  * @category mapping
@@ -1097,7 +1082,7 @@ export const mapEntries: {
1097
1082
  const out = {} as Record<K2, B>
1098
1083
  for (const key of keys(self)) {
1099
1084
  const [k, b] = f(self[key], key)
1100
- out[k] = b
1085
+ InternalRecord.assignProperty(out, k, b)
1101
1086
  }
1102
1087
  return out
1103
1088
  }
@@ -1109,13 +1094,12 @@ export const mapEntries: {
1109
1094
  *
1110
1095
  * **Example** (Filtering and mapping with Result)
1111
1096
  *
1112
- * ```ts
1097
+ * ```ts import.meta.vitest
1113
1098
  * import { Record, Result } from "effect"
1114
- * import * as assert from "node:assert"
1115
1099
  *
1116
1100
  * const x = { a: 1, b: 2, c: 3 }
1117
1101
  * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1118
- * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1102
+ * Record.filterMap(x, f) // => { c: 6 }
1119
1103
  * ```
1120
1104
  *
1121
1105
  * @category filtering
@@ -1128,13 +1112,12 @@ export const filterMap: {
1128
1112
  *
1129
1113
  * **Example** (Filtering and mapping with Result)
1130
1114
  *
1131
- * ```ts
1115
+ * ```ts import.meta.vitest
1132
1116
  * import { Record, Result } from "effect"
1133
- * import * as assert from "node:assert"
1134
1117
  *
1135
1118
  * const x = { a: 1, b: 2, c: 3 }
1136
1119
  * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1137
- * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1120
+ * Record.filterMap(x, f) // => { c: 6 }
1138
1121
  * ```
1139
1122
  *
1140
1123
  * @category filtering
@@ -1147,13 +1130,12 @@ export const filterMap: {
1147
1130
  *
1148
1131
  * **Example** (Filtering and mapping with Result)
1149
1132
  *
1150
- * ```ts
1133
+ * ```ts import.meta.vitest
1151
1134
  * import { Record, Result } from "effect"
1152
- * import * as assert from "node:assert"
1153
1135
  *
1154
1136
  * const x = { a: 1, b: 2, c: 3 }
1155
1137
  * const f = (a: number, key: string) => a > 2 ? Result.succeed(a * 2) : Result.failVoid
1156
- * assert.deepStrictEqual(Record.filterMap(x, f), { c: 6 })
1138
+ * Record.filterMap(x, f) // => { c: 6 }
1157
1139
  * ```
1158
1140
  *
1159
1141
  * @category filtering
@@ -1170,7 +1152,7 @@ export const filterMap: {
1170
1152
  for (const key of keys(self)) {
1171
1153
  const result = f(self[key], key)
1172
1154
  if (R.isSuccess(result)) {
1173
- out[key] = result.success
1155
+ InternalRecord.assignProperty(out, key, result.success)
1174
1156
  }
1175
1157
  }
1176
1158
  return out
@@ -1182,12 +1164,11 @@ export const filterMap: {
1182
1164
  *
1183
1165
  * **Example** (Filtering record values)
1184
1166
  *
1185
- * ```ts
1167
+ * ```ts import.meta.vitest
1186
1168
  * import { Record } from "effect"
1187
- * import * as assert from "node:assert"
1188
1169
  *
1189
1170
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1190
- * assert.deepStrictEqual(Record.filter(x, (n) => n > 2), { c: 3, d: 4 })
1171
+ * Record.filter(x, (n) => n > 2) // => { c: 3, d: 4 }
1191
1172
  * ```
1192
1173
  *
1193
1174
  * @category filtering
@@ -1199,12 +1180,11 @@ export const filter: {
1199
1180
  *
1200
1181
  * **Example** (Filtering record values)
1201
1182
  *
1202
- * ```ts
1183
+ * ```ts import.meta.vitest
1203
1184
  * import { Record } from "effect"
1204
- * import * as assert from "node:assert"
1205
1185
  *
1206
1186
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1207
- * assert.deepStrictEqual(Record.filter(x, (n) => n > 2), { c: 3, d: 4 })
1187
+ * Record.filter(x, (n) => n > 2) // => { c: 3, d: 4 }
1208
1188
  * ```
1209
1189
  *
1210
1190
  * @category filtering
@@ -1216,12 +1196,11 @@ export const filter: {
1216
1196
  *
1217
1197
  * **Example** (Filtering record values)
1218
1198
  *
1219
- * ```ts
1199
+ * ```ts import.meta.vitest
1220
1200
  * import { Record } from "effect"
1221
- * import * as assert from "node:assert"
1222
1201
  *
1223
1202
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1224
- * assert.deepStrictEqual(Record.filter(x, (n) => n > 2), { c: 3, d: 4 })
1203
+ * Record.filter(x, (n) => n > 2) // => { c: 3, d: 4 }
1225
1204
  * ```
1226
1205
  *
1227
1206
  * @category filtering
@@ -1233,12 +1212,11 @@ export const filter: {
1233
1212
  *
1234
1213
  * **Example** (Filtering record values)
1235
1214
  *
1236
- * ```ts
1215
+ * ```ts import.meta.vitest
1237
1216
  * import { Record } from "effect"
1238
- * import * as assert from "node:assert"
1239
1217
  *
1240
1218
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1241
- * assert.deepStrictEqual(Record.filter(x, (n) => n > 2), { c: 3, d: 4 })
1219
+ * Record.filter(x, (n) => n > 2) // => { c: 3, d: 4 }
1242
1220
  * ```
1243
1221
  *
1244
1222
  * @category filtering
@@ -1250,12 +1228,11 @@ export const filter: {
1250
1228
  *
1251
1229
  * **Example** (Filtering record values)
1252
1230
  *
1253
- * ```ts
1231
+ * ```ts import.meta.vitest
1254
1232
  * import { Record } from "effect"
1255
- * import * as assert from "node:assert"
1256
1233
  *
1257
1234
  * const x = { a: 1, b: 2, c: 3, d: 4 }
1258
- * assert.deepStrictEqual(Record.filter(x, (n) => n > 2), { c: 3, d: 4 })
1235
+ * Record.filter(x, (n) => n > 2) // => { c: 3, d: 4 }
1259
1236
  * ```
1260
1237
  *
1261
1238
  * @category filtering
@@ -1271,7 +1248,7 @@ export const filter: {
1271
1248
  const out: Record<string, A> = empty()
1272
1249
  for (const key of keys(self)) {
1273
1250
  if (predicate(self[key], key)) {
1274
- out[key] = self[key]
1251
+ InternalRecord.assignProperty(out, key, self[key])
1275
1252
  }
1276
1253
  }
1277
1254
  return out
@@ -1284,14 +1261,10 @@ export const filter: {
1284
1261
  *
1285
1262
  * **Example** (Extracting Some values)
1286
1263
  *
1287
- * ```ts
1264
+ * ```ts import.meta.vitest
1288
1265
  * import { Option, Record } from "effect"
1289
- * import * as assert from "node:assert"
1290
1266
  *
1291
- * assert.deepStrictEqual(
1292
- * Record.getSomes({ a: Option.some(1), b: Option.none(), c: Option.some(2) }),
1293
- * { a: 1, c: 2 }
1294
- * )
1267
+ * Record.getSomes({ a: Option.some(1), b: Option.none(), c: Option.some(2) }) // => { a: 1, c: 2 }
1295
1268
  * ```
1296
1269
  *
1297
1270
  * @category filtering
@@ -1306,7 +1279,7 @@ export const getSomes: <K extends string, A>(
1306
1279
  for (const key of keys(self)) {
1307
1280
  const option = self[key]
1308
1281
  if (Option.isSome(option)) {
1309
- out[key] = option.value
1282
+ InternalRecord.assignProperty(out, key, option.value)
1310
1283
  }
1311
1284
  }
1312
1285
  return out
@@ -1318,18 +1291,14 @@ export const getSomes: <K extends string, A>(
1318
1291
  *
1319
1292
  * **Example** (Extracting Result failures)
1320
1293
  *
1321
- * ```ts
1294
+ * ```ts import.meta.vitest
1322
1295
  * import { Record, Result } from "effect"
1323
- * import * as assert from "node:assert"
1324
1296
  *
1325
- * assert.deepStrictEqual(
1326
- * Record.getFailures({
1297
+ * Record.getFailures({
1327
1298
  * a: Result.succeed(1),
1328
1299
  * b: Result.fail("err"),
1329
1300
  * c: Result.succeed(2)
1330
- * }),
1331
- * { b: "err" }
1332
- * )
1301
+ * }) // => { b: "err" }
1333
1302
  * ```
1334
1303
  *
1335
1304
  * @category filtering
@@ -1342,7 +1311,7 @@ export const getFailures = <K extends string, A, E>(
1342
1311
  for (const key of keys(self)) {
1343
1312
  const value = self[key]
1344
1313
  if (R.isFailure(value)) {
1345
- out[key] = value.failure
1314
+ InternalRecord.assignProperty(out, key, value.failure)
1346
1315
  }
1347
1316
  }
1348
1317
 
@@ -1355,18 +1324,14 @@ export const getFailures = <K extends string, A, E>(
1355
1324
  *
1356
1325
  * **Example** (Extracting Result successes)
1357
1326
  *
1358
- * ```ts
1327
+ * ```ts import.meta.vitest
1359
1328
  * import { Record, Result } from "effect"
1360
- * import * as assert from "node:assert"
1361
1329
  *
1362
- * assert.deepStrictEqual(
1363
- * Record.getSuccesses({
1330
+ * Record.getSuccesses({
1364
1331
  * a: Result.succeed(1),
1365
1332
  * b: Result.fail("err"),
1366
1333
  * c: Result.succeed(2)
1367
- * }),
1368
- * { a: 1, c: 2 }
1369
- * )
1334
+ * }) // => { a: 1, c: 2 }
1370
1335
  * ```
1371
1336
  *
1372
1337
  * @category filtering
@@ -1379,7 +1344,7 @@ export const getSuccesses = <K extends string, A, E>(
1379
1344
  for (const key of keys(self)) {
1380
1345
  const value = self[key]
1381
1346
  if (R.isSuccess(value)) {
1382
- out[key] = value.success
1347
+ InternalRecord.assignProperty(out, key, value.success)
1383
1348
  }
1384
1349
  }
1385
1350
 
@@ -1397,13 +1362,12 @@ export const getSuccesses = <K extends string, A, E>(
1397
1362
  *
1398
1363
  * **Example** (Partitioning with Result)
1399
1364
  *
1400
- * ```ts
1365
+ * ```ts import.meta.vitest
1401
1366
  * import { Record, Result } from "effect"
1402
- * import * as assert from "node:assert"
1403
1367
  *
1404
1368
  * const x = { a: 1, b: 2, c: 3 }
1405
1369
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1406
- * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1370
+ * Record.partition(x, f) // => [{ a: 1, c: 3 }, { b: 2 }]
1407
1371
  * ```
1408
1372
  *
1409
1373
  * @category filtering
@@ -1421,13 +1385,12 @@ export const partition: {
1421
1385
  *
1422
1386
  * **Example** (Partitioning with Result)
1423
1387
  *
1424
- * ```ts
1388
+ * ```ts import.meta.vitest
1425
1389
  * import { Record, Result } from "effect"
1426
- * import * as assert from "node:assert"
1427
1390
  *
1428
1391
  * const x = { a: 1, b: 2, c: 3 }
1429
1392
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1430
- * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1393
+ * Record.partition(x, f) // => [{ a: 1, c: 3 }, { b: 2 }]
1431
1394
  * ```
1432
1395
  *
1433
1396
  * @category filtering
@@ -1447,13 +1410,12 @@ export const partition: {
1447
1410
  *
1448
1411
  * **Example** (Partitioning with Result)
1449
1412
  *
1450
- * ```ts
1413
+ * ```ts import.meta.vitest
1451
1414
  * import { Record, Result } from "effect"
1452
- * import * as assert from "node:assert"
1453
1415
  *
1454
1416
  * const x = { a: 1, b: 2, c: 3 }
1455
1417
  * const f = (n: number) => (n % 2 === 0 ? Result.succeed(n) : Result.fail(n))
1456
- * assert.deepStrictEqual(Record.partition(x, f), [{ a: 1, c: 3 }, { b: 2 }])
1418
+ * Record.partition(x, f) // => [{ a: 1, c: 3 }, { b: 2 }]
1457
1419
  * ```
1458
1420
  *
1459
1421
  * @category filtering
@@ -1471,9 +1433,9 @@ export const partition: {
1471
1433
  for (const key of keys(self)) {
1472
1434
  const e = f(self[key], key)
1473
1435
  if (R.isFailure(e)) {
1474
- left[key] = e.failure
1436
+ InternalRecord.assignProperty(left, key, e.failure)
1475
1437
  } else {
1476
- right[key] = e.success
1438
+ InternalRecord.assignProperty(right, key, e.success)
1477
1439
  }
1478
1440
  }
1479
1441
  return [left, right]
@@ -1486,14 +1448,10 @@ export const partition: {
1486
1448
  *
1487
1449
  * **Example** (Separating Result values)
1488
1450
  *
1489
- * ```ts
1451
+ * ```ts import.meta.vitest
1490
1452
  * import { Record, Result } from "effect"
1491
- * import * as assert from "node:assert"
1492
1453
  *
1493
- * assert.deepStrictEqual(
1494
- * Record.separate({ a: Result.fail("e"), b: Result.succeed(1) }),
1495
- * [{ a: "e" }, { b: 1 }]
1496
- * )
1454
+ * Record.separate({ a: Result.fail("e"), b: Result.succeed(1) }) // => [{ a: "e" }, { b: 1 }]
1497
1455
  * ```
1498
1456
  *
1499
1457
  * @category filtering
@@ -1508,11 +1466,10 @@ export const separate: <K extends string, A, B>(
1508
1466
  *
1509
1467
  * **Example** (Getting record keys)
1510
1468
  *
1511
- * ```ts
1469
+ * ```ts import.meta.vitest
1512
1470
  * import { Record } from "effect"
1513
- * import * as assert from "node:assert"
1514
1471
  *
1515
- * assert.deepStrictEqual(Record.keys({ a: 1, b: 2, c: 3 }), ["a", "b", "c"])
1472
+ * Record.keys({ a: 1, b: 2, c: 3 }) // => ["a", "b", "c"]
1516
1473
  * ```
1517
1474
  *
1518
1475
  * @category getters
@@ -1526,11 +1483,10 @@ export const keys = <K extends string | symbol, A>(self: ReadonlyRecord<K, A>):
1526
1483
  *
1527
1484
  * **Example** (Getting record values)
1528
1485
  *
1529
- * ```ts
1486
+ * ```ts import.meta.vitest
1530
1487
  * import { Record } from "effect"
1531
- * import * as assert from "node:assert"
1532
1488
  *
1533
- * assert.deepStrictEqual(Record.values({ a: 1, b: 2, c: 3 }), [1, 2, 3])
1489
+ * Record.values({ a: 1, b: 2, c: 3 }) // => [1, 2, 3]
1534
1490
  * ```
1535
1491
  *
1536
1492
  * @category getters
@@ -1543,12 +1499,11 @@ export const values = <K extends string, A>(self: ReadonlyRecord<K, A>): Array<A
1543
1499
  *
1544
1500
  * **Example** (Setting a record value)
1545
1501
  *
1546
- * ```ts
1502
+ * ```ts import.meta.vitest
1547
1503
  * import { Record } from "effect"
1548
- * import * as assert from "node:assert"
1549
1504
  *
1550
- * assert.deepStrictEqual(Record.set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 })
1551
- * assert.deepStrictEqual(Record.set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 })
1505
+ * Record.set("a", 5)({ a: 1, b: 2 }) // => { a: 5, b: 2 }
1506
+ * Record.set("c", 5)({ a: 1, b: 2 }) // => { a: 1, b: 2, c: 5 }
1552
1507
  * ```
1553
1508
  *
1554
1509
  * @category mutations
@@ -1560,12 +1515,11 @@ export const set: {
1560
1515
  *
1561
1516
  * **Example** (Setting a record value)
1562
1517
  *
1563
- * ```ts
1518
+ * ```ts import.meta.vitest
1564
1519
  * import { Record } from "effect"
1565
- * import * as assert from "node:assert"
1566
1520
  *
1567
- * assert.deepStrictEqual(Record.set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 })
1568
- * assert.deepStrictEqual(Record.set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 })
1521
+ * Record.set("a", 5)({ a: 1, b: 2 }) // => { a: 5, b: 2 }
1522
+ * Record.set("c", 5)({ a: 1, b: 2 }) // => { a: 1, b: 2, c: 5 }
1569
1523
  * ```
1570
1524
  *
1571
1525
  * @category mutations
@@ -1577,12 +1531,11 @@ export const set: {
1577
1531
  *
1578
1532
  * **Example** (Setting a record value)
1579
1533
  *
1580
- * ```ts
1534
+ * ```ts import.meta.vitest
1581
1535
  * import { Record } from "effect"
1582
- * import * as assert from "node:assert"
1583
1536
  *
1584
- * assert.deepStrictEqual(Record.set("a", 5)({ a: 1, b: 2 }), { a: 5, b: 2 })
1585
- * assert.deepStrictEqual(Record.set("c", 5)({ a: 1, b: 2 }), { a: 1, b: 2, c: 5 })
1537
+ * Record.set("a", 5)({ a: 1, b: 2 }) // => { a: 5, b: 2 }
1538
+ * Record.set("c", 5)({ a: 1, b: 2 }) // => { a: 1, b: 2, c: 5 }
1586
1539
  * ```
1587
1540
  *
1588
1541
  * @category mutations
@@ -1600,13 +1553,50 @@ export const set: {
1600
1553
  }
1601
1554
  )
1602
1555
 
1556
+ /**
1557
+ * Mutates a record by assigning a value to a property.
1558
+ *
1559
+ * **When to use**
1560
+ *
1561
+ * Use when incrementally constructing a new record and copying it for every
1562
+ * property would be unnecessary.
1563
+ *
1564
+ * **Gotchas**
1565
+ *
1566
+ * This function mutates `self`. When `key` is `"__proto__"`, it creates an
1567
+ * own data property instead of changing the object's prototype.
1568
+ *
1569
+ * **Example** (Assigning an external key safely)
1570
+ *
1571
+ * ```ts import.meta.vitest
1572
+ * import { Record } from "effect"
1573
+ *
1574
+ * const key: string = "__proto__" // Assume this comes from external input
1575
+ * const value = { polluted: true }
1576
+ *
1577
+ * const unsafe: Record<string, unknown> = {}
1578
+ * unsafe[key] = value
1579
+ * Object.getPrototypeOf(unsafe) === value // => true
1580
+ *
1581
+ * const safe: Record<string, unknown> = {}
1582
+ * Record.assignProperty(safe, key, value)
1583
+ * Object.getPrototypeOf(safe) === Object.prototype // => true
1584
+ * safe[key] === value // => true
1585
+ * ```
1586
+ *
1587
+ * @see {@link set} for an immutable update
1588
+ * @category mutations
1589
+ * @since 4.0.0
1590
+ */
1591
+ export const assignProperty: (self: object, key: PropertyKey, value: unknown) => void = InternalRecord.assignProperty
1592
+
1603
1593
  /**
1604
1594
  * Checks whether all the keys and values in one record are also found in another record.
1605
1595
  * Uses the provided equivalence function to compare values.
1606
1596
  *
1607
1597
  * **Example** (Checking subrecords with a custom equivalence)
1608
1598
  *
1609
- * ```ts
1599
+ * ```ts import.meta.vitest
1610
1600
  * import { Equivalence, Record } from "effect"
1611
1601
  *
1612
1602
  * const isSubrecord = Record.isSubrecordBy(
@@ -1619,15 +1609,9 @@ export const set: {
1619
1609
  * status: "active"
1620
1610
  * }
1621
1611
  *
1622
- * console.log(
1623
- * isSubrecord(required, available)
1624
- * ) // true
1625
- * console.log(
1626
- * isSubrecord({ role: "Admin", status: "inactive" }, available)
1627
- * ) // false
1628
- * console.log(
1629
- * isSubrecord(required, { role: "editor", status: "active" })
1630
- * ) // false
1612
+ * isSubrecord(required, available) // => true
1613
+ * isSubrecord({ role: "Admin", status: "inactive" }, available) // => false
1614
+ * isSubrecord(required, { role: "editor", status: "active" }) // => false
1631
1615
  * ```
1632
1616
  *
1633
1617
  * @category predicates
@@ -1656,18 +1640,11 @@ export const isSubrecordBy = <A>(equivalence: Equivalence<A>): {
1656
1640
  *
1657
1641
  * **Example** (Checking subrecords)
1658
1642
  *
1659
- * ```ts
1643
+ * ```ts import.meta.vitest
1660
1644
  * import { Record } from "effect"
1661
- * import * as assert from "node:assert"
1662
1645
  *
1663
- * assert.deepStrictEqual(
1664
- * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }),
1665
- * true
1666
- * )
1667
- * assert.deepStrictEqual(
1668
- * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>),
1669
- * false
1670
- * )
1646
+ * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }) // => true
1647
+ * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>) // => false
1671
1648
  * ```
1672
1649
  *
1673
1650
  * @category predicates
@@ -1684,18 +1661,11 @@ export const isSubrecord: {
1684
1661
  *
1685
1662
  * **Example** (Checking subrecords)
1686
1663
  *
1687
- * ```ts
1664
+ * ```ts import.meta.vitest
1688
1665
  * import { Record } from "effect"
1689
- * import * as assert from "node:assert"
1690
- *
1691
- * assert.deepStrictEqual(
1692
- * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }),
1693
- * true
1694
- * )
1695
- * assert.deepStrictEqual(
1696
- * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>),
1697
- * false
1698
- * )
1666
+ *
1667
+ * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }) // => true
1668
+ * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>) // => false
1699
1669
  * ```
1700
1670
  *
1701
1671
  * @category predicates
@@ -1712,18 +1682,11 @@ export const isSubrecord: {
1712
1682
  *
1713
1683
  * **Example** (Checking subrecords)
1714
1684
  *
1715
- * ```ts
1685
+ * ```ts import.meta.vitest
1716
1686
  * import { Record } from "effect"
1717
- * import * as assert from "node:assert"
1718
- *
1719
- * assert.deepStrictEqual(
1720
- * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }),
1721
- * true
1722
- * )
1723
- * assert.deepStrictEqual(
1724
- * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>),
1725
- * false
1726
- * )
1687
+ *
1688
+ * Record.isSubrecord({ a: 1 } as Record<string, number>, { a: 1, b: 2 }) // => true
1689
+ * Record.isSubrecord({ a: 1, b: 2 }, { a: 1 } as Record<string, number>) // => false
1727
1690
  * ```
1728
1691
  *
1729
1692
  * @category predicates
@@ -1737,14 +1700,10 @@ export const isSubrecord: {
1737
1700
  *
1738
1701
  * **Example** (Reducing record values)
1739
1702
  *
1740
- * ```ts
1703
+ * ```ts import.meta.vitest
1741
1704
  * import { Record } from "effect"
1742
- * import * as assert from "node:assert"
1743
1705
  *
1744
- * assert.deepStrictEqual(
1745
- * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value, key) => acc + value),
1746
- * 6
1747
- * )
1706
+ * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
1748
1707
  * ```
1749
1708
  *
1750
1709
  * @category folding
@@ -1756,14 +1715,10 @@ export const reduce: {
1756
1715
  *
1757
1716
  * **Example** (Reducing record values)
1758
1717
  *
1759
- * ```ts
1718
+ * ```ts import.meta.vitest
1760
1719
  * import { Record } from "effect"
1761
- * import * as assert from "node:assert"
1762
1720
  *
1763
- * assert.deepStrictEqual(
1764
- * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value, key) => acc + value),
1765
- * 6
1766
- * )
1721
+ * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
1767
1722
  * ```
1768
1723
  *
1769
1724
  * @category folding
@@ -1775,14 +1730,10 @@ export const reduce: {
1775
1730
  *
1776
1731
  * **Example** (Reducing record values)
1777
1732
  *
1778
- * ```ts
1733
+ * ```ts import.meta.vitest
1779
1734
  * import { Record } from "effect"
1780
- * import * as assert from "node:assert"
1781
1735
  *
1782
- * assert.deepStrictEqual(
1783
- * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value, key) => acc + value),
1784
- * 6
1785
- * )
1736
+ * Record.reduce({ a: 1, b: 2, c: 3 }, 0, (acc, value) => acc + value) // => 6
1786
1737
  * ```
1787
1738
  *
1788
1739
  * @category folding
@@ -1813,15 +1764,14 @@ export const reduce: {
1813
1764
  *
1814
1765
  * **Example** (Checking every record value)
1815
1766
  *
1816
- * ```ts
1767
+ * ```ts import.meta.vitest
1817
1768
  * import { Record } from "effect"
1818
- * import * as assert from "node:assert"
1819
1769
  *
1820
- * assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
1821
- * assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
1770
+ * Record.every({ a: 1, b: 2 }, (n) => n > 0) // => true
1771
+ * Record.every({ a: 1, b: -1 }, (n) => n > 0) // => false
1822
1772
  * ```
1823
1773
  *
1824
- * @category predicates
1774
+ * @category guards
1825
1775
  * @since 2.0.0
1826
1776
  */
1827
1777
  export const every: {
@@ -1830,15 +1780,14 @@ export const every: {
1830
1780
  *
1831
1781
  * **Example** (Checking every record value)
1832
1782
  *
1833
- * ```ts
1783
+ * ```ts import.meta.vitest
1834
1784
  * import { Record } from "effect"
1835
- * import * as assert from "node:assert"
1836
1785
  *
1837
- * assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
1838
- * assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
1786
+ * Record.every({ a: 1, b: 2 }, (n) => n > 0) // => true
1787
+ * Record.every({ a: 1, b: -1 }, (n) => n > 0) // => false
1839
1788
  * ```
1840
1789
  *
1841
- * @category predicates
1790
+ * @category guards
1842
1791
  * @since 2.0.0
1843
1792
  */
1844
1793
  <A, K extends string, B extends A>(refinement: (value: A, key: K) => value is B): (self: ReadonlyRecord<K, A>) => self is ReadonlyRecord<K, B>
@@ -1847,15 +1796,14 @@ export const every: {
1847
1796
  *
1848
1797
  * **Example** (Checking every record value)
1849
1798
  *
1850
- * ```ts
1799
+ * ```ts import.meta.vitest
1851
1800
  * import { Record } from "effect"
1852
- * import * as assert from "node:assert"
1853
1801
  *
1854
- * assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
1855
- * assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
1802
+ * Record.every({ a: 1, b: 2 }, (n) => n > 0) // => true
1803
+ * Record.every({ a: 1, b: -1 }, (n) => n > 0) // => false
1856
1804
  * ```
1857
1805
  *
1858
- * @category predicates
1806
+ * @category guards
1859
1807
  * @since 2.0.0
1860
1808
  */
1861
1809
  <A, K extends string>(predicate: (value: A, key: K) => boolean): (self: ReadonlyRecord<K, A>) => boolean
@@ -1864,15 +1812,14 @@ export const every: {
1864
1812
  *
1865
1813
  * **Example** (Checking every record value)
1866
1814
  *
1867
- * ```ts
1815
+ * ```ts import.meta.vitest
1868
1816
  * import { Record } from "effect"
1869
- * import * as assert from "node:assert"
1870
1817
  *
1871
- * assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
1872
- * assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
1818
+ * Record.every({ a: 1, b: 2 }, (n) => n > 0) // => true
1819
+ * Record.every({ a: 1, b: -1 }, (n) => n > 0) // => false
1873
1820
  * ```
1874
1821
  *
1875
- * @category predicates
1822
+ * @category guards
1876
1823
  * @since 2.0.0
1877
1824
  */
1878
1825
  <A, K extends string, B extends A>(self: ReadonlyRecord<K, A>, refinement: (value: A, key: K) => value is B): self is ReadonlyRecord<K, B>
@@ -1881,15 +1828,14 @@ export const every: {
1881
1828
  *
1882
1829
  * **Example** (Checking every record value)
1883
1830
  *
1884
- * ```ts
1831
+ * ```ts import.meta.vitest
1885
1832
  * import { Record } from "effect"
1886
- * import * as assert from "node:assert"
1887
1833
  *
1888
- * assert.deepStrictEqual(Record.every({ a: 1, b: 2 }, (n) => n > 0), true)
1889
- * assert.deepStrictEqual(Record.every({ a: 1, b: -1 }, (n) => n > 0), false)
1834
+ * Record.every({ a: 1, b: 2 }, (n) => n > 0) // => true
1835
+ * Record.every({ a: 1, b: -1 }, (n) => n > 0) // => false
1890
1836
  * ```
1891
1837
  *
1892
- * @category predicates
1838
+ * @category guards
1893
1839
  * @since 2.0.0
1894
1840
  */
1895
1841
  <K extends string, A>(self: ReadonlyRecord<K, A>, predicate: (value: A, key: K) => boolean): boolean
@@ -1913,12 +1859,11 @@ export const every: {
1913
1859
  *
1914
1860
  * **Example** (Checking for any matching value)
1915
1861
  *
1916
- * ```ts
1862
+ * ```ts import.meta.vitest
1917
1863
  * import { Record } from "effect"
1918
- * import * as assert from "node:assert"
1919
1864
  *
1920
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 1), true)
1921
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 2), false)
1865
+ * Record.some({ a: 1, b: 2 }, (n) => n > 1) // => true
1866
+ * Record.some({ a: 1, b: 2 }, (n) => n > 2) // => false
1922
1867
  * ```
1923
1868
  *
1924
1869
  * @category predicates
@@ -1930,12 +1875,11 @@ export const some: {
1930
1875
  *
1931
1876
  * **Example** (Checking for any matching value)
1932
1877
  *
1933
- * ```ts
1878
+ * ```ts import.meta.vitest
1934
1879
  * import { Record } from "effect"
1935
- * import * as assert from "node:assert"
1936
1880
  *
1937
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 1), true)
1938
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 2), false)
1881
+ * Record.some({ a: 1, b: 2 }, (n) => n > 1) // => true
1882
+ * Record.some({ a: 1, b: 2 }, (n) => n > 2) // => false
1939
1883
  * ```
1940
1884
  *
1941
1885
  * @category predicates
@@ -1947,12 +1891,11 @@ export const some: {
1947
1891
  *
1948
1892
  * **Example** (Checking for any matching value)
1949
1893
  *
1950
- * ```ts
1894
+ * ```ts import.meta.vitest
1951
1895
  * import { Record } from "effect"
1952
- * import * as assert from "node:assert"
1953
1896
  *
1954
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 1), true)
1955
- * assert.deepStrictEqual(Record.some({ a: 1, b: 2 }, (n) => n > 2), false)
1897
+ * Record.some({ a: 1, b: 2 }, (n) => n > 1) // => true
1898
+ * Record.some({ a: 1, b: 2 }, (n) => n > 2) // => false
1956
1899
  * ```
1957
1900
  *
1958
1901
  * @category predicates
@@ -1977,14 +1920,10 @@ export const some: {
1977
1920
  *
1978
1921
  * **Example** (Merging records with union)
1979
1922
  *
1980
- * ```ts
1923
+ * ```ts import.meta.vitest
1981
1924
  * import { Record } from "effect"
1982
- * import * as assert from "node:assert"
1983
1925
  *
1984
- * assert.deepStrictEqual(
1985
- * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
1986
- * { a: 1, b: 5, c: 4 }
1987
- * )
1926
+ * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { a: 1, b: 5, c: 4 }
1988
1927
  * ```
1989
1928
  *
1990
1929
  * @category combining
@@ -1997,14 +1936,10 @@ export const union: {
1997
1936
  *
1998
1937
  * **Example** (Merging records with union)
1999
1938
  *
2000
- * ```ts
1939
+ * ```ts import.meta.vitest
2001
1940
  * import { Record } from "effect"
2002
- * import * as assert from "node:assert"
2003
1941
  *
2004
- * assert.deepStrictEqual(
2005
- * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
2006
- * { a: 1, b: 5, c: 4 }
2007
- * )
1942
+ * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { a: 1, b: 5, c: 4 }
2008
1943
  * ```
2009
1944
  *
2010
1945
  * @category combining
@@ -2017,14 +1952,10 @@ export const union: {
2017
1952
  *
2018
1953
  * **Example** (Merging records with union)
2019
1954
  *
2020
- * ```ts
1955
+ * ```ts import.meta.vitest
2021
1956
  * import { Record } from "effect"
2022
- * import * as assert from "node:assert"
2023
1957
  *
2024
- * assert.deepStrictEqual(
2025
- * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
2026
- * { a: 1, b: 5, c: 4 }
2027
- * )
1958
+ * Record.union({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { a: 1, b: 5, c: 4 }
2028
1959
  * ```
2029
1960
  *
2030
1961
  * @category combining
@@ -2051,14 +1982,14 @@ export const union: {
2051
1982
  const out: Record<string, A | B | C> = empty()
2052
1983
  for (const key of keys(self)) {
2053
1984
  if (has(that, key as any)) {
2054
- out[key] = combine(self[key], that[key as unknown as K1])
1985
+ InternalRecord.assignProperty(out, key, combine(self[key], that[key as unknown as K1]))
2055
1986
  } else {
2056
- out[key] = self[key]
1987
+ InternalRecord.assignProperty(out, key, self[key])
2057
1988
  }
2058
1989
  }
2059
1990
  for (const key of keys(that)) {
2060
1991
  if (!has(out, key)) {
2061
- out[key] = that[key]
1992
+ InternalRecord.assignProperty(out, key, that[key])
2062
1993
  }
2063
1994
  }
2064
1995
  return out
@@ -2071,14 +2002,10 @@ export const union: {
2071
2002
  *
2072
2003
  * **Example** (Merging intersecting keys)
2073
2004
  *
2074
- * ```ts
2005
+ * ```ts import.meta.vitest
2075
2006
  * import { Record } from "effect"
2076
- * import * as assert from "node:assert"
2077
2007
  *
2078
- * assert.deepStrictEqual(
2079
- * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
2080
- * { b: 5 }
2081
- * )
2008
+ * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { b: 5 }
2082
2009
  * ```
2083
2010
  *
2084
2011
  * @category combining
@@ -2091,14 +2018,10 @@ export const intersection: {
2091
2018
  *
2092
2019
  * **Example** (Merging intersecting keys)
2093
2020
  *
2094
- * ```ts
2021
+ * ```ts import.meta.vitest
2095
2022
  * import { Record } from "effect"
2096
- * import * as assert from "node:assert"
2097
2023
  *
2098
- * assert.deepStrictEqual(
2099
- * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
2100
- * { b: 5 }
2101
- * )
2024
+ * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { b: 5 }
2102
2025
  * ```
2103
2026
  *
2104
2027
  * @category combining
@@ -2111,14 +2034,10 @@ export const intersection: {
2111
2034
  *
2112
2035
  * **Example** (Merging intersecting keys)
2113
2036
  *
2114
- * ```ts
2037
+ * ```ts import.meta.vitest
2115
2038
  * import { Record } from "effect"
2116
- * import * as assert from "node:assert"
2117
2039
  *
2118
- * assert.deepStrictEqual(
2119
- * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b),
2120
- * { b: 5 }
2121
- * )
2040
+ * Record.intersection({ a: 1, b: 2 }, { b: 3, c: 4 }, (a, b) => a + b) // => { b: 5 }
2122
2041
  * ```
2123
2042
  *
2124
2043
  * @category combining
@@ -2142,7 +2061,7 @@ export const intersection: {
2142
2061
  }
2143
2062
  for (const key of keys(self)) {
2144
2063
  if (has(that, key as any)) {
2145
- out[key] = combine(self[key], that[key as unknown as K1])
2064
+ InternalRecord.assignProperty(out, key, combine(self[key], that[key as unknown as K1]))
2146
2065
  }
2147
2066
  }
2148
2067
  return out
@@ -2155,14 +2074,10 @@ export const intersection: {
2155
2074
  *
2156
2075
  * **Example** (Keeping keys unique to each record)
2157
2076
  *
2158
- * ```ts
2077
+ * ```ts import.meta.vitest
2159
2078
  * import { Record } from "effect"
2160
- * import * as assert from "node:assert"
2161
2079
  *
2162
- * assert.deepStrictEqual(
2163
- * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }),
2164
- * { a: 1, c: 4 }
2165
- * )
2080
+ * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }) // => { a: 1, c: 4 }
2166
2081
  * ```
2167
2082
  *
2168
2083
  * @category combining
@@ -2175,14 +2090,10 @@ export const difference: {
2175
2090
  *
2176
2091
  * **Example** (Keeping keys unique to each record)
2177
2092
  *
2178
- * ```ts
2093
+ * ```ts import.meta.vitest
2179
2094
  * import { Record } from "effect"
2180
- * import * as assert from "node:assert"
2181
2095
  *
2182
- * assert.deepStrictEqual(
2183
- * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }),
2184
- * { a: 1, c: 4 }
2185
- * )
2096
+ * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }) // => { a: 1, c: 4 }
2186
2097
  * ```
2187
2098
  *
2188
2099
  * @category combining
@@ -2195,14 +2106,10 @@ export const difference: {
2195
2106
  *
2196
2107
  * **Example** (Keeping keys unique to each record)
2197
2108
  *
2198
- * ```ts
2109
+ * ```ts import.meta.vitest
2199
2110
  * import { Record } from "effect"
2200
- * import * as assert from "node:assert"
2201
2111
  *
2202
- * assert.deepStrictEqual(
2203
- * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }),
2204
- * { a: 1, c: 4 }
2205
- * )
2112
+ * Record.difference({ a: 1, b: 2 }, { b: 3, c: 4 }) // => { a: 1, c: 4 }
2206
2113
  * ```
2207
2114
  *
2208
2115
  * @category combining
@@ -2222,12 +2129,12 @@ export const difference: {
2222
2129
  const out = {} as Record<K0 | K1, A | B>
2223
2130
  for (const key of keys(self)) {
2224
2131
  if (!has(that, key as any)) {
2225
- out[key] = self[key]
2132
+ InternalRecord.assignProperty(out, key, self[key])
2226
2133
  }
2227
2134
  }
2228
2135
  for (const key of keys(that)) {
2229
2136
  if (!has(self, key as any)) {
2230
- out[key] = that[key]
2137
+ InternalRecord.assignProperty(out, key, that[key])
2231
2138
  }
2232
2139
  }
2233
2140
  return out
@@ -2239,14 +2146,13 @@ export const difference: {
2239
2146
  *
2240
2147
  * **Example** (Comparing records with a value equivalence)
2241
2148
  *
2242
- * ```ts
2149
+ * ```ts import.meta.vitest
2243
2150
  * import { Equal, Record } from "effect"
2244
- * import * as assert from "node:assert"
2245
2151
  *
2246
2152
  * const recordEquivalence = Record.makeEquivalence(Equal.asEquivalence<number>())
2247
2153
  *
2248
- * assert.deepStrictEqual(recordEquivalence({ a: 1, b: 2 }, { a: 1, b: 2 }), true)
2249
- * assert.deepStrictEqual(recordEquivalence({ a: 1, b: 2 }, { a: 1, b: 3 }), false)
2154
+ * recordEquivalence({ a: 1, b: 2 }, { a: 1, b: 2 }) // => true
2155
+ * recordEquivalence({ a: 1, b: 2 }, { a: 1, b: 3 }) // => false
2250
2156
  * ```
2251
2157
  *
2252
2158
  * @category instances
@@ -2264,11 +2170,10 @@ export const makeEquivalence = <K extends string, A>(
2264
2170
  *
2265
2171
  * **Example** (Creating a singleton record)
2266
2172
  *
2267
- * ```ts
2173
+ * ```ts import.meta.vitest
2268
2174
  * import { Record } from "effect"
2269
- * import * as assert from "node:assert"
2270
2175
  *
2271
- * assert.deepStrictEqual(Record.singleton("a", 1), { a: 1 })
2176
+ * Record.singleton("a", 1) // => { a: 1 }
2272
2177
  * ```
2273
2178
  *
2274
2179
  * @category constructors
@@ -2343,18 +2248,17 @@ export function makeReducerIntersection<K extends string, A>(
2343
2248
  *
2344
2249
  * **Example** (Finding the first matching entry)
2345
2250
  *
2346
- * ```ts
2347
- * import { Record } from "effect"
2251
+ * ```ts import.meta.vitest
2252
+ * import { Option, Record } from "effect"
2348
2253
  *
2349
2254
  * const record = { a: 1, b: 2, c: 3 }
2350
- * const result = Record.findFirst(
2255
+ * Record.findFirst(
2351
2256
  * record,
2352
2257
  * (value, key) => value > 1 && key !== "b"
2353
- * )
2354
- * console.log(result) // Option.Some(["c", 3])
2258
+ * ) // => Option.some(["c", 3])
2355
2259
  * ```
2356
2260
  *
2357
- * @category elements
2261
+ * @category searching
2358
2262
  * @since 3.14.0
2359
2263
  */
2360
2264
  export const findFirst: {
@@ -2364,18 +2268,17 @@ export const findFirst: {
2364
2268
  *
2365
2269
  * **Example** (Finding the first matching entry)
2366
2270
  *
2367
- * ```ts
2368
- * import { Record } from "effect"
2271
+ * ```ts import.meta.vitest
2272
+ * import { Option, Record } from "effect"
2369
2273
  *
2370
2274
  * const record = { a: 1, b: 2, c: 3 }
2371
- * const result = Record.findFirst(
2275
+ * Record.findFirst(
2372
2276
  * record,
2373
2277
  * (value, key) => value > 1 && key !== "b"
2374
- * )
2375
- * console.log(result) // Option.Some(["c", 3])
2278
+ * ) // => Option.some(["c", 3])
2376
2279
  * ```
2377
2280
  *
2378
- * @category elements
2281
+ * @category searching
2379
2282
  * @since 3.14.0
2380
2283
  */
2381
2284
  <K extends string | symbol, V, V2 extends V>(refinement: (value: NoInfer<V>, key: NoInfer<K>) => value is V2): (self: ReadonlyRecord<K, V>) => Option.Option<[K, V2]>
@@ -2385,18 +2288,17 @@ export const findFirst: {
2385
2288
  *
2386
2289
  * **Example** (Finding the first matching entry)
2387
2290
  *
2388
- * ```ts
2389
- * import { Record } from "effect"
2291
+ * ```ts import.meta.vitest
2292
+ * import { Option, Record } from "effect"
2390
2293
  *
2391
2294
  * const record = { a: 1, b: 2, c: 3 }
2392
- * const result = Record.findFirst(
2295
+ * Record.findFirst(
2393
2296
  * record,
2394
2297
  * (value, key) => value > 1 && key !== "b"
2395
- * )
2396
- * console.log(result) // Option.Some(["c", 3])
2298
+ * ) // => Option.some(["c", 3])
2397
2299
  * ```
2398
2300
  *
2399
- * @category elements
2301
+ * @category searching
2400
2302
  * @since 3.14.0
2401
2303
  */
2402
2304
  <K extends string | symbol, V>(predicate: (value: NoInfer<V>, key: NoInfer<K>) => boolean): (self: ReadonlyRecord<K, V>) => Option.Option<[K, V]>
@@ -2406,18 +2308,17 @@ export const findFirst: {
2406
2308
  *
2407
2309
  * **Example** (Finding the first matching entry)
2408
2310
  *
2409
- * ```ts
2410
- * import { Record } from "effect"
2311
+ * ```ts import.meta.vitest
2312
+ * import { Option, Record } from "effect"
2411
2313
  *
2412
2314
  * const record = { a: 1, b: 2, c: 3 }
2413
- * const result = Record.findFirst(
2315
+ * Record.findFirst(
2414
2316
  * record,
2415
2317
  * (value, key) => value > 1 && key !== "b"
2416
- * )
2417
- * console.log(result) // Option.Some(["c", 3])
2318
+ * ) // => Option.some(["c", 3])
2418
2319
  * ```
2419
2320
  *
2420
- * @category elements
2321
+ * @category searching
2421
2322
  * @since 3.14.0
2422
2323
  */
2423
2324
  <K extends string | symbol, V, V2 extends V>(
@@ -2430,18 +2331,17 @@ export const findFirst: {
2430
2331
  *
2431
2332
  * **Example** (Finding the first matching entry)
2432
2333
  *
2433
- * ```ts
2434
- * import { Record } from "effect"
2334
+ * ```ts import.meta.vitest
2335
+ * import { Option, Record } from "effect"
2435
2336
  *
2436
2337
  * const record = { a: 1, b: 2, c: 3 }
2437
- * const result = Record.findFirst(
2338
+ * Record.findFirst(
2438
2339
  * record,
2439
2340
  * (value, key) => value > 1 && key !== "b"
2440
- * )
2441
- * console.log(result) // Option.Some(["c", 3])
2341
+ * ) // => Option.some(["c", 3])
2442
2342
  * ```
2443
2343
  *
2444
- * @category elements
2344
+ * @category searching
2445
2345
  * @since 3.14.0
2446
2346
  */
2447
2347
  <K extends string | symbol, V>(