effect 4.0.0-beta.0 → 4.0.0-beta.10

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 (571) 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.map +1 -1
  8. package/dist/Channel.js +6 -4
  9. package/dist/Channel.js.map +1 -1
  10. package/dist/Combiner.d.ts +280 -13
  11. package/dist/Combiner.d.ts.map +1 -1
  12. package/dist/Combiner.js +198 -7
  13. package/dist/Combiner.js.map +1 -1
  14. package/dist/Config.d.ts +3 -3
  15. package/dist/Config.js +3 -3
  16. package/dist/Config.js.map +1 -1
  17. package/dist/ConfigProvider.d.ts +1 -1
  18. package/dist/Cron.d.ts +1 -1
  19. package/dist/Data.d.ts +534 -365
  20. package/dist/Data.d.ts.map +1 -1
  21. package/dist/Data.js +132 -79
  22. package/dist/Data.js.map +1 -1
  23. package/dist/DateTime.d.ts +23 -161
  24. package/dist/DateTime.d.ts.map +1 -1
  25. package/dist/DateTime.js +6 -51
  26. package/dist/DateTime.js.map +1 -1
  27. package/dist/Duration.d.ts +12 -12
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +12 -12
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +175 -240
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +73 -119
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Encoding.d.ts +194 -0
  36. package/dist/Encoding.d.ts.map +1 -0
  37. package/dist/Encoding.js +352 -0
  38. package/dist/Encoding.js.map +1 -0
  39. package/dist/Equal.d.ts +276 -109
  40. package/dist/Equal.d.ts.map +1 -1
  41. package/dist/Equal.js +124 -48
  42. package/dist/Equal.js.map +1 -1
  43. package/dist/FileSystem.d.ts +1 -1
  44. package/dist/FileSystem.d.ts.map +1 -1
  45. package/dist/FileSystem.js +5 -5
  46. package/dist/FileSystem.js.map +1 -1
  47. package/dist/Filter.d.ts +30 -1
  48. package/dist/Filter.d.ts.map +1 -1
  49. package/dist/Filter.js +15 -0
  50. package/dist/Filter.js.map +1 -1
  51. package/dist/Formatter.d.ts +131 -47
  52. package/dist/Formatter.d.ts.map +1 -1
  53. package/dist/Formatter.js +229 -51
  54. package/dist/Formatter.js.map +1 -1
  55. package/dist/Graph.d.ts +1 -1
  56. package/dist/Graph.d.ts.map +1 -1
  57. package/dist/Graph.js +2 -2
  58. package/dist/Graph.js.map +1 -1
  59. package/dist/JsonSchema.d.ts +299 -10
  60. package/dist/JsonSchema.d.ts.map +1 -1
  61. package/dist/JsonSchema.js +323 -4
  62. package/dist/JsonSchema.js.map +1 -1
  63. package/dist/Latch.d.ts +109 -0
  64. package/dist/Latch.d.ts.map +1 -0
  65. package/dist/Latch.js +72 -0
  66. package/dist/Latch.js.map +1 -0
  67. package/dist/LayerMap.d.ts +4 -4
  68. package/dist/LayerMap.d.ts.map +1 -1
  69. package/dist/LogLevel.d.ts +27 -0
  70. package/dist/LogLevel.d.ts.map +1 -1
  71. package/dist/LogLevel.js +28 -100
  72. package/dist/LogLevel.js.map +1 -1
  73. package/dist/Logger.d.ts +4 -4
  74. package/dist/Logger.d.ts.map +1 -1
  75. package/dist/Metric.d.ts +2 -2
  76. package/dist/Metric.d.ts.map +1 -1
  77. package/dist/Metric.js +1 -1
  78. package/dist/Metric.js.map +1 -1
  79. package/dist/Optic.d.ts +947 -18
  80. package/dist/Optic.d.ts.map +1 -1
  81. package/dist/Optic.js +454 -5
  82. package/dist/Optic.js.map +1 -1
  83. package/dist/Pipeable.d.ts +17 -0
  84. package/dist/Pipeable.d.ts.map +1 -1
  85. package/dist/Pipeable.js +19 -1
  86. package/dist/Pipeable.js.map +1 -1
  87. package/dist/PlatformError.d.ts +10 -9
  88. package/dist/PlatformError.d.ts.map +1 -1
  89. package/dist/PlatformError.js +2 -2
  90. package/dist/PlatformError.js.map +1 -1
  91. package/dist/Pool.d.ts +6 -4
  92. package/dist/Pool.d.ts.map +1 -1
  93. package/dist/Pool.js +7 -5
  94. package/dist/Pool.js.map +1 -1
  95. package/dist/PubSub.d.ts +3 -2
  96. package/dist/PubSub.d.ts.map +1 -1
  97. package/dist/PubSub.js +3 -2
  98. package/dist/PubSub.js.map +1 -1
  99. package/dist/Random.d.ts +18 -1
  100. package/dist/Random.d.ts.map +1 -1
  101. package/dist/Random.js +29 -12
  102. package/dist/Random.js.map +1 -1
  103. package/dist/RcMap.d.ts +2 -2
  104. package/dist/RcMap.d.ts.map +1 -1
  105. package/dist/RcMap.js +1 -1
  106. package/dist/RcMap.js.map +1 -1
  107. package/dist/RcRef.d.ts +1 -1
  108. package/dist/RcRef.d.ts.map +1 -1
  109. package/dist/Reducer.d.ts +166 -7
  110. package/dist/Reducer.d.ts.map +1 -1
  111. package/dist/Reducer.js +135 -1
  112. package/dist/Reducer.js.map +1 -1
  113. package/dist/Request.d.ts +1 -1
  114. package/dist/Request.d.ts.map +1 -1
  115. package/dist/Request.js +2 -1
  116. package/dist/Request.js.map +1 -1
  117. package/dist/RequestResolver.d.ts +6 -26
  118. package/dist/RequestResolver.d.ts.map +1 -1
  119. package/dist/RequestResolver.js +0 -20
  120. package/dist/RequestResolver.js.map +1 -1
  121. package/dist/Result.d.ts +12 -0
  122. package/dist/Result.d.ts.map +1 -1
  123. package/dist/Result.js +12 -0
  124. package/dist/Result.js.map +1 -1
  125. package/dist/Schedule.d.ts +33 -14
  126. package/dist/Schedule.d.ts.map +1 -1
  127. package/dist/Schedule.js +65 -24
  128. package/dist/Schedule.js.map +1 -1
  129. package/dist/Schema.d.ts +199 -49
  130. package/dist/Schema.d.ts.map +1 -1
  131. package/dist/Schema.js +386 -72
  132. package/dist/Schema.js.map +1 -1
  133. package/dist/SchemaGetter.d.ts +2 -2
  134. package/dist/SchemaGetter.d.ts.map +1 -1
  135. package/dist/SchemaGetter.js +12 -14
  136. package/dist/SchemaGetter.js.map +1 -1
  137. package/dist/SchemaRepresentation.d.ts +44 -43
  138. package/dist/SchemaRepresentation.d.ts.map +1 -1
  139. package/dist/SchemaRepresentation.js +43 -24
  140. package/dist/SchemaRepresentation.js.map +1 -1
  141. package/dist/SchemaTransformation.d.ts +37 -0
  142. package/dist/SchemaTransformation.d.ts.map +1 -1
  143. package/dist/SchemaTransformation.js +80 -0
  144. package/dist/SchemaTransformation.js.map +1 -1
  145. package/dist/ScopedCache.d.ts +2 -2
  146. package/dist/ScopedCache.d.ts.map +1 -1
  147. package/dist/ScopedCache.js +1 -1
  148. package/dist/ScopedCache.js.map +1 -1
  149. package/dist/Semaphore.d.ts +211 -0
  150. package/dist/Semaphore.d.ts.map +1 -0
  151. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  152. package/dist/Semaphore.js.map +1 -0
  153. package/dist/Stream.d.ts +19 -19
  154. package/dist/Stream.d.ts.map +1 -1
  155. package/dist/Stream.js +12 -11
  156. package/dist/Stream.js.map +1 -1
  157. package/dist/Struct.d.ts +16 -0
  158. package/dist/Struct.d.ts.map +1 -1
  159. package/dist/Struct.js +22 -0
  160. package/dist/Struct.js.map +1 -1
  161. package/dist/SubscriptionRef.d.ts +2 -1
  162. package/dist/SubscriptionRef.d.ts.map +1 -1
  163. package/dist/SubscriptionRef.js +2 -1
  164. package/dist/SubscriptionRef.js.map +1 -1
  165. package/dist/SynchronizedRef.d.ts +2 -1
  166. package/dist/SynchronizedRef.d.ts.map +1 -1
  167. package/dist/SynchronizedRef.js +2 -1
  168. package/dist/SynchronizedRef.js.map +1 -1
  169. package/dist/Types.d.ts +14 -6
  170. package/dist/Types.d.ts.map +1 -1
  171. package/dist/index.d.ts +499 -19
  172. package/dist/index.d.ts.map +1 -1
  173. package/dist/index.js +499 -19
  174. package/dist/index.js.map +1 -1
  175. package/dist/internal/core.js +11 -3
  176. package/dist/internal/core.js.map +1 -1
  177. package/dist/internal/dateTime.js +3 -11
  178. package/dist/internal/dateTime.js.map +1 -1
  179. package/dist/internal/effect.js +37 -22
  180. package/dist/internal/effect.js.map +1 -1
  181. package/dist/internal/random.d.ts +2 -0
  182. package/dist/internal/random.d.ts.map +1 -0
  183. package/dist/internal/random.js +13 -0
  184. package/dist/internal/random.js.map +1 -0
  185. package/dist/internal/rcRef.js +3 -2
  186. package/dist/internal/rcRef.js.map +1 -1
  187. package/dist/testing/TestClock.d.ts +7 -6
  188. package/dist/testing/TestClock.d.ts.map +1 -1
  189. package/dist/testing/TestClock.js +6 -4
  190. package/dist/testing/TestClock.js.map +1 -1
  191. package/dist/testing/TestSchema.d.ts +6 -6
  192. package/dist/testing/TestSchema.d.ts.map +1 -1
  193. package/dist/unstable/ai/AiError.d.ts +48 -48
  194. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  195. package/dist/unstable/ai/Chat.d.ts +3 -3
  196. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  197. package/dist/unstable/ai/Chat.js +4 -3
  198. package/dist/unstable/ai/Chat.js.map +1 -1
  199. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  200. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  201. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  202. package/dist/unstable/ai/McpServer.d.ts +1 -1
  203. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  204. package/dist/unstable/ai/McpServer.js.map +1 -1
  205. package/dist/unstable/ai/Prompt.d.ts +20 -20
  206. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  207. package/dist/unstable/ai/Response.d.ts +26 -26
  208. package/dist/unstable/ai/Response.d.ts.map +1 -1
  209. package/dist/unstable/ai/Response.js +1 -1
  210. package/dist/unstable/ai/Response.js.map +1 -1
  211. package/dist/unstable/cli/CliError.d.ts +5 -5
  212. package/dist/unstable/cli/Prompt.js +2 -2
  213. package/dist/unstable/cli/Prompt.js.map +1 -1
  214. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  215. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  216. package/dist/unstable/cluster/ClusterCron.js +1 -1
  217. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  218. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  219. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  220. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  221. package/dist/unstable/cluster/Entity.d.ts +5 -4
  222. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  223. package/dist/unstable/cluster/Entity.js.map +1 -1
  224. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  225. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  226. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  227. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  228. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  229. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  230. package/dist/unstable/cluster/Message.d.ts +10 -10
  231. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  232. package/dist/unstable/cluster/MessageStorage.js +2 -1
  233. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  234. package/dist/unstable/cluster/Reply.d.ts +6 -6
  235. package/dist/unstable/cluster/Runner.d.ts +1 -1
  236. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  237. package/dist/unstable/cluster/Runners.js +4 -3
  238. package/dist/unstable/cluster/Runners.js.map +1 -1
  239. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  240. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  241. package/dist/unstable/cluster/Sharding.js +8 -6
  242. package/dist/unstable/cluster/Sharding.js.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  244. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  245. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  246. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  247. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  248. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  249. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  250. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  251. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  252. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  253. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  254. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  255. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  256. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  257. package/dist/unstable/encoding/Sse.d.ts +4 -4
  258. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  259. package/dist/unstable/encoding/Sse.js.map +1 -1
  260. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  261. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  262. package/dist/unstable/eventlog/EventLog.js +2 -1
  263. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  264. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  265. package/dist/unstable/http/Cookies.d.ts +3 -3
  266. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  267. package/dist/unstable/http/Cookies.js +2 -2
  268. package/dist/unstable/http/Cookies.js.map +1 -1
  269. package/dist/unstable/http/HttpBody.d.ts +17 -2
  270. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  271. package/dist/unstable/http/HttpBody.js +28 -1
  272. package/dist/unstable/http/HttpBody.js.map +1 -1
  273. package/dist/unstable/http/HttpClient.d.ts +11 -11
  274. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  275. package/dist/unstable/http/HttpClient.js +4 -4
  276. package/dist/unstable/http/HttpClient.js.map +1 -1
  277. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  278. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  279. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  280. package/dist/unstable/http/HttpClientRequest.js +15 -3
  281. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  282. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  283. package/dist/unstable/http/HttpEffect.js +18 -26
  284. package/dist/unstable/http/HttpEffect.js.map +1 -1
  285. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  286. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  287. package/dist/unstable/http/HttpMethod.js +3 -3
  288. package/dist/unstable/http/HttpMethod.js.map +1 -1
  289. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  290. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  291. package/dist/unstable/http/HttpMiddleware.js +4 -9
  292. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  293. package/dist/unstable/http/HttpServerError.d.ts +6 -6
  294. package/dist/unstable/http/HttpServerResponse.js +1 -1
  295. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  296. package/dist/unstable/http/Multipart.d.ts +3 -3
  297. package/dist/unstable/http/UrlParams.d.ts +14 -6
  298. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  299. package/dist/unstable/http/UrlParams.js +1 -1
  300. package/dist/unstable/http/UrlParams.js.map +1 -1
  301. package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
  302. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  303. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  304. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  305. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  306. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  307. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  308. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  309. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  310. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  311. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  312. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  313. package/dist/unstable/httpapi/OpenApi.js +18 -16
  314. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  315. package/dist/unstable/observability/Otlp.d.ts +12 -12
  316. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  318. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  319. package/dist/unstable/observability/OtlpExporter.js +1 -1
  320. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  321. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  322. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  324. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  325. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  326. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  327. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  328. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  329. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  330. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  331. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  332. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  333. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  334. package/dist/unstable/persistence/PersistedCache.js +2 -1
  335. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  336. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  337. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  338. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  339. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  340. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  341. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  342. package/dist/unstable/persistence/Persistence.js +2 -2
  343. package/dist/unstable/persistence/Persistence.js.map +1 -1
  344. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  345. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  346. package/dist/unstable/persistence/RateLimiter.js +1 -1
  347. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  348. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  349. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  350. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  351. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  352. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  353. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  354. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  355. package/dist/unstable/reactivity/Atom.js +15 -12
  356. package/dist/unstable/reactivity/Atom.js.map +1 -1
  357. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  358. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  359. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  360. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  361. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  362. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  363. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  364. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  365. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  366. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  367. package/dist/unstable/reactivity/Hydration.js +76 -0
  368. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  369. package/dist/unstable/reactivity/index.d.ts +4 -0
  370. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  371. package/dist/unstable/reactivity/index.js +4 -0
  372. package/dist/unstable/reactivity/index.js.map +1 -1
  373. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  374. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  375. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  376. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  377. package/dist/unstable/rpc/RpcClient.js +6 -13
  378. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  379. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  380. package/dist/unstable/rpc/RpcServer.js +5 -3
  381. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  382. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  383. package/dist/unstable/rpc/Utils.js +2 -1
  384. package/dist/unstable/rpc/Utils.js.map +1 -1
  385. package/dist/unstable/schema/Model.d.ts +4 -4
  386. package/dist/unstable/schema/Model.d.ts.map +1 -1
  387. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  388. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  389. package/dist/unstable/schema/VariantSchema.js +13 -2
  390. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  391. package/dist/unstable/socket/Socket.d.ts +4 -4
  392. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  393. package/dist/unstable/socket/Socket.js +3 -2
  394. package/dist/unstable/socket/Socket.js.map +1 -1
  395. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  396. package/dist/unstable/sql/Migrator.d.ts +1 -1
  397. package/dist/unstable/sql/SqlError.d.ts +2 -2
  398. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  399. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  400. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  401. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  402. package/dist/unstable/sql/SqlSchema.js +24 -3
  403. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  404. package/dist/unstable/sql/Statement.js +0 -1
  405. package/dist/unstable/sql/Statement.js.map +1 -1
  406. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  407. package/dist/unstable/workers/Worker.js +2 -1
  408. package/dist/unstable/workers/Worker.js.map +1 -1
  409. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  410. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  411. package/dist/unstable/workflow/DurableClock.js +3 -3
  412. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  413. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  414. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  415. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  416. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  417. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  418. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  419. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  420. package/package.json +2 -2
  421. package/src/Cache.ts +3 -3
  422. package/src/Cause.ts +1 -1
  423. package/src/Channel.ts +6 -4
  424. package/src/Combiner.ts +280 -13
  425. package/src/Config.ts +3 -3
  426. package/src/Data.ts +538 -374
  427. package/src/DateTime.ts +24 -164
  428. package/src/Duration.ts +15 -15
  429. package/src/Effect.ts +202 -261
  430. package/src/Encoding.ts +879 -0
  431. package/src/Equal.ts +278 -111
  432. package/src/FileSystem.ts +7 -8
  433. package/src/Filter.ts +48 -1
  434. package/src/Formatter.ts +253 -51
  435. package/src/Graph.ts +8 -5
  436. package/src/JsonSchema.ts +383 -10
  437. package/src/Latch.ts +112 -0
  438. package/src/LayerMap.ts +5 -5
  439. package/src/LogLevel.ts +31 -0
  440. package/src/Logger.ts +5 -5
  441. package/src/Metric.ts +4 -4
  442. package/src/Optic.ts +948 -19
  443. package/src/Pipeable.ts +32 -1
  444. package/src/PlatformError.ts +5 -5
  445. package/src/Pool.ts +13 -11
  446. package/src/PubSub.ts +10 -9
  447. package/src/Random.ts +33 -14
  448. package/src/RcMap.ts +5 -5
  449. package/src/RcRef.ts +1 -1
  450. package/src/Reducer.ts +166 -7
  451. package/src/Request.ts +3 -2
  452. package/src/RequestResolver.ts +9 -29
  453. package/src/Result.ts +13 -0
  454. package/src/Schedule.ts +279 -140
  455. package/src/Schema.ts +575 -113
  456. package/src/SchemaGetter.ts +12 -14
  457. package/src/SchemaRepresentation.ts +43 -24
  458. package/src/SchemaTransformation.ts +104 -0
  459. package/src/ScopedCache.ts +3 -3
  460. package/src/Semaphore.ts +356 -0
  461. package/src/Stream.ts +43 -42
  462. package/src/Struct.ts +26 -0
  463. package/src/SubscriptionRef.ts +3 -2
  464. package/src/SynchronizedRef.ts +3 -2
  465. package/src/Types.ts +12 -2
  466. package/src/index.ts +502 -20
  467. package/src/internal/core.ts +12 -5
  468. package/src/internal/dateTime.ts +9 -30
  469. package/src/internal/effect.ts +70 -37
  470. package/src/internal/random.ts +20 -0
  471. package/src/internal/rcRef.ts +4 -3
  472. package/src/testing/TestClock.ts +13 -11
  473. package/src/testing/TestSchema.ts +8 -8
  474. package/src/unstable/ai/AiError.ts +2 -2
  475. package/src/unstable/ai/Chat.ts +12 -11
  476. package/src/unstable/ai/LanguageModel.ts +3 -3
  477. package/src/unstable/ai/McpServer.ts +2 -2
  478. package/src/unstable/ai/Prompt.ts +37 -37
  479. package/src/unstable/ai/Response.ts +25 -25
  480. package/src/unstable/cli/Prompt.ts +2 -2
  481. package/src/unstable/cluster/ClusterCron.ts +2 -2
  482. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  483. package/src/unstable/cluster/Entity.ts +7 -6
  484. package/src/unstable/cluster/EntityResource.ts +4 -4
  485. package/src/unstable/cluster/Envelope.ts +1 -1
  486. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  487. package/src/unstable/cluster/MessageStorage.ts +3 -5
  488. package/src/unstable/cluster/Runners.ts +6 -5
  489. package/src/unstable/cluster/Sharding.ts +11 -9
  490. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  491. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  492. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  493. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  494. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  495. package/src/unstable/encoding/Sse.ts +2 -4
  496. package/src/unstable/eventlog/EventLog.ts +2 -1
  497. package/src/unstable/http/Cookies.ts +3 -3
  498. package/src/unstable/http/HttpBody.ts +42 -1
  499. package/src/unstable/http/HttpClient.ts +19 -19
  500. package/src/unstable/http/HttpClientRequest.ts +38 -13
  501. package/src/unstable/http/HttpEffect.ts +17 -25
  502. package/src/unstable/http/HttpMethod.ts +16 -4
  503. package/src/unstable/http/HttpMiddleware.ts +5 -10
  504. package/src/unstable/http/HttpServerResponse.ts +1 -1
  505. package/src/unstable/http/Multipart.ts +2 -2
  506. package/src/unstable/http/UrlParams.ts +20 -5
  507. package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
  508. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  509. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  510. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  511. package/src/unstable/httpapi/OpenApi.ts +18 -16
  512. package/src/unstable/observability/Otlp.ts +12 -12
  513. package/src/unstable/observability/OtlpExporter.ts +3 -3
  514. package/src/unstable/observability/OtlpLogger.ts +4 -4
  515. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  516. package/src/unstable/observability/OtlpTracer.ts +4 -4
  517. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  518. package/src/unstable/persistence/Persistable.ts +2 -2
  519. package/src/unstable/persistence/PersistedCache.ts +20 -9
  520. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  521. package/src/unstable/persistence/Persistence.ts +3 -3
  522. package/src/unstable/persistence/RateLimiter.ts +4 -4
  523. package/src/unstable/process/ChildProcess.ts +2 -2
  524. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  525. package/src/unstable/reactivity/Atom.ts +20 -18
  526. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  527. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  528. package/src/unstable/reactivity/Hydration.ts +112 -0
  529. package/src/unstable/reactivity/index.ts +5 -0
  530. package/src/unstable/rpc/Rpc.ts +3 -3
  531. package/src/unstable/rpc/RpcClient.ts +12 -54
  532. package/src/unstable/rpc/RpcServer.ts +6 -4
  533. package/src/unstable/rpc/Utils.ts +2 -1
  534. package/src/unstable/schema/VariantSchema.ts +36 -7
  535. package/src/unstable/socket/Socket.ts +7 -6
  536. package/src/unstable/sql/SqlModel.ts +2 -2
  537. package/src/unstable/sql/SqlSchema.ts +62 -13
  538. package/src/unstable/sql/Statement.ts +0 -1
  539. package/src/unstable/workers/Worker.ts +2 -1
  540. package/src/unstable/workflow/DurableClock.ts +8 -8
  541. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  542. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  543. package/dist/PartitionedSemaphore.d.ts +0 -52
  544. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  545. package/dist/PartitionedSemaphore.js.map +0 -1
  546. package/dist/encoding/Base64.d.ts +0 -67
  547. package/dist/encoding/Base64.d.ts.map +0 -1
  548. package/dist/encoding/Base64.js +0 -146
  549. package/dist/encoding/Base64.js.map +0 -1
  550. package/dist/encoding/Base64Url.d.ts +0 -60
  551. package/dist/encoding/Base64Url.d.ts.map +0 -1
  552. package/dist/encoding/Base64Url.js +0 -89
  553. package/dist/encoding/Base64Url.js.map +0 -1
  554. package/dist/encoding/EncodingError.d.ts +0 -31
  555. package/dist/encoding/EncodingError.d.ts.map +0 -1
  556. package/dist/encoding/EncodingError.js +0 -22
  557. package/dist/encoding/EncodingError.js.map +0 -1
  558. package/dist/encoding/Hex.d.ts +0 -61
  559. package/dist/encoding/Hex.d.ts.map +0 -1
  560. package/dist/encoding/Hex.js +0 -115
  561. package/dist/encoding/Hex.js.map +0 -1
  562. package/dist/encoding/index.d.ts +0 -26
  563. package/dist/encoding/index.d.ts.map +0 -1
  564. package/dist/encoding/index.js +0 -27
  565. package/dist/encoding/index.js.map +0 -1
  566. package/src/PartitionedSemaphore.ts +0 -182
  567. package/src/encoding/Base64.ts +0 -366
  568. package/src/encoding/Base64Url.ts +0 -104
  569. package/src/encoding/EncodingError.ts +0 -35
  570. package/src/encoding/Hex.ts +0 -390
  571. package/src/encoding/index.ts +0 -31
