effect 4.0.0-beta.1 → 4.0.0-beta.11

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 (641) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts +7 -7
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +6 -4
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Combiner.d.ts +280 -13
  12. package/dist/Combiner.d.ts.map +1 -1
  13. package/dist/Combiner.js +198 -7
  14. package/dist/Combiner.js.map +1 -1
  15. package/dist/Config.d.ts +3 -3
  16. package/dist/Config.js +3 -3
  17. package/dist/Config.js.map +1 -1
  18. package/dist/ConfigProvider.d.ts +1 -1
  19. package/dist/Cron.d.ts +1 -1
  20. package/dist/Data.d.ts +534 -365
  21. package/dist/Data.d.ts.map +1 -1
  22. package/dist/Data.js +132 -79
  23. package/dist/Data.js.map +1 -1
  24. package/dist/DateTime.d.ts +23 -161
  25. package/dist/DateTime.d.ts.map +1 -1
  26. package/dist/DateTime.js +6 -51
  27. package/dist/DateTime.js.map +1 -1
  28. package/dist/Duration.d.ts +12 -12
  29. package/dist/Duration.d.ts.map +1 -1
  30. package/dist/Duration.js +12 -12
  31. package/dist/Duration.js.map +1 -1
  32. package/dist/Effect.d.ts +342 -248
  33. package/dist/Effect.d.ts.map +1 -1
  34. package/dist/Effect.js +119 -119
  35. package/dist/Effect.js.map +1 -1
  36. package/dist/Encoding.d.ts +194 -0
  37. package/dist/Encoding.d.ts.map +1 -0
  38. package/dist/Encoding.js +352 -0
  39. package/dist/Encoding.js.map +1 -0
  40. package/dist/Equal.d.ts +276 -109
  41. package/dist/Equal.d.ts.map +1 -1
  42. package/dist/Equal.js +124 -48
  43. package/dist/Equal.js.map +1 -1
  44. package/dist/ErrorReporter.d.ts +376 -0
  45. package/dist/ErrorReporter.d.ts.map +1 -0
  46. package/dist/ErrorReporter.js +246 -0
  47. package/dist/ErrorReporter.js.map +1 -0
  48. package/dist/FileSystem.d.ts +1 -1
  49. package/dist/FileSystem.d.ts.map +1 -1
  50. package/dist/FileSystem.js +5 -5
  51. package/dist/FileSystem.js.map +1 -1
  52. package/dist/Filter.d.ts +30 -1
  53. package/dist/Filter.d.ts.map +1 -1
  54. package/dist/Filter.js +15 -0
  55. package/dist/Filter.js.map +1 -1
  56. package/dist/Formatter.d.ts +131 -47
  57. package/dist/Formatter.d.ts.map +1 -1
  58. package/dist/Formatter.js +229 -51
  59. package/dist/Formatter.js.map +1 -1
  60. package/dist/Graph.d.ts +1 -1
  61. package/dist/Graph.d.ts.map +1 -1
  62. package/dist/Graph.js +2 -2
  63. package/dist/Graph.js.map +1 -1
  64. package/dist/JsonSchema.d.ts +299 -10
  65. package/dist/JsonSchema.d.ts.map +1 -1
  66. package/dist/JsonSchema.js +323 -4
  67. package/dist/JsonSchema.js.map +1 -1
  68. package/dist/Latch.d.ts +109 -0
  69. package/dist/Latch.d.ts.map +1 -0
  70. package/dist/Latch.js +72 -0
  71. package/dist/Latch.js.map +1 -0
  72. package/dist/LayerMap.d.ts +4 -4
  73. package/dist/LayerMap.d.ts.map +1 -1
  74. package/dist/LogLevel.d.ts +32 -0
  75. package/dist/LogLevel.d.ts.map +1 -1
  76. package/dist/LogLevel.js +28 -100
  77. package/dist/LogLevel.js.map +1 -1
  78. package/dist/Logger.d.ts +29 -95
  79. package/dist/Logger.d.ts.map +1 -1
  80. package/dist/Logger.js +2 -3
  81. package/dist/Logger.js.map +1 -1
  82. package/dist/Metric.d.ts +2 -2
  83. package/dist/Metric.d.ts.map +1 -1
  84. package/dist/Metric.js +1 -1
  85. package/dist/Metric.js.map +1 -1
  86. package/dist/Optic.d.ts +947 -18
  87. package/dist/Optic.d.ts.map +1 -1
  88. package/dist/Optic.js +454 -5
  89. package/dist/Optic.js.map +1 -1
  90. package/dist/Pipeable.d.ts +17 -0
  91. package/dist/Pipeable.d.ts.map +1 -1
  92. package/dist/Pipeable.js +19 -1
  93. package/dist/Pipeable.js.map +1 -1
  94. package/dist/PlatformError.d.ts +10 -9
  95. package/dist/PlatformError.d.ts.map +1 -1
  96. package/dist/PlatformError.js +2 -2
  97. package/dist/PlatformError.js.map +1 -1
  98. package/dist/Pool.d.ts +6 -4
  99. package/dist/Pool.d.ts.map +1 -1
  100. package/dist/Pool.js +7 -5
  101. package/dist/Pool.js.map +1 -1
  102. package/dist/PubSub.d.ts +3 -2
  103. package/dist/PubSub.d.ts.map +1 -1
  104. package/dist/PubSub.js +3 -2
  105. package/dist/PubSub.js.map +1 -1
  106. package/dist/Queue.d.ts.map +1 -1
  107. package/dist/Queue.js +0 -1
  108. package/dist/Queue.js.map +1 -1
  109. package/dist/Random.d.ts +18 -1
  110. package/dist/Random.d.ts.map +1 -1
  111. package/dist/Random.js +29 -12
  112. package/dist/Random.js.map +1 -1
  113. package/dist/RcMap.d.ts +2 -2
  114. package/dist/RcMap.d.ts.map +1 -1
  115. package/dist/RcMap.js +1 -1
  116. package/dist/RcMap.js.map +1 -1
  117. package/dist/RcRef.d.ts +1 -1
  118. package/dist/RcRef.d.ts.map +1 -1
  119. package/dist/Reducer.d.ts +166 -7
  120. package/dist/Reducer.d.ts.map +1 -1
  121. package/dist/Reducer.js +135 -1
  122. package/dist/Reducer.js.map +1 -1
  123. package/dist/References.d.ts +3 -3
  124. package/dist/References.d.ts.map +1 -1
  125. package/dist/Request.d.ts +1 -1
  126. package/dist/Request.d.ts.map +1 -1
  127. package/dist/Request.js +2 -1
  128. package/dist/Request.js.map +1 -1
  129. package/dist/RequestResolver.d.ts +6 -26
  130. package/dist/RequestResolver.d.ts.map +1 -1
  131. package/dist/RequestResolver.js +0 -20
  132. package/dist/RequestResolver.js.map +1 -1
  133. package/dist/Result.d.ts +12 -0
  134. package/dist/Result.d.ts.map +1 -1
  135. package/dist/Result.js +12 -0
  136. package/dist/Result.js.map +1 -1
  137. package/dist/Schedule.d.ts +33 -14
  138. package/dist/Schedule.d.ts.map +1 -1
  139. package/dist/Schedule.js +65 -24
  140. package/dist/Schedule.js.map +1 -1
  141. package/dist/Schema.d.ts +199 -49
  142. package/dist/Schema.d.ts.map +1 -1
  143. package/dist/Schema.js +386 -72
  144. package/dist/Schema.js.map +1 -1
  145. package/dist/SchemaAST.d.ts.map +1 -1
  146. package/dist/SchemaAST.js +2 -1
  147. package/dist/SchemaAST.js.map +1 -1
  148. package/dist/SchemaGetter.d.ts +2 -2
  149. package/dist/SchemaGetter.d.ts.map +1 -1
  150. package/dist/SchemaGetter.js +12 -14
  151. package/dist/SchemaGetter.js.map +1 -1
  152. package/dist/SchemaRepresentation.d.ts +44 -43
  153. package/dist/SchemaRepresentation.d.ts.map +1 -1
  154. package/dist/SchemaRepresentation.js +43 -24
  155. package/dist/SchemaRepresentation.js.map +1 -1
  156. package/dist/SchemaTransformation.d.ts +37 -0
  157. package/dist/SchemaTransformation.d.ts.map +1 -1
  158. package/dist/SchemaTransformation.js +80 -0
  159. package/dist/SchemaTransformation.js.map +1 -1
  160. package/dist/ScopedCache.d.ts +2 -2
  161. package/dist/ScopedCache.d.ts.map +1 -1
  162. package/dist/ScopedCache.js +1 -1
  163. package/dist/ScopedCache.js.map +1 -1
  164. package/dist/Semaphore.d.ts +211 -0
  165. package/dist/Semaphore.d.ts.map +1 -0
  166. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  167. package/dist/Semaphore.js.map +1 -0
  168. package/dist/Stream.d.ts +24 -24
  169. package/dist/Stream.d.ts.map +1 -1
  170. package/dist/Stream.js +12 -11
  171. package/dist/Stream.js.map +1 -1
  172. package/dist/Struct.d.ts +16 -0
  173. package/dist/Struct.d.ts.map +1 -1
  174. package/dist/Struct.js +22 -0
  175. package/dist/Struct.js.map +1 -1
  176. package/dist/SubscriptionRef.d.ts +2 -1
  177. package/dist/SubscriptionRef.d.ts.map +1 -1
  178. package/dist/SubscriptionRef.js +2 -1
  179. package/dist/SubscriptionRef.js.map +1 -1
  180. package/dist/SynchronizedRef.d.ts +2 -1
  181. package/dist/SynchronizedRef.d.ts.map +1 -1
  182. package/dist/SynchronizedRef.js +2 -1
  183. package/dist/SynchronizedRef.js.map +1 -1
  184. package/dist/Types.d.ts +14 -6
  185. package/dist/Types.d.ts.map +1 -1
  186. package/dist/index.d.ts +503 -19
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +503 -19
  189. package/dist/index.js.map +1 -1
  190. package/dist/internal/core.js +11 -3
  191. package/dist/internal/core.js.map +1 -1
  192. package/dist/internal/dateTime.js +3 -11
  193. package/dist/internal/dateTime.js.map +1 -1
  194. package/dist/internal/effect.js +85 -26
  195. package/dist/internal/effect.js.map +1 -1
  196. package/dist/internal/hashMap.js +2 -2
  197. package/dist/internal/hashMap.js.map +1 -1
  198. package/dist/internal/random.d.ts +2 -0
  199. package/dist/internal/random.d.ts.map +1 -0
  200. package/dist/internal/random.js +13 -0
  201. package/dist/internal/random.js.map +1 -0
  202. package/dist/internal/rcRef.js +3 -2
  203. package/dist/internal/rcRef.js.map +1 -1
  204. package/dist/testing/TestClock.d.ts +7 -6
  205. package/dist/testing/TestClock.d.ts.map +1 -1
  206. package/dist/testing/TestClock.js +6 -4
  207. package/dist/testing/TestClock.js.map +1 -1
  208. package/dist/testing/TestSchema.d.ts +6 -6
  209. package/dist/testing/TestSchema.d.ts.map +1 -1
  210. package/dist/unstable/ai/AiError.d.ts +48 -48
  211. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  212. package/dist/unstable/ai/Chat.d.ts +3 -3
  213. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  214. package/dist/unstable/ai/Chat.js +4 -3
  215. package/dist/unstable/ai/Chat.js.map +1 -1
  216. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  217. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  218. package/dist/unstable/ai/LanguageModel.js +41 -0
  219. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  220. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  221. package/dist/unstable/ai/McpServer.d.ts +1 -1
  222. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  223. package/dist/unstable/ai/McpServer.js.map +1 -1
  224. package/dist/unstable/ai/Prompt.d.ts +20 -20
  225. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  226. package/dist/unstable/ai/Response.d.ts +26 -26
  227. package/dist/unstable/ai/Response.d.ts.map +1 -1
  228. package/dist/unstable/ai/Response.js +1 -1
  229. package/dist/unstable/ai/Response.js.map +1 -1
  230. package/dist/unstable/cli/CliError.d.ts +5 -5
  231. package/dist/unstable/cli/CliOutput.js +37 -6
  232. package/dist/unstable/cli/CliOutput.js.map +1 -1
  233. package/dist/unstable/cli/Command.d.ts +199 -7
  234. package/dist/unstable/cli/Command.d.ts.map +1 -1
  235. package/dist/unstable/cli/Command.js +116 -6
  236. package/dist/unstable/cli/Command.js.map +1 -1
  237. package/dist/unstable/cli/HelpDoc.d.ts +60 -2
  238. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  239. package/dist/unstable/cli/internal/command.d.ts +11 -1
  240. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  241. package/dist/unstable/cli/internal/command.js +33 -8
  242. package/dist/unstable/cli/internal/command.js.map +1 -1
  243. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  244. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  245. package/dist/unstable/cli/internal/parser.js +10 -2
  246. package/dist/unstable/cli/internal/parser.js.map +1 -1
  247. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  248. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  249. package/dist/unstable/cluster/ClusterCron.js +1 -1
  250. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  251. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  252. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  253. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  254. package/dist/unstable/cluster/Entity.d.ts +5 -4
  255. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  256. package/dist/unstable/cluster/Entity.js.map +1 -1
  257. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  258. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  259. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  260. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  261. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  262. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  263. package/dist/unstable/cluster/Message.d.ts +10 -10
  264. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  265. package/dist/unstable/cluster/MessageStorage.js +2 -1
  266. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  267. package/dist/unstable/cluster/Reply.d.ts +6 -6
  268. package/dist/unstable/cluster/Runner.d.ts +1 -1
  269. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  270. package/dist/unstable/cluster/Runners.js +4 -3
  271. package/dist/unstable/cluster/Runners.js.map +1 -1
  272. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  273. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  274. package/dist/unstable/cluster/Sharding.js +8 -6
  275. package/dist/unstable/cluster/Sharding.js.map +1 -1
  276. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  277. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  278. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  279. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  280. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  281. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  282. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  283. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  284. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  285. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  286. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  287. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  288. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  289. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  290. package/dist/unstable/encoding/Sse.d.ts +4 -4
  291. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  292. package/dist/unstable/encoding/Sse.js.map +1 -1
  293. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  294. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/unstable/eventlog/EventLog.js +2 -1
  296. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  297. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  298. package/dist/unstable/http/Cookies.d.ts +3 -3
  299. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  300. package/dist/unstable/http/Cookies.js +2 -2
  301. package/dist/unstable/http/Cookies.js.map +1 -1
  302. package/dist/unstable/http/Headers.d.ts.map +1 -1
  303. package/dist/unstable/http/Headers.js +27 -10
  304. package/dist/unstable/http/Headers.js.map +1 -1
  305. package/dist/unstable/http/HttpBody.d.ts +17 -2
  306. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  307. package/dist/unstable/http/HttpBody.js +28 -1
  308. package/dist/unstable/http/HttpBody.js.map +1 -1
  309. package/dist/unstable/http/HttpClient.d.ts +11 -11
  310. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  311. package/dist/unstable/http/HttpClient.js +4 -4
  312. package/dist/unstable/http/HttpClient.js.map +1 -1
  313. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  314. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  315. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  316. package/dist/unstable/http/HttpClientRequest.js +15 -3
  317. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  318. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  319. package/dist/unstable/http/HttpEffect.js +30 -33
  320. package/dist/unstable/http/HttpEffect.js.map +1 -1
  321. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  322. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  323. package/dist/unstable/http/HttpMethod.js +3 -3
  324. package/dist/unstable/http/HttpMethod.js.map +1 -1
  325. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  326. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  327. package/dist/unstable/http/HttpMiddleware.js +4 -9
  328. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  329. package/dist/unstable/http/HttpServerError.d.ts +14 -32
  330. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  331. package/dist/unstable/http/HttpServerError.js +11 -27
  332. package/dist/unstable/http/HttpServerError.js.map +1 -1
  333. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  334. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  335. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  336. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  337. package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
  338. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  339. package/dist/unstable/http/HttpServerResponse.js +3 -1
  340. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  341. package/dist/unstable/http/Multipart.d.ts +3 -3
  342. package/dist/unstable/http/UrlParams.d.ts +14 -6
  343. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  344. package/dist/unstable/http/UrlParams.js +1 -1
  345. package/dist/unstable/http/UrlParams.js.map +1 -1
  346. package/dist/unstable/httpapi/HttpApiBuilder.js +6 -6
  347. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  348. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  349. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  350. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  351. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  352. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  353. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  354. package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
  355. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  356. package/dist/unstable/httpapi/HttpApiError.js +29 -9
  357. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  358. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  359. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  360. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  361. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  362. package/dist/unstable/httpapi/OpenApi.js +18 -16
  363. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  364. package/dist/unstable/observability/Otlp.d.ts +12 -12
  365. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  366. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  367. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  368. package/dist/unstable/observability/OtlpExporter.js +1 -1
  369. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  370. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  371. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  372. package/dist/unstable/observability/OtlpLogger.js +7 -4
  373. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  374. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  375. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  376. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  377. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  378. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  379. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  380. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  381. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  382. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  383. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  384. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  385. package/dist/unstable/persistence/PersistedCache.js +2 -1
  386. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  387. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  388. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  389. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  390. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  391. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  392. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  393. package/dist/unstable/persistence/Persistence.js +2 -2
  394. package/dist/unstable/persistence/Persistence.js.map +1 -1
  395. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  396. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  397. package/dist/unstable/persistence/RateLimiter.js +1 -1
  398. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  399. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  400. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  401. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  402. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  403. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  404. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  405. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  406. package/dist/unstable/reactivity/Atom.js +15 -12
  407. package/dist/unstable/reactivity/Atom.js.map +1 -1
  408. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  409. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  410. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  411. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  412. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  413. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  414. package/dist/unstable/reactivity/AtomRegistry.js +22 -1
  415. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  416. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  417. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  418. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  419. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  420. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  421. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  422. package/dist/unstable/reactivity/Hydration.js +76 -0
  423. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  424. package/dist/unstable/reactivity/index.d.ts +4 -0
  425. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  426. package/dist/unstable/reactivity/index.js +4 -0
  427. package/dist/unstable/reactivity/index.js.map +1 -1
  428. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  429. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  430. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  431. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  432. package/dist/unstable/rpc/RpcClient.js +6 -13
  433. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  434. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  435. package/dist/unstable/rpc/RpcServer.js +9 -3
  436. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  437. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  438. package/dist/unstable/rpc/Utils.js +2 -1
  439. package/dist/unstable/rpc/Utils.js.map +1 -1
  440. package/dist/unstable/schema/Model.d.ts +4 -4
  441. package/dist/unstable/schema/Model.d.ts.map +1 -1
  442. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  443. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  444. package/dist/unstable/schema/VariantSchema.js +13 -2
  445. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  446. package/dist/unstable/socket/Socket.d.ts +4 -4
  447. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  448. package/dist/unstable/socket/Socket.js +3 -2
  449. package/dist/unstable/socket/Socket.js.map +1 -1
  450. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  451. package/dist/unstable/sql/Migrator.d.ts +1 -1
  452. package/dist/unstable/sql/SqlError.d.ts +2 -2
  453. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  454. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  455. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  456. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  457. package/dist/unstable/sql/SqlSchema.js +24 -3
  458. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  459. package/dist/unstable/sql/Statement.js +0 -1
  460. package/dist/unstable/sql/Statement.js.map +1 -1
  461. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  462. package/dist/unstable/workers/Worker.js +2 -1
  463. package/dist/unstable/workers/Worker.js.map +1 -1
  464. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  465. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  466. package/dist/unstable/workflow/DurableClock.js +3 -3
  467. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  468. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  469. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  470. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  471. package/dist/unstable/workflow/WorkflowEngine.d.ts +8 -1
  472. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  473. package/dist/unstable/workflow/WorkflowEngine.js +133 -1
  474. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  475. package/package.json +2 -2
  476. package/src/Cache.ts +3 -3
  477. package/src/Cause.ts +1 -1
  478. package/src/Channel.ts +15 -13
  479. package/src/Combiner.ts +280 -13
  480. package/src/Config.ts +3 -3
  481. package/src/Data.ts +538 -374
  482. package/src/DateTime.ts +24 -164
  483. package/src/Duration.ts +15 -15
  484. package/src/Effect.ts +378 -269
  485. package/src/Encoding.ts +879 -0
  486. package/src/Equal.ts +278 -111
  487. package/src/ErrorReporter.ts +459 -0
  488. package/src/FileSystem.ts +7 -8
  489. package/src/Filter.ts +48 -1
  490. package/src/Formatter.ts +253 -51
  491. package/src/Graph.ts +8 -5
  492. package/src/JsonSchema.ts +383 -10
  493. package/src/Latch.ts +112 -0
  494. package/src/LayerMap.ts +5 -5
  495. package/src/LogLevel.ts +37 -0
  496. package/src/Logger.ts +33 -100
  497. package/src/Metric.ts +4 -4
  498. package/src/Optic.ts +948 -19
  499. package/src/Pipeable.ts +32 -1
  500. package/src/PlatformError.ts +5 -5
  501. package/src/Pool.ts +13 -11
  502. package/src/PubSub.ts +10 -9
  503. package/src/Queue.ts +0 -1
  504. package/src/Random.ts +33 -14
  505. package/src/RcMap.ts +5 -5
  506. package/src/RcRef.ts +1 -1
  507. package/src/Reducer.ts +166 -7
  508. package/src/References.ts +4 -4
  509. package/src/Request.ts +3 -2
  510. package/src/RequestResolver.ts +9 -29
  511. package/src/Result.ts +13 -0
  512. package/src/Schedule.ts +279 -140
  513. package/src/Schema.ts +575 -113
  514. package/src/SchemaAST.ts +2 -1
  515. package/src/SchemaGetter.ts +12 -14
  516. package/src/SchemaRepresentation.ts +43 -24
  517. package/src/SchemaTransformation.ts +104 -0
  518. package/src/ScopedCache.ts +3 -3
  519. package/src/Semaphore.ts +356 -0
  520. package/src/Stream.ts +50 -49
  521. package/src/Struct.ts +26 -0
  522. package/src/SubscriptionRef.ts +3 -2
  523. package/src/SynchronizedRef.ts +3 -2
  524. package/src/Types.ts +12 -2
  525. package/src/index.ts +507 -20
  526. package/src/internal/core.ts +12 -5
  527. package/src/internal/dateTime.ts +9 -30
  528. package/src/internal/effect.ts +194 -51
  529. package/src/internal/hashMap.ts +2 -2
  530. package/src/internal/random.ts +20 -0
  531. package/src/internal/rcRef.ts +4 -3
  532. package/src/testing/TestClock.ts +13 -11
  533. package/src/testing/TestSchema.ts +8 -8
  534. package/src/unstable/ai/AiError.ts +2 -2
  535. package/src/unstable/ai/Chat.ts +12 -11
  536. package/src/unstable/ai/LanguageModel.ts +74 -3
  537. package/src/unstable/ai/McpServer.ts +2 -2
  538. package/src/unstable/ai/Prompt.ts +37 -37
  539. package/src/unstable/ai/Response.ts +25 -25
  540. package/src/unstable/cli/CliOutput.ts +45 -6
  541. package/src/unstable/cli/Command.ts +298 -11
  542. package/src/unstable/cli/HelpDoc.ts +68 -2
  543. package/src/unstable/cli/internal/command.ts +47 -11
  544. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  545. package/src/unstable/cli/internal/parser.ts +11 -3
  546. package/src/unstable/cluster/ClusterCron.ts +2 -2
  547. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  548. package/src/unstable/cluster/Entity.ts +7 -6
  549. package/src/unstable/cluster/EntityResource.ts +4 -4
  550. package/src/unstable/cluster/Envelope.ts +1 -1
  551. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  552. package/src/unstable/cluster/MessageStorage.ts +3 -5
  553. package/src/unstable/cluster/Runners.ts +6 -5
  554. package/src/unstable/cluster/Sharding.ts +11 -9
  555. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  556. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  557. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  558. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  559. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  560. package/src/unstable/encoding/Sse.ts +2 -4
  561. package/src/unstable/eventlog/EventLog.ts +2 -1
  562. package/src/unstable/http/Cookies.ts +3 -3
  563. package/src/unstable/http/Headers.ts +28 -13
  564. package/src/unstable/http/HttpBody.ts +42 -1
  565. package/src/unstable/http/HttpClient.ts +19 -19
  566. package/src/unstable/http/HttpClientRequest.ts +38 -13
  567. package/src/unstable/http/HttpEffect.ts +27 -30
  568. package/src/unstable/http/HttpMethod.ts +16 -4
  569. package/src/unstable/http/HttpMiddleware.ts +5 -10
  570. package/src/unstable/http/HttpServerError.ts +13 -27
  571. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  572. package/src/unstable/http/HttpServerResponse.ts +4 -2
  573. package/src/unstable/http/Multipart.ts +2 -2
  574. package/src/unstable/http/UrlParams.ts +20 -5
  575. package/src/unstable/httpapi/HttpApiBuilder.ts +6 -5
  576. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  577. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  578. package/src/unstable/httpapi/HttpApiError.ts +30 -9
  579. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  580. package/src/unstable/httpapi/OpenApi.ts +18 -16
  581. package/src/unstable/observability/Otlp.ts +12 -12
  582. package/src/unstable/observability/OtlpExporter.ts +3 -3
  583. package/src/unstable/observability/OtlpLogger.ts +13 -9
  584. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  585. package/src/unstable/observability/OtlpTracer.ts +4 -4
  586. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  587. package/src/unstable/persistence/Persistable.ts +2 -2
  588. package/src/unstable/persistence/PersistedCache.ts +20 -9
  589. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  590. package/src/unstable/persistence/Persistence.ts +3 -3
  591. package/src/unstable/persistence/RateLimiter.ts +4 -4
  592. package/src/unstable/process/ChildProcess.ts +2 -2
  593. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  594. package/src/unstable/reactivity/Atom.ts +20 -18
  595. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  596. package/src/unstable/reactivity/AtomRegistry.ts +29 -1
  597. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  598. package/src/unstable/reactivity/Hydration.ts +112 -0
  599. package/src/unstable/reactivity/index.ts +5 -0
  600. package/src/unstable/rpc/Rpc.ts +3 -3
  601. package/src/unstable/rpc/RpcClient.ts +12 -54
  602. package/src/unstable/rpc/RpcServer.ts +10 -4
  603. package/src/unstable/rpc/Utils.ts +2 -1
  604. package/src/unstable/schema/VariantSchema.ts +36 -7
  605. package/src/unstable/socket/Socket.ts +7 -6
  606. package/src/unstable/sql/SqlModel.ts +2 -2
  607. package/src/unstable/sql/SqlSchema.ts +62 -13
  608. package/src/unstable/sql/Statement.ts +0 -1
  609. package/src/unstable/workers/Worker.ts +2 -1
  610. package/src/unstable/workflow/DurableClock.ts +8 -8
  611. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  612. package/src/unstable/workflow/WorkflowEngine.ts +181 -2
  613. package/dist/PartitionedSemaphore.d.ts +0 -52
  614. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  615. package/dist/PartitionedSemaphore.js.map +0 -1
  616. package/dist/encoding/Base64.d.ts +0 -67
  617. package/dist/encoding/Base64.d.ts.map +0 -1
  618. package/dist/encoding/Base64.js +0 -146
  619. package/dist/encoding/Base64.js.map +0 -1
  620. package/dist/encoding/Base64Url.d.ts +0 -60
  621. package/dist/encoding/Base64Url.d.ts.map +0 -1
  622. package/dist/encoding/Base64Url.js +0 -89
  623. package/dist/encoding/Base64Url.js.map +0 -1
  624. package/dist/encoding/EncodingError.d.ts +0 -31
  625. package/dist/encoding/EncodingError.d.ts.map +0 -1
  626. package/dist/encoding/EncodingError.js +0 -22
  627. package/dist/encoding/EncodingError.js.map +0 -1
  628. package/dist/encoding/Hex.d.ts +0 -61
  629. package/dist/encoding/Hex.d.ts.map +0 -1
  630. package/dist/encoding/Hex.js +0 -115
  631. package/dist/encoding/Hex.js.map +0 -1
  632. package/dist/encoding/index.d.ts +0 -26
  633. package/dist/encoding/index.d.ts.map +0 -1
  634. package/dist/encoding/index.js +0 -27
  635. package/dist/encoding/index.js.map +0 -1
  636. package/src/PartitionedSemaphore.ts +0 -182
  637. package/src/encoding/Base64.ts +0 -366
  638. package/src/encoding/Base64Url.ts +0 -104
  639. package/src/encoding/EncodingError.ts +0 -35
  640. package/src/encoding/Hex.ts +0 -390
  641. package/src/encoding/index.ts +0 -31
