effect 3.6.4 → 3.6.6

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 (62) hide show
  1. package/dist/cjs/Metric.js +12 -3
  2. package/dist/cjs/Metric.js.map +1 -1
  3. package/dist/cjs/MetricHook.js +6 -1
  4. package/dist/cjs/MetricHook.js.map +1 -1
  5. package/dist/cjs/Pipeable.js +2 -0
  6. package/dist/cjs/Pipeable.js.map +1 -1
  7. package/dist/cjs/Stream.js +10 -10
  8. package/dist/cjs/internal/configProvider.js +1 -1
  9. package/dist/cjs/internal/configProvider.js.map +1 -1
  10. package/dist/cjs/internal/metric/hook.js +32 -10
  11. package/dist/cjs/internal/metric/hook.js.map +1 -1
  12. package/dist/cjs/internal/metric/keyType.js +12 -48
  13. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  14. package/dist/cjs/internal/metric/polling.js +7 -1
  15. package/dist/cjs/internal/metric/polling.js.map +1 -1
  16. package/dist/cjs/internal/metric.js +21 -13
  17. package/dist/cjs/internal/metric.js.map +1 -1
  18. package/dist/cjs/internal/stream.js +10 -10
  19. package/dist/cjs/internal/stream.js.map +1 -1
  20. package/dist/cjs/internal/version.js +1 -1
  21. package/dist/dts/Metric.d.ts +21 -8
  22. package/dist/dts/Metric.d.ts.map +1 -1
  23. package/dist/dts/MetricHook.d.ts +10 -0
  24. package/dist/dts/MetricHook.d.ts.map +1 -1
  25. package/dist/dts/Pipeable.d.ts +1 -0
  26. package/dist/dts/Pipeable.d.ts.map +1 -1
  27. package/dist/dts/Stream.d.ts +28 -28
  28. package/dist/dts/Stream.d.ts.map +1 -1
  29. package/dist/dts/internal/metric/keyType.d.ts +1 -89
  30. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  31. package/dist/esm/Metric.js +11 -2
  32. package/dist/esm/Metric.js.map +1 -1
  33. package/dist/esm/MetricHook.js +5 -0
  34. package/dist/esm/MetricHook.js.map +1 -1
  35. package/dist/esm/Pipeable.js +2 -0
  36. package/dist/esm/Pipeable.js.map +1 -1
  37. package/dist/esm/Stream.js +10 -10
  38. package/dist/esm/internal/configProvider.js +1 -1
  39. package/dist/esm/internal/configProvider.js.map +1 -1
  40. package/dist/esm/internal/metric/hook.js +31 -9
  41. package/dist/esm/internal/metric/hook.js.map +1 -1
  42. package/dist/esm/internal/metric/keyType.js +12 -48
  43. package/dist/esm/internal/metric/keyType.js.map +1 -1
  44. package/dist/esm/internal/metric/polling.js +7 -1
  45. package/dist/esm/internal/metric/polling.js.map +1 -1
  46. package/dist/esm/internal/metric.js +20 -12
  47. package/dist/esm/internal/metric.js.map +1 -1
  48. package/dist/esm/internal/stream.js +10 -10
  49. package/dist/esm/internal/stream.js.map +1 -1
  50. package/dist/esm/internal/version.js +1 -1
  51. package/package.json +1 -1
  52. package/src/Metric.ts +25 -9
  53. package/src/MetricHook.ts +11 -0
  54. package/src/Pipeable.ts +3 -0
  55. package/src/Stream.ts +49 -49
  56. package/src/internal/configProvider.ts +1 -1
  57. package/src/internal/metric/hook.ts +36 -9
  58. package/src/internal/metric/keyType.ts +12 -48
  59. package/src/internal/metric/polling.ts +8 -1
  60. package/src/internal/metric.ts +61 -17
  61. package/src/internal/stream.ts +134 -134
  62. package/src/internal/version.ts +1 -1
@@ -20,6 +20,7 @@ import * as _effect from "./core-effect.js"
20
20
  import * as core from "./core.js"
