effect 4.0.0-beta.5 → 4.0.0-beta.7

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 (482) 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/Config.d.ts +3 -3
  11. package/dist/Config.js +3 -3
  12. package/dist/Config.js.map +1 -1
  13. package/dist/Data.d.ts +3 -2
  14. package/dist/Data.d.ts.map +1 -1
  15. package/dist/Data.js +9 -8
  16. package/dist/Data.js.map +1 -1
  17. package/dist/DateTime.d.ts +23 -161
  18. package/dist/DateTime.d.ts.map +1 -1
  19. package/dist/DateTime.js +6 -51
  20. package/dist/DateTime.js.map +1 -1
  21. package/dist/Duration.d.ts +12 -12
  22. package/dist/Duration.d.ts.map +1 -1
  23. package/dist/Duration.js +12 -12
  24. package/dist/Duration.js.map +1 -1
  25. package/dist/Effect.d.ts +13 -239
  26. package/dist/Effect.d.ts.map +1 -1
  27. package/dist/Effect.js +1 -119
  28. package/dist/Effect.js.map +1 -1
  29. package/dist/Encoding.d.ts +194 -0
  30. package/dist/Encoding.d.ts.map +1 -0
  31. package/dist/Encoding.js +352 -0
  32. package/dist/Encoding.js.map +1 -0
  33. package/dist/Equal.js.map +1 -1
  34. package/dist/FileSystem.js +2 -2
  35. package/dist/FileSystem.js.map +1 -1
  36. package/dist/Formatter.d.ts +131 -47
  37. package/dist/Formatter.d.ts.map +1 -1
  38. package/dist/Formatter.js +229 -51
  39. package/dist/Formatter.js.map +1 -1
  40. package/dist/Graph.d.ts.map +1 -1
  41. package/dist/Graph.js +2 -2
  42. package/dist/Graph.js.map +1 -1
  43. package/dist/JsonSchema.d.ts +299 -10
  44. package/dist/JsonSchema.d.ts.map +1 -1
  45. package/dist/JsonSchema.js +323 -4
  46. package/dist/JsonSchema.js.map +1 -1
  47. package/dist/Latch.d.ts +109 -0
  48. package/dist/Latch.d.ts.map +1 -0
  49. package/dist/Latch.js +72 -0
  50. package/dist/Latch.js.map +1 -0
  51. package/dist/LayerMap.d.ts +4 -4
  52. package/dist/LayerMap.d.ts.map +1 -1
  53. package/dist/LogLevel.d.ts +27 -0
  54. package/dist/LogLevel.d.ts.map +1 -1
  55. package/dist/LogLevel.js +28 -100
  56. package/dist/LogLevel.js.map +1 -1
  57. package/dist/Logger.d.ts +4 -4
  58. package/dist/Logger.d.ts.map +1 -1
  59. package/dist/Metric.d.ts +2 -2
  60. package/dist/Metric.d.ts.map +1 -1
  61. package/dist/Metric.js +1 -1
  62. package/dist/Metric.js.map +1 -1
  63. package/dist/Pipeable.d.ts +17 -0
  64. package/dist/Pipeable.d.ts.map +1 -1
  65. package/dist/Pipeable.js +19 -1
  66. package/dist/Pipeable.js.map +1 -1
  67. package/dist/Pool.d.ts +6 -4
  68. package/dist/Pool.d.ts.map +1 -1
  69. package/dist/Pool.js +7 -5
  70. package/dist/Pool.js.map +1 -1
  71. package/dist/PubSub.d.ts +3 -2
  72. package/dist/PubSub.d.ts.map +1 -1
  73. package/dist/PubSub.js +3 -2
  74. package/dist/PubSub.js.map +1 -1
  75. package/dist/Random.d.ts +1 -1
  76. package/dist/Random.d.ts.map +1 -1
  77. package/dist/Random.js +3 -12
  78. package/dist/Random.js.map +1 -1
  79. package/dist/RcMap.d.ts +2 -2
  80. package/dist/RcMap.d.ts.map +1 -1
  81. package/dist/RcMap.js +1 -1
  82. package/dist/RcMap.js.map +1 -1
  83. package/dist/RcRef.d.ts +1 -1
  84. package/dist/RcRef.d.ts.map +1 -1
  85. package/dist/Request.d.ts +1 -1
  86. package/dist/Request.d.ts.map +1 -1
  87. package/dist/Request.js +2 -1
  88. package/dist/Request.js.map +1 -1
  89. package/dist/RequestResolver.d.ts +6 -26
  90. package/dist/RequestResolver.d.ts.map +1 -1
  91. package/dist/RequestResolver.js +0 -20
  92. package/dist/RequestResolver.js.map +1 -1
  93. package/dist/Schedule.d.ts +22 -13
  94. package/dist/Schedule.d.ts.map +1 -1
  95. package/dist/Schedule.js +53 -25
  96. package/dist/Schedule.js.map +1 -1
  97. package/dist/Schema.d.ts +196 -46
  98. package/dist/Schema.d.ts.map +1 -1
  99. package/dist/Schema.js +385 -71
  100. package/dist/Schema.js.map +1 -1
  101. package/dist/SchemaGetter.d.ts +2 -2
  102. package/dist/SchemaGetter.d.ts.map +1 -1
  103. package/dist/SchemaGetter.js +12 -14
  104. package/dist/SchemaGetter.js.map +1 -1
  105. package/dist/SchemaRepresentation.d.ts +44 -43
  106. package/dist/SchemaRepresentation.d.ts.map +1 -1
  107. package/dist/SchemaRepresentation.js +5 -2
  108. package/dist/SchemaRepresentation.js.map +1 -1
  109. package/dist/SchemaTransformation.d.ts +37 -0
  110. package/dist/SchemaTransformation.d.ts.map +1 -1
  111. package/dist/SchemaTransformation.js +80 -0
  112. package/dist/SchemaTransformation.js.map +1 -1
  113. package/dist/ScopedCache.d.ts +2 -2
  114. package/dist/ScopedCache.d.ts.map +1 -1
  115. package/dist/ScopedCache.js +1 -1
  116. package/dist/ScopedCache.js.map +1 -1
  117. package/dist/Semaphore.d.ts +211 -0
  118. package/dist/Semaphore.d.ts.map +1 -0
  119. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  120. package/dist/Semaphore.js.map +1 -0
  121. package/dist/Stream.d.ts +19 -19
  122. package/dist/Stream.d.ts.map +1 -1
  123. package/dist/Stream.js +12 -11
  124. package/dist/Stream.js.map +1 -1
  125. package/dist/Struct.d.ts +16 -0
  126. package/dist/Struct.d.ts.map +1 -1
  127. package/dist/Struct.js +22 -0
  128. package/dist/Struct.js.map +1 -1
  129. package/dist/SubscriptionRef.d.ts +2 -1
  130. package/dist/SubscriptionRef.d.ts.map +1 -1
  131. package/dist/SubscriptionRef.js +2 -1
  132. package/dist/SubscriptionRef.js.map +1 -1
  133. package/dist/SynchronizedRef.d.ts +2 -1
  134. package/dist/SynchronizedRef.d.ts.map +1 -1
  135. package/dist/SynchronizedRef.js +2 -1
  136. package/dist/SynchronizedRef.js.map +1 -1
  137. package/dist/Types.d.ts +8 -0
  138. package/dist/Types.d.ts.map +1 -1
  139. package/dist/index.d.ts +148 -5
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +148 -5
  142. package/dist/index.js.map +1 -1
  143. package/dist/internal/core.js +11 -3
  144. package/dist/internal/core.js.map +1 -1
  145. package/dist/internal/dateTime.js +3 -11
  146. package/dist/internal/dateTime.js.map +1 -1
  147. package/dist/internal/effect.js +2 -2
  148. package/dist/internal/effect.js.map +1 -1
  149. package/dist/internal/random.d.ts +2 -0
  150. package/dist/internal/random.d.ts.map +1 -0
  151. package/dist/internal/random.js +13 -0
  152. package/dist/internal/random.js.map +1 -0
  153. package/dist/internal/rcRef.js +3 -2
  154. package/dist/internal/rcRef.js.map +1 -1
  155. package/dist/testing/TestClock.d.ts +7 -6
  156. package/dist/testing/TestClock.d.ts.map +1 -1
  157. package/dist/testing/TestClock.js +6 -4
  158. package/dist/testing/TestClock.js.map +1 -1
  159. package/dist/testing/TestSchema.d.ts +6 -6
  160. package/dist/testing/TestSchema.d.ts.map +1 -1
  161. package/dist/unstable/ai/AiError.d.ts +48 -48
  162. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  163. package/dist/unstable/ai/Chat.d.ts +3 -3
  164. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  165. package/dist/unstable/ai/Chat.js +4 -3
  166. package/dist/unstable/ai/Chat.js.map +1 -1
  167. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  168. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  169. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  170. package/dist/unstable/ai/McpServer.d.ts +1 -1
  171. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  172. package/dist/unstable/ai/McpServer.js.map +1 -1
  173. package/dist/unstable/ai/Prompt.d.ts +20 -20
  174. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  175. package/dist/unstable/ai/Response.d.ts +26 -26
  176. package/dist/unstable/ai/Response.d.ts.map +1 -1
  177. package/dist/unstable/ai/Response.js +1 -1
  178. package/dist/unstable/ai/Response.js.map +1 -1
  179. package/dist/unstable/cli/CliError.d.ts +5 -5
  180. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  181. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  182. package/dist/unstable/cluster/ClusterCron.js +1 -1
  183. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  184. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  185. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  186. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  187. package/dist/unstable/cluster/Entity.d.ts +5 -4
  188. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  189. package/dist/unstable/cluster/Entity.js.map +1 -1
  190. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  191. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  192. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  193. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  194. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  195. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  196. package/dist/unstable/cluster/Message.d.ts +5 -5
  197. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  198. package/dist/unstable/cluster/MessageStorage.js +2 -1
  199. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  200. package/dist/unstable/cluster/Reply.d.ts +3 -3
  201. package/dist/unstable/cluster/Runner.d.ts +1 -1
  202. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  203. package/dist/unstable/cluster/Runners.js +4 -3
  204. package/dist/unstable/cluster/Runners.js.map +1 -1
  205. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  206. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  207. package/dist/unstable/cluster/Sharding.js +8 -6
  208. package/dist/unstable/cluster/Sharding.js.map +1 -1
  209. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  210. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  211. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  212. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  213. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  214. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  215. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  216. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  217. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  218. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  219. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  220. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  221. package/dist/unstable/encoding/Sse.d.ts +3 -3
  222. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  223. package/dist/unstable/encoding/Sse.js.map +1 -1
  224. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  225. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  226. package/dist/unstable/eventlog/EventLog.js +2 -1
  227. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  228. package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
  229. package/dist/unstable/http/Cookies.d.ts +2 -2
  230. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  231. package/dist/unstable/http/Cookies.js +2 -2
  232. package/dist/unstable/http/Cookies.js.map +1 -1
  233. package/dist/unstable/http/HttpClient.d.ts +4 -4
  234. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  235. package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
  236. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  237. package/dist/unstable/http/HttpClientRequest.js +8 -1
  238. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  239. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  240. package/dist/unstable/http/HttpEffect.js +18 -26
  241. package/dist/unstable/http/HttpEffect.js.map +1 -1
  242. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  243. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  244. package/dist/unstable/http/HttpMethod.js +3 -3
  245. package/dist/unstable/http/HttpMethod.js.map +1 -1
  246. package/dist/unstable/http/Multipart.d.ts +2 -2
  247. package/dist/unstable/http/UrlParams.d.ts +1 -1
  248. package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
  249. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  250. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  251. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  252. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  253. package/dist/unstable/observability/Otlp.d.ts +12 -12
  254. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  255. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  256. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  257. package/dist/unstable/observability/OtlpExporter.js +1 -1
  258. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  259. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  260. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  261. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  262. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  263. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  264. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  265. package/dist/unstable/persistence/KeyValueStore.js +4 -4
  266. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  267. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  268. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  269. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  270. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  271. package/dist/unstable/persistence/PersistedCache.js +2 -1
  272. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  273. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  274. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  275. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  276. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  277. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  278. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  279. package/dist/unstable/persistence/Persistence.js +2 -2
  280. package/dist/unstable/persistence/Persistence.js.map +1 -1
  281. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  282. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  283. package/dist/unstable/persistence/RateLimiter.js +1 -1
  284. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  285. package/dist/unstable/process/ChildProcess.d.ts +1 -1
  286. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  287. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  288. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  289. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  290. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  291. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  292. package/dist/unstable/reactivity/Atom.js +3 -3
  293. package/dist/unstable/reactivity/Atom.js.map +1 -1
  294. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  295. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  296. package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
  297. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  298. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  299. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  300. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  301. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  302. package/dist/unstable/reactivity/index.d.ts +2 -2
  303. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  304. package/dist/unstable/reactivity/index.js +2 -2
  305. package/dist/unstable/reactivity/index.js.map +1 -1
  306. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  307. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  308. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  309. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  310. package/dist/unstable/rpc/RpcClient.js +6 -13
  311. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  312. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  313. package/dist/unstable/rpc/RpcServer.js +5 -3
  314. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  315. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  316. package/dist/unstable/rpc/Utils.js +2 -1
  317. package/dist/unstable/rpc/Utils.js.map +1 -1
  318. package/dist/unstable/socket/Socket.d.ts +4 -4
  319. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  320. package/dist/unstable/socket/Socket.js +3 -2
  321. package/dist/unstable/socket/Socket.js.map +1 -1
  322. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  323. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  324. package/dist/unstable/sql/SqlModel.js +3 -3
  325. package/dist/unstable/sql/SqlModel.js.map +1 -1
  326. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  327. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  328. package/dist/unstable/sql/SqlSchema.js +17 -7
  329. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  330. package/dist/unstable/sql/Statement.js +0 -1
  331. package/dist/unstable/sql/Statement.js.map +1 -1
  332. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  333. package/dist/unstable/workers/Worker.js +2 -1
  334. package/dist/unstable/workers/Worker.js.map +1 -1
  335. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  336. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  337. package/dist/unstable/workflow/DurableClock.js +3 -3
  338. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  339. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  340. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  341. package/dist/unstable/workflow/Workflow.d.ts +1 -1
  342. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  343. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  344. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  345. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  346. package/package.json +1 -2
  347. package/src/Cache.ts +3 -3
  348. package/src/Cause.ts +1 -1
  349. package/src/Channel.ts +6 -4
  350. package/src/Config.ts +3 -3
  351. package/src/Data.ts +10 -9
  352. package/src/DateTime.ts +24 -164
  353. package/src/Duration.ts +15 -15
  354. package/src/Effect.ts +15 -261
  355. package/src/Encoding.ts +879 -0
  356. package/src/Equal.ts +2 -2
  357. package/src/FileSystem.ts +4 -4
  358. package/src/Formatter.ts +253 -51
  359. package/src/Graph.ts +8 -5
  360. package/src/JsonSchema.ts +383 -10
  361. package/src/Latch.ts +112 -0
  362. package/src/LayerMap.ts +5 -5
  363. package/src/LogLevel.ts +31 -0
  364. package/src/Logger.ts +5 -5
  365. package/src/Metric.ts +4 -4
  366. package/src/Pipeable.ts +32 -1
  367. package/src/Pool.ts +13 -11
  368. package/src/PubSub.ts +10 -9
  369. package/src/Random.ts +5 -14
  370. package/src/RcMap.ts +5 -5
  371. package/src/RcRef.ts +1 -1
  372. package/src/Request.ts +3 -2
  373. package/src/RequestResolver.ts +9 -29
  374. package/src/Schedule.ts +261 -140
  375. package/src/Schema.ts +571 -109
  376. package/src/SchemaGetter.ts +12 -14
  377. package/src/SchemaRepresentation.ts +5 -2
  378. package/src/SchemaTransformation.ts +104 -0
  379. package/src/ScopedCache.ts +3 -3
  380. package/src/Semaphore.ts +356 -0
  381. package/src/Stream.ts +43 -42
  382. package/src/Struct.ts +26 -0
  383. package/src/SubscriptionRef.ts +3 -2
  384. package/src/SynchronizedRef.ts +3 -2
  385. package/src/Types.ts +9 -0
  386. package/src/index.ts +151 -6
  387. package/src/internal/core.ts +10 -2
  388. package/src/internal/dateTime.ts +9 -30
  389. package/src/internal/effect.ts +24 -23
  390. package/src/internal/random.ts +20 -0
  391. package/src/internal/rcRef.ts +4 -3
  392. package/src/testing/TestClock.ts +13 -11
  393. package/src/testing/TestSchema.ts +8 -8
  394. package/src/unstable/ai/AiError.ts +2 -2
  395. package/src/unstable/ai/Chat.ts +12 -11
  396. package/src/unstable/ai/LanguageModel.ts +3 -3
  397. package/src/unstable/ai/McpServer.ts +2 -2
  398. package/src/unstable/ai/Prompt.ts +37 -37
  399. package/src/unstable/ai/Response.ts +25 -25
  400. package/src/unstable/cluster/ClusterCron.ts +2 -2
  401. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  402. package/src/unstable/cluster/Entity.ts +7 -6
  403. package/src/unstable/cluster/EntityResource.ts +4 -4
  404. package/src/unstable/cluster/Envelope.ts +1 -1
  405. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  406. package/src/unstable/cluster/MessageStorage.ts +3 -5
  407. package/src/unstable/cluster/Runners.ts +6 -5
  408. package/src/unstable/cluster/Sharding.ts +11 -9
  409. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  410. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  411. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  412. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  413. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  414. package/src/unstable/encoding/Sse.ts +2 -4
  415. package/src/unstable/eventlog/EventLog.ts +2 -1
  416. package/src/unstable/http/Cookies.ts +3 -3
  417. package/src/unstable/http/HttpClient.ts +4 -4
  418. package/src/unstable/http/HttpClientRequest.ts +15 -11
  419. package/src/unstable/http/HttpEffect.ts +17 -25
  420. package/src/unstable/http/HttpMethod.ts +16 -4
  421. package/src/unstable/http/Multipart.ts +2 -2
  422. package/src/unstable/http/UrlParams.ts +1 -1
  423. package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
  424. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  425. package/src/unstable/observability/Otlp.ts +12 -12
  426. package/src/unstable/observability/OtlpExporter.ts +3 -3
  427. package/src/unstable/observability/OtlpLogger.ts +4 -4
  428. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  429. package/src/unstable/observability/OtlpTracer.ts +4 -4
  430. package/src/unstable/persistence/KeyValueStore.ts +4 -4
  431. package/src/unstable/persistence/Persistable.ts +2 -2
  432. package/src/unstable/persistence/PersistedCache.ts +20 -9
  433. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  434. package/src/unstable/persistence/Persistence.ts +3 -3
  435. package/src/unstable/persistence/RateLimiter.ts +4 -4
  436. package/src/unstable/process/ChildProcess.ts +1 -1
  437. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  438. package/src/unstable/reactivity/Atom.ts +13 -13
  439. package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
  440. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  441. package/src/unstable/reactivity/index.ts +2 -2
  442. package/src/unstable/rpc/Rpc.ts +3 -3
  443. package/src/unstable/rpc/RpcClient.ts +12 -54
  444. package/src/unstable/rpc/RpcServer.ts +6 -4
  445. package/src/unstable/rpc/Utils.ts +2 -1
  446. package/src/unstable/socket/Socket.ts +7 -6
  447. package/src/unstable/sql/SqlModel.ts +5 -5
  448. package/src/unstable/sql/SqlSchema.ts +41 -25
  449. package/src/unstable/sql/Statement.ts +0 -1
  450. package/src/unstable/workers/Worker.ts +2 -1
  451. package/src/unstable/workflow/DurableClock.ts +8 -8
  452. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  453. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  454. package/dist/PartitionedSemaphore.d.ts +0 -52
  455. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  456. package/dist/PartitionedSemaphore.js.map +0 -1
  457. package/dist/encoding/Base64.d.ts +0 -67
  458. package/dist/encoding/Base64.d.ts.map +0 -1
  459. package/dist/encoding/Base64.js +0 -146
  460. package/dist/encoding/Base64.js.map +0 -1
  461. package/dist/encoding/Base64Url.d.ts +0 -60
  462. package/dist/encoding/Base64Url.d.ts.map +0 -1
  463. package/dist/encoding/Base64Url.js +0 -89
  464. package/dist/encoding/Base64Url.js.map +0 -1
  465. package/dist/encoding/EncodingError.d.ts +0 -31
  466. package/dist/encoding/EncodingError.d.ts.map +0 -1
  467. package/dist/encoding/EncodingError.js +0 -22
  468. package/dist/encoding/EncodingError.js.map +0 -1
  469. package/dist/encoding/Hex.d.ts +0 -61
  470. package/dist/encoding/Hex.d.ts.map +0 -1
  471. package/dist/encoding/Hex.js +0 -115
  472. package/dist/encoding/Hex.js.map +0 -1
  473. package/dist/encoding/index.d.ts +0 -26
  474. package/dist/encoding/index.d.ts.map +0 -1
  475. package/dist/encoding/index.js +0 -27
  476. package/dist/encoding/index.js.map +0 -1
  477. package/src/PartitionedSemaphore.ts +0 -182
  478. package/src/encoding/Base64.ts +0 -366
  479. package/src/encoding/Base64Url.ts +0 -104
  480. package/src/encoding/EncodingError.ts +0 -35
  481. package/src/encoding/Hex.ts +0 -390
  482. package/src/encoding/index.ts +0 -31
