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
@@ -12,7 +12,6 @@ import * as Inspectable from "../Inspectable.ts"
12
12
  import * as order from "../Order.ts"
13
13
  import { pipeArguments } from "../Pipeable.ts"
14
14
  import * as Predicate from "../Predicate.ts"
15
- import * as Result from "../Result.ts"
16
15
  import type { Mutable } from "../Types.ts"
17
16
  import * as UndefinedOr from "../UndefinedOr.ts"
18
17
  import * as effect from "./effect.ts"
@@ -467,32 +466,12 @@ export const setZoneNamedUnsafe: {
467
466
 
468
467
  /** @internal */
469
468
  export const distance: {
470
- (other: DateTime.DateTime): (self: DateTime.DateTime) => number
471
- (self: DateTime.DateTime, other: DateTime.DateTime): number
472
- } = dual(2, (self: DateTime.DateTime, other: DateTime.DateTime): number => toEpochMillis(other) - toEpochMillis(self))
473
-
474
- /** @internal */
475
- export const distanceDurationResult: {
476
- (other: DateTime.DateTime): (self: DateTime.DateTime) => Result.Result<Duration.Duration, Duration.Duration>
477
- (self: DateTime.DateTime, other: DateTime.DateTime): Result.Result<Duration.Duration, Duration.Duration>
478
- } = dual(
479
- 2,
480
- (self: DateTime.DateTime, other: DateTime.DateTime): Result.Result<Duration.Duration, Duration.Duration> => {
481
- const diffMillis = distance(self, other)
482
- return diffMillis > 0
483
- ? Result.succeed(Duration.millis(diffMillis))
484
- : Result.fail(Duration.millis(-diffMillis))
485
- }
486
- )
487
-
488
- /** @internal */
489
- export const distanceDuration: {
490
469
  (other: DateTime.DateTime): (self: DateTime.DateTime) => Duration.Duration
491
470
  (self: DateTime.DateTime, other: DateTime.DateTime): Duration.Duration
492
471
  } = dual(
493
472
  2,
494
473
  (self: DateTime.DateTime, other: DateTime.DateTime): Duration.Duration =>
495
- Duration.millis(Math.abs(distance(self, other)))
474
+ Duration.millis(toEpochMillis(other) - toEpochMillis(self))
496
475
  )
497
476
 
498
477
  /** @internal */
@@ -911,22 +890,22 @@ export const match: {
911
890
 
912
891
  /** @internal */
913
892
  export const addDuration: {
914
- (duration: Duration.DurationInput): <A extends DateTime.DateTime>(self: A) => A
915
- <A extends DateTime.DateTime>(self: A, duration: Duration.DurationInput): A
893
+ (duration: Duration.Input): <A extends DateTime.DateTime>(self: A) => A
894
+ <A extends DateTime.DateTime>(self: A, duration: Duration.Input): A
916
895
  } = dual(
917
896
  2,
918
- (self: DateTime.DateTime, duration: Duration.DurationInput): DateTime.DateTime =>
919
- mapEpochMillis(self, (millis) => millis + Duration.toMillis(Duration.fromDurationInputUnsafe(duration)))
897
+ (self: DateTime.DateTime, duration: Duration.Input): DateTime.DateTime =>
898
+ mapEpochMillis(self, (millis) => millis + Duration.toMillis(Duration.fromInputUnsafe(duration)))
920
899
  )
921
900
 
922
901
  /** @internal */
923
902
  export const subtractDuration: {
924
- (duration: Duration.DurationInput): <A extends DateTime.DateTime>(self: A) => A
925
- <A extends DateTime.DateTime>(self: A, duration: Duration.DurationInput): A
903
+ (duration: Duration.Input): <A extends DateTime.DateTime>(self: A) => A
904
+ <A extends DateTime.DateTime>(self: A, duration: Duration.Input): A
926
905
  } = dual(
927
906
  2,
928
- (self: DateTime.DateTime, duration: Duration.DurationInput): DateTime.DateTime =>
929
- mapEpochMillis(self, (millis) => millis - Duration.toMillis(Duration.fromDurationInputUnsafe(duration)))
907
+ (self: DateTime.DateTime, duration: Duration.Input): DateTime.DateTime =>
908
+ mapEpochMillis(self, (millis) => millis - Duration.toMillis(Duration.fromInputUnsafe(duration)))
930
909
  )
931
910
 
932
911
  const addMillis = (date: Date, amount: number): void => {
@@ -14,6 +14,7 @@ import { constant, constFalse, constTrue, constUndefined, constVoid, dual, ident
14
14
  import * as Hash from "../Hash.ts"
15
15
  import { toJson, toStringUnknown } from "../Inspectable.ts"
16
16
  import * as Iterable from "../Iterable.ts"
17
+ import type * as _Latch from "../Latch.ts"
17
18
  import type * as Logger from "../Logger.ts"
18
19
  import type * as LogLevel from "../LogLevel.ts"
19
20
  import type * as Metric from "../Metric.ts"
@@ -81,6 +82,7 @@ import {
81
82
  isEffect,
82
83
  isFailReason,
83
84
  isInterruptReason,
85
+ isNoSuchElementError,
84
86
  makePrimitive,
85
87
  makePrimitiveProto,
86
88
  NoSuchElementError,
@@ -783,6 +785,7 @@ export const fiberJoinAll = <A extends Iterable<Fiber.Fiber<any, any>>>(self: A)
783
785
  > =>
784
786
  callback((resume) => {
785
787
  const fibers = Array.from(self)
788
+ if (fibers.length === 0) return resume(succeed(Arr.empty() as any))
786
789
  const out = new Array<any>(fibers.length) as Arr.NonEmptyArray<any>
787
790
  const cancels = Arr.empty<() => void>()
788
791
  let done = 0
@@ -2440,6 +2443,18 @@ export const catch_: {
2440
2443
  ): Effect.Effect<A | B, E2, R | R2> => catchCauseIf(self, findError as any, (e: any) => f(e)) as any
2441
2444
  )
2442
2445
 
2446
+ /** @internal */
2447
+ export const catchNoSuchElement = <A, E, R>(
2448
+ self: Effect.Effect<A, E, R>
2449
+ ): Effect.Effect<Option.Option<A>, Exclude<E, Cause.NoSuchElementError>, R> =>
2450
+ matchEffect(self, {
2451
+ onFailure: (error) =>
2452
+ isNoSuchElementError(error)
2453
+ ? succeedNone
2454
+ : fail(error as Exclude<E, Cause.NoSuchElementError>),
2455
+ onSuccess: succeedSome
2456
+ })
2457
+
2443
2458
  /** @internal */
2444
2459
  export const catchDefect: {
2445
2460
  <E, B, E2, R2>(
@@ -3390,24 +3405,24 @@ export const isSuccess: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect
3390
3405
  /** @internal */
3391
3406
  export const delay: {
3392
3407
  (
3393
- duration: Duration.DurationInput
3408
+ duration: Duration.Input
3394
3409
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
3395
3410
  <A, E, R>(
3396
3411
  self: Effect.Effect<A, E, R>,
3397
- duration: Duration.DurationInput
3412
+ duration: Duration.Input
3398
3413
  ): Effect.Effect<A, E, R>
3399
3414
  } = dual(
3400
3415
  2,
3401
3416
  <A, E, R>(
3402
3417
  self: Effect.Effect<A, E, R>,
3403
- duration: Duration.DurationInput
3418
+ duration: Duration.Input
3404
3419
  ): Effect.Effect<A, E, R> => andThen(sleep(duration), self)
3405
3420
  )
3406
3421
 
3407
3422
  /** @internal */
3408
3423
  export const timeoutOrElse: {
3409
3424
  <A2, E2, R2>(options: {
3410
- readonly duration: Duration.DurationInput
3425
+ readonly duration: Duration.Input
3411
3426
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3412
3427
  }): <A, E, R>(
3413
3428
  self: Effect.Effect<A, E, R>
@@ -3415,7 +3430,7 @@ export const timeoutOrElse: {
3415
3430
  <A, E, R, A2, E2, R2>(
3416
3431
  self: Effect.Effect<A, E, R>,
3417
3432
  options: {
3418
- readonly duration: Duration.DurationInput
3433
+ readonly duration: Duration.Input
3419
3434
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3420
3435
  }
3421
3436
  ): Effect.Effect<A | A2, E | E2, R | R2>
@@ -3424,7 +3439,7 @@ export const timeoutOrElse: {
3424
3439
  <A, E, R, A2, E2, R2>(
3425
3440
  self: Effect.Effect<A, E, R>,
3426
3441
  options: {
3427
- readonly duration: Duration.DurationInput
3442
+ readonly duration: Duration.Input
3428
3443
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3429
3444
  }
3430
3445
  ): Effect.Effect<A | A2, E | E2, R | R2> =>
@@ -3437,19 +3452,19 @@ export const timeoutOrElse: {
3437
3452
  /** @internal */
3438
3453
  export const timeout: {
3439
3454
  (
3440
- duration: Duration.DurationInput
3455
+ duration: Duration.Input
3441
3456
  ): <A, E, R>(
3442
3457
  self: Effect.Effect<A, E, R>
3443
3458
  ) => Effect.Effect<A, E | Cause.TimeoutError, R>
3444
3459
  <A, E, R>(
3445
3460
  self: Effect.Effect<A, E, R>,
3446
- duration: Duration.DurationInput
3461
+ duration: Duration.Input
3447
3462
  ): Effect.Effect<A, E | Cause.TimeoutError, R>
3448
3463
  } = dual(
3449
3464
  2,
3450
3465
  <A, E, R>(
3451
3466
  self: Effect.Effect<A, E, R>,
3452
- duration: Duration.DurationInput
3467
+ duration: Duration.Input
3453
3468
  ): Effect.Effect<A, E | TimeoutError, R> =>
3454
3469
  timeoutOrElse(self, {
3455
3470
  duration,
@@ -3460,19 +3475,19 @@ export const timeout: {
3460
3475
  /** @internal */
3461
3476
  export const timeoutOption: {
3462
3477
  (
3463
- duration: Duration.DurationInput
3478
+ duration: Duration.Input
3464
3479
  ): <A, E, R>(
3465
3480
  self: Effect.Effect<A, E, R>
3466
3481
  ) => Effect.Effect<Option.Option<A>, E, R>
3467
3482
  <A, E, R>(
3468
3483
  self: Effect.Effect<A, E, R>,
3469
- duration: Duration.DurationInput
3484
+ duration: Duration.Input
3470
3485
  ): Effect.Effect<Option.Option<A>, E, R>
3471
3486
  } = dual(
3472
3487
  2,
3473
3488
  <A, E, R>(
3474
3489
  self: Effect.Effect<A, E, R>,
3475
- duration: Duration.DurationInput
3490
+ duration: Duration.Input
3476
3491
  ): Effect.Effect<Option.Option<A>, E, R> =>
3477
3492
  raceFirst(
3478
3493
  asSome(self),
@@ -3860,19 +3875,19 @@ export const acquireUseRelease = <Resource, E, R, A, E2, R2, E3, R3>(
3860
3875
 
3861
3876
  /** @internal */
3862
3877
  export const cachedInvalidateWithTTL: {
3863
- (timeToLive: Duration.DurationInput): <A, E, R>(
3878
+ (timeToLive: Duration.Input): <A, E, R>(
3864
3879
  self: Effect.Effect<A, E, R>
3865
3880
  ) => Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
3866
3881
  <A, E, R>(
3867
3882
  self: Effect.Effect<A, E, R>,
3868
- timeToLive: Duration.DurationInput
3883
+ timeToLive: Duration.Input
3869
3884
  ): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
3870
3885
  } = dual(2, <A, E, R>(
3871
3886
  self: Effect.Effect<A, E, R>,
3872
- ttl: Duration.DurationInput
3887
+ ttl: Duration.Input
3873
3888
  ): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]> =>
3874
3889
  sync(() => {
3875
- const ttlMillis = Duration.toMillis(Duration.fromDurationInputUnsafe(ttl))
3890
+ const ttlMillis = Duration.toMillis(Duration.fromInputUnsafe(ttl))
3876
3891
  const isFinite = Number.isFinite(ttlMillis)
3877
3892
  const latch = makeLatchUnsafe(false)
3878
3893
  let expiresAt = 0
@@ -3905,17 +3920,17 @@ export const cachedInvalidateWithTTL: {
3905
3920
  /** @internal */
3906
3921
  export const cachedWithTTL: {
3907
3922
  (
3908
- timeToLive: Duration.DurationInput
3923
+ timeToLive: Duration.Input
3909
3924
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Effect.Effect<A, E, R>>
3910
3925
  <A, E, R>(
3911
3926
  self: Effect.Effect<A, E, R>,
3912
- timeToLive: Duration.DurationInput
3927
+ timeToLive: Duration.Input
3913
3928
  ): Effect.Effect<Effect.Effect<A, E, R>>
3914
3929
  } = dual(
3915
3930
  2,
3916
3931
  <A, E, R>(
3917
3932
  self: Effect.Effect<A, E, R>,
3918
- timeToLive: Duration.DurationInput
3933
+ timeToLive: Duration.Input
3919
3934
  ): Effect.Effect<Effect.Effect<A, E, R>> => map(cachedInvalidateWithTTL(self, timeToLive), (tuple) => tuple[0])
3920
3935
  )
3921
3936
 
@@ -4271,6 +4286,9 @@ export const filter: {
4271
4286
  <A>(
4272
4287
  predicate: Predicate.Predicate<NoInfer<A>>
4273
4288
  ): (elements: Iterable<A>) => Effect.Effect<Array<A>>
4289
+ <A, B, X>(
4290
+ filter: Filter.Filter<NoInfer<A>, B, X>
4291
+ ): (elements: Iterable<A>) => Effect.Effect<Array<B>>
4274
4292
  <A, B, X, E, R>(
4275
4293
  filter: Filter.FilterEffect<NoInfer<A>, B, X, E, R>,
4276
4294
  options?: { readonly concurrency?: Concurrency | undefined }
@@ -4287,6 +4305,10 @@ export const filter: {
4287
4305
  elements: Iterable<A>,
4288
4306
  predicate: Predicate.Predicate<A>
4289
4307
  ): Effect.Effect<Array<A>>
4308
+ <A, B, X>(
4309
+ elements: Iterable<A>,
4310
+ filter: Filter.Filter<NoInfer<A>, B, X>
4311
+ ): Effect.Effect<Array<B>>
4290
4312
  <A, B, X, E, R>(
4291
4313
  elements: Iterable<A>,
4292
4314
  filter: Filter.FilterEffect<NoInfer<A>, B, X, E, R>,
@@ -4318,6 +4340,12 @@ export const filter: {
4318
4340
  if (result) out.push(a)
4319
4341
  return void_ as any
4320
4342
  }
4343
+ if (!isEffect(result)) {
4344
+ if (!Result.isFailure(result)) {
4345
+ out.push(result.success)
4346
+ }
4347
+ return void_ as any
4348
+ }
4321
4349
  return map(result, (r: any) => {
4322
4350
  if (typeof r === "boolean") {
4323
4351
  if (r) out.push(a)
@@ -4746,25 +4774,27 @@ class Semaphore {
4746
4774
  return this.permits - this.taken
4747
4775
  }
4748
4776
 
4749
- readonly take = (n: number): Effect.Effect<number> =>
4750
- callback<number>((resume) => {
4777
+ readonly take = (n: number): Effect.Effect<number> => {
4778
+ const take: Effect.Effect<number> = suspend(() => {
4751
4779
  if (this.free < n) {
4752
- const observer = () => {
4753
- if (this.free < n) {
4754
- return
4780
+ return callback((resume) => {
4781
+ if (this.free >= n) return resume(take)
4782
+ const observer = () => {
4783
+ if (this.free < n) return
4784
+ this.waiters.delete(observer)
4785
+ resume(take)
4755
4786
  }
4756
- this.waiters.delete(observer)
4757
- this.taken += n
4758
- resume(succeed(n))
4759
- }
4760
- this.waiters.add(observer)
4761
- return sync(() => {
4762
- this.waiters.delete(observer)
4787
+ this.waiters.add(observer)
4788
+ return sync(() => {
4789
+ this.waiters.delete(observer)
4790
+ })
4763
4791
  })
4764
4792
  }
4765
4793
  this.taken += n
4766
- return resume(succeed(n))
4794
+ return succeed(n)
4767
4795
  })
4796
+ return take
4797
+ }
4768
4798
 
4769
4799
  updateTakenUnsafe(fiber: Fiber.Fiber<any, any>, f: (n: number) => number): Effect.Effect<number> {
4770
4800
  this.taken = f(this.taken)
@@ -4802,7 +4832,10 @@ class Semaphore {
4802
4832
 
4803
4833
  readonly withPermits = (n: number) => <A, E, R>(self: Effect.Effect<A, E, R>) =>
4804
4834
  uninterruptibleMask((restore) =>
4805
- flatMap(restore(this.take(n)), (permits) => ensuring(restore(self), this.release(permits)))
4835
+ flatMap(
4836
+ restore(this.take(n)),
4837
+ (permits) => onExitPrimitive(restore(self), () => this.release(permits), true)
4838
+ )
4806
4839
  )
4807
4840
 
4808
4841
  readonly withPermit = this.withPermits(1)
@@ -4828,7 +4861,7 @@ export const makeSemaphore = (permits: number) => sync(() => makeSemaphoreUnsafe
4828
4861
  const succeedTrue = succeed(true)
4829
4862
  const succeedFalse = succeed(false)
4830
4863
 
4831
- class Latch implements Effect.Latch {
4864
+ class Latch implements _Latch.Latch {
4832
4865
  waiters: Array<(_: Effect.Effect<void>) => void> = []
4833
4866
  scheduled = false
4834
4867
  private isOpen: boolean
@@ -4888,7 +4921,7 @@ class Latch implements Effect.Latch {
4888
4921
  }
4889
4922
 
4890
4923
  /** @internal */
4891
- export const makeLatchUnsafe = (open?: boolean | undefined): Effect.Latch => new Latch(open ?? false)
4924
+ export const makeLatchUnsafe = (open?: boolean | undefined): _Latch.Latch => new Latch(open ?? false)
4892
4925
 
4893
4926
  /** @internal */
4894
4927
  export const makeLatch = (open?: boolean | undefined) => sync(() => makeLatchUnsafe(open))
@@ -5318,8 +5351,8 @@ export const clockWith = <A, E, R>(f: (clock: Clock.Clock) => Effect.Effect<A, E
5318
5351
  withFiber((fiber) => f(fiber.getRef(ClockRef)))
5319
5352
 
5320
5353
  /** @internal */
5321
- export const sleep = (duration: Duration.DurationInput): Effect.Effect<void> =>
5322
- clockWith((clock) => clock.sleep(Duration.fromDurationInputUnsafe(duration)))
5354
+ export const sleep = (duration: Duration.Input): Effect.Effect<void> =>
5355
+ clockWith((clock) => clock.sleep(Duration.fromInputUnsafe(duration)))
5323
5356
 
5324
5357
  /** @internal */
5325
5358
  export const currentTimeMillis: Effect.Effect<number> = clockWith((clock) => clock.currentTimeMillis)
@@ -0,0 +1,20 @@
1
+ import * as ServiceMap from "../ServiceMap.ts"
2
+
3
+ /** @internal */
4
+ export interface Random {
5
+ nextIntUnsafe(): number
6
+ nextDoubleUnsafe(): number
7
+ }
8
+
9
+ /** @internal */
10
+ export const Random: ServiceMap.Reference<Random> = ServiceMap.Reference<Random>("effect/Random", {
11
+ defaultValue: () => ({
12
+ nextIntUnsafe() {
13
+ return Math.floor(Math.random() * (Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER + 1)) +
14
+ Number.MIN_SAFE_INTEGER
15
+ },
16
+ nextDoubleUnsafe() {
17
+ return Math.random()
18
+ }
19
+ })
20
+ })
@@ -6,6 +6,7 @@ import { identity } from "../Function.ts"
6
6
  import { pipeArguments } from "../Pipeable.ts"
7
7
  import type * as RcRef from "../RcRef.ts"
8
8
  import * as Scope from "../Scope.ts"
9
+ import * as Semaphore from "../Semaphore.ts"
9
10
  import * as ServiceMap from "../ServiceMap.ts"
10
11
 
11
12
  const TypeId = "~effect/RcRef"
@@ -47,7 +48,7 @@ class RcRefImpl<A, E> implements RcRef.RcRef<A, E> {
47
48
  }
48
49
 
49
50
  state: State<A> = stateEmpty
50
- readonly semaphore = Effect.makeSemaphoreUnsafe(1)
51
+ readonly semaphore = Semaphore.makeUnsafe(1)
51
52
  readonly acquire: Effect.Effect<A, E>
52
53
  readonly services: ServiceMap.ServiceMap<never>
53
54
  readonly scope: Scope.Scope
@@ -69,7 +70,7 @@ class RcRefImpl<A, E> implements RcRef.RcRef<A, E> {
69
70
  /** @internal */
70
71
  export const make = <A, E, R>(options: {
71
72
  readonly acquire: Effect.Effect<A, E, R>
72
- readonly idleTimeToLive?: Duration.DurationInput | undefined
73
+ readonly idleTimeToLive?: Duration.Input | undefined
73
74
  }) =>
74
75
  Effect.withFiber<RcRef.RcRef<A, E>, never, R | Scope.Scope>((fiber) => {
75
76
  const services = fiber.services as ServiceMap.ServiceMap<R | Scope.Scope>
@@ -78,7 +79,7 @@ export const make = <A, E, R>(options: {
78
79
  options.acquire as Effect.Effect<A, E>,
79
80
  services,
80
81
  scope,
81
- options.idleTimeToLive ? Duration.fromDurationInputUnsafe(options.idleTimeToLive) : undefined
82
+ options.idleTimeToLive ? Duration.fromInputUnsafe(options.idleTimeToLive) : undefined
82
83
  )
83
84
  return Effect.as(
84
85
  Scope.addFinalizerExit(scope, () => {
@@ -8,8 +8,10 @@ import * as Duration from "../Duration.ts"
8
8
  import * as Effect from "../Effect.ts"
9
9
  import * as Fiber from "../Fiber.ts"
10
10
  import { flow } from "../Function.ts"
11
+ import * as Latch from "../Latch.ts"
11
12
  import * as Layer from "../Layer.ts"
12
13
  import * as Order from "../Order.ts"
14
+ import * as Semaphore from "../Semaphore.ts"
13
15
 
14
16
  /**
15
17
  * A `TestClock` simplifies deterministically and efficiently testing effects
@@ -79,7 +81,7 @@ export interface TestClock extends Clock.Clock {
79
81
  * that were scheduled to occur on or before the new time will be run in
80
82
  * order.
81
83
  */
82
- adjust(duration: Duration.DurationInput): Effect.Effect<void>
84
+ adjust(duration: Duration.Input): Effect.Effect<void>
83
85
  /**
84
86
  * Sets the current clock time to the specified `timestamp`. Any effects that
85
87
  * were scheduled to occur on or before the new time will be run in order.
@@ -139,7 +141,7 @@ export declare namespace TestClock {
139
141
  * The amount of time to wait before displaying a warning message when a
140
142
  * test is using time but is not advancing the `TestClock`.
141
143
  */
142
- readonly warningDelay?: Duration.DurationInput
144
+ readonly warningDelay?: Duration.Input
143
145
  }
144
146
 
145
147
  /**
@@ -155,7 +157,7 @@ export declare namespace TestClock {
155
157
  * const timestamp = testClock.currentTimeMillisUnsafe()
156
158
  * console.log(timestamp) // Current test time
157
159
  *
158
- * // Internal state structure: { timestamp: number, sleeps: Array<[number, Effect.Latch]> }
160
+ * // Internal state structure: { timestamp: number, sleeps: Array<[number, Latch.Latch]> }
159
161
  * })
160
162
  * ```
161
163
  *
@@ -164,7 +166,7 @@ export declare namespace TestClock {
164
166
  */
165
167
  export interface State {
166
168
  readonly timestamp: number
167
- readonly sleeps: ReadonlyArray<[number, Effect.Latch]>
169
+ readonly sleeps: ReadonlyArray<[number, Latch.Latch]>
168
170
  }
169
171
  }
170
172
 
@@ -220,10 +222,10 @@ export const make = Effect.fnUntraced(function*(
220
222
  const sleeps: Array<{
221
223
  readonly sequence: number
222
224
  readonly timestamp: number
223
- readonly latch: Effect.Latch
225
+ readonly latch: Latch.Latch
224
226
  }> = []
225
227
  const liveClock = yield* Clock.clockWith(Effect.succeed)
226
- const warningSemaphore = yield* Effect.makeSemaphore(1)
228
+ const warningSemaphore = yield* Semaphore.make(1)
227
229
 
228
230
  let currentTimestamp: number = new Date(0).getTime()
229
231
  let warningState: WarningState = WarningState.Start()
@@ -292,7 +294,7 @@ export const make = Effect.fnUntraced(function*(
292
294
  const millis = Duration.toMillis(duration)
293
295
  const end = currentTimestamp + millis
294
296
  if (end <= currentTimestamp) return
295
- const latch = Effect.makeLatchUnsafe()
297
+ const latch = Latch.makeUnsafe()
296
298
  sleeps.push({
297
299
  sequence: sequence++,
298
300
  timestamp: end,
@@ -303,7 +305,7 @@ export const make = Effect.fnUntraced(function*(
303
305
  yield* latch.await
304
306
  })
305
307
 
306
- const runSemaphore = yield* Effect.makeSemaphore(1)
308
+ const runSemaphore = yield* Semaphore.make(1)
307
309
  const run = Effect.fnUntraced(function*(step: (currentTimestamp: number) => number) {
308
310
  yield* Fiber.await(yield* Effect.forkScoped(Effect.yieldNow))
309
311
  const endTimestamp = step(currentTimestamp)
@@ -317,8 +319,8 @@ export const make = Effect.fnUntraced(function*(
317
319
  currentTimestamp = endTimestamp
318
320
  }, runSemaphore.withPermits(1))
319
321
 
320
- function adjust(duration: Duration.DurationInput) {
321
- const millis = Duration.toMillis(Duration.fromDurationInputUnsafe(duration))
322
+ function adjust(duration: Duration.Input) {
323
+ const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
322
324
  return warningDone.pipe(Effect.andThen(run((timestamp) => timestamp + millis)))
323
325
  }
324
326
 
@@ -429,7 +431,7 @@ export const testClockWith = <A, E, R>(
429
431
  * @since 2.0.0
430
432
  * @category utils
431
433
  */
432
- export const adjust = (duration: Duration.DurationInput): Effect.Effect<void> =>
434
+ export const adjust = (duration: Duration.Input): Effect.Effect<void> =>
433
435
  testClockWith((testClock) => testClock.adjust(duration))
434
436
 
435
437
  /**
@@ -156,16 +156,16 @@ export class Decoding<S extends Schema.Top> {
156
156
  /**
157
157
  * Asserts that decoding succeeds with the expected value.
158
158
  */
159
- async succeed<S extends Schema.Codec<unknown, unknown, never, unknown>>(
159
+ async succeed<S extends Schema.Decoder<unknown, never>>(
160
160
  this: Decoding<S>,
161
161
  input: unknown
162
162
  ): Promise<void>
163
- async succeed<S extends Schema.Codec<unknown, unknown, never, unknown>>(
163
+ async succeed<S extends Schema.Decoder<unknown, never>>(
164
164
  this: Decoding<S>,
165
165
  input: unknown,
166
166
  expected: S["Type"]
167
167
  ): Promise<void>
168
- async succeed<S extends Schema.Codec<unknown, unknown, never, unknown>>(
168
+ async succeed<S extends Schema.Decoder<unknown, never>>(
169
169
  this: Decoding<S>,
170
170
  input: unknown,
171
171
  expected?: S["Type"]
@@ -182,7 +182,7 @@ export class Decoding<S extends Schema.Top> {
182
182
  /**
183
183
  * Asserts that decoding fails with the expected error message.
184
184
  */
185
- async fail<S extends Schema.Codec<unknown, unknown, never, unknown>>(
185
+ async fail<S extends Schema.Decoder<unknown, never>>(
186
186
  this: Decoding<S>,
187
187
  input: unknown,
188
188
  message: string
@@ -232,16 +232,16 @@ class Encoding<S extends Schema.Top> {
232
232
  /**
233
233
  * Asserts that encoding succeeds with the expected value.
234
234
  */
235
- async succeed<S extends Schema.Codec<unknown, unknown, unknown, never>>(
235
+ async succeed<S extends Schema.Encoder<unknown, never>>(
236
236
  this: Encoding<S>,
237
237
  input: unknown
238
238
  ): Promise<void>
239
- async succeed<S extends Schema.Codec<unknown, unknown, unknown, never>>(
239
+ async succeed<S extends Schema.Encoder<unknown, never>>(
240
240
  this: Encoding<S>,
241
241
  input: unknown,
242
242
  expected: S["Encoded"]
243
243
  ): Promise<void>
244
- async succeed<S extends Schema.Codec<unknown, unknown, unknown, never>>(
244
+ async succeed<S extends Schema.Encoder<unknown, never>>(
245
245
  this: Encoding<S>,
246
246
  input: unknown,
247
247
  expected?: S["Encoded"]
@@ -258,7 +258,7 @@ class Encoding<S extends Schema.Top> {
258
258
  /**
259
259
  * Asserts that encoding fails with the expected error message.
260
260
  */
261
- async fail<S extends Schema.Codec<unknown, unknown, unknown, never>>(
261
+ async fail<S extends Schema.Encoder<unknown, never>>(
262
262
  this: Encoding<S>,
263
263
  input: unknown,
264
264
  message: string
@@ -247,9 +247,9 @@ export class NetworkError extends Schema.ErrorClass<NetworkError>(
247
247
  * @since 1.0.0
248
248
  * @category schemas
249
249
  */
250
- export const ProviderMetadata: Schema.Record$<
250
+ export const ProviderMetadata: Schema.$Record<
251
251
  Schema.String,
252
- Schema.NullOr<Schema.Codec<Schema.MutableJson, Schema.MutableJson, never, never>>
252
+ Schema.NullOr<Schema.Codec<Schema.MutableJson>>
253
253
  > = Schema.Record(Schema.String, Schema.NullOr(Schema.MutableJson))
254
254
 
255
255
  /**