package/dist/Effect.d.ts CHANGED
@@ -78,7 +78,7 @@ import { type LazyArg } from "./Function.ts";
78
78
  import type { TypeLambda } from "./HKT.ts";
79
79
  import type * as Layer from "./Layer.ts";
80
80
  import type { Logger } from "./Logger.ts";
81
- import type { LogLevel } from "./LogLevel.ts";
81
+ import type { Severity } from "./LogLevel.ts";
82
82
  import * as Metric from "./Metric.ts";
83
83
  import type { Option } from "./Option.ts";
84
84
  import type { Pipeable } from "./Pipeable.ts";
@@ -92,7 +92,7 @@ import type { Scope } from "./Scope.ts";
92
92
  import * as ServiceMap from "./ServiceMap.ts";
93
93
  import type { AnySpan, ParentSpan, Span, SpanLink, SpanOptions, SpanOptionsNoTrace, TraceOptions, Tracer } from "./Tracer.ts";
94
94
  import type { TxRef } from "./TxRef.ts";
95
- import type { Concurrency, Covariant, EqualsWith, ExcludeReason, ExcludeTag, ExtractReason, ExtractTag, NoInfer, ReasonOf, ReasonTags, Tags, unassigned } from "./Types.ts";
95
+ import type { Concurrency, Covariant, EqualsWith, ExcludeReason, ExcludeTag, ExtractReason, ExtractTag, NoInfer, ReasonOf, ReasonTags, Simplify, Tags, unassigned } from "./Types.ts";
96
96
  import type * as Unify from "./Unify.ts";