21
21
  import * as metricBoundaries from "./metric/boundaries.js"
22
22
  import * as metricKey from "./metric/key.js"
23
+ import * as metricKeyType from "./metric/keyType.js"
23
24
  import * as metricLabel from "./metric/label.js"
24
25
  import * as metricRegistry from "./metric/registry.js"
25
26
 
@@ -50,7 +51,8 @@ export const globalMetricRegistry: MetricRegistry.MetricRegistry = globalValue(
50
51
  export const make: Metric.MetricApply = function<Type, In, Out>(
51
52
  keyType: Type,
52
53
  unsafeUpdate: (input: In, extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => void,
53
- unsafeValue: (extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => Out
54
+ unsafeValue: (extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => Out,
55
+ unsafeModify: (input: In, extraTags: ReadonlyArray<MetricLabel.MetricLabel>) => void
54
56
  ): Metric.Metric<Type, In, Out> {
55
57
  const metric: Metric.Metric<Type, In, Out> = Object.assign(
56
58
  <A extends In, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
@@ -60,6 +62,7 @@ export const make: Metric.MetricApply = function<Type, In, Out>(
60
62
  keyType,
61
63
  unsafeUpdate,
62
64
  unsafeValue,
65
+ unsafeModify,
63
66
  register() {
64
67
  this.unsafeValue([])
65
68
  return this as any
@@ -80,7 +83,8 @@ export const mapInput = dual<
80
83
  make(
81
84
  self.keyType,
82
85
  (input, extraTags) => self.unsafeUpdate(f(input), extraTags),
83
- self.unsafeValue
86
+ self.unsafeValue,
87
+ (input, extraTags) => self.unsafeModify(f(input), extraTags)
84
88
  ))
85
89
 
86
90
  /** @internal */
@@ -149,7 +153,8 @@ export const fromMetricKey = <Type extends MetricKeyType.MetricKeyType<any, any>
149
153
  return make(
150
154
  key.keyType,
151
155
  (input, extraTags) => hook(extraTags).update(input),
152
- (extraTags) => hook(extraTags).get()
156
+ (extraTags) => hook(extraTags).get(),
157
+ (input, extraTags) => hook(extraTags).modify(input)
153
158
  )
154
159
  }
155
160
 
@@ -171,20 +176,30 @@ export const histogram = (name: string, boundaries: MetricBoundaries.MetricBound
171
176
 
172
177
  /* @internal */
173
178
  export const increment = (
174
- self: Metric.Metric.Counter<number> | Metric.Metric.Counter<bigint>
175
- ): Effect.Effect<void> => update(self as Metric.Metric.Counter<number>, self.keyType.bigint ? BigInt(1) as any : 1)
179
+ self:
180
+ | Metric.Metric.Counter<number>
181
+ | Metric.Metric.Counter<bigint>
182
+ | Metric.Metric.Gauge<number>
183
+ | Metric.Metric.Gauge<bigint>
184
+ ): Effect.Effect<void> =>
185
+ metricKeyType.isCounterKey(self.keyType)
186
+ ? update(self as Metric.Metric.Counter<number>, self.keyType.bigint ? BigInt(1) as any : 1)
187
+ : modify(self as Metric.Metric.Gauge<number>, self.keyType.bigint ? BigInt(1) as any : 1)
176
188
 
177
189
  /* @internal */
178
190
  export const incrementBy = dual<
179
191
  {
180
- (amount: number): (self: Metric.Metric.Counter<number>) => Effect.Effect<void>
181
- (amount: bigint): (self: Metric.Metric.Counter<bigint>) => Effect.Effect<void>
192
+ (amount: number): (self: Metric.Metric.Counter<number> | Metric.Metric.Counter<number>) => Effect.Effect<void>
193
+ (amount: bigint): (self: Metric.Metric.Counter<bigint> | Metric.Metric.Gauge<bigint>) => Effect.Effect<void>
182
194
  },
183
195
  {
184
- (self: Metric.Metric.Counter<number>, amount: number): Effect.Effect<void>
185
- (self: Metric.Metric.Counter<bigint>, amount: bigint): Effect.Effect<void>
196
+ (self: Metric.Metric.Counter<number> | Metric.Metric.Gauge<number>, amount: number): Effect.Effect<void>
197
+ (self: Metric.Metric.Counter<bigint> | Metric.Metric.Gauge<bigint>, amount: bigint): Effect.Effect<void>
186
198
  }
187
- >(2, (self, amount) => update(self as any, amount))
199
+ >(2, (self, amount) =>
200
+ metricKeyType.isCounterKey(self.keyType)
201
+ ? update(self as any, amount)
202
+ : modify(self as any, amount))
188
203
 
189
204
  /** @internal */
190
205
  export const map = dual<
@@ -194,7 +209,8 @@ export const map = dual<
194
209
  make(
195
210
  self.keyType,
196
211
  self.unsafeUpdate,
197
- (extraTags) => f(self.unsafeValue(extraTags))
212
+ (extraTags) => f(self.unsafeValue(extraTags)),
213
+ self.unsafeModify
198
214
  ))
199
215
 
200
216
  /** @internal */
@@ -208,7 +224,23 @@ export const mapType = dual<
208
224
  self: Metric.Metric<Type, In, Out>,
209
225
  f: (type: Type) => Type2
210
226
  ) => Metric.Metric<Type2, In, Out>
211
- >(2, (self, f) => make(f(self.keyType), self.unsafeUpdate, self.unsafeValue))
227
+ >(2, (self, f) =>
228
+ make(
229
+ f(self.keyType),
230
+ self.unsafeUpdate,
231
+ self.unsafeValue,
232
+ self.unsafeModify
233
+ ))
234
+
235
+ /** @internal */
236
+ export const modify = dual<
237
+ <In>(input: In) => <Type, Out>(self: Metric.Metric<Type, In, Out>) => Effect.Effect<void>,
238
+ <Type, In, Out>(self: Metric.Metric<Type, In, Out>, input: In) => Effect.Effect<void>
239
+ >(2, (self, input) =>
240
+ core.fiberRefGetWith(
241
+ core.currentMetricLabels,
242
+ (tags) => core.sync(() => self.unsafeModify(input, tags))
243
+ ))
212
244
 
213
245
  /* @internal */
214
246
  export const set = dual<
@@ -223,11 +255,12 @@ export const set = dual<
223
255
  >(2, (self, value) => update(self as any, value))
224
256
 
225
257
  /** @internal */
226
- export const succeed = <Out>(out: Out): Metric.Metric<void, unknown, Out> => make(void 0 as void, constVoid, () => out)
258
+ export const succeed = <Out>(out: Out): Metric.Metric<void, unknown, Out> =>
259
+ make(void 0 as void, constVoid, () => out, constVoid)
227
260
 
228
261
  /** @internal */
229
262
  export const sync = <Out>(evaluate: LazyArg<Out>): Metric.Metric<void, unknown, Out> =>
230
- make(void 0 as void, constVoid, evaluate)
263
+ make(void 0 as void, constVoid, evaluate, constVoid)
231
264
 
232
265
  /** @internal */
233
266
  export const summary = (
@@ -277,7 +310,12 @@ export const taggedWithLabelsInput = dual<
277
310
  input,
278
311
  Arr.union(f(input), extraTags)
279
312
  ),
280
- self.unsafeValue
313
+ self.unsafeValue,
314
+ (input, extraTags) =>
315
+ self.unsafeModify(
316
+ input,
317
+ Arr.union(f(input), extraTags)
318
+ )
281
319
  ),
282
320
  constVoid
283
321
  ))
@@ -295,7 +333,8 @@ export const taggedWithLabels = dual<
295
333
  return make(
296
334
  self.keyType,
297
335
  (input, extraTags1) => self.unsafeUpdate(input, Arr.union(extraTags, extraTags1)),
298
- (extraTags1) => self.unsafeValue(Arr.union(extraTags, extraTags1))
336
+ (extraTags1) => self.unsafeValue(Arr.union(extraTags, extraTags1)),
337
+ (input, extraTags1) => self.unsafeModify(input, Arr.union(extraTags, extraTags1))
299
338
  )
300
339
  })
