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
@@ -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) => {
@@ -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"
@@ -69,7 +69,7 @@ export const makeRepository = <
69
69
  const idSchema = Model.fields[options.idColumn] as Schema.Top
70
70
  const idColumn = options.idColumn as string
71
71
 
72
- const insertSchema = SqlSchema.single({
72
+ const insertSchema = SqlSchema.findOne({
73
73
  Request: Model.insert,
74
74
  Result: Model,
75
75
  execute: (request) =>
@@ -107,7 +107,7 @@ select * from ${sql(options.tableName)} where ${sql(idColumn)} = LAST_INSERT_ID(
107
107
  })
108
108
  ) as any
109
109
 
110
- const updateSchema = SqlSchema.single({
110
+ const updateSchema = SqlSchema.findOne({
111
111
  Request: Model.update,
112
112
  Result: Model,
113
113
  execute: (request: any) =>
@@ -159,7 +159,7 @@ select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${request[idCol
159
159
  })
160
160
  ) as any
161
161
 
162
- const findByIdSchema = SqlSchema.single({
162
+ const findByIdSchema = SqlSchema.findOne({
163
163
  Request: idSchema,
164
164
  Result: Model,
165
165
  execute: (id: any) => sql`select * from ${sql(options.tableName)} where ${sql(idColumn)} = ${id}`
@@ -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<
@@ -13,7 +13,7 @@ import * as Schema from "../../Schema.ts"
13
13
  * @since 4.0.0
14
14
  * @category constructor
15
15
  */
16
- export const findMany = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
16
+ export const findAll = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
17
17
  options: {
18
18
  readonly Request: Req
19
19
  readonly Result: Res
@@ -21,7 +21,30 @@ export const findMany = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
21
21
  }
22
22
  ) => {
23
23
  const encodeRequest = Schema.encodeEffect(options.Request)
24
- const decode = Schema.decodeUnknownEffect(Schema.Array(options.Result))
24
+ const decode = Schema.decodeUnknownEffect(Schema.mutable(Schema.Array(options.Result)))
25
+ return (
26
+ request: Req["Encoded"]
27
+ ): Effect.Effect<
28
+ Array<Res["Type"]>,
29
+ E | Schema.SchemaError | Cause.NoSuchElementError,
30
+ Req["EncodingServices"] | Res["DecodingServices"] | R
31
+ > => Effect.flatMap(Effect.flatMap(encodeRequest(request), options.execute), decode)
32
+ }
33
+
34
+ /**
35
+ * Run a sql query with a request schema and a result schema.
36
+ *
37
+ * @since 4.0.0
38
+ * @category constructor
39
+ */
40
+ export const findNonEmpty = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
41
+ options: {
42
+ readonly Request: Req
43
+ readonly Result: Res
44
+ readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>
45
+ }
46
+ ) => {
47
+ const find = findAll(options)
25
48
  return (
26
49
  request: Req["Encoded"]
27
50
  ): Effect.Effect<
@@ -29,17 +52,10 @@ export const findMany = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
29
52
  E | Schema.SchemaError | Cause.NoSuchElementError,
30
53
  Req["EncodingServices"] | Res["DecodingServices"] | R
31
54
  > =>
32
- Effect.flatMap(
33
- Effect.flatMap(encodeRequest(request), options.execute),
34
- (results): Effect.Effect<
35
- Arr.NonEmptyArray<Res["Type"]>,
36
- Schema.SchemaError | Cause.NoSuchElementError,
37
- Req["EncodingServices"] | Res["DecodingServices"]
38
- > =>
39
- Arr.isReadonlyArrayNonEmpty(results)
40
- ? decode(results) as Effect.Effect<Arr.NonEmptyArray<Res["Type"]>, Schema.SchemaError>
41
- : Effect.fail(new Cause.NoSuchElementError())
42
- )
55
+ Effect.flatMap(find(request), (results) =>
56
+ Arr.isArrayNonEmpty(results)
57
+ ? Effect.succeed(results)
58
+ : Effect.fail(new Cause.NoSuchElementError()))
43
59
  }
44
60
 
45
61
  const void_ = <Req extends Schema.Top, E, R>(
@@ -65,7 +81,7 @@ export {
65
81
  }
66
82
 
67
83
  /**
68
- * Run a sql query with a request schema and a result schema and return the first result, if any.
84
+ * Run a sql query with a request schema and a result schema and return the first result.
69
85
  *
70
86
  * @since 4.0.0
71
87
  * @category constructor
@@ -82,17 +98,17 @@ export const findOne = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
82
98
  return (
83
99
  request: Req["Type"]
84
100
  ): Effect.Effect<
85
- Option.Option<Res["Type"]>,
86
- E | Schema.SchemaError,
101
+ Res["Type"],
102
+ E | Schema.SchemaError | Cause.NoSuchElementError,
87
103
  R | Req["EncodingServices"] | Res["DecodingServices"]
88
104
  > =>
89
105
  Effect.flatMap(
90
106
  Effect.flatMap(encodeRequest(request), options.execute),
91
107
  (arr): Effect.Effect<
92
- Option.Option<Res["Type"]>,
93
- Schema.SchemaError,
108
+ Res["Type"],
109
+ Schema.SchemaError | Cause.NoSuchElementError,
94
110
  Req["EncodingServices"] | Res["DecodingServices"]
95
- > => Arr.isReadonlyArrayNonEmpty(arr) ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
111
+ > => Arr.isReadonlyArrayNonEmpty(arr) ? decode(arr[0]) : Effect.fail(new Cause.NoSuchElementError())
96
112
  )
97
113
  }
98
114
 
@@ -102,7 +118,7 @@ export const findOne = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
102
118
  * @since 4.0.0
103
119
  * @category constructor
104
120
  */
105
- export const single = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
121
+ export const findOneOption = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
106
122
  options: {
107
123
  readonly Request: Req
108
124
  readonly Result: Res
@@ -114,16 +130,16 @@ export const single = <Req extends Schema.Top, Res extends Schema.Top, E, R>(
114
130
  return (
115
131
  request: Req["Type"]
116
132
  ): Effect.Effect<
117
- Res["Type"],
118
- E | Schema.SchemaError | Cause.NoSuchElementError,
133
+ Option.Option<Res["Type"]>,
134
+ E | Schema.SchemaError,
119
135
  R | Req["EncodingServices"] | Res["DecodingServices"]
120
136
  > =>
121
137
  Effect.flatMap(
122
138
  Effect.flatMap(encodeRequest(request), options.execute),
123
139
  (arr): Effect.Effect<
124
- Res["Type"],
125
- Schema.SchemaError | Cause.NoSuchElementError,
140
+ Option.Option<Res["Type"]>,
141
+ Schema.SchemaError,
126
142
  Req["EncodingServices"] | Res["DecodingServices"]
127
- > => Arr.isReadonlyArrayNonEmpty(arr) ? decode(arr[0]) : Effect.fail(new Cause.NoSuchElementError())
143
+ > => Arr.isReadonlyArrayNonEmpty(arr) ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
128
144
  )
129
145
  }
@@ -1124,7 +1124,6 @@ const makeUnsafe = <A = Row>(
1124
1124
  }
1125
1125
 
1126
1126
  // TODO: figure out why these diagnostics are emitted
1127
- // @effect-diagnostics-next-line missingEffectContext:off missingEffectError:off
1128
1127
  const StatementProto: Omit<
1129
1128
  StatementImpl<any>,
1130
1129
  "segments" | "acquirer" | "compiler" | "spanAttributes" | "transformRows"
@@ -4,6 +4,7 @@
4
4
  import type * as Deferred from "../../Deferred.ts"
5
5
  import * as Effect from "../../Effect.ts"
6
6
  import * as FiberSet from "../../FiberSet.ts"
7
+ import * as Latch from "../../Latch.ts"
7
8
  import * as Layer from "../../Layer.ts"
8
9
  import * as Scope from "../../Scope.ts"
9
10
  import * as ServiceMap from "../../ServiceMap.ts"
@@ -149,7 +150,7 @@ export const makePlatform = <W>() =>
149
150
  WorkerError | E
150
151
  >().pipe(Scope.provide(scope))
151
152
  const run = yield* FiberSet.runtime(fiberSet)<R>()
152
- const ready = Effect.makeLatchUnsafe()
153
+ const ready = Latch.makeUnsafe()
153
154
  yield* options.listen({
154
155
  port,
155
156
  scope,
@@ -28,11 +28,11 @@ export interface DurableClock {
28
28
  */
29
29
  export const make = (options: {
30
30
  readonly name: string
31
- readonly duration: Duration.DurationInput
31
+ readonly duration: Duration.Input
32
32
  }): DurableClock => ({
33
33
  [TypeId]: TypeId,
34
34
  name: options.name,
35
- duration: Duration.fromDurationInputUnsafe(options.duration),
35
+ duration: Duration.fromInputUnsafe(options.duration),
36
36
  deferred: DurableDeferred.make(`DurableClock/${options.name}`)
37
37
  })
38
38
 
@@ -54,14 +54,14 @@ const InstanceTag = ServiceMap.Service<
54
54
  export const sleep: (
55
55
  options: {
56
56
  readonly name: string
57
- readonly duration: Duration.DurationInput
57
+ readonly duration: Duration.Input
58
58
  /**
59
59
  * If the duration is less than or equal to this threshold, the clock will
60
60
  * be executed in memory.
61
61
  *
62
62
  * Defaults to 60 seconds.
63
63
  */
64
- readonly inMemoryThreshold?: Duration.DurationInput | undefined
64
+ readonly inMemoryThreshold?: Duration.Input | undefined
65
65
  }
66
66
  ) => Effect.Effect<
67
67
  void,
@@ -69,16 +69,16 @@ export const sleep: (
69
69
  WorkflowEngine | WorkflowInstance
70
70
  > = Effect.fnUntraced(function*(options: {
71
71
  readonly name: string
72
- readonly duration: Duration.DurationInput
73
- readonly inMemoryThreshold?: Duration.DurationInput | undefined
72
+ readonly duration: Duration.Input
73
+ readonly inMemoryThreshold?: Duration.Input | undefined
74
74
  }) {
75
- const duration = Duration.fromDurationInputUnsafe(options.duration)
75
+ const duration = Duration.fromInputUnsafe(options.duration)
76
76
  if (Duration.isZero(duration)) {
77
77
  return
78
78
  }
79
79
 
80
80
  const inMemoryThreshold = options.inMemoryThreshold
81
- ? Duration.fromDurationInputUnsafe(options.inMemoryThreshold)
81
+ ? Duration.fromInputUnsafe(options.inMemoryThreshold)
82
82
  : defaultInMemoryThreshold
83
83
 
84
84
  if (Duration.isLessThanOrEqualTo(duration, inMemoryThreshold)) {
@@ -5,7 +5,7 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts"
5
5
  import type * as Brand from "../../Brand.ts"
6
6
  import type * as Cause from "../../Cause.ts"
7
7
  import * as Effect from "../../Effect.ts"
8
- import * as Base64Url from "../../encoding/Base64Url.ts"
8
+ import * as Encoding from "../../Encoding.ts"
9
9
  import * as Exit from "../../Exit.ts"
10
10
  import { dual } from "../../Function.ts"
11
11
  import * as Predicate from "../../Predicate.ts"
@@ -285,7 +285,7 @@ export class TokenParsed extends Schema.Class<TokenParsed>(
285
285
  * @since 4.0.0
286
286
  */
287
287
  get asToken(): Token {
288
- return Base64Url.encode(
288
+ return Encoding.encodeBase64Url(
289
289
  JSON.stringify([this.workflowName, this.executionId, this.deferredName])
290
290
  ) as Token
291
291
  }
@@ -4,6 +4,7 @@
4
4
  import type * as Cause from "../../Cause.ts"
5
5
  import * as Effect from "../../Effect.ts"
6
6
  import * as Exit from "../../Exit.ts"
7
+ import * as Latch from "../../Latch.ts"
7
8
  import * as Option from "../../Option.ts"
8
9
  import * as Schedule from "../../Schedule.ts"
9
10
  import * as Schema from "../../Schema.ts"
@@ -224,7 +225,7 @@ export class WorkflowInstance extends ServiceMap.Service<
224
225
 
225
226
  readonly activityState: {
226
227
  count: number
227
- readonly latch: Effect.Latch
228
+ readonly latch: Latch.Latch
228
229
  }
229
230
  }
230
231
  >()("effect/workflow/WorkflowEngine/WorkflowInstance") {
@@ -241,7 +242,7 @@ export class WorkflowInstance extends ServiceMap.Service<
241
242
  cause: undefined,
242
243
  activityState: {
243
244
  count: 0,
244
- latch: Effect.makeLatchUnsafe()
245
+ latch: Latch.makeUnsafe()
245
246
  }
246
247
  })
247
248
  }
@@ -1,52 +0,0 @@
1
- /**
2
- * @since 3.19.4
3
- * @experimental
4
- */
5
- import * as Effect from "./Effect.ts";
6
- /**
7
- * @since 3.19.4
8
- * @category models
9
- * @experimental
10
- */
11
- export declare const TypeId: TypeId;
12
- /**
13
- * @since 3.19.4
14
- * @category models
15
- * @experimental
16
- */
17
- export type TypeId = "~effect/PartitionedSemaphore";
18
- /**
19
- * A `PartitionedSemaphore` controls access to a shared permit pool while
20
- * tracking waiters by partition key.
21
- *
22
- * Waiting permits are distributed across partitions in round-robin order.
23
- *
24
- * @since 3.19.4
25
- * @category models
26
- * @experimental
27
- */
28
- export interface PartitionedSemaphore<in K> {
29
- readonly [TypeId]: TypeId;
30
- readonly withPermits: (key: K, permits: number) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
31
- }
32
- /**
33
- * Creates a `PartitionedSemaphore` unsafely.
34
- *
35
- * @since 3.19.4
36
- * @category constructors
37
- * @experimental
38
- */
39
- export declare const makeUnsafe: <K = unknown>(options: {
40
- readonly permits: number;
41
- }) => PartitionedSemaphore<K>;
42
- /**
43
- * Creates a `PartitionedSemaphore`.
44
- *
45
- * @since 3.19.4
46
- * @category constructors
47
- * @experimental
48
- */
49
- export declare const make: <K = unknown>(options: {
50
- readonly permits: number;
51
- }) => Effect.Effect<PartitionedSemaphore<K>>;
52
- //# sourceMappingURL=PartitionedSemaphore.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartitionedSemaphore.d.ts","sourceRoot":"","sources":["../src/PartitionedSemaphore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAIrC;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,MAAuC,CAAA;AAE5D;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,8BAA8B,CAAA;AAEnD;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,CACpB,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,MAAM,KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CACzE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,OAAO,EAAE,SAAS;IAC/C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,KAAG,oBAAoB,CAAC,CAAC,CAyHzB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,GAAG,OAAO,EAAE,SAAS;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,KAAG,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAA8C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartitionedSemaphore.js","names":["Effect","MutableHashMap","Option","TypeId","makeUnsafe","options","maxPermits","Math","max","permits","Number","isFinite","withPermits","effect","totalPermits","waitingPermits","partitions","empty","take","key","callback","resume","never","void","needed","taken","waiters","getOrElse","get","set","Set","entry","cleanup","delete","size","remove","add","sync","releaseUnsafe","iterator","Symbol","state","next","done","waiter","value","values","undefined","takePermits","uninterruptibleMask","restore","flatMap","ensuring","make"],"sources":["../src/PartitionedSemaphore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}