97
97
  declare const TypeId: "~effect/Effect";
98
98
  /**
@@ -724,6 +724,199 @@ export declare const partition: {
724
724
  readonly concurrency?: Concurrency | undefined;
725
725
  }): Effect<[excluded: Array<E>, satisfying: Array<B>], never, R>;
726
726
  };
727
+ /**
728
+ * Applies an effectful function to each element and accumulates all failures.
729
+ *
730
+ * This function always evaluates every element. If at least one effect fails,
731
+ * all failures are returned as a non-empty array and successes are discarded.
732
+ * If all effects succeed, it returns all collected successes.
733
+ *
734
+ * Use `discard: true` to ignore successful values while still validating all
735
+ * elements.
736
+ *
737
+ * @example
738
+ * ```ts
739
+ * import { Effect } from "effect"
740
+ *
741
+ * const program = Effect.validate([0, 1, 2, 3], (n) =>
742
+ * n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
743
+ * )
744
+ *
745
+ * Effect.runPromiseExit(program).then(console.log)
746
+ * // {
747
+ * // _id: 'Exit',
748
+ * // _tag: 'Failure',
749
+ * // cause: {
750
+ * // _id: 'Cause',
751
+ * // reasons: [
752
+ * // { _id: 'Reason', _tag: 'Fail', error: '0 is even' },
753
+ * // { _id: 'Reason', _tag: 'Fail', error: '2 is even' }
754
+ * // ]
755
+ * // }
756
+ * // }
757
+ * ```
758
+ *
759
+ * @since 4.0.0
760
+ * @category Error Accumulation
761
+ */
762
+ export declare const validate: {
763
+ /**
764
+ * Applies an effectful function to each element and accumulates all failures.
765
+ *
766
+ * This function always evaluates every element. If at least one effect fails,
767
+ * all failures are returned as a non-empty array and successes are discarded.
768
+ * If all effects succeed, it returns all collected successes.
769
+ *
770
+ * Use `discard: true` to ignore successful values while still validating all
771
+ * elements.
772
+ *
773
+ * @example
774
+ * ```ts
775
+ * import { Effect } from "effect"
776
+ *
777
+ * const program = Effect.validate([0, 1, 2, 3], (n) =>
778
+ * n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
779
+ * )
780
+ *
781
+ * Effect.runPromiseExit(program).then(console.log)
782
+ * // {
783
+ * // _id: 'Exit',
784
+ * // _tag: 'Failure',
785
+ * // cause: {
786
+ * // _id: 'Cause',
787
+ * // reasons: [
788
+ * // { _id: 'Reason', _tag: 'Fail', error: '0 is even' },
789
+ * // { _id: 'Reason', _tag: 'Fail', error: '2 is even' }
790
+ * // ]
791
+ * // }
792
+ * // }
793
+ * ```
794
+ *
795
+ * @since 4.0.0
796
+ * @category Error Accumulation
797
+ */
798
+ <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options?: {
799
+ readonly concurrency?: Concurrency | undefined;
800
+ readonly discard?: false | undefined;
801
+ } | undefined): (elements: Iterable<A>) => Effect<Array<B>, Arr.NonEmptyArray<E>, R>;
802
+ /**
803
+ * Applies an effectful function to each element and accumulates all failures.
804
+ *
805
+ * This function always evaluates every element. If at least one effect fails,
806
+ * all failures are returned as a non-empty array and successes are discarded.
807
+ * If all effects succeed, it returns all collected successes.
808
+ *
809
+ * Use `discard: true` to ignore successful values while still validating all
810
+ * elements.
811
+ *
812
+ * @example
813
+ * ```ts
814
+ * import { Effect } from "effect"
815
+ *
816
+ * const program = Effect.validate([0, 1, 2, 3], (n) =>
817
+ * n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
818
+ * )
819
+ *
820
+ * Effect.runPromiseExit(program).then(console.log)
821
+ * // {
822
+ * // _id: 'Exit',
823
+ * // _tag: 'Failure',
824
+ * // cause: {
825
+ * // _id: 'Cause',
826
+ * // reasons: [
827
+ * // { _id: 'Reason', _tag: 'Fail', error: '0 is even' },
828
+ * // { _id: 'Reason', _tag: 'Fail', error: '2 is even' }
829
+ * // ]
830
+ * // }
831
+ * // }
832
+ * ```
833
+ *
834
+ * @since 4.0.0
835
+ * @category Error Accumulation
836
+ */
837
+ <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options: {
838
+ readonly concurrency?: Concurrency | undefined;
839
+ readonly discard: true;
840
+ }): (elements: Iterable<A>) => Effect<void, Arr.NonEmptyArray<E>, R>;
841
+ /**
842
+ * Applies an effectful function to each element and accumulates all failures.
843
+ *
844
+ * This function always evaluates every element. If at least one effect fails,
845
+ * all failures are returned as a non-empty array and successes are discarded.
846
+ * If all effects succeed, it returns all collected successes.
847
+ *
848
+ * Use `discard: true` to ignore successful values while still validating all
849
+ * elements.
850
+ *
851
+ * @example
852
+ * ```ts
853
+ * import { Effect } from "effect"
854
+ *
855
+ * const program = Effect.validate([0, 1, 2, 3], (n) =>
856
+ * n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
857
+ * )
858
+ *
859
+ * Effect.runPromiseExit(program).then(console.log)
860
+ * // {
861
+ * // _id: 'Exit',
862
+ * // _tag: 'Failure',
863
+ * // cause: {
864
+ * // _id: 'Cause',
865
+ * // reasons: [
866
+ * // { _id: 'Reason', _tag: 'Fail', error: '0 is even' },
867
+ * // { _id: 'Reason', _tag: 'Fail', error: '2 is even' }
868
+ * // ]
869
+ * // }
870
+ * // }
871
+ * ```
872
+ *
873
+ * @since 4.0.0
874
+ * @category Error Accumulation
875
+ */
876
+ <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options?: {
877
+ readonly concurrency?: Concurrency | undefined;
878
+ readonly discard?: false | undefined;
879
+ } | undefined): Effect<Array<B>, Arr.NonEmptyArray<E>, R>;
880
+ /**
881
+ * Applies an effectful function to each element and accumulates all failures.
882
+ *
883
+ * This function always evaluates every element. If at least one effect fails,
884
+ * all failures are returned as a non-empty array and successes are discarded.
885
+ * If all effects succeed, it returns all collected successes.
886
+ *
887
+ * Use `discard: true` to ignore successful values while still validating all
888
+ * elements.
889
+ *
890
+ * @example
891
+ * ```ts
892
+ * import { Effect } from "effect"
893
+ *
894
+ * const program = Effect.validate([0, 1, 2, 3], (n) =>
895
+ * n % 2 === 0 ? Effect.fail(`${n} is even`) : Effect.succeed(n)
896
+ * )
897
+ *
898
+ * Effect.runPromiseExit(program).then(console.log)
899
+ * // {
900
+ * // _id: 'Exit',
901
+ * // _tag: 'Failure',
902
+ * // cause: {
903
+ * // _id: 'Cause',
904
+ * // reasons: [
905
+ * // { _id: 'Reason', _tag: 'Fail', error: '0 is even' },
906
+ * // { _id: 'Reason', _tag: 'Fail', error: '2 is even' }
907
+ * // ]
908
+ * // }
909
+ * // }
910
+ * ```
911
+ *
912
+ * @since 4.0.0
913
+ * @category Error Accumulation
914
+ */
915
+ <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options: {
916
+ readonly concurrency?: Concurrency | undefined;
917
+ readonly discard: true;
918
+ }): Effect<void, Arr.NonEmptyArray<E>, R>;
919
+ };
727
920
  /**
728
921
  * Executes an effectful operation for each element in an `Iterable`.
729
922
  *
@@ -1352,6 +1545,90 @@ export declare const callback: <A, E = never, R = never>(register: (this: Schedu
1352
1545
  * @category Creating Effects
1353
1546
  */
