effect 3.12.11 → 3.13.0

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 (204) hide show
  1. package/README.md +38 -49
  2. package/dist/cjs/Channel.js.map +1 -1
  3. package/dist/cjs/DateTime.js +17 -1
  4. package/dist/cjs/DateTime.js.map +1 -1
  5. package/dist/cjs/Differ.js.map +1 -1
  6. package/dist/cjs/Duration.js +128 -1
  7. package/dist/cjs/Duration.js.map +1 -1
  8. package/dist/cjs/Effect.js +175 -37
  9. package/dist/cjs/Effect.js.map +1 -1
  10. package/dist/cjs/Either.js +2 -1
  11. package/dist/cjs/Either.js.map +1 -1
  12. package/dist/cjs/FiberHandle.js +54 -21
  13. package/dist/cjs/FiberHandle.js.map +1 -1
  14. package/dist/cjs/FiberMap.js +51 -24
  15. package/dist/cjs/FiberMap.js.map +1 -1
  16. package/dist/cjs/FiberSet.js +50 -17
  17. package/dist/cjs/FiberSet.js.map +1 -1
  18. package/dist/cjs/HashMap.js +19 -1
  19. package/dist/cjs/HashMap.js.map +1 -1
  20. package/dist/cjs/HashSet.js +9 -1
  21. package/dist/cjs/HashSet.js.map +1 -1
  22. package/dist/cjs/Layer.js +21 -1
  23. package/dist/cjs/Layer.js.map +1 -1
  24. package/dist/cjs/Match.js +659 -38
  25. package/dist/cjs/Match.js.map +1 -1
  26. package/dist/cjs/RcMap.js +11 -1
  27. package/dist/cjs/RcMap.js.map +1 -1
  28. package/dist/cjs/Reloadable.js.map +1 -1
  29. package/dist/cjs/STM.js.map +1 -1
  30. package/dist/cjs/Schedule.js +1074 -309
  31. package/dist/cjs/Schedule.js.map +1 -1
  32. package/dist/cjs/Schema.js +73 -1
  33. package/dist/cjs/Schema.js.map +1 -1
  34. package/dist/cjs/Stream.js.map +1 -1
  35. package/dist/cjs/internal/channel.js.map +1 -1
  36. package/dist/cjs/internal/core-effect.js.map +1 -1
  37. package/dist/cjs/internal/core.js +27 -3
  38. package/dist/cjs/internal/core.js.map +1 -1
  39. package/dist/cjs/internal/dateTime.js +4 -1
  40. package/dist/cjs/internal/dateTime.js.map +1 -1
  41. package/dist/cjs/internal/differ.js +4 -0
  42. package/dist/cjs/internal/differ.js.map +1 -1
  43. package/dist/cjs/internal/effect/circular.js +3 -2
  44. package/dist/cjs/internal/effect/circular.js.map +1 -1
  45. package/dist/cjs/internal/fiberRuntime.js +21 -7
  46. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  47. package/dist/cjs/internal/hashMap.js +10 -1
  48. package/dist/cjs/internal/hashMap.js.map +1 -1
  49. package/dist/cjs/internal/keyedPool.js +1 -1
  50. package/dist/cjs/internal/keyedPool.js.map +1 -1
  51. package/dist/cjs/internal/layer.js.map +1 -1
  52. package/dist/cjs/internal/rcMap.js +86 -56
  53. package/dist/cjs/internal/rcMap.js.map +1 -1
  54. package/dist/cjs/internal/reloadable.js.map +1 -1
  55. package/dist/cjs/internal/schedule.js.map +1 -1
  56. package/dist/cjs/internal/sink.js.map +1 -1
  57. package/dist/cjs/internal/stm/stm.js.map +1 -1
  58. package/dist/cjs/internal/stream.js.map +1 -1
  59. package/dist/cjs/internal/version.js +1 -1
  60. package/dist/cjs/internal/version.js.map +1 -1
  61. package/dist/dts/Channel.d.ts +4 -4
  62. package/dist/dts/Channel.d.ts.map +1 -1
  63. package/dist/dts/DateTime.d.ts +16 -0
  64. package/dist/dts/DateTime.d.ts.map +1 -1
  65. package/dist/dts/Differ.d.ts +2 -1
  66. package/dist/dts/Differ.d.ts.map +1 -1
  67. package/dist/dts/Duration.d.ts +64 -0
  68. package/dist/dts/Duration.d.ts.map +1 -1
  69. package/dist/dts/Effect.d.ts +402 -30
  70. package/dist/dts/Effect.d.ts.map +1 -1
  71. package/dist/dts/Either.d.ts +7 -0
  72. package/dist/dts/Either.d.ts.map +1 -1
  73. package/dist/dts/FiberHandle.d.ts +26 -0
  74. package/dist/dts/FiberHandle.d.ts.map +1 -1
  75. package/dist/dts/FiberMap.d.ts +26 -0
  76. package/dist/dts/FiberMap.d.ts.map +1 -1
  77. package/dist/dts/FiberSet.d.ts +25 -0
  78. package/dist/dts/FiberSet.d.ts.map +1 -1
  79. package/dist/dts/HashMap.d.ts +38 -0
  80. package/dist/dts/HashMap.d.ts.map +1 -1
  81. package/dist/dts/HashSet.d.ts +7 -0
  82. package/dist/dts/HashSet.d.ts.map +1 -1
  83. package/dist/dts/Layer.d.ts +32 -13
  84. package/dist/dts/Layer.d.ts.map +1 -1
  85. package/dist/dts/Match.d.ts +731 -48
  86. package/dist/dts/Match.d.ts.map +1 -1
  87. package/dist/dts/RcMap.d.ts +32 -0
  88. package/dist/dts/RcMap.d.ts.map +1 -1
  89. package/dist/dts/Reloadable.d.ts +13 -13
  90. package/dist/dts/Reloadable.d.ts.map +1 -1
  91. package/dist/dts/STM.d.ts +4 -4
  92. package/dist/dts/STM.d.ts.map +1 -1
  93. package/dist/dts/Schedule.d.ts +2294 -633
  94. package/dist/dts/Schedule.d.ts.map +1 -1
  95. package/dist/dts/Schema.d.ts +40 -4
  96. package/dist/dts/Schema.d.ts.map +1 -1
  97. package/dist/dts/Stream.d.ts +8 -8
  98. package/dist/dts/Stream.d.ts.map +1 -1
  99. package/dist/dts/Trie.d.ts +7 -7
  100. package/dist/dts/Trie.d.ts.map +1 -1
  101. package/dist/dts/index.d.ts +25 -0
  102. package/dist/dts/index.d.ts.map +1 -1
  103. package/dist/dts/internal/stm/stm.d.ts +2 -2
  104. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  105. package/dist/esm/Channel.js.map +1 -1
  106. package/dist/esm/DateTime.js +16 -0
  107. package/dist/esm/DateTime.js.map +1 -1
  108. package/dist/esm/Differ.js.map +1 -1
  109. package/dist/esm/Duration.js +124 -0
  110. package/dist/esm/Duration.js.map +1 -1
  111. package/dist/esm/Effect.js +170 -32
  112. package/dist/esm/Effect.js.map +1 -1
  113. package/dist/esm/Either.js +7 -0
  114. package/dist/esm/Either.js.map +1 -1
  115. package/dist/esm/FiberHandle.js +48 -18
  116. package/dist/esm/FiberHandle.js.map +1 -1
  117. package/dist/esm/FiberMap.js +46 -22
  118. package/dist/esm/FiberMap.js.map +1 -1
  119. package/dist/esm/FiberSet.js +45 -15
  120. package/dist/esm/FiberSet.js.map +1 -1
  121. package/dist/esm/HashMap.js +17 -0
  122. package/dist/esm/HashMap.js.map +1 -1
  123. package/dist/esm/HashSet.js +7 -0
  124. package/dist/esm/HashSet.js.map +1 -1
  125. package/dist/esm/Layer.js +20 -0
  126. package/dist/esm/Layer.js.map +1 -1
  127. package/dist/esm/Match.js +665 -40
  128. package/dist/esm/Match.js.map +1 -1
  129. package/dist/esm/RcMap.js +10 -0
  130. package/dist/esm/RcMap.js.map +1 -1
  131. package/dist/esm/Reloadable.js.map +1 -1
  132. package/dist/esm/STM.js.map +1 -1
  133. package/dist/esm/Schedule.js +1074 -309
  134. package/dist/esm/Schedule.js.map +1 -1
  135. package/dist/esm/Schema.js +71 -0
  136. package/dist/esm/Schema.js.map +1 -1
  137. package/dist/esm/Stream.js.map +1 -1
  138. package/dist/esm/index.js +25 -0
  139. package/dist/esm/index.js.map +1 -1
  140. package/dist/esm/internal/channel.js.map +1 -1
  141. package/dist/esm/internal/core-effect.js.map +1 -1
  142. package/dist/esm/internal/core.js +23 -0
  143. package/dist/esm/internal/core.js.map +1 -1
  144. package/dist/esm/internal/dateTime.js +2 -0
  145. package/dist/esm/internal/dateTime.js.map +1 -1
  146. package/dist/esm/internal/differ.js +4 -0
  147. package/dist/esm/internal/differ.js.map +1 -1
  148. package/dist/esm/internal/effect/circular.js +3 -2
  149. package/dist/esm/internal/effect/circular.js.map +1 -1
  150. package/dist/esm/internal/fiberRuntime.js +18 -5
  151. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  152. package/dist/esm/internal/hashMap.js +9 -0
  153. package/dist/esm/internal/hashMap.js.map +1 -1
  154. package/dist/esm/internal/keyedPool.js +1 -1
  155. package/dist/esm/internal/keyedPool.js.map +1 -1
  156. package/dist/esm/internal/layer.js.map +1 -1
  157. package/dist/esm/internal/rcMap.js +85 -55
  158. package/dist/esm/internal/rcMap.js.map +1 -1
  159. package/dist/esm/internal/reloadable.js.map +1 -1
  160. package/dist/esm/internal/schedule.js.map +1 -1
  161. package/dist/esm/internal/sink.js.map +1 -1
  162. package/dist/esm/internal/stm/stm.js.map +1 -1
  163. package/dist/esm/internal/stream.js.map +1 -1
  164. package/dist/esm/internal/version.js +1 -1
  165. package/dist/esm/internal/version.js.map +1 -1
  166. package/package.json +2 -1
  167. package/src/Channel.ts +14 -17
  168. package/src/DateTime.ts +17 -8
  169. package/src/Differ.ts +2 -1
  170. package/src/Duration.ts +147 -0
  171. package/src/Effect.ts +528 -140
  172. package/src/Either.ts +9 -0
  173. package/src/FiberHandle.ts +95 -35
  174. package/src/FiberMap.ts +104 -39
  175. package/src/FiberSet.ts +93 -24
  176. package/src/HashMap.ts +40 -0
  177. package/src/HashSet.ts +8 -0
  178. package/src/Layer.ts +94 -40
  179. package/src/Match.ts +733 -49
  180. package/src/RcMap.ts +34 -0
  181. package/src/Reloadable.ts +17 -27
  182. package/src/STM.ts +10 -17
  183. package/src/Schedule.ts +2325 -653
  184. package/src/Schema.ts +81 -4
  185. package/src/Stream.ts +26 -33
  186. package/src/Trie.ts +7 -7
  187. package/src/index.ts +25 -0
  188. package/src/internal/channel.ts +37 -39
  189. package/src/internal/core-effect.ts +84 -84
  190. package/src/internal/core.ts +80 -0
  191. package/src/internal/dateTime.ts +3 -0
  192. package/src/internal/differ.ts +4 -0
  193. package/src/internal/effect/circular.ts +3 -2
  194. package/src/internal/fiberRuntime.ts +31 -6
  195. package/src/internal/hashMap.ts +16 -0
  196. package/src/internal/keyedPool.ts +1 -1
  197. package/src/internal/layer.ts +52 -52
  198. package/src/internal/rcMap.ts +131 -89
  199. package/src/internal/reloadable.ts +25 -28
  200. package/src/internal/schedule.ts +29 -23
  201. package/src/internal/sink.ts +16 -15
  202. package/src/internal/stm/stm.ts +54 -46
  203. package/src/internal/stream.ts +100 -100
  204. package/src/internal/version.ts +1 -1
