effect 4.0.0-beta.102 → 4.0.0-beta.104

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 (1637) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  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 +167 -102
  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 +730 -769
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  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 +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +357 -265
  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 +117 -81
  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 +153 -276
  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 +22 -15
  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 +16 -23
  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 +144 -187
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2993 -3281
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1360 -1546
  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 +39 -23
  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 +86 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +8 -29
  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 +106 -73
  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 +86 -60
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +154 -265
  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 +80 -148
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +45 -62
  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 +239 -316
  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 +44 -102
  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 +297 -234
  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 +202 -180
  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 +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -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 +198 -642
  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 +187 -290
  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 +211 -392
  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.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +292 -1638
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +164 -805
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +676 -674
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +513 -544
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +30 -53
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +404 -301
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +137 -107
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js +1 -1
  401. package/dist/ScopedCache.js.map +1 -1
  402. package/dist/ScopedRef.d.ts +3 -3
  403. package/dist/ScopedRef.js +2 -2
  404. package/dist/ScopedRef.js.map +1 -1
  405. package/dist/Semaphore.d.ts +96 -10
  406. package/dist/Semaphore.d.ts.map +1 -1
  407. package/dist/Semaphore.js +78 -39
  408. package/dist/Semaphore.js.map +1 -1
  409. package/dist/Sink.d.ts +118 -108
  410. package/dist/Sink.d.ts.map +1 -1
  411. package/dist/Sink.js +107 -100
  412. package/dist/Sink.js.map +1 -1
  413. package/dist/Stdio.d.ts +1 -1
  414. package/dist/Stdio.js.map +1 -1
  415. package/dist/Stream.d.ts +2442 -2953
  416. package/dist/Stream.d.ts.map +1 -1
  417. package/dist/Stream.js +1105 -1383
  418. package/dist/Stream.js.map +1 -1
  419. package/dist/String.d.ts +262 -308
  420. package/dist/String.d.ts.map +1 -1
  421. package/dist/String.js +184 -215
  422. package/dist/String.js.map +1 -1
  423. package/dist/Struct.d.ts +109 -114
  424. package/dist/Struct.d.ts.map +1 -1
  425. package/dist/Struct.js +41 -50
  426. package/dist/Struct.js.map +1 -1
  427. package/dist/SubscriptionRef.d.ts +282 -250
  428. package/dist/SubscriptionRef.d.ts.map +1 -1
  429. package/dist/SubscriptionRef.js +104 -92
  430. package/dist/SubscriptionRef.js.map +1 -1
  431. package/dist/Symbol.d.ts +3 -3
  432. package/dist/Symbol.js +3 -3
  433. package/dist/Symbol.js.map +1 -1
  434. package/dist/SynchronizedRef.js +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 +2 -2
  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 +98 -131
  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 +89 -114
  481. package/dist/TxReentrantLock.d.ts.map +1 -1
  482. package/dist/TxReentrantLock.js +75 -53
  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 +126 -67
  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.js.map +1 -1
  508. package/dist/internal/array.js.map +1 -1
  509. package/dist/internal/core.js +1 -1
  510. package/dist/internal/core.js.map +1 -1
  511. package/dist/internal/dateTime.js +5 -1
  512. package/dist/internal/dateTime.js.map +1 -1
  513. package/dist/internal/doNotation.js.map +1 -1
  514. package/dist/internal/effect.js +77 -40
  515. package/dist/internal/effect.js.map +1 -1
  516. package/dist/internal/equal.js.map +1 -1
  517. package/dist/internal/errors.js.map +1 -1
  518. package/dist/internal/executionPlan.js +51 -3
  519. package/dist/internal/executionPlan.js.map +1 -1
  520. package/dist/internal/hashMap.js +12 -8
  521. package/dist/internal/hashMap.js.map +1 -1
  522. package/dist/internal/hashSet.js.map +1 -1
  523. package/dist/internal/layer.js.map +1 -1
  524. package/dist/internal/matcher.js +1 -1
  525. package/dist/internal/matcher.js.map +1 -1
  526. package/dist/internal/metric.js.map +1 -1
  527. package/dist/internal/option.js.map +1 -1
  528. package/dist/internal/persistence.d.ts +2 -0
  529. package/dist/internal/persistence.d.ts.map +1 -0
  530. package/dist/internal/persistence.js +3 -0
  531. package/dist/internal/persistence.js.map +1 -0
  532. package/dist/internal/random.js.map +1 -1
  533. package/dist/internal/rcRef.js.map +1 -1
  534. package/dist/internal/record.js.map +1 -1
  535. package/dist/internal/redacted.js.map +1 -1
  536. package/dist/internal/references.js +3 -0
  537. package/dist/internal/references.js.map +1 -1
  538. package/dist/internal/request.js.map +1 -1
  539. package/dist/internal/result.js.map +1 -1
  540. package/dist/internal/schedule.js.map +1 -1
  541. package/dist/internal/schema/annotations.js +2 -0
  542. package/dist/internal/schema/annotations.js.map +1 -1
  543. package/dist/internal/schema/cause.js.map +1 -1
  544. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  545. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  546. package/dist/internal/schema/fromRepresentation.js +8 -15
  547. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  548. package/dist/internal/schema/parser.d.ts +14 -0
  549. package/dist/internal/schema/parser.d.ts.map +1 -0
  550. package/dist/internal/schema/parser.js +13 -0
  551. package/dist/internal/schema/parser.js.map +1 -0
  552. package/dist/internal/schema/schema.js.map +1 -1
  553. package/dist/internal/schema/toArbitrary.js +1 -1
  554. package/dist/internal/schema/toArbitrary.js.map +1 -1
  555. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  556. package/dist/internal/schema/toEquivalence.js.map +1 -1
  557. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  558. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  559. package/dist/internal/schema/toRepresentation.js +87 -107
  560. package/dist/internal/schema/toRepresentation.js.map +1 -1
  561. package/dist/internal/stackTraceLimit.js.map +1 -1
  562. package/dist/internal/stream.js.map +1 -1
  563. package/dist/internal/tracer.js.map +1 -1
  564. package/dist/internal/trie.js +24 -10
  565. package/dist/internal/trie.js.map +1 -1
  566. package/dist/testing/FastCheck.d.ts +8 -7
  567. package/dist/testing/FastCheck.d.ts.map +1 -1
  568. package/dist/testing/FastCheck.js +8 -7
  569. package/dist/testing/FastCheck.js.map +1 -1
  570. package/dist/testing/TestClock.d.ts +57 -28
  571. package/dist/testing/TestClock.d.ts.map +1 -1
  572. package/dist/testing/TestClock.js +61 -19
  573. package/dist/testing/TestClock.js.map +1 -1
  574. package/dist/testing/TestConsole.d.ts +32 -31
  575. package/dist/testing/TestConsole.d.ts.map +1 -1
  576. package/dist/testing/TestConsole.js +24 -22
  577. package/dist/testing/TestConsole.js.map +1 -1
  578. package/dist/testing/TestSchema.d.ts +30 -30
  579. package/dist/testing/TestSchema.d.ts.map +1 -1
  580. package/dist/testing/TestSchema.js +25 -25
  581. package/dist/testing/TestSchema.js.map +1 -1
  582. package/dist/testing/index.js.map +1 -1
  583. package/dist/unstable/ai/AiError.d.ts +95 -118
  584. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  585. package/dist/unstable/ai/AiError.js +113 -136
  586. package/dist/unstable/ai/AiError.js.map +1 -1
  587. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  588. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  589. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  590. package/dist/unstable/ai/Chat.d.ts +132 -97
  591. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  592. package/dist/unstable/ai/Chat.js +56 -52
  593. package/dist/unstable/ai/Chat.js.map +1 -1
  594. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  595. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  596. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  597. package/dist/unstable/ai/IdGenerator.js +26 -21
  598. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  599. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  600. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  601. package/dist/unstable/ai/LanguageModel.js +108 -66
  602. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  603. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  604. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  605. package/dist/unstable/ai/McpProtocol.js +20 -0
  606. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  607. package/dist/unstable/ai/McpSchema.d.ts +251 -185
  608. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  609. package/dist/unstable/ai/McpSchema.js +66 -58
  610. package/dist/unstable/ai/McpSchema.js.map +1 -1
  611. package/dist/unstable/ai/McpServer.d.ts +68 -59
  612. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  613. package/dist/unstable/ai/McpServer.js +695 -242
  614. package/dist/unstable/ai/McpServer.js.map +1 -1
  615. package/dist/unstable/ai/Model.d.ts +8 -19
  616. package/dist/unstable/ai/Model.d.ts.map +1 -1
  617. package/dist/unstable/ai/Model.js +9 -20
  618. package/dist/unstable/ai/Model.js.map +1 -1
  619. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  620. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  621. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  622. package/dist/unstable/ai/Prompt.d.ts +127 -41
  623. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  624. package/dist/unstable/ai/Prompt.js +59 -20
  625. package/dist/unstable/ai/Prompt.js.map +1 -1
  626. package/dist/unstable/ai/Response.d.ts +28 -14
  627. package/dist/unstable/ai/Response.d.ts.map +1 -1
  628. package/dist/unstable/ai/Response.js +9 -4
  629. package/dist/unstable/ai/Response.js.map +1 -1
  630. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  631. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  632. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  633. package/dist/unstable/ai/Telemetry.js +18 -7
  634. package/dist/unstable/ai/Telemetry.js.map +1 -1
  635. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  636. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  637. package/dist/unstable/ai/Tokenizer.js +10 -2
  638. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  639. package/dist/unstable/ai/Tool.d.ts +59 -44
  640. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  641. package/dist/unstable/ai/Tool.js +48 -39
  642. package/dist/unstable/ai/Tool.js.map +1 -1
  643. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  644. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  645. package/dist/unstable/ai/Toolkit.js +18 -4
  646. package/dist/unstable/ai/Toolkit.js.map +1 -1
  647. package/dist/unstable/ai/index.d.ts +4 -0
  648. package/dist/unstable/ai/index.d.ts.map +1 -1
  649. package/dist/unstable/ai/index.js +4 -0
  650. package/dist/unstable/ai/index.js.map +1 -1
  651. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  652. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  653. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  654. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  655. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  656. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  657. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  658. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  659. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  660. package/dist/unstable/ai/internal/structured-output.js +14 -15
  661. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  662. package/dist/unstable/cli/Argument.d.ts +273 -69
  663. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  664. package/dist/unstable/cli/Argument.js +111 -33
  665. package/dist/unstable/cli/Argument.js.map +1 -1
  666. package/dist/unstable/cli/CliConfig.js.map +1 -1
  667. package/dist/unstable/cli/CliError.d.ts +70 -77
  668. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  669. package/dist/unstable/cli/CliError.js +66 -70
  670. package/dist/unstable/cli/CliError.js.map +1 -1
  671. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  672. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  673. package/dist/unstable/cli/CliOutput.js +26 -42
  674. package/dist/unstable/cli/CliOutput.js.map +1 -1
  675. package/dist/unstable/cli/Command.d.ts +713 -115
  676. package/dist/unstable/cli/Command.d.ts.map +1 -1
  677. package/dist/unstable/cli/Command.js +245 -47
  678. package/dist/unstable/cli/Command.js.map +1 -1
  679. package/dist/unstable/cli/Completions.js.map +1 -1
  680. package/dist/unstable/cli/Flag.d.ts +418 -138
  681. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  682. package/dist/unstable/cli/Flag.js +197 -71
  683. package/dist/unstable/cli/Flag.js.map +1 -1
  684. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  685. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  686. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  687. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  688. package/dist/unstable/cli/Param.d.ts +299 -83
  689. package/dist/unstable/cli/Param.d.ts.map +1 -1
  690. package/dist/unstable/cli/Param.js +143 -57
  691. package/dist/unstable/cli/Param.js.map +1 -1
  692. package/dist/unstable/cli/Primitive.d.ts +370 -149
  693. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  694. package/dist/unstable/cli/Primitive.js +375 -160
  695. package/dist/unstable/cli/Primitive.js.map +1 -1
  696. package/dist/unstable/cli/Prompt.d.ts +23 -14
  697. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  698. package/dist/unstable/cli/Prompt.js +54 -31
  699. package/dist/unstable/cli/Prompt.js.map +1 -1
  700. package/dist/unstable/cli/index.js.map +1 -1
  701. package/dist/unstable/cli/internal/ansi.js +2 -2
  702. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  703. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  704. package/dist/unstable/cli/internal/command.d.ts +2 -2
  705. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  706. package/dist/unstable/cli/internal/command.js +10 -9
  707. package/dist/unstable/cli/internal/command.js.map +1 -1
  708. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  709. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  710. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  711. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  712. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  713. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  714. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  715. package/dist/unstable/cli/internal/config.js.map +1 -1
  716. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  717. package/dist/unstable/cli/internal/help.js +4 -2
  718. package/dist/unstable/cli/internal/help.js.map +1 -1
  719. package/dist/unstable/cli/internal/lexer.js +17 -7
  720. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  721. package/dist/unstable/cli/internal/parser.js +5 -5
  722. package/dist/unstable/cli/internal/parser.js.map +1 -1
  723. package/dist/unstable/cli/internal/wizard.js +2 -2
  724. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  725. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  726. package/dist/unstable/cluster/ClusterError.js +7 -7
  727. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  728. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  729. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  730. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  731. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  732. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  733. package/dist/unstable/cluster/ClusterWorkflowEngine.js +6 -2
  734. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  735. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  736. package/dist/unstable/cluster/Entity.d.ts +10 -10
  737. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  738. package/dist/unstable/cluster/Entity.js +8 -8
  739. package/dist/unstable/cluster/Entity.js.map +1 -1
  740. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  741. package/dist/unstable/cluster/EntityId.js.map +1 -1
  742. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  743. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  744. package/dist/unstable/cluster/EntityProxy.js +4 -2
  745. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  746. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  747. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  748. package/dist/unstable/cluster/EntityResource.js +2 -2
  749. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  750. package/dist/unstable/cluster/EntityType.js.map +1 -1
  751. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  752. package/dist/unstable/cluster/Envelope.js +3 -3
  753. package/dist/unstable/cluster/Envelope.js.map +1 -1
  754. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  755. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  756. package/dist/unstable/cluster/HttpRunner.js +6 -4
  757. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  758. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  759. package/dist/unstable/cluster/MachineId.js.map +1 -1
  760. package/dist/unstable/cluster/Message.d.ts +9 -9
  761. package/dist/unstable/cluster/Message.js +6 -6
  762. package/dist/unstable/cluster/Message.js.map +1 -1
  763. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  764. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  765. package/dist/unstable/cluster/MessageStorage.js +13 -6
  766. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  767. package/dist/unstable/cluster/Reply.d.ts +8 -0
  768. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  769. package/dist/unstable/cluster/Reply.js +16 -4
  770. package/dist/unstable/cluster/Reply.js.map +1 -1
  771. package/dist/unstable/cluster/Runner.js.map +1 -1
  772. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  773. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  774. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  775. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  776. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  777. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  778. package/dist/unstable/cluster/RunnerServer.js +18 -16
  779. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  780. package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
  781. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  782. package/dist/unstable/cluster/RunnerStorage.js +8 -7
  783. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  784. package/dist/unstable/cluster/Runners.d.ts +6 -6
  785. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  786. package/dist/unstable/cluster/Runners.js +19 -10
  787. package/dist/unstable/cluster/Runners.js.map +1 -1
  788. package/dist/unstable/cluster/ShardId.js.map +1 -1
  789. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  790. package/dist/unstable/cluster/Sharding.js +25 -6
  791. package/dist/unstable/cluster/Sharding.js.map +1 -1
  792. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  793. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  794. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  795. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  796. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  797. package/dist/unstable/cluster/Singleton.js.map +1 -1
  798. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  799. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  800. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  801. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  802. package/dist/unstable/cluster/Snowflake.js +8 -8
  803. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  804. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  805. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  806. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  807. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  808. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  809. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  810. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  811. package/dist/unstable/cluster/index.js.map +1 -1
  812. package/dist/unstable/cluster/internal/entityManager.js +6 -6
  813. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  814. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  815. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  816. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  817. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  818. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  819. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  820. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  821. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  822. package/dist/unstable/devtools/DevTools.js.map +1 -1
  823. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  824. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  825. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  826. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  827. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  828. package/dist/unstable/devtools/index.js.map +1 -1
  829. package/dist/unstable/encoding/Ini.d.ts +20 -0
  830. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  831. package/dist/unstable/encoding/Ini.js +153 -0
  832. package/dist/unstable/encoding/Ini.js.map +1 -0
  833. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  834. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  835. package/dist/unstable/encoding/Msgpack.js +27 -15
  836. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  837. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  838. package/dist/unstable/encoding/Ndjson.js +7 -1
  839. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  840. package/dist/unstable/encoding/Sse.d.ts +72 -8
  841. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  842. package/dist/unstable/encoding/Sse.js +72 -31
  843. package/dist/unstable/encoding/Sse.js.map +1 -1
  844. package/dist/unstable/encoding/Toml.d.ts +19 -0
  845. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  846. package/dist/unstable/encoding/Toml.js +434 -0
  847. package/dist/unstable/encoding/Toml.js.map +1 -0
  848. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  849. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  850. package/dist/unstable/encoding/Yaml.js +461 -0
  851. package/dist/unstable/encoding/Yaml.js.map +1 -0
  852. package/dist/unstable/encoding/index.d.ts +12 -0
  853. package/dist/unstable/encoding/index.d.ts.map +1 -1
  854. package/dist/unstable/encoding/index.js +12 -0
  855. package/dist/unstable/encoding/index.js.map +1 -1
  856. package/dist/unstable/eventlog/Event.d.ts +20 -20
  857. package/dist/unstable/eventlog/Event.js.map +1 -1
  858. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  859. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  860. package/dist/unstable/eventlog/EventJournal.d.ts +16 -16
  861. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  862. package/dist/unstable/eventlog/EventJournal.js +26 -18
  863. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  864. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  865. package/dist/unstable/eventlog/EventLog.js +3 -3
  866. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  867. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  868. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  869. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  870. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  871. package/dist/unstable/eventlog/EventLogMessage.js +2 -2
  872. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  873. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  874. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  875. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  876. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  877. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  878. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  879. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  880. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  881. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  882. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  883. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  884. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  885. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  886. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
  887. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  888. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  889. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  890. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  891. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  892. package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
  893. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  894. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  895. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  896. package/dist/unstable/eventlog/index.js.map +1 -1
  897. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  898. package/dist/unstable/http/Cookies.d.ts +2 -2
  899. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  900. package/dist/unstable/http/Cookies.js +30 -18
  901. package/dist/unstable/http/Cookies.js.map +1 -1
  902. package/dist/unstable/http/Etag.d.ts +1 -1
  903. package/dist/unstable/http/Etag.js +1 -1
  904. package/dist/unstable/http/Etag.js.map +1 -1
  905. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  906. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  907. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  908. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  909. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  910. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  911. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  912. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  913. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  914. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  915. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  916. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  917. package/dist/unstable/http/FindMyWay.js +4 -7
  918. package/dist/unstable/http/FindMyWay.js.map +1 -1
  919. package/dist/unstable/http/Headers.d.ts +2 -2
  920. package/dist/unstable/http/Headers.js +2 -2
  921. package/dist/unstable/http/Headers.js.map +1 -1
  922. package/dist/unstable/http/HttpBody.d.ts +5 -3
  923. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  924. package/dist/unstable/http/HttpBody.js +11 -5
  925. package/dist/unstable/http/HttpBody.js.map +1 -1
  926. package/dist/unstable/http/HttpClient.d.ts +51 -44
  927. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  928. package/dist/unstable/http/HttpClient.js +46 -17
  929. package/dist/unstable/http/HttpClient.js.map +1 -1
  930. package/dist/unstable/http/HttpClientError.js +1 -1
  931. package/dist/unstable/http/HttpClientError.js.map +1 -1
  932. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  933. package/dist/unstable/http/HttpClientRequest.js +2 -12
  934. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  935. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  936. package/dist/unstable/http/HttpClientResponse.js +3 -18
  937. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  938. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  939. package/dist/unstable/http/HttpEffect.js +3 -3
  940. package/dist/unstable/http/HttpEffect.js.map +1 -1
  941. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  942. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  943. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  944. package/dist/unstable/http/HttpMethod.js +6 -9
  945. package/dist/unstable/http/HttpMethod.js.map +1 -1
  946. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  947. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  948. package/dist/unstable/http/HttpMiddleware.js +164 -39
  949. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  950. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  951. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  952. package/dist/unstable/http/HttpPlatform.js +53 -3
  953. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  954. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  955. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  956. package/dist/unstable/http/HttpRouter.js +78 -79
  957. package/dist/unstable/http/HttpRouter.js.map +1 -1
  958. package/dist/unstable/http/HttpServer.d.ts +13 -13
  959. package/dist/unstable/http/HttpServer.js +6 -6
  960. package/dist/unstable/http/HttpServer.js.map +1 -1
  961. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  962. package/dist/unstable/http/HttpServerError.js +2 -2
  963. package/dist/unstable/http/HttpServerError.js.map +1 -1
  964. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  965. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  966. package/dist/unstable/http/HttpServerRequest.js +11 -10
  967. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  968. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  969. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  970. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  971. package/dist/unstable/http/HttpServerResponse.js +17 -5
  972. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  973. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  974. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  975. package/dist/unstable/http/HttpStaticServer.js +35 -7
  976. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  977. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  978. package/dist/unstable/http/Multipart.d.ts +7 -7
  979. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  980. package/dist/unstable/http/Multipart.js +14 -7
  981. package/dist/unstable/http/Multipart.js.map +1 -1
  982. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  983. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  984. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  985. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  986. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  987. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  988. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  989. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  990. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  991. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  992. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  993. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  994. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  995. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  996. package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
  997. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  998. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  999. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  1000. package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
  1001. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  1002. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  1003. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  1004. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  1005. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  1006. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  1007. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  1008. package/dist/unstable/http/MultipartParser.js +23 -0
  1009. package/dist/unstable/http/MultipartParser.js.map +1 -0
  1010. package/dist/unstable/http/Template.d.ts.map +1 -1
  1011. package/dist/unstable/http/Template.js +2 -2
  1012. package/dist/unstable/http/Template.js.map +1 -1
  1013. package/dist/unstable/http/Url.d.ts +33 -63
  1014. package/dist/unstable/http/Url.d.ts.map +1 -1
  1015. package/dist/unstable/http/Url.js +14 -28
  1016. package/dist/unstable/http/Url.js.map +1 -1
  1017. package/dist/unstable/http/UrlParams.d.ts +10 -18
  1018. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  1019. package/dist/unstable/http/UrlParams.js +9 -17
  1020. package/dist/unstable/http/UrlParams.js.map +1 -1
  1021. package/dist/unstable/http/index.d.ts +1 -1
  1022. package/dist/unstable/http/index.d.ts.map +1 -1
  1023. package/dist/unstable/http/index.js +1 -1
  1024. package/dist/unstable/http/index.js.map +1 -1
  1025. package/dist/unstable/http/internal/compression.d.ts +2 -0
  1026. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  1027. package/dist/unstable/http/internal/compression.js +155 -0
  1028. package/dist/unstable/http/internal/compression.js.map +1 -0
  1029. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  1030. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  1031. package/dist/unstable/http/internal/httpBody.js +10 -0
  1032. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  1033. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  1034. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  1035. package/dist/unstable/httpapi/HttpApi.js +5 -5
  1036. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  1037. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  1038. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  1039. package/dist/unstable/httpapi/HttpApiBuilder.js +78 -26
  1040. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  1041. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  1042. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  1043. package/dist/unstable/httpapi/HttpApiClient.js +76 -38
  1044. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  1045. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
  1046. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  1047. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  1048. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  1049. package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
  1050. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  1051. package/dist/unstable/httpapi/HttpApiError.js +30 -30
  1052. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  1053. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  1054. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  1055. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  1056. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  1057. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  1058. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  1059. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  1060. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  1061. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  1062. package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
  1063. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  1064. package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
  1065. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  1066. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  1067. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  1068. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  1069. package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
  1070. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  1071. package/dist/unstable/httpapi/OpenApi.js +58 -31
  1072. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  1073. package/dist/unstable/httpapi/index.js.map +1 -1
  1074. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  1075. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  1076. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  1077. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  1078. package/dist/unstable/observability/Otlp.js.map +1 -1
  1079. package/dist/unstable/observability/OtlpExporter.d.ts +13 -15
  1080. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  1081. package/dist/unstable/observability/OtlpExporter.js +19 -5
  1082. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  1083. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  1084. package/dist/unstable/observability/OtlpLogger.js +2 -2
  1085. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  1086. package/dist/unstable/observability/OtlpMetrics.d.ts +6 -3
  1087. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  1088. package/dist/unstable/observability/OtlpMetrics.js +28 -15
  1089. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  1090. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  1091. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  1092. package/dist/unstable/observability/OtlpResource.js +21 -12
  1093. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  1094. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  1095. package/dist/unstable/observability/OtlpTracer.js +1 -1
  1096. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  1097. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  1098. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  1099. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  1100. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  1101. package/dist/unstable/observability/index.js.map +1 -1
  1102. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  1103. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  1104. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  1105. package/dist/unstable/observability/internal/protobuf.js +3 -0
  1106. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  1107. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  1108. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  1109. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1110. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1111. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1112. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1113. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1114. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1115. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  1116. package/dist/unstable/persistence/PersistedQueue.js +15 -15
  1117. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1118. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1119. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1120. package/dist/unstable/persistence/Persistence.js +108 -22
  1121. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1122. package/dist/unstable/persistence/RateLimiter.d.ts +45 -24
  1123. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1124. package/dist/unstable/persistence/RateLimiter.js +29 -45
  1125. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1126. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1127. package/dist/unstable/persistence/Redis.js +2 -2
  1128. package/dist/unstable/persistence/Redis.js.map +1 -1
  1129. package/dist/unstable/persistence/index.js.map +1 -1
  1130. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1131. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1132. package/dist/unstable/process/ChildProcess.js +14 -5
  1133. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1134. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1135. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1136. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1137. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1138. package/dist/unstable/process/index.js.map +1 -1
  1139. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1140. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1141. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1142. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1143. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1144. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1145. package/dist/unstable/reactivity/Atom.js +14 -13
  1146. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1147. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1148. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1149. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1150. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1151. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1152. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1153. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1154. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1155. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1156. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1157. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1158. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1159. package/dist/unstable/reactivity/Hydration.js +1 -1
  1160. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1161. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1162. package/dist/unstable/reactivity/index.js.map +1 -1
  1163. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1164. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1165. package/dist/unstable/rpc/Rpc.js +4 -2
  1166. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1167. package/dist/unstable/rpc/RpcClient.d.ts +26 -12
  1168. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1169. package/dist/unstable/rpc/RpcClient.js +30 -20
  1170. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1171. package/dist/unstable/rpc/RpcClientError.js +2 -2
  1172. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1173. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1174. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1175. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1176. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1177. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1178. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1179. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1180. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1181. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1182. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1183. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1184. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1185. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1186. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1187. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1188. package/dist/unstable/rpc/RpcSerialization.js +177 -96
  1189. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1190. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1191. package/dist/unstable/rpc/RpcServer.js +17 -13
  1192. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1193. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1194. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1195. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1196. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1197. package/dist/unstable/rpc/Utils.js.map +1 -1
  1198. package/dist/unstable/rpc/index.js.map +1 -1
  1199. package/dist/unstable/schema/Model.d.ts +53 -51
  1200. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1201. package/dist/unstable/schema/Model.js +35 -33
  1202. package/dist/unstable/schema/Model.js.map +1 -1
  1203. package/dist/unstable/schema/VariantSchema.d.ts +10 -10
  1204. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  1205. package/dist/unstable/schema/VariantSchema.js +19 -11
  1206. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1207. package/dist/unstable/schema/index.js.map +1 -1
  1208. package/dist/unstable/socket/Socket.d.ts +11 -3
  1209. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1210. package/dist/unstable/socket/Socket.js +37 -16
  1211. package/dist/unstable/socket/Socket.js.map +1 -1
  1212. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1213. package/dist/unstable/socket/index.js.map +1 -1
  1214. package/dist/unstable/sql/Migrator.js.map +1 -1
  1215. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1216. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1217. package/dist/unstable/sql/SqlClient.js +8 -4
  1218. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1219. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1220. package/dist/unstable/sql/SqlError.js +13 -13
  1221. package/dist/unstable/sql/SqlError.js.map +1 -1
  1222. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1223. package/dist/unstable/sql/SqlModel.js +2 -2
  1224. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1225. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1226. package/dist/unstable/sql/SqlResolver.js +10 -8
  1227. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1228. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1229. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1230. package/dist/unstable/sql/Statement.d.ts +6 -6
  1231. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  1232. package/dist/unstable/sql/Statement.js +23 -21
  1233. package/dist/unstable/sql/Statement.js.map +1 -1
  1234. package/dist/unstable/sql/index.js.map +1 -1
  1235. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1236. package/dist/unstable/workers/Transferable.js +1 -1
  1237. package/dist/unstable/workers/Transferable.js.map +1 -1
  1238. package/dist/unstable/workers/Worker.d.ts +2 -2
  1239. package/dist/unstable/workers/Worker.js +2 -2
  1240. package/dist/unstable/workers/Worker.js.map +1 -1
  1241. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1242. package/dist/unstable/workers/WorkerError.js +11 -11
  1243. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1244. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1245. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1246. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1247. package/dist/unstable/workers/index.js.map +1 -1
  1248. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1249. package/dist/unstable/workflow/Activity.js +2 -2
  1250. package/dist/unstable/workflow/Activity.js.map +1 -1
  1251. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1252. package/dist/unstable/workflow/DurableClock.js +1 -1
  1253. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1254. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1255. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1256. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1257. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1258. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1259. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1260. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1261. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1262. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1263. package/dist/unstable/workflow/Workflow.js +13 -14
  1264. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1265. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -2
  1266. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  1267. package/dist/unstable/workflow/WorkflowEngine.js +3 -3
  1268. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1269. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1270. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1271. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1272. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1273. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1274. package/dist/unstable/workflow/index.js.map +1 -1
  1275. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1276. package/package.json +6 -13
  1277. package/src/Array.ts +982 -1045
  1278. package/src/BigDecimal.ts +433 -756
  1279. package/src/BigInt.ts +213 -269
  1280. package/src/Boolean.ts +146 -188
  1281. package/src/Cache.ts +410 -256
  1282. package/src/Cause.ts +167 -277
  1283. package/src/Channel.ts +892 -817
  1284. package/src/ChannelSchema.ts +1 -1
  1285. package/src/Chunk.ts +841 -1181
  1286. package/src/Clock.ts +181 -49
  1287. package/src/Combiner.ts +20 -33
  1288. package/src/Config.ts +636 -332
  1289. package/src/ConfigProvider.ts +218 -121
  1290. package/src/Console.ts +289 -39
  1291. package/src/Context.ts +322 -381
  1292. package/src/Cron.ts +68 -77
  1293. package/src/Crypto.ts +30 -23
  1294. package/src/Data.ts +60 -80
  1295. package/src/DateTime.ts +564 -660
  1296. package/src/Deferred.ts +253 -256
  1297. package/src/Duration.ts +232 -310
  1298. package/src/Effect.ts +3034 -3296
  1299. package/src/Encoding.ts +22 -40
  1300. package/src/Equal.ts +59 -41
  1301. package/src/Equivalence.ts +103 -105
  1302. package/src/ErrorReporter.ts +51 -27
  1303. package/src/ExecutionPlan.ts +91 -56
  1304. package/src/Exit.ts +116 -192
  1305. package/src/Fiber.ts +81 -148
  1306. package/src/FiberHandle.ts +152 -105
  1307. package/src/FiberMap.ts +225 -174
  1308. package/src/FiberSet.ts +125 -83
  1309. package/src/FileSystem.ts +156 -264
  1310. package/src/Filter.ts +61 -33
  1311. package/src/Formatter.ts +54 -56
  1312. package/src/Function.ts +82 -151
  1313. package/src/Graph.ts +416 -770
  1314. package/src/HKT.ts +12 -6
  1315. package/src/Hash.ts +52 -83
  1316. package/src/HashMap.ts +319 -411
  1317. package/src/HashRing.ts +1 -0
  1318. package/src/HashSet.ts +177 -284
  1319. package/src/Inspectable.ts +12 -12
  1320. package/src/Iterable.ts +631 -796
  1321. package/src/JsonPatch.ts +58 -112
  1322. package/src/JsonPointer.ts +8 -8
  1323. package/src/JsonSchema.ts +402 -244
  1324. package/src/Latch.ts +23 -35
  1325. package/src/Layer.ts +366 -265
  1326. package/src/LayerMap.ts +49 -29
  1327. package/src/LayerRef.ts +6 -2
  1328. package/src/LogLevel.ts +114 -214
  1329. package/src/Logger.ts +344 -697
  1330. package/src/ManagedRuntime.ts +7 -5
  1331. package/src/Match.ts +217 -252
  1332. package/src/Metric.ts +516 -1089
  1333. package/src/MutableHashMap.ts +218 -255
  1334. package/src/MutableHashSet.ts +84 -89
  1335. package/src/MutableList.ts +73 -370
  1336. package/src/MutableRef.ts +420 -243
  1337. package/src/Newtype.ts +21 -14
  1338. package/src/NonEmptyIterable.ts +7 -137
  1339. package/src/Number.ts +196 -233
  1340. package/src/Optic.ts +243 -383
  1341. package/src/Option.ts +447 -812
  1342. package/src/Order.ts +109 -109
  1343. package/src/Ordering.ts +20 -23
  1344. package/src/Path.ts +38 -41
  1345. package/src/Pipeable.ts +6 -5
  1346. package/src/PlatformError.ts +4 -4
  1347. package/src/Pool.ts +4 -2
  1348. package/src/Predicate.ts +200 -181
  1349. package/src/PrimaryKey.ts +7 -7
  1350. package/src/PubSub.ts +526 -552
  1351. package/src/Pull.ts +24 -18
  1352. package/src/Queue.ts +200 -159
  1353. package/src/Random.ts +49 -74
  1354. package/src/RcMap.ts +121 -63
  1355. package/src/RcRef.ts +24 -13
  1356. package/src/Record.ts +291 -488
  1357. package/src/Redactable.ts +10 -3
  1358. package/src/Redacted.ts +25 -25
  1359. package/src/Reducer.ts +8 -15
  1360. package/src/Ref.ts +221 -361
  1361. package/src/References.ts +102 -168
  1362. package/src/RegExp.ts +10 -14
  1363. package/src/Request.ts +31 -21
  1364. package/src/RequestResolver.ts +202 -91
  1365. package/src/Result.ts +312 -484
  1366. package/src/Runtime.ts +50 -75
  1367. package/src/Schedule.ts +311 -1737
  1368. package/src/Scheduler.ts +20 -7
  1369. package/src/Schema.ts +766 -786
  1370. package/src/SchemaAST.ts +522 -382
  1371. package/src/SchemaError.ts +7 -6
  1372. package/src/SchemaGetter.ts +242 -190
  1373. package/src/SchemaIssue.ts +89 -275
  1374. package/src/SchemaParser.ts +217 -124
  1375. package/src/SchemaRepresentation.ts +22 -40
  1376. package/src/SchemaTransformation.ts +129 -88
  1377. package/src/Scope.ts +123 -151
  1378. package/src/ScopedCache.ts +1 -1
  1379. package/src/ScopedRef.ts +4 -4
  1380. package/src/Semaphore.ts +152 -51
  1381. package/src/Sink.ts +129 -114
  1382. package/src/Stdio.ts +1 -1
  1383. package/src/Stream.ts +2679 -3133
  1384. package/src/String.ts +275 -312
  1385. package/src/Struct.ts +109 -114
  1386. package/src/SubscriptionRef.ts +284 -252
  1387. package/src/Symbol.ts +3 -3
  1388. package/src/SynchronizedRef.ts +1 -1
  1389. package/src/Terminal.ts +3 -3
  1390. package/src/Tracer.ts +102 -55
  1391. package/src/Trie.ts +287 -679
  1392. package/src/Tuple.ts +99 -131
  1393. package/src/TxChunk.ts +201 -121
  1394. package/src/TxDeferred.ts +62 -46
  1395. package/src/TxHashMap.ts +645 -799
  1396. package/src/TxHashSet.ts +443 -356
  1397. package/src/TxPriorityQueue.ts +130 -98
  1398. package/src/TxPubSub.ts +107 -80
  1399. package/src/TxQueue.ts +214 -183
  1400. package/src/TxReentrantLock.ts +136 -101
  1401. package/src/TxRef.ts +51 -32
  1402. package/src/TxSemaphore.ts +129 -95
  1403. package/src/TxSubscriptionRef.ts +97 -70
  1404. package/src/Types.ts +126 -67
  1405. package/src/Unify.ts +45 -65
  1406. package/src/Utils.ts +23 -16
  1407. package/src/internal/core.ts +2 -2
  1408. package/src/internal/dateTime.ts +7 -1
  1409. package/src/internal/effect.ts +93 -48
  1410. package/src/internal/executionPlan.ts +105 -10
  1411. package/src/internal/hashMap.ts +20 -14
  1412. package/src/internal/matcher.ts +2 -2
  1413. package/src/internal/persistence.ts +2 -0
  1414. package/src/internal/references.ts +3 -2
  1415. package/src/internal/schedule.ts +4 -4
  1416. package/src/internal/schema/annotations.ts +3 -0
  1417. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1418. package/src/internal/schema/fromRepresentation.ts +10 -16
  1419. package/src/internal/schema/parser.ts +22 -0
  1420. package/src/internal/schema/toArbitrary.ts +3 -1
  1421. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1422. package/src/internal/schema/toRepresentation.ts +104 -119
  1423. package/src/internal/trie.ts +21 -12
  1424. package/src/testing/FastCheck.ts +8 -7
  1425. package/src/testing/TestClock.ts +85 -31
  1426. package/src/testing/TestConsole.ts +32 -31
  1427. package/src/testing/TestSchema.ts +30 -30
  1428. package/src/unstable/ai/AiError.ts +114 -137
  1429. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1430. package/src/unstable/ai/Chat.ts +133 -98
  1431. package/src/unstable/ai/IdGenerator.ts +32 -28
  1432. package/src/unstable/ai/LanguageModel.ts +111 -69
  1433. package/src/unstable/ai/McpProtocol.ts +48 -0
  1434. package/src/unstable/ai/McpSchema.ts +77 -66
  1435. package/src/unstable/ai/McpServer.ts +931 -305
  1436. package/src/unstable/ai/Model.ts +9 -20
  1437. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1438. package/src/unstable/ai/Prompt.ts +166 -49
  1439. package/src/unstable/ai/Response.ts +28 -14
  1440. package/src/unstable/ai/Telemetry.ts +46 -13
  1441. package/src/unstable/ai/Tokenizer.ts +14 -3
  1442. package/src/unstable/ai/Tool.ts +59 -44
  1443. package/src/unstable/ai/Toolkit.ts +26 -8
  1444. package/src/unstable/ai/index.ts +5 -0
  1445. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1446. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1447. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1448. package/src/unstable/cli/Argument.ts +273 -69
  1449. package/src/unstable/cli/CliError.ts +79 -86
  1450. package/src/unstable/cli/CliOutput.ts +44 -58
  1451. package/src/unstable/cli/Command.ts +716 -116
  1452. package/src/unstable/cli/Flag.ts +418 -138
  1453. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1454. package/src/unstable/cli/HelpDoc.ts +12 -4
  1455. package/src/unstable/cli/Param.ts +333 -97
  1456. package/src/unstable/cli/Primitive.ts +381 -154
  1457. package/src/unstable/cli/Prompt.ts +64 -34
  1458. package/src/unstable/cli/internal/ansi.ts +2 -2
  1459. package/src/unstable/cli/internal/command.ts +15 -10
  1460. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  1461. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  1462. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  1463. package/src/unstable/cli/internal/help.ts +4 -2
  1464. package/src/unstable/cli/internal/lexer.ts +8 -2
  1465. package/src/unstable/cli/internal/parser.ts +5 -5
  1466. package/src/unstable/cli/internal/wizard.ts +2 -2
  1467. package/src/unstable/cluster/ClusterError.ts +7 -7
  1468. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1469. package/src/unstable/cluster/ClusterWorkflowEngine.ts +9 -2
  1470. package/src/unstable/cluster/Entity.ts +15 -16
  1471. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1472. package/src/unstable/cluster/EntityResource.ts +2 -2
  1473. package/src/unstable/cluster/Envelope.ts +3 -3
  1474. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1475. package/src/unstable/cluster/Message.ts +9 -9
  1476. package/src/unstable/cluster/MessageStorage.ts +24 -20
  1477. package/src/unstable/cluster/Reply.ts +25 -6
  1478. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1479. package/src/unstable/cluster/RunnerServer.ts +35 -8
  1480. package/src/unstable/cluster/RunnerStorage.ts +11 -9
  1481. package/src/unstable/cluster/Runners.ts +23 -12
  1482. package/src/unstable/cluster/Sharding.ts +42 -15
  1483. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1484. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1485. package/src/unstable/cluster/Snowflake.ts +8 -8
  1486. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1487. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1488. package/src/unstable/cluster/internal/entityManager.ts +12 -16
  1489. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  1490. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  1491. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  1492. package/src/unstable/encoding/Ini.ts +174 -0
  1493. package/src/unstable/encoding/Msgpack.ts +53 -36
  1494. package/src/unstable/encoding/Ndjson.ts +9 -1
  1495. package/src/unstable/encoding/Sse.ts +109 -37
  1496. package/src/unstable/encoding/Toml.ts +504 -0
  1497. package/src/unstable/encoding/Yaml.ts +541 -0
  1498. package/src/unstable/encoding/index.ts +15 -0
  1499. package/src/unstable/eventlog/Event.ts +20 -20
  1500. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1501. package/src/unstable/eventlog/EventJournal.ts +29 -21
  1502. package/src/unstable/eventlog/EventLog.ts +3 -3
  1503. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1504. package/src/unstable/eventlog/EventLogMessage.ts +3 -3
  1505. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1506. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1507. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1508. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
  1509. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1510. package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
  1511. package/src/unstable/http/Cookies.ts +35 -21
  1512. package/src/unstable/http/Etag.ts +1 -1
  1513. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1514. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  1515. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  1516. package/src/unstable/http/FindMyWay.ts +65 -6
  1517. package/src/unstable/http/Headers.ts +2 -2
  1518. package/src/unstable/http/HttpBody.ts +20 -5
  1519. package/src/unstable/http/HttpClient.ts +83 -55
  1520. package/src/unstable/http/HttpClientError.ts +1 -1
  1521. package/src/unstable/http/HttpClientRequest.ts +2 -12
  1522. package/src/unstable/http/HttpClientResponse.ts +5 -21
  1523. package/src/unstable/http/HttpEffect.ts +8 -8
  1524. package/src/unstable/http/HttpMethod.ts +6 -9
  1525. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1526. package/src/unstable/http/HttpPlatform.ts +129 -6
  1527. package/src/unstable/http/HttpRouter.ts +102 -98
  1528. package/src/unstable/http/HttpServer.ts +13 -13
  1529. package/src/unstable/http/HttpServerError.ts +2 -2
  1530. package/src/unstable/http/HttpServerRequest.ts +18 -10
  1531. package/src/unstable/http/HttpServerResponse.ts +38 -6
  1532. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1533. package/src/unstable/http/Multipart.ts +15 -8
  1534. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  1535. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  1536. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  1537. package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
  1538. package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
  1539. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  1540. package/src/unstable/http/MultipartParser.ts +115 -0
  1541. package/src/unstable/http/Template.ts +6 -5
  1542. package/src/unstable/http/Url.ts +33 -63
  1543. package/src/unstable/http/UrlParams.ts +10 -18
  1544. package/src/unstable/http/index.ts +1 -1
  1545. package/src/unstable/http/internal/compression.ts +196 -0
  1546. package/src/unstable/http/internal/httpBody.ts +15 -0
  1547. package/src/unstable/httpapi/HttpApi.ts +6 -7
  1548. package/src/unstable/httpapi/HttpApiBuilder.ts +129 -30
  1549. package/src/unstable/httpapi/HttpApiClient.ts +117 -54
  1550. package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
  1551. package/src/unstable/httpapi/HttpApiError.ts +46 -52
  1552. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1553. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1554. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1555. package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
  1556. package/src/unstable/httpapi/OpenApi.ts +83 -33
  1557. package/src/unstable/observability/OtlpExporter.ts +35 -21
  1558. package/src/unstable/observability/OtlpLogger.ts +3 -1
  1559. package/src/unstable/observability/OtlpMetrics.ts +36 -19
  1560. package/src/unstable/observability/OtlpResource.ts +26 -17
  1561. package/src/unstable/observability/OtlpTracer.ts +1 -1
  1562. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1563. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1564. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1565. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1566. package/src/unstable/persistence/Persistable.ts +8 -8
  1567. package/src/unstable/persistence/PersistedQueue.ts +18 -15
  1568. package/src/unstable/persistence/Persistence.ts +153 -26
  1569. package/src/unstable/persistence/RateLimiter.ts +77 -43
  1570. package/src/unstable/persistence/Redis.ts +3 -3
  1571. package/src/unstable/process/ChildProcess.ts +64 -21
  1572. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1573. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1574. package/src/unstable/reactivity/Atom.ts +28 -25
  1575. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1576. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1577. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1578. package/src/unstable/reactivity/Hydration.ts +1 -1
  1579. package/src/unstable/rpc/Rpc.ts +35 -33
  1580. package/src/unstable/rpc/RpcClient.ts +54 -27
  1581. package/src/unstable/rpc/RpcClientError.ts +2 -2
  1582. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1583. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1584. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1585. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1586. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1587. package/src/unstable/rpc/RpcServer.ts +18 -15
  1588. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1589. package/src/unstable/schema/Model.ts +52 -50
  1590. package/src/unstable/schema/VariantSchema.ts +41 -23
  1591. package/src/unstable/socket/Socket.ts +41 -18
  1592. package/src/unstable/sql/SqlClient.ts +64 -56
  1593. package/src/unstable/sql/SqlError.ts +13 -13
  1594. package/src/unstable/sql/SqlModel.ts +2 -2
  1595. package/src/unstable/sql/SqlResolver.ts +13 -11
  1596. package/src/unstable/sql/Statement.ts +37 -31
  1597. package/src/unstable/workers/Transferable.ts +1 -1
  1598. package/src/unstable/workers/Worker.ts +2 -2
  1599. package/src/unstable/workers/WorkerError.ts +12 -12
  1600. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1601. package/src/unstable/workflow/Activity.ts +2 -2
  1602. package/src/unstable/workflow/DurableClock.ts +1 -1
  1603. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1604. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1605. package/src/unstable/workflow/Workflow.ts +23 -23
  1606. package/src/unstable/workflow/WorkflowEngine.ts +9 -4
  1607. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1608. package/dist/internal/version.d.ts +0 -3
  1609. package/dist/internal/version.d.ts.map +0 -1
  1610. package/dist/internal/version.js +0 -2
  1611. package/dist/internal/version.js.map +0 -1
  1612. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  1613. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  1614. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  1615. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  1616. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  1617. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  1618. package/dist/unstable/http/Multipasta/Node.js +0 -14
  1619. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  1620. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  1621. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  1622. package/dist/unstable/http/Multipasta/Search.js +0 -14
  1623. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  1624. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  1625. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  1626. package/dist/unstable/http/Multipasta/Web.js +0 -14
  1627. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  1628. package/dist/unstable/http/Multipasta.d.ts +0 -15
  1629. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  1630. package/dist/unstable/http/Multipasta.js +0 -15
  1631. package/dist/unstable/http/Multipasta.js.map +0 -1
  1632. package/src/internal/version.ts +0 -2
  1633. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  1634. package/src/unstable/http/Multipasta/Node.ts +0 -14
  1635. package/src/unstable/http/Multipasta/Search.ts +0 -14
  1636. package/src/unstable/http/Multipasta/Web.ts +0 -14
  1637. package/src/unstable/http/Multipasta.ts +0 -15