1354
1547
  export declare const never: Effect<never>;
1548
+ /**
1549
+ * An `Effect` containing an empty record `{}`, used as the starting point for
1550
+ * do notation chains.
1551
+ *
1552
+ * @example
1553
+ * ```ts
1554
+ * import { Effect } from "effect"
1555
+ * import { pipe } from "effect/Function"
1556
+ *
1557
+ * const program = pipe(
1558
+ * Effect.Do,
1559
+ * Effect.bind("x", () => Effect.succeed(2)),
1560
+ * Effect.bind("y", ({ x }) => Effect.succeed(x + 1)),
1561
+ * Effect.let("sum", ({ x, y }) => x + y)
1562
+ * )
1563
+ * ```
1564
+ *
1565
+ * @since 4.0.0
1566
+ * @category Do notation
1567
+ */
1568
+ export declare const Do: Effect<{}>;
1569
+ /**
1570
+ * Gives a name to the success value of an `Effect`, creating a single-key
1571
+ * record used in do notation pipelines.
1572
+ *
1573
+ * @since 4.0.0
1574
+ * @category Do notation
1575
+ */
1576
+ export declare const bindTo: {
1577
+ /**
1578
+ * Gives a name to the success value of an `Effect`, creating a single-key
1579
+ * record used in do notation pipelines.
1580
+ *
1581
+ * @since 4.0.0
1582
+ * @category Do notation
1583
+ */
1584
+ <N extends string>(name: N): <A, E, R>(self: Effect<A, E, R>) => Effect<{
1585
+ [K in N]: A;
1586
+ }, E, R>;
1587
+ /**
1588
+ * Gives a name to the success value of an `Effect`, creating a single-key
1589
+ * record used in do notation pipelines.
1590
+ *
1591
+ * @since 4.0.0
1592
+ * @category Do notation
1593
+ */
1594
+ <A, E, R, N extends string>(self: Effect<A, E, R>, name: N): Effect<{
1595
+ [K in N]: A;
1596
+ }, E, R>;
1597
+ };
1598
+ declare const let_: {
1599
+ <N extends string, A extends Record<string, any>, B>(name: N, f: (a: NoInfer<A>) => B): <E, R>(self: Effect<A, E, R>) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>;
1600
+ <A extends Record<string, any>, E, R, B, N extends string>(self: Effect<A, E, R>, name: N, f: (a: NoInfer<A>) => B): Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>;
1601
+ };
1602
+ export {
1603
+ /**
1604
+ * Adds a computed plain value to the do notation record.
1605
+ *
1606
+ * @since 4.0.0
1607
+ * @category Do notation
1608
+ */
1609
+ let_ as let };
1610
+ /**
1611
+ * Adds an `Effect` value to the do notation record under a given name.
1612
+ *
1613
+ * @since 4.0.0
1614
+ * @category Do notation
1615
+ */
1616
+ export declare const bind: {
1617
+ /**
1618
+ * Adds an `Effect` value to the do notation record under a given name.
1619
+ *
1620
+ * @since 4.0.0
1621
+ * @category Do notation
1622
+ */
1623
+ <N extends string, A extends Record<string, any>, B, E2, R2>(name: N, f: (a: NoInfer<A>) => Effect<B, E2, R2>): <E, R>(self: Effect<A, E, R>) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E | E2, R | R2>;
1624
+ /**
1625
+ * Adds an `Effect` value to the do notation record under a given name.
1626
+ *
1627
+ * @since 4.0.0
1628
+ * @category Do notation
1629
+ */
1630
+ <A extends Record<string, any>, E, R, B, E2, R2, N extends string>(self: Effect<A, E, R>, name: N, f: (a: NoInfer<A>) => Effect<B, E2, R2>): Effect<Simplify<Omit<A, N> & Record<N, B>>, E | E2, R | R2>;
1631
+ };
1355
1632
  /**
1356
1633
  * Provides a way to write effectful code using generator functions, simplifying
1357
1634
  * control flow and error handling.
@@ -4704,6 +4981,33 @@ export declare const catchIf: {
4704
4981
  */