package/src/Effect.ts CHANGED
@@ -119,6 +119,7 @@ import type {
119
119
  NoInfer,
120
120
  ReasonOf,
121
121
  ReasonTags,
122
+ Simplify,
122
123
  Tags,
123
124
  unassigned
124
125
  } from "./Types.ts"
@@ -1511,6 +1512,103 @@ export const callback: <A, E = never, R = never>(
1511
1512
  */
1512
1513
  export const never: Effect<never> = internal.never
1513
1514
 
1515
+ /**
1516
+ * An `Effect` containing an empty record `{}`, used as the starting point for
1517
+ * do notation chains.
1518
+ *
1519
+ * @example
1520
+ * ```ts
1521
+ * import { Effect } from "effect"
1522
+ * import { pipe } from "effect/Function"
1523
+ *
1524
+ * const program = pipe(
1525
+ * Effect.Do,
1526
+ * Effect.bind("x", () => Effect.succeed(2)),
1527
+ * Effect.bind("y", ({ x }) => Effect.succeed(x + 1)),
1528
+ * Effect.let("sum", ({ x, y }) => x + y)
1529
+ * )
1530
+ * ```
1531
+ *
1532
+ * @since 4.0.0
1533
+ * @category Do notation
1534
+ */
1535
+ export const Do: Effect<{}> = internal.Do
1536
+
1537
+ /**
1538
+ * Gives a name to the success value of an `Effect`, creating a single-key
1539
+ * record used in do notation pipelines.
1540
+ *
1541
+ * @since 4.0.0
1542
+ * @category Do notation
1543
+ */
1544
+ export const bindTo: {
1545
+ /**
1546
+ * Gives a name to the success value of an `Effect`, creating a single-key
1547
+ * record used in do notation pipelines.
1548
+ *
1549
+ * @since 4.0.0
1550
+ * @category Do notation
1551
+ */
1552
+ <N extends string>(name: N): <A, E, R>(self: Effect<A, E, R>) => Effect<{ [K in N]: A }, E, R>
1553
+ /**
1554
+ * Gives a name to the success value of an `Effect`, creating a single-key
1555
+ * record used in do notation pipelines.
1556
+ *
1557
+ * @since 4.0.0
1558
+ * @category Do notation
1559
+ */
1560
+ <A, E, R, N extends string>(self: Effect<A, E, R>, name: N): Effect<{ [K in N]: A }, E, R>
1561
+ } = internal.bindTo
1562
+
1563
+ const let_: {
1564
+ <N extends string, A extends Record<string, any>, B>(
1565
+ name: N,
1566
+ f: (a: NoInfer<A>) => B
1567
+ ): <E, R>(
1568
+ self: Effect<A, E, R>
1569
+ ) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>
1570
+ <A extends Record<string, any>, E, R, B, N extends string>(
1571
+ self: Effect<A, E, R>,
1572
+ name: N,
1573
+ f: (a: NoInfer<A>) => B
1574
+ ): Effect<Simplify<Omit<A, N> & Record<N, B>>, E, R>
1575
+ } = internal.let
1576
+
1577
+ export {
1578
+ /**
1579
+ * Adds a computed plain value to the do notation record.
1580
+ *
1581
+ * @since 4.0.0
1582
+ * @category Do notation
1583
+ */
1584
+ let_ as let
1585
+ }
1586
+
1587
+ /**
1588
+ * Adds an `Effect` value to the do notation record under a given name.
1589
+ *
1590
+ * @since 4.0.0
1591
+ * @category Do notation
1592
+ */
1593
+ export const bind: {
1594
+ /**
1595
+ * Adds an `Effect` value to the do notation record under a given name.
1596
+ *
1597
+ * @since 4.0.0
1598
+ * @category Do notation
1599
+ */
1600
+ <N extends string, A extends Record<string, any>, B, E2, R2>(name: N, f: (a: NoInfer<A>) => Effect<B, E2, R2>): <E, R>(
1601
+ self: Effect<A, E, R>
1602
+ ) => Effect<Simplify<Omit<A, N> & Record<N, B>>, E | E2, R | R2>
1603
+ /**
1604
+ * Adds an `Effect` value to the do notation record under a given name.
1605
+ *
1606
+ * @since 4.0.0
1607
+ * @category Do notation
1608
+ */
1609
+ <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>
1610
+ } = internal.bind
1611
+
1514
1612
  /**
1515
1613
  * Provides a way to write effectful code using generator functions, simplifying
1516
1614
  * control flow and error handling.
@@ -5124,6 +5222,36 @@ export const catchIf: {
5124
5222
  ): Effect<A | A2 | A3, E2 | E3, R | R2 | R3>
5125
5223
  } = internal.catchIf
5126
5224
 
5225
+ /**
5226
+ * Catches `NoSuchElementError` failures and converts them to `Option.none`.
5227
+ *
5228
+ * Success values become `Option.some`, `NoSuchElementError` becomes
5229
+ * `Option.none`, and all other errors are preserved.
5230
+ *
5231
+ * @example
5232
+ * ```ts
5233
+ * import { Effect, Option } from "effect"
5234
+ *
5235
+ * const some = Effect.fromNullishOr(1).pipe(Effect.catchNoSuchElement)
5236
+ * const none = Effect.fromNullishOr(null).pipe(Effect.catchNoSuchElement)
5237
+ *
5238
+ * Effect.runPromise(some).then(console.log) // { _id: 'Option', _tag: 'Some', value: 1 }
5239
+ * Effect.runPromise(none).then(console.log) // { _id: 'Option', _tag: 'None' }
5240
+ * ```
5241
+ *
5242
+ * **Previously Known As**
5243
+ *
5244
+ * This API replaces the following from Effect 3.x:
5245
+ *
5246
+ * - `Effect.optionFromOptional`
5247
+ *
5248
+ * @since 2.0.0
5249
+ * @category Error Handling
5250
+ */
5251
+ export const catchNoSuchElement: <A, E, R>(
5252
+ self: Effect<A, E, R>
5253
+ ) => Effect<Option<A>, Exclude<E, Cause.NoSuchElementError>, R> = internal.catchNoSuchElement
5254
+
5127
5255
  /**
5128
5256
  * Recovers from specific failures based on a predicate.
5129
5257
  *
@@ -7194,7 +7322,7 @@ export const timeout: {
7194
7322
  * @since 2.0.0
7195
7323
  * @category Delays & Timeouts
7196
7324
  */
7197
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
7325
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
7198
7326
  // -----------------------------------------------------------------------------
7199
7327
  // Delays & timeouts
7200
7328
  // -----------------------------------------------------------------------------
@@ -7245,7 +7373,7 @@ export const timeout: {
7245
7373
  * @since 2.0.0
7246
7374
  * @category Delays & Timeouts
7247
7375
  */
7248
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E | Cause.TimeoutError, R>
7376
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E | Cause.TimeoutError, R>
7249
7377
  } = internal.timeout
7250
7378
 
7251
7379
  /**
@@ -7347,7 +7475,7 @@ export const timeoutOption: {
7347
7475
  * @since 3.1.0
7348
7476
  * @category Delays & Timeouts
7349
7477
  */
7350
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
7478
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
7351
7479
  /**
7352
7480
  * Handles timeouts by returning an `Option` that represents either the result
7353
7481
  * or a timeout.
@@ -7397,7 +7525,7 @@ export const timeoutOption: {
7397
7525
  * @since 3.1.0
7398
7526
  * @category Delays & Timeouts
7399
7527
  */
7400
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<Option<A>, E, R>
7528
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<Option<A>, E, R>
7401
7529
  } = internal.timeoutOption
