effect 4.0.0-beta.1 → 4.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts.map +1 -1
  8. package/dist/Channel.js +6 -4
  9. package/dist/Channel.js.map +1 -1
  10. package/dist/Combiner.d.ts +280 -13
  11. package/dist/Combiner.d.ts.map +1 -1
  12. package/dist/Combiner.js +198 -7
  13. package/dist/Combiner.js.map +1 -1
  14. package/dist/Config.d.ts +3 -3
  15. package/dist/Config.js +3 -3
  16. package/dist/Config.js.map +1 -1
  17. package/dist/ConfigProvider.d.ts +1 -1
  18. package/dist/Cron.d.ts +1 -1
  19. package/dist/Data.d.ts +534 -365
  20. package/dist/Data.d.ts.map +1 -1
  21. package/dist/Data.js +132 -79
  22. package/dist/Data.js.map +1 -1
  23. package/dist/DateTime.d.ts +23 -161
  24. package/dist/DateTime.d.ts.map +1 -1
  25. package/dist/DateTime.js +6 -51
  26. package/dist/DateTime.js.map +1 -1
  27. package/dist/Duration.d.ts +12 -12
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +12 -12
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +125 -240
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +73 -119
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Encoding.d.ts +194 -0
  36. package/dist/Encoding.d.ts.map +1 -0
  37. package/dist/Encoding.js +352 -0
  38. package/dist/Encoding.js.map +1 -0
  39. package/dist/Equal.d.ts +276 -109
  40. package/dist/Equal.d.ts.map +1 -1
  41. package/dist/Equal.js +124 -48
  42. package/dist/Equal.js.map +1 -1
  43. package/dist/FileSystem.d.ts +1 -1
  44. package/dist/FileSystem.d.ts.map +1 -1
  45. package/dist/FileSystem.js +5 -5
  46. package/dist/FileSystem.js.map +1 -1
  47. package/dist/Filter.d.ts +30 -1
  48. package/dist/Filter.d.ts.map +1 -1
  49. package/dist/Filter.js +15 -0
  50. package/dist/Filter.js.map +1 -1
  51. package/dist/Formatter.d.ts +131 -47
  52. package/dist/Formatter.d.ts.map +1 -1
  53. package/dist/Formatter.js +229 -51
  54. package/dist/Formatter.js.map +1 -1
  55. package/dist/Graph.d.ts +1 -1
  56. package/dist/Graph.d.ts.map +1 -1
  57. package/dist/Graph.js +2 -2
  58. package/dist/Graph.js.map +1 -1
  59. package/dist/JsonSchema.d.ts +299 -10
  60. package/dist/JsonSchema.d.ts.map +1 -1
  61. package/dist/JsonSchema.js +323 -4
  62. package/dist/JsonSchema.js.map +1 -1
  63. package/dist/Latch.d.ts +109 -0
  64. package/dist/Latch.d.ts.map +1 -0
  65. package/dist/Latch.js +72 -0
  66. package/dist/Latch.js.map +1 -0
  67. package/dist/LayerMap.d.ts +4 -4
  68. package/dist/LayerMap.d.ts.map +1 -1
  69. package/dist/LogLevel.d.ts +27 -0
  70. package/dist/LogLevel.d.ts.map +1 -1
  71. package/dist/LogLevel.js +28 -100
  72. package/dist/LogLevel.js.map +1 -1
  73. package/dist/Logger.d.ts +4 -4
  74. package/dist/Logger.d.ts.map +1 -1
  75. package/dist/Metric.d.ts +2 -2
  76. package/dist/Metric.d.ts.map +1 -1
  77. package/dist/Metric.js +1 -1
  78. package/dist/Metric.js.map +1 -1
  79. package/dist/Optic.d.ts +947 -18
  80. package/dist/Optic.d.ts.map +1 -1
  81. package/dist/Optic.js +454 -5
  82. package/dist/Optic.js.map +1 -1
  83. package/dist/Pipeable.d.ts +17 -0
  84. package/dist/Pipeable.d.ts.map +1 -1
  85. package/dist/Pipeable.js +19 -1
  86. package/dist/Pipeable.js.map +1 -1
  87. package/dist/PlatformError.d.ts +10 -9
  88. package/dist/PlatformError.d.ts.map +1 -1
  89. package/dist/PlatformError.js +2 -2
  90. package/dist/PlatformError.js.map +1 -1
  91. package/dist/Pool.d.ts +6 -4
  92. package/dist/Pool.d.ts.map +1 -1
  93. package/dist/Pool.js +7 -5
  94. package/dist/Pool.js.map +1 -1
  95. package/dist/PubSub.d.ts +3 -2
  96. package/dist/PubSub.d.ts.map +1 -1
  97. package/dist/PubSub.js +3 -2
  98. package/dist/PubSub.js.map +1 -1
  99. package/dist/Random.d.ts +18 -1
  100. package/dist/Random.d.ts.map +1 -1
  101. package/dist/Random.js +29 -12
  102. package/dist/Random.js.map +1 -1
  103. package/dist/RcMap.d.ts +2 -2
  104. package/dist/RcMap.d.ts.map +1 -1
  105. package/dist/RcMap.js +1 -1
  106. package/dist/RcMap.js.map +1 -1
  107. package/dist/RcRef.d.ts +1 -1
  108. package/dist/RcRef.d.ts.map +1 -1
  109. package/dist/Reducer.d.ts +166 -7
  110. package/dist/Reducer.d.ts.map +1 -1
  111. package/dist/Reducer.js +135 -1
  112. package/dist/Reducer.js.map +1 -1
  113. package/dist/Request.d.ts +1 -1
  114. package/dist/Request.d.ts.map +1 -1
  115. package/dist/Request.js +2 -1
  116. package/dist/Request.js.map +1 -1
  117. package/dist/RequestResolver.d.ts +6 -26
  118. package/dist/RequestResolver.d.ts.map +1 -1
  119. package/dist/RequestResolver.js +0 -20
  120. package/dist/RequestResolver.js.map +1 -1
  121. package/dist/Result.d.ts +12 -0
  122. package/dist/Result.d.ts.map +1 -1
  123. package/dist/Result.js +12 -0
  124. package/dist/Result.js.map +1 -1
  125. package/dist/Schedule.d.ts +33 -14
  126. package/dist/Schedule.d.ts.map +1 -1
  127. package/dist/Schedule.js +65 -24
  128. package/dist/Schedule.js.map +1 -1
  129. package/dist/Schema.d.ts +199 -49
  130. package/dist/Schema.d.ts.map +1 -1
  131. package/dist/Schema.js +386 -72
  132. package/dist/Schema.js.map +1 -1
  133. package/dist/SchemaGetter.d.ts +2 -2
  134. package/dist/SchemaGetter.d.ts.map +1 -1
  135. package/dist/SchemaGetter.js +12 -14
  136. package/dist/SchemaGetter.js.map +1 -1
  137. package/dist/SchemaRepresentation.d.ts +44 -43
  138. package/dist/SchemaRepresentation.d.ts.map +1 -1
  139. package/dist/SchemaRepresentation.js +43 -24
  140. package/dist/SchemaRepresentation.js.map +1 -1
  141. package/dist/SchemaTransformation.d.ts +37 -0
  142. package/dist/SchemaTransformation.d.ts.map +1 -1
  143. package/dist/SchemaTransformation.js +80 -0
  144. package/dist/SchemaTransformation.js.map +1 -1
  145. package/dist/ScopedCache.d.ts +2 -2
  146. package/dist/ScopedCache.d.ts.map +1 -1
  147. package/dist/ScopedCache.js +1 -1
  148. package/dist/ScopedCache.js.map +1 -1
  149. package/dist/Semaphore.d.ts +211 -0
  150. package/dist/Semaphore.d.ts.map +1 -0
  151. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  152. package/dist/Semaphore.js.map +1 -0
  153. package/dist/Stream.d.ts +19 -19
  154. package/dist/Stream.d.ts.map +1 -1
  155. package/dist/Stream.js +12 -11
  156. package/dist/Stream.js.map +1 -1
  157. package/dist/Struct.d.ts +16 -0
  158. package/dist/Struct.d.ts.map +1 -1
  159. package/dist/Struct.js +22 -0
  160. package/dist/Struct.js.map +1 -1
  161. package/dist/SubscriptionRef.d.ts +2 -1
  162. package/dist/SubscriptionRef.d.ts.map +1 -1
  163. package/dist/SubscriptionRef.js +2 -1
  164. package/dist/SubscriptionRef.js.map +1 -1
  165. package/dist/SynchronizedRef.d.ts +2 -1
  166. package/dist/SynchronizedRef.d.ts.map +1 -1
  167. package/dist/SynchronizedRef.js +2 -1
  168. package/dist/SynchronizedRef.js.map +1 -1
  169. package/dist/Types.d.ts +14 -6
  170. package/dist/Types.d.ts.map +1 -1
  171. package/dist/index.d.ts +499 -19
  172. package/dist/index.d.ts.map +1 -1
  173. package/dist/index.js +499 -19
  174. package/dist/index.js.map +1 -1
  175. package/dist/internal/core.js +11 -3
  176. package/dist/internal/core.js.map +1 -1
  177. package/dist/internal/dateTime.js +3 -11
  178. package/dist/internal/dateTime.js.map +1 -1
  179. package/dist/internal/effect.js +31 -22
  180. package/dist/internal/effect.js.map +1 -1
  181. package/dist/internal/random.d.ts +2 -0
  182. package/dist/internal/random.d.ts.map +1 -0
  183. package/dist/internal/random.js +13 -0
  184. package/dist/internal/random.js.map +1 -0
  185. package/dist/internal/rcRef.js +3 -2
  186. package/dist/internal/rcRef.js.map +1 -1
  187. package/dist/testing/TestClock.d.ts +7 -6
  188. package/dist/testing/TestClock.d.ts.map +1 -1
  189. package/dist/testing/TestClock.js +6 -4
  190. package/dist/testing/TestClock.js.map +1 -1
  191. package/dist/testing/TestSchema.d.ts +6 -6
  192. package/dist/testing/TestSchema.d.ts.map +1 -1
  193. package/dist/unstable/ai/AiError.d.ts +48 -48
  194. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  195. package/dist/unstable/ai/Chat.d.ts +3 -3
  196. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  197. package/dist/unstable/ai/Chat.js +4 -3
  198. package/dist/unstable/ai/Chat.js.map +1 -1
  199. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  200. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  201. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  202. package/dist/unstable/ai/McpServer.d.ts +1 -1
  203. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  204. package/dist/unstable/ai/McpServer.js.map +1 -1
  205. package/dist/unstable/ai/Prompt.d.ts +20 -20
  206. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  207. package/dist/unstable/ai/Response.d.ts +26 -26
  208. package/dist/unstable/ai/Response.d.ts.map +1 -1
  209. package/dist/unstable/ai/Response.js +1 -1
  210. package/dist/unstable/ai/Response.js.map +1 -1
  211. package/dist/unstable/cli/CliError.d.ts +5 -5
  212. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  213. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  214. package/dist/unstable/cluster/ClusterCron.js +1 -1
  215. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  216. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  217. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  218. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  219. package/dist/unstable/cluster/Entity.d.ts +5 -4
  220. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  221. package/dist/unstable/cluster/Entity.js.map +1 -1
  222. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  223. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  224. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  225. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  226. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  227. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  228. package/dist/unstable/cluster/Message.d.ts +10 -10
  229. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  230. package/dist/unstable/cluster/MessageStorage.js +2 -1
  231. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  232. package/dist/unstable/cluster/Reply.d.ts +6 -6
  233. package/dist/unstable/cluster/Runner.d.ts +1 -1
  234. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  235. package/dist/unstable/cluster/Runners.js +4 -3
  236. package/dist/unstable/cluster/Runners.js.map +1 -1
  237. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  238. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  239. package/dist/unstable/cluster/Sharding.js +8 -6
  240. package/dist/unstable/cluster/Sharding.js.map +1 -1
  241. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  242. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  244. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  245. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  246. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  247. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  248. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  249. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  250. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  251. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  252. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  253. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  254. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  255. package/dist/unstable/encoding/Sse.d.ts +4 -4
  256. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  257. package/dist/unstable/encoding/Sse.js.map +1 -1
  258. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  259. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  260. package/dist/unstable/eventlog/EventLog.js +2 -1
  261. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  262. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  263. package/dist/unstable/http/Cookies.d.ts +3 -3
  264. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  265. package/dist/unstable/http/Cookies.js +2 -2
  266. package/dist/unstable/http/Cookies.js.map +1 -1
  267. package/dist/unstable/http/HttpBody.d.ts +17 -2
  268. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  269. package/dist/unstable/http/HttpBody.js +28 -1
  270. package/dist/unstable/http/HttpBody.js.map +1 -1
  271. package/dist/unstable/http/HttpClient.d.ts +11 -11
  272. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  273. package/dist/unstable/http/HttpClient.js +4 -4
  274. package/dist/unstable/http/HttpClient.js.map +1 -1
  275. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  276. package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
  277. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  278. package/dist/unstable/http/HttpClientRequest.js +15 -3
  279. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  280. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  281. package/dist/unstable/http/HttpEffect.js +18 -26
  282. package/dist/unstable/http/HttpEffect.js.map +1 -1
  283. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  284. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  285. package/dist/unstable/http/HttpMethod.js +3 -3
  286. package/dist/unstable/http/HttpMethod.js.map +1 -1
  287. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  288. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  289. package/dist/unstable/http/HttpMiddleware.js +4 -9
  290. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  291. package/dist/unstable/http/HttpServerError.d.ts +6 -6
  292. package/dist/unstable/http/HttpServerResponse.js +1 -1
  293. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  294. package/dist/unstable/http/Multipart.d.ts +3 -3
  295. package/dist/unstable/http/UrlParams.d.ts +14 -6
  296. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  297. package/dist/unstable/http/UrlParams.js +1 -1
  298. package/dist/unstable/http/UrlParams.js.map +1 -1
  299. package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
  300. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  301. package/dist/unstable/httpapi/HttpApiClient.js +3 -3
  302. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  303. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
  304. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  305. package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
  306. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  307. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  308. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  309. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  310. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  311. package/dist/unstable/httpapi/OpenApi.js +18 -16
  312. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  313. package/dist/unstable/observability/Otlp.d.ts +12 -12
  314. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  315. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  316. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.js +1 -1
  318. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  319. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  320. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  321. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  322. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  324. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  325. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  326. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  327. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  328. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  329. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  330. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  331. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  332. package/dist/unstable/persistence/PersistedCache.js +2 -1
  333. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  334. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  335. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  336. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  337. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  338. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  339. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  340. package/dist/unstable/persistence/Persistence.js +2 -2
  341. package/dist/unstable/persistence/Persistence.js.map +1 -1
  342. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  343. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  344. package/dist/unstable/persistence/RateLimiter.js +1 -1
  345. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  346. package/dist/unstable/process/ChildProcess.d.ts +2 -2
  347. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  348. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  349. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  350. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  351. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  352. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  353. package/dist/unstable/reactivity/Atom.js +15 -12
  354. package/dist/unstable/reactivity/Atom.js.map +1 -1
  355. package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
  356. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  357. package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
  358. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  359. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  360. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  361. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  362. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  363. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  364. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  365. package/dist/unstable/reactivity/Hydration.js +76 -0
  366. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  367. package/dist/unstable/reactivity/index.d.ts +4 -0
  368. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  369. package/dist/unstable/reactivity/index.js +4 -0
  370. package/dist/unstable/reactivity/index.js.map +1 -1
  371. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  372. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  373. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  374. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  375. package/dist/unstable/rpc/RpcClient.js +6 -13
  376. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  377. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  378. package/dist/unstable/rpc/RpcServer.js +5 -3
  379. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  380. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  381. package/dist/unstable/rpc/Utils.js +2 -1
  382. package/dist/unstable/rpc/Utils.js.map +1 -1
  383. package/dist/unstable/schema/Model.d.ts +4 -4
  384. package/dist/unstable/schema/Model.d.ts.map +1 -1
  385. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  386. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  387. package/dist/unstable/schema/VariantSchema.js +13 -2
  388. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  389. package/dist/unstable/socket/Socket.d.ts +4 -4
  390. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  391. package/dist/unstable/socket/Socket.js +3 -2
  392. package/dist/unstable/socket/Socket.js.map +1 -1
  393. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  394. package/dist/unstable/sql/Migrator.d.ts +1 -1
  395. package/dist/unstable/sql/SqlError.d.ts +2 -2
  396. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  397. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  398. package/dist/unstable/sql/SqlSchema.d.ts +24 -1
  399. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  400. package/dist/unstable/sql/SqlSchema.js +24 -3
  401. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  402. package/dist/unstable/sql/Statement.js +0 -1
  403. package/dist/unstable/sql/Statement.js.map +1 -1
  404. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  405. package/dist/unstable/workers/Worker.js +2 -1
  406. package/dist/unstable/workers/Worker.js.map +1 -1
  407. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  408. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  409. package/dist/unstable/workflow/DurableClock.js +3 -3
  410. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  411. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  412. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  413. package/dist/unstable/workflow/Workflow.d.ts +2 -2
  414. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  415. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  416. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  417. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  418. package/package.json +2 -2
  419. package/src/Cache.ts +3 -3
  420. package/src/Cause.ts +1 -1
  421. package/src/Channel.ts +6 -4
  422. package/src/Combiner.ts +280 -13
  423. package/src/Config.ts +3 -3
  424. package/src/Data.ts +538 -374
  425. package/src/DateTime.ts +24 -164
  426. package/src/Duration.ts +15 -15
  427. package/src/Effect.ts +143 -261
  428. package/src/Encoding.ts +879 -0
  429. package/src/Equal.ts +278 -111
  430. package/src/FileSystem.ts +7 -8
  431. package/src/Filter.ts +48 -1
  432. package/src/Formatter.ts +253 -51
  433. package/src/Graph.ts +8 -5
  434. package/src/JsonSchema.ts +383 -10
  435. package/src/Latch.ts +112 -0
  436. package/src/LayerMap.ts +5 -5
  437. package/src/LogLevel.ts +31 -0
  438. package/src/Logger.ts +5 -5
  439. package/src/Metric.ts +4 -4
  440. package/src/Optic.ts +948 -19
  441. package/src/Pipeable.ts +32 -1
  442. package/src/PlatformError.ts +5 -5
  443. package/src/Pool.ts +13 -11
  444. package/src/PubSub.ts +10 -9
  445. package/src/Random.ts +33 -14
  446. package/src/RcMap.ts +5 -5
  447. package/src/RcRef.ts +1 -1
  448. package/src/Reducer.ts +166 -7
  449. package/src/Request.ts +3 -2
  450. package/src/RequestResolver.ts +9 -29
  451. package/src/Result.ts +13 -0
  452. package/src/Schedule.ts +279 -140
  453. package/src/Schema.ts +575 -113
  454. package/src/SchemaGetter.ts +12 -14
  455. package/src/SchemaRepresentation.ts +43 -24
  456. package/src/SchemaTransformation.ts +104 -0
  457. package/src/ScopedCache.ts +3 -3
  458. package/src/Semaphore.ts +356 -0
  459. package/src/Stream.ts +43 -42
  460. package/src/Struct.ts +26 -0
  461. package/src/SubscriptionRef.ts +3 -2
  462. package/src/SynchronizedRef.ts +3 -2
  463. package/src/Types.ts +12 -2
  464. package/src/index.ts +502 -20
  465. package/src/internal/core.ts +12 -5
  466. package/src/internal/dateTime.ts +9 -30
  467. package/src/internal/effect.ts +57 -37
  468. package/src/internal/random.ts +20 -0
  469. package/src/internal/rcRef.ts +4 -3
  470. package/src/testing/TestClock.ts +13 -11
  471. package/src/testing/TestSchema.ts +8 -8
  472. package/src/unstable/ai/AiError.ts +2 -2
  473. package/src/unstable/ai/Chat.ts +12 -11
  474. package/src/unstable/ai/LanguageModel.ts +3 -3
  475. package/src/unstable/ai/McpServer.ts +2 -2
  476. package/src/unstable/ai/Prompt.ts +37 -37
  477. package/src/unstable/ai/Response.ts +25 -25
  478. package/src/unstable/cluster/ClusterCron.ts +2 -2
  479. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  480. package/src/unstable/cluster/Entity.ts +7 -6
  481. package/src/unstable/cluster/EntityResource.ts +4 -4
  482. package/src/unstable/cluster/Envelope.ts +1 -1
  483. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  484. package/src/unstable/cluster/MessageStorage.ts +3 -5
  485. package/src/unstable/cluster/Runners.ts +6 -5
  486. package/src/unstable/cluster/Sharding.ts +11 -9
  487. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  488. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  489. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  490. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  491. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  492. package/src/unstable/encoding/Sse.ts +2 -4
  493. package/src/unstable/eventlog/EventLog.ts +2 -1
  494. package/src/unstable/http/Cookies.ts +3 -3
  495. package/src/unstable/http/HttpBody.ts +42 -1
  496. package/src/unstable/http/HttpClient.ts +19 -19
  497. package/src/unstable/http/HttpClientRequest.ts +38 -13
  498. package/src/unstable/http/HttpEffect.ts +17 -25
  499. package/src/unstable/http/HttpMethod.ts +16 -4
  500. package/src/unstable/http/HttpMiddleware.ts +5 -10
  501. package/src/unstable/http/HttpServerResponse.ts +1 -1
  502. package/src/unstable/http/Multipart.ts +2 -2
  503. package/src/unstable/http/UrlParams.ts +20 -5
  504. package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
  505. package/src/unstable/httpapi/HttpApiClient.ts +3 -3
  506. package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
  507. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  508. package/src/unstable/httpapi/OpenApi.ts +18 -16
  509. package/src/unstable/observability/Otlp.ts +12 -12
  510. package/src/unstable/observability/OtlpExporter.ts +3 -3
  511. package/src/unstable/observability/OtlpLogger.ts +4 -4
  512. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  513. package/src/unstable/observability/OtlpTracer.ts +4 -4
  514. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  515. package/src/unstable/persistence/Persistable.ts +2 -2
  516. package/src/unstable/persistence/PersistedCache.ts +20 -9
  517. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  518. package/src/unstable/persistence/Persistence.ts +3 -3
  519. package/src/unstable/persistence/RateLimiter.ts +4 -4
  520. package/src/unstable/process/ChildProcess.ts +2 -2
  521. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  522. package/src/unstable/reactivity/Atom.ts +20 -18
  523. package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
  524. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  525. package/src/unstable/reactivity/Hydration.ts +112 -0
  526. package/src/unstable/reactivity/index.ts +5 -0
  527. package/src/unstable/rpc/Rpc.ts +3 -3
  528. package/src/unstable/rpc/RpcClient.ts +12 -54
  529. package/src/unstable/rpc/RpcServer.ts +6 -4
  530. package/src/unstable/rpc/Utils.ts +2 -1
  531. package/src/unstable/schema/VariantSchema.ts +36 -7
  532. package/src/unstable/socket/Socket.ts +7 -6
  533. package/src/unstable/sql/SqlModel.ts +2 -2
  534. package/src/unstable/sql/SqlSchema.ts +62 -13
  535. package/src/unstable/sql/Statement.ts +0 -1
  536. package/src/unstable/workers/Worker.ts +2 -1
  537. package/src/unstable/workflow/DurableClock.ts +8 -8
  538. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  539. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  540. package/dist/PartitionedSemaphore.d.ts +0 -52
  541. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  542. package/dist/PartitionedSemaphore.js.map +0 -1
  543. package/dist/encoding/Base64.d.ts +0 -67
  544. package/dist/encoding/Base64.d.ts.map +0 -1
  545. package/dist/encoding/Base64.js +0 -146
  546. package/dist/encoding/Base64.js.map +0 -1
  547. package/dist/encoding/Base64Url.d.ts +0 -60
  548. package/dist/encoding/Base64Url.d.ts.map +0 -1
  549. package/dist/encoding/Base64Url.js +0 -89
  550. package/dist/encoding/Base64Url.js.map +0 -1
  551. package/dist/encoding/EncodingError.d.ts +0 -31
  552. package/dist/encoding/EncodingError.d.ts.map +0 -1
  553. package/dist/encoding/EncodingError.js +0 -22
  554. package/dist/encoding/EncodingError.js.map +0 -1
  555. package/dist/encoding/Hex.d.ts +0 -61
  556. package/dist/encoding/Hex.d.ts.map +0 -1
  557. package/dist/encoding/Hex.js +0 -115
  558. package/dist/encoding/Hex.js.map +0 -1
  559. package/dist/encoding/index.d.ts +0 -26
  560. package/dist/encoding/index.d.ts.map +0 -1
  561. package/dist/encoding/index.js +0 -27
  562. package/dist/encoding/index.js.map +0 -1
  563. package/src/PartitionedSemaphore.ts +0 -182
  564. package/src/encoding/Base64.ts +0 -366
  565. package/src/encoding/Base64Url.ts +0 -104
  566. package/src/encoding/EncodingError.ts +0 -35
  567. package/src/encoding/Hex.ts +0 -390
  568. package/src/encoding/index.ts +0 -31