package/src/Config.ts CHANGED
@@ -17,6 +17,7 @@ import * as LogLevel_ from "./LogLevel.ts"
17
17
  import * as Option from "./Option.ts"
18
18
  import * as Predicate from "./Predicate.ts"
19
19
  import * as Rec from "./Record.ts"
20
+ import * as Result from "./Result.ts"
20
21
  import * as Schema from "./Schema.ts"
21
22
  import * as SchemaAST from "./SchemaAST.ts"
22
23
  import * as SchemaGetter from "./SchemaGetter.ts"
@@ -36,11 +37,11 @@ const TypeId = "~effect/Config"
36
37
  *
37
38
  * **Example** (Checking Config values)
38
39
  *
39
- * ```ts
40
+ * ```ts import.meta.vitest
40
41
  * import { Config } from "effect"
41
42
  *
42
- * console.log(Config.isConfig(Config.string("HOST"))) // true
43
- * console.log(Config.isConfig("not a config")) // false
43
+ * Config.isConfig(Config.string("HOST")) // => true
44
+ * Config.isConfig("not a config") // => false
44
45
  * ```
45
46
  *
46
47
  * @category guards
@@ -63,7 +64,7 @@ export const isConfig = (u: unknown): u is Config<unknown> => Predicate.hasPrope
63
64
  * (wrong type, out of range, missing key, etc.).
64
65
  *
65
66
  * @see {@link orElse} – recover from a ConfigError
66
- * @see {@link withDefault} – provide a fallback for missing-data errors
67
+ * @see {@link withDefault} – provide a fallback when relevant input is absent
67
68
  *
68
69
  * @category errors
69
70
  * @since 4.0.0
@@ -94,9 +95,7 @@ export class ConfigError {
94
95
  * **Details**
95
96
  *
96
97
  * Key members:
97
- * - `parse(provider, pathPrefix?)` – runs the config against a specific provider.
98
- * The optional path prefix is the logical scope accumulated from outer
99
- * `Config.nested` calls.
98
+ * - `parse(provider)` – runs the config against a specific provider.
100
99
  * - Yieldable – can be yielded inside `Effect.gen`, which automatically
101
100
  * resolves the current `ConfigProvider` from the context.
102
101
  * - Pipeable – supports `.pipe(Config.map(...))` etc.
@@ -108,10 +107,39 @@ export class ConfigError {
108
107
  */
109
108
  export interface Config<out T> extends Effect.Effect<T, ConfigError> {
110
109
  readonly [TypeId]: typeof TypeId
111
- readonly parse: (
112
- provider: ConfigProvider.ConfigProvider,
113
- pathPrefix?: Path
114
- ) => Effect.Effect<T, ConfigError>
110
+ readonly parse: (provider: ConfigProvider.ConfigProvider) => Effect.Effect<T, ConfigError>
111
+ }
112
+
113
+ // Config composition needs to distinguish an absent recipe from a hard failure
114
+ // before the public Effect error channel is finalized. `hasInput` records
115
+ // provider evidence separately from the value, because successful values such
116
+ // as `undefined` and values supplied by defaults are not evidence of input.
117
+ // Hard failures carry the same evidence so recovery cannot erase it.
118
+ interface Resolved<out T> {
119
+ readonly _tag: "Resolved"
120
+ readonly value: T
121
+ readonly hasInput: boolean
122
+ }
123
+
124
+ interface Absent {
125
+ readonly _tag: "Absent"
126
+ readonly error: ConfigError
127
+ }
128
+
129
+ type Resolution<T> = Resolved<T> | Absent
130
+
131
+ interface EvaluationFailure {
132
+ readonly error: ConfigError
133
+ readonly hasInput: boolean
134
+ }
135
+
136
+ type Evaluator<T> = (
137
+ provider: ConfigProvider.ConfigProvider,
138
+ pathPrefix: Path
139
+ ) => Effect.Effect<Resolution<T>, EvaluationFailure>
140
+
141
+ interface ConfigImpl<out T> extends Config<T> {
142
+ readonly evaluator: Evaluator<T>
115
143
  }
116
144
 
117
145
  const Proto = {
@@ -130,13 +158,69 @@ const Proto = {
130
158
  }
131
159
 
132
160
  function make<T>(
133
- parse: (provider: ConfigProvider.ConfigProvider, pathPrefix: Path) => Effect.Effect<T, ConfigError>
161
+ evaluator: Evaluator<T>
134
162
  ): Config<T> {
135
163
  const self = Object.create(Proto)
136
- self.parse = (provider: ConfigProvider.ConfigProvider, pathPrefix: Path = []) => parse(provider, pathPrefix)
164
+ self.evaluator = evaluator
165
+ self.parse = (provider: ConfigProvider.ConfigProvider) =>
166
+ evaluator(provider, []).pipe(
167
+ Effect.mapErrorEager((failure) => failure.error),
168
+ Effect.flatMapEager((resolution) =>
169
+ resolution._tag === "Resolved" ? Effect.succeed(resolution.value) : Effect.fail(resolution.error)
170
+ )
171
+ )
137
172
  return self
138
173
  }
139
174
 
175
+ const evaluateAt = <T>(
176
+ self: Config<T>,
177
+ provider: ConfigProvider.ConfigProvider,
178
+ pathPrefix: Path
179
+ ): Effect.Effect<Resolution<T>, EvaluationFailure> => (self as ConfigImpl<T>).evaluator(provider, pathPrefix)
180
+
181
+ const resolved = <T>(value: T, hasInput: boolean): Resolution<T> => ({
182
+ _tag: "Resolved",
183
+ value,
184
+ hasInput
185
+ })
186
+
187
+ const absent = (error: ConfigError): Absent => ({
188
+ _tag: "Absent",
189
+ error
190
+ })
191
+
192
+ const evaluationFailure = (error: ConfigError, hasInput: boolean): EvaluationFailure => ({
193
+ error,
194
+ hasInput
195
+ })
196
+
197
+ const catchSourceError = <A, E, R>(
198
+ self: Effect.Effect<A, E, R>,
199
+ hasInput: boolean
200
+ ): Effect.Effect<A, E | EvaluationFailure, R> =>
201
+ self.pipe(
202
+ Effect.catchDefect((defect) =>
203
+ defect instanceof ConfigProvider.SourceError
204
+ ? Effect.fail(evaluationFailure(new ConfigError(defect), hasInput))
205
+ : Effect.die(defect)
206
+ )
207
+ )
208
+
209
+ const preserveInputEvidence = <T>(
210
+ self: Effect.Effect<Resolution<T>, EvaluationFailure>,
211
+ hasInput: boolean
212
+ ): Effect.Effect<Resolution<T>, EvaluationFailure> => {
213
+ if (!hasInput) return self
214
+ return self.pipe(
215
+ Effect.mapErrorEager((failure) => evaluationFailure(failure.error, true)),
216
+ Effect.flatMapEager((resolution) =>
217
+ resolution._tag === "Resolved"
218
+ ? Effect.succeed(resolved(resolution.value, true))
219
+ : Effect.fail(evaluationFailure(resolution.error, true))
220
+ )
221
+ )
222
+ }
223
+
140
224
  /**
141
225
  * Transforms the parsed value of a config with a pure function.
142
226
  *
@@ -147,7 +231,7 @@ function make<T>(
147
231
  *
148
232
  * **Example** (Uppercasing a string config)
149
233
  *
150
- * ```ts
234
+ * ```ts import.meta.vitest
151
235
  * import { Config, ConfigProvider, Effect } from "effect"
152
236
  *
153
237
  * const upper = Config.string("name").pipe(
@@ -155,7 +239,7 @@ function make<T>(
155
239
  * )
156
240
  *
157
241
  * const provider = ConfigProvider.fromUnknown({ name: "alice" })
158
- * // Effect.runSync(upper.parse(provider)) // "ALICE"
242
+ * Effect.runSync(upper.parse(provider)) // => "ALICE"
159
243
  * ```
