effect 4.0.0-beta.6 → 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 (273) 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/Config.d.ts +2 -2
  6. package/dist/Config.js +3 -3
  7. package/dist/Config.js.map +1 -1
  8. package/dist/DateTime.d.ts +23 -161
  9. package/dist/DateTime.d.ts.map +1 -1
  10. package/dist/DateTime.js +6 -51
  11. package/dist/DateTime.js.map +1 -1
  12. package/dist/Duration.d.ts +12 -12
  13. package/dist/Duration.d.ts.map +1 -1
  14. package/dist/Duration.js +12 -12
  15. package/dist/Duration.js.map +1 -1
  16. package/dist/Effect.d.ts +13 -13
  17. package/dist/Effect.d.ts.map +1 -1
  18. package/dist/Effect.js +1 -1
  19. package/dist/Effect.js.map +1 -1
  20. package/dist/Formatter.d.ts +131 -47
  21. package/dist/Formatter.d.ts.map +1 -1
  22. package/dist/Formatter.js +228 -50
  23. package/dist/Formatter.js.map +1 -1
  24. package/dist/JsonSchema.d.ts +299 -10
  25. package/dist/JsonSchema.d.ts.map +1 -1
  26. package/dist/JsonSchema.js +323 -4
  27. package/dist/JsonSchema.js.map +1 -1
  28. package/dist/LayerMap.d.ts +4 -4
  29. package/dist/LayerMap.d.ts.map +1 -1
  30. package/dist/LogLevel.d.ts +27 -0
  31. package/dist/LogLevel.d.ts.map +1 -1
  32. package/dist/LogLevel.js +28 -100
  33. package/dist/LogLevel.js.map +1 -1
  34. package/dist/Logger.d.ts +4 -4
  35. package/dist/Logger.d.ts.map +1 -1
  36. package/dist/Metric.d.ts +2 -2
  37. package/dist/Metric.d.ts.map +1 -1
  38. package/dist/Metric.js +1 -1
  39. package/dist/Metric.js.map +1 -1
  40. package/dist/Pool.d.ts +1 -1
  41. package/dist/Pool.d.ts.map +1 -1
  42. package/dist/Pool.js +1 -1
  43. package/dist/Pool.js.map +1 -1
  44. package/dist/Random.d.ts +1 -1
  45. package/dist/Random.d.ts.map +1 -1
  46. package/dist/Random.js +3 -12
  47. package/dist/Random.js.map +1 -1
  48. package/dist/RcMap.d.ts +2 -2
  49. package/dist/RcMap.d.ts.map +1 -1
  50. package/dist/RcMap.js +1 -1
  51. package/dist/RcMap.js.map +1 -1
  52. package/dist/RcRef.d.ts +1 -1
  53. package/dist/RcRef.d.ts.map +1 -1
  54. package/dist/RequestResolver.d.ts +6 -6
  55. package/dist/RequestResolver.d.ts.map +1 -1
  56. package/dist/RequestResolver.js.map +1 -1
  57. package/dist/Schedule.d.ts +20 -11
  58. package/dist/Schedule.d.ts.map +1 -1
  59. package/dist/Schedule.js +23 -9
  60. package/dist/Schedule.js.map +1 -1
  61. package/dist/Schema.d.ts +4 -4
  62. package/dist/Schema.d.ts.map +1 -1
  63. package/dist/ScopedCache.d.ts +2 -2
  64. package/dist/ScopedCache.d.ts.map +1 -1
  65. package/dist/ScopedCache.js +1 -1
  66. package/dist/ScopedCache.js.map +1 -1
  67. package/dist/Stream.d.ts +19 -19
  68. package/dist/Stream.d.ts.map +1 -1
  69. package/dist/Stream.js +3 -3
  70. package/dist/Stream.js.map +1 -1
  71. package/dist/index.d.ts +134 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +134 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/internal/dateTime.js +3 -11
  76. package/dist/internal/dateTime.js.map +1 -1
  77. package/dist/internal/effect.js +2 -2
  78. package/dist/internal/effect.js.map +1 -1
  79. package/dist/internal/random.d.ts +2 -0
  80. package/dist/internal/random.d.ts.map +1 -0
  81. package/dist/internal/random.js +13 -0
  82. package/dist/internal/random.js.map +1 -0
  83. package/dist/internal/rcRef.js +1 -1
  84. package/dist/internal/rcRef.js.map +1 -1
  85. package/dist/testing/TestClock.d.ts +4 -4
  86. package/dist/testing/TestClock.d.ts.map +1 -1
  87. package/dist/testing/TestClock.js +1 -1
  88. package/dist/testing/TestClock.js.map +1 -1
  89. package/dist/testing/TestSchema.d.ts +6 -6
  90. package/dist/testing/TestSchema.d.ts.map +1 -1
  91. package/dist/unstable/ai/AiError.d.ts +10 -10
  92. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  93. package/dist/unstable/ai/Chat.d.ts +3 -3
  94. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  95. package/dist/unstable/ai/Chat.js +2 -2
  96. package/dist/unstable/ai/Chat.js.map +1 -1
  97. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  98. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  99. package/dist/unstable/ai/McpServer.d.ts +1 -1
  100. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  101. package/dist/unstable/ai/McpServer.js.map +1 -1
  102. package/dist/unstable/ai/Prompt.d.ts +17 -17
  103. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  104. package/dist/unstable/ai/Response.d.ts +23 -23
  105. package/dist/unstable/ai/Response.d.ts.map +1 -1
  106. package/dist/unstable/ai/Response.js +1 -1
  107. package/dist/unstable/ai/Response.js.map +1 -1
  108. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  109. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  110. package/dist/unstable/cluster/ClusterCron.js +1 -1
  111. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  112. package/dist/unstable/cluster/Entity.d.ts +3 -3
  113. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  114. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  115. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  116. package/dist/unstable/cluster/K8sHttpClient.js +1 -1
  117. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  118. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  119. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  120. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  121. package/dist/unstable/cluster/Sharding.js +1 -1
  122. package/dist/unstable/cluster/Sharding.js.map +1 -1
  123. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  124. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  125. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  126. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  127. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  128. package/dist/unstable/cluster/internal/entityManager.js +1 -1
  129. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  130. package/dist/unstable/encoding/Sse.d.ts +2 -2
  131. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  132. package/dist/unstable/encoding/Sse.js.map +1 -1
  133. package/dist/unstable/http/Cookies.d.ts +1 -1
  134. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  135. package/dist/unstable/http/Cookies.js +2 -2
  136. package/dist/unstable/http/Cookies.js.map +1 -1
  137. package/dist/unstable/http/HttpClient.d.ts +4 -4
  138. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  139. package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
  140. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  141. package/dist/unstable/http/HttpClientRequest.js +8 -1
  142. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  143. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  144. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  145. package/dist/unstable/http/HttpMethod.js +3 -3
  146. package/dist/unstable/http/HttpMethod.js.map +1 -1
  147. package/dist/unstable/observability/Otlp.d.ts +12 -12
  148. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  149. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  150. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  151. package/dist/unstable/observability/OtlpExporter.js +1 -1
  152. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  153. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  154. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  155. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  156. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  157. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  158. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  159. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  160. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  161. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  162. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  163. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  164. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  165. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  166. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  167. package/dist/unstable/persistence/Persistence.js +2 -2
  168. package/dist/unstable/persistence/Persistence.js.map +1 -1
  169. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  170. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  171. package/dist/unstable/persistence/RateLimiter.js +1 -1
  172. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  173. package/dist/unstable/process/ChildProcess.d.ts +1 -1
  174. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  175. package/dist/unstable/reactivity/Atom.d.ts +6 -6
  176. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  177. package/dist/unstable/reactivity/Atom.js +3 -3
  178. package/dist/unstable/reactivity/Atom.js.map +1 -1
  179. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  180. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  181. package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
  182. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  183. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  184. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  185. package/dist/unstable/reactivity/AtomRpc.js +1 -1
  186. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  187. package/dist/unstable/rpc/Rpc.d.ts +2 -2
  188. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  189. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  190. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  191. package/dist/unstable/rpc/RpcClient.js +3 -11
  192. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  193. package/dist/unstable/socket/Socket.d.ts +4 -4
  194. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  195. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  196. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  197. package/dist/unstable/sql/SqlModel.js +3 -3
  198. package/dist/unstable/sql/SqlModel.js.map +1 -1
  199. package/dist/unstable/sql/SqlSchema.d.ts +16 -5
  200. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  201. package/dist/unstable/sql/SqlSchema.js +17 -7
  202. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  203. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  204. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  205. package/dist/unstable/workflow/DurableClock.js +3 -3
  206. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  207. package/package.json +1 -1
  208. package/src/Cache.ts +3 -3
  209. package/src/Config.ts +3 -3
  210. package/src/DateTime.ts +24 -164
  211. package/src/Duration.ts +15 -15
  212. package/src/Effect.ts +15 -15
  213. package/src/Formatter.ts +252 -50
  214. package/src/JsonSchema.ts +383 -10
  215. package/src/LayerMap.ts +5 -5
  216. package/src/LogLevel.ts +31 -0
  217. package/src/Logger.ts +5 -5
  218. package/src/Metric.ts +4 -4
  219. package/src/Pool.ts +4 -4
  220. package/src/Random.ts +5 -14
  221. package/src/RcMap.ts +5 -5
  222. package/src/RcRef.ts +1 -1
  223. package/src/RequestResolver.ts +9 -9
  224. package/src/Schedule.ts +44 -25
  225. package/src/Schema.ts +4 -4
  226. package/src/ScopedCache.ts +3 -3
  227. package/src/Stream.ts +34 -34
  228. package/src/index.ts +134 -0
  229. package/src/internal/dateTime.ts +9 -30
  230. package/src/internal/effect.ts +21 -21
  231. package/src/internal/random.ts +20 -0
  232. package/src/internal/rcRef.ts +2 -2
  233. package/src/testing/TestClock.ts +5 -5
  234. package/src/testing/TestSchema.ts +8 -8
  235. package/src/unstable/ai/AiError.ts +1 -1
  236. package/src/unstable/ai/Chat.ts +10 -10
  237. package/src/unstable/ai/LanguageModel.ts +3 -3
  238. package/src/unstable/ai/McpServer.ts +2 -2
  239. package/src/unstable/ai/Prompt.ts +17 -17
  240. package/src/unstable/ai/Response.ts +23 -23
  241. package/src/unstable/cluster/ClusterCron.ts +2 -2
  242. package/src/unstable/cluster/Entity.ts +5 -5
  243. package/src/unstable/cluster/EntityResource.ts +4 -4
  244. package/src/unstable/cluster/K8sHttpClient.ts +1 -1
  245. package/src/unstable/cluster/MessageStorage.ts +1 -4
  246. package/src/unstable/cluster/Sharding.ts +3 -3
  247. package/src/unstable/cluster/ShardingConfig.ts +10 -11
  248. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  249. package/src/unstable/cluster/internal/entityManager.ts +3 -3
  250. package/src/unstable/encoding/Sse.ts +2 -4
  251. package/src/unstable/http/Cookies.ts +3 -3
  252. package/src/unstable/http/HttpClient.ts +4 -4
  253. package/src/unstable/http/HttpClientRequest.ts +15 -11
  254. package/src/unstable/http/HttpMethod.ts +16 -4
  255. package/src/unstable/observability/Otlp.ts +12 -12
  256. package/src/unstable/observability/OtlpExporter.ts +3 -3
  257. package/src/unstable/observability/OtlpLogger.ts +4 -4
  258. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  259. package/src/unstable/observability/OtlpTracer.ts +4 -4
  260. package/src/unstable/persistence/Persistable.ts +2 -2
  261. package/src/unstable/persistence/PersistedQueue.ts +18 -18
  262. package/src/unstable/persistence/Persistence.ts +3 -3
  263. package/src/unstable/persistence/RateLimiter.ts +4 -4
  264. package/src/unstable/process/ChildProcess.ts +1 -1
  265. package/src/unstable/reactivity/Atom.ts +13 -13
  266. package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
  267. package/src/unstable/reactivity/AtomRpc.ts +3 -3
  268. package/src/unstable/rpc/Rpc.ts +3 -3
  269. package/src/unstable/rpc/RpcClient.ts +8 -51
  270. package/src/unstable/socket/Socket.ts +4 -4
  271. package/src/unstable/sql/SqlModel.ts +5 -5
  272. package/src/unstable/sql/SqlSchema.ts +41 -25
  273. package/src/unstable/workflow/DurableClock.ts +8 -8
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/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,
package/src/Effect.ts CHANGED
@@ -7224,7 +7224,7 @@ export const timeout: {
7224
7224
  * @since 2.0.0
7225
7225
  * @category Delays & Timeouts
7226
7226
  */
7227
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
7227
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
7228
7228
  // -----------------------------------------------------------------------------
7229
7229
  // Delays & timeouts
7230
7230
  // -----------------------------------------------------------------------------
@@ -7275,7 +7275,7 @@ export const timeout: {
7275
7275
  * @since 2.0.0
7276
7276
  * @category Delays & Timeouts
7277
7277
  */
7278
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E | Cause.TimeoutError, R>
7278
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E | Cause.TimeoutError, R>
7279
7279
  } = internal.timeout
7280
7280
 
7281
7281
  /**
@@ -7377,7 +7377,7 @@ export const timeoutOption: {
7377
7377
  * @since 3.1.0
7378
7378
  * @category Delays & Timeouts
7379
7379
  */
7380
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
7380
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
7381
7381
  /**
7382
7382
  * Handles timeouts by returning an `Option` that represents either the result
7383
7383
  * or a timeout.
@@ -7427,7 +7427,7 @@ export const timeoutOption: {
7427
7427
  * @since 3.1.0
7428
7428
  * @category Delays & Timeouts
7429
7429
  */
7430
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<Option<A>, E, R>
7430
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<Option<A>, E, R>
7431
7431
  } = internal.timeoutOption