@@ -51,8 +51,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
51
51
  infer _Name,
52
52
  infer _Method,
53
53
  infer _Path,
54
- infer _PathSchema,
55
- infer _UrlParams,
54
+ infer _Params,
55
+ infer _Query,
56
56
  infer _Payload,
57
57
  infer _Headers,
58
58
  infer _Success,
@@ -62,7 +62,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
62
62
  >
63
63
  ] ? Atom.AtomResultFn<
64
64
  Simplify<
65
- HttpApiEndpoint.ClientRequest<_PathSchema, _UrlParams, _Payload, _Headers, false> & {
65
+ HttpApiEndpoint.ClientRequest<_Params, _Query, _Payload, _Headers, false> & {
66
66
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
67
67
  }
68
68
  >,
@@ -88,8 +88,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
88
88
  infer _Name,
89
89
  infer _Method,
90
90
  infer _Path,
91
- infer _PathSchema,
92
- infer _UrlParams,
91
+ infer _Params,
92
+ infer _Query,
93
93
  infer _Payload,
94
94
  infer _Headers,
95
95
  infer _Success,
@@ -98,12 +98,12 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
98
98
  infer _RE
99
99
  >
100
100
  ] ? Simplify<
101
- HttpApiEndpoint.ClientRequest<_PathSchema, _UrlParams, _Payload, _Headers, WithResponse> & {
101
+ HttpApiEndpoint.ClientRequest<_Params, _Query, _Payload, _Headers, WithResponse> & {
102
102
  readonly reactivityKeys?:
103
103
  | ReadonlyArray<unknown>
104
104
  | ReadonlyRecord<string, ReadonlyArray<unknown>>
105
105
  | undefined
106
- readonly timeToLive?: Duration.DurationInput | undefined
106
+ readonly timeToLive?: Duration.Input | undefined
107
107
  }
108
108
  >
109
109
  : never
@@ -112,7 +112,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
112
112
  infer _Name,
113
113
  infer _Method,
114
114
  infer _Path,
115
- infer _UrlParams,
115
+ infer _Params,
116
+ infer _Query,
116
117
  infer _Payload,
117
118
  infer _Headers,
118
119
  infer _Success,
@@ -170,8 +171,8 @@ export const Service = <Self>() =>
170
171
 
171
172
  const mutationFamily = Atom.family(({ endpoint, group, withResponse }: MutationKey) =>
172
173
  self.runtime.fn<{
173
- path: any
174
- urlParams: any
174
+ params: any
175
+ query: any
175
176
  headers: any
176
177
  payload: any
177
178
  reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
@@ -217,26 +218,26 @@ export const Service = <Self>() =>
217
218
  group: string,
218
219
  endpoint: string,
219
220
  request: {
220
- readonly path?: any
221
- readonly urlParams?: any
221
+ readonly params?: any
222
+ readonly query?: any
222
223
  readonly payload?: any
223
224
  readonly headers?: any
224
225
  readonly withResponse?: boolean
225
226
  readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
226
- readonly timeToLive?: Duration.DurationInput | undefined
227
+ readonly timeToLive?: Duration.Input | undefined
227
228
  }
228
229
  ) =>
229
230
  queryFamily({
230
231
  group,
231
232
  endpoint,
232
- path: request.path,
233
- urlParams: request.urlParams,
233
+ params: request.params,
234
+ query: request.query,
234
235
  payload: request.payload,
235
236
  headers: request.headers,
236
237
  withResponse: request.withResponse ?? false,
237
238
  reactivityKeys: request.reactivityKeys,
238
239
  timeToLive: request.timeToLive
239
- ? Duration.fromDurationInputUnsafe(request.timeToLive)
240
+ ? Duration.fromInputUnsafe(request.timeToLive)
240
241
  : undefined
241
242
  })) as any
242
243
 
@@ -252,8 +253,8 @@ interface MutationKey {
252
253
  interface QueryKey {
253
254
  group: string
254
255
  endpoint: string
255
- path: any
256
- urlParams: any
256
+ params: any
257
+ query: any
257
258
  headers: any
258
259
  payload: any
259
260
  withResponse: boolean
@@ -71,7 +71,7 @@ export interface AtomRpcClient<Self, Id extends string, Rpcs extends Rpc.Any, E>
71
71
  | ReadonlyArray<unknown>
72
72
  | ReadonlyRecord<string, ReadonlyArray<unknown>>
73
73
  | undefined
74
- readonly timeToLive?: Duration.DurationInput | undefined
74
+ readonly timeToLive?: Duration.Input | undefined
75
75
  }
76
76
  ) => Rpc.ExtractTag<Rpcs, Tag> extends Rpc.Rpc<
77
77
  infer _Tag,
@@ -208,7 +208,7 @@ export const Service = <Self>() =>
208
208
  | ReadonlyArray<unknown>
209
209
  | ReadonlyRecord<string, ReadonlyArray<unknown>>
210
210
  | undefined
211
- readonly timeToLive?: Duration.DurationInput | undefined
211
+ readonly timeToLive?: Duration.Input | undefined
212
212
  }
