effect 4.0.0-beta.1 → 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 (568) 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 +125 -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 +31 -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/cluster/ClusterCron.d.ts +1 -1
  213. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  214. package/dist/unstable/cluster/ClusterCron.js +1 -1
  215. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  216. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  217. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  218. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  219. package/dist/unstable/cluster/Entity.d.ts +5 -4
  220. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  221. package/dist/unstable/cluster/Entity.js.map +1 -1
  222. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  223. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  224. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  225. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  226. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  227. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  228. package/dist/unstable/cluster/Message.d.ts +10 -10
  229. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  230. package/dist/unstable/cluster/MessageStorage.js +2 -1
  231. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  232. package/dist/unstable/cluster/Reply.d.ts +6 -6
  233. package/dist/unstable/cluster/Runner.d.ts +1 -1
  234. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  235. package/dist/unstable/cluster/Runners.js +4 -3
  236. package/dist/unstable/cluster/Runners.js.map +1 -1
  237. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  238. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  239. package/dist/unstable/cluster/Sharding.js +8 -6
  240. package/dist/unstable/cluster/Sharding.js.map +1 -1
  241. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  242. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  244. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  245. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  246. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  247. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  248. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  249. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  250. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  251. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  252. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  253. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  254. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  255. package/dist/unstable/encoding/Sse.d.ts +4 -4
  256. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  257. package/dist/unstable/encoding/Sse.js.map +1 -1
  258. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  259. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  260. package/dist/unstable/eventlog/EventLog.js +2 -1
  261. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  262. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  263. package/dist/unstable/http/Cookies.d.ts +3 -3
  264. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  265. package/dist/unstable/http/Cookies.js +2 -2
  266. package/dist/unstable/http/Cookies.js.map +1 -1
  267. package/dist/unstable/http/HttpBody.d.ts +17 -2
  268. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  269. package/dist/unstable/http/HttpBody.js +28 -1
  270. package/dist/unstable/http/HttpBody.js.map +1 -1
  271. package/dist/unstable/http/HttpClient.d.ts +11 -11
  272. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  273. package/dist/unstable/http/HttpClient.js +4 -4
  274. package/dist/unstable/http/HttpClient.js.map +1 -1
  275. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  276. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  277. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  278. package/dist/unstable/http/HttpClientRequest.js +15 -3
  279. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  280. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  281. package/dist/unstable/http/HttpEffect.js +18 -26
  282. package/dist/unstable/http/HttpEffect.js.map +1 -1
  283. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  284. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  285. package/dist/unstable/http/HttpMethod.js +3 -3
  286. package/dist/unstable/http/HttpMethod.js.map +1 -1
  287. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  288. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  289. package/dist/unstable/http/HttpMiddleware.js +4 -9
  290. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  291. package/dist/unstable/http/HttpServerError.d.ts +6 -6
  292. package/dist/unstable/http/HttpServerResponse.js +1 -1
  293. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  294. package/dist/unstable/http/Multipart.d.ts +3 -3
  295. package/dist/unstable/http/UrlParams.d.ts +14 -6
  296. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  297. package/dist/unstable/http/UrlParams.js +1 -1
  298. package/dist/unstable/http/UrlParams.js.map +1 -1
  299. package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
  300. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  301. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  302. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  303. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  304. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  305. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  306. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  307. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  308. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  309. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  310. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  311. package/dist/unstable/httpapi/OpenApi.js +18 -16
  312. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  313. package/dist/unstable/observability/Otlp.d.ts +12 -12
  314. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  315. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  316. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.js +1 -1
  318. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  319. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  320. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  321. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  322. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  324. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  325. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  326. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  327. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  328. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  329. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  330. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  331. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  332. package/dist/unstable/persistence/PersistedCache.js +2 -1
  333. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  334. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  335. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  336. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  337. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  338. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  339. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  340. package/dist/unstable/persistence/Persistence.js +2 -2
  341. package/dist/unstable/persistence/Persistence.js.map +1 -1
  342. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  343. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  344. package/dist/unstable/persistence/RateLimiter.js +1 -1
  345. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  346. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  347. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  348. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  349. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  350. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  351. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  352. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  353. package/dist/unstable/reactivity/Atom.js +15 -12
  354. package/dist/unstable/reactivity/Atom.js.map +1 -1
  355. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  356. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  357. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  358. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  359. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  360. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  361. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  362. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  363. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  364. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  365. package/dist/unstable/reactivity/Hydration.js +76 -0
  366. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  367. package/dist/unstable/reactivity/index.d.ts +4 -0
  368. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  369. package/dist/unstable/reactivity/index.js +4 -0
  370. package/dist/unstable/reactivity/index.js.map +1 -1
  371. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  372. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  373. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  374. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  375. package/dist/unstable/rpc/RpcClient.js +6 -13
  376. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  377. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  378. package/dist/unstable/rpc/RpcServer.js +5 -3
  379. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  380. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  381. package/dist/unstable/rpc/Utils.js +2 -1
  382. package/dist/unstable/rpc/Utils.js.map +1 -1
  383. package/dist/unstable/schema/Model.d.ts +4 -4
  384. package/dist/unstable/schema/Model.d.ts.map +1 -1
  385. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  386. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  387. package/dist/unstable/schema/VariantSchema.js +13 -2
  388. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  389. package/dist/unstable/socket/Socket.d.ts +4 -4
  390. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  391. package/dist/unstable/socket/Socket.js +3 -2
  392. package/dist/unstable/socket/Socket.js.map +1 -1
  393. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  394. package/dist/unstable/sql/Migrator.d.ts +1 -1
  395. package/dist/unstable/sql/SqlError.d.ts +2 -2
  396. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  397. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  398. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  399. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  400. package/dist/unstable/sql/SqlSchema.js +24 -3
  401. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  402. package/dist/unstable/sql/Statement.js +0 -1
  403. package/dist/unstable/sql/Statement.js.map +1 -1
  404. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  405. package/dist/unstable/workers/Worker.js +2 -1
  406. package/dist/unstable/workers/Worker.js.map +1 -1
  407. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  408. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  409. package/dist/unstable/workflow/DurableClock.js +3 -3
  410. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  411. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  412. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  413. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  414. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  415. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  416. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  417. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  418. package/package.json +2 -2
  419. package/src/Cache.ts +3 -3
  420. package/src/Cause.ts +1 -1
  421. package/src/Channel.ts +6 -4
  422. package/src/Combiner.ts +280 -13
  423. package/src/Config.ts +3 -3
  424. package/src/Data.ts +538 -374
  425. package/src/DateTime.ts +24 -164
  426. package/src/Duration.ts +15 -15
  427. package/src/Effect.ts +143 -261
  428. package/src/Encoding.ts +879 -0
  429. package/src/Equal.ts +278 -111
  430. package/src/FileSystem.ts +7 -8
  431. package/src/Filter.ts +48 -1
  432. package/src/Formatter.ts +253 -51
  433. package/src/Graph.ts +8 -5
  434. package/src/JsonSchema.ts +383 -10
  435. package/src/Latch.ts +112 -0
  436. package/src/LayerMap.ts +5 -5
  437. package/src/LogLevel.ts +31 -0
  438. package/src/Logger.ts +5 -5
  439. package/src/Metric.ts +4 -4
  440. package/src/Optic.ts +948 -19
  441. package/src/Pipeable.ts +32 -1
  442. package/src/PlatformError.ts +5 -5
  443. package/src/Pool.ts +13 -11
  444. package/src/PubSub.ts +10 -9
  445. package/src/Random.ts +33 -14
  446. package/src/RcMap.ts +5 -5
  447. package/src/RcRef.ts +1 -1
  448. package/src/Reducer.ts +166 -7
  449. package/src/Request.ts +3 -2
  450. package/src/RequestResolver.ts +9 -29
  451. package/src/Result.ts +13 -0
  452. package/src/Schedule.ts +279 -140
  453. package/src/Schema.ts +575 -113
  454. package/src/SchemaGetter.ts +12 -14
  455. package/src/SchemaRepresentation.ts +43 -24
  456. package/src/SchemaTransformation.ts +104 -0
  457. package/src/ScopedCache.ts +3 -3
  458. package/src/Semaphore.ts +356 -0
  459. package/src/Stream.ts +43 -42
  460. package/src/Struct.ts +26 -0
  461. package/src/SubscriptionRef.ts +3 -2
  462. package/src/SynchronizedRef.ts +3 -2
  463. package/src/Types.ts +12 -2
  464. package/src/index.ts +502 -20
  465. package/src/internal/core.ts +12 -5
  466. package/src/internal/dateTime.ts +9 -30
  467. package/src/internal/effect.ts +57 -37
  468. package/src/internal/random.ts +20 -0
  469. package/src/internal/rcRef.ts +4 -3
  470. package/src/testing/TestClock.ts +13 -11
  471. package/src/testing/TestSchema.ts +8 -8
  472. package/src/unstable/ai/AiError.ts +2 -2
  473. package/src/unstable/ai/Chat.ts +12 -11
  474. package/src/unstable/ai/LanguageModel.ts +3 -3
  475. package/src/unstable/ai/McpServer.ts +2 -2
  476. package/src/unstable/ai/Prompt.ts +37 -37
  477. package/src/unstable/ai/Response.ts +25 -25
  478. package/src/unstable/cluster/ClusterCron.ts +2 -2
  479. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  480. package/src/unstable/cluster/Entity.ts +7 -6
  481. package/src/unstable/cluster/EntityResource.ts +4 -4
  482. package/src/unstable/cluster/Envelope.ts +1 -1
  483. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  484. package/src/unstable/cluster/MessageStorage.ts +3 -5
  485. package/src/unstable/cluster/Runners.ts +6 -5
  486. package/src/unstable/cluster/Sharding.ts +11 -9
  487. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  488. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  489. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  490. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  491. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  492. package/src/unstable/encoding/Sse.ts +2 -4
  493. package/src/unstable/eventlog/EventLog.ts +2 -1
  494. package/src/unstable/http/Cookies.ts +3 -3
  495. package/src/unstable/http/HttpBody.ts +42 -1
  496. package/src/unstable/http/HttpClient.ts +19 -19
  497. package/src/unstable/http/HttpClientRequest.ts +38 -13
  498. package/src/unstable/http/HttpEffect.ts +17 -25
  499. package/src/unstable/http/HttpMethod.ts +16 -4
  500. package/src/unstable/http/HttpMiddleware.ts +5 -10
  501. package/src/unstable/http/HttpServerResponse.ts +1 -1
  502. package/src/unstable/http/Multipart.ts +2 -2
  503. package/src/unstable/http/UrlParams.ts +20 -5
  504. package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
  505. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  506. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  507. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  508. package/src/unstable/httpapi/OpenApi.ts +18 -16
  509. package/src/unstable/observability/Otlp.ts +12 -12
  510. package/src/unstable/observability/OtlpExporter.ts +3 -3
  511. package/src/unstable/observability/OtlpLogger.ts +4 -4
  512. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  513. package/src/unstable/observability/OtlpTracer.ts +4 -4
  514. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  515. package/src/unstable/persistence/Persistable.ts +2 -2
  516. package/src/unstable/persistence/PersistedCache.ts +20 -9
  517. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  518. package/src/unstable/persistence/Persistence.ts +3 -3
  519. package/src/unstable/persistence/RateLimiter.ts +4 -4
  520. package/src/unstable/process/ChildProcess.ts +2 -2
  521. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  522. package/src/unstable/reactivity/Atom.ts +20 -18
  523. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  524. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  525. package/src/unstable/reactivity/Hydration.ts +112 -0
  526. package/src/unstable/reactivity/index.ts +5 -0
  527. package/src/unstable/rpc/Rpc.ts +3 -3
  528. package/src/unstable/rpc/RpcClient.ts +12 -54
  529. package/src/unstable/rpc/RpcServer.ts +6 -4
  530. package/src/unstable/rpc/Utils.ts +2 -1
  531. package/src/unstable/schema/VariantSchema.ts +36 -7
  532. package/src/unstable/socket/Socket.ts +7 -6
  533. package/src/unstable/sql/SqlModel.ts +2 -2
  534. package/src/unstable/sql/SqlSchema.ts +62 -13
  535. package/src/unstable/sql/Statement.ts +0 -1
  536. package/src/unstable/workers/Worker.ts +2 -1
  537. package/src/unstable/workflow/DurableClock.ts +8 -8
  538. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  539. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  540. package/dist/PartitionedSemaphore.d.ts +0 -52
  541. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  542. package/dist/PartitionedSemaphore.js.map +0 -1
  543. package/dist/encoding/Base64.d.ts +0 -67
  544. package/dist/encoding/Base64.d.ts.map +0 -1
  545. package/dist/encoding/Base64.js +0 -146
  546. package/dist/encoding/Base64.js.map +0 -1
  547. package/dist/encoding/Base64Url.d.ts +0 -60
  548. package/dist/encoding/Base64Url.d.ts.map +0 -1
  549. package/dist/encoding/Base64Url.js +0 -89
  550. package/dist/encoding/Base64Url.js.map +0 -1
  551. package/dist/encoding/EncodingError.d.ts +0 -31
  552. package/dist/encoding/EncodingError.d.ts.map +0 -1
  553. package/dist/encoding/EncodingError.js +0 -22
  554. package/dist/encoding/EncodingError.js.map +0 -1
  555. package/dist/encoding/Hex.d.ts +0 -61
  556. package/dist/encoding/Hex.d.ts.map +0 -1
  557. package/dist/encoding/Hex.js +0 -115
  558. package/dist/encoding/Hex.js.map +0 -1
  559. package/dist/encoding/index.d.ts +0 -26
  560. package/dist/encoding/index.d.ts.map +0 -1
  561. package/dist/encoding/index.js +0 -27
  562. package/dist/encoding/index.js.map +0 -1
  563. package/src/PartitionedSemaphore.ts +0 -182
  564. package/src/encoding/Base64.ts +0 -366
  565. package/src/encoding/Base64Url.ts +0 -104
  566. package/src/encoding/EncodingError.ts +0 -35
  567. package/src/encoding/Hex.ts +0 -390
  568. 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.