package/src/Logger.ts CHANGED
@@ -975,7 +975,7 @@ export const batched = dual<
975
975
  */
976
976
  <Output>(
977
977
  options: {
978
- readonly window: Duration.DurationInput
978
+ readonly window: Duration.Input
979
979
  readonly flush: (messages: Array<NoInfer<Output>>) => Effect.Effect<void>
980
980
  }
981
981
  ) => <Message>(
@@ -1036,14 +1036,14 @@ export const batched = dual<
1036
1036
  <Message, Output>(
1037
1037
  self: Logger<Message, Output>,
1038
1038
  options: {
1039
- readonly window: Duration.DurationInput
1039
+ readonly window: Duration.Input
1040
1040
  readonly flush: (messages: Array<NoInfer<Output>>) => Effect.Effect<void>
1041
1041
  }
1042
1042
  ) => Effect.Effect<Logger<Message, void>, never, Scope.Scope>
1043
1043
  >(2, <Message, Output>(
1044
1044
  self: Logger<Message, Output>,
1045
1045
  options: {
1046
- readonly window: Duration.DurationInput
1046
+ readonly window: Duration.Input
1047
1047
  readonly flush: (messages: Array<NoInfer<Output>>) => Effect.Effect<void>
1048
1048
  }
1049
1049
  ): Effect.Effect<Logger<Message, void>, never, Scope.Scope> =>
@@ -1582,7 +1582,7 @@ export const toFile = dual<
1582
1582
  options?: {
1583
1583
  readonly flag?: FileSystem.OpenFlag | undefined
1584
1584
  readonly mode?: number | undefined
1585
- readonly batchWindow?: Duration.DurationInput | undefined
1585
+ readonly batchWindow?: Duration.Input | undefined
1586
1586
  } | undefined
1587
1587
  ) => <Message>(
1588
1588
  self: Logger<Message, string>
@@ -1677,7 +1677,7 @@ export const toFile = dual<
1677
1677
  options?: {
1678
1678
  readonly flag?: FileSystem.OpenFlag | undefined
1679
1679
  readonly mode?: number | undefined
1680
- readonly batchWindow?: Duration.DurationInput | undefined
1680
+ readonly batchWindow?: Duration.Input | undefined
1681
1681
  } | undefined
1682
1682
  ) => Effect.Effect<Logger<Message, void>, PlatformError, Scope.Scope | FileSystem.FileSystem>
1683
1683
  >(
package/src/Metric.ts CHANGED
@@ -2035,12 +2035,12 @@ class SummaryMetric extends Metric$<readonly [value: number, timestamp: number],
2035
2035
  constructor(id: string, options: {
2036
2036
  readonly description?: string | undefined
2037
2037
  readonly attributes?: Metric.Attributes | undefined
2038
- readonly maxAge: Duration.DurationInput
2038
+ readonly maxAge: Duration.Input
2039
2039
  readonly maxSize: number
2040
2040
  readonly quantiles: ReadonlyArray<number>
2041
2041
  }) {
2042
2042
  super(id, options?.description, attributesToRecord(options?.attributes))
2043
- this.#maxAge = Math.max(Duration.toMillis(Duration.fromDurationInputUnsafe(options.maxAge)), 0)
2043
+ this.#maxAge = Math.max(Duration.toMillis(Duration.fromInputUnsafe(options.maxAge)), 0)
2044
2044
  this.#maxSize = options.maxSize
2045
2045
  this.#quantiles = options.quantiles
2046
2046
  }
@@ -2808,7 +2808,7 @@ export const histogram = (name: string, options: {
2808
2808
  export const summary = (name: string, options: {
2809
2809
  readonly description?: string | undefined
2810
2810
  readonly attributes?: Metric.Attributes | undefined
2811
- readonly maxAge: Duration.DurationInput
2811
+ readonly maxAge: Duration.Input
2812
2812
  readonly maxSize: number
2813
2813
  readonly quantiles: ReadonlyArray<number>
2814
2814
  }): Summary<number> =>
@@ -2854,7 +2854,7 @@ export const summary = (name: string, options: {
2854
2854
  export const summaryWithTimestamp = (name: string, options: {
2855
2855
  readonly description?: string | undefined
2856
2856
  readonly attributes?: Metric.Attributes | undefined
2857
- readonly maxAge: Duration.DurationInput
2857
+ readonly maxAge: Duration.Input
2858
2858
  readonly maxSize: number
2859
2859
  readonly quantiles: ReadonlyArray<number>
2860
2860
  }): Summary<[value: number, timestamp: number]> => new SummaryMetric(name, options)
package/src/Pipeable.ts CHANGED
@@ -554,8 +554,39 @@ export const pipeArguments = <A>(self: A, args: IArguments): unknown => {
554
554
  /**
555
555
  * @since 4.0.0
556
556
  */
557
- export const Class: new() => Pipeable = class {
557
+ export const Prototype: Pipeable = {
558
558
  pipe() {
559
559
  return pipeArguments(this, arguments)
560
560
  }
561
561
  }
562
+
563
+ /**
564
+ * @since 4.0.0
565
+ * @category constructors
566
+ */
567
+ export const Class: new() => Pipeable = (function() {
568
+ function PipeableBase() {}
569
+ PipeableBase.prototype = Prototype
570
+ return PipeableBase as any
571
+ })()
572
+
573
+ /**
574
+ * @since 4.0.0
575
+ * @category models
576
+ */
577
+ export interface PipeableConstructor {
578
+ new(...args: ReadonlyArray<any>): Pipeable
579
+ }
580
+
581
+ /**
582
+ * @since 4.0.0
583
+ * @category constructors
584
+ */
585
+ export const Mixin = <TBase extends new(...args: ReadonlyArray<any>) => any>(
586
+ klass: TBase
587
+ ): TBase & PipeableConstructor =>
588
+ (class extends klass {
589
+ pipe() {
590
+ return pipeArguments(this, arguments)
591
+ }
592
+ })
package/src/Pool.ts CHANGED
@@ -9,11 +9,13 @@ import type * as Exit from "./Exit.ts"
9
9
  import * as Fiber from "./Fiber.ts"
10
10
  import { dual, identity } from "./Function.ts"
11
11
  import * as Iterable from "./Iterable.ts"
12
+ import * as Latch from "./Latch.ts"
12
13
  import { type Pipeable, pipeArguments } from "./Pipeable.ts"
13
14
  import { hasProperty } from "./Predicate.ts"
14
15
  import * as Queue from "./Queue.ts"
15
16
  import { UnhandledLogLevel } from "./References.ts"
16
17
  import * as Scope from "./Scope.ts"
18
+ import * as Semaphore from "./Semaphore.ts"
17
19
  import * as ServiceMap from "./ServiceMap.ts"
18
20
 
19
21
  const TypeId = "~effect/Pool"
@@ -52,11 +54,11 @@ export interface Config<A, E> {
52
54
  export interface State<A, E> {
53
55
  readonly scope: Scope.Scope
54
56
  isShuttingDown: boolean
55
- readonly semaphore: Effect.Semaphore
56
- readonly resizeSemaphore: Effect.Semaphore
57
+ readonly semaphore: Semaphore.Semaphore
58
+ readonly resizeSemaphore: Semaphore.Semaphore
57
59
  readonly items: Set<PoolItem<A, E>>
58
60
  readonly available: Set<PoolItem<A, E>>
59
- readonly availableLatch: Effect.Latch
61
+ readonly availableLatch: Latch.Latch
60
62
  readonly invalidated: Set<PoolItem<A, E>>
61
63
  waiters: number
62
64
  }
@@ -170,7 +172,7 @@ export const makeWithTTL = <A, E, R>(options: {
170
172
  readonly max: number
171
173
  readonly concurrency?: number | undefined
172
174
  readonly targetUtilization?: number | undefined
173
- readonly timeToLive: Duration.DurationInput
175
+ readonly timeToLive: Duration.Input
174
176
  readonly timeToLiveStrategy?: "creation" | "usage" | undefined
175
177
  }): Effect.Effect<Pool<A, E>, never, R | Scope.Scope> =>
176
178
  Effect.flatMap(
@@ -212,11 +214,11 @@ export const makeWithStrategy = <A, E, R>(options: {
212
214
  const state: State<A, E> = {
213
215
  scope,
214
216
  isShuttingDown: false,
215
- semaphore: Effect.makeSemaphoreUnsafe(concurrency * options.max),
216
- resizeSemaphore: Effect.makeSemaphoreUnsafe(1),
217
+ semaphore: Semaphore.makeUnsafe(concurrency * options.max),
218
+ resizeSemaphore: Semaphore.makeUnsafe(1),
217
219
  items: new Set(),
218
220
  available: new Set(),
219
- availableLatch: Effect.makeLatchUnsafe(false),
221
+ availableLatch: Latch.makeUnsafe(false),
220
222
  invalidated: new Set(),
221
223
  waiters: 0
222
224
  }
@@ -244,7 +246,7 @@ const shutdown = Effect.fnUntraced(function*<A, E>(self: Pool<A, E>) {
244
246
  if (self.state.isShuttingDown) return
245
247
  self.state.isShuttingDown = true
246
248
  const size = self.state.items.size
247
- const semaphore = Effect.makeSemaphoreUnsafe(size)
249
+ const semaphore = Semaphore.makeUnsafe(size)
248
250
  for (const item of self.state.items) {
249
251
  if (item.refCount > 0) {
250
252
  item.finalizer = Effect.tap(item.finalizer, semaphore.release(1))
@@ -471,10 +473,10 @@ const strategyNoop = <A, E>(): Strategy<A, E> => ({
471
473
  reclaim: (_) => Effect.undefined
472
474
  })
473
475
 
474
- const strategyCreationTTL = Effect.fnUntraced(function*<A, E>(ttl: Duration.DurationInput) {
476
+ const strategyCreationTTL = Effect.fnUntraced(function*<A, E>(ttl: Duration.Input) {
475
477
  const clock = yield* Clock
476
478
  const queue = yield* Queue.unbounded<PoolItem<A, E>>()
477
- const ttlMillis = Duration.toMillis(Duration.fromDurationInputUnsafe(ttl))
479
+ const ttlMillis = Duration.toMillis(Duration.fromInputUnsafe(ttl))
478
480
  const creationTimes = new WeakMap<PoolItem<A, E>, number>()
479
481
  return identity<Strategy<A, E>>({
480
482
  run: (pool) => {
@@ -504,7 +506,7 @@ const strategyCreationTTL = Effect.fnUntraced(function*<A, E>(ttl: Duration.Dura
504
506
  })
505
507
  })
506
508
 
507
- const strategyUsageTTL = Effect.fnUntraced(function*<A, E>(ttl: Duration.DurationInput) {
509
+ const strategyUsageTTL = Effect.fnUntraced(function*<A, E>(ttl: Duration.Input) {
508
510
  const queue = yield* Queue.unbounded<PoolItem<A, E>>()
509
511
  return identity<Strategy<A, E>>({
510
512
  run: (pool) => {
package/src/PubSub.ts CHANGED
@@ -34,6 +34,7 @@ import * as Effect from "./Effect.ts"
34
34
  import * as Exit from "./Exit.ts"
35
35
  import type { LazyArg } from "./Function.ts"
36
36
  import { dual, identity } from "./Function.ts"
37
+ import * as Latch from "./Latch.ts"
37
38
  import * as MutableList from "./MutableList.ts"
38
39
  import * as MutableRef from "./MutableRef.ts"
39
40
  import { nextPow2 } from "./Number.ts"
@@ -81,7 +82,7 @@ export interface PubSub<in out A> extends Pipeable {
81
82
  readonly pubsub: PubSub.Atomic<A>
82
83
  readonly subscribers: PubSub.Subscribers<A>
83
84
  readonly scope: Scope.Closeable
84
- readonly shutdownHook: Effect.Latch
85
+ readonly shutdownHook: Latch.Latch
85
86
  readonly shutdownFlag: MutableRef.MutableRef<boolean>
86
87
  readonly strategy: PubSub.Strategy<A>
87
88
  }
@@ -242,7 +243,7 @@ export interface Subscription<out A> extends Pipeable {
242
243
  readonly subscribers: PubSub.Subscribers<any>
243
244
  readonly subscription: PubSub.BackingSubscription<A>
244
245
  readonly pollers: MutableList.MutableList<Deferred.Deferred<any>>
245
- readonly shutdownHook: Effect.Latch
246
+ readonly shutdownHook: Latch.Latch
246
247
  readonly shutdownFlag: MutableRef.MutableRef<boolean>
247
248
  readonly strategy: PubSub.Strategy<any>
248
249
  readonly replayWindow: PubSub.ReplayWindow<A>
@@ -282,7 +283,7 @@ export const make = <A>(
282
283
  options.atomicPubSub(),
283
284
  new Map(),
284
285
  Scope.makeUnsafe(),
285
- Effect.makeLatchUnsafe(false),
286
+ Latch.makeUnsafe(false),
286
287
  MutableRef.make(false),
287
288
  options.strategy()
288
289
  )
@@ -1701,7 +1702,7 @@ const makeSubscriptionUnsafe = <A>(
1701
1702
  subscribers,
1702
1703
  pubsub.subscribe(),
1703
1704
  MutableList.make<Deferred.Deferred<A>>(),
1704
- Effect.makeLatchUnsafe(false),
1705
+ Latch.makeUnsafe(false),
1705
1706
  MutableRef.make(false),
1706
1707
  strategy,
1707
1708
  pubsub.replayWindow()
@@ -2446,7 +2447,7 @@ class SubscriptionImpl<in out A> implements Subscription<A> {
2446
2447
  readonly subscribers: PubSub.Subscribers<A>
2447
2448
  readonly subscription: PubSub.BackingSubscription<A>
2448
2449
  readonly pollers: MutableList.MutableList<Deferred.Deferred<A>>
2449
- readonly shutdownHook: Effect.Latch
2450
+ readonly shutdownHook: Latch.Latch
2450
2451
  readonly shutdownFlag: MutableRef.MutableRef<boolean>
2451
2452
  readonly strategy: PubSub.Strategy<A>
2452
2453
  readonly replayWindow: PubSub.ReplayWindow<A>
@@ -2456,7 +2457,7 @@ class SubscriptionImpl<in out A> implements Subscription<A> {
2456
2457
  subscribers: PubSub.Subscribers<A>,
2457
2458
  subscription: PubSub.BackingSubscription<A>,
2458
2459
  pollers: MutableList.MutableList<Deferred.Deferred<A>>,
2459
- shutdownHook: Effect.Latch,
2460
+ shutdownHook: Latch.Latch,
2460
2461
  shutdownFlag: MutableRef.MutableRef<boolean>,
2461
2462
  strategy: PubSub.Strategy<A>,
2462
2463
  replayWindow: PubSub.ReplayWindow<A>
@@ -2484,7 +2485,7 @@ class PubSubImpl<in out A> implements PubSub<A> {
2484
2485
  readonly pubsub: PubSub.Atomic<A>
2485
2486
  readonly subscribers: PubSub.Subscribers<A>
2486
2487
  readonly scope: Scope.Closeable
2487
- readonly shutdownHook: Effect.Latch
2488
+ readonly shutdownHook: Latch.Latch
2488
2489
  readonly shutdownFlag: MutableRef.MutableRef<boolean>
2489
2490
  readonly strategy: PubSub.Strategy<A>
2490
2491
 
@@ -2492,7 +2493,7 @@ class PubSubImpl<in out A> implements PubSub<A> {
2492
2493
  pubsub: PubSub.Atomic<A>,
2493
2494
  subscribers: PubSub.Subscribers<A>,
2494
2495
  scope: Scope.Closeable,
2495
- shutdownHook: Effect.Latch,
2496
+ shutdownHook: Latch.Latch,
2496
2497
  shutdownFlag: MutableRef.MutableRef<boolean>,
2497
2498
  strategy: PubSub.Strategy<A>
2498
2499
  ) {
@@ -2513,7 +2514,7 @@ const makePubSubUnsafe = <A>(
2513
2514
  pubsub: PubSub.Atomic<A>,
2514
2515
  subscribers: PubSub.Subscribers<A>,
2515
2516
  scope: Scope.Closeable,
2516
- shutdownHook: Effect.Latch,
2517
+ shutdownHook: Latch.Latch,
2517
2518
  shutdownFlag: MutableRef.MutableRef<boolean>,
2518
2519
  strategy: PubSub.Strategy<A>
2519
2520
  ): PubSub<A> => new PubSubImpl(pubsub, subscribers, scope, shutdownHook, shutdownFlag, strategy)
package/src/Random.ts CHANGED
@@ -23,8 +23,9 @@
23
23
  */
24
24
  import * as Effect from "./Effect.ts"
25
25
  import { dual } from "./Function.ts"
26
+ import * as random from "./internal/random.ts"
26
27
  import * as Predicate from "./Predicate.ts"
27
- import * as ServiceMap from "./ServiceMap.ts"
28
+ import type * as ServiceMap from "./ServiceMap.ts"
28
29
 
29
30
  /**
30
31
  * Represents a service for generating random numbers.
@@ -49,23 +50,13 @@ import * as ServiceMap from "./ServiceMap.ts"
49
50
  * @since 4.0.0
50
51
  * @category Random Number Generators
51
52
  */
52
- export const Random = ServiceMap.Reference<{
53
+ export const Random: ServiceMap.Reference<{
53
54
  nextIntUnsafe(): number
54
55
  nextDoubleUnsafe(): number
55
- }>("effect/Random", {
56
- defaultValue: () => ({
57
- nextIntUnsafe() {
58
- return Math.floor(Math.random() * (Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER + 1)) +
59
- Number.MIN_SAFE_INTEGER
60
- },
61
- nextDoubleUnsafe() {
62
- return Math.random()
63
- }
64
- })
65
- })
56
+ }> = random.Random
66
57
 
67
58
  const randomWith = <A>(f: (random: typeof Random["Service"]) => A): Effect.Effect<A> =>
68
- Effect.withFiber((fiber) => Effect.succeed(f(ServiceMap.get(fiber.services, Random))))
59
+ Effect.withFiber((fiber) => Effect.succeed(f(fiber.getRef(Random))))
69
60
 
70
61
  /**
71
62
  * Generates a random number between 0 (inclusive) and 1 (inclusive).
package/src/RcMap.ts CHANGED
@@ -292,7 +292,7 @@ export const make: {
292
292
  <K, A, E, R>(
293
293
  options: {
294
294
  readonly lookup: (key: K) => Effect.Effect<A, E, R>
295
- readonly idleTimeToLive?: Duration.DurationInput | ((key: K) => Duration.DurationInput) | undefined
295
+ readonly idleTimeToLive?: Duration.Input | ((key: K) => Duration.Input) | undefined
296
296
  readonly capacity?: undefined
297
297
  }
298
298
  ): Effect.Effect<RcMap<K, A, E>, never, Scope.Scope | R>
@@ -335,13 +335,13 @@ export const make: {
335
335
  <K, A, E, R>(
336
336
  options: {
337
337
  readonly lookup: (key: K) => Effect.Effect<A, E, R>
338
- readonly idleTimeToLive?: Duration.DurationInput | ((key: K) => Duration.DurationInput) | undefined
338
+ readonly idleTimeToLive?: Duration.Input | ((key: K) => Duration.Input) | undefined
339
339
  readonly capacity: number
340
340
  }
341
341
  ): Effect.Effect<RcMap<K, A, E | Cause.ExceededCapacityError>, never, Scope.Scope | R>
342
342
  } = <K, A, E, R>(options: {
343
343
  readonly lookup: (key: K) => Effect.Effect<A, E, R>
344
- readonly idleTimeToLive?: Duration.DurationInput | ((key: K) => Duration.DurationInput) | undefined
344
+ readonly idleTimeToLive?: Duration.Input | ((key: K) => Duration.Input) | undefined
345
345
  readonly capacity?: number | undefined
346
346
  }) =>
347
347
  Effect.withFiber<RcMap<K, A, E>, never, R | Scope.Scope>((fiber) => {
@@ -352,8 +352,8 @@ export const make: {
352
352
  services,
353
353
  scope,
354
354
  idleTimeToLive: typeof options.idleTimeToLive === "function"
355
- ? flow(options.idleTimeToLive, Duration.fromDurationInputUnsafe)
356
- : constant(Duration.fromDurationInputUnsafe(options.idleTimeToLive ?? Duration.zero)),
355
+ ? flow(options.idleTimeToLive, Duration.fromInputUnsafe)
356
+ : constant(Duration.fromInputUnsafe(options.idleTimeToLive ?? Duration.zero)),
357
357
  capacity: Math.max(options.capacity ?? Number.POSITIVE_INFINITY, 0)
358
358
  })
359
359
  return Effect.as(
package/src/RcRef.ts CHANGED
@@ -120,7 +120,7 @@ export const make: <A, E, R>(
120
120
  * When the reference count reaches zero, the resource will be released
121
121
  * after this duration.
122
122
  */
123
- readonly idleTimeToLive?: Duration.DurationInput | undefined
123
+ readonly idleTimeToLive?: Duration.Input | undefined
124
124
  }
125
125
  ) => Effect.Effect<RcRef<A, E>, never, R | Scope> = internal.make
126
126
 
package/src/Request.ts CHANGED
@@ -88,7 +88,7 @@ export interface Variance<out A, out E, out R> {
88
88
  * @category models
89
89
  */
90
90
  export interface Constructor<R extends Request<any, any, any>, T extends keyof R = never> {
91
- (args: Omit<R, T | keyof (Variance<any, any, any>)>): R
91
+ (args: Types.VoidIfEmpty<Types.Simplify<Omit<R, T | keyof (Variance<any, any, any>)>>>): R
92
92
  }
93
93
 
94
94
  /**
@@ -285,7 +285,8 @@ export const tagged = <R extends Request<any, any, any> & { _tag: string }>(
285
285
  tag: R["_tag"]
286
286
  ): Constructor<R, "_tag"> =>
287
287
  (args) => {
288
- const request = Object.assign(Object.create(RequestPrototype), args)
288
+ const request = Object.create(RequestPrototype)
289
+ if (args) Object.assign(request, args)
289
290
  request._tag = tag
290
291
  return request
291
292
  }
@@ -652,7 +652,7 @@ export const setDelay: {
652
652
  * @since 4.0.0
653
653
  * @category delay
654
654
  */
655
- (duration: Duration.DurationInput): <A extends Request.Any>(self: RequestResolver<A>) => RequestResolver<A>
655
+ (duration: Duration.Input): <A extends Request.Any>(self: RequestResolver<A>) => RequestResolver<A>
656
656
  /**
657
657
  * Sets the batch delay window for this request resolver to the specified duration.
658
658
  *
@@ -683,10 +683,10 @@ export const setDelay: {
683
683
  * @since 4.0.0
684
684
  * @category delay
685
685
  */
686
- <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.DurationInput): RequestResolver<A>
686
+ <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.Input): RequestResolver<A>
687
687
  } = dual(
688
688
  2,
689
- <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.DurationInput): RequestResolver<A> =>
689
+ <A extends Request.Any>(self: RequestResolver<A>, duration: Duration.Input): RequestResolver<A> =>
690
690
  makeWith({
691
691
  ...self,
692
692
  delay: Effect.sleep(duration)
@@ -841,26 +841,6 @@ export const around: {
841
841
  /**
842
842
  * A request resolver that never executes requests.
843
843
  *
844
- * @example
845
- * ```ts
846
- * import { Effect, Request, RequestResolver } from "effect"
847
- *
848
- * // A resolver that will never complete
849
- * const neverResolver = RequestResolver.never
850
- *
851
- * // For testing timeout behavior with any request type
852
- * interface TestRequest extends Request.Request<string> {
853
- * readonly _tag: "TestRequest"
854
- * }
855
- * const TestRequest = Request.tagged<TestRequest>("TestRequest")
856
- *
857
- * // This will never resolve
858
- * const neverEffect = Effect.request(TestRequest({}), Effect.succeed(neverResolver) as any)
859
- *
860
- * // Useful for testing timeout behavior
861
- * const timeoutTest = Effect.timeout(neverEffect, "1 second")
862
- * ```
863
- *
864
844
  * @since 2.0.0
865
845
  * @category constructors
866
846
  */
@@ -1468,7 +1448,7 @@ export const asCache: {
1468
1448
  >(
1469
1449
  options: {
1470
1450
  readonly capacity: number
1471
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1451
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1472
1452
  readonly requireServicesAt?: ServiceMode | undefined
1473
1453
  }
1474
1454
  ): (self: RequestResolver<A>) => Effect.Effect<
@@ -1495,7 +1475,7 @@ export const asCache: {
1495
1475
  self: RequestResolver<A>,
1496
1476
  options: {
1497
1477
  readonly capacity: number
1498
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1478
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1499
1479
  readonly requireServicesAt?: ServiceMode | undefined
1500
1480
  }
1501
1481
  ): Effect.Effect<
@@ -1513,7 +1493,7 @@ export const asCache: {
1513
1493
  ServiceMode extends "lookup" | "construction" = never
1514
1494
  >(self: RequestResolver<A>, options: {
1515
1495
  readonly capacity: number
1516
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1496
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1517
1497
  readonly requireServicesAt?: ServiceMode | undefined
1518
1498
  }): Effect.Effect<
1519
1499
  Cache.Cache<
@@ -1649,7 +1629,7 @@ export const persisted: {
1649
1629
  <A extends Request.Request<any, Persistence.PersistenceError | Schema.SchemaError, any> & Persistable.Any>(
1650
1630
  options: {
1651
1631
  readonly storeId: string
1652
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1632
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1653
1633
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1654
1634
  }
1655
1635
  ): (self: RequestResolver<A>) => Effect.Effect<
@@ -1667,7 +1647,7 @@ export const persisted: {
1667
1647
  self: RequestResolver<A>,
1668
1648
  options: {
1669
1649
  readonly storeId: string
1670
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1650
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1671
1651
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1672
1652
  }
1673
1653
  ): Effect.Effect<
@@ -1683,7 +1663,7 @@ export const persisted: {
1683
1663
  self: RequestResolver<A>,
1684
1664
  options: {
1685
1665
  readonly storeId: string
1686
- readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.DurationInput) | undefined
1666
+ readonly timeToLive?: ((exit: Request.Result<A>, request: A) => Duration.Input) | undefined
1687
1667
  readonly staleWhileRevalidate?: ((exit: Request.Result<A>, request: A) => boolean) | undefined
1688
1668
  }
1689
1669
  ) {