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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/Cache.d.ts +2 -2
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +1 -1
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +1 -1
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Channel.d.ts.map +1 -1
  8. package/dist/Channel.js +6 -4
  9. package/dist/Channel.js.map +1 -1
  10. package/dist/Config.d.ts +3 -3
  11. package/dist/Config.js +3 -3
  12. package/dist/Config.js.map +1 -1
  13. package/dist/Data.d.ts +3 -2
  14. package/dist/Data.d.ts.map +1 -1
  15. package/dist/Data.js +9 -8
  16. package/dist/Data.js.map +1 -1
  17. package/dist/DateTime.d.ts +23 -161
  18. package/dist/DateTime.d.ts.map +1 -1
  19. package/dist/DateTime.js +6 -51
  20. package/dist/DateTime.js.map +1 -1
  21. package/dist/Duration.d.ts +12 -12
  22. package/dist/Duration.d.ts.map +1 -1
  23. package/dist/Duration.js +12 -12
  24. package/dist/Duration.js.map +1 -1
  25. package/dist/Effect.d.ts +13 -239
  26. package/dist/Effect.d.ts.map +1 -1
  27. package/dist/Effect.js +1 -119
  28. package/dist/Effect.js.map +1 -1
  29. package/dist/Encoding.d.ts +194 -0
  30. package/dist/Encoding.d.ts.map +1 -0
  31. package/dist/Encoding.js +352 -0
  32. package/dist/Encoding.js.map +1 -0
  33. package/dist/Equal.js.map +1 -1
  34. package/dist/FileSystem.js +2 -2
  35. package/dist/FileSystem.js.map +1 -1
  36. package/dist/Formatter.d.ts +131 -47
  37. package/dist/Formatter.d.ts.map +1 -1
  38. package/dist/Formatter.js +229 -51
  39. package/dist/Formatter.js.map +1 -1
  40. package/dist/Graph.d.ts.map +1 -1
  41. package/dist/Graph.js +2 -2
  42. package/dist/Graph.js.map +1 -1
  43. package/dist/JsonSchema.d.ts +299 -10
  44. package/dist/JsonSchema.d.ts.map +1 -1
  45. package/dist/JsonSchema.js +323 -4
  46. package/dist/JsonSchema.js.map +1 -1
  47. package/dist/Latch.d.ts +109 -0
  48. package/dist/Latch.d.ts.map +1 -0
  49. package/dist/Latch.js +72 -0
  50. package/dist/Latch.js.map +1 -0
  51. package/dist/LayerMap.d.ts +4 -4
  52. package/dist/LayerMap.d.ts.map +1 -1
  53. package/dist/LogLevel.d.ts +27 -0
  54. package/dist/LogLevel.d.ts.map +1 -1
  55. package/dist/LogLevel.js +28 -100
  56. package/dist/LogLevel.js.map +1 -1
  57. package/dist/Logger.d.ts +4 -4
  58. package/dist/Logger.d.ts.map +1 -1
  59. package/dist/Metric.d.ts +2 -2
  60. package/dist/Metric.d.ts.map +1 -1
  61. package/dist/Metric.js +1 -1
  62. package/dist/Metric.js.map +1 -1
  63. package/dist/Pipeable.d.ts +17 -0
  64. package/dist/Pipeable.d.ts.map +1 -1
  65. package/dist/Pipeable.js +19 -1
  66. package/dist/Pipeable.js.map +1 -1
  67. package/dist/Pool.d.ts +6 -4
  68. package/dist/Pool.d.ts.map +1 -1
  69. package/dist/Pool.js +7 -5
  70. package/dist/Pool.js.map +1 -1
  71. package/dist/PubSub.d.ts +3 -2
  72. package/dist/PubSub.d.ts.map +1 -1
  73. package/dist/PubSub.js +3 -2
  74. package/dist/PubSub.js.map +1 -1
  75. package/dist/Random.d.ts +1 -1
  76. package/dist/Random.d.ts.map +1 -1
  77. package/dist/Random.js +3 -12
  78. package/dist/Random.js.map +1 -1
  79. package/dist/RcMap.d.ts +2 -2
  80. package/dist/RcMap.d.ts.map +1 -1
  81. package/dist/RcMap.js +1 -1
  82. package/dist/RcMap.js.map +1 -1
  83. package/dist/RcRef.d.ts +1 -1
  84. package/dist/RcRef.d.ts.map +1 -1
  85. package/dist/Request.d.ts +1 -1
  86. package/dist/Request.d.ts.map +1 -1
  87. package/dist/Request.js +2 -1
  88. package/dist/Request.js.map +1 -1
  89. package/dist/RequestResolver.d.ts +6 -26
  90. package/dist/RequestResolver.d.ts.map +1 -1
  91. package/dist/RequestResolver.js +0 -20
  92. package/dist/RequestResolver.js.map +1 -1
  93. package/dist/Schedule.d.ts +22 -13
  94. package/dist/Schedule.d.ts.map +1 -1
  95. package/dist/Schedule.js +53 -25
  96. package/dist/Schedule.js.map +1 -1
  97. package/dist/Schema.d.ts +196 -46
  98. package/dist/Schema.d.ts.map +1 -1
  99. package/dist/Schema.js +385 -71
  100. package/dist/Schema.js.map +1 -1
  101. package/dist/SchemaGetter.d.ts +2 -2
  102. package/dist/SchemaGetter.d.ts.map +1 -1
  103. package/dist/SchemaGetter.js +12 -14
  104. package/dist/SchemaGetter.js.map +1 -1
  105. package/dist/SchemaRepresentation.d.ts +44 -43
  106. package/dist/SchemaRepresentation.d.ts.map +1 -1
  107. package/dist/SchemaRepresentation.js +5 -2
  108. package/dist/SchemaRepresentation.js.map +1 -1
  109. package/dist/SchemaTransformation.d.ts +37 -0
  110. package/dist/SchemaTransformation.d.ts.map +1 -1
  111. package/dist/SchemaTransformation.js +80 -0
  112. package/dist/SchemaTransformation.js.map +1 -1
  113. package/dist/ScopedCache.d.ts +2 -2
  114. package/dist/ScopedCache.d.ts.map +1 -1
  115. package/dist/ScopedCache.js +1 -1
  116. package/dist/ScopedCache.js.map +1 -1
  117. package/dist/Semaphore.d.ts +211 -0
  118. package/dist/Semaphore.d.ts.map +1 -0
  119. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  120. package/dist/Semaphore.js.map +1 -0
  121. package/dist/Stream.d.ts +19 -19
  122. package/dist/Stream.d.ts.map +1 -1
  123. package/dist/Stream.js +12 -11
  124. package/dist/Stream.js.map +1 -1
  125. package/dist/Struct.d.ts +16 -0
  126. package/dist/Struct.d.ts.map +1 -1
  127. package/dist/Struct.js +22 -0
  128. package/dist/Struct.js.map +1 -1
  129. package/dist/SubscriptionRef.d.ts +2 -1
  130. package/dist/SubscriptionRef.d.ts.map +1 -1
  131. package/dist/SubscriptionRef.js +2 -1
  132. package/dist/SubscriptionRef.js.map +1 -1
  133. package/dist/SynchronizedRef.d.ts +2 -1
  134. package/dist/SynchronizedRef.d.ts.map +1 -1
  135. package/dist/SynchronizedRef.js +2 -1
  136. package/dist/SynchronizedRef.js.map +1 -1
  137. package/dist/Types.d.ts +8 -0
  138. package/dist/Types.d.ts.map +1 -1
  139. package/dist/index.d.ts +148 -5
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +148 -5
  142. package/dist/index.js.map +1 -1
  143. package/dist/internal/core.js +11 -3
  144. package/dist/internal/core.js.map +1 -1
  145. package/dist/internal/dateTime.js +3 -11
  146. package/dist/internal/dateTime.js.map +1 -1
  147. package/dist/internal/effect.js +2 -2
  148. package/dist/internal/effect.js.map +1 -1
  149. package/dist/internal/random.d.ts +2 -0
  150. package/dist/internal/random.d.ts.map +1 -0
  151. package/dist/internal/random.js +13 -0
  152. package/dist/internal/random.js.map +1 -0
  153. package/dist/internal/rcRef.js +3 -2
  154. package/dist/internal/rcRef.js.map +1 -1
  155. package/dist/testing/TestClock.d.ts +7 -6
  156. package/dist/testing/TestClock.d.ts.map +1 -1
  157. package/dist/testing/TestClock.js +6 -4
  158. package/dist/testing/TestClock.js.map +1 -1
  159. package/dist/testing/TestSchema.d.ts +6 -6
  160. package/dist/testing/TestSchema.d.ts.map +1 -1
  161. package/dist/unstable/ai/AiError.d.ts +48 -48
  162. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  163. package/dist/unstable/ai/Chat.d.ts +3 -3
  164. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  165. package/dist/unstable/ai/Chat.js +4 -3
  166. package/dist/unstable/ai/Chat.js.map +1 -1
  167. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  168. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  169. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  170. package/dist/unstable/ai/McpServer.d.ts +1 -1
  171. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  172. package/dist/unstable/ai/McpServer.js.map +1 -1
  173. package/dist/unstable/ai/Prompt.d.ts +20 -20
  174. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  175. package/dist/unstable/ai/Response.d.ts +26 -26
  176. package/dist/unstable/ai/Response.d.ts.map +1 -1
  177. package/dist/unstable/ai/Response.js +1 -1
  178. package/dist/unstable/ai/Response.js.map +1 -1
  179. package/dist/unstable/cli/CliError.d.ts +5 -5
  180. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  181. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  182. package/dist/unstable/cluster/ClusterCron.js +1 -1
  183. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  184. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  185. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  186. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  187. package/dist/unstable/cluster/Entity.d.ts +5 -4
  188. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  189. package/dist/unstable/cluster/Entity.js.map +1 -1
  190. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  191. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  192. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  193. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  194. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  195. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  196. package/dist/unstable/cluster/Message.d.ts +5 -5
  197. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  198. package/dist/unstable/cluster/MessageStorage.js +2 -1
  199. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  200. package/dist/unstable/cluster/Reply.d.ts +3 -3
  201. package/dist/unstable/cluster/Runner.d.ts +1 -1
  202. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  203. package/dist/unstable/cluster/Runners.js +4 -3
  204. package/dist/unstable/cluster/Runners.js.map +1 -1
  205. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  206. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  207. package/dist/unstable/cluster/Sharding.js +8 -6
  208. package/dist/unstable/cluster/Sharding.js.map +1 -1
  209. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  210. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  211. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  212. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  213. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  214. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  215. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  216. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  217. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  218. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  219. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  220. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  221. package/dist/unstable/encoding/Sse.d.ts +3 -3
  222. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  223. package/dist/unstable/encoding/Sse.js.map +1 -1
  224. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  225. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  226. package/dist/unstable/eventlog/EventLog.js +2 -1
  227. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  228. package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
  229. package/dist/unstable/http/Cookies.d.ts +2 -2
  230. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  231. package/dist/unstable/http/Cookies.js +2 -2
  232. package/dist/unstable/http/Cookies.js.map +1 -1
  233. package/dist/unstable/http/HttpClient.d.ts +4 -4
  234. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  235. package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
  236. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  237. package/dist/unstable/http/HttpClientRequest.js +8 -1
  238. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  239. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  240. package/dist/unstable/http/HttpEffect.js +18 -26
  241. package/dist/unstable/http/HttpEffect.js.map +1 -1
  242. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  243. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  244. package/dist/unstable/http/HttpMethod.js +3 -3
  245. package/dist/unstable/http/HttpMethod.js.map +1 -1
  246. package/dist/unstable/http/Multipart.d.ts +2 -2
  247. package/dist/unstable/http/UrlParams.d.ts +1 -1
  248. package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
  249. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  250. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  251. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  252. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  253. package/dist/unstable/observability/Otlp.d.ts +12 -12
  254. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  255. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  256. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  257. package/dist/unstable/observability/OtlpExporter.js +1 -1
  258. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  259. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  260. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  261. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  262. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  263. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  264. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  265. package/dist/unstable/persistence/KeyValueStore.js +4 -4
  266. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  267. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  268. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  269. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  270. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  271. package/dist/unstable/persistence/PersistedCache.js +2 -1
  272. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  273. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  274. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  275. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  276. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  277. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  278. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  279. package/dist/unstable/persistence/Persistence.js +2 -2
  280. package/dist/unstable/persistence/Persistence.js.map +1 -1
  281. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  282. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  283. package/dist/unstable/persistence/RateLimiter.js +1 -1
  284. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  285. package/dist/unstable/process/ChildProcess.d.ts +1 -1
  286. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  287. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  288. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  289. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  290. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  291. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  292. package/dist/unstable/reactivity/Atom.js +3 -3
  293. package/dist/unstable/reactivity/Atom.js.map +1 -1
  294. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  295. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  296. package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
  297. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  298. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  299. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  300. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  301. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  302. package/dist/unstable/reactivity/index.d.ts +2 -2
  303. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  304. package/dist/unstable/reactivity/index.js +2 -2
  305. package/dist/unstable/reactivity/index.js.map +1 -1
  306. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  307. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  308. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  309. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  310. package/dist/unstable/rpc/RpcClient.js +6 -13
  311. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  312. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  313. package/dist/unstable/rpc/RpcServer.js +5 -3
  314. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  315. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  316. package/dist/unstable/rpc/Utils.js +2 -1
  317. package/dist/unstable/rpc/Utils.js.map +1 -1
  318. package/dist/unstable/socket/Socket.d.ts +4 -4
  319. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  320. package/dist/unstable/socket/Socket.js +3 -2
  321. package/dist/unstable/socket/Socket.js.map +1 -1
  322. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  323. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  324. package/dist/unstable/sql/SqlModel.js +3 -3
  325. package/dist/unstable/sql/SqlModel.js.map +1 -1
  326. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  327. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  328. package/dist/unstable/sql/SqlSchema.js +17 -7
  329. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  330. package/dist/unstable/sql/Statement.js +0 -1
  331. package/dist/unstable/sql/Statement.js.map +1 -1
  332. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  333. package/dist/unstable/workers/Worker.js +2 -1
  334. package/dist/unstable/workers/Worker.js.map +1 -1
  335. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  336. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  337. package/dist/unstable/workflow/DurableClock.js +3 -3
  338. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  339. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  340. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  341. package/dist/unstable/workflow/Workflow.d.ts +1 -1
  342. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  343. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  344. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  345. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  346. package/package.json +1 -2
  347. package/src/Cache.ts +3 -3
  348. package/src/Cause.ts +1 -1
  349. package/src/Channel.ts +6 -4
  350. package/src/Config.ts +3 -3
  351. package/src/Data.ts +10 -9
  352. package/src/DateTime.ts +24 -164
  353. package/src/Duration.ts +15 -15
  354. package/src/Effect.ts +15 -261
  355. package/src/Encoding.ts +879 -0
  356. package/src/Equal.ts +2 -2
  357. package/src/FileSystem.ts +4 -4
  358. package/src/Formatter.ts +253 -51
  359. package/src/Graph.ts +8 -5
  360. package/src/JsonSchema.ts +383 -10
  361. package/src/Latch.ts +112 -0
  362. package/src/LayerMap.ts +5 -5
  363. package/src/LogLevel.ts +31 -0
  364. package/src/Logger.ts +5 -5
  365. package/src/Metric.ts +4 -4
  366. package/src/Pipeable.ts +32 -1
  367. package/src/Pool.ts +13 -11
  368. package/src/PubSub.ts +10 -9
  369. package/src/Random.ts +5 -14
  370. package/src/RcMap.ts +5 -5
  371. package/src/RcRef.ts +1 -1
  372. package/src/Request.ts +3 -2
  373. package/src/RequestResolver.ts +9 -29
  374. package/src/Schedule.ts +261 -140
  375. package/src/Schema.ts +571 -109
  376. package/src/SchemaGetter.ts +12 -14
  377. package/src/SchemaRepresentation.ts +5 -2
  378. package/src/SchemaTransformation.ts +104 -0
  379. package/src/ScopedCache.ts +3 -3
  380. package/src/Semaphore.ts +356 -0
  381. package/src/Stream.ts +43 -42
  382. package/src/Struct.ts +26 -0
  383. package/src/SubscriptionRef.ts +3 -2
  384. package/src/SynchronizedRef.ts +3 -2
  385. package/src/Types.ts +9 -0
  386. package/src/index.ts +151 -6
  387. package/src/internal/core.ts +10 -2
  388. package/src/internal/dateTime.ts +9 -30
  389. package/src/internal/effect.ts +24 -23
  390. package/src/internal/random.ts +20 -0
  391. package/src/internal/rcRef.ts +4 -3
  392. package/src/testing/TestClock.ts +13 -11
  393. package/src/testing/TestSchema.ts +8 -8
  394. package/src/unstable/ai/AiError.ts +2 -2
  395. package/src/unstable/ai/Chat.ts +12 -11
  396. package/src/unstable/ai/LanguageModel.ts +3 -3
  397. package/src/unstable/ai/McpServer.ts +2 -2
  398. package/src/unstable/ai/Prompt.ts +37 -37
  399. package/src/unstable/ai/Response.ts +25 -25
  400. package/src/unstable/cluster/ClusterCron.ts +2 -2
  401. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  402. package/src/unstable/cluster/Entity.ts +7 -6
  403. package/src/unstable/cluster/EntityResource.ts +4 -4
  404. package/src/unstable/cluster/Envelope.ts +1 -1
  405. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  406. package/src/unstable/cluster/MessageStorage.ts +3 -5
  407. package/src/unstable/cluster/Runners.ts +6 -5
  408. package/src/unstable/cluster/Sharding.ts +11 -9
  409. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  410. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  411. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  412. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  413. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  414. package/src/unstable/encoding/Sse.ts +2 -4
  415. package/src/unstable/eventlog/EventLog.ts +2 -1
  416. package/src/unstable/http/Cookies.ts +3 -3
  417. package/src/unstable/http/HttpClient.ts +4 -4
  418. package/src/unstable/http/HttpClientRequest.ts +15 -11
  419. package/src/unstable/http/HttpEffect.ts +17 -25
  420. package/src/unstable/http/HttpMethod.ts +16 -4
  421. package/src/unstable/http/Multipart.ts +2 -2
  422. package/src/unstable/http/UrlParams.ts +1 -1
  423. package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
  424. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  425. package/src/unstable/observability/Otlp.ts +12 -12
  426. package/src/unstable/observability/OtlpExporter.ts +3 -3
  427. package/src/unstable/observability/OtlpLogger.ts +4 -4
  428. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  429. package/src/unstable/observability/OtlpTracer.ts +4 -4
  430. package/src/unstable/persistence/KeyValueStore.ts +4 -4
  431. package/src/unstable/persistence/Persistable.ts +2 -2
  432. package/src/unstable/persistence/PersistedCache.ts +20 -9
  433. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  434. package/src/unstable/persistence/Persistence.ts +3 -3
  435. package/src/unstable/persistence/RateLimiter.ts +4 -4
  436. package/src/unstable/process/ChildProcess.ts +1 -1
  437. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  438. package/src/unstable/reactivity/Atom.ts +13 -13
  439. package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
  440. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  441. package/src/unstable/reactivity/index.ts +2 -2
  442. package/src/unstable/rpc/Rpc.ts +3 -3
  443. package/src/unstable/rpc/RpcClient.ts +12 -54
  444. package/src/unstable/rpc/RpcServer.ts +6 -4
  445. package/src/unstable/rpc/Utils.ts +2 -1
  446. package/src/unstable/socket/Socket.ts +7 -6
  447. package/src/unstable/sql/SqlModel.ts +5 -5
  448. package/src/unstable/sql/SqlSchema.ts +41 -25
  449. package/src/unstable/sql/Statement.ts +0 -1
  450. package/src/unstable/workers/Worker.ts +2 -1
  451. package/src/unstable/workflow/DurableClock.ts +8 -8
  452. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  453. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  454. package/dist/PartitionedSemaphore.d.ts +0 -52
  455. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  456. package/dist/PartitionedSemaphore.js.map +0 -1
  457. package/dist/encoding/Base64.d.ts +0 -67
  458. package/dist/encoding/Base64.d.ts.map +0 -1
  459. package/dist/encoding/Base64.js +0 -146
  460. package/dist/encoding/Base64.js.map +0 -1
  461. package/dist/encoding/Base64Url.d.ts +0 -60
  462. package/dist/encoding/Base64Url.d.ts.map +0 -1
  463. package/dist/encoding/Base64Url.js +0 -89
  464. package/dist/encoding/Base64Url.js.map +0 -1
  465. package/dist/encoding/EncodingError.d.ts +0 -31
  466. package/dist/encoding/EncodingError.d.ts.map +0 -1
  467. package/dist/encoding/EncodingError.js +0 -22
  468. package/dist/encoding/EncodingError.js.map +0 -1
  469. package/dist/encoding/Hex.d.ts +0 -61
  470. package/dist/encoding/Hex.d.ts.map +0 -1
  471. package/dist/encoding/Hex.js +0 -115
  472. package/dist/encoding/Hex.js.map +0 -1
  473. package/dist/encoding/index.d.ts +0 -26
  474. package/dist/encoding/index.d.ts.map +0 -1
  475. package/dist/encoding/index.js +0 -27
  476. package/dist/encoding/index.js.map +0 -1
  477. package/src/PartitionedSemaphore.ts +0 -182
  478. package/src/encoding/Base64.ts +0 -366
  479. package/src/encoding/Base64Url.ts +0 -104
  480. package/src/encoding/EncodingError.ts +0 -35
  481. package/src/encoding/Hex.ts +0 -390
  482. package/src/encoding/index.ts +0 -31