@@ -12242,7 +12370,7 @@ export const cachedWithTTL: {
12242
12370
  * @since 2.0.0
12243
12371
  * @category Caching
12244
12372
  */
12245
- (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>>
12246
12374
  /**
12247
12375
  * Returns an effect that caches its result for a specified `Duration`,
12248
12376
  * known as "timeToLive" (TTL).
@@ -12309,7 +12437,7 @@ export const cachedWithTTL: {
12309
12437
  * @since 2.0.0
12310
12438
  * @category Caching
12311
12439
  */
12312
- <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>>
12313
12441
  } = internal.cachedWithTTL
12314
12442
 
12315
12443
  /**
@@ -12451,7 +12579,7 @@ export const cachedInvalidateWithTTL: {
12451
12579
  * @since 2.0.0
12452
12580
  * @category Caching
12453
12581
  */
12454
- (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>]>
12455
12583
  /**
12456
12584
  * Caches an effect's result for a specified duration and allows manual
12457
12585
  * invalidation before expiration.
@@ -12521,7 +12649,7 @@ export const cachedInvalidateWithTTL: {
12521
12649
  * @since 2.0.0
12522
12650
  * @category Caching
12523
12651
  */
12524
- <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>]>
12525
12653
  } = internal.cachedInvalidateWithTTL