213
213
  ) =>
214
214
  queryFamily({
@@ -219,7 +219,7 @@ export const Service = <Self>() =>
219
219
  : undefined,
220
220
  reactivityKeys: options?.reactivityKeys,
221
221
  timeToLive: options?.timeToLive
222
- ? Duration.fromDurationInputUnsafe(options.timeToLive)
222
+ ? Duration.fromInputUnsafe(options.timeToLive)
223
223
  : undefined
224
224
  }) as any
225
225
 
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @since 4.0.0
3
+ */
4
+ import * as AsyncResult from "./AsyncResult.ts"
5
+ import * as Atom from "./Atom.ts"
6
+ import type * as AtomRegistry from "./AtomRegistry.ts"
7
+
8
+ /**
9
+ * @since 4.0.0
10
+ * @category models
11
+ */
12
+ export interface DehydratedAtom {
13
+ readonly "~effect/reactivity/DehydratedAtom": true
14
+ }
15
+
16
+ /**
17
+ * @since 4.0.0
18
+ * @category models
19
+ */
20
+ export interface DehydratedAtomValue extends DehydratedAtom {
21
+ readonly key: string
22
+ readonly value: unknown
23
+ readonly dehydratedAt: number
24
+ readonly resultPromise?: Promise<unknown> | undefined
25
+ }
26
+
27
+ /**
28
+ * @since 4.0.0
29
+ * @category dehydration
30
+ */
31
+ export const dehydrate = (
32
+ registry: AtomRegistry.AtomRegistry,
33
+ options?: {
34
+ /**
35
+ * How to encode `AsyncResult.Initial` values. Default is "ignore".
36
+ */
37
+ readonly encodeInitialAs?: "ignore" | "promise" | "value-only" | undefined
38
+ }
39
+ ): Array<DehydratedAtom> => {
40
+ const encodeInitialResultMode = options?.encodeInitialAs ?? "ignore"
41
+ const arr: Array<DehydratedAtomValue> = []
42
+ const now = Date.now()
43
+ registry.getNodes().forEach((node, key) => {
44
+ if (!Atom.isSerializable(node.atom)) return
45
+ const atom = node.atom
46
+ const value = node.value()
47
+ const isInitial = AsyncResult.isAsyncResult(value) && AsyncResult.isInitial(value)
48
+ if (encodeInitialResultMode === "ignore" && isInitial) return
49
+ const encodedValue = atom[Atom.SerializableTypeId].encode(value)
50
+
51
+ // Create a promise that resolves when the atom moves out of Initial state
52
+ let resultPromise: Promise<unknown> | undefined
53
+ if (encodeInitialResultMode === "promise" && isInitial) {
54
+ resultPromise = new Promise((resolve) => {
55
+ const unsubscribe = registry.subscribe(atom, (newValue) => {
56
+ if (AsyncResult.isAsyncResult(newValue) && !AsyncResult.isInitial(newValue)) {
57
+ resolve(atom[Atom.SerializableTypeId].encode(newValue))
58
+ unsubscribe()
59
+ }
60
+ })
61
+ })
62
+ }
63
+
64
+ arr.push({
65
+ "~effect/reactivity/DehydratedAtom": true,
66
+ key: key as string,
67
+ value: encodedValue,
68
+ dehydratedAt: now,
69
+ resultPromise
70
+ })
71
+ })
72
+ return arr as any
73
+ }
74
+
75
+ /**
76
+ * @since 4.0.0
77
+ * @category dehydration
78
+ */
79
+ export const toValues = (state: ReadonlyArray<DehydratedAtom>): Array<DehydratedAtomValue> => state as any
80
+
81
+ /**
82
+ * @since 4.0.0
83
+ * @category hydration
84
+ */
85
+ export const hydrate = (
86
+ registry: AtomRegistry.AtomRegistry,
87
+ dehydratedState: Iterable<DehydratedAtom>
88
+ ): void => {
89
+ for (const datom of (dehydratedState as Iterable<DehydratedAtomValue>)) {
90
+ registry.setSerializable(datom.key, datom.value)
91
+
92
+ // If there's a resultPromise, it means this was in Initial state when dehydrated
93
+ // and we should wait for it to resolve to a non-Initial state, then update the registry
94
+ if (!datom.resultPromise) continue
95
+ datom.resultPromise.then((resolvedValue) => {
96
+ // Try to update the existing node directly instead of using setSerializable
97
+ const nodes = registry.getNodes()
98
+ const node = nodes.get(datom.key)
99
+ if (node) {
100
+ // Decode the resolved value using the node's atom serializable decoder
101
+ const atom = node.atom as any
102
+ if (atom[Atom.SerializableTypeId]) {
103
+ const decoded = atom[Atom.SerializableTypeId].decode(resolvedValue)
104
+ ;(node as any).setValue(decoded)
105
+ }
106
+ } else {
107
+ // Fallback to setSerializable if node doesn't exist yet
108
+ registry.setSerializable(datom.key, resolvedValue)
109
+ }
110
+ })
111
+ }
112
+ }
@@ -34,6 +34,11 @@ export * as AtomRegistry from "./AtomRegistry.ts"
34
34
  */