160
244
  *
161
245
  * @see {@link mapOrFail} – when the transformation can fail
@@ -174,7 +258,7 @@ export const map: {
174
258
  *
175
259
  * **Example** (Uppercasing a string config)
176
260
  *
177
- * ```ts
261
+ * ```ts import.meta.vitest
178
262
  * import { Config, ConfigProvider, Effect } from "effect"
179
263
  *
180
264
  * const upper = Config.string("name").pipe(
@@ -182,7 +266,7 @@ export const map: {
182
266
  * )
183
267
  *
184
268
  * const provider = ConfigProvider.fromUnknown({ name: "alice" })
185
- * // Effect.runSync(upper.parse(provider)) // "ALICE"
269
+ * Effect.runSync(upper.parse(provider)) // => "ALICE"
186
270
  * ```
187
271
  *
188
272
  * @see {@link mapOrFail} – when the transformation can fail
@@ -201,7 +285,7 @@ export const map: {
201
285
  *
202
286
  * **Example** (Uppercasing a string config)
203
287
  *
204
- * ```ts
288
+ * ```ts import.meta.vitest
205
289
  * import { Config, ConfigProvider, Effect } from "effect"
206
290
  *
207
291
  * const upper = Config.string("name").pipe(
@@ -209,7 +293,7 @@ export const map: {
209
293
  * )
210
294
  *
211
295
  * const provider = ConfigProvider.fromUnknown({ name: "alice" })
212
- * // Effect.runSync(upper.parse(provider)) // "ALICE"
296
+ * Effect.runSync(upper.parse(provider)) // => "ALICE"
213
297
  * ```
214
298
  *
215
299
  * @see {@link mapOrFail} – when the transformation can fail
@@ -219,7 +303,12 @@ export const map: {
219
303
  */
220
304
  <A, B>(self: Config<A>, f: (a: A) => B): Config<B>
221
305
  } = dual(2, <A, B>(self: Config<A>, f: (a: A) => B): Config<B> => {
222
- return make((provider, pathPrefix) => Effect.map(self.parse(provider, pathPrefix), f))
306
+ return make((provider, pathPrefix) =>
307
+ Effect.map(evaluateAt(self, provider, pathPrefix), (resolution) =>
308
+ resolution._tag === "Resolved"
309
+ ? resolved(f(resolution.value), resolution.hasInput)
310
+ : resolution)
311
+ )
223
312
  })
224
313
 
225
314
  /**
@@ -232,12 +321,14 @@ export const map: {
232
321
  *
233
322
  * **Example** (Wrapping a value in an effectful transformation)
234
323
  *
235
- * ```ts
236
- * import { Config, Effect } from "effect"
324
+ * ```ts import.meta.vitest
325
+ * import { Config, ConfigProvider, Effect } from "effect"
237
326
  *
238
327
  * const trimmed = Config.string("name").pipe(
239
328
  * Config.mapOrFail((s) => Effect.succeed(s.trim()))
240
329
  * )
330
+ * const provider = ConfigProvider.fromUnknown({ name: " Alice " })
331
+ * Effect.runSync(trimmed.parse(provider)) // => "Alice"
241
332
  * ```
242
333
  *
243
334
  * @see {@link map} – when the transformation cannot fail
@@ -256,12 +347,14 @@ export const mapOrFail: {
256
347
  *
257
348
  * **Example** (Wrapping a value in an effectful transformation)
258
349
  *
259
- * ```ts
260
- * import { Config, Effect } from "effect"
350
+ * ```ts import.meta.vitest
351
+ * import { Config, ConfigProvider, Effect } from "effect"
261
352
  *
262
353
  * const trimmed = Config.string("name").pipe(
263
354
  * Config.mapOrFail((s) => Effect.succeed(s.trim()))
264
355
  * )
356
+ * const provider = ConfigProvider.fromUnknown({ name: " Alice " })
357
+ * Effect.runSync(trimmed.parse(provider)) // => "Alice"
265
358
  * ```
266
359
  *
267
360
  * @see {@link map} – when the transformation cannot fail
@@ -280,12 +373,14 @@ export const mapOrFail: {
280
373
  *
281
374
  * **Example** (Wrapping a value in an effectful transformation)
282
375
  *
283
- * ```ts
284
- * import { Config, Effect } from "effect"
376
+ * ```ts import.meta.vitest
377
+ * import { Config, ConfigProvider, Effect } from "effect"
285
378
  *
286
379
  * const trimmed = Config.string("name").pipe(
287
380
  * Config.mapOrFail((s) => Effect.succeed(s.trim()))
288
381
  * )
382
+ * const provider = ConfigProvider.fromUnknown({ name: " Alice " })
383
+ * Effect.runSync(trimmed.parse(provider)) // => "Alice"
289
384
  * ```
290
385
  *
291
386
  * @see {@link map} – when the transformation cannot fail
@@ -295,7 +390,15 @@ export const mapOrFail: {
295
390
  */
296
391
  <A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B>
297
392
  } = dual(2, <A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B> => {
298
- return make((provider, pathPrefix) => Effect.flatMap(self.parse(provider, pathPrefix), f))
393
+ return make((provider, pathPrefix) =>
394
+ Effect.flatMap(evaluateAt(self, provider, pathPrefix), (resolution) =>
395
+ resolution._tag === "Resolved"
396
+ ? f(resolution.value).pipe(
397
+ Effect.mapEager((value) => resolved(value, resolution.hasInput)),
398
+ Effect.mapErrorEager((error) => evaluationFailure(error, resolution.hasInput))
399
+ )
400
+ : Effect.succeed(resolution))
401
+ )
299
402
  })
300
403
 
301
404
  /**
@@ -308,21 +411,30 @@ export const mapOrFail: {
308
411
  *
309
412
  * **Details**
310
413
  *
311
- * Unlike {@link withDefault}, this catches **all** `ConfigError`s (not just
312
- * missing data). The fallback function receives the error and returns a new
414
+ * Unlike {@link withDefault}, this handles both semantic absence and **all**
415
+ * `ConfigError`s. The fallback function receives the error and returns a new
313
416
  * `Config`.
314
417
  *
418
+ * **Gotchas**
419
+ *
420
+ * Recovery preserves whether the primary config read provider input. When the
421
+ * recovered config is composed with {@link all}, invalid input in the primary
422
+ * branch still makes the enclosing group partially supplied, so an outer
423
+ * {@link withDefault} or {@link option} does not replace the whole group.
424
+ *
315
425
  * **Example** (Falling back to a literal)
316
426
  *
317
- * ```ts
318
- * import { Config } from "effect"
427
+ * ```ts import.meta.vitest
428
+ * import { Config, ConfigProvider, Effect } from "effect"
319
429
  *
320
430
  * const hostConfig = Config.string("HOST").pipe(
321
431
  * Config.orElse(() => Config.succeed("localhost"))
322
432
  * )
433
+ * const provider = ConfigProvider.fromUnknown({})
434
+ * Effect.runSync(hostConfig.parse(provider)) // => "localhost"
323
435
  * ```
324
436
  *
325
- * @see {@link withDefault} – fallback only on missing data
437
+ * @see {@link withDefault} – fallback only on semantic absence
326
438
  *
327
439
  * @category combinators
328
440
  * @since 2.0.0
@@ -338,21 +450,30 @@ export const orElse: {
338
450
  *
339
451
  * **Details**
340
452
  *
341
- * Unlike {@link withDefault}, this catches **all** `ConfigError`s (not just
342
- * missing data). The fallback function receives the error and returns a new
453
+ * Unlike {@link withDefault}, this handles both semantic absence and **all**
454
+ * `ConfigError`s. The fallback function receives the error and returns a new
343
455
  * `Config`.
344
456
  *
457
+ * **Gotchas**
458
+ *
459
+ * Recovery preserves whether the primary config read provider input. When the
460
+ * recovered config is composed with {@link all}, invalid input in the primary
461
+ * branch still makes the enclosing group partially supplied, so an outer
462
+ * {@link withDefault} or {@link option} does not replace the whole group.
463
+ *
345
464
  * **Example** (Falling back to a literal)
346
465
  *
347
- * ```ts
348
- * import { Config } from "effect"
466
+ * ```ts import.meta.vitest
467
+ * import { Config, ConfigProvider, Effect } from "effect"
349
468
  *
350
469
  * const hostConfig = Config.string("HOST").pipe(
351
470
  * Config.orElse(() => Config.succeed("localhost"))
352
471
  * )
472
+ * const provider = ConfigProvider.fromUnknown({})
473
+ * Effect.runSync(hostConfig.parse(provider)) // => "localhost"
353
474
  * ```
354
475
  *
355
- * @see {@link withDefault} – fallback only on missing data
476
+ * @see {@link withDefault} – fallback only on semantic absence
356
477
  *
357
478
  * @category combinators
358
479
  * @since 2.0.0
@@ -368,30 +489,87 @@ export const orElse: {
368
489
  *
369
490
  * **Details**
370
491
  *
371
- * Unlike {@link withDefault}, this catches **all** `ConfigError`s (not just
372
- * missing data). The fallback function receives the error and returns a new
492
+ * Unlike {@link withDefault}, this handles both semantic absence and **all**
493
+ * `ConfigError`s. The fallback function receives the error and returns a new
373
494
  * `Config`.
374
495
  *
496
+ * **Gotchas**
497
+ *
498
+ * Recovery preserves whether the primary config read provider input. When the
499
+ * recovered config is composed with {@link all}, invalid input in the primary
500
+ * branch still makes the enclosing group partially supplied, so an outer
501
+ * {@link withDefault} or {@link option} does not replace the whole group.
502
+ *
375
503
  * **Example** (Falling back to a literal)
376
504
  *
377
- * ```ts
378
- * import { Config } from "effect"
505
+ * ```ts import.meta.vitest
506
+ * import { Config, ConfigProvider, Effect } from "effect"
379
507
  *
380
508
  * const hostConfig = Config.string("HOST").pipe(
381
509
  * Config.orElse(() => Config.succeed("localhost"))
382
510
  * )
511
+ * const provider = ConfigProvider.fromUnknown({})
512
+ * Effect.runSync(hostConfig.parse(provider)) // => "localhost"
383
513
  * ```
384
514
  *
385
- * @see {@link withDefault} – fallback only on missing data
515
+ * @see {@link withDefault} – fallback only on semantic absence
386
516
  *
387
517
  * @category combinators
388
518
  * @since 2.0.0
389
519
  */
390
520
  <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2>
391
521
  } = dual(2, <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2> => {
392
- return make((provider, pathPrefix) =>
393
- Effect.catch(self.parse(provider, pathPrefix), (error) => that(error).parse(provider, pathPrefix))
394
- )
522
+ return make</**
523
+ * Provides a fallback config when parsing fails with a `ConfigError`.
524
+ *
525
+ * **When to use**
526
+ *
527
+ * Use when you need to try an alternative config source after the primary one
528
+ * fails.
529
+ *
530
+ * **Details**
531
+ *
532
+ * Unlike {@link withDefault}, this handles both semantic absence and **all**
533
+ * `ConfigError`s. The fallback function receives the error and returns a new
534
+ * `Config`.
535
+ *
536
+ * **Gotchas**
537
+ *
538
+ * Recovery preserves whether the primary config read provider input. When the
539
+ * recovered config is composed with {@link all}, invalid input in the primary
540
+ * branch still makes the enclosing group partially supplied, so an outer
541
+ * {@link withDefault} or {@link option} does not replace the whole group.
542
+ *
543
+ * **Example** (Falling back to a literal)
544
+ *
545
+ * ```ts import.meta.vitest
546
+ * import { Config, ConfigProvider, Effect } from "effect"
547
+ *
548
+ * const hostConfig = Config.string("HOST").pipe(
549
+ * Config.orElse(() => Config.succeed("localhost"))
550
+ * )
551
+ * const provider = ConfigProvider.fromUnknown({})
552
+ * Effect.runSync(hostConfig.parse(provider)) // => "localhost"
553
+ * ```
554
+ *
555
+ * @see {@link withDefault} – fallback only on semantic absence
556
+ *
557
+ * @category combinators
558
+ * @since 2.0.0
559
+ */
560
+ A | A2>((provider, pathPrefix) =>
561
+ Effect.matchEffect(evaluateAt(self, provider, pathPrefix), {
562
+ onFailure: (failure) =>
563
+ preserveInputEvidence(
564
+ evaluateAt(that(failure.error), provider, pathPrefix),
565
+ failure.hasInput
566
+ ),
567
+ onSuccess: (resolution): Effect.Effect<Resolution<A | A2>, EvaluationFailure> =>
568
+ resolution._tag === "Absent"
569
+ ? evaluateAt(that(resolution.error), provider, pathPrefix)
570
+ : Effect.succeed(resolution)
571
+ })
572
+ );
395
573
  })