4705
4982
  <A, E, R, Result extends Filter.ResultOrBool, A2, E2, R2, A3 = never, E3 = Filter.Fail<E, Result>, R3 = never>(self: Effect<A, E, R>, filter: Filter.OrPredicate<NoInfer<E>, Result>, f: (e: Filter.Pass<E, Result>) => Effect<A2, E2, R2>, orElse?: ((e: Filter.Fail<E, Result>) => Effect<A3, E3, R3>) | undefined): Effect<A | A2 | A3, E2 | E3, R | R2 | R3>;
4706
4983
  };
4984
+ /**
4985
+ * Catches `NoSuchElementError` failures and converts them to `Option.none`.
4986
+ *
4987
+ * Success values become `Option.some`, `NoSuchElementError` becomes
4988
+ * `Option.none`, and all other errors are preserved.
4989
+ *
4990
+ * @example
4991
+ * ```ts
4992
+ * import { Effect, Option } from "effect"
4993
+ *
4994
+ * const some = Effect.fromNullishOr(1).pipe(Effect.catchNoSuchElement)
4995
+ * const none = Effect.fromNullishOr(null).pipe(Effect.catchNoSuchElement)
4996
+ *
4997
+ * Effect.runPromise(some).then(console.log) // { _id: 'Option', _tag: 'Some', value: 1 }
4998
+ * Effect.runPromise(none).then(console.log) // { _id: 'Option', _tag: 'None' }
4999
+ * ```
5000
+ *
5001
+ * **Previously Known As**
5002
+ *
5003
+ * This API replaces the following from Effect 3.x:
5004
+ *
5005
+ * - `Effect.optionFromOptional`
5006
+ *
5007
+ * @since 2.0.0
5008
+ * @category Error Handling
5009
+ */
5010
+ export declare const catchNoSuchElement: <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, Exclude<E, Cause.NoSuchElementError>, R>;
4707
5011
  /**
4708
5012
  * Recovers from specific failures based on a predicate.
4709
5013
  *
@@ -6310,11 +6614,11 @@ export declare const sandbox: <A, E, R>(self: Effect<A, E, R>) => Effect<A, Caus
6310
6614
  * @category Error Handling
6311
6615
  */
