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
@@ -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"
@@ -3403,24 +3404,24 @@ export const isSuccess: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect
3403
3404
  /** @internal */
3404
3405
  export const delay: {
3405
3406
  (
3406
- duration: Duration.DurationInput
3407
+ duration: Duration.Input
3407
3408
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
3408
3409
  <A, E, R>(
3409
3410
  self: Effect.Effect<A, E, R>,
3410
- duration: Duration.DurationInput
3411
+ duration: Duration.Input
3411
3412
  ): Effect.Effect<A, E, R>
3412
3413
  } = dual(
3413
3414
  2,
3414
3415
  <A, E, R>(
3415
3416
  self: Effect.Effect<A, E, R>,
3416
- duration: Duration.DurationInput
3417
+ duration: Duration.Input
3417
3418
  ): Effect.Effect<A, E, R> => andThen(sleep(duration), self)
3418
3419
  )
3419
3420
 
3420
3421
  /** @internal */
3421
3422
  export const timeoutOrElse: {
3422
3423
  <A2, E2, R2>(options: {
3423
- readonly duration: Duration.DurationInput
3424
+ readonly duration: Duration.Input
3424
3425
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3425
3426
  }): <A, E, R>(
3426
3427
  self: Effect.Effect<A, E, R>
@@ -3428,7 +3429,7 @@ export const timeoutOrElse: {
3428
3429
  <A, E, R, A2, E2, R2>(
3429
3430
  self: Effect.Effect<A, E, R>,
3430
3431
  options: {
3431
- readonly duration: Duration.DurationInput
3432
+ readonly duration: Duration.Input
3432
3433
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3433
3434
  }
3434
3435
  ): Effect.Effect<A | A2, E | E2, R | R2>
@@ -3437,7 +3438,7 @@ export const timeoutOrElse: {
3437
3438
  <A, E, R, A2, E2, R2>(
3438
3439
  self: Effect.Effect<A, E, R>,
3439
3440
  options: {
3440
- readonly duration: Duration.DurationInput
3441
+ readonly duration: Duration.Input
3441
3442
  readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
3442
3443
  }
3443
3444
  ): Effect.Effect<A | A2, E | E2, R | R2> =>
@@ -3450,19 +3451,19 @@ export const timeoutOrElse: {
3450
3451
  /** @internal */
3451
3452
  export const timeout: {
3452
3453
  (
3453
- duration: Duration.DurationInput
3454
+ duration: Duration.Input
3454
3455
  ): <A, E, R>(
3455
3456
  self: Effect.Effect<A, E, R>
3456
3457
  ) => Effect.Effect<A, E | Cause.TimeoutError, R>
3457
3458
  <A, E, R>(
3458
3459
  self: Effect.Effect<A, E, R>,
3459
- duration: Duration.DurationInput
3460
+ duration: Duration.Input
3460
3461
  ): Effect.Effect<A, E | Cause.TimeoutError, R>
3461
3462
  } = dual(
3462
3463
  2,
3463
3464
  <A, E, R>(
3464
3465
  self: Effect.Effect<A, E, R>,
3465
- duration: Duration.DurationInput
3466
+ duration: Duration.Input
3466
3467
  ): Effect.Effect<A, E | TimeoutError, R> =>
3467
3468
  timeoutOrElse(self, {
3468
3469
  duration,
@@ -3473,19 +3474,19 @@ export const timeout: {
3473
3474
  /** @internal */
3474
3475
  export const timeoutOption: {
3475
3476
  (
3476
- duration: Duration.DurationInput
3477
+ duration: Duration.Input
3477
3478
  ): <A, E, R>(
3478
3479
  self: Effect.Effect<A, E, R>
3479
3480
  ) => Effect.Effect<Option.Option<A>, E, R>
3480
3481
  <A, E, R>(
3481
3482
  self: Effect.Effect<A, E, R>,
3482
- duration: Duration.DurationInput
3483
+ duration: Duration.Input
3483
3484
  ): Effect.Effect<Option.Option<A>, E, R>
3484
3485
  } = dual(
3485
3486
  2,
3486
3487
  <A, E, R>(
3487
3488
  self: Effect.Effect<A, E, R>,
3488
- duration: Duration.DurationInput
3489
+ duration: Duration.Input
3489
3490
  ): Effect.Effect<Option.Option<A>, E, R> =>
3490
3491
  raceFirst(
3491
3492
  asSome(self),
@@ -3873,19 +3874,19 @@ export const acquireUseRelease = <Resource, E, R, A, E2, R2, E3, R3>(
3873
3874
 
3874
3875
  /** @internal */
3875
3876
  export const cachedInvalidateWithTTL: {
3876
- (timeToLive: Duration.DurationInput): <A, E, R>(
3877
+ (timeToLive: Duration.Input): <A, E, R>(
3877
3878
  self: Effect.Effect<A, E, R>
3878
3879
  ) => Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
3879
3880
  <A, E, R>(
3880
3881
  self: Effect.Effect<A, E, R>,
3881
- timeToLive: Duration.DurationInput
3882
+ timeToLive: Duration.Input
3882
3883
  ): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
3883
3884
  } = dual(2, <A, E, R>(
3884
3885
  self: Effect.Effect<A, E, R>,
3885
- ttl: Duration.DurationInput
3886
+ ttl: Duration.Input
3886
3887
  ): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]> =>
3887
3888
  sync(() => {
3888
- const ttlMillis = Duration.toMillis(Duration.fromDurationInputUnsafe(ttl))
3889
+ const ttlMillis = Duration.toMillis(Duration.fromInputUnsafe(ttl))
3889
3890
  const isFinite = Number.isFinite(ttlMillis)
3890
3891
  const latch = makeLatchUnsafe(false)
3891
3892
  let expiresAt = 0
@@ -3918,17 +3919,17 @@ export const cachedInvalidateWithTTL: {
3918
3919
  /** @internal */
3919
3920
  export const cachedWithTTL: {
3920
3921
  (
3921
- timeToLive: Duration.DurationInput
3922
+ timeToLive: Duration.Input
3922
3923
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Effect.Effect<A, E, R>>
3923
3924
  <A, E, R>(
3924
3925
  self: Effect.Effect<A, E, R>,
3925
- timeToLive: Duration.DurationInput
3926
+ timeToLive: Duration.Input
3926
3927
  ): Effect.Effect<Effect.Effect<A, E, R>>
3927
3928
  } = dual(
3928
3929
  2,
3929
3930
  <A, E, R>(
3930
3931
  self: Effect.Effect<A, E, R>,
3931
- timeToLive: Duration.DurationInput
3932
+ timeToLive: Duration.Input
3932
3933
  ): Effect.Effect<Effect.Effect<A, E, R>> => map(cachedInvalidateWithTTL(self, timeToLive), (tuple) => tuple[0])
3933
3934
  )
3934
3935
 
@@ -4854,7 +4855,7 @@ export const makeSemaphore = (permits: number) => sync(() => makeSemaphoreUnsafe
4854
4855
  const succeedTrue = succeed(true)
4855
4856
  const succeedFalse = succeed(false)
4856
4857
 
4857
- class Latch implements Effect.Latch {
4858
+ class Latch implements _Latch.Latch {
4858
4859
  waiters: Array<(_: Effect.Effect<void>) => void> = []
4859
4860
  scheduled = false
4860
4861
  private isOpen: boolean
@@ -4914,7 +4915,7 @@ class Latch implements Effect.Latch {
4914
4915
  }
4915
4916
 
4916
4917
  /** @internal */
4917
- export const makeLatchUnsafe = (open?: boolean | undefined): Effect.Latch => new Latch(open ?? false)
4918
+ export const makeLatchUnsafe = (open?: boolean | undefined): _Latch.Latch => new Latch(open ?? false)
4918
4919
 
4919
4920
  /** @internal */
4920
4921
  export const makeLatch = (open?: boolean | undefined) => sync(() => makeLatchUnsafe(open))
@@ -5344,8 +5345,8 @@ export const clockWith = <A, E, R>(f: (clock: Clock.Clock) => Effect.Effect<A, E
5344
5345
  withFiber((fiber) => f(fiber.getRef(ClockRef)))
5345
5346
 
5346
5347
  /** @internal */
5347
- export const sleep = (duration: Duration.DurationInput): Effect.Effect<void> =>
5348
- clockWith((clock) => clock.sleep(Duration.fromDurationInputUnsafe(duration)))
5348
+ export const sleep = (duration: Duration.Input): Effect.Effect<void> =>
5349
+ clockWith((clock) => clock.sleep(Duration.fromInputUnsafe(duration)))
5349
5350
 
5350
5351
  /** @internal */
5351
5352
  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
  /**
@@ -53,6 +53,7 @@ import * as Option from "../../Option.ts"
53
53
  import * as Predicate from "../../Predicate.ts"
54
54
  import * as Ref from "../../Ref.ts"
55
55
  import * as Schema from "../../Schema.ts"
56
+ import * as Semaphore from "../../Semaphore.ts"
56
57
  import * as ServiceMap from "../../ServiceMap.ts"
57
58
  import * as Stream from "../../Stream.ts"
58
59
  import type { NoExcessProperties } from "../../Types.ts"
@@ -276,7 +277,7 @@ export interface Service {
276
277
  */
277
278
  readonly generateObject: <
278
279
  ObjectEncoded extends Record<string, any>,
279
- ObjectSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
280
+ ObjectSchema extends Schema.Encoder<ObjectEncoded, unknown>,
280
281
  Options extends NoExcessProperties<LanguageModel.GenerateObjectOptions<any, ObjectSchema>, Options>,
281
282
  Tools extends Record<string, Tool.Any> = {}
282
283
  >(options: Options & LanguageModel.GenerateObjectOptions<Tools, ObjectSchema>) => Effect.Effect<
@@ -325,7 +326,7 @@ const encodeHistoryJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Promp
325
326
  export const empty: Effect.Effect<Service> = Effect.gen(function*() {
326
327
  const history = yield* Ref.make(Prompt.empty)
327
328
  const services = yield* Effect.services<never>()
328
- const semaphore = yield* Effect.makeSemaphore(1)
329
+ const semaphore = yield* Semaphore.make(1)
329
330
 
330
331
  const provideContext = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
331
332
  Effect.updateServices(effect, (existing) => ServiceMap.merge(services, existing))
@@ -627,7 +628,7 @@ export declare namespace Persistence {
627
628
  * the persistence store, a `ChatNotFoundError` will be returned.
628
629
  */
629
630
  readonly get: (chatId: string, options?: {
630
- readonly timeToLive?: Duration.DurationInput | undefined
631
+ readonly timeToLive?: Duration.Input | undefined
631
632
  }) => Effect.Effect<Persisted, ChatNotFoundError | PersistenceError>
632
633
 
633
634
  /**
@@ -637,7 +638,7 @@ export declare namespace Persistence {
637
638
  * returned.
638
639
  */
639
640
  readonly getOrCreate: (chatId: string, options?: {
640
- readonly timeToLive?: Duration.DurationInput | undefined
641
+ readonly timeToLive?: Duration.Input | undefined
641
642
  }) => Effect.Effect<Persisted, AiError.AiError | PersistenceError>
642
643
  }
643
644
  }
@@ -680,7 +681,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
680
681
  const store = yield* persistence.make(options.storeId)
681
682
 
682
683
  const toPersisted = Effect.fnUntraced(
683
- function*(chatId: string, chat: Service, ttl: Duration.DurationInput | undefined) {
684
+ function*(chatId: string, chat: Service, ttl: Duration.Input | undefined) {
684
685
  const idGenerator = yield* Effect.serviceOption(IdGenerator.IdGenerator).pipe(
685
686
  Effect.map(Option.getOrElse(() => IdGenerator.defaultIdGenerator))
686
687
  )
@@ -712,7 +713,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
712
713
  yield* Ref.set(chat.history, history)
713
714
  // Export the chat history
714
715
  const exported = yield* Effect.orDie(chat.export)
715
- const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromDurationInput(ttl) : undefined
716
+ const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
716
717
  // Save the chat to the backing store
717
718
  yield* store.set(chatId, exported as object, timeToLive)
718
719
  }
@@ -748,13 +749,13 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
748
749
  )
749
750
 
750
751
  const createChat = Effect.fnUntraced(
751
- function*(chatId: string, ttl: Duration.DurationInput | undefined) {
752
+ function*(chatId: string, ttl: Duration.Input | undefined) {
752
753
  // Create an empty chat
753
754
  const chat = yield* empty
754
755
  // Export the chat history
755
756
  const history = yield* Effect.orDie(chat.export)
756
757
  // Save the history for the newly created chat
757
- const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromDurationInput(ttl) : undefined
758
+ const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
758
759
  yield* store.set(chatId, history as object, timeToLive)
759
760
  // Convert the chat to a persisted chat
760
761
  return yield* toPersisted(chatId, chat, ttl)
@@ -762,7 +763,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
762
763
  )
763
764
 
764
765
  const getChat = Effect.fnUntraced(
765
- function*(chatId: string, ttl: Duration.DurationInput | undefined) {
766
+ function*(chatId: string, ttl: Duration.Input | undefined) {
766
767
  // Create an empty chat
767
768
  const chat = yield* empty
768
769
  // Attempt to retrieve the previous history from the store
@@ -783,7 +784,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
783
784
 
784
785
  const get = Effect.fnUntraced(
785
786
  function*(chatId: string, options?: {
786
- readonly timeToLive?: Duration.DurationInput | undefined
787
+ readonly timeToLive?: Duration.Input | undefined
787
788
  }) {
788
789
  return yield* getChat(chatId, options?.timeToLive)
789
790
  },
@@ -795,7 +796,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
795
796
 
796
797
  const getOrCreate = Effect.fnUntraced(
797
798
  function*(chatId: string, options?: {
798
- readonly timeToLive?: Duration.DurationInput | undefined
799
+ readonly timeToLive?: Duration.Input | undefined
799
800
  }) {
800
801
  return yield* getChat(chatId, options?.timeToLive).pipe(
801
802
  Effect.catchTag("ChatNotFoundError", () => createChat(chatId, options?.timeToLive))
@@ -135,7 +135,7 @@ export interface Service {
135
135
  */
136
136
  readonly generateObject: <
137
137
  ObjectEncoded extends Record<string, any>,
138
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
138
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
139
139
  Options extends NoExcessProperties<
140
140
  GenerateObjectOptions<any, StructuredOutputSchema>,
141
141
  Options
@@ -728,7 +728,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
728
728
 
729
729
  const generateObject = <
730
730
  ObjectEncoded extends Record<string, any>,
731
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
731
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
732
732
  Options extends NoExcessProperties<
733
733
  GenerateObjectOptions<any, StructuredOutputSchema>,
734
734
  Options
@@ -1359,7 +1359,7 @@ export const generateText = <
1359
1359
  */
1360
1360
  export const generateObject = <
1361
1361
  ObjectEncoded extends Record<string, any>,
1362
- StructuredOutputSchema extends Schema.Codec<any, ObjectEncoded, any, any>,
1362
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
1363
1363
  Options extends NoExcessProperties<
1364
1364
  GenerateObjectOptions<any, StructuredOutputSchema>,
1365
1365
  Options
@@ -992,14 +992,14 @@ export const prompt = <
992
992
  * @since 4.0.0
993
993
  * @category elicitation
994
994
  */
995
- export const elicit: <S extends Schema.Codec<any, Record<string, unknown>, any, any>>(options: {
995
+ export const elicit: <S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
996
996
  readonly message: string
997
997
  readonly schema: S
998
998
  }) => Effect.Effect<
999
999
  S["Type"],
1000
1000
  ElicitationDeclined,
1001
1001
  McpServerClient | S["DecodingServices"]
1002
- > = Effect.fnUntraced(function*<S extends Schema.Codec<any, Record<string, unknown>, any, any>>(options: {
1002
+ > = Effect.fnUntraced(function*<S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
1003
1003
  readonly message: string
1004
1004
  readonly schema: S
1005
1005
  }) {