7432
7432
 
7433
7433
  /**
@@ -7505,7 +7505,7 @@ export const timeoutOrElse: {
7505
7505
  */
7506
7506
  <A2, E2, R2>(
7507
7507
  options: {
7508
- readonly duration: Duration.DurationInput
7508
+ readonly duration: Duration.Input
7509
7509
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
7510
7510
  }
7511
7511
  ): <A, E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2, R | R2>
@@ -7548,7 +7548,7 @@ export const timeoutOrElse: {
7548
7548
  <A, E, R, A2, E2, R2>(
7549
7549
  self: Effect<A, E, R>,
7550
7550
  options: {
7551
- readonly duration: Duration.DurationInput
7551
+ readonly duration: Duration.Input
7552
7552
  readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
7553
7553
  }
7554
7554
  ): Effect<A | A2, E | E2, R | R2>
@@ -7595,7 +7595,7 @@ export const delay: {
7595
7595
  * @since 2.0.0
7596
7596
  * @category Delays & Timeouts
7597
7597
  */
7598
- (duration: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
7598
+ (duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
7599
7599
  /**
7600
7600
  * Returns an effect that is delayed from this effect by the specified
7601
7601
  * `Duration`.
@@ -7616,7 +7616,7 @@ export const delay: {
7616
7616
  * @since 2.0.0
7617
7617
  * @category Delays & Timeouts
7618
7618
  */
7619
- <A, E, R>(self: Effect<A, E, R>, duration: Duration.DurationInput): Effect<A, E, R>
7619
+ <A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E, R>
7620
7620
  } = internal.delay
7621
7621
 
7622
7622
  /**
@@ -7641,7 +7641,7 @@ export const delay: {
7641
7641
  * @since 2.0.0
7642
7642
  * @category Delays & Timeouts
7643
7643
  */
7644
- export const sleep: (duration: Duration.DurationInput) => Effect<void> = internal.sleep
7644
+ export const sleep: (duration: Duration.Input) => Effect<void> = internal.sleep
7645
7645
 
7646
7646
  /**
7647
7647
  * Measures the runtime of an effect and returns the duration with its result.
@@ -12272,7 +12272,7 @@ export const cachedWithTTL: {
12272
12272
  * @since 2.0.0
12273
12273
  * @category Caching
12274
12274
  */
12275
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
12275
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
12276
12276
  /**
12277
12277
  * Returns an effect that caches its result for a specified `Duration`,
12278
12278
  * known as "timeToLive" (TTL).
@@ -12339,7 +12339,7 @@ export const cachedWithTTL: {
12339
12339
  * @since 2.0.0
12340
12340
  * @category Caching
12341
12341
  */
12342
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<Effect<A, E, R>>
12342
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<Effect<A, E, R>>
12343
12343
  } = internal.cachedWithTTL
12344
12344
 
12345
12345
  /**
@@ -12481,7 +12481,7 @@ export const cachedInvalidateWithTTL: {
12481
12481
  * @since 2.0.0
12482
12482
  * @category Caching
12483
12483
  */
12484
- (timeToLive: Duration.DurationInput): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
12484
+ (timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
12485
12485
  /**
12486
12486
  * Caches an effect's result for a specified duration and allows manual
12487
12487
  * invalidation before expiration.
@@ -12551,7 +12551,7 @@ export const cachedInvalidateWithTTL: {
12551
12551
  * @since 2.0.0
12552
12552
  * @category Caching
12553
12553
  */
12554
- <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.DurationInput): Effect<[Effect<A, E, R>, Effect<void>]>
12554
+ <A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<[Effect<A, E, R>, Effect<void>]>
12555
12555
  } = internal.cachedInvalidateWithTTL
12556
12556
 
12557
12557
  // -----------------------------------------------------------------------------
@@ -21905,8 +21905,8 @@ export const trackDuration: {
21905
21905
  return onExit(self, () => {
21906
21906
  const endTime = clock.currentTimeNanosUnsafe()
21907
21907
  const duration = Duration.subtract(
21908
- Duration.fromDurationInputUnsafe(endTime),
21909
- Duration.fromDurationInputUnsafe(startTime)
21908
+ Duration.fromInputUnsafe(endTime),
21909
+ Duration.fromInputUnsafe(startTime)
21910
21910
  )
21911
21911
  const input = f === undefined ? duration : internalCall(() => f(duration))
21912
21912
  return Metric.update(metric, input as any)