396
574
 
397
575
  /**
@@ -406,9 +584,19 @@ export const orElse: {
406
584
  * Accepts a tuple (preserves positions), an iterable, or a record of configs.
407
585
  * Returns a config whose parsed value mirrors the input shape.
408
586
  *
587
+ * A combined config is absent when at least one child cannot resolve and none
588
+ * of the other children read provider input. This lets {@link withDefault} and
589
+ * {@link option} handle a wholly absent group. Once any child reads input, a
590
+ * missing sibling makes the group incomplete and parsing fails. Values supplied
591
+ * by child defaults do not count as provider input.
592
+ *
593
+ * Unlike a `Schema.Struct` passed to {@link schema}, `all` only considers input
594
+ * read by its children. An explicitly present but empty parent container does
595
+ * not by itself make the group present.
596
+ *
409
597
  * **Example** (Combining configs as a struct)
410
598
  *
411
- * ```ts
599
+ * ```ts import.meta.vitest
412
600
  * import { Config, ConfigProvider, Effect } from "effect"
413
601
  *
414
602
  * const dbConfig = Config.all({
@@ -417,8 +605,7 @@ export const orElse: {
417
605
  * })
418
606
  *
419
607
  * const provider = ConfigProvider.fromUnknown({ host: "localhost", port: 5432 })
420
- * // Effect.runSync(dbConfig.parse(provider))
421
- * // { host: "localhost", port: 5432 }
608
+ * Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
422
609
  * ```
423
610
  *
424
611
  * @category combinators
@@ -443,46 +630,85 @@ export function all<const Arg extends Iterable<Config<any>> | Record<string, Con
443
630
  : arg
444
631
  if (Array.isArray(configs)) {
445
632
  return make((provider, pathPrefix) =>
446
- Effect.all(configs.map((config) => config.parse(provider, pathPrefix)))
633
+ Effect.flatMapEager(
634
+ Effect.all(configs.map((config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
635
+ resolveArray
636
+ )
447
637
  ) as any
448
638
  } else {
449
639
  return make((provider, pathPrefix) =>
450
- Effect.all(Rec.map(configs, (config) => config.parse(provider, pathPrefix)))
640
+ Effect.flatMapEager(
641
+ Effect.all(Rec.map(configs, (config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
642
+ resolveRecord
643
+ )
451
644
  ) as any
452
645
  }
453
646
  }
454
647
 
455
- function isMissingDataOnly(issue: SchemaIssue.Issue): boolean {
456
- switch (issue._tag) {
457
- case "MissingKey":
458
- return true
459
- case "InvalidType":
460
- case "InvalidValue":
461
- return Option.isNone(issue.actual) || (Option.isSome(issue.actual) && issue.actual.value === undefined)
462
- case "OneOf":
463
- return issue.actual === undefined
464
- case "Encoding":
465
- return Option.isNone(issue.actual) || (Option.isSome(issue.actual) && issue.actual.value === undefined)
466
- ? true
467
- : isMissingDataOnly(issue.issue)
468
- case "Pointer":
469
- return isMissingDataOnly(issue.issue)
470
- case "Filter":
471
- case "UnexpectedKey":
472
- case "Forbidden":
473
- return false
474
- case "Composite":
475
- return issue.issues.every(isMissingDataOnly)
476
- case "AnyOf":
477
- if (issue.issues.length === 0) {
478
- return issue.actual === undefined
479
- }
480
- return issue.issues.every(isMissingDataOnly)
648
+ const resolveArray = (
649
+ results: ReadonlyArray<Result.Result<Resolution<any>, EvaluationFailure>>
650
+ ): Effect.Effect<Resolution<Array<any>>, EvaluationFailure> => {
651
+ const values: Array<any> = []
652
+ let firstFailure: EvaluationFailure | undefined
653
+ let firstAbsent: Absent | undefined
654
+ let hasInput = false
655
+ for (const result of results) {
656
+ if (Result.isFailure(result)) {
657
+ firstFailure ??= result.failure
658
+ hasInput = hasInput || result.failure.hasInput
659
+ continue
660
+ }
661
+ const resolution = result.success
662
+ if (resolution._tag === "Absent") {
663
+ firstAbsent ??= resolution
664
+ } else {
665
+ values.push(resolution.value)
666
+ hasInput = hasInput || resolution.hasInput
667
+ }
481
668
  }
669
+ if (firstFailure !== undefined) {
670
+ return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
671
+ }
672
+ if (firstAbsent !== undefined) {
673
+ return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
674
+ }
675
+ return Effect.succeed(resolved(values, hasInput))
676
+ }
677
+
678
+ const resolveRecord = (
679
+ results: Record<string, Result.Result<Resolution<any>, EvaluationFailure>>
680
+ ): Effect.Effect<Resolution<Record<string, any>>, EvaluationFailure> => {
681
+ const values: Record<string, any> = {}
682
+ let firstFailure: EvaluationFailure | undefined
683
+ let firstAbsent: Absent | undefined
684
+ let hasInput = false
685
+ for (const key in results) {
686
+ const result = results[key]
687
+ if (Result.isFailure(result)) {
688
+ firstFailure ??= result.failure
689
+ hasInput = hasInput || result.failure.hasInput
690
+ continue
691
+ }
692
+ const resolution = result.success
693
+ if (resolution._tag === "Absent") {
694
+ firstAbsent ??= resolution
695
+ } else {
696
+ InternalRecord.assignProperty(values, key, resolution.value)
697
+ hasInput = hasInput || resolution.hasInput
698
+ }
699
+ }
700
+ if (firstFailure !== undefined) {
701
+ return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
702
+ }
703
+ if (firstAbsent !== undefined) {
704
+ return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
705
+ }
706
+ return Effect.succeed(resolved(values, hasInput))
482
707
  }
483
708
 
484
709
  /**
485
- * Provides a fallback value when the config fails due to missing data.
710
+ * Provides a fallback value when the config cannot resolve because none of its
711
+ * relevant input is present.
486
712
  *
487
713
  * **When to use**
488
714
  *
@@ -490,30 +716,33 @@ function isMissingDataOnly(issue: SchemaIssue.Issue): boolean {
490
716
  *
491
717
  * **Gotchas**
492
718
  *
493
- * Only applies when the error is a `SchemaError` caused exclusively by
494
- * missing data (missing keys, undefined values). Validation errors (wrong
495
- * type, out of range) still propagate.
719
+ * Validation errors and partially supplied groups still propagate. A schema
720
+ * that successfully decodes absent input also keeps its decoded value instead
721
+ * of using the default. Schema configs first represent a missing or
722
+ * incompatible provider shape as `undefined`; the default is used only when
723
+ * the schema rejects that value and no relevant input was found.
496
724
  *
497
725
  * **Example** (Defaulting a missing port)
498
726
  *
499
- * ```ts
727
+ * ```ts import.meta.vitest
500
728
  * import { Config, ConfigProvider, Effect } from "effect"
501
729
  *
502
730
  * const port = Config.number("port").pipe(Config.withDefault(3000))
503
731
  *
504
732
  * const provider = ConfigProvider.fromUnknown({})
505
- * // Effect.runSync(port.parse(provider)) // 3000
733
+ * Effect.runSync(port.parse(provider)) // => 3000
506
734
  * ```
507
735
  *
508
736
  * @see {@link option} – returns `Option` instead of a default value
509
- * @see {@link orElse} – catches all errors, not just missing data
737
+ * @see {@link orElse} – catches all errors, not just absent input
510
738
  *
511
739
  * @category combinators
512
740
  * @since 2.0.0
513
741
  */