6312
6616
  export declare const ignore: <Arg extends Effect<any, any, any> | {
6313
- readonly log?: boolean | LogLevel | undefined;
6617
+ readonly log?: boolean | Severity | undefined;
6314
6618
  } | undefined = {
6315
- readonly log?: boolean | LogLevel | undefined;
6619
+ readonly log?: boolean | Severity | undefined;
6316
6620
  }>(effectOrOptions?: Arg, options?: {
6317
- readonly log?: boolean | LogLevel | undefined;
6621
+ readonly log?: boolean | Severity | undefined;
6318
6622
  } | undefined) => [Arg] extends [Effect<infer _A, infer _E, infer _R>] ? Effect<void, never, _R> : <A, E, R>(self: Effect<A, E, R>) => Effect<void, never, R>;
6319
6623
  /**
6320
6624
  * Ignores the effect's failure cause, including defects and interruptions.
@@ -6335,11 +6639,11 @@ export declare const ignore: <Arg extends Effect<any, any, any> | {
6335
6639
  * @category Error Handling
6336
6640
  */
6337
6641
  export declare const ignoreCause: <Arg extends Effect<any, any, any> | {
6338
- readonly log?: boolean | LogLevel | undefined;
6642
+ readonly log?: boolean | Severity | undefined;
6339
6643
  } | undefined = {
6340
- readonly log?: boolean | LogLevel | undefined;
6644
+ readonly log?: boolean | Severity | undefined;
6341
6645
  }>(effectOrOptions?: Arg, options?: {
6342
- readonly log?: boolean | LogLevel | undefined;
6646
+ readonly log?: boolean | Severity | undefined;
6343
6647
  } | undefined) => [Arg] extends [Effect<infer _A, infer _E, infer _R>] ? Effect<void, never, _R> : <A, E, R>(self: Effect<A, E, R>) => Effect<void, never, R>;