7402
7530
 
7403
7531
  /**
@@ -7475,7 +7603,7 @@ export const timeoutOrElse: {
7475
7603
  */
7476
7604
  <A2, E2, R2>(
7477
7605
  options: {
7478
- readonly duration: Duration.DurationInput
7606
+ readonly duration: Duration.Input
7479
7607
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
7480
7608
  }
7481
7609
  ): <A, E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2, R | R2>
@@ -7518,7 +7646,7 @@ export const timeoutOrElse: {
7518
7646
  <A, E, R, A2, E2, R2>(
7519
7647
  self: Effect<A, E, R>,
7520
7648
  options: {
7521
- readonly duration: Duration.DurationInput
7649
+ readonly duration: Duration.Input
7522
7650
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
7523
7651
  }
7524
7652
  ): Effect<A | A2, E | E2, R | R2>
@@ -7565,7 +7693,7 @@ export const delay: {
7565
7693
  * @since 2.0.0
7566
7694
  * @category Delays & Timeouts
7567
7695
  */
7568
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
7696
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
7569
7697
  /**
7570
7698
  * Returns an effect that is delayed from this effect by the specified
7571
7699
  * `Duration`.
@@ -7586,7 +7714,7 @@ export const delay: {
7586
7714
  * @since 2.0.0
7587
7715
  * @category Delays & Timeouts
7588
7716
  */
7589
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E, R>
7717
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E, R>
7590
7718
  } = internal.delay
7591
7719
 
7592
7720
  /**
@@ -7611,7 +7739,7 @@ export const delay: {
7611
7739
  * @since 2.0.0
7612
7740
  * @category Delays & Timeouts
7613
7741
  */
7614
- export const sleep: (duration: Duration.DurationInput) => Effect<void> = internal.sleep
7742
+ export const sleep: (duration: Duration.Input) => Effect<void> = internal.sleep
7615
7743
 
7616
7744
  /**
7617
7745
  * Measures the runtime of an effect and returns the duration with its result.
@@ -8014,6 +8142,37 @@ export const filter: {
8014
8142
  // Filtering
8015
8143
  // -----------------------------------------------------------------------------
8016
8144
 
8145
+ /**
8146
+ * Filters elements of an iterable using a predicate, refinement, effectful
8147
+ * predicate, or `Filter.FilterEffect`.
8148
+ *
8149
+ * @example
8150
+ * ```ts
8151
+ * import { Effect, Filter, Result } from "effect"
8152
+ *
8153
+ * // Sync predicate
8154
+ * const evens = Effect.filter([1, 2, 3, 4], (n) => n % 2 === 0)
8155
+ *
8156
+ * // Effectful predicate
8157
+ * const checked = Effect.filter([1, 2, 3], (n) => Effect.succeed(n > 1))
8158
+ *
8159
+ * // FilterEffect
8160
+ * const mapped = Effect.filter([1, 2, 3, 4], (n) =>
8161
+ * Effect.succeed(n % 2 === 0 ? Result.succeed(n * 2) : Result.fail(n))
8162
+ * )
8163
+ * ```
8164
+ *
8165
+ * @since 2.0.0
8166
+ * @category Filtering
8167
+ */
8168
+ <A, B, X>(
8169
+ filter: Filter.Filter<NoInfer<A>, B, X>,
8170
+ options?: { readonly concurrency?: Concurrency | undefined }
8171
+ ): (elements: Iterable<A>) => Effect<Array<B>>
8172
+ // -----------------------------------------------------------------------------
8173
+ // Filtering
8174
+ // -----------------------------------------------------------------------------
8175
+
8017
8176
  /**
8018
8177
  * Filters elements of an iterable using a predicate, refinement, effectful
8019
8178
  * predicate, or `Filter.FilterEffect`.
@@ -8132,6 +8291,34 @@ export const filter: {
8132
8291
  // Filtering
8133
8292
  // -----------------------------------------------------------------------------
8134
8293
 
8294
+ /**
8295
+ * Filters elements of an iterable using a predicate, refinement, effectful
8296
+ * predicate, or `Filter.FilterEffect`.
8297
+ *
8298
+ * @example
8299
+ * ```ts
8300
+ * import { Effect, Filter, Result } from "effect"
8301
+ *
8302
+ * // Sync predicate
8303
+ * const evens = Effect.filter([1, 2, 3, 4], (n) => n % 2 === 0)
8304
+ *
8305
+ * // Effectful predicate
8306
+ * const checked = Effect.filter([1, 2, 3], (n) => Effect.succeed(n > 1))
8307
+ *
8308
+ * // FilterEffect
8309
+ * const mapped = Effect.filter([1, 2, 3, 4], (n) =>
8310
+ * Effect.succeed(n % 2 === 0 ? Result.succeed(n * 2) : Result.fail(n))
8311
+ * )
8312
+ * ```
8313
+ *
8314
+ * @since 2.0.0
8315
+ * @category Filtering
8316
+ */
8317
+ <A, B, X>(elements: Iterable<A>, filter: Filter.Filter<NoInfer<A>, B, X>): Effect<Array<B>>
8318
+ // -----------------------------------------------------------------------------
8319
+ // Filtering
8320
+ // -----------------------------------------------------------------------------
8321
+
8135
8322
  /**
8136
8323
  * Filters elements of an iterable using a predicate, refinement, effectful
8137
8324
  * predicate, or `Filter.FilterEffect`.
@@ -12183,7 +12370,7 @@ export const cachedWithTTL: {
12183
12370
  * @since 2.0.0
12184
12371
  * @category Caching
12185
12372
  */
12186
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
12373
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
12187
12374
  /**
12188
12375
  * Returns an effect that caches its result for a specified `Duration`,
12189
12376
  * known as "timeToLive" (TTL).
@@ -12250,7 +12437,7 @@ export const cachedWithTTL: {
12250
12437
  * @since 2.0.0
12251
12438
  * @category Caching
12252
12439
  */
12253
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<Effect<A, E, R>>
12440
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<Effect<A, E, R>>
12254
12441
  } = internal.cachedWithTTL