12526
12654
 
12527
12655
  // -----------------------------------------------------------------------------
@@ -12747,252 +12875,6 @@ export const interruptibleMask: <A, E, R>(
12747
12875
  ) => Effect<A, E, R>
12748
12876
  ) => Effect<A, E, R> = internal.interruptibleMask
12749
12877
 
12750
- // -----------------------------------------------------------------------------
12751
- // Semaphore
12752
- // -----------------------------------------------------------------------------
12753
-
12754
- /**
12755
- * @category Semaphore
12756
- * @since 2.0.0
12757
- * @example
12758
- * ```ts
12759
- * import { Effect } from "effect"
12760
- *
12761
- * // Create and use a semaphore for controlling concurrent access
12762
- * const program = Effect.gen(function*() {
12763
- * const semaphore = yield* Effect.makeSemaphore(2)
12764
- *
12765
- * return yield* semaphore.withPermits(1)(
12766
- * Effect.succeed("Resource accessed")
12767
- * )
12768
- * })
12769
- * ```
12770
- */
12771
- export interface Semaphore {
12772
- /**
12773
- * Adjusts the number of permits available in the semaphore.
12774
- */
12775
- resize(permits: number): Effect<void>
12776
-
12777
- /**
12778
- * Runs an effect with the given number of permits and releases the permits
12779
- * when the effect completes.
12780
- *
12781
- * **Details**
12782
- *
12783
- * This function acquires the specified number of permits before executing
12784
- * the provided effect. Once the effect finishes, the permits are released.
12785
- * If insufficient permits are available, the function will wait until they
12786
- * are released by other tasks.
12787
- */
12788
- withPermits(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
12789
-
12790
- /**
12791
- * Runs an effect with the given number of permits and releases the permits
12792
- * when the effect completes.
12793
- *
12794
- * **Details**
12795
- *
12796
- * This function acquires the specified number of permits before executing
12797
- * the provided effect. Once the effect finishes, the permits are released.
12798
- * If insufficient permits are available, the function will wait until they
12799
- * are released by other tasks.
12800
- */
12801
- withPermit<A, E, R>(self: Effect<A, E, R>): Effect<A, E, R>
12802
-
12803
- /**
12804
- * Runs an effect only if the specified number of permits are immediately
12805
- * available.
12806
- *
12807
- * **Details**
12808
- *
12809
- * This function attempts to acquire the specified number of permits. If they
12810
- * are available, it runs the effect and releases the permits after the effect
12811
- * completes. If permits are not available, the effect does not execute, and
12812
- * the result is `Option.none`.
12813
- */
12814
- withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
12815
-
12816
- /**
12817
- * Acquires the specified number of permits and returns the resulting
12818
- * available permits, suspending the task if they are not yet available.
12819
- * Concurrent pending `take` calls are processed in a first-in, first-out manner.
12820
- */
12821
- take(permits: number): Effect<number>
12822
-
12823
- /**
12824
- * Releases the specified number of permits and returns the resulting
12825
- * available permits.
12826
- */
12827
- release(permits: number): Effect<number>
12828
-
12829
- /**
12830
- * Releases all permits held by this semaphore and returns the resulting available permits.
12831
- */
12832
- releaseAll: Effect<number>
12833
- }
12834
-
12835
- /**
12836
- * Unsafely creates a new Semaphore.
12837
- *
12838
- * @example
12839
- * ```ts
12840
- * import { Effect } from "effect"
12841
- *
12842
- * const semaphore = Effect.makeSemaphoreUnsafe(3)
12843
- *
12844
- * const task = (id: number) =>
12845
- * semaphore.withPermits(1)(
12846
- * Effect.gen(function*() {
12847
- * yield* Effect.log(`Task ${id} started`)
12848
- * yield* Effect.sleep("1 second")
12849
- * yield* Effect.log(`Task ${id} completed`)
12850
- * })
12851
- * )
12852
- *
12853
- * // Only 3 tasks can run concurrently
12854
- * const program = Effect.all([
12855
- * task(1),
12856
- * task(2),
12857
- * task(3),
12858
- * task(4),
12859
- * task(5)
12860
- * ], { concurrency: "unbounded" })
12861
- * ```
12862
- *
12863
- * @since 2.0.0
12864
- * @category Semaphore
12865
- */
12866
- export const makeSemaphoreUnsafe: (permits: number) => Semaphore = internal.makeSemaphoreUnsafe
12867
-
12868
- /**
12869
- * Creates a new Semaphore.
12870
- *
12871
- * @example
12872
- * ```ts
12873
- * import { Effect } from "effect"
12874
- *
12875
- * const program = Effect.gen(function*() {
12876
- * const semaphore = yield* Effect.makeSemaphore(2)
12877
- *
12878
- * const task = (id: number) =>
12879
- * semaphore.withPermits(1)(
12880
- * Effect.gen(function*() {
12881
- * yield* Effect.log(`Task ${id} acquired permit`)
12882
- * yield* Effect.sleep("1 second")
12883
- * yield* Effect.log(`Task ${id} releasing permit`)
12884
- * })
12885
- * )
12886
- *
12887
- * // Run 4 tasks, but only 2 can run concurrently
12888
- * yield* Effect.all([task(1), task(2), task(3), task(4)])
12889
- * })
12890
- * ```
12891
- *
12892
- * @since 2.0.0
12893
- * @category Semaphore
12894
- */
12895
- export const makeSemaphore: (permits: number) => Effect<Semaphore> = internal.makeSemaphore
12896
-
12897
- // -----------------------------------------------------------------------------
12898
- // Latch
12899
- // -----------------------------------------------------------------------------
12900
-
12901
- /**
12902
- * @category Latch
12903
- * @since 3.8.0
12904
- * @example
12905
- * ```ts
12906
- * import { Effect } from "effect"
12907
- *
12908
- * // Create and use a latch for coordination between fibers
12909
- * const program = Effect.gen(function*() {
12910
- * const latch = yield* Effect.makeLatch()
12911
- *
12912
- * // Wait for the latch to be opened
12913
- * yield* latch.await
12914
- *
12915
- * return "Latch was opened!"
12916
- * })
12917
- * ```
12918
- */
12919
- export interface Latch {
12920
- /** open the latch, releasing all fibers waiting on it */
12921
- readonly open: Effect<boolean>
12922
- /** open the latch, releasing all fibers waiting on it */
12923
- readonly openUnsafe: () => boolean
12924
- /** release all fibers waiting on the latch, without opening it */
12925
- readonly release: Effect<boolean>
12926
- /** wait for the latch to be opened */
12927
- readonly await: Effect<void>
12928
- /** close the latch */
12929
- readonly close: Effect<boolean>
12930
- /** close the latch */
12931
- readonly closeUnsafe: () => boolean
12932
- /** only run the given effect when the latch is open */
12933
- readonly whenOpen: <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
12934
- }
12935
-
12936
- /**
12937
- * Creates a new Latch.
12938
- *
12939
- * @example
12940
- * ```ts
12941
- * import { Effect } from "effect"
12942
- *
12943
- * const latch = Effect.makeLatchUnsafe(false)
12944
- *
12945
- * const waiter = Effect.gen(function*() {
12946
- * yield* Effect.log("Waiting for latch to open...")
12947
- * yield* latch.await
12948
- * yield* Effect.log("Latch opened! Continuing...")
12949
- * })
12950
- *
12951
- * const opener = Effect.gen(function*() {
12952
- * yield* Effect.sleep("2 seconds")
12953
- * yield* Effect.log("Opening latch...")
12954
- * yield* latch.open
12955
- * })
12956
- *
12957
- * const program = Effect.all([waiter, opener])
12958
- * ```
12959
- *
12960
- * @category Latch
12961
- * @since 3.8.0
12962
- */
12963
- export const makeLatchUnsafe: (open?: boolean | undefined) => Latch = internal.makeLatchUnsafe
12964
-
12965
- /**
12966
- * Creates a new Latch.
12967
- *
12968
- * @example
12969
- * ```ts
12970
- * import { Effect } from "effect"
12971
- *
12972
- * const program = Effect.gen(function*() {
12973
- * const latch = yield* Effect.makeLatch(false)
12974
- *
12975
- * const waiter = Effect.gen(function*() {
12976
- * yield* Effect.log("Waiting for latch to open...")
12977
- * yield* latch.await
12978
- * yield* Effect.log("Latch opened! Continuing...")
12979
- * })
12980
- *
12981
- * const opener = Effect.gen(function*() {
12982
- * yield* Effect.sleep("2 seconds")
12983
- * yield* Effect.log("Opening latch...")
12984
- * yield* latch.open
12985
- * })
12986
- *
12987
- * yield* Effect.all([waiter, opener])
12988
- * })
12989
- * ```
12990
- *
12991
- * @category Latch
12992
- * @since 3.8.0
12993
- */
12994
- export const makeLatch: (open?: boolean | undefined) => Effect<Latch> = internal.makeLatch
12995
-
12996
12878
  // -----------------------------------------------------------------------------
12997
12879
  // Repetition & Recursion
12998
12880
  // -----------------------------------------------------------------------------
@@ -22121,8 +22003,8 @@ export const trackDuration: {
22121
22003
  return onExit(self, () => {
22122
22004
  const endTime = clock.currentTimeNanosUnsafe()
22123
22005
  const duration = Duration.subtract(
22124
- Duration.fromDurationInputUnsafe(endTime),
22125
- Duration.fromDurationInputUnsafe(startTime)
22006
+ Duration.fromInputUnsafe(endTime),
22007
+ Duration.fromInputUnsafe(startTime)
22126
22008
  )
22127
22009
  const input = f === undefined ? duration : internalCall(() => f(duration))
22128
22010
  return Metric.update(metric, input as any)