35
35
  export * as AtomRpc from "./AtomRpc.ts"
36
36
 
37
+ /**
38
+ * @since 4.0.0
39
+ */
40
+ export * as Hydration from "./Hydration.ts"
41
+
37
42
  /**
38
43
  * @since 4.0.0
39
44
  */
@@ -61,7 +61,7 @@ export interface Rpc<
61
61
  readonly payloadSchema: Payload
62
62
  readonly successSchema: Success
63
63
  readonly errorSchema: Error
64
- readonly defectSchema: DefectSchema
64
+ readonly defectSchema: Schema.Top
65
65
  readonly annotations: ServiceMap.ServiceMap<never>
66
66
  readonly middlewares: ReadonlySet<Middleware>
67
67
  readonly "~requires": Requires
@@ -183,7 +183,7 @@ export interface AnyWithProps extends Pipeable {
183
183
  readonly payloadSchema: Schema.Top
184
184
  readonly successSchema: Schema.Top
185
185
  readonly errorSchema: Schema.Top
186
- readonly defectSchema: DefectSchema
186
+ readonly defectSchema: Schema.Top
187
187
  readonly annotations: ServiceMap.ServiceMap<never>
188
188
  readonly middlewares: ReadonlySet<RpcMiddleware.AnyServiceWithProps>
189
189
  readonly "~requires": any
@@ -696,7 +696,7 @@ const makeProto = <
696
696
  readonly payloadSchema: Payload
697
697
  readonly successSchema: Success
698
698
  readonly errorSchema: Error
699
- readonly defectSchema: DefectSchema
699
+ readonly defectSchema: Schema.Top
700
700
  readonly annotations: ServiceMap.ServiceMap<never>
701
701
  readonly middlewares: ReadonlySet<Middleware>
702
702
  }): Rpc<Tag, Payload, Success, Error, Middleware, Requires> => {
@@ -8,6 +8,7 @@ import * as Effect from "../../Effect.ts"
8
8
  import * as Exit from "../../Exit.ts"
9
9
  import * as Fiber from "../../Fiber.ts"
10
10
  import { constVoid, dual, flow, identity } from "../../Function.ts"
11
+ import * as Latch from "../../Latch.ts"
11
12
  import * as Layer from "../../Layer.ts"
12
13
  import * as Option from "../../Option.ts"
13
14
  import * as Pool from "../../Pool.ts"
@@ -20,7 +21,6 @@ import * as ServiceMap from "../../ServiceMap.ts"
20
21
  import * as Stream from "../../Stream.ts"
21
22
  import type * as Struct from "../../Struct.ts"
22
23
  import type { Span } from "../../Tracer.ts"
23
- import type { Mutable } from "../../Types.ts"
24
24
  import * as Headers from "../http/Headers.ts"
25
25
  import * as HttpBody from "../http/HttpBody.ts"
26
26
  import * as HttpClient from "../http/HttpClient.ts"
@@ -45,16 +45,7 @@ import { withRun } from "./Utils.ts"
45
45
  * @since 4.0.0
46
46
  * @category client
47
47
  */
48
- export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<
49
- & RpcClient.From<RpcClient.NonPrefixed<Rpcs>, E, "">
50
- & {
51
- readonly [CurrentPrefix in RpcClient.Prefixes<Rpcs>]: RpcClient.From<
52
- RpcClient.Prefixed<Rpcs, CurrentPrefix>,
53
- E,
54
- CurrentPrefix
55
- >
56
- }
57
- >
48
+ export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<RpcClient.From<Rpcs, E>>
58
49
 
59
50
  /**
60
51
  * @since 4.0.0
@@ -65,34 +56,8 @@ export declare namespace RpcClient {
65
56
  * @since 4.0.0
66
57
  * @category client
67
58
  */
68
- export type Prefixes<Rpcs extends Rpc.Any> = Rpcs["_tag"] extends infer Tag
69
- ? Tag extends `${infer Prefix}.${string}` ? Prefix : never
70
- : never
71
-
72
- /**
73
- * @since 4.0.0
74
- * @category client
75
- */
76
- export type NonPrefixed<Rpcs extends Rpc.Any> = Exclude<Rpcs, { readonly _tag: `${string}.${string}` }>
77
-
78
- /**
79
- * @since 4.0.0
80
- * @category client
81
- */
82
- export type Prefixed<Rpcs extends Rpc.Any, Prefix extends string> = Extract<
83
- Rpcs,
84
- { readonly _tag: `${Prefix}.${string}` }
85
- >
86
-
87
- /**
88
- * @since 4.0.0
89
- * @category client
90
- */
91
- export type From<Rpcs extends Rpc.Any, E = never, Prefix extends string = ""> = {
92
- readonly [
93
- Current in Rpcs as Current["_tag"] extends `${Prefix}.${infer Method}` ? Method
94
- : Current["_tag"]
95
- ]: <
59
+ export type From<Rpcs extends Rpc.Any, E = never> = {
60
+ readonly [Current in Rpcs as Current["_tag"]]: <
96
61
  const AsQueue extends boolean = false,
97
62
  const Discard = false
98
63
  >(
@@ -614,16 +579,9 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
614
579
  }
615
580
  } else {
616
581
  client = {}
617
- for (const rpc of group.requests.values()) {
618
- const dot = rpc._tag.indexOf(".")
619
- const prefix = dot === -1 ? undefined : rpc._tag.slice(0, dot)
620
- if (prefix !== undefined && !(prefix in client)) {
621
- ;(client as any)[prefix] = {} as Mutable<RpcClient.Prefixed<Rpcs, typeof prefix>>
622
- }
623
- const target = prefix !== undefined ? (client as any)[prefix] : client
624
- const tag = prefix !== undefined ? rpc._tag.slice(dot + 1) : rpc._tag
625
- target[tag] = onRequest(rpc as any)
626
- }
582
+ group.requests.forEach((rpc) => {
583
+ client[rpc._tag] = onRequest(rpc as any)
584
+ })
627
585
  }
628
586
 
629
587
  return { client, write } as const
@@ -1070,7 +1028,7 @@ const defaultRetryPolicy = Schedule.exponential(500, 1.5).pipe(
1070
1028
 
1071
1029
  const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>) {
1072
1030
  let recievedPong = true
1073
- const latch = Effect.makeLatchUnsafe()
1031
+ const latch = Latch.makeUnsafe()
1074
1032
  const reset = () => {
1075
1033
  recievedPong = true
1076
1034
  latch.closeUnsafe()
@@ -1118,7 +1076,7 @@ export const makeProtocolWorker = (
1118
1076
  readonly maxSize: number
1119
1077
  readonly concurrency?: number | undefined
1120
1078
  readonly targetUtilization?: number | undefined
1121
- readonly timeToLive: Duration.DurationInput
1079
+ readonly timeToLive: Duration.Input
1122
1080
  }
1123
1081
  ): Effect.Effect<
1124
1082
  Protocol["Service"],
@@ -1133,7 +1091,7 @@ export const makeProtocolWorker = (
1133
1091
 
1134
1092
  const entries = new Map<string, {
1135
1093
  readonly worker: Worker.Worker<FromServerEncoded, FromClientEncoded | RpcWorker.InitialMessage.Encoded>
1136
- readonly latch: Effect.Latch
1094
+ readonly latch: Latch.Latch
1137
1095
  }>()
1138
1096
 
1139
1097
  const acquire = Effect.gen(function*() {
@@ -1219,7 +1177,7 @@ export const makeProtocolWorker = (
1219
1177
  case "Request": {
1220
1178
  return Pool.get(pool).pipe(
1221
1179
  Effect.flatMap((worker) => {
1222
- const latch = Effect.makeLatchUnsafe(false)
1180
+ const latch = Latch.makeUnsafe(false)
1223
1181
  entries.set(request.id, { worker, latch })
1224
1182
  return Effect.flatMap(worker.send(request, transferables), () => latch.await)
1225
1183
  }),
@@ -1266,7 +1224,7 @@ export const layerProtocolWorker: (
1266
1224
  readonly maxSize: number
1267
1225
  readonly concurrency?: number | undefined
1268
1226
  readonly targetUtilization?: number | undefined
1269
- readonly timeToLive: Duration.DurationInput
1227
+ readonly timeToLive: Duration.Input
1270
1228
  }
1271
1229
  ) => Layer.Layer<
1272
1230
  Protocol,
@@ -8,6 +8,7 @@ import * as Effect from "../../Effect.ts"
8
8
  import * as Exit from "../../Exit.ts"
9
9
  import * as Fiber from "../../Fiber.ts"
10
10
  import { constant, constTrue, constVoid, identity } from "../../Function.ts"
11
+ import * as Latch from "../../Latch.ts"
11
12
  import * as Layer from "../../Layer.ts"
12
13
  import type * as Option from "../../Option.ts"
13
14
  import * as Predicate from "../../Predicate.ts"
@@ -17,6 +18,7 @@ import * as Result from "../../Result.ts"
17
18
  import * as Schedule from "../../Schedule.ts"
18
19
  import * as Schema from "../../Schema.ts"
19
20
  import * as Scope from "../../Scope.ts"
21
+ import * as Semaphore from "../../Semaphore.ts"
20
22
  import * as ServiceMap from "../../ServiceMap.ts"
21
23
  import { Stdio } from "../../Stdio.ts"
22
24
  import * as Stream from "../../Stream.ts"
@@ -101,18 +103,18 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
101
103
  const trackFiber = Fiber.runIn(Scope.forkUnsafe(scope, "parallel"))
102
104
  const concurrencySemaphore = concurrency === "unbounded"
103
105
  ? undefined
104
- : yield* Effect.makeSemaphore(concurrency)
106
+ : yield* Semaphore.make(concurrency)
105
107
 
106
108
  type Client = {
107
109
  readonly id: number
108
- readonly latches: Map<RequestId, Effect.Latch>
110
+ readonly latches: Map<RequestId, Latch.Latch>
109
111
  readonly fibers: Map<RequestId, Fiber.Fiber<unknown, any>>
110
112
  ended: boolean
111
113
  }
112
114
 
113
115
  const clients = new Map<number, Client>()
114
116
  let isShutdown = false
115
- const shutdownLatch = Effect.makeLatchUnsafe(false)
117
+ const shutdownLatch = Latch.makeUnsafe(false)
116
118
  yield* Scope.addFinalizer(
117
119
  scope,
118
120
  Effect.withFiber((parent) => {
@@ -342,7 +344,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
342
344
  ) => {
343
345
  let latch = client.latches.get(request.id)
344
346
  if (supportsAck && !latch) {
345
- latch = Effect.makeLatchUnsafe(false)
347
+ latch = Latch.makeUnsafe(false)
346
348
  client.latches.set(request.id, latch)
347
349
  }
348
350
  if (Effect.isEffect(stream)) {
@@ -2,6 +2,7 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  import * as Effect from "../../Effect.ts"
5
+ import * as Semaphore from "../../Semaphore.ts"
5
6
  import type * as ServiceMap from "../../ServiceMap.ts"
6
7
 
7
8
  /**
@@ -14,7 +15,7 @@ export const withRun = <
14
15
  >() =>
15
16
  <EX, RX>(f: (write: Parameters<A["run"]>[0]) => Effect.Effect<Omit<A, "run">, EX, RX>): Effect.Effect<A, EX, RX> =>
16
17
  Effect.suspend(() => {
17
- const semaphore = Effect.makeSemaphoreUnsafe(1)
18
+ const semaphore = Semaphore.makeUnsafe(1)
18
19
  let buffer: Array<[Array<any>, ServiceMap.ServiceMap<never>]> = []
19
20
  let write = (...args: Array<any>): Effect.Effect<void> =>
20
21
  Effect.servicesWith((context) => {
@@ -3,11 +3,14 @@
3
3
  */
4
4
  import type { Brand } from "../../Brand.ts"
5
5
  import * as Effect from "../../Effect.ts"
6
- import { constant, dual } from "../../Function.ts"
6
+ import { dual } from "../../Function.ts"
7
+ import * as Option from "../../Option.ts"
7
8
  import { type Pipeable, pipeArguments } from "../../Pipeable.ts"
8
9
  import * as Predicate from "../../Predicate.ts"
9
10
  import * as Schema from "../../Schema.ts"
10
11
  import type * as AST from "../../SchemaAST.ts"
12
+ import * as Getter from "../../SchemaGetter.ts"
13
+ import * as Transformation from "../../SchemaTransformation.ts"
11
14
  import * as Struct_ from "../../Struct.ts"
12
15
 
13
16
  /**
@@ -465,8 +468,24 @@ export const Override = <A>(value: A): A & Brand<"Override"> => value as any
465
468
  * @since 4.0.0
466
469
  * @category overrideable
467
470
  */
468
- export interface Overrideable<S extends Schema.Top & Schema.WithoutConstructorDefault>
469
- extends Schema.brand<Schema.withConstructorDefault<S>, "Override">
471
+ export interface Overrideable<S extends Schema.Top & Schema.WithoutConstructorDefault> extends
472
+ Schema.Bottom<
473
+ (S["Type"] & Brand<"Override">) | undefined,
474
+ S["Encoded"],
475
+ S["DecodingServices"],
476
+ S["EncodingServices"],
477
+ S["ast"],
478
+ Overrideable<S>,
479
+ S["~type.make.in"],
480
+ (S["Type"] & Brand<"Override">) | undefined,
481
+ S["~type.parameters"],
482
+ (S["Type"] & Brand<"Override">) | undefined,
483
+ S["~type.mutability"],
484
+ "optional",
485
+ "with-default",
486
+ S["~encoded.mutability"],
487
+ S["~encoded.optionality"]
488
+ >
470
489
  {}
471
490
 
472
491
  /**
@@ -478,11 +497,21 @@ export const Overrideable = <S extends Schema.Top & Schema.WithoutConstructorDef
478
497
  options: {
479
498
  readonly defaultValue: Effect.Effect<S["~type.make.in"]>
480
499
  }
481
- ) =>
500
+ ): Overrideable<S> =>
482
501
  schema.pipe(
483
- Schema.withConstructorDefault(constant(Effect.asSome(options.defaultValue))),
484
- Schema.brand("Override")
485
- )
502
+ Schema.decodeTo(
503
+ Schema.optional(Schema.brand("Override")(Schema.toType(schema))),
504
+ Transformation.make({
505
+ decode: Getter.passthrough(),
506
+ encode: new Getter.Getter((o) => {
507
+ if (Option.isSome(o) && o.value !== undefined) {
508
+ return Effect.succeed(o)
509
+ }
510
+ return Effect.asSome(options.defaultValue)
511
+ })
512
+ })
513
+ )
514
+ ) as any
486
515
 
487
516
  const StructProto = {
488
517
  pipe() {
@@ -5,11 +5,12 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts"
5
5
  import type * as Cause from "../../Cause.ts"
6
6
  import * as Channel from "../../Channel.ts"
7
7
  import * as Deferred from "../../Deferred.ts"
8
- import type { DurationInput } from "../../Duration.ts"
8
+ import type * as Duration from "../../Duration.ts"
9
9
  import * as Effect from "../../Effect.ts"
10
10
  import * as Exit from "../../Exit.ts"
11
11
  import * as FiberSet from "../../FiberSet.ts"
12
12
  import { constVoid, dual, flow } from "../../Function.ts"
13
+ import * as Latch from "../../Latch.ts"
13
14
  import * as Layer from "../../Layer.ts"
14
15
  import * as Predicate from "../../Predicate.ts"
15
16
  import * as Pull from "../../Pull.ts"
@@ -422,7 +423,7 @@ export const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConstructor>
422
423
  */
423
424
  export const makeWebSocket = (url: string | Effect.Effect<string>, options?: {
424
425
  readonly closeCodeIsError?: ((code: number) => boolean) | undefined
425
- readonly openTimeout?: DurationInput | undefined
426
+ readonly openTimeout?: Duration.Input | undefined
426
427
  readonly protocols?: string | Array<string> | undefined
427
428
  }): Effect.Effect<Socket, never, WebSocketConstructor> =>
428
429
  fromWebSocket(
@@ -443,12 +444,12 @@ export const fromWebSocket = <RO>(
443
444
  acquire: Effect.Effect<globalThis.WebSocket, SocketError, RO>,
444
445
  options?: {
445
446
  readonly closeCodeIsError?: ((code: number) => boolean) | undefined
446
- readonly openTimeout?: DurationInput | undefined
447
+ readonly openTimeout?: Duration.Input | undefined
447
448
  } | undefined
448
449
  ): Effect.Effect<Socket, never, Exclude<RO, Scope.Scope>> =>
449
450
  Effect.withFiber((fiber) => {
450
451
  let currentWS: globalThis.WebSocket | undefined
451
- const latch = Effect.makeLatchUnsafe(false)
452
+ const latch = Latch.makeUnsafe(false)
452
453
  const acquireContext = fiber.services as ServiceMap.ServiceMap<RO>
453
454
  const closeCodeIsError = options?.closeCodeIsError ?? defaultCloseCodeIsError
454
455
 
@@ -618,7 +619,7 @@ export const layerWebSocket: (
618
619
  url: string | Effect.Effect<string>,
619
620
  options?: {
620
621
  readonly closeCodeIsError?: ((code: number) => boolean) | undefined
621
- readonly openTimeout?: DurationInput | undefined
622
+ readonly openTimeout?: Duration.Input | undefined
622
623
  readonly protocols?: string | Array<string> | undefined
623
624
  } | undefined
624
625
  ) => Layer.Layer<Socket, never, WebSocketConstructor> = flow(makeWebSocket, Layer.effect(Socket))
@@ -648,7 +649,7 @@ export const fromTransformStream = <R>(acquire: Effect.Effect<InputTransformStre
648
649
  readonly closeCodeIsError?: (code: number) => boolean
649
650
  }): Effect.Effect<Socket, never, Exclude<R, Scope.Scope>> =>
650
651
  Effect.withFiber((fiber) => {
651
- const latch = Effect.makeLatchUnsafe(false)
652
+ const latch = Latch.makeUnsafe(false)
652
653
  let currentStream: {
653
654
  readonly stream: InputTransformStream
654
655
  readonly fiberSet: FiberSet.FiberSet<any, any>
@@ -3,7 +3,7 @@
3
3
  * @category models
4
4
  */
5
5
  import type * as Cause from "../../Cause.ts"
6
- import type { DurationInput } from "../../Duration.ts"
6
+ import type { Input } from "../../Duration.ts"
7
7
  import * as Effect from "../../Effect.ts"
8
8
  import { identity } from "../../Function.ts"
9
9
  import * as RequestResolver from "../../RequestResolver.ts"
@@ -210,7 +210,7 @@ export const makeDataLoaders = <
210
210
  readonly tableName: string
211
211
  readonly spanPrefix: string
212
212
  readonly idColumn: Id
213
- readonly window: DurationInput
213
+ readonly window: Input
214
214
  readonly maxBatchSize?: number | undefined
215
215
  }
216
216
  ): Effect.Effect<