301
340
 
@@ -520,7 +559,12 @@ export const zip = dual<
520
559
  self.unsafeUpdate(l, extraTags)
521
560
  that.unsafeUpdate(r, extraTags)
522
561
  },
523
- (extraTags) => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)]
562
+ (extraTags) => [self.unsafeValue(extraTags), that.unsafeValue(extraTags)],
563
+ (input: readonly [In, In2], extraTags) => {
564
+ const [l, r] = input
565
+ self.unsafeModify(l, extraTags)
566
+ that.unsafeModify(r, extraTags)
567
+ }
524
568
  )
525
569
  )
526
570
 
@@ -1680,74 +1680,74 @@ export const concatAll = <A, E, R>(streams: Chunk.Chunk<Stream.Stream<A, E, R>>)
1680
1680
  suspend(() => pipe(streams, Chunk.reduce(empty as Stream.Stream<A, E, R>, (x, y) => concat(y)(x))))
1681
1681
 
1682
1682
  /** @internal */
1683
- export const cross = dual<
1684
- <A2, E2, R2>(
1685
- that: Stream.Stream<A2, E2, R2>
1686
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
1687
- <A, E, R, A2, E2, R2>(
1688
- self: Stream.Stream<A, E, R>,
1689
- that: Stream.Stream<A2, E2, R2>
1690
- ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
1691
- >(
1683
+ export const cross: {
1684
+ <AR, ER, RR>(
1685
+ right: Stream.Stream<AR, ER, RR>
1686
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<[AL, AR], EL | ER, RL | RR>
1687
+ <AL, ER, RR, AR, EL, RL>(
1688
+ left: Stream.Stream<AL, ER, RR>,
1689
+ right: Stream.Stream<AR, EL, RL>
1690
+ ): Stream.Stream<[AL, AR], EL | ER, RL | RR>
1691
+ } = dual(
1692
1692
  2,
1693
- <A, E, R, A2, E2, R2>(
1694
- self: Stream.Stream<A, E, R>,
1695
- that: Stream.Stream<A2, E2, R2>
1696
- ): Stream.Stream<[A, A2], E2 | E, R2 | R> => pipe(self, crossWith(that, (a, a2) => [a, a2]))
1693
+ <AL, ER, RR, AR, EL, RL>(
1694
+ left: Stream.Stream<AL, ER, RR>,
1695
+ right: Stream.Stream<AR, EL, RL>
1696
+ ): Stream.Stream<[AL, AR], EL | ER, RL | RR> => pipe(left, crossWith(right, (a, a2) => [a, a2]))
1697
1697
  )
1698
1698
 
1699
1699
  /** @internal */
1700
- export const crossLeft = dual<
1701
- <A2, E2, R2>(
1702
- that: Stream.Stream<A2, E2, R2>
1703
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
1704
- <A, E, R, A2, E2, R2>(
1705
- self: Stream.Stream<A, E, R>,
1706
- that: Stream.Stream<A2, E2, R2>
1707
- ) => Stream.Stream<A, E2 | E, R2 | R>
1708
- >(
1700
+ export const crossLeft: {
1701
+ <AR, ER, RR>(
1702
+ right: Stream.Stream<AR, ER, RR>
1703
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AL, EL | ER, RL | RR>
1704
+ <AL, EL, RL, AR, ER, RR>(
1705
+ left: Stream.Stream<AL, EL, RL>,
1706
+ right: Stream.Stream<AR, ER, RR>
1707
+ ): Stream.Stream<AL, EL | ER, RL | RR>
1708
+ } = dual(
1709
1709
  2,
1710
- <A, E, R, A2, E2, R2>(
1711
- self: Stream.Stream<A, E, R>,
1712
- that: Stream.Stream<A2, E2, R2>
1713
- ): Stream.Stream<A, E2 | E, R2 | R> => pipe(self, crossWith(that, (a, _) => a))
1710
+ <AL, EL, RL, AR, ER, RR>(
1711
+ left: Stream.Stream<AL, EL, RL>,
1712
+ right: Stream.Stream<AR, ER, RR>
1713
+ ): Stream.Stream<AL, EL | ER, RL | RR> => pipe(left, crossWith(right, (a, _) => a))
1714
1714
  )
1715
1715
 
1716
1716
  /** @internal */
1717
- export const crossRight = dual<
1718
- <A2, E2, R2>(
1719
- that: Stream.Stream<A2, E2, R2>
1720
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
1721
- <A, E, R, A2, E2, R2>(
1722
- self: Stream.Stream<A, E, R>,
1723
- that: Stream.Stream<A2, E2, R2>
1724
- ) => Stream.Stream<A2, E2 | E, R2 | R>
1725
- >(
1717
+ export const crossRight: {
1718
+ <AR, ER, RR>(
1719
+ right: Stream.Stream<AR, ER, RR>
1720
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AR, EL | ER, RL | RR>
1721
+ <AL, EL, RL, AR, ER, RR>(
1722
+ left: Stream.Stream<AL, EL, RL>,
1723
+ right: Stream.Stream<AR, ER, RR>
1724
+ ): Stream.Stream<AR, EL | ER, RL | RR>
1725
+ } = dual(
1726
1726
  2,
1727
- <A, E, R, A2, E2, R2>(
1728
- self: Stream.Stream<A, E, R>,
1729
- that: Stream.Stream<A2, E2, R2>
1730
- ): Stream.Stream<A2, E2 | E, R2 | R> => flatMap(self, () => that)
1727
+ <AL, EL, RL, AR, ER, RR>(
1728
+ left: Stream.Stream<AL, EL, RL>,
1729
+ right: Stream.Stream<AR, ER, RR>
1730
+ ): Stream.Stream<AR, EL | ER, RL | RR> => flatMap(left, () => right)
1731
1731
  )
1732
1732
 
1733
1733
  /** @internal */
1734
- export const crossWith = dual<
1735
- <B, E2, R2, A, C>(
1736
- that: Stream.Stream<B, E2, R2>,
1737
- f: (a: A, b: B) => C
1738
- ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<C, E2 | E, R2 | R>,
1739
- <A, E, R, B, E2, R2, C>(
1740
- self: Stream.Stream<A, E, R>,
1741
- that: Stream.Stream<B, E2, R2>,
1742
- f: (a: A, b: B) => C
1743
- ) => Stream.Stream<C, E2 | E, R2 | R>
1744
- >(
1734
+ export const crossWith: {
1735
+ <AR, ER, RR, AL, A>(
1736
+ right: Stream.Stream<AR, ER, RR>,
1737
+ f: (left: AL, right: AR) => A
1738
+ ): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
1739
+ <AL, EL, RL, AR, ER, RR, A>(
1740
+ left: Stream.Stream<AL, EL, RL>,
1741
+ right: Stream.Stream<AR, ER, RR>,
1742
+ f: (left: AL, right: AR) => A
1743
+ ): Stream.Stream<A, EL | ER, RL | RR>
1744
+ } = dual(
1745
1745
  3,
1746
- <A, E, R, B, E2, R2, C>(
1747
- self: Stream.Stream<A, E, R>,
1748
- that: Stream.Stream<B, E2, R2>,
1749
- f: (a: A, b: B) => C
1750
- ): Stream.Stream<C, E2 | E, R2 | R> => pipe(self, flatMap((a) => pipe(that, map((b) => f(a, b)))))
1746
+ <AL, EL, RL, AR, ER, RR, A>(
1747
+ left: Stream.Stream<AL, EL, RL>,
1748
+ right: Stream.Stream<AR, ER, RR>,
1749
+ f: (left: AL, right: AR) => A
1750
+ ): Stream.Stream<A, EL | ER, RL | RR> => pipe(left, flatMap((a) => pipe(right, map((b) => f(a, b)))))
1751
1751
  )
1752
1752
 
1753
1753
  /** @internal */
@@ -7891,20 +7891,20 @@ export const zipAllWith = dual<
7891
7891
  )
7892
7892
 
7893
7893
  /** @internal */
7894
- export const zipLatest = dual<
7895
- <A2, E2, R2>(
7896
- that: Stream.Stream<A2, E2, R2>
7897
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<[A, A2], E2 | E, R2 | R>,
7898
- <A, E, R, A2, E2, R2>(
7899
- self: Stream.Stream<A, E, R>,
7900
- that: Stream.Stream<A2, E2, R2>
7901
- ) => Stream.Stream<[A, A2], E2 | E, R2 | R>
7902
- >(
7894
+ export const zipLatest: {
7895
+ <AR, ER, RR>(
7896
+ right: Stream.Stream<AR, ER, RR>
7897
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<[AL, AR], EL | ER, RL | RR>
7898
+ <AL, EL, RL, AR, ER, RR>(
7899
+ left: Stream.Stream<AL, EL, RL>,
7900
+ right: Stream.Stream<AR, ER, RR>
7901
+ ): Stream.Stream<[AL, AR], EL | ER, RL | RR>
7902
+ } = dual(
7903
7903
  2,
7904
- <A, E, R, A2, E2, R2>(
7905
- self: Stream.Stream<A, E, R>,
7906
- that: Stream.Stream<A2, E2, R2>
7907
- ): Stream.Stream<[A, A2], E2 | E, R2 | R> => pipe(self, zipLatestWith(that, (a, a2) => [a, a2]))
7904
+ <AL, EL, RL, AR, ER, RR>(
7905
+ left: Stream.Stream<AL, EL, RL>,
7906
+ right: Stream.Stream<AR, ER, RR>
7907
+ ): Stream.Stream<[AL, AR], EL | ER, RL | RR> => pipe(left, zipLatestWith(right, (a, a2) => [a, a2]))
7908
7908
  )
7909
7909
 
7910
7910
  export const zipLatestAll = <T extends ReadonlyArray<Stream.Stream<any, any, any>>>(
@@ -7929,34 +7929,34 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream.Stream<any, any, any
7929
7929
  }
7930
7930
 
7931
7931
  /** @internal */
7932
- export const zipLatestWith = dual<
7933
- <A2, E2, R2, A, A3>(
7934
- that: Stream.Stream<A2, E2, R2>,
7935
- f: (a: A, a2: A2) => A3
7936
- ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
7937
- <A, E, R, A2, E2, R2, A3>(
7938
- self: Stream.Stream<A, E, R>,
7939
- that: Stream.Stream<A2, E2, R2>,
7940
- f: (a: A, a2: A2) => A3
7941
- ) => Stream.Stream<A3, E2 | E, R2 | R>
7942
- >(
7932
+ export const zipLatestWith: {
7933
+ <AR, ER, RR, AL, A>(
7934
+ right: Stream.Stream<AR, ER, RR>,
7935
+ f: (left: AL, right: AR) => A
7936
+ ): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
7937
+ <AL, EL, RL, AR, ER, RR, A>(
7938
+ left: Stream.Stream<AL, EL, RL>,
7939
+ right: Stream.Stream<AR, ER, RR>,
7940
+ f: (left: AL, right: AR) => A
7941
+ ): Stream.Stream<A, EL | ER, RL | RR>
7942
+ } = dual(
7943
7943
  3,
7944
- <A, E, R, A2, E2, R2, A3>(
7945
- self: Stream.Stream<A, E, R>,
7946
- that: Stream.Stream<A2, E2, R2>,
7947
- f: (a: A, a2: A2) => A3
7948
- ): Stream.Stream<A3, E2 | E, R2 | R> => {
7944
+ <AL, EL, RL, AR, ER, RR, A>(
7945
+ left: Stream.Stream<AL, EL, RL>,
7946
+ right: Stream.Stream<AR, ER, RR>,
7947
+ f: (left: AL, right: AR) => A
7948
+ ): Stream.Stream<A, EL | ER, RL | RR> => {
7949
7949
  const pullNonEmpty = <_R, _E, _A>(
7950
7950
  pull: Effect.Effect<Chunk.Chunk<_A>, Option.Option<_E>, _R>
7951
7951
  ): Effect.Effect<Chunk.Chunk<_A>, Option.Option<_E>, _R> =>
7952
7952
  pipe(pull, Effect.flatMap((chunk) => Chunk.isEmpty(chunk) ? pullNonEmpty(pull) : Effect.succeed(chunk)))
7953
7953
  return pipe(
7954
- toPull(self),
7954
+ toPull(left),
7955
7955
  Effect.map(pullNonEmpty),
7956
- Effect.zip(pipe(toPull(that), Effect.map(pullNonEmpty))),
7956
+ Effect.zip(pipe(toPull(right), Effect.map(pullNonEmpty))),
7957
7957
  Effect.flatMap(([left, right]) =>
7958
7958
  pipe(
7959
- fromEffectOption<readonly [Chunk.Chunk<A>, Chunk.Chunk<A2>, boolean], E | E2, R | R2>(
7959
+ fromEffectOption<readonly [Chunk.Chunk<AL>, Chunk.Chunk<AR>, boolean], EL | ER, RL | RR>(
7960
7960
  Effect.raceWith(left, right, {
7961
7961
  onSelfDone: (leftDone, rightFiber) =>
7962
7962
  pipe(
@@ -8020,23 +8020,23 @@ export const zipLatestWith = dual<
8020
8020
  )
8021
8021
 
8022
8022
  /** @internal */
8023
- export const zipLeft = dual<
8024
- <A2, E2, R2>(
8025
- that: Stream.Stream<A2, E2, R2>
8026
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A, E2 | E, R2 | R>,
8027
- <A, E, R, A2, E2, R2>(
8028
- self: Stream.Stream<A, E, R>,
8029
- that: Stream.Stream<A2, E2, R2>
8030
- ) => Stream.Stream<A, E2 | E, R2 | R>
8031
- >(
8023
+ export const zipLeft: {
8024
+ <AR, ER, RR>(
8025
+ right: Stream.Stream<AR, ER, RR>
8026
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AL, ER | EL, RR | RL>
8027
+ <AL, EL, RL, AR, ER, RR>(
8028
+ left: Stream.Stream<AL, EL, RL>,
8029
+ right: Stream.Stream<AR, ER, RR>
8030
+ ): Stream.Stream<AL, EL | ER, RL | RR>
8031
+ } = dual(
8032
8032
  2,
8033
- <A, E, R, A2, E2, R2>(
8034
- self: Stream.Stream<A, E, R>,
8035
- that: Stream.Stream<A2, E2, R2>
8036
- ): Stream.Stream<A, E | E2, R | R2> =>
8033
+ <AL, EL, RL, AR, ER, RR>(
8034
+ left: Stream.Stream<AL, EL, RL>,
8035
+ right: Stream.Stream<AR, ER, RR>
8036
+ ): Stream.Stream<AL, EL | ER, RL | RR> =>
8037
8037
  pipe(
8038
- self,
8039
- zipWithChunks(that, (left, right) => {
8038
+ left,
8039
+ zipWithChunks(right, (left, right) => {
8040
8040
  if (left.length > right.length) {
8041
8041
  return [
8042
8042
  pipe(left, Chunk.take(right.length)),
@@ -8052,23 +8052,23 @@ export const zipLeft = dual<
8052
8052
  )
8053
8053
 
8054
8054
  /** @internal */
8055
- export const zipRight = dual<
8056
- <A2, E2, R2>(
8057
- that: Stream.Stream<A2, E2, R2>
8058
- ) => <A, E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A2, E2 | E, R2 | R>,
8059
- <A, E, R, A2, E2, R2>(
8060
- self: Stream.Stream<A, E, R>,
8061
- that: Stream.Stream<A2, E2, R2>
8062
- ) => Stream.Stream<A2, E2 | E, R2 | R>
8063
- >(
8055
+ export const zipRight: {
8056
+ <AR, ER, RR>(
8057
+ right: Stream.Stream<AR, ER, RR>
8058
+ ): <AL, EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<AR, ER | EL, RR | RL>
8059
+ <AL, EL, RL, AR, ER, RR>(
8060
+ left: Stream.Stream<AL, EL, RL>,
8061
+ right: Stream.Stream<AR, ER, RR>
8062
+ ): Stream.Stream<AR, EL | ER, RL | RR>
8063
+ } = dual(
8064
8064
  2,
8065
- <A, E, R, A2, E2, R2>(
8066
- self: Stream.Stream<A, E, R>,
8067
- that: Stream.Stream<A2, E2, R2>
8068
- ): Stream.Stream<A2, E | E2, R | R2> =>
8065
+ <AL, EL, RL, AR, ER, RR>(
8066
+ left: Stream.Stream<AL, EL, RL>,
8067
+ right: Stream.Stream<AR, ER, RR>
8068
+ ): Stream.Stream<AR, EL | ER, RL | RR> =>
8069
8069
  pipe(
8070
- self,
8071
- zipWithChunks(that, (left, right) => {
8070
+ left,
8071
+ zipWithChunks(right, (left, right) => {
8072
8072
  if (left.length > right.length) {
8073
8073
  return [
8074
8074
  right,
@@ -8084,24 +8084,24 @@ export const zipRight = dual<
8084
8084
  )
8085
8085
 
8086
8086
  /** @internal */
8087
- export const zipWith = dual<
8088
- <A2, E2, R2, A, A3>(
8089
- that: Stream.Stream<A2, E2, R2>,
8090
- f: (a: A, a2: A2) => A3
8091
- ) => <E, R>(self: Stream.Stream<A, E, R>) => Stream.Stream<A3, E2 | E, R2 | R>,
8092
- <A, E, R, A2, E2, R2, A3>(
8093
- self: Stream.Stream<A, E, R>,
8094
- that: Stream.Stream<A2, E2, R2>,
8095
- f: (a: A, a2: A2) => A3
8096
- ) => Stream.Stream<A3, E2 | E, R2 | R>
8097
- >(
8087
+ export const zipWith: {
8088
+ <AR, ER, RR, AL, A>(
8089
+ right: Stream.Stream<AR, ER, RR>,
8090
+ f: (left: AL, right: AR) => A
8091
+ ): <EL, RL>(left: Stream.Stream<AL, EL, RL>) => Stream.Stream<A, EL | ER, RL | RR>
8092
+ <AL, EL, RL, AR, ER, RR, A>(
8093
+ left: Stream.Stream<AL, EL, RL>,
8094
+ right: Stream.Stream<AR, ER, RR>,
8095
+ f: (left: AL, right: AR) => A
8096
+ ): Stream.Stream<A, EL | ER, RL | RR>
8097
+ } = dual(
8098
8098
  3,
8099
- <A, E, R, A2, E2, R2, A3>(
8100
- self: Stream.Stream<A, E, R>,
8101
- that: Stream.Stream<A2, E2, R2>,
8102
- f: (a: A, a2: A2) => A3
8103
- ): Stream.Stream<A3, E2 | E, R2 | R> =>
8104
- pipe(self, zipWithChunks(that, (leftChunk, rightChunk) => zipChunks(leftChunk, rightChunk, f)))
8099
+ <AL, EL, RL, AR, ER, RR, A>(
8100
+ left: Stream.Stream<AL, EL, RL>,
8101
+ right: Stream.Stream<AR, ER, RR>,
8102
+ f: (left: AL, right: AR) => A
8103
+ ): Stream.Stream<A, EL | ER, RL | RR> =>
8104
+ pipe(left, zipWithChunks(right, (leftChunk, rightChunk) => zipChunks(leftChunk, rightChunk, f)))
8105
8105
  )
8106
8106
 
8107
8107
  /** @internal */
@@ -1,4 +1,4 @@
1
- let moduleVersion = "3.6.4"
1
+ let moduleVersion = "3.6.6"
2
2
 
3
3
  export const getCurrentVersion = () => moduleVersion
4
4