12255
12442
 
12256
12443
  /**
@@ -12392,7 +12579,7 @@ export const cachedInvalidateWithTTL: {
12392
12579
  * @since 2.0.0
12393
12580
  * @category Caching
12394
12581
  */
12395
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
12582
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
12396
12583
  /**
12397
12584
  * Caches an effect's result for a specified duration and allows manual
12398
12585
  * invalidation before expiration.
@@ -12462,7 +12649,7 @@ export const cachedInvalidateWithTTL: {
12462
12649
  * @since 2.0.0
12463
12650
  * @category Caching
12464
12651
  */
12465
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<[Effect<A, E, R>, Effect<void>]>
12652
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<[Effect<A, E, R>, Effect<void>]>
12466
12653
  } = internal.cachedInvalidateWithTTL
12467
12654
 
12468
12655
  // -----------------------------------------------------------------------------
@@ -12688,252 +12875,6 @@ export const interruptibleMask: <A, E, R>(
12688
12875
  ) => Effect<A, E, R>
12689
12876
  ) => Effect<A, E, R> = internal.interruptibleMask
12690
12877
 
12691
- // -----------------------------------------------------------------------------
12692
- // Semaphore
12693
- // -----------------------------------------------------------------------------
12694
-
12695
- /**
12696
- * @category Semaphore
12697
- * @since 2.0.0
12698
- * @example
12699
- * ```ts
12700
- * import { Effect } from "effect"
12701
- *
12702
- * // Create and use a semaphore for controlling concurrent access
12703
- * const program = Effect.gen(function*() {
12704
- * const semaphore = yield* Effect.makeSemaphore(2)
12705
- *
12706
- * return yield* semaphore.withPermits(1)(
12707
- * Effect.succeed("Resource accessed")
12708
- * )
12709
- * })
12710
- * ```
12711
- */
12712
- export interface Semaphore {
12713
- /**
12714
- * Adjusts the number of permits available in the semaphore.
12715
- */
12716
- resize(permits: number): Effect<void>
12717
-
12718
- /**
12719
- * Runs an effect with the given number of permits and releases the permits
12720
- * when the effect completes.
12721
- *
12722
- * **Details**
12723
- *
12724
- * This function acquires the specified number of permits before executing
12725
- * the provided effect. Once the effect finishes, the permits are released.
12726
- * If insufficient permits are available, the function will wait until they
12727
- * are released by other tasks.
12728
- */
12729
- withPermits(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
12730
-
12731
- /**
12732
- * Runs an effect with the given number of permits and releases the permits
12733
- * when the effect completes.
12734
- *
12735
- * **Details**
12736
- *
12737
- * This function acquires the specified number of permits before executing
12738
- * the provided effect. Once the effect finishes, the permits are released.
12739
- * If insufficient permits are available, the function will wait until they
12740
- * are released by other tasks.
12741
- */
12742
- withPermit<A, E, R>(self: Effect<A, E, R>): Effect<A, E, R>
12743
-
12744
- /**
12745
- * Runs an effect only if the specified number of permits are immediately
12746
- * available.
12747
- *
12748
- * **Details**
12749
- *
12750
- * This function attempts to acquire the specified number of permits. If they
12751
- * are available, it runs the effect and releases the permits after the effect
12752
- * completes. If permits are not available, the effect does not execute, and
12753
- * the result is `Option.none`.
12754
- */
12755
- withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
12756
-
12757
- /**
12758
- * Acquires the specified number of permits and returns the resulting
12759
- * available permits, suspending the task if they are not yet available.
12760
- * Concurrent pending `take` calls are processed in a first-in, first-out manner.
12761
- */
12762
- take(permits: number): Effect<number>
12763
-
12764
- /**
12765
- * Releases the specified number of permits and returns the resulting
12766
- * available permits.
12767
- */
12768
- release(permits: number): Effect<number>
12769
-
12770
- /**
12771
- * Releases all permits held by this semaphore and returns the resulting available permits.
12772
- */
12773
- releaseAll: Effect<number>
12774
- }
12775
-
12776
- /**
12777
- * Unsafely creates a new Semaphore.
12778
- *
12779
- * @example
12780
- * ```ts
12781
- * import { Effect } from "effect"
12782
- *
12783
- * const semaphore = Effect.makeSemaphoreUnsafe(3)
12784
- *
12785
- * const task = (id: number) =>
12786
- * semaphore.withPermits(1)(
12787
- * Effect.gen(function*() {
12788
- * yield* Effect.log(`Task ${id} started`)
12789
- * yield* Effect.sleep("1 second")
12790
- * yield* Effect.log(`Task ${id} completed`)
12791
- * })
12792
- * )
12793
- *
12794
- * // Only 3 tasks can run concurrently
12795
- * const program = Effect.all([
12796
- * task(1),
12797
- * task(2),
12798
- * task(3),
12799
- * task(4),
12800
- * task(5)
12801
- * ], { concurrency: "unbounded" })
12802
- * ```
12803
- *
12804
- * @since 2.0.0
12805
- * @category Semaphore
12806
- */
12807
- export const makeSemaphoreUnsafe: (permits: number) => Semaphore = internal.makeSemaphoreUnsafe
12808
-
12809
- /**
12810
- * Creates a new Semaphore.
12811
- *
12812
- * @example
12813
- * ```ts
12814
- * import { Effect } from "effect"
12815
- *
12816
- * const program = Effect.gen(function*() {
12817
- * const semaphore = yield* Effect.makeSemaphore(2)
12818
- *
12819
- * const task = (id: number) =>
12820
- * semaphore.withPermits(1)(
12821
- * Effect.gen(function*() {
12822
- * yield* Effect.log(`Task ${id} acquired permit`)
12823
- * yield* Effect.sleep("1 second")
12824
- * yield* Effect.log(`Task ${id} releasing permit`)
12825
- * })
12826
- * )
12827
- *
12828
- * // Run 4 tasks, but only 2 can run concurrently
12829
- * yield* Effect.all([task(1), task(2), task(3), task(4)])
12830
- * })
12831
- * ```
12832
- *
12833
- * @since 2.0.0
12834
- * @category Semaphore
12835
- */
12836
- export const makeSemaphore: (permits: number) => Effect<Semaphore> = internal.makeSemaphore
12837
-
12838
- // -----------------------------------------------------------------------------
12839
- // Latch
12840
- // -----------------------------------------------------------------------------
12841
-
12842
- /**
12843
- * @category Latch
12844
- * @since 3.8.0
12845
- * @example
12846
- * ```ts
12847
- * import { Effect } from "effect"
12848
- *
12849
- * // Create and use a latch for coordination between fibers
12850
- * const program = Effect.gen(function*() {
12851
- * const latch = yield* Effect.makeLatch()
12852
- *
12853
- * // Wait for the latch to be opened
12854
- * yield* latch.await
12855
- *
12856
- * return "Latch was opened!"
12857
- * })
12858
- * ```
12859
- */
12860
- export interface Latch {
12861
- /** open the latch, releasing all fibers waiting on it */
12862
- readonly open: Effect<boolean>
12863
- /** open the latch, releasing all fibers waiting on it */
12864
- readonly openUnsafe: () => boolean
12865
- /** release all fibers waiting on the latch, without opening it */
12866
- readonly release: Effect<boolean>
12867
- /** wait for the latch to be opened */
12868
- readonly await: Effect<void>
12869
- /** close the latch */
12870
- readonly close: Effect<boolean>
12871
- /** close the latch */
12872
- readonly closeUnsafe: () => boolean
12873
- /** only run the given effect when the latch is open */
12874
- readonly whenOpen: <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
12875
- }
12876
-
12877
- /**
12878
- * Creates a new Latch.
12879
- *
12880
- * @example
12881
- * ```ts
12882
- * import { Effect } from "effect"
12883
- *
12884
- * const latch = Effect.makeLatchUnsafe(false)
12885
- *
12886
- * const waiter = Effect.gen(function*() {
12887
- * yield* Effect.log("Waiting for latch to open...")
12888
- * yield* latch.await
12889
- * yield* Effect.log("Latch opened! Continuing...")
12890
- * })
12891
- *
12892
- * const opener = Effect.gen(function*() {
12893
- * yield* Effect.sleep("2 seconds")
12894
- * yield* Effect.log("Opening latch...")
12895
- * yield* latch.open
12896
- * })
12897
- *
12898
- * const program = Effect.all([waiter, opener])
12899
- * ```
12900
- *
12901
- * @category Latch
12902
- * @since 3.8.0
12903
- */
12904
- export const makeLatchUnsafe: (open?: boolean | undefined) => Latch = internal.makeLatchUnsafe
12905
-
12906
- /**
12907
- * Creates a new Latch.
12908
- *
12909
- * @example
12910
- * ```ts
12911
- * import { Effect } from "effect"
12912
- *
12913
- * const program = Effect.gen(function*() {
12914
- * const latch = yield* Effect.makeLatch(false)
12915
- *
12916
- * const waiter = Effect.gen(function*() {
12917
- * yield* Effect.log("Waiting for latch to open...")
12918
- * yield* latch.await
12919
- * yield* Effect.log("Latch opened! Continuing...")
12920
- * })
12921
- *
12922
- * const opener = Effect.gen(function*() {
12923
- * yield* Effect.sleep("2 seconds")
12924
- * yield* Effect.log("Opening latch...")
12925
- * yield* latch.open
12926
- * })
12927
- *
12928
- * yield* Effect.all([waiter, opener])
12929
- * })
12930
- * ```
12931
- *
12932
- * @category Latch
12933
- * @since 3.8.0
12934
- */
12935
- export const makeLatch: (open?: boolean | undefined) => Effect<Latch> = internal.makeLatch
12936
-
12937
12878
  // -----------------------------------------------------------------------------
12938
12879
  // Repetition & Recursion
12939
12880
  // -----------------------------------------------------------------------------
@@ -22062,8 +22003,8 @@ export const trackDuration: {
22062
22003
  return onExit(self, () => {
22063
22004
  const endTime = clock.currentTimeNanosUnsafe()
22064
22005
  const duration = Duration.subtract(
22065
- Duration.fromDurationInputUnsafe(endTime),
22066
- Duration.fromDurationInputUnsafe(startTime)
22006
+ Duration.fromInputUnsafe(endTime),
22007
+ Duration.fromInputUnsafe(startTime)
22067
22008
  )
22068
22009
  const input = f === undefined ? duration : internalCall(() => f(duration))
22069
22010
  return Metric.update(metric, input as any)