package/src/Channel.ts CHANGED
@@ -69,6 +69,7 @@ import { constant, constTrue, constVoid, dual, identity as identity_ } from "./F
69
69
  import { ClockRef, endSpan } from "./internal/effect.ts"
70
70
  import { addSpanStackTrace } from "./internal/tracer.ts"
71
71
  import * as Iterable from "./Iterable.ts"
72
+ import * as Latch from "./Latch.ts"
72
73
  import * as Layer from "./Layer.ts"
73
74
  import type { LogLevel } from "./LogLevel.ts"
74
75
  import * as Option from "./Option.ts"
@@ -83,6 +84,7 @@ import { TracerTimingEnabled } from "./References.ts"
83
84
  import * as Result from "./Result.ts"
84
85
  import * as Schedule from "./Schedule.ts"
85
86
  import * as Scope from "./Scope.ts"
87
+ import * as Semaphore from "./Semaphore.ts"
86
88
  import * as ServiceMap from "./ServiceMap.ts"
87
89
  import * as String from "./String.ts"
88
90
  import * as Take from "./Take.ts"
@@ -2084,7 +2086,7 @@ const mapEffectConcurrent = <
2084
2086
  const trackFiber = Fiber.runIn(forkedScope)
2085
2087
 
2086
2088
  if (options.unordered) {
2087
- const semaphore = Effect.makeSemaphoreUnsafe(concurrencyN)
2089
+ const semaphore = Semaphore.makeUnsafe(concurrencyN)
2088
2090
  const release = constant(semaphore.release(1))
2089
2091
  const handle = Effect.matchCauseEffect({
2090
2092
  onFailure: (cause: Cause.Cause<EX>) => Effect.flatMap(Queue.failCause(queue, cause), release),
@@ -6631,8 +6633,8 @@ export const mergeAll: {
6631
6633
  const concurrencyN = concurrency === "unbounded"
6632
6634
  ? Number.MAX_SAFE_INTEGER
6633
6635
  : Math.max(1, concurrency)
6634
- const semaphore = switch_ ? undefined : Effect.makeSemaphoreUnsafe(concurrencyN)
6635
- const doneLatch = yield* Effect.makeLatch(true)
6636
+ const semaphore = switch_ ? undefined : Semaphore.makeUnsafe(concurrencyN)
6637
+ const doneLatch = yield* Latch.make(true)
6636
6638
  const fibers = new Set<Fiber.Fiber<any, any>>()
6637
6639
 
6638
6640
  const queue = yield* Queue.bounded</**
@@ -9085,7 +9087,7 @@ export const toPull: <OutElem, OutErr, OutDone, Env>(
9085
9087
  function*<OutElem, OutErr, OutDone, Env>(
9086
9088
  self: Channel<OutElem, OutErr, OutDone, unknown, unknown, unknown, Env>
9087
9089
  ) {
9088
- const semaphore = Effect.makeSemaphoreUnsafe(1)
9090
+ const semaphore = Semaphore.makeUnsafe(1)
9089
9091
  const context = yield* Effect.services<Env | Scope.Scope>()
9090
9092
  const scope = ServiceMap.get(context, Scope.Scope)
9091
9093
  const pull = yield* toTransform(self)(Cause.done(), scope)
package/src/Config.ts CHANGED
@@ -938,7 +938,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
938
938
  * - Pass to {@link schema} for custom paths, or use the {@link duration}
939
939
  * convenience constructor.
940
940
  *
941
- * Accepts any string that `Duration.fromDurationInput` can parse (e.g.
941
+ * Accepts any string that `Duration.fromInput` can parse (e.g.
942
942
  * `"10 seconds"`, `"500 millis"`).
943
943
  *
944
944
  * @see {@link duration} – convenience constructor
@@ -948,7 +948,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
948
948
  */
949
949
  export const Duration = Schema.String.pipe(Schema.decodeTo(Schema.Duration, {
950
950
  decode: Getter.transformOrFail((s) => {
951
- const d = Duration_.fromDurationInput(s as any)
951
+ const d = Duration_.fromInput(s as any)
952
952
  return d ? Effect.succeed(d) : Effect.fail(new Issue.InvalidValue(Option.some(s)))
953
953
  }),
954
954
  encode: Getter.forbidden(() => "Encoding Duration is not supported")
@@ -1235,7 +1235,7 @@ export function boolean(name?: string) {
1235
1235
  *
1236
1236
  * Shortcut for `Config.schema(Config.Duration, name)`.
1237
1237
  *
1238
- * Accepts any string that `Duration.fromDurationInput` can parse (e.g.
1238
+ * Accepts any string that `Duration.fromInput` can parse (e.g.
1239
1239
  * `"10 seconds"`, `"500 millis"`, `"2 minutes"`).
1240
1240
  *
1241
1241
  * **Example** (Reading a duration)
package/src/Data.ts CHANGED
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import type * as Cause from "./Cause.ts"
15
15
  import * as core from "./internal/core.ts"
16
+ import * as Pipeable from "./Pipeable.ts"
16
17
  import * as Predicate from "./Predicate.ts"
17
18
  import type * as Types from "./Types.ts"
18
19
  import type { Unify } from "./Unify.ts"
@@ -43,9 +44,12 @@ import type { Unify } from "./Unify.ts"
43
44
  export const Class: new<A extends Record<string, any> = {}>(
44
45
  args: Types.Equals<A, {}> extends true ? void
45
46
  : { readonly [P in keyof A]: A[P] }
46
- ) => Readonly<A> = function(this: any, props: any) {
47
- if (props) {
48
- Object.assign(this, props)
47
+ ) => Readonly<A> & Pipeable.Pipeable = class extends Pipeable.Class {
48
+ constructor(props: any) {
49
+ super()
50
+ if (props) {
51
+ Object.assign(this, props)
52
+ }
49
53
  }
50
54
  } as any
51
55
 
@@ -79,12 +83,9 @@ export const TaggedClass = <Tag extends string>(
79
83
  ): new<A extends Record<string, any> = {}>(
80
84
  args: Types.Equals<A, {}> extends true ? void
81
85
  : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }
82
- ) => Readonly<A> & { readonly _tag: Tag } =>
83
- function(this: any, props: any) {
84
- this._tag = tag
85
- if (props) {
86
- Object.assign(this, props)
87
- }
86
+ ) => Readonly<A> & { readonly _tag: Tag } & Pipeable.Pipeable =>
87
+ class extends Class {
88
+ readonly _tag = tag
88
89
  } as any
89
90
 
90
91
  /**
package/src/DateTime.ts CHANGED
@@ -12,7 +12,6 @@ import { provideService } from "./internal/effect.ts"
12
12
  import * as Layer from "./Layer.ts"
13
13
  import type * as order from "./Order.ts"
14
14
  import type { Pipeable } from "./Pipeable.ts"
15
- import type * as Result from "./Result.ts"
16
15
  import * as ServiceMap from "./ServiceMap.ts"
17
16
 
18
17
  const TypeId = Internal.TypeId
@@ -1174,10 +1173,12 @@ export const setZoneNamedUnsafe: {
1174
1173
  // =============================================================================
1175
1174
 
1176
1175
  /**
1177
- * Calulate the difference between two `DateTime` values, returning the number
1178
- * of milliseconds the `other` DateTime is from `self`.
1176
+ * Calulate the difference between two `DateTime` values, returning a
1177
+ * `Duration` representing the amount of time between them.
1179
1178
  *
1180
- * If `other` is *after* `self`, the result will be a positive number.
1179
+ * If `other` is *after* `self`, the result will be a positive `Duration`. If
1180
+ * `other` is *before* `self`, the result will be a negative `Duration`. If they
1181
+ * are equal, the result will be a `Duration` of zero.
1181
1182
  *
1182
1183
  * @since 3.6.0
1183
1184
  * @category comparisons
@@ -1189,7 +1190,7 @@ export const setZoneNamedUnsafe: {
1189
1190
  * const now = yield* DateTime.now
1190
1191
  * const other = DateTime.add(now, { minutes: 1 })
1191
1192
  *
1192
- * // returns 60000
1193
+ * // returns Duration.minutes(1)
1193
1194
  * DateTime.distance(now, other)
1194
1195
  * })
1195
1196
  * ```
@@ -1200,10 +1201,12 @@ export const distance: {
1200
1201
  // =============================================================================
1201
1202
 
1202
1203
  /**
1203
- * Calulate the difference between two `DateTime` values, returning the number
1204
- * of milliseconds the `other` DateTime is from `self`.
1204
+ * Calulate the difference between two `DateTime` values, returning a
1205
+ * `Duration` representing the amount of time between them.
1205
1206
  *
1206
- * If `other` is *after* `self`, the result will be a positive number.
1207
+ * If `other` is *after* `self`, the result will be a positive `Duration`. If
1208
+ * `other` is *before* `self`, the result will be a negative `Duration`. If they
1209
+ * are equal, the result will be a `Duration` of zero.
1207
1210
  *
1208
1211
  * @since 3.6.0
1209
1212
  * @category comparisons
@@ -1215,147 +1218,23 @@ export const distance: {
1215
1218
  * const now = yield* DateTime.now
1216
1219
  * const other = DateTime.add(now, { minutes: 1 })
1217
1220
  *
1218
- * // returns 60000
1221
+ * // returns Duration.minutes(1)
1219
1222
  * DateTime.distance(now, other)
1220
1223
  * })
1221
1224
  * ```
1222
1225
  */
1223
- (other: DateTime): (self: DateTime) => number
1226
+ (other: DateTime): (self: DateTime) => Duration.Duration
1224
1227
  // =============================================================================
1225
1228
  // comparisons
1226
1229
  // =============================================================================
1227
1230
 
1228
1231
  /**
1229
- * Calulate the difference between two `DateTime` values, returning the number
1230
- * of milliseconds the `other` DateTime is from `self`.
1231
- *
1232
- * If `other` is *after* `self`, the result will be a positive number.
1233
- *
1234
- * @since 3.6.0
1235
- * @category comparisons
1236
- * @example
1237
- * ```ts
1238
- * import { DateTime, Effect } from "effect"
1239
- *
1240
- * Effect.gen(function*() {
1241
- * const now = yield* DateTime.now
1242
- * const other = DateTime.add(now, { minutes: 1 })
1243
- *
1244
- * // returns 60000
1245
- * DateTime.distance(now, other)
1246
- * })
1247
- * ```
1248
- */
1249
- (self: DateTime, other: DateTime): number
1250
- } = Internal.distance
1251
-
1252
- /**
1253
- * Calulate the difference between two `DateTime` values.
1254
- *
1255
- * If the `other` DateTime is before `self`, the result will be a negative
1256
- * `Duration`, returned as a `Failure`.
1257
- *
1258
- * If the `other` DateTime is after `self`, the result will be a positive
1259
- * `Duration`, returned as a `Success`.
1260
- *
1261
- * @since 3.6.0
1262
- * @category comparisons
1263
- * @example
1264
- * ```ts
1265
- * import { DateTime, Effect } from "effect"
1266
- *
1267
- * Effect.gen(function*() {
1268
- * const now = yield* DateTime.now
1269
- * const other = DateTime.add(now, { minutes: 1 })
1270
- *
1271
- * // returns Result.succeed(Duration.minutes(1))
1272
- * DateTime.distanceDurationResult(now, other)
1273
- *
1274
- * // returns Result.fail(Duration.minutes(1))
1275
- * DateTime.distanceDurationResult(other, now)
1276
- * })
1277
- * ```
1278
- */
1279
- export const distanceDurationResult: {
1280
- /**
1281
- * Calulate the difference between two `DateTime` values.
1282
- *
1283
- * If the `other` DateTime is before `self`, the result will be a negative
1284
- * `Duration`, returned as a `Failure`.
1232
+ * Calulate the difference between two `DateTime` values, returning a
1233
+ * `Duration` representing the amount of time between them.
1285
1234
  *
1286
- * If the `other` DateTime is after `self`, the result will be a positive
1287
- * `Duration`, returned as a `Success`.
1288
- *
1289
- * @since 3.6.0
1290
- * @category comparisons
1291
- * @example
1292
- * ```ts
1293
- * import { DateTime, Effect } from "effect"
1294
- *
1295
- * Effect.gen(function*() {
1296
- * const now = yield* DateTime.now
1297
- * const other = DateTime.add(now, { minutes: 1 })
1298
- *
1299
- * // returns Result.succeed(Duration.minutes(1))
1300
- * DateTime.distanceDurationResult(now, other)
1301
- *
1302
- * // returns Result.fail(Duration.minutes(1))
1303
- * DateTime.distanceDurationResult(other, now)
1304
- * })
1305
- * ```
1306
- */
1307
- (other: DateTime): (self: DateTime) => Result.Result<Duration.Duration, Duration.Duration>
1308
- /**
1309
- * Calulate the difference between two `DateTime` values.
1310
- *
1311
- * If the `other` DateTime is before `self`, the result will be a negative
1312
- * `Duration`, returned as a `Failure`.
1313
- *
1314
- * If the `other` DateTime is after `self`, the result will be a positive
1315
- * `Duration`, returned as a `Success`.
1316
- *
1317
- * @since 3.6.0
1318
- * @category comparisons
1319
- * @example
1320
- * ```ts
1321
- * import { DateTime, Effect } from "effect"
1322
- *
1323
- * Effect.gen(function*() {
1324
- * const now = yield* DateTime.now
1325
- * const other = DateTime.add(now, { minutes: 1 })
1326
- *
1327
- * // returns Result.succeed(Duration.minutes(1))
1328
- * DateTime.distanceDurationResult(now, other)
1329
- *
1330
- * // returns Result.fail(Duration.minutes(1))
1331
- * DateTime.distanceDurationResult(other, now)
1332
- * })
1333
- * ```
1334
- */
1335
- (self: DateTime, other: DateTime): Result.Result<Duration.Duration, Duration.Duration>
1336
- } = Internal.distanceDurationResult
1337
-
1338
- /**
1339
- * Calulate the distance between two `DateTime` values.
1340
- *
1341
- * @since 3.6.0
1342
- * @category comparisons
1343
- * @example
1344
- * ```ts
1345
- * import { DateTime, Effect } from "effect"
1346
- *
1347
- * Effect.gen(function*() {
1348
- * const now = yield* DateTime.now
1349
- * const other = DateTime.add(now, { minutes: 1 })
1350
- *
1351
- * // returns Duration.minutes(1)
1352
- * DateTime.distanceDuration(now, other)
1353
- * })
1354
- * ```
1355
- */
1356
- export const distanceDuration: {
1357
- /**
1358
- * Calulate the distance between two `DateTime` values.
1235
+ * If `other` is *after* `self`, the result will be a positive `Duration`. If
1236
+ * `other` is *before* `self`, the result will be a negative `Duration`. If they
1237
+ * are equal, the result will be a `Duration` of zero.
1359
1238
  *
1360
1239
  * @since 3.6.0
1361
1240
  * @category comparisons
@@ -1368,31 +1247,12 @@ export const distanceDuration: {
1368
1247
  * const other = DateTime.add(now, { minutes: 1 })
1369
1248
  *
1370
1249
  * // returns Duration.minutes(1)
1371
- * DateTime.distanceDuration(now, other)
1372
- * })
1373
- * ```
1374
- */
1375
- (other: DateTime): (self: DateTime) => Duration.Duration
1376
- /**
1377
- * Calulate the distance between two `DateTime` values.
1378
- *
1379
- * @since 3.6.0
1380
- * @category comparisons
1381
- * @example
1382
- * ```ts
1383
- * import { DateTime, Effect } from "effect"
1384
- *
1385
- * Effect.gen(function*() {
1386
- * const now = yield* DateTime.now
1387
- * const other = DateTime.add(now, { minutes: 1 })
1388
- *
1389
- * // returns Duration.minutes(1)
1390
- * DateTime.distanceDuration(now, other)
1250
+ * DateTime.distance(now, other)
1391
1251
  * })
1392
1252
  * ```
1393
1253
  */
1394
1254
  (self: DateTime, other: DateTime): Duration.Duration
1395
- } = Internal.distanceDuration
1255
+ } = Internal.distance
1396
1256
 
1397
1257
  /**
1398
1258
  * Returns the earlier of two `DateTime` values.
@@ -3054,7 +2914,7 @@ export const addDuration: {
3054
2914
  * )
3055
2915
  * ```
3056
2916
  */
3057
- (duration: Duration.DurationInput): <A extends DateTime>(self: A) => A
2917
+ (duration: Duration.Input): <A extends DateTime>(self: A) => A
3058
2918
  // =============================================================================
3059
2919
  // math
3060
2920
  // =============================================================================
@@ -3074,7 +2934,7 @@ export const addDuration: {
3074
2934
  * )
3075
2935
  * ```
3076
2936
  */
3077
- <A extends DateTime>(self: A, duration: Duration.DurationInput): A
2937
+ <A extends DateTime>(self: A, duration: Duration.Input): A
3078
2938
  } = Internal.addDuration
3079
2939
 
3080
2940
  /**
@@ -3108,7 +2968,7 @@ export const subtractDuration: {
3108
2968
  * )
3109
2969
  * ```
3110
2970
  */
3111
- (duration: Duration.DurationInput): <A extends DateTime>(self: A) => A
2971
+ (duration: Duration.Input): <A extends DateTime>(self: A) => A
3112
2972
  /**
3113
2973
  * Subtract the given `Duration` from a `DateTime`.
3114
2974
  *
@@ -3124,7 +2984,7 @@ export const subtractDuration: {
3124
2984
  * )
3125
2985
  * ```
3126
2986
  */
3127
- <A extends DateTime>(self: A, duration: Duration.DurationInput): A
2987
+ <A extends DateTime>(self: A, duration: Duration.Input): A
3128
2988
  } = Internal.subtractDuration
3129
2989
 
3130
2990
  /**
package/src/Duration.ts CHANGED
@@ -90,7 +90,7 @@ export type Unit =
90
90
  * @since 2.0.0
91
91
  * @category models
92
92
  */
93
- export type DurationInput =
93
+ export type Input =
94
94
  | Duration
95
95
  | number // millis
96
96
  | bigint // nanos
@@ -100,23 +100,23 @@ export type DurationInput =
100
100
  const DURATION_REGEXP = /^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/
101
101
 
102
102
  /**
103
- * Decodes a `DurationInput` into a `Duration`.
103
+ * Decodes a `Duration.Input` into a `Duration`.
104
104
  *
105
- * If the input is not a valid `DurationInput`, it throws an error.
105
+ * If the input is not a valid `Duration.Input`, it throws an error.
106
106
  *
107
107
  * @example
108
108
  * ```ts
109
109
  * import { Duration } from "effect"
110
110
  *
111
- * const duration1 = Duration.fromDurationInputUnsafe(1000) // 1000 milliseconds
112
- * const duration2 = Duration.fromDurationInputUnsafe("5 seconds")
113
- * const duration3 = Duration.fromDurationInputUnsafe([2, 500_000_000]) // 2 seconds and 500ms
111
+ * const duration1 = Duration.fromInputUnsafe(1000) // 1000 milliseconds
112
+ * const duration2 = Duration.fromInputUnsafe("5 seconds")
113
+ * const duration3 = Duration.fromInputUnsafe([2, 500_000_000]) // 2 seconds and 500ms
114
114
  * ```
115
115
  *
116
116
  * @since 2.0.0
117
117
  * @category constructors
118
118
  */
119
- export const fromDurationInputUnsafe = (input: DurationInput): Duration => {
119
+ export const fromInputUnsafe = (input: Input): Duration => {
120
120
  if (isDuration(input)) return input
121
121
  if (isNumber(input)) return millis(input)
122
122
  if (isBigInt(input)) return nanos(input)
@@ -168,11 +168,11 @@ export const fromDurationInputUnsafe = (input: DurationInput): Duration => {
168
168
  }
169
169
  }
170
170
  }
171
- throw new Error(`Invalid DurationInput: ${input}`)
171
+ throw new Error(`Invalid Input: ${input}`)
172
172
  }
173
173
 
174
174
  /**
175
- * Safely decodes a `DurationInput` value into a `Duration`, returning
175
+ * Safely decodes a `Input` value into a `Duration`, returning
176
176
  * `undefined` if decoding fails.
177
177
  *
178
178
  * **Example**
@@ -180,16 +180,16 @@ export const fromDurationInputUnsafe = (input: DurationInput): Duration => {
180
180
  * ```ts
181
181
  * import { Duration } from "effect"
182
182
  *
183
- * Duration.fromDurationInput(1000)?.pipe(Duration.toSeconds) // 1
183
+ * Duration.fromInput(1000)?.pipe(Duration.toSeconds) // 1
184
184
  *
185
- * Duration.fromDurationInput("invalid" as any) // undefined
185
+ * Duration.fromInput("invalid" as any) // undefined
186
186
  * ```
187
187
  *
188
188
  * @category constructors
189
189
  * @since 4.0.0
190
190
  */
191
- export const fromDurationInput: (u: DurationInput) => Duration | undefined = UndefinedOr.liftThrowable(
192
- fromDurationInputUnsafe
191
+ export const fromInput: (u: Input) => Duration | undefined = UndefinedOr.liftThrowable(
192
+ fromInputUnsafe
193
193
  )
194
194
 
195
195
  const zeroDurationValue: DurationValue = { _tag: "Millis", millis: 0 }
@@ -611,8 +611,8 @@ export const weeks = (weeks: number): Duration => make(weeks * 604_800_000)
611
611
  * @since 2.0.0
612
612
  * @category getters
613
613
  */
614
- export const toMillis = (self: Duration): number =>
615
- match(self, {
614
+ export const toMillis = (self: Input): number =>
615
+ match(fromInputUnsafe(self), {
616
616
  onMillis: identity,
617
617
  onNanos: (nanos) => Number(nanos) / 1_000_000,
618
618
  onInfinity: () => Infinity,