514
742
  export const withDefault: {
515
743
  /**
516
- * Provides a fallback value when the config fails due to missing data.
744
+ * Provides a fallback value when the config cannot resolve because none of its
745
+ * relevant input is present.
517
746
  *
518
747
  * **When to use**
519
748
  *
@@ -521,30 +750,33 @@ export const withDefault: {
521
750
  *
522
751
  * **Gotchas**
523
752
  *
524
- * Only applies when the error is a `SchemaError` caused exclusively by
525
- * missing data (missing keys, undefined values). Validation errors (wrong
526
- * type, out of range) still propagate.
753
+ * Validation errors and partially supplied groups still propagate. A schema
754
+ * that successfully decodes absent input also keeps its decoded value instead
755
+ * of using the default. Schema configs first represent a missing or
756
+ * incompatible provider shape as `undefined`; the default is used only when
757
+ * the schema rejects that value and no relevant input was found.
527
758
  *
528
759
  * **Example** (Defaulting a missing port)
529
760
  *
530
- * ```ts
761
+ * ```ts import.meta.vitest
531
762
  * import { Config, ConfigProvider, Effect } from "effect"
532
763
  *
533
764
  * const port = Config.number("port").pipe(Config.withDefault(3000))
534
765
  *
535
766
  * const provider = ConfigProvider.fromUnknown({})
536
- * // Effect.runSync(port.parse(provider)) // 3000
767
+ * Effect.runSync(port.parse(provider)) // => 3000
537
768
  * ```
538
769
  *
539
770
  * @see {@link option} – returns `Option` instead of a default value
540
- * @see {@link orElse} – catches all errors, not just missing data
771
+ * @see {@link orElse} – catches all errors, not just absent input
541
772
  *
542
773
  * @category combinators
543
774
  * @since 2.0.0
544
775
  */
545
776
  <const A2>(defaultValue: A2): <A>(self: Config<A>) => Config<A2 | A>
546
777
  /**
547
- * Provides a fallback value when the config fails due to missing data.
778
+ * Provides a fallback value when the config cannot resolve because none of its
779
+ * relevant input is present.
548
780
  *
549
781
  * **When to use**
550
782
  *
@@ -552,43 +784,75 @@ export const withDefault: {
552
784
  *
553
785
  * **Gotchas**
554
786
  *
555
- * Only applies when the error is a `SchemaError` caused exclusively by
556
- * missing data (missing keys, undefined values). Validation errors (wrong
557
- * type, out of range) still propagate.
787
+ * Validation errors and partially supplied groups still propagate. A schema
788
+ * that successfully decodes absent input also keeps its decoded value instead
789
+ * of using the default. Schema configs first represent a missing or
790
+ * incompatible provider shape as `undefined`; the default is used only when
791
+ * the schema rejects that value and no relevant input was found.
558
792
  *
559
793
  * **Example** (Defaulting a missing port)
560
794
  *
561
- * ```ts
795
+ * ```ts import.meta.vitest
562
796
  * import { Config, ConfigProvider, Effect } from "effect"
563
797
  *
564
798
  * const port = Config.number("port").pipe(Config.withDefault(3000))
565
799
  *
566
800
  * const provider = ConfigProvider.fromUnknown({})
567
- * // Effect.runSync(port.parse(provider)) // 3000
801
+ * Effect.runSync(port.parse(provider)) // => 3000
568
802
  * ```
569
803
  *
570
804
  * @see {@link option} – returns `Option` instead of a default value
571
- * @see {@link orElse} – catches all errors, not just missing data
805
+ * @see {@link orElse} – catches all errors, not just absent input
572
806
  *
573
807
  * @category combinators
574
808
  * @since 2.0.0
575
809
  */
576
810
  <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
577
811
  } = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