6344
6648
  /**
6345
6649
  * Apply an `ExecutionPlan` to an effect, retrying with step-provided resources
@@ -6445,6 +6749,22 @@ export declare const withExecutionPlan: {
6445
6749
  requirements: PlanR;
6446
6750
  }>): Effect<A, E | PlanE, Exclude<R, Provides> | PlanR>;
6447
6751
  };
6752
+ /**
6753
+ * Runs an effect and reports any errors to the configured `ErrorReporter`s.
6754
+ *
6755
+ * If the `defectsOnly` option is set to `true`, only defects (unrecoverable
6756
+ * errors) will be reported, while regular failures will be ignored.
6757
+ *
6758
+ * @since 4.0.0
6759
+ * @category Error Handling
6760
+ */
6761
+ export declare const withErrorReporting: <Arg extends Effect<any, any, any> | {
6762
+ readonly defectsOnly?: boolean | undefined;
6763
+ } | undefined = {
6764
+ readonly defectsOnly?: boolean | undefined;
6765
+ }>(effectOrOptions: Arg, options?: {
6766
+ readonly defectsOnly?: boolean | undefined;
6767
+ } | undefined) => [Arg] extends [Effect<infer _A, infer _E, infer _R>] ? Arg : <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>;
6448
6768
  /**
6449
6769
  * Replaces the original failure with a success value, ensuring the effect
6450
6770
  * cannot fail.
@@ -6665,7 +6985,7 @@ export declare const timeout: {
6665
6985
  * @since 2.0.0
6666
6986
  * @category Delays & Timeouts
6667
6987
  */
6668
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>;
6988
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>;
6669
6989
  /**
6670
6990
  * Adds a time limit to an effect, triggering a timeout if the effect exceeds
6671
6991
  * the duration.
@@ -6712,7 +7032,7 @@ export declare const timeout: {
6712
7032
  * @since 2.0.0
6713
7033
  * @category Delays & Timeouts
6714
7034
  */
6715
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E | Cause.TimeoutError, R>;
7035
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E | Cause.TimeoutError, R>;
6716
7036
  };
6717
7037
  /**
6718
7038
  * Handles timeouts by returning an `Option` that represents either the result
@@ -6813,7 +7133,7 @@ export declare const timeoutOption: {
6813
7133
  * @since 3.1.0
6814
7134
  * @category Delays & Timeouts
6815
7135
  */
6816
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>;
7136
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>;
6817
7137
  /**
6818
7138
  * Handles timeouts by returning an `Option` that represents either the result
6819
7139
  * or a timeout.
@@ -6863,7 +7183,7 @@ export declare const timeoutOption: {
6863
7183
  * @since 3.1.0
6864
7184
  * @category Delays & Timeouts
6865
7185
  */
6866
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<Option<A>, E, R>;
7186
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<Option<A>, E, R>;
6867
7187
  };
6868
7188
  /**
6869
7189
  * Applies a timeout to an effect, with a fallback effect executed if the timeout is reached.
@@ -6939,7 +7259,7 @@ export declare const timeoutOrElse: {
6939
7259
  * @category Delays & Timeouts
6940
7260
  */
6941
7261
  <A2, E2, R2>(options: {
6942
- readonly duration: Duration.DurationInput;
7262
+ readonly duration: Duration.Input;
6943
7263
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>;
6944
7264
  }): <A, E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2, R | R2>;
6945
7265
  /**
@@ -6979,7 +7299,7 @@ export declare const timeoutOrElse: {
6979
7299
  * @category Delays & Timeouts
6980
7300
  */
6981
7301
  <A, E, R, A2, E2, R2>(self: Effect<A, E, R>, options: {
6982
- readonly duration: Duration.DurationInput;
7302
+ readonly duration: Duration.Input;
6983
7303
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>;
6984
7304
  }): Effect<A | A2, E | E2, R | R2>;
6985
7305
  };
@@ -7024,7 +7344,7 @@ export declare const delay: {
7024
7344
  * @since 2.0.0
7025
7345
  * @category Delays & Timeouts
7026
7346
  */
7027
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>;
7347
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>;
7028
7348
  /**
7029
7349
  * Returns an effect that is delayed from this effect by the specified
7030
7350
  * `Duration`.
@@ -7045,7 +7365,7 @@ export declare const delay: {
7045
7365
  * @since 2.0.0
7046
7366
  * @category Delays & Timeouts
7047
7367
  */
7048
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E, R>;
7368
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E, R>;
7049
7369
  };
7050
7370
  /**
7051
7371
  * Returns an effect that suspends for the specified duration. This method is
@@ -7069,7 +7389,7 @@ export declare const delay: {
7069
7389
  * @since 2.0.0
7070
7390
  * @category Delays & Timeouts
7071
7391
  */
7072
- export declare const sleep: (duration: Duration.DurationInput) => Effect<void>;
7392
+ export declare const sleep: (duration: Duration.Input) => Effect<void>;
7073
7393
  /**
7074
7394
  * Measures the runtime of an effect and returns the duration with its result.
7075
7395
  *
@@ -11385,7 +11705,7 @@ export declare const cachedWithTTL: {
11385
11705
  * @since 2.0.0
11386
11706
  * @category Caching
11387
11707
  */
11388
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>;
11708
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>;
11389
11709
  /**
11390
11710
  * Returns an effect that caches its result for a specified `Duration`,
11391
11711
  * known as "timeToLive" (TTL).
@@ -11452,7 +11772,7 @@ export declare const cachedWithTTL: {
11452
11772
  * @since 2.0.0
11453
11773
  * @category Caching
11454
11774
  */
11455
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<Effect<A, E, R>>;
11775
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<Effect<A, E, R>>;
11456
11776
  };
11457
11777
  /**
11458
11778
  * Caches an effect's result for a specified duration and allows manual
@@ -11593,7 +11913,7 @@ export declare const cachedInvalidateWithTTL: {
11593
11913
  * @since 2.0.0
11594
11914
  * @category Caching
11595
11915
  */
11596
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>;
11916
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>;
11597
11917
  /**
11598
11918
  * Caches an effect's result for a specified duration and allows manual
11599
11919
  * invalidation before expiration.
@@ -11663,7 +11983,7 @@ export declare const cachedInvalidateWithTTL: {
11663
11983
  * @since 2.0.0
11664
11984
  * @category Caching
11665
11985
  */
11666
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<[Effect<A, E, R>, Effect<void>]>;
11986
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<[Effect<A, E, R>, Effect<void>]>;
11667
11987
  };
11668
11988
  /**
11669
11989
  * Returns an effect that is immediately interrupted.
@@ -11863,232 +12183,6 @@ export declare const uninterruptibleMask: <A, E, R>(f: (restore: <AX, EX, RX>(ef
11863
12183
  * @category Interruption
11864
12184
  */
11865
12185
  export declare const interruptibleMask: <A, E, R>(f: (restore: <AX, EX, RX>(effect: Effect<AX, EX, RX>) => Effect<AX, EX, RX>) => Effect<A, E, R>) => Effect<A, E, R>;