package/src/RcMap.ts CHANGED
@@ -183,3 +183,37 @@ export const get: {
183
183
  * @category combinators
184
184
  */
185
185
  export const keys: <K, A, E>(self: RcMap<K, A, E>) => Effect.Effect<Array<K>, E> = internal.keys
186
+
187
+ /**
188
+ * @since 3.13.0
189
+ * @category combinators
190
+ */
191
+ export const invalidate: {
192
+ /**
193
+ * @since 3.13.0
194
+ * @category combinators
195
+ */
196
+ <K>(key: K): <A, E>(self: RcMap<K, A, E>) => Effect.Effect<void>
197
+ /**
198
+ * @since 3.13.0
199
+ * @category combinators
200
+ */
201
+ <K, A, E>(self: RcMap<K, A, E>, key: K): Effect.Effect<void>
202
+ } = internal.invalidate
203
+
204
+ /**
205
+ * @since 3.13.0
206
+ * @category combinators
207
+ */
208
+ export const touch: {
209
+ /**
210
+ * @since 3.13.0
211
+ * @category combinators
212
+ */
213
+ <K>(key: K): <A, E>(self: RcMap<K, A, E>) => Effect.Effect<void>
214
+ /**
215
+ * @since 3.13.0
216
+ * @category combinators
217
+ */
218
+ <K, A, E>(self: RcMap<K, A, E>, key: K): Effect.Effect<void>
219
+ } = internal.touch
package/src/Reloadable.ts CHANGED
@@ -62,13 +62,10 @@ export declare namespace Reloadable {
62
62
  * @since 2.0.0
63
63
  * @category constructors
64
64
  */
65
- export const auto: <Out extends Context.Tag<any, any>, E, In, R>(
66
- tag: Out,
67
- options: {
68
- readonly layer: Layer.Layer<Context.Tag.Identifier<Out>, E, In>
69
- readonly schedule: Schedule.Schedule<unknown, unknown, R>
70
- }
71
- ) => Layer.Layer<Reloadable<Context.Tag.Identifier<Out>>, E, In | R> = internal.auto
65
+ export const auto: <I, S, E, In, R>(
66
+ tag: Context.Tag<I, S>,
67
+ options: { readonly layer: Layer.Layer<I, E, In>; readonly schedule: Schedule.Schedule<unknown, unknown, R> }
68
+ ) => Layer.Layer<Reloadable<I>, E, R | In> = internal.auto
72
69
 
73
70
  /**
74
71
  * Makes a new reloadable service from a layer that describes the construction
@@ -78,13 +75,13 @@ export const auto: <Out extends Context.Tag<any, any>, E, In, R>(
78
75
  * @since 2.0.0
79
76
  * @category constructors
80
77
  */
81
- export const autoFromConfig: <Out extends Context.Tag<any, any>, E, In, R>(
82
- tag: Out,
78
+ export const autoFromConfig: <I, S, E, In, R>(
79
+ tag: Context.Tag<I, S>,
83
80
  options: {
84
- readonly layer: Layer.Layer<Context.Tag.Identifier<Out>, E, In>
81
+ readonly layer: Layer.Layer<I, E, In>
85
82
  readonly scheduleFromConfig: (context: Context.Context<In>) => Schedule.Schedule<unknown, unknown, R>
86
83
  }
87
- ) => Layer.Layer<Reloadable<Context.Tag.Identifier<Out>>, E, In | R> = internal.autoFromConfig
84
+ ) => Layer.Layer<Reloadable<I>, E, R | In> = internal.autoFromConfig
88
85
 
89
86
  /**
90
87
  * Retrieves the current version of the reloadable service.
@@ -92,9 +89,7 @@ export const autoFromConfig: <Out extends Context.Tag<any, any>, E, In, R>(
92
89
  * @since 2.0.0
93
90
  * @category getters
94
91
  */
95
- export const get: <T extends Context.Tag<any, any>>(
96
- tag: T
97
- ) => Effect.Effect<Context.Tag.Service<T>, never, Reloadable<Context.Tag.Identifier<T>>> = internal.get
92
+ export const get: <I, S>(tag: Context.Tag<I, S>) => Effect.Effect<S, never, Reloadable<I>> = internal.get
98
93
 
99
94
  /**
100
95
  * Makes a new reloadable service from a layer that describes the construction
@@ -103,10 +98,10 @@ export const get: <T extends Context.Tag<any, any>>(
103
98
  * @since 2.0.0
104
99
  * @category constructors
105
100
  */
106
- export const manual: <Out extends Context.Tag<any, any>, In, E>(
107
- tag: Out,
108
- options: { readonly layer: Layer.Layer<Context.Tag.Identifier<Out>, E, In> }
109
- ) => Layer.Layer<Reloadable<Context.Tag.Identifier<Out>>, E, In> = internal.manual
101
+ export const manual: <I, S, In, E>(
102
+ tag: Context.Tag<I, S>,
103
+ options: { readonly layer: Layer.Layer<I, E, In> }
104
+ ) => Layer.Layer<Reloadable<I>, E, In> = internal.manual
110
105
 
111
106
  /**
112
107
  * Reloads the specified service.
@@ -114,17 +109,13 @@ export const manual: <Out extends Context.Tag<any, any>, In, E>(
114
109
  * @since 2.0.0
115
110
  * @category constructors
116
111
  */
117
- export const reload: <T extends Context.Tag<any, any>>(
118
- tag: T
119
- ) => Effect.Effect<void, unknown, Reloadable<Context.Tag.Identifier<T>>> = internal.reload
112
+ export const reload: <I, S>(tag: Context.Tag<I, S>) => Effect.Effect<void, unknown, Reloadable<I>> = internal.reload
120
113
 
121
114
  /**
122
115
  * @since 2.0.0
123
116
  * @category context
124
117
  */
125
- export const tag: <T extends Context.Tag<any, any>>(
126
- tag: T
127
- ) => Context.Tag<Reloadable<Context.Tag.Identifier<T>>, Reloadable<Context.Tag.Service<T>>> = internal.reloadableTag
118
+ export const tag: <I, S>(tag: Context.Tag<I, S>) => Context.Tag<Reloadable<I>, Reloadable<S>> = internal.reloadableTag
128
119
 
129
120
  /**
130
121
  * Forks the reload of the service in the background, ignoring any errors.
@@ -132,6 +123,5 @@ export const tag: <T extends Context.Tag<any, any>>(
132
123
  * @since 2.0.0
133
124
  * @category constructors
134
125
  */
135
- export const reloadFork: <T extends Context.Tag<any, any>>(
136
- tag: T
137
- ) => Effect.Effect<void, unknown, Reloadable<Context.Tag.Identifier<T>>> = internal.reloadFork
126
+ export const reloadFork: <I, S>(tag: Context.Tag<I, S>) => Effect.Effect<void, unknown, Reloadable<I>> =
127
+ internal.reloadFork
package/src/STM.ts CHANGED
@@ -2094,10 +2094,7 @@ export const provideService: {
2094
2094
  * @since 2.0.0
2095
2095
  * @category context
2096
2096
  */
2097
- <T extends Context.Tag<any, any>>(
2098
- tag: T,
2099
- resource: Context.Tag.Service<T>
2100
- ): <A, E, R>(self: STM<A, E, R>) => STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
2097
+ <I, S>(tag: Context.Tag<I, S>, resource: NoInfer<S>): <A, E, R>(self: STM<A, E, R>) => STM<A, E, Exclude<R, I>>
2101
2098
  /**
2102
2099
  * Provides the effect with the single service it requires. If the transactional
2103
2100
  * effect requires more than one service use `provideEnvironment` instead.
@@ -2105,11 +2102,7 @@ export const provideService: {
2105
2102
  * @since 2.0.0
2106
2103
  * @category context
2107
2104
  */
2108
- <A, E, R, T extends Context.Tag<any, any>>(
2109
- self: STM<A, E, R>,
2110
- tag: T,
2111
- resource: Context.Tag.Service<T>
2112
- ): STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
2105
+ <A, E, R, I, S>(self: STM<A, E, R>, tag: Context.Tag<I, S>, resource: NoInfer<S>): STM<A, E, Exclude<R, I>>
2113
2106
  } = stm.provideService
2114
2107
 
2115
2108
  /**
@@ -2127,10 +2120,10 @@ export const provideServiceSTM: {
2127
2120
  * @since 2.0.0
2128
2121
  * @category context
2129
2122
  */
2130
- <T extends Context.Tag<any, any>, E1, R1>(
2131
- tag: T,
2132
- stm: STM<Context.Tag.Service<T>, E1, R1>
2133
- ): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>
2123
+ <I, S, E1, R1>(
2124
+ tag: Context.Tag<I, S>,
2125
+ stm: STM<NoInfer<S>, E1, R1>
2126
+ ): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | Exclude<R, I>>
2134
2127
  /**
2135
2128
  * Provides the effect with the single service it requires. If the transactional
2136
2129
  * effect requires more than one service use `provideEnvironment` instead.
@@ -2138,11 +2131,11 @@ export const provideServiceSTM: {
2138
2131
  * @since 2.0.0
2139
2132
  * @category context
2140
2133
  */
2141
- <A, E, R, T extends Context.Tag<any, any>, E1, R1>(
2134
+ <A, E, R, I, S, E1, R1>(
2142
2135
  self: STM<A, E, R>,
2143
- tag: T,
2144
- stm: STM<Context.Tag.Service<T>, E1, R1>
2145
- ): STM<A, E | E1, R1 | Exclude<R, Context.Tag.Identifier<T>>>
2136
+ tag: Context.Tag<I, S>,
2137
+ stm: STM<NoInfer<S>, E1, R1>
2138
+ ): STM<A, E1 | E, R1 | Exclude<R, I>>
2146
2139
  } = stm.provideServiceSTM
2147
2140
 
2148
2141
  /**