578
- return orElse(self, (err) => {
579
- if (Schema.isSchemaError(err.cause)) {
580
- const issue = err.cause.issue
581
- if (isMissingDataOnly(issue)) {
582
- return succeed(defaultValue)
583
- }
584
- }
585
- return fail(err.cause)
586
- })
812
+ return make</**
813
+ * Provides a fallback value when the config cannot resolve because none of its
814
+ * relevant input is present.
815
+ *
816
+ * **When to use**
817
+ *
818
+ * Use when you need to make a config key optional with a sensible default.
819
+ *
820
+ * **Gotchas**
821
+ *
822
+ * Validation errors and partially supplied groups still propagate. A schema
823
+ * that successfully decodes absent input also keeps its decoded value instead
824
+ * of using the default. Schema configs first represent a missing or
825
+ * incompatible provider shape as `undefined`; the default is used only when
826
+ * the schema rejects that value and no relevant input was found.
827
+ *
828
+ * **Example** (Defaulting a missing port)
829
+ *
830
+ * ```ts import.meta.vitest
831
+ * import { Config, ConfigProvider, Effect } from "effect"
832
+ *
833
+ * const port = Config.number("port").pipe(Config.withDefault(3000))
834
+ *
835
+ * const provider = ConfigProvider.fromUnknown({})
836
+ * Effect.runSync(port.parse(provider)) // => 3000
837
+ * ```
838
+ *
839
+ * @see {@link option} – returns `Option` instead of a default value
840
+ * @see {@link orElse} – catches all errors, not just absent input
841
+ *
842
+ * @category combinators
843
+ * @since 2.0.0
844
+ */
845
+ A | A2>((provider, pathPrefix) =>
846
+ Effect.mapEager(
847
+ evaluateAt(self, provider, pathPrefix),
848
+ (resolution) => resolution._tag === "Absent" ? resolved(defaultValue, false) : resolution
849
+ )
850
+ );
587
851
  })
588
852
 
589
853
  /**
590
- * Makes a config optional: returns `Some(value)` on success and `None` when
591
- * data is missing.
854
+ * Makes a config optional: returns `Some(value)` on success and `None` when the
855
+ * config cannot resolve because none of its relevant input is present.
592
856
  *
593
857
  * **When to use**
594
858
  *
@@ -596,18 +860,21 @@ export const withDefault: {
596
860
  *
597
861
  * **Gotchas**
598
862
  *
599
- * Like {@link withDefault}, only missing-data errors produce `None`.
600
- * Validation errors still propagate.
863
+ * Validation errors and partially supplied groups still propagate. Successful
864
+ * values are always wrapped in `Some`, including `undefined` when the schema
865
+ * explicitly accepts it. Schema configs first represent a missing or
866
+ * incompatible provider shape as `undefined`; `None` is returned only when the
867
+ * schema rejects that value and no relevant input was found.
601
868
  *
602
869
  * **Example** (Reading optional config)
603
870
  *
604
- * ```ts
605
- * import { Config, ConfigProvider, Effect } from "effect"
871
+ * ```ts import.meta.vitest
872
+ * import { Config, ConfigProvider, Effect, Option } from "effect"
606
873
  *
607
874
  * const maybePort = Config.option(Config.number("port"))
608
875
  *
609
876
  * const provider = ConfigProvider.fromUnknown({})
610
- * // Effect.runSync(maybePort.parse(provider)) // { _tag: "None" }
877
+ * Effect.runSync(maybePort.parse(provider)) // => Option.none()
611
878
  * ```
612
879
  *
613
880
  * @see {@link withDefault} – provide a concrete fallback value instead
@@ -649,7 +916,7 @@ export type Success<T> = [T] extends [Config<infer A>] ? A : never
649
916
  *
650
917
  * @see {@link unwrap} – construct a `Config` from a `Wrap<T>`
651
918
  *
652
- * @category Wrap
919
+ * @category utility types
653
920
  * @since 2.0.0
654
921
  */
655
922
  export type Wrap<A> = [NonNullable<A>] extends [infer T] ? [IsPlainObject<T>] extends [true] ?
@@ -677,8 +944,8 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
677
944
  *
678
945
  * **Example** (Unwrapping a record of configs)
679
946
  *
680
- * ```ts
681
- * import { Config } from "effect"
947
+ * ```ts import.meta.vitest
948
+ * import { Config, ConfigProvider, Effect } from "effect"
682
949
  *