11866
- /**
11867
- * @category Semaphore
11868
- * @since 2.0.0
11869
- * @example
11870
- * ```ts
11871
- * import { Effect } from "effect"
11872
- *
11873
- * // Create and use a semaphore for controlling concurrent access
11874
- * const program = Effect.gen(function*() {
11875
- * const semaphore = yield* Effect.makeSemaphore(2)
11876
- *
11877
- * return yield* semaphore.withPermits(1)(
11878
- * Effect.succeed("Resource accessed")
11879
- * )
11880
- * })
11881
- * ```
11882
- */
11883
- export interface Semaphore {
11884
- /**
11885
- * Adjusts the number of permits available in the semaphore.
11886
- */
11887
- resize(permits: number): Effect<void>;
11888
- /**
11889
- * Runs an effect with the given number of permits and releases the permits
11890
- * when the effect completes.
11891
- *
11892
- * **Details**
11893
- *
11894
- * This function acquires the specified number of permits before executing
11895
- * the provided effect. Once the effect finishes, the permits are released.
11896
- * If insufficient permits are available, the function will wait until they
11897
- * are released by other tasks.
11898
- */
11899
- withPermits(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>;
11900
- /**
11901
- * Runs an effect with the given number of permits and releases the permits
11902
- * when the effect completes.
11903
- *
11904
- * **Details**
11905
- *
11906
- * This function acquires the specified number of permits before executing
11907
- * the provided effect. Once the effect finishes, the permits are released.
11908
- * If insufficient permits are available, the function will wait until they
11909
- * are released by other tasks.
11910
- */
11911
- withPermit<A, E, R>(self: Effect<A, E, R>): Effect<A, E, R>;
11912
- /**
11913
- * Runs an effect only if the specified number of permits are immediately
11914
- * available.
11915
- *
11916
- * **Details**
11917
- *
11918
- * This function attempts to acquire the specified number of permits. If they
11919
- * are available, it runs the effect and releases the permits after the effect
11920
- * completes. If permits are not available, the effect does not execute, and
11921
- * the result is `Option.none`.
11922
- */
11923
- withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>;
11924
- /**
11925
- * Acquires the specified number of permits and returns the resulting
11926
- * available permits, suspending the task if they are not yet available.
11927
- * Concurrent pending `take` calls are processed in a first-in, first-out manner.
11928
- */
11929
- take(permits: number): Effect<number>;
11930
- /**
11931
- * Releases the specified number of permits and returns the resulting
11932
- * available permits.
11933
- */
11934
- release(permits: number): Effect<number>;
11935
- /**
11936
- * Releases all permits held by this semaphore and returns the resulting available permits.
11937
- */
11938
- releaseAll: Effect<number>;
11939
- }
11940
- /**
11941
- * Unsafely creates a new Semaphore.
11942
- *
11943
- * @example
11944
- * ```ts
11945
- * import { Effect } from "effect"
11946
- *
11947
- * const semaphore = Effect.makeSemaphoreUnsafe(3)
11948
- *
11949
- * const task = (id: number) =>
11950
- * semaphore.withPermits(1)(
11951
- * Effect.gen(function*() {
11952
- * yield* Effect.log(`Task ${id} started`)
11953
- * yield* Effect.sleep("1 second")
11954
- * yield* Effect.log(`Task ${id} completed`)
11955
- * })
11956
- * )
11957
- *
11958
- * // Only 3 tasks can run concurrently
11959
- * const program = Effect.all([
11960
- * task(1),
11961
- * task(2),
11962
- * task(3),
11963
- * task(4),
11964
- * task(5)
11965
- * ], { concurrency: "unbounded" })
11966
- * ```
11967
- *
11968
- * @since 2.0.0
11969
- * @category Semaphore
11970
- */
11971
- export declare const makeSemaphoreUnsafe: (permits: number) => Semaphore;
11972
- /**
11973
- * Creates a new Semaphore.
11974
- *
11975
- * @example
11976
- * ```ts
11977
- * import { Effect } from "effect"
11978
- *
11979
- * const program = Effect.gen(function*() {
11980
- * const semaphore = yield* Effect.makeSemaphore(2)
11981
- *
11982
- * const task = (id: number) =>
11983
- * semaphore.withPermits(1)(
11984
- * Effect.gen(function*() {
11985
- * yield* Effect.log(`Task ${id} acquired permit`)
11986
- * yield* Effect.sleep("1 second")
11987
- * yield* Effect.log(`Task ${id} releasing permit`)
11988
- * })
11989
- * )
11990
- *
11991
- * // Run 4 tasks, but only 2 can run concurrently
11992
- * yield* Effect.all([task(1), task(2), task(3), task(4)])
11993
- * })
11994
- * ```
11995
- *
11996
- * @since 2.0.0
11997
- * @category Semaphore
11998
- */
11999
- export declare const makeSemaphore: (permits: number) => Effect<Semaphore>;
12000
- /**
12001
- * @category Latch
12002
- * @since 3.8.0
12003
- * @example
12004
- * ```ts
12005
- * import { Effect } from "effect"
12006
- *
12007
- * // Create and use a latch for coordination between fibers
12008
- * const program = Effect.gen(function*() {
12009
- * const latch = yield* Effect.makeLatch()
12010
- *
12011
- * // Wait for the latch to be opened
12012
- * yield* latch.await
12013
- *
12014
- * return "Latch was opened!"
12015
- * })
12016
- * ```
12017
- */
12018
- export interface Latch {
12019
- /** open the latch, releasing all fibers waiting on it */
12020
- readonly open: Effect<boolean>;
12021
- /** open the latch, releasing all fibers waiting on it */
12022
- readonly openUnsafe: () => boolean;
12023
- /** release all fibers waiting on the latch, without opening it */
12024
- readonly release: Effect<boolean>;
12025
- /** wait for the latch to be opened */
12026
- readonly await: Effect<void>;
12027
- /** close the latch */
12028
- readonly close: Effect<boolean>;
12029
- /** close the latch */
12030
- readonly closeUnsafe: () => boolean;
12031
- /** only run the given effect when the latch is open */
12032
- readonly whenOpen: <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>;
12033
- }
12034
- /**
12035
- * Creates a new Latch.
12036
- *
12037
- * @example
12038
- * ```ts
12039
- * import { Effect } from "effect"
12040
- *
12041
- * const latch = Effect.makeLatchUnsafe(false)
12042
- *
12043
- * const waiter = Effect.gen(function*() {
12044
- * yield* Effect.log("Waiting for latch to open...")
12045
- * yield* latch.await
12046
- * yield* Effect.log("Latch opened! Continuing...")
12047
- * })
12048
- *
12049
- * const opener = Effect.gen(function*() {
12050
- * yield* Effect.sleep("2 seconds")
12051
- * yield* Effect.log("Opening latch...")
12052
- * yield* latch.open
12053
- * })
12054
- *
12055
- * const program = Effect.all([waiter, opener])
12056
- * ```
12057
- *
12058
- * @category Latch
12059
- * @since 3.8.0
12060
- */
12061
- export declare const makeLatchUnsafe: (open?: boolean | undefined) => Latch;
12062
- /**
12063
- * Creates a new Latch.
12064
- *
12065
- * @example
12066
- * ```ts
12067
- * import { Effect } from "effect"
12068
- *
12069
- * const program = Effect.gen(function*() {
12070
- * const latch = yield* Effect.makeLatch(false)
12071
- *
12072
- * const waiter = Effect.gen(function*() {
12073
- * yield* Effect.log("Waiting for latch to open...")
12074
- * yield* latch.await
12075
- * yield* Effect.log("Latch opened! Continuing...")
12076
- * })
12077
- *
12078
- * const opener = Effect.gen(function*() {
12079
- * yield* Effect.sleep("2 seconds")
12080
- * yield* Effect.log("Opening latch...")
12081
- * yield* latch.open
12082
- * })
12083
- *
12084
- * yield* Effect.all([waiter, opener])
12085
- * })
12086
- * ```
12087
- *
12088
- * @category Latch
12089
- * @since 3.8.0
12090
- */
12091
- export declare const makeLatch: (open?: boolean | undefined) => Effect<Latch>;
12092
12186
  /**
12093
12187
  * @since 2.0.0
12094
12188
  * @category Repetition / Recursion
@@ -15745,7 +15839,7 @@ export declare const clockWith: <A, E, R>(f: (clock: Clock) => Effect<A, E, R>)
15745
15839
  * @since 2.0.0
15746
15840
  * @category Logging
15747
15841
  */
15748
- export declare const logWithLevel: (level?: LogLevel) => (...message: ReadonlyArray<any>) => Effect<void>;
15842
+ export declare const logWithLevel: (level?: Severity) => (...message: ReadonlyArray<any>) => Effect<void>;
15749
15843
  /**
15750
15844
  * Logs one or more messages using the default log level.
15751
15845
  *