683
950
  * interface Options {
684
951
  * key: string
@@ -686,128 +953,158 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
686
953
  *
687
954
  * const makeConfig = (config: Config.Wrap<Options>): Config.Config<Options> =>
688
955
  * Config.unwrap(config)
956
+ *
957
+ * const config = makeConfig({ key: Config.string("key") })
958
+ * const provider = ConfigProvider.fromUnknown({ key: "value" })
959
+ * Effect.runSync(config.parse(provider)) // => { key: "value" }
689
960
  * ```
690
961
  *
691
962
  * @see {@link Wrap} – the utility type accepted by this function
692
963
  *
693
- * @category Wrap
964
+ * @category converting
694
965
  * @since 2.0.0
695
966
  */
696
967
  export const unwrap = <T>(wrapped: Wrap<T>): Config<T> => {
697
968
  if (isConfig(wrapped)) return wrapped
698
- return make((provider, pathPrefix) => {
699
- const entries = Object.entries(wrapped)
700
- const configs = entries.map(([key, config]) =>
701
- unwrap(config as any).parse(provider, pathPrefix).pipe(Effect.map((value) => [key, value] as const))
702
- )
703
- return Effect.all(configs).pipe(Effect.map(Object.fromEntries))
704
- })
969
+ return all(Rec.map(wrapped as Record<string, Wrap<any>>, (config) => unwrap(config))) as Config<T>
705
970
  }
706
971
 
707
972
  // -----------------------------------------------------------------------------
708
973
  // schema
709
974
  // -----------------------------------------------------------------------------
710
975
 
711
- const dump: (
976
+ interface ConfigCursor {
977
+ readonly provider: ConfigProvider.ConfigProvider
978
+ readonly path: Path
979
+ readonly node: ConfigProvider.Node | undefined
980
+ readonly toString: () => string
981
+ }
982
+
983
+ const cursorToString = (): string => "<configuration>"
984
+
985
+ const loadCursor: (
712
986
  provider: ConfigProvider.ConfigProvider,
713
987
  path: Path
714
- ) => Effect.Effect<Schema.StringTree, SourceError> = Effect.fnUntraced(function*(
715
- provider,
716
- path
717
- ) {
718
- const stat = yield* provider.load(path)
719
- if (stat === undefined) return undefined
720
- switch (stat._tag) {
721
- case "Value":
722
- return stat.value
723
- case "Record": {
724
- if (stat.value !== undefined) return stat.value
725
- const out: Record<string, Schema.StringTree> = {}
726
- for (const key of stat.keys) {
727
- const child = yield* dump(provider, [...path, key])
728
- if (child !== undefined) InternalRecord.assignProperty(out, key, child)
729
- }
730
- return out
731
- }
732
- case "Array": {
733
- if (stat.value !== undefined) return stat.value
734
- const out: Array<Schema.StringTree> = []
735
- for (let i = 0; i < stat.length; i++) {
736
- out.push(yield* dump(provider, [...path, i]))
737
- }
738
- return out
739
- }
988
+ ) => Effect.Effect<ConfigCursor> = (provider, path) =>
989
+ provider.load(path).pipe(
990
+ Effect.orDie,
991
+ Effect.mapEager((node) => ({ provider, path, node, toString: cursorToString }))
992
+ )
993
+
994
+ const loadChildCursor = (cursor: ConfigCursor, segment: string | number): Effect.Effect<ConfigCursor> =>
995
+ loadCursor(cursor.provider, [...cursor.path, segment])
996
+
997
+ const getScalar = (node: ConfigProvider.Node | undefined): string | undefined => node?.value
998
+
999
+ const decodeFromCursor = (
1000
+ ast: SchemaAST.AST,
1001
+ decode: (cursor: ConfigCursor) => Effect.Effect<unknown, SchemaIssue.Issue>
1002
+ ): SchemaAST.AST =>
1003
+ SchemaAST.decodeTo(
1004
+ SchemaAST.unknown,
1005
+ ast,
1006
+ new SchemaTransformation.Transformation(
1007
+ SchemaGetter.transformOrFail((input: unknown) => decode(input as ConfigCursor)),
1008
+ SchemaGetter.passthrough()
1009
+ )
1010
+ )
1011
+
1012
+ const isScalarInput = (ast: SchemaAST.AST): boolean => {
1013
+ switch (ast._tag) {
1014
+ case "Union":
1015
+ return ast.types.every(isScalarInput)
1016
+ case "Objects":
1017
+ case "Arrays":
1018
+ case "Suspend":
1019
+ return false
1020
+ default:
1021
+ return true
740
1022
  }
741
- })
1023
+ }
742
1024
 
743
- const recur: (
1025
+ const hasProviderInput = (
744
1026
  ast: SchemaAST.AST,
745
- provider: ConfigProvider.ConfigProvider,
746
- path: Path
747
- ) => Effect.Effect<Schema.StringTree, Schema.SchemaError | SourceError> = Effect.fnUntraced(
748
- function*(ast, provider, path) {
1027
+ node: ConfigProvider.Node | undefined
1028
+ ): boolean => {
1029
+ switch (ast._tag) {
1030
+ case "Objects":
1031
+ return node?._tag === "Record"
1032
+ case "Arrays":
1033
+ return node?._tag === "Array"
1034
+ case "Union":
1035
+ return ast.types.some((ast) => hasProviderInput(ast, node))
1036
+ case "Suspend":
1037
+ return hasProviderInput(ast.thunk(), node)
1038
+ default:
1039
+ return getScalar(node) !== undefined
1040
+ }
1041
+ }
1042
+
1043
+ const toConfigCursorAST = (root: SchemaAST.AST): SchemaAST.AST => {
1044
+ const seen = new WeakSet<SchemaAST.AST>()
1045
+ const recur = SchemaAST.applyToSelfOrLastLinkEncoding((ast) => {
1046
+ seen.add(ast)
749
1047
  switch (ast._tag) {
750
1048
  case "Objects": {
751
- const stat = yield* provider.load(path)
752
- if (stat === undefined && path.length > 0) return undefined
753
- const out: Record<string, Schema.StringTree> = {}
754
- for (const ps of ast.propertySignatures) {
755
- const name = ps.name
756
- if (typeof name === "string") {
757
- const value = yield* recur(ps.type, provider, [...path, name])
758
- if (value !== undefined) InternalRecord.assignProperty(out, name, value)
1049
+ const matchesIndex = ast.indexSignatures.map((is) => SchemaParser._is(is.parameter))
1050
+ const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
1051
+ if (cursor.node?._tag !== "Record") {
1052
+ return undefined
759
1053
  }
760
- }
761
- if (ast.indexSignatures.length > 0) {
762
- if (stat && stat._tag === "Record") {
763
- for (const is of ast.indexSignatures) {
764
- const matches = SchemaParser._is(is.parameter)
765
- for (const key of stat.keys) {
766
- if (!Object.hasOwn(out, key) && matches(key)) {
767
- const value = yield* recur(is.type, provider, [...path, key])
768
- if (value !== undefined) InternalRecord.assignProperty(out, key, value)
769
- }
770
- }
1054
+ const node = cursor.node
1055
+ const keys = new Set<string>()
1056
+ for (const property of ast.propertySignatures) {
1057
+ if (typeof property.name === "string") keys.add(property.name)
1058
+ }
1059
+ if (matchesIndex.length > 0) {
1060
+ for (const key of node.keys) {
1061
+ if (matchesIndex.some((matches) => matches(key))) keys.add(key)
771
1062
  }
772
1063
  }
773
- }
774
- return out
1064
+ const out: Record<string, ConfigCursor> = {}
1065
+ for (const key of keys) {
1066
+ const child = yield* loadChildCursor(cursor, key)
1067
+ if (child.node !== undefined) InternalRecord.assignProperty(out, key, child)
1068
+ }
1069
+ return out
1070
+ })
1071
+ return decodeFromCursor(ast.recur(recur, (ast) => ast), materialize)
775
1072
  }
776
1073
  case "Arrays": {
777
- const stat = yield* provider.load(path)
778
- if (stat === undefined) return undefined
779
- if (stat && stat._tag === "Value") return stat.value === "" ? [] : stat.value.split(",")
780
- if (stat && stat._tag === "Array" && stat.value !== undefined) {
781
- return stat.value === "" ? [] : stat.value.split(",")
782
- }
783
- const out: Array<Schema.StringTree> = []
784
- const length = stat && stat._tag === "Array" ? stat.length : ast.elements.length
785
- for (let i = 0; i < length; i++) {
786
- const element = ast.elements[i] ?? ast.rest[0]
787
- if (element !== undefined) {
788
- out.push(yield* recur(element, provider, [...path, i]))
1074
+ const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
1075
+ if (cursor.node?._tag !== "Array") {
1076
+ return undefined
789
1077
  }
790
- }
791
- return out
1078
+ const out: Array<ConfigCursor> = []
1079
+ for (let i = 0; i < cursor.node.length; i++) {
1080
+ out.push(yield* loadChildCursor(cursor, i))
1081
+ }
1082
+ return out
1083
+ })
1084
+ return decodeFromCursor(ast.recur(recur), materialize)
792
1085
  }
793
1086
  case "Union":
794
- // Let downstream decoding decide; dump can return a string, object, or array.
795
- return yield* dump(provider, path)
796
- case "Suspend":
797
- return yield* recur(ast.thunk(), provider, path)
798
- default: {
799
- // Base primitives / string-like encoded nodes.
800
- const stat = yield* provider.load(path)
801
- if (stat === undefined) return undefined
802
- if (stat._tag === "Value") return stat.value
803
- if (stat._tag === "Record" && stat.value !== undefined) return stat.value
804
- if (stat._tag === "Array" && stat.value !== undefined) return stat.value
805
- // Container without a co-located value cannot satisfy a scalar request.
806
- return undefined
1087
+ for (const member of ast.types) {
1088
+ recur(member)
1089
+ }
1090
+ return isScalarInput(ast)
1091
+ ? decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
1092
+ : ast.recur(recur)
1093
+ case "Suspend": {
1094
+ const target = ast.thunk()
1095
+ // Force new branches so opaque encodings fail when the Config is constructed.
1096
+ if (!seen.has(target)) recur(target)
1097
+ return ast.recur(recur)
807
1098
  }
1099
+ case "Declaration":
1100
+ case "Any":
1101
+ throw new globalThis.Error("Config.schema does not support opaque StringTree encodings", { cause: ast })
1102
+ default:
1103
+ return decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
808
1104
  }
809
- }
810
- )
1105
+ })
1106
+ return recur(root)
1107
+ }
811
1108
 
812
1109
  /**
813
1110
  * Creates a `Config<T>` from a `Schema.Codec`.
@@ -826,12 +1123,47 @@ const recur: (
826
1123
  * Convenience constructors such as `string`, `number`, and `boolean` delegate
827
1124
  * to this API.
828
1125
  *
829
- * The codec is used to decode the raw `StringTree` produced by the provider
830
- * into `T`. Schema validation errors are wrapped in `ConfigError`.
1126
+ * The codec is converted to its canonical `StringTree` form. Its encoded shape
1127
+ * determines how provider data is loaded: scalar schemas read a co-located
1128
+ * scalar value, object schemas read declared properties and matching record
1129
+ * keys, and array schemas read indexed children. A mixed-shape union loads each
1130
+ * member according to that member's shape before applying the union's mode and
1131
+ * checks.
1132
+ *
1133
+ * At the config's lookup path, a missing node or a node that cannot provide the
1134
+ * representation required by the schema is decoded as `undefined`. Missing
1135
+ * object properties remain omitted so the schema's property semantics still
1136
+ * apply. Decoding success always wins, even when no provider input was found.
1137
+ * For example,
1138
+ * `Schema.UndefinedOr(Schema.String)` decodes to `undefined` and is not replaced
1139
+ * by {@link withDefault}. If decoding fails and no relevant representation was
1140
+ * found, the config is absent. Invalid data in a relevant representation is a
1141
+ * validation failure. Provider `SourceError`s are always failures.
1142
+ *
1143
+ * **Gotchas**
1144
+ *
1145
+ * Plain `Schema.Array` and `Schema.Record` schemas use structural provider
1146
+ * input. Use {@link Array} or {@link Record} when a flat separated string must
1147
+ * also be accepted.
1148
+ *
1149
+ * `Schema.Struct` and {@link all} describe different lookup models. An
1150
+ * explicitly present empty object is relevant input for a struct and required
1151
+ * fields are validated. The same empty parent container does not make an
1152
+ * `all` group present when all of its child configs are absent.
1153
+ *
1154
+ * The canonical `StringTree` encoding must expose a concrete scalar, object,
1155
+ * array, or union shape. Opaque encodings such as `Schema.Any`,
1156
+ * `Schema.Unknown`, `Schema.ObjectKeyword`, `Schema.Json`, and
1157
+ * `Schema.MutableJson` are rejected synchronously when this config is
1158
+ * constructed, including when they are nested in another schema. Suspended
1159
+ * recursive schemas remain supported when their eventual shape is concrete.
1160
+ * Declarations such as `Schema.URL` also remain supported when their canonical
1161
+ * encoding has a concrete shape. To read arbitrary JSON from one scalar value,
1162
+ * use `Schema.fromJsonString(Schema.Json)`.
831
1163
  *
832
1164
  * **Example** (Reading a structured config)
833
1165
  *
834
- * ```ts
1166
+ * ```ts import.meta.vitest
835
1167
  * import { Config, ConfigProvider, Effect, Schema } from "effect"
836
1168
  *
837
1169
  * const DbConfig = Config.schema(
@@ -846,8 +1178,7 @@ const recur: (
846
1178
  * db: { host: "localhost", port: 5432 }
847
1179
  * })
848
1180
  *
849
- * // Effect.runSync(DbConfig.parse(provider))
850
- * // { host: "localhost", port: 5432 }
1181
+ * Effect.runSync(DbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
851
1182
  * ```
852
1183
  *
853
1184
  * @see {@link string} / {@link number} / {@link boolean} – shortcuts for
@@ -858,20 +1189,31 @@ const recur: (
858
1189
  */
859
1190
  export function schema<T>(codec: Schema.ConstraintCodec<T, unknown>, path?: string | ConfigProvider.Path): Config<T> {
860
1191
  const codecStringTree = Schema.toCodecStringTree(codec)
861
- const decodeUnknownEffect = SchemaParser.decodeUnknownEffect(codecStringTree)
862
- const codecStringTreeEncoded = SchemaAST.toEncoded(codecStringTree.ast)
1192
+ const encodedAst = SchemaAST.toEncoded(codecStringTree.ast)
1193
+ const decodeCursor = SchemaParser.decodeUnknownEffect(
1194
+ Schema.make<Schema.Codec<T, ConfigCursor>>(toConfigCursorAST(codecStringTree.ast))
1195
+ )
863
1196
  const localPath = typeof path === "string" ? [path] : path ?? []
864
1197
  return make((provider, pathPrefix) => {
865
1198
  const fullPath = [...pathPrefix, ...localPath]
866
- return recur(codecStringTreeEncoded, provider, fullPath).pipe(
867
- Effect.flatMapEager((tree) =>
868
- decodeUnknownEffect(tree).pipe(
869
- Effect.mapErrorEager((issue) =>
870
- new Schema.SchemaError(fullPath.length > 0 ? new SchemaIssue.Pointer(fullPath, issue) : issue)
871
- )
1199
+ return catchSourceError(loadCursor(provider, fullPath), false).pipe(
1200
+ Effect.flatMapEager((cursor) => {
1201
+ const hasInput = hasProviderInput(encodedAst, cursor.node)
1202
+ return catchSourceError(
1203
+ decodeCursor(cursor).pipe(
1204
+ Effect.mapEager((value) => resolved(value, hasInput)),
1205
+ Effect.catchEager((issue) => {
1206
+ const error = new ConfigError(
1207
+ new Schema.SchemaError(fullPath.length > 0 ? new SchemaIssue.Pointer(fullPath, issue) : issue)
1208
+ )
1209
+ return hasInput
1210
+ ? Effect.fail(evaluationFailure(error, true))
1211
+ : Effect.succeed(absent(error))
1212
+ })
1213
+ ),
1214
+ hasInput
872
1215
  )
873
- ),
874
- Effect.mapErrorEager((cause) => new ConfigError(cause))
1216
+ })
875
1217
  )
876
1218
  })
877
1219
  }
@@ -962,7 +1304,7 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
962
1304
  *
963
1305
  * **Example** (Parsing a comma-separated record)
964
1306
  *
965
- * ```ts
1307
+ * ```ts import.meta.vitest
966
1308
  * import { Config, ConfigProvider, Effect, Schema } from "effect"
967
1309
  *
968
1310
  * const schema = Config.Record(Schema.String, Schema.String)
@@ -975,14 +1317,14 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
975
1317
  * }
976
1318
  * })
977
1319
  *
978
- * console.dir(Effect.runSync(config.parse(provider)))
979
- * // {
980
- * // 'service.name': 'my-service',
981
- * // 'service.version': '1.0.0',
982
- * // 'custom.attribute': 'value'
983
- * // }
1320
+ * const result = Effect.runSync(config.parse(provider))
1321
+ * result["service.name"] // => "my-service"
1322
+ * result["service.version"] // => "1.0.0"
1323
+ * result["custom.attribute"] // => "value"
984
1324
  * ```
985
1325
  *
1326
+ * @see {@link Array} for separated or structural array input
1327
+ *
986
1328
  * @category schemas
987
1329
  * @since 4.0.0
988
1330
  */
@@ -991,35 +1333,31 @@ export const Record = <K extends Schema.Record.Key, V extends Schema.Constraint>
991
1333
  readonly keyValueSeparator?: string | undefined
992
1334
  }) => {
993
1335
  const record = Schema.Record(key, value)
1336
+ const split = SchemaTransformation.splitKeyValue(options)
994
1337
  const recordString = Schema.String.pipe(
995
- Schema.decodeTo(
996
- Schema.Record(Schema.String, Schema.String),
997
- SchemaTransformation.splitKeyValue(options)
998
- ),
999
- Schema.decodeTo(record)
1338
+ Schema.decodeTo(Schema.toCodecStringTree(record), {
1339
+ decode: split.decode,
1340
+ encode: SchemaGetter.passthrough<Record<string, string>, Schema.StringTree>({ strict: false }).compose(
1341
+ split.encode
1342
+ )
1343
+ })
1000
1344
  )
1001
1345
 
1002
1346
  return Schema.Union([record, recordString])
1003
1347
  }
1004
1348
 
1005
- /**
1006
- * @category schemas
1007
- * @since 4.0.0
1008
- */
1009
1349
  const ArrayConfig = <V extends Schema.Constraint>(value: V, options?: {
1010
1350
  readonly separator?: string | undefined
1011
1351
  }) => {
1012
1352
  const array = Schema.Array(value)
1013
1353
  const separator = options?.separator ?? ","
1014
1354
  const arrayString = Schema.String.pipe(
1015
- Schema.decodeTo(
1016
- Schema.Array(Schema.String),
1017
- {
1018
- decode: SchemaGetter.split(options),
1019
- encode: SchemaGetter.transform((input: ReadonlyArray<string>) => input.join(separator))
1020
- }
1021
- ),
1022
- Schema.decodeTo(array)
1355
+ Schema.decodeTo(Schema.toCodecStringTree(array), {
1356
+ decode: SchemaGetter.split(options),
1357
+ encode: SchemaGetter.passthrough<ReadonlyArray<string>, Schema.StringTree>({ strict: false }).compose(
1358
+ SchemaGetter.transform((input) => input.join(separator))
1359
+ )
1360
+ })
1023
1361
  )
1024
1362
 
1025
1363
  return Schema.Union([arrayString, array])
@@ -1039,6 +1377,8 @@ export {
1039
1377
  * Accepts either a JSON-like array from the provider or a flat string like
1040
1378
  * `"a,b,c"`. The `separator` defaults to `","` and can be customized.
1041
1379
  *
1380
+ * @see {@link Record} for separated or structural record input
1381
+ *
1042
1382
  * @category schemas
1043
1383
  * @since 4.0.0
1044
1384
  */
@@ -1061,7 +1401,7 @@ export {
1061
1401
  * @since 2.0.0
1062
1402
  */
1063
1403
  export function fail(err: SourceError | Schema.SchemaError) {
1064
- return make(() => Effect.fail(new ConfigError(err)))
1404
+ return make(() => Effect.fail(evaluationFailure(new ConfigError(err), false)))
1065
1405
  }
1066
1406
 
1067
1407
  /**
@@ -1075,19 +1415,21 @@ export function fail(err: SourceError | Schema.SchemaError) {
1075
1415
  *
1076
1416
  * **Example** (Returning a constant fallback)
1077
1417
  *
1078
- * ```ts
1079
- * import { Config } from "effect"
1418
+ * ```ts import.meta.vitest
1419
+ * import { Config, ConfigProvider, Effect } from "effect"
1080
1420
  *
1081
1421
  * const host = Config.string("HOST").pipe(
1082
1422
  * Config.orElse(() => Config.succeed("localhost"))
1083
1423
  * )
1424
+ * const provider = ConfigProvider.fromUnknown({})
1425
+ * Effect.runSync(host.parse(provider)) // => "localhost"
1084
1426
  * ```
1085
1427
  *
1086
1428
  * @category constructors
1087
1429
  * @since 2.0.0
1088
1430
  */
1089
1431
  export function succeed<T>(value: T) {
1090
- return make(() => Effect.succeed(value))
1432
+ return make(() => Effect.succeed(resolved(value, false)))
1091
1433
  }
1092
1434
 
1093
1435
  /**
@@ -1103,13 +1445,13 @@ export function succeed<T>(value: T) {
1103
1445
  *
1104
1446
  * **Example** (Reading a string config)
1105
1447
  *
1106
- * ```ts
1448
+ * ```ts import.meta.vitest
1107
1449
  * import { Config, ConfigProvider, Effect } from "effect"
1108
1450
  *
1109
1451
  * const host = Config.string("HOST")
1110
1452
  *
1111
1453
  * const provider = ConfigProvider.fromUnknown({ HOST: "localhost" })
1112
- * // Effect.runSync(host.parse(provider)) // "localhost"
1454
+ * Effect.runSync(host.parse(provider)) // => "localhost"
1113
1455
  * ```
1114
1456
  *
1115
1457
  * @see {@link nonEmptyString} – rejects empty strings
@@ -1220,10 +1562,12 @@ export function int(name?: string) {
1220
1562
  *
1221
1563
  * **Example** (Restricting to a literal)
1222
1564
  *
1223
- * ```ts
1224
- * import { Config } from "effect"
1565
+ * ```ts import.meta.vitest
1566
+ * import { Config, ConfigProvider, Effect } from "effect"
1225
1567
  *
1226
1568
  * const env = Config.literal("production", "ENV")
1569
+ * const provider = ConfigProvider.fromUnknown({ ENV: "production" })
1570
+ * Effect.runSync(env.parse(provider)) // => "production"
1227
1571
  * ```
1228
1572
  *
1229
1573
  * @see {@link literals} – accepts multiple literal values
@@ -1247,10 +1591,12 @@ export function literal<L extends SchemaAST.LiteralValue>(literal: L, name?: str
1247
1591
  *
1248
1592
  * **Example** (Restricting to a set of literals)
1249
1593
  *
1250
- * ```ts
1251
- * import { Config } from "effect"
1594
+ * ```ts import.meta.vitest
1595
+ * import { Config, ConfigProvider, Effect } from "effect"
1252
1596
  *
1253
1597
  * const env = Config.literals(["development", "production"], "ENV")
1598
+ * const provider = ConfigProvider.fromUnknown({ ENV: "development" })
1599
+ * Effect.runSync(env.parse(provider)) // => "development"
1254
1600
  * ```
1255
1601
  *
1256
1602
  * @see {@link literal} for accepting one specific literal value
@@ -1279,13 +1625,10 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
1279
1625
  *
1280
1626
  * **Example** (Reading a boolean flag)
1281
1627
  *
1282
- * ```ts
1628
+ * ```ts import.meta.vitest
1283
1629
  * import { Config, ConfigProvider, Effect } from "effect"
1284
1630
  *
1285
- * const program = Effect.gen(function*() {
1286
- * const flag = yield* Config.boolean("FEATURE_FLAG")
1287
- * console.log(flag)
1288
- * })
1631
+ * const program = Config.boolean("FEATURE_FLAG")
1289
1632
  *
1290
1633
  * const provider = ConfigProvider.fromEnv({
1291
1634
  * env: {
@@ -1295,8 +1638,7 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
1295
1638
  *
1296
1639
  * Effect.runSync(
1297
1640
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1298
- * )
1299
- * // Output: true
1641
+ * ) // => true
1300
1642
  * ```
1301
1643
  *
1302
1644
  * @see {@link Boolean} for the underlying boolean codec
@@ -1325,13 +1667,10 @@ export function boolean(name?: string) {
1325
1667
  *
1326
1668
  * **Example** (Reading a duration)
1327
1669
  *
1328
- * ```ts
1329
- * import { Config, ConfigProvider, Effect } from "effect"
1670
+ * ```ts import.meta.vitest
1671
+ * import { Config, ConfigProvider, Duration, Effect } from "effect"
1330
1672
  *
1331
- * const program = Effect.gen(function*() {
1332
- * const duration = yield* Config.duration("DURATION")
1333
- * console.log(duration)
1334
- * })
1673
+ * const program = Config.duration("DURATION").pipe(Effect.map(Duration.toMillis))
1335
1674
  *
1336
1675
  * const provider = ConfigProvider.fromEnv({
1337
1676
  * env: {
@@ -1341,8 +1680,7 @@ export function boolean(name?: string) {
1341
1680
  *
1342
1681
  * Effect.runSync(
1343
1682
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1344
- * )
1345
- * // Output: Duration { _tag: "millis", value: 10000 }
1683
+ * ) // => 10000
1346
1684
  * ```
1347
1685
  *
1348
1686
  * @see {@link schema} for decoding configuration values with a custom codec
@@ -1367,13 +1705,10 @@ export function duration(name?: string) {
1367
1705
  *
1368
1706
  * **Example** (Reading a port)
1369
1707
  *
1370
- * ```ts
1708
+ * ```ts import.meta.vitest
1371
1709
  * import { Config, ConfigProvider, Effect } from "effect"
1372
1710
  *
1373
- * const program = Effect.gen(function*() {
1374
- * const port = yield* Config.port("PORT")
1375
- * console.log(port)
1376
- * })
1711
+ * const program = Config.port("PORT")
1377
1712
  *
1378
1713
  * const provider = ConfigProvider.fromEnv({
1379
1714
  * env: {
@@ -1383,8 +1718,7 @@ export function duration(name?: string) {
1383
1718
  *
1384
1719
  * Effect.runSync(
1385
1720
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1386
- * )
1387
- * // Output: 8080
1721
+ * ) // => 8080
1388
1722
  * ```
1389
1723
  *
1390
1724
  * @see {@link int} for integer config values outside the port range
@@ -1413,13 +1747,10 @@ export function port(name?: string) {
1413
1747
  *
1414
1748
  * **Example** (Reading a log level)
1415
1749
  *
1416
- * ```ts
1750
+ * ```ts import.meta.vitest
1417
1751
  * import { Config, ConfigProvider, Effect } from "effect"
1418
1752
  *
1419
- * const program = Effect.gen(function*() {
1420
- * const logLevel = yield* Config.logLevel("LOG_LEVEL")
1421
- * console.log(logLevel)
1422
- * })
1753
+ * const program = Config.logLevel("LOG_LEVEL")
1423
1754
  *
1424
1755
  * const provider = ConfigProvider.fromEnv({
1425
1756
  * env: {
@@ -1429,8 +1760,7 @@ export function port(name?: string) {
1429
1760
  *
1430
1761
  * Effect.runSync(
1431
1762
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1432
- * )
1433
- * // Output: "Info"
1763
+ * ) // => "Info"
1434
1764
  * ```
1435
1765
  *
1436
1766
  * @see {@link LogLevel} for the underlying log-level codec
@@ -1457,13 +1787,10 @@ export function logLevel(name?: string) {
1457
1787
  *
1458
1788
  * **Example** (Reading a secret)
1459
1789
  *
1460
- * ```ts
1790
+ * ```ts import.meta.vitest
1461
1791
  * import { Config, ConfigProvider, Effect } from "effect"
1462
1792
  *
1463
- * const program = Effect.gen(function*() {
1464
- * const apiKey = yield* Config.redacted("API_KEY")
1465
- * console.log(apiKey)
1466
- * })
1793
+ * const program = Config.redacted("API_KEY").pipe(Effect.map(String))
1467
1794
  *
1468
1795
  * const provider = ConfigProvider.fromEnv({
1469
1796
  * env: {
@@ -1473,8 +1800,7 @@ export function logLevel(name?: string) {
1473
1800
  *
1474
1801
  * Effect.runSync(
1475
1802
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1476
- * )
1477
- * // Output: <redacted>
1803
+ * ) // => "<redacted>"
1478
1804
  * ```
1479
1805
  *
1480
1806
  * @see {@link string} for non-secret string settings
@@ -1503,13 +1829,10 @@ export function redacted(name?: string) {
1503
1829
  *
1504
1830
  * **Example** (Reading a URL)
1505
1831
  *
1506
- * ```ts
1832
+ * ```ts import.meta.vitest
1507
1833
  * import { Config, ConfigProvider, Effect } from "effect"
1508
1834
  *
1509
- * const program = Effect.gen(function*() {
1510
- * const url = yield* Config.url("URL")
1511
- * console.log(url)
1512
- * })
1835
+ * const program = Config.url("URL").pipe(Effect.map((url) => url.href))
1513
1836
  *
1514
1837
  * const provider = ConfigProvider.fromEnv({
1515
1838
  * env: {
@@ -1519,22 +1842,7 @@ export function redacted(name?: string) {
1519
1842
  *
1520
1843
  * Effect.runSync(
1521
1844
  * program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
1522
- * )
1523
- * // Output:
1524
- * // URL {
1525
- * // href: 'https://example.com/',
1526
- * // origin: 'https://example.com',
1527
- * // protocol: 'https:',
1528
- * // username: '',
1529
- * // password: '',
1530
- * // host: 'example.com',
1531
- * // hostname: 'example.com',
1532
- * // port: '',
1533
- * // pathname: '/',
1534
- * // search: '',
1535
- * // searchParams: URLSearchParams {},
1536
- * // hash: ''
1537
- * // }
1845
+ * ) // => "https://example.com/"
1538
1846
  * ```
1539
1847
  *
1540
1848
  * @see {@link schema} for decoding configuration values with a custom codec
@@ -1563,14 +1871,13 @@ export function url(name?: string) {
1563
1871
  *
1564
1872
  * **Example** (Reading a date)
1565
1873
  *
1566
- * ```ts
1874
+ * ```ts import.meta.vitest
1567
1875
  * import { Config, ConfigProvider, Effect } from "effect"
1568
1876
  *
1569
1877
  * const createdAt = Config.date("CREATED_AT")
1570
1878
  *
1571
1879
  * const provider = ConfigProvider.fromUnknown({ CREATED_AT: "2024-01-15" })
1572
- * // Effect.runSync(createdAt.parse(provider))
1573
- * // Date("2024-01-15T00:00:00.000Z")
1880
+ * Effect.runSync(createdAt.parse(provider)).toISOString() // => "2024-01-15T00:00:00.000Z"
1574
1881
  * ```
1575
1882
  *
1576
1883
  * @category constructors
@@ -1598,7 +1905,7 @@ export function date(name?: string) {
1598
1905
  *
1599
1906
  * **Example** (Nesting a struct config under `"database"`)
1600
1907
  *
1601
- * ```ts
1908
+ * ```ts import.meta.vitest
1602
1909
  * import { Config, ConfigProvider, Effect } from "effect"
1603
1910
  *
1604
1911
  * const dbConfig = Config.all({
@@ -1609,13 +1916,12 @@ export function date(name?: string) {
1609
1916
  * const provider = ConfigProvider.fromUnknown({
1610
1917
  * database: { host: "localhost", port: "5432" }
1611
1918
  * })
1612
- * // Effect.runSync(dbConfig.parse(provider))
1613
- * // { host: "localhost", port: 5432 }
1919
+ * Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
1614
1920
  * ```
1615
1921
  *
1616
1922
  * **Example** (Reading env vars with a nested prefix)
1617
1923
  *
1618
- * ```ts
1924
+ * ```ts import.meta.vitest
1619
1925
  * import { Config, ConfigProvider, Effect } from "effect"
1620
1926
  *
1621
1927
  * const host = Config.string("host").pipe(Config.nested("database"))
@@ -1623,7 +1929,7 @@ export function date(name?: string) {
1623
1929
  * const provider = ConfigProvider.fromEnv({
1624
1930
  * env: { database_host: "localhost" }
1625
1931
  * })
1626
- * // Effect.runSync(host.parse(provider)) // "localhost"
1932
+ * Effect.runSync(host.parse(provider)) // => "localhost"
1627
1933
  * ```
1628
1934
  *
1629
1935
  * @see {@link all} – combine multiple configs into a struct
@@ -1651,7 +1957,7 @@ export const nested: {
1651
1957
  *
1652
1958
  * **Example** (Nesting a struct config under `"database"`)
1653
1959
  *
1654
- * ```ts
1960
+ * ```ts import.meta.vitest
1655
1961
  * import { Config, ConfigProvider, Effect } from "effect"
1656
1962
  *
1657
1963
  * const dbConfig = Config.all({
@@ -1662,13 +1968,12 @@ export const nested: {
1662
1968
  * const provider = ConfigProvider.fromUnknown({
1663
1969
  * database: { host: "localhost", port: "5432" }
1664
1970
  * })
1665
- * // Effect.runSync(dbConfig.parse(provider))
1666
- * // { host: "localhost", port: 5432 }
1971
+ * Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
1667
1972
  * ```
1668
1973
  *
1669
1974
  * **Example** (Reading env vars with a nested prefix)
1670
1975
  *
1671
- * ```ts
1976
+ * ```ts import.meta.vitest
1672
1977
  * import { Config, ConfigProvider, Effect } from "effect"
1673
1978
  *
1674
1979
  * const host = Config.string("host").pipe(Config.nested("database"))
@@ -1676,7 +1981,7 @@ export const nested: {
1676
1981
  * const provider = ConfigProvider.fromEnv({
1677
1982
  * env: { database_host: "localhost" }
1678
1983
  * })
1679
- * // Effect.runSync(host.parse(provider)) // "localhost"
1984
+ * Effect.runSync(host.parse(provider)) // => "localhost"
1680
1985
  * ```
1681
1986
  *
1682
1987
  * @see {@link all} – combine multiple configs into a struct
@@ -1704,7 +2009,7 @@ export const nested: {
1704
2009
  *
1705
2010
  * **Example** (Nesting a struct config under `"database"`)
1706
2011
  *
1707
- * ```ts
2012
+ * ```ts import.meta.vitest
1708
2013
  * import { Config, ConfigProvider, Effect } from "effect"
1709
2014
  *
1710
2015
  * const dbConfig = Config.all({
@@ -1715,13 +2020,12 @@ export const nested: {
1715
2020
  * const provider = ConfigProvider.fromUnknown({
1716
2021
  * database: { host: "localhost", port: "5432" }
1717
2022
  * })
1718
- * // Effect.runSync(dbConfig.parse(provider))
1719
- * // { host: "localhost", port: 5432 }
2023
+ * Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
1720
2024
  * ```
1721
2025
  *
1722
2026
  * **Example** (Reading env vars with a nested prefix)
1723
2027
  *
1724
- * ```ts
2028
+ * ```ts import.meta.vitest
1725
2029
  * import { Config, ConfigProvider, Effect } from "effect"
1726
2030
  *
1727
2031
  * const host = Config.string("host").pipe(Config.nested("database"))
@@ -1729,7 +2033,7 @@ export const nested: {
1729
2033
  * const provider = ConfigProvider.fromEnv({
1730
2034
  * env: { database_host: "localhost" }
1731
2035
  * })
1732
- * // Effect.runSync(host.parse(provider)) // "localhost"
2036
+ * Effect.runSync(host.parse(provider)) // => "localhost"
1733
2037
  * ```
1734
2038
  *
1735
2039
  * @see {@link all} – combine multiple configs into a struct
@@ -1742,5 +2046,5 @@ export const nested: {
1742
2046
  } = dual(
1743
2047
  2,
1744
2048
  <A>(self: Config<A>, name: string): Config<A> =>
1745
- make((provider, pathPrefix) => self.parse(provider, [...pathPrefix, name]))
2049
+ make((provider, pathPrefix) => evaluateAt(self, provider, [...pathPrefix, name]))
1746
2050
  )